From ac7c48b4dee99d4c772f133d70d8d1b38262fcd2 Mon Sep 17 00:00:00 2001 From: Author Name Date: Fri, 7 Jul 2023 12:20:59 +0930 Subject: shallow zip-file copy from codec2 e9d726bf20 --- src/CMakeLists.txt | 400 + src/H2064_516_sparse_test.h | 33 + src/HRA_112_112.c | 22 + src/HRA_112_112.h | 19 + src/HRA_112_112_test.h | 31 + src/HRA_56_56.c | 22 + src/HRA_56_56.h | 19 + src/HRAa_1536_512.c | 22 + src/HRAa_1536_512.h | 19 + src/HRAb_396_504.c | 22 + src/HRAb_396_504.h | 19 + src/H_1024_2048_4f.c | 16 + src/H_1024_2048_4f.h | 16 + src/H_128_256_5.c | 22 + src/H_128_256_5.h | 19 + src/H_16200_9720.c | 16 + src/H_16200_9720.h | 16 + src/H_2064_516_sparse.c | 34 + src/H_2064_516_sparse.h | 22 + src/H_212_158.c | 16 + src/H_212_158.h | 16 + src/H_256_512_4.c | 22 + src/H_256_512_4.h | 19 + src/H_256_768_22.c | 22 + src/H_256_768_22.h | 19 + src/H_4096_8192_3d.c | 22 + src/H_4096_8192_3d.h | 19 + src/_kiss_fft_guts.h | 164 + src/bpf.h | 106 + src/bpfb.h | 105 + src/c2dec.c | 431 + src/c2enc.c | 201 + src/c2file.h | 19 + src/c2sim.c | 1168 + src/ch.c | 479 + src/codebook/codes_450.txt | 501 + src/codebook/dlsp1.txt | 35 + src/codebook/dlsp10.txt | 35 + src/codebook/dlsp2.txt | 35 + src/codebook/dlsp3.txt | 35 + src/codebook/dlsp4.txt | 35 + src/codebook/dlsp5.txt | 35 + src/codebook/dlsp6.txt | 35 + src/codebook/dlsp7.txt | 35 + src/codebook/dlsp8.txt | 35 + src/codebook/dlsp9.txt | 35 + src/codebook/gecb.txt | 257 + src/codebook/lsp1.txt | 17 + src/codebook/lsp10.txt | 6 + src/codebook/lsp2.txt | 17 + src/codebook/lsp3.txt | 17 + src/codebook/lsp4.txt | 17 + src/codebook/lsp5.txt | 19 + src/codebook/lsp6.txt | 19 + src/codebook/lsp7.txt | 19 + src/codebook/lsp8.txt | 11 + src/codebook/lsp8910.txt | 65 + src/codebook/lsp9.txt | 11 + src/codebook/lspjmv1.txt | 513 + src/codebook/lspjmv2.txt | 513 + src/codebook/lspjmv3.txt | 513 + src/codebook/lspvqexp1.txt | 2049 ++ src/codebook/lspvqexp2.txt | 2049 ++ src/codebook/lspvqexp3.txt | 2049 ++ src/codebook/newamp1_energy_q.txt | 17 + src/codebook/newamp2_energy_q.txt | 9 + src/codebook/train_120_1.txt | 513 + src/codebook/train_120_2.txt | 513 + src/codec2.c | 2306 ++ src/codec2.h | 123 + src/codec2_cohpsk.h | 71 + src/codec2_fdmdv.h | 122 + src/codec2_fft.c | 158 + src/codec2_fft.h | 105 + src/codec2_fifo.c | 150 + src/codec2_fifo.h | 57 + src/codec2_fm.h | 53 + src/codec2_internal.h | 109 + src/codec2_math.h | 70 + src/codec2_math_arm.c | 57 + src/codec2_ofdm.h | 107 + src/cohpsk.c | 1433 + src/cohpsk_defs.h | 9 + src/cohpsk_demod.c | 258 + src/cohpsk_get_test_bits.c | 87 + src/cohpsk_internal.h | 124 + src/cohpsk_mod.c | 122 + src/cohpsk_put_test_bits.c | 113 + src/comp.h | 38 + src/comp_prim.h | 141 + src/debug_alloc.h | 71 + src/defines.h | 119 + src/deframer.c | 166 + src/dump.c | 669 + src/dump.h | 82 + src/fdmdv.c | 2082 ++ src/fdmdv_demod.c | 249 + src/fdmdv_get_test_bits.c | 124 + src/fdmdv_internal.h | 197 + src/fdmdv_mod.c | 162 + src/fdmdv_put_test_bits.c | 167 + src/filter.c | 281 + src/filter.h | 48 + src/filter_coef.h | 730 + src/fm.c | 290 + src/fm_demod.c | 115 + src/fm_fir_coeff.h | 413 + src/fmfsk.c | 373 + src/fmfsk.h | 111 + src/fmfsk_demod.c | 150 + src/fmfsk_mod.c | 104 + src/framer.c | 98 + src/freedv_1600.c | 258 + src/freedv_2020.c | 342 + src/freedv_700.c | 564 + src/freedv_api.c | 1527 + src/freedv_api.h | 311 + src/freedv_api_internal.h | 239 + src/freedv_data_channel.c | 314 + src/freedv_data_channel.h | 70 + src/freedv_data_raw_rx.c | 325 + src/freedv_data_raw_tx.c | 467 + src/freedv_data_rx.c | 235 + src/freedv_data_tx.c | 285 + src/freedv_fsk.c | 636 + src/freedv_mixed_rx.c | 226 + src/freedv_mixed_tx.c | 376 + src/freedv_rx.c | 329 + src/freedv_tx.c | 207 + src/freedv_vhf_framing.c | 866 + src/freedv_vhf_framing.h | 99 + src/fsk.c | 1052 + src/fsk.h | 217 + src/fsk_demod.c | 448 + src/fsk_get_test_bits.c | 97 + src/fsk_mod.c | 142 + src/fsk_mod_ext_vco.c | 143 + src/fsk_put_test_bits.c | 170 + src/generate_codebook.c | 187 + src/golay23.c | 311 + src/golay23.h | 45 + src/golaydectable.h | 2052 ++ src/golayenctable.h | 4100 +++ src/gp_interleaver.c | 147 + src/gp_interleaver.h | 43 + src/hanning.h | 644 + src/ht_coeff.h | 264 + src/interldpc.c | 317 + src/interldpc.h | 54 + src/interp.c | 331 + src/interp.h | 45 + src/kiss_fft.c | 408 + src/kiss_fft.h | 124 + src/kiss_fftr.c | 154 + src/kiss_fftr.h | 46 + src/ldpc_codes.c | 252 + src/ldpc_codes.h | 27 + src/ldpc_dec.c | 236 + src/ldpc_dec_test.c | 356 + src/ldpc_enc.c | 146 + src/ldpc_enc_test.c | 161 + src/ldpc_noise.c | 77 + src/linreg.c | 106 + src/linreg.h | 35 + src/lpc.c | 306 + src/lpc.h | 43 + src/lpcnet_freq.c | 92 + src/lpcnet_freq.h | 41 + src/lsp.c | 321 + src/lsp.h | 37 + src/machdep.h | 52 + src/mbest.c | 197 + src/mbest.h | 54 + src/modem_probe.c | 241 + src/modem_probe.h | 130 + src/modem_stats.c | 124 + src/modem_stats.h | 89 + src/mpdecode_core.c | 789 + src/mpdecode_core.h | 56 + src/newamp1.c | 677 + src/newamp1.h | 89 + src/newamp2.c | 569 + src/newamp2.h | 89 + src/nlp.c | 521 + src/nlp.h | 38 + src/noise_samples.h | 60006 ++++++++++++++++++++++++++++++++++++ src/octave.c | 142 + src/octave.h | 39 + src/ofdm.c | 2628 ++ src/ofdm_demod.c | 692 + src/ofdm_get_test_bits.c | 161 + src/ofdm_internal.h | 277 + src/ofdm_mod.c | 410 + src/ofdm_mode.c | 153 + src/ofdm_put_test_bits.c | 124 + src/optparse.h | 404 + src/os.h | 106 + src/pack.c | 140 + src/phase.c | 289 + src/phase.h | 39 + src/phi0.c | 218 + src/phi0.h | 7 + src/pilot_coeff.h | 41 + src/pilots_coh.h | 6 + src/postfilter.c | 142 + src/postfilter.h | 33 + src/quantise.c | 1238 + src/quantise.h | 107 + src/reliable_text.c | 487 + src/reliable_text.h | 64 + src/rn.h | 964 + src/rn_coh.h | 1807 ++ src/rxdec_coeff.h | 35 + src/sd.c | 80 + src/sd.h | 35 + src/sine.c | 680 + src/sine.h | 49 + src/ssbfilt_coeff.h | 110 + src/test_bits.h | 164 + src/test_bits_coh.h | 564 + src/test_bits_ofdm.h | 584 + src/tollr.c | 19 + src/varicode.c | 515 + src/varicode.h | 52 + src/varicode_table.h | 338 + src/vhf_deframe_c2.c | 110 + src/vhf_frame_c2.c | 105 + src/wval.h | 219 + 228 files changed, 125846 insertions(+) create mode 100644 src/CMakeLists.txt create mode 100644 src/H2064_516_sparse_test.h create mode 100644 src/HRA_112_112.c create mode 100644 src/HRA_112_112.h create mode 100644 src/HRA_112_112_test.h create mode 100644 src/HRA_56_56.c create mode 100644 src/HRA_56_56.h create mode 100644 src/HRAa_1536_512.c create mode 100644 src/HRAa_1536_512.h create mode 100644 src/HRAb_396_504.c create mode 100644 src/HRAb_396_504.h create mode 100644 src/H_1024_2048_4f.c create mode 100644 src/H_1024_2048_4f.h create mode 100644 src/H_128_256_5.c create mode 100644 src/H_128_256_5.h create mode 100644 src/H_16200_9720.c create mode 100644 src/H_16200_9720.h create mode 100644 src/H_2064_516_sparse.c create mode 100644 src/H_2064_516_sparse.h create mode 100644 src/H_212_158.c create mode 100644 src/H_212_158.h create mode 100644 src/H_256_512_4.c create mode 100644 src/H_256_512_4.h create mode 100644 src/H_256_768_22.c create mode 100644 src/H_256_768_22.h create mode 100644 src/H_4096_8192_3d.c create mode 100644 src/H_4096_8192_3d.h create mode 100644 src/_kiss_fft_guts.h create mode 100644 src/bpf.h create mode 100644 src/bpfb.h create mode 100644 src/c2dec.c create mode 100644 src/c2enc.c create mode 100644 src/c2file.h create mode 100644 src/c2sim.c create mode 100644 src/ch.c create mode 100644 src/codebook/codes_450.txt create mode 100644 src/codebook/dlsp1.txt create mode 100644 src/codebook/dlsp10.txt create mode 100644 src/codebook/dlsp2.txt create mode 100644 src/codebook/dlsp3.txt create mode 100644 src/codebook/dlsp4.txt create mode 100644 src/codebook/dlsp5.txt create mode 100644 src/codebook/dlsp6.txt create mode 100644 src/codebook/dlsp7.txt create mode 100644 src/codebook/dlsp8.txt create mode 100644 src/codebook/dlsp9.txt create mode 100644 src/codebook/gecb.txt create mode 100644 src/codebook/lsp1.txt create mode 100644 src/codebook/lsp10.txt create mode 100644 src/codebook/lsp2.txt create mode 100644 src/codebook/lsp3.txt create mode 100644 src/codebook/lsp4.txt create mode 100644 src/codebook/lsp5.txt create mode 100644 src/codebook/lsp6.txt create mode 100644 src/codebook/lsp7.txt create mode 100644 src/codebook/lsp8.txt create mode 100644 src/codebook/lsp8910.txt create mode 100644 src/codebook/lsp9.txt create mode 100644 src/codebook/lspjmv1.txt create mode 100644 src/codebook/lspjmv2.txt create mode 100644 src/codebook/lspjmv3.txt create mode 100644 src/codebook/lspvqexp1.txt create mode 100644 src/codebook/lspvqexp2.txt create mode 100644 src/codebook/lspvqexp3.txt create mode 100644 src/codebook/newamp1_energy_q.txt create mode 100644 src/codebook/newamp2_energy_q.txt create mode 100644 src/codebook/train_120_1.txt create mode 100644 src/codebook/train_120_2.txt create mode 100644 src/codec2.c create mode 100644 src/codec2.h create mode 100644 src/codec2_cohpsk.h create mode 100644 src/codec2_fdmdv.h create mode 100644 src/codec2_fft.c create mode 100644 src/codec2_fft.h create mode 100644 src/codec2_fifo.c create mode 100644 src/codec2_fifo.h create mode 100644 src/codec2_fm.h create mode 100644 src/codec2_internal.h create mode 100644 src/codec2_math.h create mode 100644 src/codec2_math_arm.c create mode 100644 src/codec2_ofdm.h create mode 100644 src/cohpsk.c create mode 100644 src/cohpsk_defs.h create mode 100644 src/cohpsk_demod.c create mode 100644 src/cohpsk_get_test_bits.c create mode 100644 src/cohpsk_internal.h create mode 100644 src/cohpsk_mod.c create mode 100644 src/cohpsk_put_test_bits.c create mode 100644 src/comp.h create mode 100644 src/comp_prim.h create mode 100644 src/debug_alloc.h create mode 100644 src/defines.h create mode 100644 src/deframer.c create mode 100644 src/dump.c create mode 100644 src/dump.h create mode 100644 src/fdmdv.c create mode 100644 src/fdmdv_demod.c create mode 100644 src/fdmdv_get_test_bits.c create mode 100644 src/fdmdv_internal.h create mode 100644 src/fdmdv_mod.c create mode 100644 src/fdmdv_put_test_bits.c create mode 100644 src/filter.c create mode 100644 src/filter.h create mode 100644 src/filter_coef.h create mode 100644 src/fm.c create mode 100644 src/fm_demod.c create mode 100644 src/fm_fir_coeff.h create mode 100644 src/fmfsk.c create mode 100644 src/fmfsk.h create mode 100644 src/fmfsk_demod.c create mode 100644 src/fmfsk_mod.c create mode 100644 src/framer.c create mode 100644 src/freedv_1600.c create mode 100644 src/freedv_2020.c create mode 100644 src/freedv_700.c create mode 100644 src/freedv_api.c create mode 100644 src/freedv_api.h create mode 100644 src/freedv_api_internal.h create mode 100644 src/freedv_data_channel.c create mode 100644 src/freedv_data_channel.h create mode 100644 src/freedv_data_raw_rx.c create mode 100644 src/freedv_data_raw_tx.c create mode 100644 src/freedv_data_rx.c create mode 100644 src/freedv_data_tx.c create mode 100644 src/freedv_fsk.c create mode 100644 src/freedv_mixed_rx.c create mode 100644 src/freedv_mixed_tx.c create mode 100644 src/freedv_rx.c create mode 100644 src/freedv_tx.c create mode 100644 src/freedv_vhf_framing.c create mode 100644 src/freedv_vhf_framing.h create mode 100644 src/fsk.c create mode 100644 src/fsk.h create mode 100644 src/fsk_demod.c create mode 100644 src/fsk_get_test_bits.c create mode 100644 src/fsk_mod.c create mode 100644 src/fsk_mod_ext_vco.c create mode 100644 src/fsk_put_test_bits.c create mode 100644 src/generate_codebook.c create mode 100644 src/golay23.c create mode 100644 src/golay23.h create mode 100644 src/golaydectable.h create mode 100644 src/golayenctable.h create mode 100644 src/gp_interleaver.c create mode 100644 src/gp_interleaver.h create mode 100644 src/hanning.h create mode 100644 src/ht_coeff.h create mode 100644 src/interldpc.c create mode 100644 src/interldpc.h create mode 100644 src/interp.c create mode 100644 src/interp.h create mode 100644 src/kiss_fft.c create mode 100644 src/kiss_fft.h create mode 100644 src/kiss_fftr.c create mode 100644 src/kiss_fftr.h create mode 100644 src/ldpc_codes.c create mode 100644 src/ldpc_codes.h create mode 100644 src/ldpc_dec.c create mode 100644 src/ldpc_dec_test.c create mode 100644 src/ldpc_enc.c create mode 100644 src/ldpc_enc_test.c create mode 100644 src/ldpc_noise.c create mode 100644 src/linreg.c create mode 100644 src/linreg.h create mode 100644 src/lpc.c create mode 100644 src/lpc.h create mode 100644 src/lpcnet_freq.c create mode 100644 src/lpcnet_freq.h create mode 100644 src/lsp.c create mode 100644 src/lsp.h create mode 100644 src/machdep.h create mode 100644 src/mbest.c create mode 100644 src/mbest.h create mode 100644 src/modem_probe.c create mode 100644 src/modem_probe.h create mode 100644 src/modem_stats.c create mode 100644 src/modem_stats.h create mode 100644 src/mpdecode_core.c create mode 100644 src/mpdecode_core.h create mode 100644 src/newamp1.c create mode 100644 src/newamp1.h create mode 100644 src/newamp2.c create mode 100644 src/newamp2.h create mode 100644 src/nlp.c create mode 100644 src/nlp.h create mode 100644 src/noise_samples.h create mode 100644 src/octave.c create mode 100644 src/octave.h create mode 100644 src/ofdm.c create mode 100644 src/ofdm_demod.c create mode 100644 src/ofdm_get_test_bits.c create mode 100644 src/ofdm_internal.h create mode 100644 src/ofdm_mod.c create mode 100644 src/ofdm_mode.c create mode 100644 src/ofdm_put_test_bits.c create mode 100644 src/optparse.h create mode 100644 src/os.h create mode 100644 src/pack.c create mode 100644 src/phase.c create mode 100644 src/phase.h create mode 100644 src/phi0.c create mode 100644 src/phi0.h create mode 100644 src/pilot_coeff.h create mode 100644 src/pilots_coh.h create mode 100644 src/postfilter.c create mode 100644 src/postfilter.h create mode 100644 src/quantise.c create mode 100644 src/quantise.h create mode 100644 src/reliable_text.c create mode 100644 src/reliable_text.h create mode 100644 src/rn.h create mode 100644 src/rn_coh.h create mode 100644 src/rxdec_coeff.h create mode 100644 src/sd.c create mode 100644 src/sd.h create mode 100644 src/sine.c create mode 100644 src/sine.h create mode 100644 src/ssbfilt_coeff.h create mode 100644 src/test_bits.h create mode 100644 src/test_bits_coh.h create mode 100644 src/test_bits_ofdm.h create mode 100644 src/tollr.c create mode 100644 src/varicode.c create mode 100644 src/varicode.h create mode 100644 src/varicode_table.h create mode 100644 src/vhf_deframe_c2.c create mode 100644 src/vhf_frame_c2.c create mode 100644 src/wval.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..4c7cabc --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,400 @@ +# +# Generated sources +# + +set(D ${CMAKE_CURRENT_SOURCE_DIR}/codebook) + +# lsp quantisers (2400/1400/1300 modes) +set(CODEBOOKS + ${D}/lsp1.txt + ${D}/lsp2.txt + ${D}/lsp3.txt + ${D}/lsp4.txt + ${D}/lsp5.txt + ${D}/lsp6.txt + ${D}/lsp7.txt + ${D}/lsp8.txt + ${D}/lsp9.txt + ${D}/lsp10.txt +) + +# lspd quantisers (3200 mode) +set(CODEBOOKSD + ${D}/dlsp1.txt + ${D}/dlsp2.txt + ${D}/dlsp3.txt + ${D}/dlsp4.txt + ${D}/dlsp5.txt + ${D}/dlsp6.txt + ${D}/dlsp7.txt + ${D}/dlsp8.txt + ${D}/dlsp9.txt + ${D}/dlsp10.txt +) + +# LSP VQ (1200 mode) +set(CODEBOOKSJMV + ${D}/lspjmv1.txt + ${D}/lspjmv2.txt + ${D}/lspjmv3.txt +) + +# Joint Wo-energy VQ (1200 mode) +set(CODEBOOKSGE ${D}/gecb.txt) + +# 700C two stage VQ +set(CODEBOOKSNEWAMP1 + ${D}/train_120_1.txt + ${D}/train_120_2.txt +) + +set(CODEBOOKSNEWAMP1_ENERGY + ${D}/newamp1_energy_q.txt +) + +# 450 mode two stage VQ +set(CODEBOOKSNEWAMP2 + ${D}/codes_450.txt +) + +set(CODEBOOKSNEWAMP2_ENERGY + ${D}/newamp2_energy_q.txt +) + +# when crosscompiling we need a native executable +if(CMAKE_CROSSCOMPILING) + set(CMAKE_DISABLE_SOURCE_CHANGES OFF) + include(ExternalProject) + ExternalProject_Add(codec2_native + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/codec2_native + BUILD_COMMAND ${CMAKE_COMMAND} --build . --target generate_codebook + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/codec2_native/src/generate_codebook ${CMAKE_CURRENT_BINARY_DIR} + BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook + ) + add_executable(generate_codebook IMPORTED) + set_target_properties(generate_codebook PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook) + add_dependencies(generate_codebook codec2_native) + set(CMAKE_DISABLE_SOURCE_CHANGES ON) +else(CMAKE_CROSSCOMPILING) +# Build code generator binaries. These do not get installed. + # generate_codebook + add_executable(generate_codebook generate_codebook.c) + target_link_libraries(generate_codebook m) + # Make native builds available for cross-compiling. + export(TARGETS generate_codebook + FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake) +endif(CMAKE_CROSSCOMPILING) + + +# codebook.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebook.c + COMMAND generate_codebook lsp_cb ${CODEBOOKS} > ${CMAKE_CURRENT_BINARY_DIR}/codebook.c + DEPENDS generate_codebook ${CODEBOOKS} +) + +# codebookd.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c + COMMAND generate_codebook lsp_cbd ${CODEBOOKSD} > ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c + DEPENDS generate_codebook ${CODEBOOKSD} +) + +# codebookjmv.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookjmv.c + COMMAND generate_codebook lsp_cbjmv ${CODEBOOKSJMV} > ${CMAKE_CURRENT_BINARY_DIR}/codebookjmv.c + DEPENDS generate_codebook ${CODEBOOKSJMV} +) + +# codebookge.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c + COMMAND generate_codebook ge_cb ${CODEBOOKSGE} > ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c + DEPENDS generate_codebook ${CODEBOOKSGE} +) + +# codebooknewamp1.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c + COMMAND generate_codebook newamp1vq_cb ${CODEBOOKSNEWAMP1} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c + DEPENDS generate_codebook ${CODEBOOKSNEWAMP1} +) + +# codebooknewamp1_energy.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c + COMMAND generate_codebook newamp1_energy_cb ${CODEBOOKSNEWAMP1_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c + DEPENDS generate_codebook ${CODEBOOKSNEWAMP1_ENERGY} +) + +# codebooknewamp2.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c + COMMAND generate_codebook newamp2vq_cb ${CODEBOOKSNEWAMP2} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c + DEPENDS generate_codebook ${CODEBOOKSNEWAMP2} +) + +# codebooknewamp2_energy.c +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c + COMMAND generate_codebook newamp2_energy_cb ${CODEBOOKSNEWAMP2_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c + DEPENDS generate_codebook ${CODEBOOKSNEWAMP2_ENERGY} +) + +# +# codec2 library sources +# + +set(CODEC2_SRCS + dump.c + lpc.c + nlp.c + postfilter.c + sine.c + codec2.c + codec2_fft.c + cohpsk.c + codec2_fifo.c + fdmdv.c + fm.c + fsk.c + fmfsk.c + kiss_fft.c + kiss_fftr.c + linreg.c + interp.c + lsp.c + mbest.c + newamp1.c + newamp2.c + ofdm.c + ofdm_mode.c + phase.c + quantise.c + pack.c + codebook.c + codebookd.c + codebookjmv.c + codebookge.c + codebooknewamp1.c + codebooknewamp1_energy.c + codebooknewamp2.c + codebooknewamp2_energy.c + golay23.c + freedv_api.c + freedv_1600.c + freedv_700.c + freedv_2020.c + freedv_fsk.c + freedv_vhf_framing.c + freedv_data_channel.c + varicode.c + modem_stats.c + ofdm.c + mpdecode_core.c + phi0.c + gp_interleaver.c + interldpc.c + filter.c + HRA_112_112.c + HRA_56_56.c + HRAb_396_504.c + H_256_768_22.c + H_256_512_4.c + HRAa_1536_512.c + H_128_256_5.c + H_2064_516_sparse.c + H_4096_8192_3d.c + H_16200_9720.c + H_1024_2048_4f.c + H_212_158.c + ldpc_codes.c + lpcnet_freq.c + reliable_text.c +) + +set(CODEC2_PUBLIC_HEADERS + codec2.h + codec2_fdmdv.h + codec2_cohpsk.h + codec2_fm.h + codec2_ofdm.h + fsk.h + codec2_fifo.h + comp.h + modem_stats.h + freedv_api.h + reliable_text.h + codec2_math.h + ${CODEC2_VERSION_PATH}/version.h +) + +# +# Debug options +# +#add_definitions(-DDEBUG_ALLOC) + +# +# Setup the codec2 library +# +# Patch level version bumps should not change API/ABI. +set(SOVERSION "${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}") +message(STATUS "codec2 version: ${CODEC2_VERSION}") +add_library(codec2 ${CODEC2_SRCS}) +if(UNIX) + target_link_libraries(codec2 PUBLIC m) +endif(UNIX) +if(LPCNET AND lpcnetfreedv_FOUND) + target_link_libraries(codec2 PRIVATE lpcnetfreedv) +endif() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +set_target_properties(codec2 PROPERTIES + SOVERSION ${SOVERSION} + PUBLIC_HEADER "${CODEC2_PUBLIC_HEADERS}" +) + +# Required include directories for export +target_include_directories(codec2 INTERFACE + $ + $ + $ +) + +# Export config for import from full install +install(EXPORT codec2-config + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/codec2 +) + +# Export config for import from build tree. +export(TARGETS codec2 + FILE ${CMAKE_BINARY_DIR}/codec2.cmake +) + +add_executable(c2enc c2enc.c) +target_link_libraries(c2enc codec2) + +add_executable(c2dec c2dec.c) +target_link_libraries(c2dec codec2) + +add_executable(c2sim c2sim.c sd.c) +target_link_libraries(c2sim codec2) + +add_executable(fdmdv_get_test_bits fdmdv_get_test_bits.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) +target_link_libraries(fdmdv_get_test_bits m) + +add_executable(fdmdv_mod fdmdv_mod.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) +target_link_libraries(fdmdv_mod m) + +add_executable(fdmdv_demod fdmdv_demod.c fdmdv.c kiss_fft.c octave.c modem_stats.c codec2_fft.c kiss_fftr.c) +target_link_libraries(fdmdv_demod m) + +add_executable(fdmdv_put_test_bits fdmdv_put_test_bits.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) +target_link_libraries(fdmdv_put_test_bits m) + +add_executable(freedv_tx freedv_tx.c) +target_link_libraries(freedv_tx codec2) + +add_executable(freedv_rx freedv_rx.c) +target_link_libraries(freedv_rx codec2) + +add_executable(freedv_data_raw_tx freedv_data_raw_tx.c) +target_link_libraries(freedv_data_raw_tx codec2) + +add_executable(freedv_data_raw_rx freedv_data_raw_rx.c octave.c) +target_link_libraries(freedv_data_raw_rx codec2) + +add_executable(freedv_data_tx freedv_data_tx.c) +target_link_libraries(freedv_data_tx codec2) + +add_executable(freedv_data_rx freedv_data_rx.c) +target_link_libraries(freedv_data_rx codec2) + +add_executable(freedv_mixed_tx freedv_mixed_tx.c) +target_link_libraries(freedv_mixed_tx codec2) + +add_executable(freedv_mixed_rx freedv_mixed_rx.c) +target_link_libraries(freedv_mixed_rx codec2) + +add_executable(fsk_mod fsk_mod.c) +target_link_libraries(fsk_mod codec2) + +add_executable(fsk_mod_ext_vco fsk_mod_ext_vco.c) +target_link_libraries(fsk_mod_ext_vco m) + +add_executable(fsk_demod fsk_demod.c modem_probe.c octave.c) +target_link_libraries(fsk_demod codec2) + +add_executable(fsk_get_test_bits fsk_get_test_bits.c) +target_link_libraries(fsk_get_test_bits) + +add_executable(fsk_put_test_bits fsk_put_test_bits.c) +target_link_libraries(fsk_put_test_bits codec2) + +add_executable(framer framer.c) +target_link_libraries(framer) + +add_executable(deframer deframer.c) +target_link_libraries(deframer) + +add_executable(fm_demod fm_demod.c fm.c) +target_link_libraries(fm_demod m) + +add_executable(cohpsk_mod cohpsk_mod.c) +target_link_libraries(cohpsk_mod codec2) + +add_executable(ofdm_get_test_bits ofdm_get_test_bits.c) +target_link_libraries(ofdm_get_test_bits codec2) + +add_executable(ofdm_put_test_bits ofdm_put_test_bits.c) +target_link_libraries(ofdm_put_test_bits codec2) + +add_executable(ofdm_mod ofdm_mod.c) +target_link_libraries(ofdm_mod codec2) + +add_executable(ofdm_demod ofdm_demod.c octave.c) +target_link_libraries(ofdm_demod codec2) + +add_executable(fmfsk_mod fmfsk_mod.c) +target_link_libraries(fmfsk_mod codec2) + +add_executable(fmfsk_demod fmfsk_demod.c modem_probe.c octave.c) +target_link_libraries(fmfsk_demod codec2) + +add_executable(vhf_deframe_c2 vhf_deframe_c2.c) +target_link_libraries(vhf_deframe_c2 codec2) + +add_executable(vhf_frame_c2 vhf_frame_c2.c) +target_link_libraries(vhf_frame_c2 codec2) + +add_executable(cohpsk_demod cohpsk_demod.c octave.c) +target_link_libraries(cohpsk_demod codec2) + +add_executable(cohpsk_get_test_bits cohpsk_get_test_bits.c) +target_link_libraries(cohpsk_get_test_bits codec2) + +add_executable(cohpsk_put_test_bits cohpsk_put_test_bits.c octave.c) +target_link_libraries(cohpsk_put_test_bits codec2) + +add_executable(ch ch.c) +target_link_libraries(ch codec2) + +add_executable(tollr tollr.c) + +add_executable(ldpc_noise ldpc_noise.c) +target_link_libraries(ldpc_noise m) + +add_executable(ldpc_enc ldpc_enc.c) +target_link_libraries(ldpc_enc codec2) + +add_executable(ldpc_dec ldpc_dec.c) +target_link_libraries(ldpc_dec codec2) + +install(TARGETS codec2 EXPORT codec2-config + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/codec2 COMPONENT dev +) diff --git a/src/H2064_516_sparse_test.h b/src/H2064_516_sparse_test.h new file mode 100644 index 0000000..d3d4797 --- /dev/null +++ b/src/H2064_516_sparse_test.h @@ -0,0 +1,33 @@ +/* + FILE....: ../src/H2064_516_sparse.h + + Static arrays for CML LDPC codec, generated + by test_ldpc_fsk.m:simple_ut(). + +*/ + +#define NUMBERPARITYBITS 516 +#define MAX_ROW_WEIGHT 12 +#define CODELENGTH 2580 +#define NUMBERROWSHCOLS 2064 +#define MAX_COL_WEIGHT 3 +#define DEC_TYPE 0 +#define MAX_ITER 10 + +#include + +uint16_t H_rows[] = { +870, 276, 110, 54, 226, 85, 59, 153, 31, 60, 46, 75, 139, 239, 56, 13, 30, 45, 63, 34, 54, 21, 77, 204, 441, 11, 297, 126, 148, 104, 269, 57, 369, 213, 117, 479, 53, 124, 405, 97, 42, 132, 67, 103, 389, 156, 237, 105, 418, 11, 60, 12, 195, 32, 11, 21, 10, 191, 176, 237, 140, 376, 115, 9, 149, 304, 129, 308, 234, 129, 453, 215, 176, 213, 151, 169, 41, 106, 421, 103, 83, 62, 124, 3, 574, 39, 31, 472, 69, 8, 40, 352, 62, 275, 74, 121, 125, 35, 83, 52, 21, 422, 229, 233, 62, 125, 181, 175, 28, 43, 113, 340, 71, 4, 40, 249, 134, 168, 97, 15, 26, 135, 104, 80, 206, 108, 307, 494, 358, 82, 159, 137, 19, 210, 6, 19, 65, 285, 45, 154, 276, 14, 137, 79, 241, 235, 116, 129, 84, 3, 122, 370, 132, 451, 77, 89, 262, 79, 170, 469, 24, 163, 128, 18, 120, 244, 8, 153, 151, 441, 95, 327, 284, 96, 84, 35, 61, 286, 20, 22, 68, 131, 106, 30, 280, 343, 99, 124, 262, 208, 277, 44, 349, 41, 10, 761, 39, 445, 165, 81, 393, 194, 18, 250, 589, 70, 307, 1, 365, 47, 4, 9, 283, 133, 90, 601, 117, 228, 212, 58, 420, 230, 142, 25, 57, 518, 88, 180, 24, 122, 379, 143, 33, 30, 140, 68, 150, 320, 55, 33, 132, 2, 22, 16, 272, 44, 264, 49, 174, 234, 86, 39, 10, 278, 177, 178, 20, 126, 18, 90, 6, 184, 158, 111, 246, 229, 221, 48, 267, 6, 172, 49, 291, 185, 67, 50, 157, 66, 32, 525, 257, 196, 260, 92, 72, 163, 144, 329, 134, 156, 47, 82, 49, 391, 26, 1, 88, 52, 56, 8, 111, 138, 219, 57, 447, 182, 263, 38, 98, 75, 36, 83, 245, 5, 419, 63, 12, 287, 603, 58, 507, 37, 2, 214, 539, 55, 53, 81, 186, 73, 85, 97, 91, 332, 123, 66, 188, 591, 158, 324, 88, 53, 214, 84, 389, 104, 271, 211, 7, 393, 281, 242, 119, 848, 705, 428, 50, 28, 52, 15, 5, 2, 230, 38, 76, 295, 217, 1, 56, 170, 145, 5, 72, 460, 203, 145, 211, 121, 68, 538, 44, 133, 87, 494, 325, 161, 781, 370, 51, 115, 262, 106, 614, 29, 220, 189, 224, 165, 17, 72, 46, 17, 64, 19, 447, 13, 9, 270, 4, 91, 471, 35, 23, 407, 34, 38, 82, 321, 112, 195, 651, 7, 43, 431, 249, 171, 196, 311, 15, 66, 16, 633, 37, 94, 102, 23, 3, 214, 252, 256, 173, 316, 125, 96, 341, 71, 73, 338, 256, 165, 140, 108, 471, 434, 137, 642, 172, 51, 113, 67, 172, 93, 23, 318, 514, 50, 118, 245, 169, 14, 64, 40, 859, 95, 308, 65, 93, 42, 339, 46, 7, 96, 142, 36, 131, 60, 13, 12, 25, 31, 183, 94, 43, 241, 162, 26, 232, 120, 128, 118, 89, 164, 51, 29, 127, 177, 180, 95, 332, 284, 32, 802, 452, 25, 382, 187, 892, 432, 162, 126, 587, 342, 205, 170, 255, 73, 605, 579, 398, 305, 58, 110, 178, 244, 306, 178, 166, 28, 368, 224, 582, 135, 420, 618, 264, 234, 346, 223, 439, 399, 150, 655, 242, 248, 750, 199, 242, 277, 112, 163, 545, 359, 487, 322, 570, 64, 402, 412, 252, 116, 147, 109, 27, 197, 204, 251, 282, 455, 118, 390, 225, 382, 215, 373, 554, 371, 568, 289, 225, 405, 160, 414, 290, 109, 524, 406, 344, 188, 385, 33, 791, 261, 171, 475, 100, 183, 156, 564, 78, 395, 144, 497, 334, 45, 167, 79, 27, 520, 239, 449, 138, 347, 667, 572, 61, 278, 136, 375, 231, 320, 167, 304, 389, 185, 171, 109, 468, 243, 206, 210, 305, 160, 682, 514, 433, 152, 375, 1064, 48, 522, 139, 98, 191, 557, 127, 189, 372, 54, 515, 406, 370, 950, 549, 352, 319, 27, 489, 440, 636, 941, 153, 102, 268, 120, 190, 719, 451, 175, 539, 477, 279, 474, 17, 232, 221, 476, 174, 415, 545, 357, 368, 149, 94, 409, 218, 76, 87, 136, 114, 245, 596, 408, 335, 246, 511, 560, 438, 298, 351, 91, 22, 813, 108, 546, 248, 218, 629, 212, 223, 569, 611, 93, 399, 185, 427, 260, 20, 111, 354, 187, 150, 702, 316, 666, 541, 227, 558, 486, 207, 450, 224, 568, 222, 341, 81, 222, 386, 441, 484, 159, 289, 142, 372, 534, 157, 78, 337, 522, 70, 293, 318, 161, 325, 74, 194, 797, 130, 128, 70, 386, 657, 611, 105, 456, 230, 100, 61, 274, 358, 135, 249, 236, 247, 264, 279, 123, 345, 59, 397, 645, 448, 80, 192, 149, 190, 564, 292, 508, 359, 202, 152, 459, 200, 446, 293, 512, 103, 154, 229, 492, 145, 256, 828, 55, 296, 133, 147, 314, 220, 190, 481, 208, 290, 198, 146, 100, 202, 259, 295, 16, 505, 251, 86, 375, 618, 266, 891, 166, 159, 269, 850, 127, 397, 759, 494, 141, 567, 339, 119, 336, 162, 98, 265, 770, 423, 380, 346, 116, 402, 101, 628, 623, 286, 309, 107, 453, 406, 496, 200, 865, 720, 429, 187, 107, 609, 439, 90, 48, 330, 59, 87, 632, 323, 219, 101, 865, 203, 14, 74, 466, 462, 160, 448, 168, 474, 980, 396, 148, 244, 904, 438, 198, 982, 601, 199, 119, 300, 240, 702, 241, 258, 192, 291, 227, 34, 698, 78, 107, 123, 89, 704, 114, 274, 461, 151, 115, 576, 323, 201, 468, 271, 231, 92, 592, 220, 909, 829, 243, 480, 466, 345, 763, 404, 356, 86, 110, 210, 688, 353, 271, 740, 226, 352, 247, 288, 758, 338, 426, 235, 405, 625, 155, 146, 475, 491, 189, 177, 216, 962, 503, 216, 726, 381, 219, 183, 102, 332, 113, 155, 440, 922, 450, 379, 294, 301, 36, 80, 75, 875, 462, 547, 69, 330, 186, 527, 92, 138, 157, 169, 69, 143, 401, 24, 283, 41, 37, 472, 309, 117, 747, 342, 251, 300, 182, 216, 202, 266, 192, 217, 302, 660, 360, 663, 130, 355, 367, 47, 1103, 519, 811, 586, 488, 983, 652, 303, 201, 759, 860, 416, 585, 268, 428, 928, 819, 821, 379, 340, 493, 260, 752, 599, 314, 182, 444, 612, 369, 692, 311, 523, 622, 335, 259, 499, 225, 526, 409, 188, 709, 356, 606, 777, 222, 541, 327, 201, 176, 551, 544, 1008, 372, 628, 181, 523, 549, 476, 464, 240, 593, 181, 254, 223, 305, 285, 595, 217, 887, 550, 552, 278, 381, 621, 517, 953, 538, 265, 581, 313, 540, 366, 626, 647, 511, 467, 508, 890, 63, 976, 275, 312, 885, 598, 254, 180, 687, 196, 398, 146, 675, 380, 101, 443, 122, 85, 531, 347, 463, 167, 536, 724, 710, 288, 351, 232, 387, 424, 650, 363, 544, 540, 248, 279, 121, 479, 267, 218, 445, 485, 240, 737, 692, 1017, 331, 716, 1130, 207, 602, 274, 750, 261, 572, 131, 435, 672, 253, 729, 542, 739, 1062, 731, 619, 328, 65, 769, 502, 898, 966, 158, 211, 289, 193, 314, 784, 533, 396, 567, 497, 280, 696, 348, 290, 383, 636, 526, 470, 622, 541, 411, 286, 378, 561, 374, 194, 349, 166, 143, 390, 697, 533, 570, 304, 615, 709, 476, 679, 454, 287, 114, 904, 535, 786, 270, 308, 828, 302, 506, 732, 626, 533, 584, 186, 456, 495, 350, 317, 672, 343, 315, 919, 367, 820, 548, 296, 614, 635, 209, 543, 350, 733, 239, 376, 287, 344, 470, 563, 607, 319, 323, 473, 428, 677, 212, 263, 386, 567, 435, 328, 616, 255, 729, 147, 320, 855, 267, 426, 261, 458, 977, 670, 173, 478, 366, 112, 71, 419, 968, 139, 606, 292, 275, 463, 344, 671, 810, 77, 465, 755, 579, 179, 353, 357, 442, 599, 354, 805, 453, 407, 193, 510, 285, 513, 583, 645, 325, 173, 621, 573, 423, 479, 912, 130, 300, 227, 184, 391, 293, 204, 673, 282, 371, 324, 313, 228, 334, 343, 655, 42, 532, 559, 658, 484, 921, 373, 944, 329, 184, 302, 861, 205, 414, 771, 606, 312, 652, 503, 413, 415, 238, 449, 781, 874, 586, 544, 402, 468, 525, 155, 845, 714, 295, 564, 197, 509, 863, 640, 209, 986, 808, 691, 317, 355, 789, 779, 281, 141, 594, 336, 105, 682, 360, 299, 559, 876, 608, 315, 401, 632, 480, 161, 577, 284, 657, 1012, 481, 330, 388, 1011, 524, 423, 1019, 812, 416, 168, 322, 258, 710, 703, 1027, 195, 447, 259, 633, 990, 710, 215, 410, 458, 760, 174, 312, 605, 269, 206, 617, 534, 554, 497, 296, 393, 236, 784, 483, 1189, 892, 602, 788, 709, 382, 831, 537, 695, 99, 563, 424, 759, 432, 281, 795, 319, 422, 684, 331, 866, 377, 638, 247, 501, 711, 463, 475, 631, 507, 310, 298, 252, 1059, 757, 364, 785, 410, 233, 411, 236, 487, 339, 341, 473, 1022, 527, 515, 700, 380, 388, 414, 253, 913, 466, 773, 238, 638, 335, 896, 298, 310, 658, 461, 207, 205, 550, 29, 425, 141, 76, 649, 442, 322, 832, 730, 307, 385, 401, 268, 301, 311, 306, 291, 364, 864, 560, 840, 199, 358, 385, 179, 1142, 520, 986, 600, 712, 1018, 661, 365, 237, 769, 953, 517, 605, 396, 459, 991, 867, 899, 415, 700, 556, 324, 788, 639, 778, 226, 743, 685, 706, 883, 362, 970, 785, 387, 376, 734, 392, 730, 448, 250, 731, 387, 665, 1015, 243, 812, 391, 795, 346, 588, 737, 1077, 874, 933, 412, 817, 585, 550, 491, 273, 640, 208, 542, 338, 436, 895, 694, 257, 899, 583, 629, 327, 815, 744, 573, 1226, 727, 272, 607, 331, 1050, 594, 754, 716, 515, 524, 695, 1086, 297, 1177, 400, 678, 1004, 648, 294, 555, 780, 316, 486, 689, 679, 430, 136, 717, 233, 400, 646, 383, 530, 263, 574, 749, 790, 336, 377, 409, 609, 499, 686, 518, 595, 601, 334, 531, 197, 485, 348, 424, 701, 579, 500, 1147, 797, 1085, 404, 738, 1200, 253, 714, 427, 756, 303, 610, 313, 1399, 770, 455, 732, 796, 824, 1230, 927, 929, 397, 276, 794, 741, 957, 1052, 1002, 213, 392, 566, 461, 832, 798, 433, 590, 723, 718, 755, 878, 446, 615, 669, 776, 608, 659, 565, 443, 457, 407, 577, 631, 255, 365, 399, 152, 766, 814, 556, 640, 1137, 1000, 767, 745, 733, 1194, 529, 238, 1034, 789, 1314, 436, 493, 853, 492, 654, 809, 885, 636, 596, 270, 848, 774, 364, 512, 832, 411, 516, 927, 700, 857, 588, 703, 756, 758, 315, 574, 810, 885, 416, 600, 690, 417, 501, 626, 707, 581, 377, 916, 660, 808, 587, 265, 395, 613, 906, 381, 661, 310, 799, 148, 632, 941, 750, 578, 277, 1065, 1242, 1018, 326, 551, 459, 134, 99, 510, 1097, 198, 673, 531, 450, 697, 394, 749, 948, 193, 664, 965, 818, 454, 419, 556, 721, 742, 473, 886, 647, 694, 209, 906, 433, 674, 620, 666, 464, 446, 634, 728, 430, 630, 990, 435, 371, 534, 394, 467, 928, 326, 723, 490, 816, 699, 490, 530, 384, 361, 772, 374, 554, 619, 672, 613, 924, 677, 1079, 404, 367, 337, 898, 228, 418, 844, 766, 317, 680, 690, 566, 680, 333, 726, 960, 942, 637, 607, 452, 664, 698, 235, 942, 736, 368, 584, 362, 650, 871, 683, 328, 1141, 988, 715, 915, 495, 1084, 919, 613, 179, 888, 355, 144, 1243, 655, 551, 582, 993, 730, 340, 548, 774, 643, 469, 651, 392, 843, 1196, 590, 573, 545, 1211, 593, 439, 1027, 869, 586, 442, 762, 502, 758, 822, 1048, 254, 628, 417, 683, 996, 752, 384, 725, 676, 842, 360, 374, 688, 353, 549, 661, 648, 584, 624, 348, 530, 250, 1135, 667, 1298, 1033, 623, 1102, 715, 594, 888, 871, 833, 321, 634, 491, 766, 505, 297, 1024, 388, 460, 707, 735, 1023, 444, 1098, 629, 505, 807, 581, 543, 687, 598, 337, 434, 806, 1111, 761, 521, 826, 547, 257, 434, 412, 688, 577, 363, 839, 1187, 1306, 648, 808, 504, 760, 429, 309, 916, 503, 777, 403, 1076, 512, 1127, 592, 351, 692, 711, 474, 587, 558, 487, 498, 326, 164, 902, 456, 471, 836, 748, 469, 480, 537, 553, 507, 347, 490, 498, 420, 1010, 598, 1022, 283, 362, 958, 553, 1156, 712, 1108, 718, 753, 1067, 681, 398, 483, 903, 956, 698, 612, 578, 489, 1294, 990, 920, 592, 1113, 862, 464, 1435, 835, 788, 280, 957, 795, 743, 1108, 425, 1026, 879, 488, 701, 931, 610, 741, 1061, 282, 830, 413, 983, 1159, 1067, 1071, 437, 843, 506, 610, 890, 1133, 1034, 954, 452, 925, 785, 836, 620, 597, 722, 258, 858, 342, 455, 927, 706, 299, 1104, 660, 811, 333, 1173, 878, 858, 1336, 816, 457, 948, 563, 1054, 678, 764, 733, 565, 555, 873, 1150, 485, 1303, 496, 796, 1218, 823, 634, 624, 878, 686, 684, 879, 1100, 454, 154, 1002, 357, 822, 676, 740, 578, 350, 1124, 834, 876, 500, 486, 426, 663, 529, 947, 656, 621, 823, 361, 615, 421, 585, 417, 538, 707, 656, 861, 1236, 831, 1087, 508, 768, 1269, 292, 786, 478, 1043, 593, 765, 408, 1439, 806, 528, 801, 912, 882, 1348, 1050, 1077, 528, 349, 996, 799, 976, 1265, 1100, 674, 470, 617, 540, 847, 862, 457, 757, 841, 973, 921, 969, 539, 646, 699, 959, 654, 670, 787, 872, 559, 744, 1276, 666, 273, 569, 833, 191, 775, 896, 576, 935, 1231, 1046, 923, 804, 949, 1201, 572, 303, 1162, 827, 1346, 897, 612, 937, 599, 675, 992, 930, 644, 1151, 301, 1103, 1086, 482, 831, 1130, 472, 753, 1007, 852, 1054, 635, 705, 955, 823, 425, 596, 962, 908, 445, 880, 867, 478, 509, 653, 775, 591, 510, 1055, 798, 1021, 740, 294, 427, 679, 973, 484, 686, 369, 836, 410, 802, 1245, 883, 649, 431, 1102, 1267, 1262, 557, 1092, 837, 164, 881, 726, 1120, 273, 697, 1097, 609, 708, 663, 838, 985, 552, 968, 1042, 1044, 483, 520, 691, 736, 756, 521, 895, 779, 914, 266, 1356, 548, 742, 964, 888, 481, 877, 685, 791, 437, 696, 991, 825, 643, 708, 969, 683, 1080, 1001, 1012, 617, 1030, 734, 792, 1069, 504, 394, 864, 595, 676, 782, 695, 837, 1154, 819, 1104, 437, 413, 383, 913, 627, 624, 987, 1394, 449, 839, 825, 1054, 1180, 378, 1211, 1090, 1114, 804, 897, 558, 1032, 746, 246, 1051, 870, 958, 725, 536, 702, 1035, 971, 356, 1195, 1061, 827, 1090, 526, 1092, 1250, 1025, 231, 947, 659, 272, 1284, 802, 826, 902, 1040, 870, 345, 658, 822, 715, 1012, 872, 575, 945, 1232, 805, 720, 580, 1215, 854, 603, 1074, 1056, 991, 528, 1218, 642, 1060, 1010, 1203, 288, 978, 884, 762, 1118, 763, 430, 786, 922, 928, 886, 529, 706, 403, 1104, 693, 868, 815, 670, 366, 546, 378, 1151, 901, 1522, 1107, 671, 1333, 745, 724, 1230, 1073, 911, 429, 646, 611, 889, 746, 403, 1032, 616, 637, 1382, 767, 1083, 451, 1212, 803, 1318, 849, 662, 955, 712, 971, 571, 496, 977, 1145, 1160, 931, 830, 580, 359, 805, 668, 770, 771, 390, 882, 1329, 1572, 851, 829, 535, 944, 535, 373, 930, 669, 828, 565, 1219, 620, 1308, 793, 361, 938, 859, 482, 946, 1186, 742, 591, 846, 221, 906, 641, 631, 1068, 780, 536, 517, 844, 652, 721, 552, 523, 627, 525, 1186, 944, 1039, 794, 498, 1076, 654, 1167, 856, 1264, 890, 768, 1225, 691, 729, 543, 936, 1016, 1210, 656, 604, 608, 1324, 1035, 1095, 639, 1311, 1281, 877, 1519, 923, 974, 431, 1057, 903, 809, 1137, 569, 1243, 1118, 880, 720, 1102, 1168, 821, 1193, 432, 999, 555, 1013, 1375, 1200, 1080, 495, 982, 519, 630, 1066, 1164, 1091, 1006, 1039, 943, 1195, 1103, 665, 894, 908, 329, 1081, 951, 641, 1060, 793, 719, 1232, 713, 847, 395, 1213, 1038, 1041, 1587, 984, 752, 1125, 929, 1095, 988, 940, 845, 603, 623, 875, 1158, 772, 1503, 506, 816, 1500, 1007, 638, 633, 936, 703, 704, 1173, 1171, 724, 175, 1051, 604, 1174, 682, 819, 854, 384, 1196, 1249, 1029, 509, 504, 537, 722, 571, 1121, 739, 838, 1027, 363, 743, 570, 818, 546, 721, 736, 842, 905, 1372, 932, 1178, 863, 840, 1334, 299, 855, 499, 1293, 1202, 1061, 689, 1516, 866, 614, 862, 955, 981, 1511, 1153, 1256, 768, 501, 1044, 1282, 985, 1455, 1235, 711, 1001, 627, 641, 889, 914, 644, 877, 913, 1149, 1138, 1188, 557, 871, 787, 1015, 727, 731, 868, 892, 560, 778, 1331, 1025, 318, 619, 864, 203, 911, 1052, 705, 1079, 1461, 1090, 994, 1023, 1050, 1535, 625, 999, 1344, 933, 1498, 1045, 939, 1249, 650, 910, 1294, 951, 649, 1163, 418, 1133, 1089, 493, 1116, 1309, 561, 857, 1073, 1112, 1223, 909, 807, 989, 1053, 997, 813, 976, 1074, 527, 1070, 966, 775, 511, 1004, 800, 717, 933, 1120, 900, 1389, 922, 684, 440, 704, 1106, 668, 767, 757, 847, 936, 835, 1293, 893, 895, 647, 1269, 1480, 1304, 782, 1166, 952, 566, 1124, 846, 1203, 354, 893, 1200, 952, 792, 667, 1164, 1003, 718, 1002, 1139, 1163, 1096, 685, 769, 1003, 977, 532, 1128, 905, 926, 443, 1405, 576, 835, 1116, 1145, 562, 1063, 737, 883, 639, 790, 1021, 967, 772, 995, 1165, 754, 1422, 1583, 1075, 997, 1082, 748, 827, 1197, 516, 465, 1451, 645, 879, 809, 739, 855, 1155, 948, 1117, 460, 465, 791, 1098, 693, 673, 1087, 1400, 532, 910, 829, 1171, 1214, 400, 1221, 1603, 1323, 834, 965, 787, 1045, 918, 589, 1074, 1171, 1116, 744, 905, 931, 1176, 1005, 589, 1238, 1107, 972, 1115, 600, 1181, 1609, 1105, 521, 1158, 1049, 306, 1389, 804, 963, 971, 1199, 917, 716, 668, 973, 998, 1174, 903, 590, 1130, 1472, 841, 811, 597, 1399, 956, 719, 1301, 1083, 1044, 622, 1446, 1097, 1206, 1119, 1345, 604, 1324, 920, 1129, 1340, 798, 444, 980, 997, 1232, 1087, 884, 1093, 422, 1135, 909, 1026, 1055, 824, 462, 678, 945, 1234, 1149, 1542, 1177, 675, 1421, 779, 1013, 1486, 1388, 1191, 514, 1219, 760, 974, 773, 477, 1190, 784, 674, 1428, 778, 1257, 477, 1252, 901, 1352, 1037, 1224, 970, 813, 1009, 1162, 519, 1088, 1157, 1409, 1182, 1089, 755, 438, 1076, 725, 869, 900, 436, 1148, 1421, 1588, 956, 978, 749, 950, 932, 516, 1046, 814, 865, 588, 1303, 713, 1614, 1024, 421, 959, 897, 518, 987, 1275, 765, 887, 893, 333, 925, 732, 635, 1169, 910, 1434, 575, 959, 653, 850, 728, 583, 1093, 542, 1316, 1031, 1059, 1122, 642, 1121, 891, 1209, 925, 1299, 896, 932, 1288, 934, 984, 580, 1113, 1413, 1224, 964, 643, 773, 1337, 1663, 1341, 657, 1357, 1473, 1292, 1551, 970, 1209, 792, 1339, 1141, 1140, 1320, 616, 1383, 1126, 980, 1014, 1146, 1245, 859, 1298, 513, 1182, 662, 1014, 1562, 1297, 1151, 502, 1139, 874, 1259, 1645, 1169, 1242, 1072, 1412, 1115, 1275, 1466, 1239, 1038, 1184, 458, 1094, 1440, 810, 1352, 1339, 830, 1354, 801, 848, 671, 1300, 1147, 1047, 1625, 1117, 1046, 1327, 1047, 1237, 1101, 1018, 1016, 745, 1066, 1132, 1221, 841, 1512, 522, 853, 1535, 1248, 975, 694, 1143, 824, 1009, 1185, 1288, 908, 200, 1308, 904, 1665, 687, 843, 943, 1199, 1198, 1379, 1168, 571, 789, 630, 846, 602, 1342, 1350, 995, 1114, 408, 1043, 1304, 945, 751, 793, 741, 1072, 1006, 1401, 1331, 1296, 1152, 856, 1337, 321, 881, 937, 1318, 1535, 1560, 806, 1696, 924, 625, 994, 1058, 996, 1649, 1183, 1442, 1118, 901, 1094, 1408, 1016, 1653, 1259, 800, 1317, 677, 815, 894, 1017, 1278, 957, 1109, 1284, 1321, 1220, 947, 1383, 860, 1220, 783, 873, 979, 1025, 1228, 1007, 1417, 1231, 735, 783, 872, 492, 1028, 1244, 852, 1144, 1645, 1172, 1088, 1110, 1204, 1622, 738, 1146, 1513, 1106, 1564, 1079, 1021, 1436, 776, 917, 1467, 1051, 814, 1217, 812, 1174, 1271, 863, 1187, 1461, 644, 1308, 1154, 1263, 1225, 1121, 867, 1110, 1157, 1139, 989, 1033, 1270, 1163, 1170, 1037, 880, 803, 1098, 807, 968, 1446, 1235, 1064, 1547, 979, 842, 500, 838, 1398, 939, 916, 953, 920, 946, 851, 1428, 1210, 960, 762, 1456, 1519, 1384, 898, 1361, 995, 1100, 1508, 856, 1284, 553, 1330, 1249, 1258, 1020, 764, 1165, 1179, 1047, 1056, 1285, 1266, 1286, 853, 1397, 1515, 987, 547, 1296, 1215, 965, 489, 1444, 800, 849, 1300, 1242, 662, 1085, 818, 918, 748, 954, 1024, 1022, 954, 1109, 1218, 821, 1431, 1587, 1315, 1081, 1140, 754, 943, 1371, 1003, 840, 1475, 722, 1081, 1033, 1216, 1254, 1175, 1122, 1203, 728, 488, 1189, 1377, 1136, 907, 1267, 1416, 751, 1169, 1101, 1289, 1241, 597, 1322, 1625, 1332, 961, 985, 915, 1128, 1069, 764, 1175, 1177, 1156, 889, 1075, 1088, 1251, 1031, 738, 1523, 1229, 994, 1489, 637, 1185, 1651, 1112, 680, 1608, 1197, 513, 1538, 978, 1040, 1000, 1432, 1030, 887, 833, 1057, 1094, 1565, 1190, 696, 1178, 1556, 1045, 1307, 1294, 1436, 1096, 747, 1485, 1128, 1430, 664, 1653, 1180, 1597, 1167, 1452, 776, 1341, 1305, 1142, 1418, 849, 562, 1247, 998, 1391, 1161, 941, 1387, 912, 1149, 1078, 1029, 1141, 1197, 582, 701, 961, 1423, 1195, 1674, 1205, 964, 1633, 929, 1127, 1571, 1581, 1291, 681, 1272, 781, 981, 783, 765, 1295, 974, 1015, 1516, 873, 1324, 482, 1262, 1371, 1648, 1101, 1240, 1115, 837, 1048, 1301, 763, 1260, 1229, 1426, 1316, 1208, 963, 1083, 1125, 992, 882, 1034, 467, 1176, 1429, 1610, 1452, 1376, 753, 1184, 1239, 777, 1291, 1264, 1223, 659, 1378, 797, 1632, 1071, 575, 1099, 926, 801, 1042, 1322, 1111, 1234, 1112, 979, 962, 993, 713, 1271, 1008, 1533, 653, 999, 746, 876, 751, 1123, 1319, 693, 1354, 1209, 1207, 1159, 1250, 1192, 1385, 1350, 952, 1543, 1020, 1067, 1632, 1119, 1635, 1165, 1161, 1483, 1347, 983, 669, 796, 1412, 1684, 1374, 886, 1468, 1479, 1594, 1781, 1113, 1274, 969, 1343, 1403, 1261, 1440, 681, 1424, 1216, 1207, 1210, 1172, 1325, 935, 1414, 1123, 1287, 1158, 1032, 1589, 1554, 1326, 562, 1313, 949, 1296, 1760, 1260, 1552, 1129, 1422, 1258, 1542, 1525, 1253, 1089, 1255, 1131, 1220, 1652, 869, 1410, 1351, 1266, 1518, 868, 884, 1302, 1486, 1362, 1185, 1652, 1172, 1205, 1388, 1479, 1270, 1224, 1297, 1138, 817, 1170, 1214, 1240, 1153, 1551, 817, 915, 1553, 1319, 1496, 717, 1194, 850, 1091, 1256, 1541, 1039, 561, 1358, 938, 1707, 1557, 1368, 1160, 1342, 1404, 1515, 1435, 727, 790, 1396, 854, 891, 1783, 1365, 1271, 1183, 1400, 1205, 1367, 1068, 794, 1006, 803, 1485, 1164, 1422, 1502, 1334, 1359, 1215, 1698, 1042, 1204, 1028, 1458, 1550, 1600, 1111, 1700, 1132, 992, 1134, 1430, 1049, 1731, 1323, 1555, 1228, 1456, 1099, 1545, 1091, 1685, 1445, 857, 1612, 735, 1126, 946, 1168, 1399, 1222, 1192, 1373, 1575, 1317, 1073, 1506, 1143, 1440, 1438, 1263, 1105, 1327, 1256, 1126, 1619, 1265, 924, 961, 1023, 866, 1070, 1437, 1132, 1487, 1675, 1333, 1423, 1182, 1295, 1683, 939, 1154, 1617, 1212, 1665, 1414, 1107, 1534, 1282, 1402, 1485, 1096, 1059, 1495, 981, 1235, 1381, 1017, 1240, 1534, 875, 1561, 1279, 1354, 1353, 1396, 1243, 1547, 1356, 1166, 1181, 1343, 1285, 1247, 1255, 1357, 975, 919, 1318, 988, 1477, 1521, 1358, 1206, 1549, 1146, 1117, 1305, 1019, 1406, 982, 942, 1014, 1075, 1004, 860, 1512, 1241, 1053, 858, 1620, 1527, 1415, 1251, 1497, 1108, 1166, 1667, 967, 1434, 665, 1335, 1313, 1406, 1283, 902, 1362, 1358, 1501, 1222, 1427, 1280, 1309, 984, 1647, 1573, 1449, 618, 1328, 1310, 1120, 844, 1739, 1424, 1246, 1474, 1561, 699, 1277, 826, 1386, 1257, 1227, 1056, 1189, 975, 1125, 1329, 917, 1464, 1784, 1405, 1152, 1153, 935, 1092, 1464, 1040, 907, 1592, 1428, 1136, 1063, 1420, 1390, 1251, 1217, 1268, 1143, 708, 1603, 1407, 1160, 1207, 1340, 1488, 998, 1315, 1344, 1300, 1365, 1134, 1401, 1629, 1366, 1008, 1013, 1211, 1179, 1188, 825, 1262, 1393, 1469, 1173, 1077, 1248, 1417, 1095, 907, 1654, 1320, 1065, 1598, 799, 1601, 1656, 1190, 714, 1754, 1595, 651, 1647, 1063, 1397, 1157, 1481, 1237, 1060, 1482, 1287, 1192, 1618, 1394, 1259, 1558, 1635, 1162, 1377, 1803, 1492, 1476, 774, 1626, 1420, 1504, 689, 1687, 1372, 1616, 1199, 1471, 934, 1342, 1351, 1261, 1442, 923, 723, 1361, 1084, 1450, 1233, 1011, 1389, 1338, 1186, 1340, 1110, 1327, 1225, 690, 1483, 1064, 1443, 1258, 1697, 1213, 966, 1687, 1161, 1314, 1605, 1877, 1477, 747, 1280, 1028, 1138, 820, 782, 1560, 1038, 1592, 1517, 894, 1586, 568, 1276, 1379, 1753, 1230, 1749, 1122, 1458, 1080, 1526, 1411, 1309, 1332, 1430, 1381, 1255, 1648, 1248, 1267, 1459, 914, 1085, 1184, 1180, 1459, 1629, 1463, 1378, 845, 1343, 1415, 1037, 1292, 1336, 1431, 734, 1426, 1193, 1688, 1279, 940, 1313, 1036, 1155, 1099, 1406, 1490, 1326, 1556, 1069, 1005, 1142, 1010, 1273, 1312, 1546, 761, 1624, 1065, 921, 1055, 1134, 1518, 839, 1435, 1234, 1244, 1238, 1297, 1254, 1494, 1484, 1145, 1604, 1404, 1289, 1645, 1131, 1658, 1198, 1392, 1557, 1667, 1082, 972, 918, 1432, 1701, 1637, 1312, 1579, 1680, 1864, 1825, 1194, 1457, 1370, 1411, 1479, 1398, 1510, 1049, 1447, 1576, 1252, 1290, 1360, 1679, 1070, 1506, 1699, 1359, 1204, 1222, 1818, 1596, 1363, 834, 1383, 1513, 1499, 1766, 1646, 1629, 1328, 1423, 1460, 1640, 1923, 1302, 1216, 1364, 1369, 1233, 1739, 1031, 1624, 1505, 1434, 1630, 1451, 1196, 1548, 1527, 1454, 1520, 1707, 1407, 1467, 1561, 1604, 1319, 1543, 1456, 1374, 881, 1453, 1323, 1735, 1246, 1660, 1381, 1188, 1709, 1391, 1532, 771, 1264, 851, 1219, 1322, 1639, 1144, 960, 1615, 1136, 1732, 1690, 1371, 1433, 1377, 1459, 1571, 1447, 1058, 1245, 1451, 1053, 949, 1894, 1531, 1305, 1253, 1493, 1303, 1380, 1581, 1330, 1082, 1036, 1541, 1520, 1437, 1585, 1359, 1425, 1410, 1857, 1465, 1239, 1208, 1585, 1642, 1807, 1743, 1710, 1167, 1135, 1465, 1513, 1175, 1759, 1524, 1655, 1348, 1471, 1150, 1581, 1917, 1694, 1545, 911, 1622, 852, 1348, 1191, 1261, 1410, 1491, 1237, 1401, 1822, 1325, 1457, 1668, 1236, 1449, 1698, 1270, 1392, 1418, 1486, 1133, 1797, 1503, 1041, 1198, 1392, 1041, 1632, 1621, 1311, 1638, 1832, 1364, 1452, 1499, 1472, 1913, 1295, 1208, 1766, 1369, 1780, 1541, 1462, 1545, 1336, 1569, 1693, 1385, 1276, 1547, 1266, 1338, 1505, 1029, 1493, 1670, 958, 1572, 1607, 1446, 1634, 1530, 1414, 1704, 1552, 1441, 1653, 1480, 1310, 1712, 1347, 1403, 1408, 951, 1360, 1213, 1562, 1710, 1419, 1528, 1589, 1443, 1345, 1636, 1071, 1637, 1026, 1644, 1030, 1638, 1221, 1119, 1570, 1712, 1253, 989, 1742, 1790, 1537, 1619, 1508, 1150, 1326, 1926, 1470, 1702, 940, 1733, 1362, 1429, 1299, 938, 1606, 1453, 1568, 1335, 1738, 1564, 1312, 1275, 1718, 1575, 1528, 937, 1491, 1415, 1179, 900, 1843, 1471, 1345, 1536, 1573, 930, 1301, 1020, 1482, 1412, 1274, 1105, 1347, 1344, 1764, 1729, 1062, 1563, 1843, 1532, 1228, 1302, 1273, 1397, 1591, 1391, 1052, 1662, 1470, 1181, 1425, 1427, 1578, 1263, 1395, 1292, 1317, 899, 1808, 1539, 1650, 1231, 1376, 1515, 1001, 1330, 1603, 1331, 1419, 1369, 1444, 1709, 1374, 1068, 1019, 1306, 1298, 1293, 1011, 1831, 1502, 1590, 1238, 1148, 1269, 1555, 1114, 1036, 1740, 1325, 1405, 1670, 1062, 1773, 1688, 1335, 1476, 1827, 1723, 820, 1748, 1072, 1536, 1398, 1732, 1587, 1400, 1529, 1355, 1304, 1651, 1722, 1268, 1673, 1800, 1178, 1503, 1847, 1656, 1497, 1595, 1689, 1576, 1740, 963, 1822, 1393, 1743, 1246, 1499, 1106, 1356, 1387, 1367, 1745, 1009, 780, 1458, 1206, 1673, 1250, 1662, 1611, 1555, 1193, 1353, 1597, 1559, 1445, 1187, 1677, 1155, 1464, 1497, 1713, 1357, 1450, 1696, 1257, 1339, 1685, 1894, 1615, 1733, 1315, 1364, 1363, 1418, 1123, 1738, 1445, 1620, 1660, 1156, 1599, 926, 1507, 1640, 1763, 1289, 1791, 1648, 1601, 1321, 1544, 1577, 1683, 1376, 1543, 1540, 1361, 1666, 1273, 1433, 1504, 993, 1265, 1288, 1454, 1482, 1736, 1481, 1439, 1286, 1467, 1461, 1474, 1510, 1489, 1681, 934, 1643, 1606, 1791, 1491, 1341, 1429, 1127, 1227, 1299, 1600, 1904, 1395, 1588, 1084, 1057, 1183, 1252, 1283, 1478, 1611, 1320, 1851, 1355, 1223, 1147, 1403, 1576, 1035, 1460, 1260, 1641, 1538, 1368, 1475, 1511, 1672, 1329, 1764, 1426, 1353, 1691, 1214, 1915, 1247, 1538, 1658, 1716, 1689, 1000, 986, 1884, 1975, 1730, 1899, 1623, 1834, 1981, 1952, 1473, 1490, 1529, 1557, 1748, 1544, 1617, 1720, 1690, 1667, 1630, 1641, 1678, 1750, 1367, 1525, 1786, 1447, 1395, 1390, 1826, 1598, 1427, 861, 1582, 1658, 1878, 1768, 1651, 1699, 1532, 1498, 1529, 1765, 1939, 1384, 1723, 1872, 1758, 1438, 1742, 1093, 1657, 1759, 1650, 1634, 1519, 1290, 1569, 1573, 1591, 1643, 1928, 1411, 1786, 1582, 1661, 1521, 1657, 1609, 1633, 972, 1468, 1644, 1776, 1388, 1692, 1409, 1278, 1812, 1631, 1873, 1310, 1272, 1109, 1333, 1522, 1722, 1612, 1048, 1741, 1674, 1755, 1711, 1568, 1437, 1484, 1567, 1746, 1583, 1148, 1307, 1570, 1314, 950, 1906, 1654, 1379, 1494, 1518, 1455, 1393, 1703, 1390, 1606, 1226, 1669, 1580, 1692, 1719, 1366, 1438, 1433, 1982, 1514, 1676, 1609, 1742, 1690, 1819, 1763, 1730, 1321, 1566, 2031, 1680, 1741, 1839, 1762, 1925, 1536, 1524, 1283, 1723, 1924, 1706, 1558, 1375, 1758, 1417, 1691, 1350, 1727, 1475, 1537, 1457, 1506, 1917, 1386, 1695, 1753, 1355, 1756, 1775, 1613, 1563, 1425, 1488, 1176, 1827, 1556, 1131, 1349, 1448, 1281, 1749, 1664, 1572, 1744, 1860, 1813, 1762, 1642, 1689, 1928, 1570, 1878, 1890, 1739, 1809, 1799, 1663, 1591, 1495, 1695, 1762, 1580, 1306, 1879, 1462, 1413, 1637, 1078, 1567, 1785, 1078, 1659, 1801, 1530, 1769, 1579, 1549, 1747, 1682, 1796, 1668, 1727, 1822, 1836, 1378, 1551, 1501, 1810, 1478, 1278, 1574, 1764, 1533, 1627, 1714, 1489, 1480, 1726, 1584, 1643, 1387, 1655, 1058, 1720, 1370, 1595, 1795, 1832, 1843, 1212, 1871, 1840, 1886, 1831, 1720, 1272, 1765, 1956, 1496, 1855, 1144, 1830, 1404, 1593, 1507, 967, 1768, 1671, 1842, 1469, 1829, 1593, 1621, 1516, 1763, 1612, 1982, 1124, 1613, 1715, 1375, 1311, 1844, 1509, 1448, 1542, 1660, 1005, 1490, 1408, 1620, 1707, 1277, 1568, 1373, 1887, 1827, 1778, 1510, 1782, 1886, 1537, 1424, 1402, 1282, 1496, 1681, 1649, 1286, 1858, 1566, 1622, 1972, 1562, 1868, 1316, 1754, 1725, 1559, 1086, 1873, 1594, 1792, 1351, 1579, 1889, 1043, 1380, 1789, 1588, 1481, 1487, 1650, 1717, 1602, 1413, 1226, 1370, 1368, 1346, 1493, 1902, 1554, 1713, 1564, 1244, 1432, 1597, 1328, 1285, 1828, 1484, 1466, 1719, 1550, 1909, 1854, 1582, 1596, 1903, 1751, 1530, 1905, 1227, 1771, 1605, 1807, 1777, 1738, 1592, 1460, 1507, 1708, 1745, 1385, 1686, 1869, 1277, 1517, 1867, 1776, 1846, 1809, 1803, 1674, 1748, 1191, 1837, 1420, 1754, 1274, 1644, 1201, 1366, 1450, 1402, 1757, 1140, 1500, 1465, 1509, 1793, 1352, 1804, 1702, 1560, 1431, 1549, 1679, 1769, 1615, 1229, 1740, 1775, 1534, 1498, 1757, 1416, 1567, 1711, 1360, 1472, 1705, 1923, 1782, 1746, 1767, 1575, 1531, 1628, 1772, 1868, 1771, 1628, 1719, 1287, 1623, 1900, 1709, 1703, 1840, 1382, 1841, 1808, 1860, 1788, 1652, 1687, 1810, 1488, 1661, 1867, 1476, 1785, 1646, 1468, 1611, 1159, 1492, 1291, 1463, 1716, 1778, 1669, 1448, 1539, 1633, 1511, 1523, 1672, 1821, 1718, 1349, 1875, 1659, 1835, 1558, 1520, 1670, 1639, 1540, 1885, 1779, 1972, 1531, 1874, 1627, 1202, 1639, 1553, 1540, 1539, 1646, 1439, 1856, 1444, 1279, 1241, 1952, 1701, 1280, 1616, 1332, 1692, 1664, 1373, 1781, 1733, 1995, 1571, 1777, 1593, 1578, 1869, 1233, 1916, 1504, 1849, 1704, 1729, 1896, 1953, 1449, 1899, 2007, 1744, 2003, 1875, 1935, 2016, 1993, 1527, 1788, 1734, 1726, 1823, 1636, 1619, 1734, 1755, 1829, 1773, 1799, 1700, 1947, 1938, 1647, 1789, 1550, 1396, 1590, 1964, 1951, 1634, 1066, 1856, 1717, 1988, 1791, 1664, 1977, 1544, 1715, 1563, 1801, 1988, 1725, 1815, 1921, 1897, 1442, 1831, 1217, 1752, 1866, 1861, 1659, 1706, 1724, 1678, 1714, 1724, 1958, 2036, 1487, 1978, 1657, 1997, 1800, 1895, 1708, 1811, 1678, 1705, 1962, 1927, 1699, 1694, 1625, 1501, 1844, 1686, 1958, 1614, 1307, 1129, 1407, 1683, 1835, 1800, 1152, 1793, 1879, 1820, 1747, 1598, 1922, 1553, 1768, 1811, 1838, 1290, 1953, 1781, 1610, 1626, 1936, 1751, 1665, 1584, 1823, 1816, 1758, 1932, 1454, 1793, 1436, 1817, 1675, 1697, 1927, 1655, 1546, 1677, 2003, 1666, 1735, 1811, 1808, 1813, 1834, 1850, 1821, 1565, 1975, 2045, 1816, 1809, 1951, 1862, 2048, 1911, 1686, 1441, 1878, 1976, 1865, 1906, 1608, 1871, 1469, 1803, 1932, 1798, 1862, 1881, 1577, 1802, 1979, 1455, 1977, 1820, 1495, 1816, 1907, 1784, 1774, 1789, 1743, 1533, 1830, 1684, 1201, 1548, 1566, 1334, 1776, 1724, 1752, 1880, 1908, 1863, 1898, 1925, 1693, 2033, 1799, 1910, 1893, 1928, 1833, 1841, 1706, 1801, 1599, 1737, 1934, 1688, 2035, 1885, 1796, 1807, 1881, 1419, 1901, 1948, 1137, 1685, 1848, 1624, 1829, 1868, 1630, 1819, 1772, 1946, 1787, 1805, 1941, 1854, 1554, 1722, 1729, 1877, 1863, 1736, 1626, 1918, 1631, 1628, 1986, 1616, 1679, 1820, 1869, 1756, 1662, 1876, 1380, 1815, 1914, 1680, 1956, 1870, 1947, 1421, 1886, 1936, 1911, 1918, 1728, 1346, 1769, 2021, 1601, 1912, 1548, 1835, 1502, 1605, 1927, 1372, 1865, 1673, 1891, 1494, 1882, 1779, 1814, 1940, 1806, 1759, 2011, 1441, 1623, 1846, 1514, 1663, 2033, 1552, 1819, 1574, 1850, 1671, 1702, 1757, 1756, 1836, 1384, 1980, 1640, 2038, 2006, 1794, 1805, 1785, 1955, 1580, 1930, 1583, 1526, 1523, 1833, 1725, 1462, 1883, 1682, 1794, 1995, 1892, 1874, 1349, 1818, 1730, 1604, 1170, 1890, 1777, 1806, 1701, 1589, 1911, 1254, 1526, 1942, 1825, 1514, 1966, 1780, 1864, 1671, 1817, 1677, 1443, 1855, 1569, 1922, 1934, 1712, 1931, 1765, 1888, 1463, 1627, 1505, 1492, 1870, 1590, 1565, 1922, 1698, 1956, 1985, 2006, 1635, 1931, 1899, 1600, 1973, 1268, 1823, 1710, 1867, 1916, 1804, 1642, 1466, 1767, 1832, 1996, 1672, 1824, 1921, 1924, 1838, 1904, 1908, 1861, 1960, 1998, 1728, 1760, 1394, 1993, 1546, 1974, 1525, 1847, 1202, 1613, 1453, 1602, 1826, 1875, 1594, 1596, 1753, 1970, 1478, 2055, 1853, 1713, 1474, 1797, 1682, 1943, 1745, 1830, 1814, 1897, 1621, 1817, 1802, 1617, 1649, 1978, 1500, 1483, 1804, 2040, 1983, 1775, 1893, 1636, 1896, 1774, 1784, 1903, 1782, 1783, 1852, 1894, 1770, 1924, 2020, 1926, 1929, 1714, 2009, 1989, 1865, 1898, 1737, 1945, 1847, 1696, 1767, 1907, 1715, 1849, 1967, 1694, 1747, 1337, 1608, 1363, 1676, 1734, 1859, 1755, 1470, 1584, 1957, 1919, 1528, 1788, 1900, 1741, 1508, 1971, 1749, 1937, 1970, 1941, 1794, 1693, 1721, 1991, 1915, 1997, 1824, 1942, 1996, 1236, 1669, 1887, 1654, 1982, 1898, 1761, 1883, 1700, 1521, 1681, 2011, 1751, 1281, 1684, 1607, 1845, 1860, 1524, 1844, 1901, 1999, 1760, 1940, 1705, 1736, 1987, 1721, 2033, 2024, 1990, 2047, 1965, 2018, 2044, 1473, 1920, 2030, 1968, 2045, 2025, 1995, 2054, 2017, 1559, 1876, 1891, 1871, 2013, 1949, 1821, 1892, 1834, 1946, 1778, 1880, 1864, 2042, 2016, 2026, 1945, 2031, 1574, 1853, 1980, 2034, 2056, 2012, 1912, 1812, 2031, 1836, 1992, 2058, 1941, 1814, 2007, 2051, 2048, 2044, 1880, 1926, 2047, 1761, 1839, 1365, 1772, 1986, 1985, 1905, 2060, 1909, 1857, 1944, 1826, 2000, 2050, 2023, 2020, 1931, 2023, 2043, 2005, 1967, 1872, 1907, 1944, 1981, 1965, 1999, 1711, 1916, 1517, 1958, 1954, 2023, 1961, 2064, 1798, 1577, 1930, 1896, 1859, 1382, 1987, 2039, 2037, 1787, 1666, 1984, 1602, 1933, 2008, 2057, 1338, 1976, 2038, 1971, 1950, 1954, 1991, 1828, 1695, 1845, 1873, 1889, 2037, 1641, 1961, 1731, 1884, 1881, 1914, 1978, 1783, 1925, 1882, 2010, 2062, 1846, 1921, 2029, 2046, 1910, 2026, 1953, 1607, 2063, 2059, 2000, 1884, 2008, 2014, 2052, 2015, 1848, 1716, 2003, 2036, 2006, 1932, 1973, 1976, 1522, 2028, 2059, 1917, 1947, 2027, 1954, 1964, 2059, 2035, 1999, 1910, 1893, 1877, 1933, 1934, 2019, 1858, 1990, 2037, 1876, 1903, 1792, 1966, 2025, 1509, 1853, 1908, 1837, 2044, 1914, 1938, 1913, 2004, 1824, 2047, 1856, 1938, 2032, 2022, 1870, 1912, 1779, 2039, 2049, 1761, 1983, 1950, 2054, 2002, 1959, 1848, 1919, 1790, 1993, 1967, 1900, 1718, 1897, 2019, 2051, 2053, 1838, 1930, 1918, 2015, 2036, 1904, 1962, 1890, 1852, 1845, 2009, 2050, 2004, 2032, 1883, 2057, 2028, 2040, 2056, 1851, 1737, 1939, 1872, 1939, 1975, 1988, 1676, 1919, 1994, 2019, 1984, 1885, 2005, 1812, 2008, 2040, 1957, 2028, 1842, 2032, 2039, 2062, 1828, 1992, 1746, 1841, 1980, 1940, 1994, 1416, 1937, 1866, 1996, 1866, 1929, 2013, 1815, 2064, 1959, 2012, 2022, 1735, 1727, 1950, 1981, 1991, 2043, 1929, 1920, 1578, 1859, 1960, 1949, 1852, 1955, 1966, 2018, 2063, 1656, 2055, 2041, 1969, 2046, 1905, 2017, 1726, 1943, 1717, 2009, 1802, 2062, 1750, 1675, 1990, 1963, 1795, 2061, 1998, 2042, 1770, 2049, 1862, 1668, 2056, 2000, 1987, 2002, 1797, 1882, 1963, 1512, 1708, 1949, 1901, 1935, 1997, 1971, 2017, 2054, 1920, 1691, 1585, 2001, 2005, 1963, 2015, 1933, 2026, 1909, 1913, 1704, 1798, 1962, 1610, 2024, 1969, 1810, 1994, 1703, 2055, 2021, 2030, 2024, 1986, 1906, 1825, 2002, 1770, 1855, 1837, 2014, 2010, 1849, 1697, 1661, 1863, 1935, 2052, 1957, 2058, 1937, 2061, 2035, 2045, 1984, 1888, 1965, 2058, 1854, 2007, 1842, 2060, 1888, 1989, 1599, 2014, 1638, 2027, 1731, 2012, 1891, 1936, 1614, 1618, 1806, 2030, 1586, 2057, 1968, 1974, 1477, 1959, 1840, 1973, 1970, 1955, 1951, 1998, 1985, 1892, 1818, 1874, 1961, 2046, 1989, 1960, 2041, 2049, 2001, 1948, 2048, 1983, 1944, 1790, 2042, 2051, 1992, 1923, 2041, 1952, 1972, 1945, 2029, 1948, 1974, 1943, 2038, 2050, 1942, 1968, 1805, 1977, 2004, 1752, 1787, 1915, 1732, 2063, 2021, 1766, 1946, 1618, 1858, 2025, 1857, 1773, 1895, 1833, 1887, 1744, 1979, 2010, 1850, 2061, 2016, 1780, 1586, 2027, 1969, 2034, 1979, 2018, 1813, 1839, 1902, 2013, 2011, 2052, 1851, 2029, 2064, 1386, 1750, 1902, 1771, 2034, 2001, 1795, 2053, 1792, 1631, 1964, 2053, 1796, 1409, 1774, 1721, 1889, 1879, 1728, 2020, 2043, 2060, 1895, 2022, 1861, 1786 +}; + +uint16_t H_cols[] = { +208, 242, 84, 114, 314, 135, 349, 90, 64, 57, 26, 52, 16, 142, 120, 244, 167, 164, 133, 179, 22, 180, 413, 161, 224, 121, 57, 22, 394, 17, 9, 54, 84, 20, 98, 311, 322, 308, 86, 91, 77, 41, 110, 192, 18, 11, 210, 133, 248, 276, 389, 100, 37, 4, 239, 15, 32, 15, 7, 10, 109, 82, 19, 50, 137, 278, 43, 181, 89, 206, 113, 285, 10, 95, 12, 180, 23, 93, 100, 124, 200, 130, 81, 149, 6, 251, 181, 227, 156, 215, 194, 284, 206, 177, 171, 174, 40, 136, 187, 89, 98, 156, 44, 30, 48, 78, 349, 126, 56, 3, 212, 43, 111, 183, 63, 54, 35, 63, 333, 158, 96, 100, 270, 38, 97, 4, 139, 163, 67, 251, 139, 42, 214, 117, 26, 98, 132, 105, 13, 61, 330, 223, 183, 95, 295, 95, 55, 29, 65, 35, 75, 130, 8, 98, 344, 46, 239, 155, 131, 75, 246, 3, 44, 260, 199, 21, 99, 118, 76, 8, 87, 271, 257, 171, 98, 44, 255, 17, 276, 91, 50, 21, 90, 262, 118, 208, 214, 35, 140, 159, 58, 277, 158, 180, 53, 93, 58, 264, 40, 98, 4, 284, 183, 24, 7, 123, 133, 57, 223, 124, 156, 202, 34, 324, 67, 452, 63, 123, 303, 303, 169, 40, 32, 24, 32, 5, 220, 218, 103, 222, 113, 111, 100, 30, 146, 266, 4, 195, 14, 55, 145, 37, 40, 18, 184, 188, 267, 38, 116, 35, 60, 53, 133, 58, 9, 296, 63, 57, 30, 17, 86, 157, 105, 29, 73, 285, 122, 9, 31, 199, 347, 73, 55, 135, 86, 2, 42, 67, 119, 21, 351, 35, 213, 173, 61, 176, 194, 109, 72, 77, 273, 133, 244, 90, 313, 220, 27, 192, 63, 299, 208, 202, 3, 66, 14, 19, 127, 68, 348, 246, 26, 87, 75, 20, 215, 93, 212, 180, 149, 114, 133, 48, 235, 17, 247, 257, 42, 149, 57, 363, 75, 334, 67, 97, 29, 109, 241, 59, 332, 15, 228, 6, 186, 81, 271, 31, 103, 122, 150, 105, 110, 92, 277, 213, 358, 37, 100, 129, 46, 367, 118, 26, 115, 211, 3, 77, 217, 23, 24, 145, 70, 48, 68, 179, 112, 30, 110, 177, 14, 97, 68, 66, 103, 105, 83, 231, 29, 383, 45, 64, 42, 32, 201, 269, 67, 9, 149, 3, 34, 86, 373, 51, 409, 130, 39, 80, 177, 118, 34, 248, 175, 50, 37, 76, 14, 7, 122, 49, 262, 27, 79, 102, 295, 113, 26, 111, 135, 10, 356, 97, 21, 2, 129, 451, 140, 60, 42, 191, 33, 152, 25, 279, 99, 22, 124, 168, 305, 34, 104, 224, 154, 50, 71, 97, 60, 209, 73, 57, 10, 322, 159, 375, 104, 17, 273, 374, 81, 121, 160, 157, 411, 88, 236, 166, 88, 53, 164, 135, 36, 375, 291, 211, 4, 233, 84, 94, 47, 29, 10, 306, 54, 183, 16, 128, 42, 86, 96, 488, 31, 109, 150, 42, 332, 110, 315, 44, 321, 82, 109, 235, 80, 212, 35, 128, 80, 215, 7, 115, 44, 102, 281, 86, 27, 79, 280, 33, 227, 142, 113, 104, 102, 281, 161, 238, 197, 106, 111, 72, 163, 76, 41, 58, 4, 46, 45, 122, 281, 219, 52, 53, 45, 66, 264, 69, 37, 16, 138, 221, 176, 176, 98, 42, 75, 92, 80, 158, 163, 71, 26, 49, 109, 108, 70, 85, 378, 186, 178, 9, 12, 4, 74, 25, 65, 207, 8, 339, 5, 45, 205, 163, 234, 14, 56, 77, 62, 185, 55, 89, 19, 228, 117, 113, 80, 9, 8, 38, 74, 10, 112, 32, 205, 8, 242, 142, 119, 26, 158, 28, 148, 54, 69, 28, 81, 91, 142, 78, 158, 49, 66, 45, 179, 249, 91, 90, 219, 153, 339, 90, 14, 56, 60, 392, 9, 162, 274, 102, 79, 89, 206, 114, 365, 2, 232, 172, 36, 8, 14, 317, 173, 65, 2, 37, 112, 273, 38, 179, 107, 244, 9, 173, 67, 141, 265, 156, 96, 102, 158, 77, 96, 331, 2, 102, 302, 94, 23, 93, 92, 408, 95, 229, 2, 25, 326, 62, 82, 166, 185, 7, 170, 15, 30, 216, 93, 94, 186, 24, 124, 268, 36, 108, 156, 448, 65, 134, 356, 79, 91, 165, 63, 30, 123, 56, 164, 97, 348, 262, 72, 294, 3, 33, 36, 143, 79, 31, 158, 124, 46, 131, 115, 103, 33, 280, 22, 69, 80, 343, 386, 295, 107, 39, 122, 18, 215, 78, 166, 136, 163, 222, 5, 405, 196, 253, 401, 78, 138, 184, 190, 131, 5, 141, 91, 84, 10, 210, 184, 171, 39, 20, 283, 92, 337, 257, 172, 160, 28, 134, 170, 18, 110, 108, 85, 21, 62, 122, 23, 10, 128, 161, 152, 156, 65, 249, 124, 191, 282, 139, 220, 238, 24, 60, 66, 41, 196, 185, 68, 72, 51, 121, 12, 218, 13, 101, 89, 93, 298, 293, 197, 201, 332, 36, 128, 160, 182, 42, 19, 53, 259, 116, 331, 131, 84, 125, 43, 285, 79, 112, 66, 66, 288, 93, 93, 158, 87, 104, 134, 131, 156, 58, 33, 6, 42, 16, 130, 182, 354, 141, 12, 65, 60, 1, 169, 175, 82, 44, 82, 108, 17, 69, 28, 29, 80, 145, 25, 66, 88, 14, 64, 290, 160, 46, 113, 1, 251, 55, 61, 185, 199, 153, 13, 237, 150, 269, 5, 100, 126, 243, 312, 56, 219, 203, 156, 144, 164, 161, 87, 236, 203, 10, 216, 13, 166, 239, 19, 141, 51, 284, 61, 11, 75, 205, 31, 128, 49, 2, 33, 5, 135, 100, 194, 78, 154, 245, 51, 321, 121, 160, 114, 74, 44, 113, 59, 259, 6, 49, 144, 6, 22, 214, 171, 98, 181, 225, 368, 8, 274, 154, 262, 234, 21, 19, 352, 9, 165, 20, 90, 85, 255, 367, 174, 29, 145, 43, 1, 3, 153, 10, 280, 77, 221, 12, 11, 142, 370, 143, 116, 145, 223, 330, 36, 9, 157, 99, 271, 88, 291, 49, 89, 47, 94, 394, 344, 305, 38, 30, 39, 6, 129, 1, 242, 268, 200, 298, 182, 297, 175, 27, 117, 135, 108, 246, 60, 38, 225, 48, 12, 124, 229, 55, 50, 311, 70, 133, 119, 151, 199, 73, 70, 98, 26, 76, 99, 154, 112, 76, 236, 273, 22, 109, 206, 61, 34, 146, 292, 132, 254, 42, 1, 121, 310, 33, 41, 49, 168, 226, 247, 459, 47, 211, 187, 41, 58, 8, 388, 359, 129, 83, 129, 190, 55, 189, 48, 258, 60, 58, 13, 205, 263, 232, 151, 96, 77, 31, 53, 64, 174, 197, 200, 25, 93, 191, 139, 217, 5, 117, 51, 212, 72, 28, 2, 236, 114, 320, 35, 106, 74, 28, 425, 282, 49, 132, 2, 82, 47, 143, 142, 100, 25, 79, 43, 24, 23, 399, 92, 97, 290, 31, 69, 109, 165, 83, 41, 98, 84, 195, 319, 347, 222, 37, 39, 104, 5, 196, 207, 47, 4, 223, 141, 32, 47, 81, 96, 31, 68, 101, 145, 177, 85, 129, 271, 334, 224, 36, 117, 56, 70, 410, 212, 87, 298, 361, 160, 164, 34, 19, 52, 66, 310, 4, 105, 40, 180, 137, 263, 37, 73, 237, 29, 135, 20, 7, 336, 197, 68, 2, 131, 28, 60, 88, 94, 58, 83, 38, 218, 7, 1, 71, 296, 149, 355, 146, 179, 64, 2, 418, 155, 127, 76, 348, 54, 83, 251, 48, 27, 185, 32, 84, 4, 89, 107, 360, 257, 29, 54, 318, 56, 95, 295, 51, 45, 47, 24, 256, 173, 92, 154, 63, 255, 321, 132, 76, 116, 92, 308, 20, 52, 178, 292, 87, 216, 275, 16, 152, 151, 165, 226, 276, 36, 1, 333, 30, 428, 17, 136, 11, 192, 45, 40, 34, 268, 68, 292, 54, 85, 120, 116, 206, 92, 99, 213, 91, 15, 14, 43, 112, 305, 319, 157, 136, 76, 25, 141, 95, 82, 11, 32, 41, 74, 49, 301, 122, 128, 338, 94, 129, 265, 71, 11, 109, 22, 328, 13, 105, 22, 196, 240, 198, 7, 146, 181, 115, 62, 61, 218, 64, 170, 222, 15, 99, 36, 31, 258, 69, 41, 56, 60, 129, 33, 103, 57, 21, 103, 127, 165, 13, 39, 328, 105, 228, 107, 120, 86, 98, 27, 54, 205, 167, 244, 74, 238, 38, 89, 5, 120, 329, 37, 37, 278, 24, 140, 118, 127, 203, 23, 106, 286, 243, 72, 152, 86, 61, 22, 11, 6, 34, 256, 269, 158, 175, 211, 317, 253, 50, 50, 27, 130, 454, 41, 250, 267, 144, 303, 11, 104, 63, 18, 124, 104, 58, 140, 25, 151, 58, 239, 286, 155, 217, 27, 182, 10, 398, 65, 190, 81, 69, 119, 78, 20, 136, 106, 51, 188, 200, 350, 303, 133, 53, 73, 15, 158, 262, 150, 192, 10, 289, 162, 362, 234, 232, 16, 225, 334, 294, 6, 105, 125, 68, 72, 176, 239, 20, 163, 353, 118, 117, 170, 90, 258, 50, 45, 88, 87, 128, 85, 4, 62, 34, 268, 258, 183, 25, 146, 85, 44, 133, 107, 140, 87, 64, 18, 70, 76, 95, 309, 147, 34, 308, 19, 237, 21, 217, 115, 49, 177, 201, 88, 149, 163, 5, 325, 455, 96, 52, 77, 24, 152, 130, 207, 67, 220, 36, 18, 48, 88, 40, 148, 179, 6, 155, 19, 138, 74, 39, 51, 198, 141, 142, 106, 103, 67, 111, 107, 186, 68, 37, 166, 28, 94, 289, 15, 126, 121, 43, 108, 117, 128, 406, 71, 333, 39, 38, 69, 313, 267, 17, 249, 40, 351, 40, 202, 138, 262, 105, 324, 75, 267, 123, 141, 156, 78, 112, 408, 97, 173, 91, 99, 239, 25, 376, 25, 254, 185, 157, 15, 61, 71, 113, 237, 237, 48, 29, 89, 1, 79, 41, 3, 24, 13, 187, 96, 52, 30, 137, 70, 82, 1, 47, 34, 444, 146, 63, 47, 59, 154, 115, 129, 298, 61, 3, 64, 85, 75, 244, 12, 47, 101, 103, 7, 169, 125, 213, 271, 378, 271, 100, 126, 134, 131, 31, 32, 16, 310, 222, 95, 12, 154, 89, 391, 205, 8, 27, 1, 85, 192, 85, 117, 140, 127, 132, 35, 31, 12, 263, 121, 6, 81, 65, 71, 78, 88, 140, 85, 227, 347, 68, 50, 7, 44, 215, 128, 26, 2, 96, 55, 66, 54, 22, 161, 258, 7, 13, 124, 101, 265, 21, 83, 233, 203, 274, 59, 354, 99, 59, 139, 13, 377, 107, 102, 23, 184, 32, 115, 61, 169, 320, 27, 171, 293, 57, 62, 46, 58, 147, 139, 235, 52, 46, 375, 46, 218, 319, 368, 61, 29, 174, 172, 83, 325, 29, 200, 198, 18, 303, 114, 173, 213, 35, 102, 20, 35, 211, 46, 180, 99, 301, 250, 208, 178, 93, 30, 76, 52, 165, 159, 372, 225, 278, 138, 136, 145, 231, 79, 44, 137, 50, 55, 119, 125, 39, 138, 101, 25, 166, 23, 192, 18, 39, 178, 116, 28, 178, 59, 188, 198, 16, 96, 46, 186, 108, 59, 255, 199, 258, 252, 88, 118, 134, 383, 150, 5, 139, 239, 228, 38, 227, 263, 43, 67, 175, 97, 188, 63, 147, 189, 17, 154, 62, 370, 219, 1, 198, 22, 56, 90, 318, 15, 20, 171, 45, 100, 30, 126, 131, 234, 11, 207, 254, 299, 349, 120, 196, 21, 26, 170, 114, 77, 8, 57, 190, 11, 214, 212, 345, 179, 225, 64, 114, 80, 185, 66, 138, 149, 43, 190, 127, 3, 3, 153, 222, 210, 11, 56, 104, 53, 153, 130, 56, 83, 71, 274, 95, 74, 121, 106, 173, 16, 114, 270, 33, 53, 267, 49, 332, 306, 68, 35, 28, 32, 213, 24, 113, 40, 18, 9, 89, 294, 250, 256, 70, 208, 291, 91, 82, 314, 39, 7, 181, 78, 13, 301, 405, 112, 316, 156, 393, 12, 110, 48, 73, 166, 39, 17, 132, 204, 104, 63, 62, 1, 45, 393, 5, 115, 47, 18, 248, 16, 272, 75, 317, 84, 70, 342, 207, 14, 191, 77, 154, 12, 107, 230, 132, 280, 42, 23, 147, 149, 17, 18, 8, 174, 73, 261, 197, 72, 4, 15, 34, 163, 159, 136, 12, 36, 196, 3, 40, 167, 71, 101, 111, 100, 237, 300, 32, 76, 9, 14, 137, 6, 53, 202, 71, 52, 148, 219, 17, 299, 41, 108, 48, 143, 65, 316, 133, 142, 92, 296, 323, 150, 211, 361, 261, 422, 167, 212, 195, 50, 317, 406, 372, 360, 314, 399, 203, 136, 211, 56, 195, 436, 229, 489, 295, 101, 109, 487, 184, 87, 279, 233, 399, 176, 470, 433, 364, 197, 115, 194, 314, 423, 246, 98, 401, 291, 268, 272, 357, 458, 298, 327, 21, 298, 299, 225, 220, 272, 51, 177, 93, 84, 403, 150, 336, 275, 236, 476, 243, 261, 373, 330, 248, 310, 365, 155, 240, 144, 276, 229, 292, 99, 175, 101, 317, 365, 297, 404, 260, 333, 417, 462, 434, 474, 444, 119, 309, 261, 260, 344, 435, 80, 123, 257, 183, 358, 197, 78, 16, 264, 260, 459, 195, 390, 147, 217, 467, 353, 165, 120, 151, 335, 83, 106, 28, 326, 252, 70, 298, 182, 153, 300, 260, 122, 111, 143, 302, 135, 235, 362, 236, 232, 287, 371, 309, 248, 248, 176, 215, 169, 183, 155, 140, 446, 91, 277, 263, 234, 126, 376, 335, 162, 490, 398, 182, 105, 378, 469, 159, 119, 457, 292, 249, 108, 59, 451, 20, 362, 228, 57, 306, 459, 301, 208, 329, 357, 82, 396, 279, 137, 396, 272, 202, 396, 282, 120, 308, 389, 287, 43, 311, 371, 59, 326, 125, 223, 190, 285, 134, 348, 219, 74, 343, 72, 455, 367, 179, 368, 395, 267, 227, 59, 225, 65, 21, 300, 310, 266, 259, 362, 168, 104, 69, 344, 417, 47, 335, 103, 126, 394, 41, 122, 166, 313, 265, 438, 118, 265, 204, 316, 439, 142, 90, 180, 440, 281, 392, 312, 210, 137, 189, 240, 247, 240, 320, 251, 157, 324, 208, 415, 245, 180, 262, 94, 141, 191, 110, 165, 165, 361, 61, 488, 378, 138, 178, 229, 396, 157, 168, 397, 266, 289, 240, 347, 299, 84, 451, 133, 391, 469, 324, 137, 116, 60, 365, 207, 200, 472, 450, 428, 330, 139, 159, 223, 217, 330, 245, 234, 238, 418, 391, 367, 308, 291, 304, 67, 244, 288, 382, 130, 461, 335, 118, 187, 334, 324, 441, 462, 112, 445, 59, 214, 230, 372, 44, 106, 167, 181, 211, 193, 148, 409, 264, 364, 353, 174, 263, 283, 406, 312, 349, 118, 455, 181, 259, 323, 175, 33, 152, 299, 141, 320, 314, 131, 62, 235, 335, 231, 340, 244, 425, 169, 311, 497, 241, 37, 436, 117, 184, 294, 157, 350, 301, 94, 162, 273, 13, 182, 101, 486, 341, 434, 322, 74, 144, 284, 139, 111, 403, 214, 52, 323, 327, 172, 227, 230, 208, 277, 221, 120, 409, 339, 123, 223, 252, 209, 237, 429, 295, 253, 35, 162, 454, 243, 199, 295, 385, 360, 241, 170, 390, 175, 402, 198, 288, 397, 275, 330, 267, 161, 341, 283, 193, 62, 258, 162, 254, 259, 374, 408, 415, 268, 54, 312, 424, 302, 342, 376, 172, 453, 214, 281, 379, 447, 170, 434, 230, 121, 423, 305, 441, 276, 244, 121, 110, 461, 323, 151, 309, 431, 202, 200, 329, 210, 352, 164, 503, 113, 126, 231, 152, 454, 311, 433, 86, 449, 130, 231, 262, 189, 290, 288, 429, 143, 311, 70, 226, 451, 277, 362, 134, 51, 81, 343, 171, 466, 149, 194, 310, 119, 315, 186, 300, 469, 349, 427, 123, 168, 117, 174, 144, 224, 116, 173, 198, 457, 287, 147, 65, 258, 272, 499, 315, 81, 186, 168, 341, 316, 190, 178, 291, 232, 280, 174, 260, 242, 226, 181, 120, 113, 138, 294, 106, 481, 287, 377, 104, 125, 383, 234, 369, 289, 348, 52, 389, 239, 219, 344, 378, 338, 418, 137, 363, 116, 207, 335, 449, 202, 358, 216, 134, 319, 100, 11, 265, 233, 172, 267, 45, 256, 23, 318, 221, 169, 245, 306, 281, 181, 289, 116, 173, 346, 327, 194, 205, 326, 345, 201, 111, 448, 366, 399, 293, 222, 170, 358, 442, 19, 187, 159, 456, 299, 206, 290, 169, 253, 412, 252, 202, 377, 331, 497, 203, 313, 115, 255, 373, 364, 237, 245, 291, 269, 342, 54, 218, 269, 373, 170, 256, 270, 213, 305, 288, 203, 315, 238, 87, 192, 334, 26, 127, 352, 240, 277, 114, 102, 432, 139, 332, 278, 128, 411, 91, 317, 296, 265, 343, 291, 217, 124, 350, 220, 242, 220, 62, 233, 300, 190, 393, 445, 513, 478, 346, 375, 131, 99, 272, 160, 355, 279, 112, 305, 107, 403, 336, 109, 322, 143, 371, 147, 204, 192, 308, 180, 279, 127, 194, 145, 239, 124, 288, 24, 177, 191, 433, 429, 308, 270, 136, 330, 73, 469, 302, 274, 221, 246, 393, 328, 431, 454, 391, 426, 269, 434, 329, 245, 149, 151, 338, 328, 299, 433, 374, 230, 202, 472, 177, 360, 402, 387, 316, 181, 418, 52, 198, 174, 20, 197, 110, 294, 268, 123, 151, 43, 87, 250, 237, 247, 233, 143, 367, 231, 339, 381, 141, 233, 355, 204, 225, 382, 208, 224, 206, 159, 87, 80, 275, 103, 365, 33, 374, 117, 145, 332, 368, 309, 297, 421, 63, 212, 213, 373, 107, 249, 247, 318, 242, 464, 312, 164, 240, 103, 328, 345, 262, 160, 209, 401, 325, 249, 186, 201, 112, 250, 262, 215, 70, 473, 170, 126, 143, 211, 313, 370, 183, 220, 174, 388, 346, 351, 182, 173, 48, 214, 370, 163, 92, 95, 228, 134, 461, 251, 398, 205, 282, 372, 363, 348, 83, 321, 175, 265, 160, 252, 479, 340, 257, 64, 285, 419, 369, 23, 196, 283, 286, 327, 97, 411, 331, 184, 297, 325, 284, 341, 245, 302, 294, 231, 247, 319, 404, 190, 180, 491, 441, 147, 303, 148, 291, 350, 471, 197, 396, 187, 92, 201, 269, 200, 264, 250, 338, 104, 470, 379, 248, 168, 271, 113, 146, 205, 267, 71, 296, 221, 385, 153, 347, 482, 252, 339, 453, 390, 289, 284, 229, 269, 263, 167, 27, 369, 80, 243, 432, 230, 153, 280, 397, 239, 380, 208, 244, 8, 72, 271, 354, 328, 233, 224, 297, 297, 204, 461, 190, 259, 151, 306, 375, 195, 189, 304, 155, 279, 232, 352, 123, 177, 339, 401, 493, 384, 376, 340, 38, 171, 79, 161, 78, 340, 293, 238, 465, 191, 435, 179, 244, 387, 184, 211, 307, 352, 342, 316, 196, 351, 353, 445, 69, 97, 368, 180, 274, 136, 275, 342, 189, 75, 395, 145, 147, 205, 185, 222, 218, 413, 297, 374, 144, 453, 372, 138, 302, 316, 237, 356, 46, 40, 339, 343, 184, 242, 125, 216, 345, 305, 477, 148, 214, 199, 303, 306, 123, 440, 404, 292, 210, 328, 350, 210, 337, 94, 309, 408, 151, 76, 276, 266, 325, 482, 155, 332, 254, 209, 321, 297, 243, 355, 259, 164, 221, 453, 361, 15, 338, 357, 289, 240, 149, 249, 263, 219, 447, 434, 261, 300, 159, 479, 342, 93, 213, 57, 141, 177, 335, 410, 315, 188, 166, 223, 307, 354, 492, 170, 187, 453, 195, 127, 349, 410, 151, 207, 130, 147, 216, 417, 439, 369, 83, 461, 326, 406, 381, 227, 126, 270, 258, 394, 108, 331, 228, 333, 72, 95, 209, 319, 351, 346, 379, 284, 392, 315, 191, 147, 463, 95, 486, 415, 167, 324, 377, 390, 375, 410, 92, 354, 106, 364, 106, 370, 132, 193, 396, 321, 134, 119, 393, 327, 195, 506, 30, 341, 253, 233, 82, 283, 55, 207, 301, 430, 167, 248, 163, 475, 77, 218, 124, 367, 176, 415, 426, 188, 380, 58, 488, 209, 170, 164, 354, 134, 212, 334, 255, 220, 349, 110, 288, 227, 350, 201, 406, 319, 442, 117, 330, 228, 148, 424, 267, 155, 452, 161, 345, 217, 474, 179, 208, 328, 367, 254, 173, 210, 259, 458, 296, 277, 206, 296, 162, 480, 430, 183, 202, 268, 263, 274, 312, 374, 96, 445, 66, 463, 321, 250, 204, 194, 129, 78, 342, 485, 289, 387, 67, 119, 256, 241, 341, 110, 215, 276, 226, 186, 276, 266, 198, 331, 455, 167, 232, 89, 355, 166, 336, 147, 397, 167, 260, 175, 282, 465, 265, 178, 453, 189, 132, 273, 202, 132, 209, 62, 400, 397, 114, 225, 299, 288, 259, 228, 149, 319, 160, 327, 406, 411, 217, 374, 286, 229, 236, 129, 232, 403, 266, 432, 189, 115, 338, 120, 342, 197, 248, 310, 269, 298, 79, 156, 453, 325, 468, 116, 246, 210, 438, 43, 256, 378, 294, 398, 84, 366, 122, 311, 174, 346, 377, 320, 111, 309, 243, 162, 329, 165, 307, 229, 266, 305, 267, 94, 230, 454, 131, 72, 50, 209, 199, 283, 329, 178, 400, 236, 388, 423, 127, 190, 287, 175, 477, 274, 314, 465, 389, 410, 350, 131, 263, 108, 201, 127, 130, 468, 59, 223, 148, 341, 336, 414, 235, 36, 288, 171, 405, 111, 395, 271, 122, 154, 150, 164, 403, 460, 374, 213, 208, 464, 310, 143, 356, 204, 81, 273, 314, 287, 380, 16, 410, 313, 385, 410, 406, 23, 240, 370, 373, 416, 355, 204, 176, 187, 329, 357, 292, 282, 384, 212, 273, 202, 262, 385, 198, 191, 402, 230, 266, 179, 389, 210, 165, 375, 261, 287, 302, 471, 250, 144, 284, 279, 277, 382, 118, 65, 126, 235, 158, 354, 150, 53, 331, 68, 280, 51, 219, 432, 90, 236, 213, 137, 289, 256, 366, 469, 484, 125, 289, 454, 49, 155, 392, 221, 181, 238, 137, 85, 222, 105, 228, 351, 380, 22, 379, 322, 409, 215, 234, 174, 275, 356, 182, 212, 272, 203, 194, 426, 215, 279, 234, 279, 388, 164, 318, 219, 205, 152, 74, 304, 242, 136, 440, 304, 466, 238, 347, 201, 373, 275, 325, 364, 362, 393, 103, 394, 365, 359, 338, 332, 322, 369, 270, 216, 363, 135, 353, 460, 157, 282, 402, 414, 393, 196, 403, 178, 294, 276, 193, 282, 217, 86, 234, 351, 433, 337, 64, 236, 184, 423, 64, 362, 241, 210, 247, 483, 298, 122, 191, 243, 245, 46, 458, 278, 447, 311, 326, 360, 71, 224, 354, 148, 360, 74, 6, 215, 290, 374, 313, 200, 185, 116, 133, 28, 224, 467, 357, 291, 473, 379, 388, 188, 246, 340, 67, 240, 144, 475, 314, 193, 179, 215, 150, 423, 360, 192, 102, 159, 127, 204, 154, 168, 423, 373, 172, 48, 140, 327, 292, 358, 221, 426, 154, 101, 331, 337, 235, 102, 251, 409, 238, 283, 151, 307, 278, 357, 247, 484, 229, 152, 69, 311, 241, 225, 388, 230, 140, 146, 370, 429, 26, 134, 466, 240, 372, 197, 389, 145, 136, 176, 187, 400, 264, 221, 366, 446, 311, 364, 186, 404, 363, 101, 243, 400, 120, 146, 389, 203, 190, 278, 300, 260, 196, 430, 106, 260, 367, 436, 222, 359, 433, 417, 184, 371, 301, 275, 336, 111, 428, 129, 304, 303, 73, 224, 449, 175, 255, 446, 326, 123, 315, 315, 223, 327, 161, 194, 97, 201, 309, 383, 407, 302, 326, 209, 324, 198, 356, 107, 88, 189, 276, 247, 144, 339, 320, 221, 169, 140, 226, 118, 379, 333, 69, 300, 262, 218, 265, 257, 251, 310, 27, 265, 227, 369, 220, 146, 412, 265, 272, 286, 286, 229, 283, 395, 209, 372, 290, 488, 293, 184, 360, 342, 194, 132, 313, 290, 448, 385, 162, 232, 31, 270, 271, 383, 318, 242, 251, 157, 79, 119, 421, 401, 178, 231, 152, 207, 55, 163, 274, 313, 125, 251, 256, 468, 385, 329, 227, 272, 317, 196, 427, 466, 96, 216, 449, 14, 441, 333, 484, 363, 383, 303, 155, 172, 188, 348, 169, 256, 199, 193, 188, 455, 86, 161, 235, 247, 288, 135, 344, 427, 381, 148, 261, 128, 193, 287, 221, 347, 155, 172, 204, 334, 255, 380, 189, 241, 277, 226, 448, 413, 81, 441, 223, 162, 429, 292, 205, 146, 439, 110, 114, 304, 261, 378, 88, 278, 386, 123, 226, 329, 165, 83, 295, 213, 408, 355, 414, 336, 440, 366, 409, 142, 153, 168, 128, 470, 266, 82, 280, 428, 250, 360, 238, 99, 53, 424, 176, 285, 263, 212, 268, 316, 377, 335, 387, 168, 144, 428, 326, 132, 232, 252, 300, 51, 146, 308, 371, 486, 279, 275, 370, 223, 33, 304, 296, 217, 442, 360, 280, 75, 354, 182, 139, 397, 236, 442, 361, 45, 233, 193, 479, 206, 153, 121, 299, 201, 255, 426, 318, 286, 54, 143, 302, 57, 148, 320, 231, 218, 377, 498, 206, 359, 238, 235, 379, 160, 391, 381, 261, 297, 277, 368, 362, 437, 409, 372, 270, 481, 300, 407, 253, 55, 488, 487, 470, 429, 431, 402, 259, 404, 257, 101, 243, 463, 487, 514, 496, 150, 358, 504, 234, 490, 511, 240, 415, 412, 484, 490, 416, 252, 472, 489, 478, 493, 381, 139, 480, 511, 362, 293, 466, 503, 359, 342, 142, 326, 369, 304, 320, 364, 486, 261, 105, 316, 471, 476, 430, 460, 379, 484, 253, 446, 400, 447, 373, 472, 490, 272, 401, 158, 471, 328, 417, 312, 344, 331, 429, 383, 341, 501, 361, 410, 480, 477, 492, 508, 482, 332, 336, 429, 310, 369, 460, 291, 346, 365, 392, 402, 452, 120, 430, 301, 419, 462, 406, 410, 342, 493, 500, 390, 498, 378, 230, 403, 188, 443, 258, 505, 499, 148, 508, 485, 241, 382, 289, 264, 182, 455, 481, 264, 451, 489, 483, 485, 365, 376, 447, 301, 382, 278, 237, 409, 285, 168, 292, 463, 290, 482, 339, 323, 376, 386, 495, 286, 502, 450, 322, 115, 390, 483, 370, 426, 461, 441, 406, 162, 73, 506, 256, 511, 507, 107, 498, 491, 323, 274, 478, 516, 337, 450, 304, 183, 502, 285, 249, 420, 427, 349, 386, 508, 353, 413, 500, 375, 304, 485, 410, 484, 306, 353, 431, 377, 239, 156, 438, 402, 499, 503, 200, 458, 419, 490, 230, 203, 397, 73, 436, 398, 326, 293, 363, 416, 497, 458, 250, 443, 460, 60, 476, 227, 392, 494, 352, 422, 383, 468, 344, 443, 199, 425, 417, 496, 452, 472, 396, 246, 449, 458, 395, 398, 283, 253, 391, 307, 268, 337, 501, 269, 499, 409, 408, 434, 365, 264, 407, 267, 150, 253, 254, 269, 185, 434, 306, 508, 510, 287, 347, 318, 439, 235, 307, 503, 281, 303, 468, 366, 415, 434, 480, 368, 497, 500, 504, 195, 188, 125, 502, 496, 475, 492, 481, 501, 407, 309, 302, 372, 442, 357, 464, 436, 249, 429, 493, 412, 340, 385, 489, 172, 353, 322, 477, 439, 509, 490, 311, 478, 364, 450, 448, 479, 372, 463, 495, 312, 269, 425, 341, 501, 415, 193, 225, 481, 437, 433, 281, 509, 428, 278, 509, 458, 506, 481, 509, 463, 504, 209, 415, 510, 347, 246, 388, 307, 237, 472, 407, 318, 228, 441, 417, 467, 469, 457, 515, 324, 402, 510, 254, 112, 470, 345, 463, 302, 378, 416, 312, 241, 381, 327, 94, 207, 335, 498, 343, 476, 427, 444, 351, 414, 186, 178, 457, 459, 460, 333, 471, 334, 389, 398, 327, 315, 504, 481, 437, 386, 431, 488, 442, 241, 356, 471, 402, 424, 433, 287, 459, 298, 463, 322, 458, 386, 464, 232, 492, 285, 441, 227, 292, 405, 377, 336, 466, 441, 513, 350, 276, 142, 492, 176, 404, 286, 437, 483, 474, 446, 291, 323, 474, 463, 414, 496, 231, 493, 491, 464, 484, 448, 191, 441, 258, 296, 497, 381, 484, 419, 318, 125, 222, 487, 516, 285, 502, 449, 294, 211, 384, 358, 451, 414, 509, 135, 241, 444, 392, 474, 469, 444, 203, 500, 282, 350, 286, 231, 478, 365, 465, 467, 472, 497, 484, 513, 513, 455, 242, 502, 385, 504, 358, 479, 390, 407, 416, 266, 330, 206, 412, 471, 496, 498, 380, 325, 159, 219, 504, 447, 340, 383, 416, 475, 373, 410, 486, 368, 501, 511, 413, 91, 278, 257, 486, 369, 506, 214, 402, 430, 348, 476, 333, 331, 441, 204, 187, 450, 194, 382, 224, 497, 411, 462, 252, 275, 457, 446, 415, 502, 413, 121, 515, 485, 476, 353, 381, 488, 480, 385, 425, 314, 224, 383, 506, 280, 515, 388, 422, 386, 396, 408, 329, 340, 371, 359, 138, 431, 200, 361, 393, 189, 436, 411, 319, 316, 478, 293, 390, 422, 414, 445, 232, 503, 397, 443, 296, 493, 374, 432, 430, 493, 206, 437, 477, 295, 352, 492, 509, 375, 214, 314, 430, 283, 467, 491, 350, 421, 499, 499, 511, 367, 125, 379, 482, 476, 505, 411, 446, 507, 390, 264, 290, 419, 460, 474, 414, 422, 317, 327, 437, 422, 404, 320, 416, 242, 362, 429, 366, 399, 438, 293, 245, 448, 461, 390, 415, 356, 482, 504, 284, 428, 378, 268, 400, 308, 468, 416, 393, 394, 405, 355, 408, 438, 323, 424, 401, 483, 516, 493, 362, 424, 372, 234, 515, 386, 382, 500, 314, 402, 425, 460, 456, 172, 501, 247, 495, 173, 492, 226, 476, 439, 346, 293, 353, 317, 435, 152, 487, 119, 348, 424, 499, 494, 495, 469, 251, 501, 401, 516, 308, 457, 280, 454, 440, 432, 470, 497, 399, 451, 344, 487, 432, 439, 516, 278, 461, 462, 313, 475, 386, 233, 396, 475, 439, 424, 495, 431, 434, 433, 436, 456, 403, 341, 423, 359, 296, 324, 309, 480, 508, 435, 144, 478, 401, 358, 287, 484, 512, 443, 367, 459, 452, 445, 468, 316, 271, 514, 388, 448, 474, 413, 307, 86, 293, 320, 433, 302, 394, 222, 414, 344, 456, 356, 475, 468, 456, 426, 494, 428, 339, 288, 494, 448, 270, 504, 507, 381, 405, 379, 498, 469, 489, 247, 354, 445, 500, 467, 217, 277, 385, 318, 513, 218, 253, 483, 249, 325, 161, 351, 505, 475, 440, 229, 412, 461, 371, 427, 377, 439, 338, 473, 500, 292, 167, 315, 230, 261, 464, 294, 407, 226, 406, 488, 426, 432, 515, 511, 421, 489, 439, 282, 515, 483, 325, 323, 462, 443, 491, 377, 384, 349, 491, 353, 226, 420, 495, 428, 409, 473, 461, 357, 473, 371, 343, 360, 398, 500, 465, 401, 319, 513, 483, 216, 405, 424, 473, 455, 516, 235, 476, 308, 248, 281, 482, 244, 481, 407, 345, 309, 506, 417, 485, 363, 320, 192, 470, 231, 513, 246, 299, 447, 467, 163, 510, 498, 337, 417, 491, 457, 422, 340, 422, 298, 273, 301, 447, 449, 356, 374, 436, 299, 225, 452, 468, 490, 403, 432, 387, 38, 277, 340, 514, 485, 355, 253, 400, 389, 460, 492, 356, 300, 400, 404, 404, 498, 369, 330, 273, 311, 248, 491, 126, 216, 495, 449, 505, 407, 380, 425, 246, 437, 153, 211, 256, 387, 515, 297, 507, 440, 480, 361, 412, 395, 431, 412, 371, 506, 435, 421, 462, 504, 483, 472, 436, 507, 370, 183, 485, 330, 389, 381, 473, 272, 449, 364, 192, 345, 312, 252, 333, 501, 388, 491, 246, 507, 393, 355, 358, 367, 417, 499, 81, 516, 494, 490, 228, 480, 367, 427, 387, 349, 510, 349, 411, 321, 449, 315, 307, 458, 490, 462, 323, 406, 452, 456, 357, 153, 359, 503, 375, 352, 385, 392, 442, 485, 260, 445, 423, 512, 410, 361, 396, 421, 514, 300, 412, 487, 489, 19, 352, 447, 347, 321, 400, 394, 284, 510, 508, 502, 281, 459, 177, 483, 388, 399, 379, 180, 186, 209, 502, 418, 326, 214, 432, 274, 401, 413, 512, 322, 264, 513, 239, 501, 464, 419, 259, 418, 306, 307, 319, 484, 512, 453, 363, 508, 454, 424, 450, 275, 270, 301, 260, 512, 161, 494, 323, 346, 189, 348, 376, 345, 464, 421, 381, 342, 464, 359, 455, 492, 470, 359, 505, 465, 343, 420, 435, 428, 510, 478, 193, 419, 380, 414, 181, 394, 266, 396, 491, 395, 192, 421, 404, 507, 456, 512, 251, 384, 442, 421, 334, 384, 317, 320, 391, 477, 171, 336, 273, 500, 446, 414, 340, 484, 306, 453, 445, 327, 405, 406, 506, 236, 491, 371, 508, 471, 446, 501, 290, 366, 507, 250, 394, 403, 458, 266, 509, 351, 493, 252, 510, 456, 176, 440, 419, 378, 506, 399, 442, 319, 514, 462, 275, 459, 378, 350, 226, 494, 430, 494, 394, 486, 442, 381, 233, 500, 504, 504, 308, 494, 366, 353, 469, 439, 463, 516, 109, 473, 473, 343, 383, 435, 282, 509, 420, 514, 333, 450, 307, 477, 375, 398, 466, 382, 479, 452, 283, 285, 495, 482, 425, 430, 505, 322, 444, 503, 497, 449, 486, 338, 440, 355, 488, 413, 352, 513, 331, 333, 506, 423, 183, 361, 474, 461, 409, 425, 411, 481, 397, 470, 332, 395, 343, 298, 159, 476, 512, 398, 444, 516, 505, 499, 397, 421, 271, 130, 424, 456, 270, 463, 431, 334, 397, 399, 509, 335, 341, 443, 392, 509, 338, 284, 468, 382, 477, 443, 331, 455, 445, 169, 296, 511, 491, 408, 427, 408, 318, 405, 182, 392, 390, 488, 219, 368, 369, 384, 372, 336, 399, 502, 515, 356, 486, 325, 293, 504, 162, 451, 295, 339, 220, 471, 421, 351, 433, 334, 392, 465, 303, 418, 306, 316, 515, 317, 438, 482, 454, 475, 370, 459, 496, 505, 384, 185, 172, 497, 171, 281, 400, 418, 499, 436, 391, 108, 468, 280, 422, 313, 467, 398, 464, 167, 254, 168, 448, 465, 505, 471, 312, 467, 418, 403, 374, 470, 459, 347, 468, 395, 425, 19, 472, 510, 456, 428, 495, 75, 255, 467, 465, 425, 512, 387, 426, 335, 453, 474, 487, 480, 462, 344, 511, 207, 309, 419, 419, 395, 424, 272, 346, 382, 460, 352, 169, 442, 476, 404, 473, 511, 330, 196, 334, 329, 438, 438, 503, 255, 481, 500, 420, 472, 509, 394, 450, 255, 472, 373, 365, 488, 305, 496, 418, 193, 368, 305, 508, 495, 494, 199, 420, 514, 450, 201, 496, 238, 264, 411, 358, 229, 287, 493, 346, 409, 489, 102, 480, 413, 435, 290, 317, 303, 348, 376, 314, 422, 297, 343, 250, 513, 466, 290, 289, 431, 503, 451, 516, 328, 305, 427, 361, 307, 469, 341, 476, 371, 489, 328, 355, 310, 437, 515, 402, 386, 403, 412, 357, 440, 486, 448, 399, 337, 514, 426, 478, 506, 462, 360, 466, 496, 279, 397, 479, 428, 505, 421, 461, 257, 437, 418, 315, 440, 498, 337, 387, 490, 437, 466, 220, 500, 479, 470, 218, 380, 431, 243, 396, 492, 443, 507, 373, 477, 395, 188, 496, 366, 457, 422, 336, 376, 450, 391, 494, 245, 384, 77, 44, 478, 438, 454, 407, 285, 508, 198, 457, 261, 322, 492, 482, 338, 512, 405, 420, 312, 464, 416, 80, 412, 249, 501, 412, 452, 505, 426, 379, 451, 479, 387, 137, 340, 507, 483, 459, 203, 453, 420, 358, 84, 499, 503, 408, 443, 350, 515, 200, 295, 376, 442, 369, 423, 346, 420, 445, 456, 465, 337, 475, 438, 258, 506, 377, 364, 185, 321, 305, 282, 509, 301, 321, 398, 456, 511, 465, 281, 516, 450, 435, 286, 416, 475, 254, 393, 469, 414, 429, 460, 389, 478, 492, 503, 453, 444, 393, 467, 294, 420, 157, 279, 513, 497, 204, 444, 514, 348, 459, 454, 270, 413, 440, 494, 434, 465, 505, 429, 384, 514, 466, 486, 475, 510, 436, 437, 434, 457, 516, 454, 473, 332, 433, 479, 499, 405, 482, 497, 503, 411, 351, 199, 380, 216, 420, 387, 426, 450, 404, 370, 447, 386, 452, 135, 253, 482, 416, 276, 171, 419, 420, 288, 241, 474, 391, 368, 488, 365, 400, 363, 354, 274, 415, 345, 376, 467, 138, 479, 295, 391, 382, 483, 444, 446, 390, 304, 510, 507, 385, 452, 216, 457, 472, 498, 438, 408, 388, 368, 498, 464, 462, 466, 508, 515, 321, 375, 337, 448, 273, 455, 435, 380, 354, 254, 242, 324, 489, 477, 245, 427, 195, 508, 187, 210, 328, 498, 145, 485, 304, 493, 392, 507, 324, 400, 419, 430, 439, 513, 432, 417, 496, 364, 474, 511, 493, 435, 487, 366, 364, 455, 384, 359, 195, 329, 263, 349, 248, 486, 371, 166, 257, 471, 339, 380, 357, 437, 441, 191, 443, 268, 197, 444, 306, 363, 160, 346, 345, 376, 401, 479, 195, 243, 514, 481, 489, 445, 432, 451, 460, 252, 443, 332, 283, 416, 502, 140, 164, 415, 359, 470, 90, 411, 425, 422, 352, 344, 501, 386, 335, 458, 449, 478, 480, 477, 487, 413, 444, 244, 157, 451, 423, 480, 297, 284, 495, 431, 384, 418, 363, 325, 245, 447, 313, 485, 436, 391, 357, 512, 490, 487, 417, 512, 324, 496, 366, 152, 452, 343, 361, 389, 254, 446, 471, 502, 399, 485, 395, 345, 474, 337, 481, 249, 510, 458, 514, 90, 362, 463, 347, 477, 257, 489, 405, 143, 259, 286, 495, 382, 224, 177, 446, 260, 427, 438, 434, 511, 187, 383, 423, 193, 430, 427, 447, 435, 487, 502, 338, 407, 323, 407, 387, 166, 512, 473, 310, 457, 490 +}; + +float input[] = { +-2.8588758611049867, -11.692946618257562, -2.0931111592429659, 11.110696212718175, 6.6118168080332342, 5.5228669775147967, -10.351976177615544, -6.2055936928533972, 15.766842028131405, 10.150684036103069, -8.459063190320423, 3.5621047687812557, -3.4741612771047636, 3.324748317571744, 8.996614205792751, -11.020291727957101, 12.081427681651697, -8.8928631203159583, -3.3519010114052263, 7.7902118547439443, 9.6608001848411806, -7.1066822779231593, -18.837368573809297, 6.7301895647238608, 6.7933629603091008, 5.9697810424393483, 8.344011991064086, 12.19791145343228, 9.4167774696594435, 7.423418316685729, 9.0291842080564226, 12.492983259925982, 7.1203329881309401, 9.8776999539720336, 7.3657220051725565, 5.4066464900536131, -12.553405951140983, -8.4918025628237199, -11.352365915823617, 14.756685666538061, -8.0938336502539876, -2.7071697789206022, -2.4795849849319289, 14.778716053676311, -12.149933491676437, -8.5931326392610909, -5.4147618905983697, 1.7095221079392837, -12.75286957597447, -6.560818125727109, 5.5288804134600262, -16.774264848727494, -10.397477377823613, -14.47470382199227, -12.095199384731899, -0.68504635593676977, 2.6623689185177528, 13.264791388391092, -15.654931986196731, 6.1276196890542334, 4.5068190091793028, -13.394637229913476, -6.9231832293793651, -12.113429033794846, 1.2142140703098925, 8.9363539352870394, -12.687063373304539, -3.3458614784673091, -3.4123481785186587, 17.559631253372945, 13.470764559481434, 5.3912902961422002, 8.0737946505557545, -12.755710856932868, -3.569697890412812, -6.2613535644882905, 0.068556269783912271, 6.2629797657916875, -9.2663011036090968, -4.4829975567184634, -9.6136989537403004, -8.7663852688801143, -13.974856274599134, 11.407302219619563, -10.302223327202944, -8.9771589068473983, -6.1388609170833384, 4.2370800072671333, 1.7760515525196516, -12.120232639630231, -12.958157445638765, 5.2985241644932541, -16.484657731002855, -6.3532421360393387, -9.0395804464700298, -7.2671128749847744, -12.616882711750195, -4.9350723080331012, -6.6905936282318637, 18.568407538602393, 12.530577696234687, -9.7889565176657243, -15.214958325061282, 7.215674131215513, -7.5394667988733808, 9.0137713371297465, 6.2553392643094785, 9.1953246360263154, -11.131787953429392, -5.4020937991353657, -4.0642543197135739, -0.44036236539366824, 8.0650609441874703, 0.85520780385748785, 7.2621337620159085, 0.29865166967486761, -9.2011814546979203, -10.330862011400864, -7.3191138151867943, -9.4852558149271111, 14.762260259194324, -5.0853268103463423, -11.2925794883785, 13.026909781206733, 7.9504343630905412, 10.148928930852414, -8.9032450603232327, 7.0914762951954913, 10.89340681888671, -12.705821222595254, 13.126012326275292, 9.4442919029362749, 5.0277440210736879, 0.21756213342494518, 12.710361373031621, 5.6453651213768019, -13.49634180382726, 6.4754225359227204, 9.6275804629486004, 5.8125840672452975, 9.7028326962213836, 6.1260130958734562, 3.3623596073706641, 10.736024757333299, 4.6569987032041826, -8.5021099021622799, -2.5832378575026125, 17.984880998940056, -13.974611077713172, -7.8550941092339874, -2.6917314432377575, 10.825283872831294, 11.217940706150642, 1.8301222470027103, 6.2062091666111812, -12.440863506480019, -19.955292055354317, -3.6699151522797462, 2.2154324244303956, -3.7363628672311142, -10.271027034445964, -9.2862432349117547, 9.7847963699436011, -5.9471830363214551, 11.139859339322513, -9.2599913694963618, 5.0422863933763367, -7.1141487133220043, 4.2177963601947308, 10.657785123505857, -5.7952000401674324, -6.826355874510365, 8.7268751949597245, -8.5906649209875745, 2.2758857640658201, -6.1665377492933358, -7.3104026599884433, -3.2424605164178031, 16.796591996286164, 15.671215006757382, -7.8445348658392806, 12.2589312976831, -2.5670307012079139, -11.537316744819945, -2.4858301794672331, 5.0542510171190438, -6.6860957990782133, -7.2619018024969462, -6.7329842279273242, -7.3146812058251234, 8.0821157274412183, 2.4005920765968378, 9.3157871935284753, -12.908851857280949, 5.2927115546650425, 9.9926730185778059, 3.9229860372333749, -5.5126846245121035, 12.313688019948762, 7.9681453222519041, 17.181368769149195, -8.962498225939207, -11.548950041024865, 12.014544817430894, 11.485639169870186, 11.939774664713912, -14.36069895314143, -11.812874687185857, 12.249194120883461, 4.8839501930831242, -10.540165871108648, -14.829380396239381, -6.4665012687326051, 4.7430459960995295, -7.1378949876943016, -15.357105375923917, 7.3351294975306445, -9.6095153441695373, 4.381145332149095, -9.2910048695861427, 4.894239034759102, 7.864879034656453, -8.3265429253416077, 10.497214061711553, -0.39338042557070996, -4.4611306847986816, 0.76940119561902198, 2.3535542193708272, 10.459438806533345, 9.4938186880252005, -6.4805717587307994, -13.457392617761585, -10.487085219177404, -9.8506932711478576, 11.274019685851906, -12.3031017274995, 8.3324030035106826, -2.3013116280481358, 8.3664075310158825, -10.402109920341072, -5.2924293563600742, -12.008098192077149, 10.992304106359162, -5.5591947469243506, -12.838234842015352, 8.1682577157065577, -6.4919177172949487, 13.568876091933316, 8.0352162745849594, 8.7834139460450125, -11.335870474093099, -10.790767171281415, -2.8875937626970223, 14.64505222675956, 11.436743007190451, -2.9337339836825955, -12.707240342338084, 16.661129912274529, -19.171798326126961, 12.280144746488103, 6.5975965145696174, -13.019719338217644, -3.4328503704209457, 4.822535491209953, -8.1340577921572415, 11.549182216506546, 9.6431724916100059, 5.5547407614902173, 15.019668995173307, -1.6514898426907461, 16.110709054474917, -10.9397931999944, 12.04576668183285, -8.4818868311872198, -6.103248438757908, 8.2975079067215702, 2.5480181038085412, 18.799878298920927, 16.231939791740228, -18.011602750805633, 3.7139764502467689, 12.751595841360283, -7.8718015936255812, -0.40802815212428428, -15.47812599016518, 3.2584854200798588, 14.976391986507007, 9.1367378814346782, 3.4155780056910059, -13.292285487599507, -12.855991908912157, 14.013291588644732, 9.6911017234399335, -5.8910196575740752, -2.2280612655108047, -11.219438047247786, -2.5955623953948517, -3.4460676112793136, 3.5682986120247073, -11.70300520092221, 11.99455548751415, 7.319096625369828, 8.400961847094683, 12.142806695044221, -3.6775894169196279, 8.3797255658565142, -12.156985373281584, -17.475193610019677, -14.228116929396922, 10.726007504360073, 15.267119384103992, 12.781072511062279, 8.0326533999697229, -17.51207194760946, -7.554034280962183, 10.066411068992132, 14.13799652436988, -6.7247334837075705, -11.112518294834185, -5.7326833292155523, 3.6877552031425131, 8.7105204152043516, 9.3857694378580963, 19.127569440965896, -3.8614826162666089, 7.9404471399280068, 6.3807591097483005, -6.8888859894612535, 10.317928637508684, 2.1736529765433783, 10.953222318849482, -7.6682531128958038, 5.0318286636058982, -6.9463690764775503, -3.0184853792276383, 9.6041512562391542, -0.88225262267439808, 6.4852292067129724, -2.3181001351577644, -13.197351056460056, -6.8047677874499586, 5.3843074707174692, 5.1196343577870644, -17.820822197855577, -12.257015718775355, 5.1913937352654651, -5.0162460867599536, 9.9461758050913041, -9.7414598652248081, 8.1378256819797858, 12.564281794378495, -5.6365288176451322, -9.1029468332924104, -5.6355130288814301, -13.719331548944416, -5.8613058178495017, -9.2573519867695815, 6.0620773131346706, 5.8947778726542905, 11.265652594812099, -11.760986024368906, -7.7447348268870124, 19.076436411627338, 14.505720191829832, -9.0750817120358054, -5.2025480400034789, -3.1960162333402482, -11.659437264119374, -7.9842387274926709, 8.5980388295231229, 14.858752059828165, 6.8639263237417376, 6.0631638589074024, 2.7093921939507379, -4.9581002755473795, 4.4179924464321392, -11.144868427484562, 12.546476704938177, 13.606433000436612, 4.0208619807458295, 6.2408832155761376, 3.0941528835943455, -11.347668662075096, 1.9313877794966201, 11.65105372954261, -14.681336156121709, 7.2969958167198605, 11.59264621157577, -8.831465763669156, -12.759130509205734, -9.0714254556796128, 8.9948895559776467, -8.3736028555285831, -13.115027308542444, -0.21628815052066303, 7.7132708674061705, 14.055053470061472, 13.370601410874029, 3.3283307501026052, -11.9653642849229, -5.6440590777489144, -4.2508984635752549, 13.005398229132568, -11.5296140873405, 11.286858942494266, 9.8110403874583074, -13.263569122014866, -6.4297799553106456, 7.9672918799786396, 2.1515462864377719, -8.490571668881163, 7.5548103934198929, -13.121628447449439, -5.7901204816768361, 7.5171762671769704, -5.4216710822831979, -0.95140907859749113, -5.6992105242986471, -0.91737830538166343, -8.2053563541920571, -4.9100295191078036, -8.650093905400162, 10.400080220873763, 7.2829351923330092, 5.3481291290736603, -9.5017802399357425, -9.8687523002255393, 11.82329840938681, -3.1919281246249707, -10.124868011353035, 6.8360355157042028, -14.032171223888698, 18.148403140529073, -9.5731633683674744, 4.0453611070899935, -4.114147796015585, -8.4912512496909898, -7.9968991599686872, 12.922672789580542, -6.7315939113482681, -16.414580925551139, 10.417406116722118, -9.5795995211441394, -7.974905790034116, -13.727944328842275, -15.024522822723423, 4.9026741637309703, -10.662764572620276, -19.122555879539242, 9.217115643469544, -2.9661166430929642, 13.154514394206242, 9.8788596316167272, 4.2669291411005252, 10.239868792823961, 0.50928446540137651, -6.9544644508051245, 2.9807945285095245, -8.2689690969205181, 3.5499295458600972, 12.732733620631645, 11.61935741986054, 8.4137329217700945, -13.703811206903364, 8.5347899814747166, 13.941804015126218, 11.213731601489895, 11.550008187296406, -10.885532785062049, -6.0320756476152395, -7.945602926688589, 18.178022024827495, 4.2378890109434684, -8.419937978328889, 14.273513193884424, -8.1801725060827586, 13.690183625733544, -17.518387733265431, -8.6392702216784656, -13.927446312699148, -8.651607062718659, -12.712917239643309, 15.009792996204254, 0.15853783962329626, -10.462310302523948, -12.535567399778486, 8.8192610919401329, 13.066656030822525, 18.005415525102343, -16.007576967175243, 11.052574245331391, -1.1810954342450888, -12.762633127175347, -11.427571726679494, -1.8068233566411038, -3.8651597939182674, 6.9028603232990591, -9.9188843352819767, -13.607089316301986, 5.8989769757503172, -10.266998033319117, 12.946619994251195, -7.3433271276853551, 13.594756446262442, -1.4802835189751626, 2.9459432512420887, 9.0127453411993006, 12.34274116102957, -0.99056567004691576, -1.0211228826859517, 10.87969885601588, -15.669877762479704, 16.01192464298973, 10.789218207135569, 6.1523737440350752, 10.844976713696601, -18.796538678004055, -7.3982730413954201, -6.5213519941388851, -18.571369340190397, -9.6913300045155282, 1.0175474995943568, -8.0705533615168754, 14.251221745808563, -14.054781652173469, -10.906074448438877, 9.9932114606110058, 9.2204934537976815, -11.102967677965665, -15.06146952578059, 11.282374133246716, -3.4111780254645643, 7.3857075662336609, 10.330601600777463, 5.6502615537426548, -7.2776853004382911, -12.041052757776699, -11.046289906579057, -2.8519140526114701, -14.358095698121817, 4.6207960341417813, -12.368837238636017, -7.2377430770905917, -7.1306536664479809, -10.374815173234571, 7.5287331560402384, -5.4660620697715716, -13.441122458297521, -6.5962962593129824, -8.4930653390556969, -5.473757203858737, -16.42318744504734, -7.678902139771755, -6.1724752873292612, 17.227224731420481, 2.7992443468423089, -11.010643413583562, -6.0460973993600238, -11.514094016830022, 7.2250024006000091, -7.8426213114387204, 10.647716150585898, 5.7539405508617296, 9.727218535739766, -10.217949794886991, -10.197658817694322, 1.4534950594678713, 12.10682632749001, -0.51088307163622715, 17.710760548825679, -7.7470194812395397, -24.372971692573486, -6.6052580469808717, 8.826482956514015, -6.7872955696686779, 3.6389619856040674, 9.9237321927880782, 12.100520790781362, -6.8842633676573595, 2.8844843405481937, 13.672108533544661, -5.6338295492883859, -7.1944131155704678, 6.9746870716875398, -8.2312590639291852, -10.25205738032861, 3.9564297173352139, -11.16342115946062, -8.4103856915642865, -3.86058459788803, 6.7693385059336668, -5.5093604081945458, 9.9112156966838256, -11.829917793796264, 12.06350448472004, -9.8908904770778552, -17.725516485129567, 5.0710728367340741, 2.3733785626266992, -12.373813495428958, -8.2010211819107539, -12.301300323962623, 10.576063861117305, -2.4429576335852246, -9.8126936984062763, 10.720987427999063, 5.3468144210345949, -7.436093608771988, -12.085562323273949, 9.616133130427178, -7.2337117418265358, 6.590012489497771, -12.933819456719151, 9.0992320680750058, -4.7115096872358144, -12.444448996962361, -9.2431835291508904, 8.9400870181220906, -14.84487535501597, 6.9572855730306786, 8.679259378600257, -11.728117564638417, 11.57774167266283, -11.089244669418909, 4.4545841055164113, -10.471036138424958, -7.9268850048012363, 10.006310688982033, 7.3307629546995496, -0.70086411051328346, 3.4399790497959652, 7.5780305602750353, 15.952535940468001, 1.1236075069228646, -10.56946563987197, -16.455271371728593, 14.943737550316991, 15.270538328279843, 1.8246123975329285, -11.861267836196021, -12.897409417413272, -8.0295182717849976, 2.5085092290718261, -2.997769928368061, 7.7106512520538253, -9.7986312114017196, 3.8597867083890951, 14.715042117673541, 3.6286772784703238, 4.6804229784596041, 10.468442660987332, 6.0309605373905297, -7.2836222700763322, 7.3372979832476464, -9.125874340732242, 12.431154776537063, -12.652059501141041, 8.520614267493885, -14.669291764198016, -5.4369263583494511, -6.9272239504642288, 14.411503339302335, -6.5090359387453871, -3.8249288367587844, 6.226877964919483, 5.4872378813688707, -12.071286274848809, -14.839631376528764, 14.929556186968613, -13.550466083272015, -17.79040452965922, 5.2176515285150078, -8.4073909354978511, 13.152357868676932, 11.880434179671278, -15.154722117187848, 3.3578570344364098, 3.7992951070371852, 12.544849221875657, 4.4664223998223864, -16.02563218730095, -16.858694781271584, 5.8423687431569373, 14.717494305248145, -6.3014233972716296, 7.8246512200173655, 0.2490959399462627, 10.09774947224876, 8.2302536611399972, -2.0230125836350608, -10.877543890130998, -10.315299910440396, -17.814418691884743, -4.7984509876179366, -10.569732541659832, 12.468245506360125, -8.1994351150315588, -8.4938440033843783, -15.646554844352739, 11.104862652426069, 5.4254710709054565, -7.075912451839514, -13.038488980503107, 8.6283602505517099, -0.1897762834069755, -15.926221800862628, -9.4620561439869952, 11.028601034997564, 6.2202218101379954, 13.01838761394424, 3.8814455959068872, -10.571348353520641, 9.3930545668475638, -7.4486485829571807, -15.896920034679038, -7.6634637506716583, -13.744383772875613, -16.289316553121051, 4.2240572521775093, -5.9728476753105495, 1.4435980912356212, -9.482201269588181, -7.1075995048298424, -8.4496788887326719, 5.5233585701859731, 8.8295065675835449, -6.8321409197770491, 14.622652588625614, 8.1030077299922656, -5.0997213512339847, 10.535820013561885, -11.687469584683409, 3.0547169868379771, 8.210959869395893, 10.201179428221021, -11.658463276051274, -13.563724058479169, 11.01039677555352, -7.1382476676607203, 14.955134349802455, -13.750666848543476, 10.162311270235616, 5.7884645703783697, 7.3371242692507819, -9.6841606635170585, 5.466449250298048, 8.4163518309029381, -7.1508542487337046, -6.6797959016182888, -4.7449989886325188, 2.4393509869405792, 8.654752655597532, 10.070879973393719, -13.17581052395726, 8.5470611298539545, 6.660259185215466, -6.0653871786400737, -6.5193717691612134, -12.615899043092323, 6.700881216282939, -4.8478946577189745, 5.1988868211607864, -12.549358461765644, -10.045744010088018, -12.380860324318006, -3.8616068170109248, -14.465705737907983, 0.4164829268257374, -17.143567612135136, 9.487366827722223, 12.652721901108753, 0.7645899772346989, -11.920812995054151, 5.348021509175628, 8.3879926788022008, -4.6246359904401313, 11.089899173175201, -3.8332542947304775, -13.36196018971258, 8.2464982273107097, 14.657515986404208, 10.904966172392774, 11.533578255944192, -13.982006985588614, -11.973821478795168, -16.592644946389242, 9.2836692767439004, -12.678645783087854, 10.730932446196368, 9.5849200107862327, 8.4498461340685918, -8.6907116625889529, 14.156816081594213, -2.5856081507256512, -9.2993749691896994, -3.6239666126178607, -1.8399557052395836, -9.9970546829752251, -11.017332480853435, -11.692178962270885, 6.3025733321249016, -16.175906955071767, -14.423994620868056, -14.689511946206805, -7.2353003125032167, -9.3660212630661839, -13.858073820033896, 4.7709918994882639, -6.7026088232668739, -10.527782639004828, 16.58828557927492, 15.050247187970289, -4.0564185563228934, -10.640020339068798, 5.0431846567205971, 10.934348304548614, 0.75988821460881439, -10.291366703091549, -13.942020188031572, 14.135017480152827, 11.151498767692816, -11.537353350061172, 10.343082453782436, 7.976541387752091, -3.5774431227145778, 6.7912849734238856, 1.8417106851238594, 8.8764923317563689, -14.359256236175909, -5.6171451890921933, 5.9817930874266256, 3.2031461221092781, -3.5231009274983971, -14.863876345356418, 13.612377512426715, -8.9030335281364348, 5.1285813990983709, 4.8771312118802621, -3.1813763041012044, -8.1658030154444532, 9.2635478384894121, -11.938316318486482, -10.581389864174858, -9.041740376889754, -11.289532586451648, 9.8541909326330934, -10.813754378648875, -10.992626098956032, -4.2128060145436059, -13.803513190675977, -3.4047166821717285, -14.699309096179331, -12.322199151029571, 1.9847013546589598, 3.443351936013523, -7.7412573332668169, -9.4014738152531816, -6.0936722951459252, 11.249057062872248, 5.3612317349290048, -6.0934505412619844, -10.329491262921293, -8.3782268065652321, 10.610705115588038, -7.7383153101209938, 8.5683043797354852, 9.5214421313463742, 9.4646448974772674, -15.945188235432587, 13.571842719150663, 9.1766386061343823, 3.9788060864638335, -16.400242920289237, -12.152955170027367, -11.743525499640301, -10.778431692576483, -9.560949750398839, -11.274506489189537, -10.497378072608422, -11.313774108583567, -8.6889440492171826, -16.999837953521492, 2.8463220500405759, -9.3414733746083147, 14.505309388696032, 7.2740770646355823, -15.216612609375215, -7.7754295642857443, -7.9668693810493751, -11.838336074962589, 9.3302243430363134, -6.1546909317578038, -11.643770269023584, -7.3067290482575826, -7.6586644572207598, 4.1554355791738411, 5.5784827988725025, -6.6788226812914591, -10.099712087346221, -6.812608788772855, -8.6942723276748133, -9.1414982497263626, -5.5404435688554674, 13.782301424897506, 6.4913332097552408, -14.843570407301076, 9.1090159582398744, -11.810479272023766, 10.734632284091132, 12.106233609286406, 1.2074129428018001, 9.05135706765188, 7.0513320487712221, 5.7063731455704252, 17.827025603920255, 8.2204534825947988, 6.859838386896449, -17.066087459633668, -10.546186910811119, 12.544407506754297, -10.501953033608231, 11.631217929282226, -7.3247345033456455, -0.30451282566541621, -8.8097804299616289, 12.580754884209387, -2.4535950387210703, 9.2528280654920945, -6.6762373246501507, 8.5487856314147361, -9.8862934311079176, -7.405954429775278, 11.460818356885351, 9.4241123506707218, -6.0650535086957591, 11.749931801221361, 13.45158323366806, 8.509266618399371, 3.0990921451133864, -11.845686618745093, 4.6809017476948664, -9.0788995203187035, -14.154172714949322, 11.436663871420148, -11.686823110591192, -10.466322347645878, -1.8093094588126659, -8.2842513297508678, 6.998530934794041, -2.8130875381789773, -4.7458503858358174, 14.892214325455083, -13.297630549395505, 14.137398522674463, -5.1741407656371132, 10.811880263388231, 7.6909240450423546, 1.2020066622797796, 8.3882554040760446, -13.296889605096078, -14.12122762385526, -0.86913405214011996, -1.7012640446050573, 12.135944269100591, 13.696947616128121, -4.5178290393967648, 11.379039879071998, -17.142332699109016, -6.2502893853176538, 14.551005043468933, -15.922443449630226, 7.9749887358427554, 7.5006183839537428, -10.731307185445075, 11.828405368248815, -11.242740313773945, 8.6857287401789396, -2.3357416563180076, -9.2522949403141723, 10.057172114119057, 4.2142804964077794, -7.25445812349398, -4.7859211707096279, 12.212717205630641, -0.68060465039856421, 8.3585750011161384, 9.4355684709667997, 5.8736217498953929, -10.357680904873, -15.182609723791906, -10.528438249903205, -10.728845332160351, 4.4271186570969041, -9.5459159618972773, 7.698786708464044, -5.7616256574906473, -6.74427916594568, 5.0713712230747952, 4.9757324493057258, -7.5822193975454732, 2.1521506074067127, 11.702619296651129, 2.475868836880037, -8.5152128927626887, -8.8176272081621523, -6.7396490012107382, -7.1103087325178862, -12.249044472908748, 5.7223187192045835, 6.0785970538718885, 13.311388408274434, -5.1967232459428514, 10.616058764924363, 4.1131834199366937, 9.1157637550044708, 5.0981827919094043, 3.9623438215809581, -5.1277684895200872, 10.717366089367347, -9.6119167010571456, -17.671933631733026, -0.93466484572541053, 9.4511618566836688, 0.51145591409598801, -7.4842698912260595, -12.965780155817985, -11.049283246505306, -9.4204398537725336, 14.713331608978752, 6.1294522089617445, 12.762571544243462, 4.2519976479727246, 11.581799865407062, 4.0540310044195316, 6.7583036711124178, -8.4596629969850596, -11.555561625120337, -13.223361797635503, -11.022881346403601, 7.820188150462851, 10.050313550691401, -2.8748772822692796, -3.975284267526737, 10.165011610963463, 8.361153496598952, 10.23454765876409, 6.9861352278001991, -14.063066120834387, 5.5703634980353156, 4.5720288674742182, -10.208336872812145, -3.8841964569917136, 15.871358616035476, -10.375333061106602, -17.028934392886523, 9.6095097993772214, 2.8612197492337277, 7.3984151374847418, 12.882442279479097, -3.8593872267618985, -3.3505651418910092, 9.1400352361857795, 3.4607159608677991, -11.802758101252648, 16.131696084668302, 4.3485520924992915, 4.9299693363247012, 10.20608409504235, 11.350181288635312, 0.71079817132091727, 7.1011529322063716, -9.9921413971440192, -5.8089676277937103, 21.431868331238753, -7.0747060210352215, 12.069527047899687, -9.4828998378865119, 10.122263948520756, -13.538606127789073, 9.6375976702501429, -4.4100604567201094, -11.99790766311845, -5.976372779813337, -8.272146596627568, -8.9450436886845743, 1.9542103075796229, -2.5876227697187235, -14.368094001362385, -2.985471188013614, -2.478307267502168, 2.7456040916726456, 12.581031236480218, -11.4758779722525, -15.599590155208737, -12.992869206559288, 9.953747866291776, -11.025999481843595, 9.7008748889831633, 9.4677048052865693, 6.0665148799454283, -11.021027787278838, 4.1148665510329865, 9.9715457939675805, -4.524015231428284, 18.833454602793879, 7.5018420072802252, 6.536477074456216, 10.39532612887518, -7.7192567198190574, -5.8633746049064728, -9.4739325485451946, -12.966876834521914, -4.8932353347242916, -7.50082678824488, 7.9240662467055403, 15.473285728117284, -7.874821177550495, 3.9913525758800343, -20.203393732375613, 13.177667766939793, -11.905585671112627, 8.76829420558043, -6.6904194950549218, -2.0990812946584643, 16.352167450942488, -8.6839871579774304, 0.65535704062993771, -9.0914298192610481, 6.226432112620512, 14.414606788199343, 5.3327990949329722, -9.2825422873145076, 5.2444348695624967, -13.52476436519694, -10.565017103537128, -7.9458267805510605, 6.2385267794539532, -10.620897086888419, -14.02491825647715, -17.249193736529822, 21.822546537373011, -14.525572761291961, -9.6352912168501117, 7.7923236942745477, -0.43905931375127905, -1.1677511335028592, 7.9195608711842009, -1.7261157613467151, 0.81574419315180335, -6.6258630940789853, 11.446710993602048, 10.423767215464459, 10.131515821910522, -4.0813762630157786, 5.3099875815632895, 15.005238483277349, 3.9458100113193013, 12.997541564501073, -13.401349640520106, 6.0898523220056484, 8.5430795315739463, -6.727566986421512, -6.0976964106078926, -1.5514248251358895, -6.9251342133096534, -5.0010498589221326, 19.36294632958224, -10.995748094036278, 6.8230876895289425, -8.9816761374312737, 19.252689002798032, 15.018231032342973, 0.75032883111291693, -10.512852145797988, 15.952636394768637, -13.876019658000088, 7.4282002133627536, -15.007337649734009, -20.867628639436518, -12.864466413292632, 12.282886216105501, 5.6117260976193588, 7.7243055425354985, 0.74537471606410499, -8.3753274103443793, 8.7297402808334041, -3.8752359373415373, -7.8660891683218042, -8.8027160564205786, 7.7988010166838881, -7.8129632889899385, -5.8353090570942738, 11.438552747844, -9.8854956847581263, 6.193488211617348, 5.7060858140643864, -5.8417400083956581, -7.1659403388854175, 8.8621684734697617, -13.828395956746165, 11.58722476958626, -8.7757625064865632, 9.7638601085689327, -13.63897121774294, 10.692146632523938, 9.1954815513953641, -9.7262358263602646, -3.0742135000084518, -11.831625275045802, 10.346151064081882, 13.860225574621548, 5.3434462647847401, -12.667486708061194, -7.6071393527596891, 10.497824234551809, 9.1398524858692305, -4.8312688599490299, -9.6866353191391568, -14.936854315955886, -4.5645292398393735, 10.306087472805107, 16.435616799434957, 9.7618939189542857, 7.3359442918945499, 5.4777235052650965, 12.827631906540597, -9.3557044067803972, -8.6207571310957753, -6.9067986860795303, 9.4266173165645881, 8.2700014055707438, -14.396299560527304, -9.1945433850102294, -5.0742673058143186, 5.9363570201246212, 9.1825801770474449, -14.26016478123667, -8.9647881473585791, -10.999991358949853, -5.2643587807317358, 17.966460043223208, 4.5038323715849113, -7.3643627119764705, -8.0021495622334466, -5.5012765171131761, -8.6385795076142866, 10.642859565399243, 16.418157809689014, -12.558310319227193, -5.6944436186565675, -16.620579134203229, 5.2993074909249556, -9.5535858720998252, -6.194850562303122, 7.9283758132069577, -4.3938243314441445, -16.08461551423154, -6.1053020627578558, -7.8156662613007883, -4.2010902685294225, -11.260598796472106, -17.361798229363732, 10.523477968271544, -9.2997205134904561, 4.7239785905440819, -16.55663724338849, 7.336212674126954, -6.9284736037251049, -5.9733477242286268, 16.958437027673817, -9.3688626284447736, 12.335069283139083, 4.4003768017589344, -9.6375650205771759, 4.3025216992304607, 8.1709809734149754, 6.0840979096543046, -1.7791701081822009, -9.7212268065403915, -6.3728373407996992, 9.4709301635928664, -9.8099415495718265, 10.216669472304444, -7.9089613940445638, 9.0133309428613888, 15.233159549099527, 14.443197589960937, 12.315849008505751, 15.22683390790605, -12.204208274855294, 8.0545420942912056, 11.261686524342778, -10.088714704911705, -14.758394330397744, -8.3506925495196622, -5.7190575904160488, -10.474095362096637, 6.7558531383042801, 10.839875782803038, 9.6223187492013871, 4.0011315315627671, 5.3452889051100145, 0.29628684358052387, 10.260560792716758, 10.010269925150098, 12.309818259037518, 8.3443036587520112, -5.4014577244395916, -12.309450717768483, 6.227119823086781, -0.90098300040336077, -5.9574142236058796, -6.5290358544134426, -7.443075641870017, 9.5718761708906559, 5.9045525168917088, -14.09287394192167, 8.537557668616758, -14.160598968888243, 5.8051719496039951, -6.239975019204187, 7.4524259174698209, -7.4731349725176219, -8.5239733925114809, 16.110254200184002, -10.257968713373153, 9.5898379203607735, 3.4675905258102322, 8.1300367938993361, 4.7762632339122959, -5.8974433337845085, -9.3140122423426206, 3.5847848816848376, -9.5355250106758724, 8.6839175133173008, -6.6948323819511488, 6.7933016290691377, -6.3800902026507824, 0.76093699061175468, 2.6435457529778015, 7.4138748481937027, 6.0247308500592567, 5.9280863177297123, -3.8920878288506016, -8.4621386416944677, -18.750651564949948, -7.6188990491921116, -2.1334205811758622, 8.7540093304816082, -9.8600851053842149, 16.342033110995256, -10.800872299968921, -13.998298573757474, -3.2934871871896396, 14.06180118603365, -9.271874228911658, -11.048285130582032, 6.1595626190926716, 8.0570216147192557, 0.66340001966893403, 6.5132884000227351, -5.4201122315987309, -9.7412562635013984, -7.0486139617141514, 16.981384687745692, -8.7022380510622721, 14.647877845477861, -8.0820055541788722, 7.2226523022245761, 5.3790569210687584, 13.728807132743302, 8.5317048523035623, -2.7316549253863927, 5.3846139594020226, 5.4103146460176523, -6.694268736004001, 8.7300406717059573, -13.347383859719848, -8.335174873152722, -10.945696086225201, -10.4875598953527, -6.2891459907155456, -9.3671321709341981, -11.585498988590738, 6.512870728010193, 6.33239714027453, 8.7682544573530521, -6.7439993019333704, 9.5026784978124166, -7.0246760343330656, 6.4372813340255446, 8.1945894173399711, 10.262887249545706, -7.5060931723177706, -14.674750300787338, -13.287289997793177, -8.4928309129257595, 7.4563888548291644, -4.5195874938690226, 8.5442291590063935, 9.7115273312730501, 15.092119744113154, -6.4263051953856785, 0.12831365323535676, 8.7640439297438597, -6.1460218943241305, -10.889755958467752, 13.67769695151666, 6.312988951937812, -13.227320725213115, -11.784825668882982, -7.6748667604861192, 7.7787450544407344, -9.3711259762266828, 13.023365017019263, -7.0200584128511876, 13.494925467734497, 4.2227722997626005, -13.760223253172747, 6.1777636365323456, 12.067306433588751, -9.9155428829691132, -6.5766064428842856, -15.151662906193899, 9.6988065214723864, -10.152731302282174, -8.5735676931961322, -9.9418795299730185, -6.2260760507460198, 9.447544122507308, -8.1319644337468215, -4.145324424570318, -3.5485961822808565, -13.467769122062073, -5.7514070303621585, 4.2372927865136871, 10.111694661148967, -7.4186471554037379, 11.430760000153063, 12.312843067890855, -12.810688665750249, -1.4448074235360808, 7.986361807585828, -1.7676683131382003, -14.521209725348982, -4.352705664193615, 18.914853195668275, -1.5113121651615482, -3.6397864185997131, -8.6196558356553385, 4.1199321080626019, -8.4888399293551817, 0.57614759104880209, -3.8170562650576274, 6.5118953364681147, 4.0953213386352472, -5.3421050165325257, -12.272356482934088, -3.0358640779517354, 4.2481637384966975, -2.7752337082527849, -8.0160326885318369, 9.5768553793879043, -1.8524775210440534, -11.009861394679287, 8.9742068648070266, 12.471334080830026, 9.9992644688047552, 8.0039800551702207, -8.7981872925635614, 6.6433407975833738, 6.5480704488332835, 7.2841246634294423, -6.3252439319780178, -6.0513426125451124, -6.3988334931556485, -17.469331458693546, -4.580254889517116, 8.9993454898016569, 3.2238207283793323, -7.7799510625287303, -13.803751678166556, 9.7121916487763045, -8.1746700971358059, -8.8126126733994941, -4.8155492973679186, -10.804453969532291, 7.0086143651800121, 3.1481410707654631, -12.810183673768677, 2.3362046780839187, 5.744619950986845, 3.8643342874084374, -13.249939418679734, 11.415744222471059, 12.554737671029878, 9.8333778447831257, 5.0957400772063437, -3.9991407502674661, 9.8345770583999279, -9.7368996360840274, -19.449417624721992, -7.5133274868764675, 6.0619042605430966, 7.197156700662827, -7.0063836107615485, -19.263860108465263, 13.028208109141358, 7.1331219897936977, 5.4720228485501652, -7.3579311406347925, 7.1801636071660138, 14.640572831964421, -3.8340913302192701, -3.3062445113231744, 17.400159670258972, -7.1681505547822413, -4.3542281808553351, -8.4546164816007607, 13.421193429578857, -14.905121149794782, 8.3143744117862095, 4.9730046756217972, 8.3532232015837344, -7.5969825424753346, 12.3177910080973, 8.7607875220531426, 8.5127047792303561, 3.5774587189097899, -9.6494548210828786, 7.5331539937229897, -7.4747114284701679, -8.6591660587053916, 7.3468316363038637, -3.622337543593344, 0.47384090625185044, -6.0463560480716252, 8.0499483448215017, 9.7022755442800293, -10.776004671468062, 8.3543427603924503, -5.5360568466131905, 6.0186808121336659, -7.3543970398820848, 9.2806086183805689, -12.230546104506987, 7.4673092848302733, 10.975472812952574, 6.7926415721593818, 4.8749321283736755, 9.5323516120815874, -3.0280886662753885, 5.5571898549900514, 10.226559964818154, -5.8034190385368811, 6.5444311969384019, -9.130374827280793, 15.819448485436817, 5.5538576215556326, 2.8637826501217618, 4.0706674231610558, 6.4597011042272623, -8.3735378854139135, -9.5667300995851061, -13.845901714228189, 12.714093428899416, -8.3628461969588557, 7.5987675327409425, 5.9272125723131186, 4.6950385206484189, -4.8195825770873233, -7.908711363482686, -6.0290697566338824, -8.6859336035752293, -4.5193059923378351, -4.5940077637319696, -4.3311584091869832, 5.3536488354562275, 1.9921280360174241, -9.4633153479117045, -6.6570051760469031, 14.208357863252012, 9.4845107231608647, -7.1832992233853066, -8.8475487049318655, -13.630287949249563, -6.0719107719352952, -14.274798405390152, -11.162105305503859, 13.054901490270078, 12.995371746588807, -13.146715820058548, 12.945646134893682, 3.0460739976722446, -12.155229015360904, 2.7412678887489506, 11.780611735174173, -5.3341954653614927, -10.032480770112713, -5.8447538785525053, 0.52725472542845364, 13.379456926012971, 9.6135830134952744, -1.944448284069229, 9.0502993001659355, -11.346127451101133, 4.2434870682337369, -9.5043367843183457, -2.9775157830606012, 5.4193649803215109, 5.9212605221007886, 6.8739591477125153, -9.3618138585411454, -11.34734301929147, -2.8580136600449677, 9.7314938797272301, 10.716957084696832, 2.261487615173849, -11.936472547545375, -11.596497065616539, 8.1683014049841454, -1.9741314291525349, -3.8079032870338203, -18.998387033650793, 14.785213606318443, -2.4675987407306512, -12.092457768834166, 8.3055089082183038, -9.8880041321383381, -12.17693749962149, -5.6119106856770609, 9.3346742365750952, 5.9978824704833622, 0.13754021975113387, -14.894732183908136, 14.747292229007831, -9.7097733323647439, 7.1041665937562009, 8.747982309638612, -1.1124715705618149, -1.3453533016361534, -7.2336827315963976, -3.3065754079116902, 10.610359888132521, 6.439770888743964, 11.42420401634142, 6.5388842458764689, -10.853598132676623, -15.353822721495742, -8.0675862924724751, 14.459019981256141, -12.566396596207603, 3.4205186262164231, 5.630487549883056, -8.073684341188935, 0.82126057392054652, 13.882060246971731, -11.094144048902541, -11.389801550560342, -10.3187260289045, 2.991571648758196, -6.4911734708363165, -11.245496138683489, 10.9851776336762, -13.130504876870628, 3.7733165504957942, 8.4076079303113911, 7.5529546967120051, 9.1048736341912768, 2.7287083950923141, -6.4019633593747214, -6.7703960792021753, -7.6283872602484184, -7.6359394699956251, -11.153289601654617, 4.0727793884727168, 8.3062884746691932, 15.72392064712384, 0.9811577968163786, -11.722310671012934, -11.342923130703641, 4.6538782013854689, -7.3739066993524025, -5.8947067956510093, 11.486762613574625, 12.413880145399126, 10.786268654735865, -14.830950842039924, -12.718664091764236, 11.838893611398694, 16.960744319691706, -0.90885433404131177, 11.805632469674961, 8.787147329142396, 7.4670599584679005, 13.783711428147573, 2.6889832573487715, 9.8277282208337393, -12.621979239155044, 11.900463485129047, 7.3974913674936378, 7.9790082301381764, -18.460977129782226, 9.6868989422260476, -7.4849707679692381, 2.791279213037106, 5.9072811103444005, 10.027746084723706, 5.481378194108391, 0.94657543605496242, 3.1638084348680802, -11.565804912112132, 8.1295825065418228, 6.2454385368905463, -8.7244225637155086, 9.2949740971114814, -15.413745662976126, -9.2767171742637053, 20.883637553321279, 2.1729042705598971, 5.2123425513190229, 11.260222333457566, 5.4759025599371576, 8.1537344500122764, -12.294121929916995, 8.802476739158374, -20.703918322925325, -9.4123075195898913, 14.838015503157582, 8.1809389421993437, -7.6381202529000944, 5.0731354695422288, -9.7523696522120105, -13.519239387616903, 7.7323479369959101, 12.148583040284464, 5.4807070910189717, 4.8696229713233139, 5.0087903276064836, 6.4402113569592467, 13.277426855835845, 9.6524651881369721, 10.826902095836219, 16.183489895274345, -9.6318043844967534, -1.373132442179763, -11.219593888898418, -15.004319828107285, 18.258393722812315, 3.7354456310459385, 8.0651749744359105, -6.5164044554554748, -12.565266643553137, -12.030885912645394, -8.5404810535779507, 12.314165209697041, 7.2947873166397219, -10.819275536058335, -8.0129408622894012, -3.8121662128657552, -7.6091124585846721, -8.4798365873122474, -3.9868453977970675, 11.38629202057937, 3.5714802941824, 2.9518831049273677, 6.3322250488086071, 11.580034774188221, 13.479927163429085, 2.0786137569475098, 7.9330224326080057, -3.6943001859225055, -3.2256160391289095, -12.811450358156192, 13.541505165687818, 2.6411149013180362, -6.3489619114245244, 13.373338952003571, 12.628299743258562, 1.0027687748564038, 9.2077227922659706, -13.768254699816865, 6.8324600540916247, -14.524379303203943, 9.2715316925285709, 8.7678396133255916, -7.7000840765938703, -7.6752994649649313, -6.9178464084480851, -2.824297046557938, -10.067962153214038, 9.8382780470022801, 9.8343360207768367, -10.442346656794413, -11.531825845771756, -5.6955603852302623, 7.9952115376447042, 7.2796481632297372, -3.9815702225402285, -13.888827599999129, -8.7028698626538308, -6.0635186121417952, -1.0917426165389645, -7.5444189349932813, -13.502585170286313, 5.3738984196649149, 5.1002418292985094, -2.2415640749653791, 8.3993581378656117, 17.872303247028064, -5.7930453662663712, -9.5610560588597515, 8.0594903059030294, 5.9955468570765671, -8.4016643820784811, 16.017479926774133, 12.457791465479348, 14.251050296430238, 13.550966058757862, -8.762120073439311, -19.568799520529904, 14.473633275887034, 4.7150108398434316, 17.622896812791758, 8.5532109821391256, -7.8861564007563967, 2.8018084587073706, 11.238281768369326, 19.036214400042667, -12.627994340787289, -3.229926146308185, -6.2106083456766665, -12.029815325633603, -12.732678066605525, 16.114114027765005, -8.8878875737603433, -9.1952288940063198, 2.9514348736209386, -14.875969949421576, 7.426537438524826, 4.0988218779588257, 5.1048469008081083, 8.3561664083509974, -7.1680838371486972, 0.079559302266173665, 7.234447616829998, 9.2153180384359938, 11.380502523658766, 3.7813665464468564, 9.3571471630839476, -5.6198950965916659, -2.6112846832626295, -13.074922193350705, 7.1458325396315745, -6.8553238201936848, 14.037347515845747, 6.1114574644258219, 2.6233447927944442, -6.6962191818230385, -15.054560815064955, -3.8509653059595634, 5.6193134186600444, 8.4632418525580135, 9.06084843255511, 8.7155312766304451, 14.146656363113056, 9.4485647712524159, -11.894790263269002, 6.3630883640874796, 6.0659222594215532, 9.3423771994935656, -11.56898779218068, -12.569317170483185, -3.1542401369229229, -14.317618053977442, -16.07713062656423, -13.866270731830225, 8.9731628045127234, -2.7568654754219311, 10.650056946180007, -0.38554919912492391, -19.636918428478758, -7.261084813408365, 18.261599502237281, 4.365909470450525, 9.4604701736004575, 9.3379768195852684, -5.9721332777841125, 1.8392337494849149, 12.236588220433115, 10.729755869202716, -5.0163355160529157, 7.8745146479874295, -12.210717308250283, 9.9053843786672573, 4.3176048616878999, -7.1321033170654076, 9.8376099896153644, 13.994875675654404, -11.800822210877568, -12.467732532409068, -4.8096053846346782, -15.806886200214143, -16.011053902031289, 3.3108259217896991, 9.3708906824355758, 4.9387906035182194, -7.2811664484622529, -7.2283659694812323, -4.3994107454794076, 13.986557692605393, 16.267589496305209, -12.5211237853249, -8.6162733581098614, 11.875897506788261, -5.7924040049014529, 9.60395357854315, -13.371234187638548, 7.4044876769030976, -9.9169764629346115, -11.960026798255779, -5.6929530819152605, -14.080996179546117, -4.9741440758010285, -7.2894457453898616, 1.7385165163304241, 10.659988023147882, -1.4616437274123262, -10.074637029156758, -17.086127613435742, 12.235716666711239, -7.9575522168496349, 5.807625236075423, -9.2779276010226894, -16.480345338445041, 9.5297786981975108, -12.287759229285887, -5.793455825490601, 11.046928184816098, 12.263531584491689, -15.868613864191206, 6.1089590101381299, 7.7043039642206841, 6.7725058819006509, 0.19765926454723443, -10.92190123421037, -8.6903416862217444, -3.604954070470813, 10.780882529813848, 7.6342821794581255, 1.819027960022801, 8.9622472070627612, -3.7731185676641705, 2.6511830669363676, -5.936256145443763, -3.5065708446633179, -1.6756694810431396, -9.4457045728120921, 5.1176087336867671, 9.0843869892318665, -4.9165468247185249, 9.6190501542416023, 5.7720688303614107, -8.8665231351704143, -16.776765049597191, 5.1935200585542409, -7.0317717992679913, 8.5952975711448651, 15.701379400382201, -5.1747900955843287, 6.644409479106538, -12.294043736596755, -15.483394542555223, -6.9161043885800755, -16.902160692468406, 13.140408586007654, 7.9585367038084494, -0.60142488467217781, -10.583573691246794, 7.6570812407643905, 10.488467203766263, -12.229594163883426, -12.105180821633089, -10.100333917660924, 10.582889173673999, -4.3524138084056574, 4.1598294177868027, -7.7208623056787218, 9.8373959423124191, -9.843437056863948, 9.2758547221503864, 13.917929858415311, 9.6348606573169207, 6.1603576344825903, 7.2761550553448275, -5.6132644264075031, 16.925921888188984, 13.099232943399601, -12.169951256692608, 8.0341465714582103, 9.5080586839310293, -8.9153040306547862, -6.2778930359354987, 0.65702865949253608, 6.1455975831103666, 3.4956736733487177, -13.101966614043903, -8.4917541060921486, -7.7703858331616402, 2.9540207920840338, -2.8250454453694225, 16.471572201031012, -8.3401753077338174, 8.5209392200398799, -8.4562622463700912, 5.3451445327350049, 8.3227551961577149, 9.5505384761710648, -9.6168853444985132, 7.8088619634040271, -10.010194534199005, 10.407541359870157, -12.730901681260953, 10.062237956980878, -8.301093581147164, -11.221782089013969, 5.0699226682185836, 6.8670809315755763, 9.5183305660198574, -12.477293633009369, -3.0829984725185011, 14.251075736126907, -0.50381312202666373, 1.3945668674871461, 4.4380349292124333, -8.4792849992484687, 15.740298722260704, 6.4916661990457039, 9.8781328856963952, 14.524311425947424, 8.623227064986775, 1.82594923740208, 8.1658888991281113, 19.519909829772214, -0.71626812905103776, 1.7182300090879543, -8.0056305624195137, 8.8667806307632393, -6.8903486607996696, 5.3931378831660304, -14.284745953661838, 11.800779205285183, 11.828892295047666, 11.579327959504184, 5.9644626407280574, -10.637566489206868, -6.3308930175168046, 10.362896991246821, -13.136681551103671, -10.69114929291889, -8.2804076555200332, -8.7620956793565572, -8.3349590113674843, 6.0390086996968186, -0.92206940007654714, 16.688147291793179, -7.7396944231238889, -10.556885976235911, -5.5034713893873217, 10.684323799177031, 10.164740010619706, -18.644906837500962, 7.8255279920941758, 7.1184183927575999, -8.5879829996361785, 10.058536284915368, -3.9577147638427337, -9.4390455070755355, -10.813502747434075, 3.1725069430189179, 14.646645070268773, -6.6958720302719321, 7.1891012020482057, 2.776770380964142, -5.3045752723276198, 11.024688310314966, -8.8716706651748609, -6.2182144207648875, 7.2174155723591822, 9.2363647659736916, -0.13811663085025644, -6.5095852199241193, 2.7850661520962201, 5.7288466875807895, 3.8404238060339386, -11.979694823507765, -8.1566218452888641, 8.4872181623141802, 4.0684730663558621, 9.433119896225687, 17.452359798566942, -9.1852211978356539, 3.7813711040017632, 13.687886395835575, 8.3110503099043083, -12.263855365231695, -0.29265821325473718, -5.7786710506977288, 0.32000221107421295, -13.152220176187292, -6.5995903240006717, -13.649334703564579, -7.5516513340805105, -15.16406327996164, -6.7664832291371457, 9.9511431024063146, -11.833825853245724, -11.726480937964023, -4.6960938337568416, 3.6909792826776235, -5.7241654435325771, 0.84009221550172219, 3.981445765587416, 8.3193977689219309, -14.855487044550641, -12.13768399449228, 8.2575189786919658, -12.482209307351347, 12.288265749008579, 12.92588605732125, -0.89651953932604156, -17.178851924529209, 13.465060130471429, -0.66179931634497746, -4.7361380949519907, -8.5915497494217874, 9.8633923545024036, -11.075503948766817, -11.521258634171812, -16.937563321814299, -8.4089961555477153, 10.316744468138424, 11.068755254870558, -12.812559137681774, -11.716000182253042, -10.794814834414403, -14.695829972179469, -5.7734367211811755, 19.281663549262714, -7.7079679114509911, 18.982133221850518, 6.7278265135517552, 9.4200950070653935, -5.0327780626629206, -1.1472749532062567, 8.9655615288611052, -10.289968622568939, -4.5317886320427014, -5.0717832150149214, -12.403158065152988, 16.054879478569319, 11.910769204629043, 8.8721630995550154, 12.946670225247273, -20.040326823281728, 15.061437997065909, 12.371159663686912, -5.2434241432319393, -6.539600733678907, 8.9759004731301122, 10.399696431036546, -9.7820158235043255, -1.8655127741351087, -7.2564512028104291, -9.2402317505484497, -15.743596514833451, 8.0518221334585913, 8.064389141916843, -5.1750464722524647, -1.2577099412771857, 11.088648050953193, 14.734664098438651, -8.7257834129372487, -4.9071340910761805, -7.2288497019818241, 11.368753439780507, 11.259515603467754, -0.9190234527098583, 10.508309728639846, 5.5014236641516137, -1.0062376510942861, 3.9510038373896794, -3.3772476520373296, -12.298064413396816, 1.1518807046710942, 9.8347990668982277, -9.6697877164226895, -5.1708006319540161, 10.90534178699129, 9.0780310964231923, -11.06717326378323, -10.193153698637712, 1.6370922062264599, -1.599701860652494, 7.4493340597532782, 10.079750519485344, 5.9817167134058051, -6.1883642950981734, -8.7859917448021054, 7.6925693496530796, -11.726693947959594, 1.5292664230077266, -3.7640503328337047, -9.2026303785959076, 8.3703384923817321, 9.2968574133785165, -9.0282964165522213, 14.082662142896044, 7.0391904432891064, -8.1892402659133481, -8.494960679412987, -8.3171594195215324, -4.1204583607408765, -12.464929795412097, -8.2800259108270922, 5.0158695467591343, 2.90504266938304, 5.5802620759772603, 9.6053945607379294, 7.4665086294967553, 7.2836197716168538, -6.0797636096551519, 5.9192672325212143, 4.3197502963078556, -2.5794586298505413, -8.3804827856018385, -5.7616389244014083, 7.5165636982133597, -3.7871806468757891, 2.6957388838195038, -3.0339814791522679, 7.7390014359139343, 1.0179611498135317, 0.57428282151728316, 9.2486809887277968, 8.9851820183067517, -12.322228892543235, 2.1846637256927366, -6.9268224211182101, -5.6465263096341207, -9.8609073169739414, -8.0437109222330996, -2.5924823061626299, 10.799267368908426, 9.5532367964485942, 2.1510949897407339, 0.72813586085734983, -7.6316236927774765, -6.6634161974825536, -7.6995131312161114, -2.6469146283491312, -7.8927242011683072, 7.9686594739655217, -8.0858268153723696, -11.113628935027652, -4.2312391545249435, 7.400536752330261, -15.878877108958942, 5.267992480772417, 11.16296673206628, -17.540164979801386, -14.801126830818111, -11.385201143366997, -14.508310090705075, 14.464207778841862, 11.215905228606482, 8.9532196390944634, 3.1058203222772014, 8.0753828772231113, 10.559485384240654, -8.2414912742823354, -11.714805939566189, 4.7281042573450431, 12.657353257890819, -6.3043093049399248, 5.067000914225444, -14.714628033981958, -7.7444814248447615, -2.5025562382741042, 13.564851064978582, -9.4328409951276662, 10.04126088038934, -10.570084081595921, 2.3444801610493466, 7.1831276221853866, 7.404162681313343, 1.1684082688282307, -8.8884680285241533, 1.9400943416397112, -13.196562462363692, -4.5705203572273359, 11.003636571194738, 11.468673888105736, -10.534610194739036, 4.4477979444487845, 7.3667611650061362, -12.044187016767467, -11.396051178941862, 3.9462512050906744, -12.988661501036244, 10.545881026800801, -8.0309289513402735, 9.9370741830104734, 13.654579804016825, 7.0469488853837321, -10.938942295813185, 5.1800344871423132, 10.882232153707738, 1.2710853105543087, -6.5661242949766816, 9.7776412282696459, 13.321850745505881, -8.1153422577009291, -2.2941713421233958, -8.7097542589155221, 2.2618606797252978, 3.1810406025700315, 4.829995467844082, -8.8230523342209999, -7.8350849175265527, -9.1156429568037076, -11.442019665347123, 2.2127249998070249, 18.018245968154236, 6.7919203279388967, 10.818120665998064, 15.957114328595093, 9.436472994391762, -15.0724442489973, 10.177531220212931, 8.7382348206500033, -7.4439716572652967, -10.135340539629416, -1.5478693068716267, -6.2520881203409369, 21.51870984833112, 6.7814496888686202, -5.4629593689724354, -1.0810664038442734, 11.680093350196586, -1.1684404824410481, -8.8192804660387161, 11.947180907432026, -11.865540708697406, -12.073158010228243, -9.3168616660647103, -10.855717378744718, 12.832277402471462, -15.233827235544979, 3.719489187613028, 12.974696537296685, -8.75959465422536, -2.4475947054420195, 11.313184053568827, 6.9182165488811229, 12.123675956468196, 9.6442923820443145, 10.799907622549545, 1.3696427348286129, 12.109212710737127, 2.6404947713803306, 9.5435762973738267, -5.4268755145327745, 10.974370356637689, 11.459181655827159, 10.228613791177938, -2.0376202581586202, 8.5519223504193267, -15.144108617549279, 10.208111627929036, -16.074632706297336, 9.535346082793712, 12.968894012265515, 4.2926497043948793, -7.6447760416419124, 7.3591604897068219, -6.294066487171917, 8.6661482650382133, 4.3524844886549072, -9.6284187314739373, -16.389868048898698, 14.370574991274481, -8.2963813089615268, 16.504114329831857, -8.4564658970066731, -6.3969858495492078, -7.0522130158545027, 16.328014713505098, 4.0676774938327931, -8.8805902890220576, -5.6438005548253818, 10.887856323753418, -13.497382772819085, -17.229682704447541, 10.177341730428909, -10.959196430060141, -15.892999214486872, -0.39312548358593402, 17.548662000796629, 8.138747505659067, -11.081466337015, 9.3549081143588229, -5.2668052531909293, 0.59145215464277101, 13.865804154173629, -6.7446135707105945, 10.591472647241186, -6.8775928522394087, 0.79035105716724385, -0.83434363179526505, 13.426811179256797, 13.480253964577903, 7.9579945693584886, 7.8687287842784803, -1.2711852125721312, -6.5831626138029433, -10.255988526378117, -9.3721646222445631, -4.5483019698635951, 12.654546996958775, -2.2845772848784054, -13.395748226685187, 10.227730333720137, -8.9275038607977386, 9.2096733075692399, -9.1994549499155589, -4.5768838702423018, 7.4336970353205523, 6.1990136188764922, 5.392562974045604, 6.8615159418299543, -9.9148725697134683, 10.272013543022926, -6.541146389868957, 6.1996539988491746, -8.5702789915391175, 6.0710850780527128, 0.41216255793753664, -6.8452494187073416, -7.3698306482120808, -4.3788198137924814, 5.254192997316685, 7.0651978737141468, -8.3496697717376325, -15.541186410630397, -13.361062248182593, 11.869712905857645, 8.8858662456220436, 2.315280646740792, 9.1370562156627635, 10.612212040886574, 15.723923545841364, 9.3000796832012966, -12.203790919241875, 9.5229433645020229, -11.332560886601259, -11.799762316157022, 8.6718707861873146, 3.4390494326490342, 10.948206478975262, 10.351083327208633, -2.3551385999606347, 3.6593868571158006, -10.912461508095474, 6.3601915796808566, 12.644105697007012, 8.0987317607631102, 6.8425116090817673, -7.8614337809266139, -16.777952262404956, -15.092829035089149, -10.867283176676434, 9.7617585972043095, 7.0699740006630494, -0.80345056050581032, 7.2341098943011026, -2.7901743760803868, -14.023920253719963, -8.6493250885626658, 12.119156062865828, -12.565363519164727, -6.6257256922764087, 9.9530063133378111, 6.2285641482405287, 8.5890710113124502, 10.901661163934543, 1.7011000225296526, 9.2328185698429888, -2.5151197107048353, -0.78814118951465995, -6.3782804075339934, 0.77016194990540299, 4.7860592575330942, -18.091131028655795, 6.6618347947308489, -4.5537746303503699, 12.906362988375243, 6.6637236513957019, 5.4194732758517778, -5.626683563346548, 4.8295291548347352, -11.904932030289029, 9.9944164460741938, -11.027348899069844, -0.014743410131345848, -7.3410368137184197, -12.558702052466645, -9.2966083471503538, -2.8582301845790048, 16.122229949617235, 6.0332133243788979, 9.4423884847579131, -6.7953848219405604, -8.640997496023326, 11.564755524473357, 7.7370575077503672, 11.178600690994582, 9.6609341268345741, -5.0924071871300569, 2.9472182219982841, 11.322674214116185, 17.636604816170465, -8.112421382991716, 5.7980976514734257, 10.587871354585735, -10.207529594090163, -13.012906685255201, 1.6439826301840548, 4.7959168408892552, -9.1817793609379343, 15.910744159295755, 11.988413488939839, 10.225499838967904, -2.1100999951643771, 7.7773391391119979, 4.2070274590049737, 3.1789918079199362, 11.389698381773869, -5.6797986359782069, -4.7261529062162424, -6.1926650154600731, 9.5097255166801595, -4.4005426737892748, 4.8284348550831577, -7.4035564503513553, -10.371755556185054, -11.138214834764621, -11.479591917367713, 7.3492465579271542, -8.6401023000535666, 2.4737379805053212, -8.4391176745455763, -3.5699286239866383, -8.1254703716775829, 11.948227614312263, 7.880462510583679, 1.8623842706739999, 7.3888689386136646, -1.2896033177393418, -8.2116493851785464, -9.0121076446113531, 2.6038276518722672, 7.9944375021940459, -4.3649859784435145, 5.1704186172538593, 7.7846827735959723, -0.51775021699396251, -13.814395914977867, 11.155615752700793, -4.0116122940272048 +}; + +char detected_data[] = { +0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 +}; diff --git a/src/HRA_112_112.c b/src/HRA_112_112.c new file mode 100644 index 0000000..df4251b --- /dev/null +++ b/src/HRA_112_112.c @@ -0,0 +1,22 @@ +/* + FILE....: HRA_112_112.c + + Static arrays for LDPC codec HRA_112_112, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "HRA_112_112.h" + +const uint16_t HRA_112_112_H_rows[] = { +22, 18, 15, 63, 16, 13, 1, 2, 29, 25, 28, 4, 36, 10, 38, 7, 60, 23, 11, 38, 28, 1, 12, 31, 57, 45, 57, 30, 23, 59, 67, 14, 16, 4, 14, 62, 15, 50, 7, 70, 64, 6, 42, 48, 9, 31, 19, 40, 49, 2, 25, 3, 41, 49, 36, 9, 29, 39, 31, 5, 17, 1, 29, 25, 11, 21, 18, 2, 8, 22, 39, 15, 8, 22, 13, 3, 19, 4, 21, 62, 34, 43, 6, 24, 17, 60, 8, 74, 6, 44, 60, 10, 33, 12, 26, 24, 45, 81, 69, 80, 41, 28, 23, 5, 10, 20, 52, 18, 13, 86, 3, 7, 59, 21, 65, 72, 34, 37, 26, 55, 47, 48, 34, 5, 44, 47, 68, 96, 82, 111, 61, 74, 30, 17, 55, 98, 81, 66, 89, 35, 74, 82, 91, 51, 55, 51, 30, 89, 61, 75, 40, 71, 73, 11, 56, 54, 19, 47, 94, 69, 64, 20, 64, 12, 54, 77, 42, 88, 36, 52, 90, 63, 70, 27, 32, 73, 91, 32, 56, 46, 9, 78, 51, 68, 88, 67, 20, 43, 40, 14, 66, 86, 39, 97, 38, 27, 50, 84, 54, 92, 61, 46, 67, 24, 58, 35, 58, 37, 98, 85, 73, 84, 48, 35, 57, 16, 26, 37, 65, 32, 72, 95, 107, 33, 77, 33, 85, 105, 106, 75, 56, 71, 79, 59, 52, 105, 79, 90, 93, 100, 88, 112, 86, 80, 65, 42, 106, 100, 93, 94, 99, 97, 93, 101, 111, 99, 83, 53, 85, 95, 108, 107, 41, 109, 84, 78, 104, 101, 69, 110, 98, 103, 80, 83, 77, 71, 76, 78, 87, 102, 104, 95, 96, 83, 87, 50, 110, 103, 112, 45, 58, 70, 94, 91, 89, 81, 101, 82, 63, 72, 100, 97, 76, 112, 53, 105, 49, 75, 109, 102, 66, 111, 68, 87, 92, 79, 96, 43, 90, 44, 110, 99, 102, 92, 103, 106, 62, 53, 27, 46, 108, 104, 107, 108, 109, 76 +}; + +const uint16_t HRA_112_112_H_cols[] = { +7, 8, 52, 12, 12, 42, 16, 69, 45, 14, 19, 23, 6, 32, 3, 5, 22, 2, 45, 50, 2, 1, 18, 84, 10, 7, 62, 11, 9, 21, 24, 63, 2, 5, 28, 13, 6, 15, 58, 39, 39, 22, 76, 13, 26, 68, 9, 10, 49, 38, 32, 11, 34, 44, 8, 7, 25, 67, 1, 17, 19, 36, 4, 41, 3, 26, 31, 15, 45, 40, 8, 4, 41, 20, 6, 53, 1, 42, 9, 20, 25, 17, 33, 41, 3, 19, 55, 17, 27, 14, 31, 88, 15, 26, 36, 16, 28, 24, 27, 16, 30, 56, 48, 43, 4, 5, 38, 37, 40, 46, 18, 18, 22, 50, 76, 34, 60, 83, 39, 73, 56, 92, 42, 52, 75, 35, 37, 33, 61, 67, 47, 75, 66, 70, 29, 92, 51, 95, 84, 21, 57, 28, 46, 66, 93, 11, 94, 55, 96, 20, 71, 48, 53, 43, 82, 90, 66, 90, 14, 44, 54, 62, 34, 58, 81, 53, 23, 43, 27, 93, 10, 86, 37, 80, 60, 49, 21, 79, 74, 72, 48, 61, 40, 76, 64, 29, 38, 79, 51, 54, 13, 49, 72, 30, 50, 86, 35, 80, 61, 56, 36, 59, 65, 91, 25, 47, 58, 59, 78, 47, 32, 24, 44, 86, 64, 57, 12, 23, 109, 107, 85, 63, 31, 65, 62, 68, 111, 78, 104, 89, 112, 87, 69, 105, 65, 94, 109, 78, 72, 104, 85, 108, 77, 106, 79, 74, 103, 96, 64, 105, 105, 102, 63, 35, 59, 108, 112, 81, 102, 57, 106, 83, 81, 77, 101, 55, 94, 96, 97, 106, 46, 101, 83, 85, 71, 107, 104, 87, 33, 67, 103, 95, 30, 91, 89, 103, 75, 51, 107, 87, 91, 89, 99, 68, 52, 109, 99, 88, 84, 112, 54, 70, 92, 100, 98, 74, 60, 100, 98, 110, 90, 73, 71, 95, 70, 100, 29, 69, 110, 93, 82, 97, 98, 77, 73, 99, 101, 108, 82, 102, 111, 110, 111, 97, 88, 80 +}; +const float HRA_112_112_input[] = { +-3.7496794787890972, 14.372112019392226, -7.5640452729302359, 6.9426063455159657, 5.3103644888713299, -6.9203550501252273, 8.4296575778653775, 13.495087143587781, 18.111520666852243, -9.9125748623510912, 10.601298534930972, -10.468591112149715, -9.0757329437720475, -14.471433733514324, 5.2048820572852641, -11.353785810284556, -9.4511008284496416, -9.5255219979484025, -2.0499245561876696, -9.8739646459388748, 22.03442141444015, -9.9745566449839878, -8.4276711655946226, -4.9811962116476307, -13.018434575859896, -5.3358535334627293, -5.6704294937789648, 14.243964608060018, -11.417925510314507, 9.1332657371467878, -14.380214782394296, 14.090409878618974, 6.5602278279998272, 15.53025696352436, -9.1752771765906616, -11.384503450560766, 12.240329442222599, -12.640059450058276, -11.824715154614376, -13.487656131954735, 15.38073452845444, -13.816294924566529, 6.3461114450644454, -2.5192445130977559, -11.916088712873863, 5.4360722876642518, 0.038031547223147381, -12.367220238860654, -2.747864039796549, -14.920508782249289, 16.487336720060863, -13.290002442259247, 19.142698450560925, -0.39443060583296108, 11.723442316413736, -3.6131702833965047, -4.6196487103817017, -11.794290650694531, -14.342351103186955, 2.8079943208330334, -15.290175151123936, 9.0801740558512414, 10.184385069676226, 8.400722260237572, 9.3504690108712936, -14.223531676384166, 11.752768386971752, 11.36995822251677, -15.285021241405444, -13.070613695054403, -11.869191325617697, 4.3191750845563401, 2.0836933404582791, -16.363829786416495, -5.7778094839806595, 11.06389861779129, 13.285433846434705, 9.2552396418849021, -11.065999403824057, -10.167040394420443, -7.0107225044503565, 2.3886881673282474, 5.0014484787306932, -9.2464083853314278, -12.043309174487364, -11.638411967211738, -16.302815497922911, 13.347129717938067, -4.1390259986125226, 0.7947480277507295, 11.538620744796759, -7.4410706619926028, 14.572449028311253, 12.392747919231169, -3.3027890746379289, -9.8431096813736687, 11.582657487369399, -7.85736442083219, -7.3780721969188443, -7.4006260265172212, -8.3937994980934327, -6.6804071011469555, 19.656301355404196, 1.1084340389939762, 3.6028635453146465, -4.5409495140900562, 7.3831459854578982, -5.5905999874445662, -13.852328482738232, 8.9999210644983041, 8.4742375282492315, 16.989947243749878, 7.5590035165610168, -6.154674423116183, 4.1119120658251855, 12.351217703790844, 11.070972687846792, 11.182587746846833, -4.9345619923565645, 9.0054892370887334, -10.841725474869696, 13.902796293412067, -6.7575171884905396, -5.8196703210757335, 1.9284357540668857, 9.9905382141440455, -13.983067199220674, -4.9130522479706453, -8.2369300184767908, 6.8953565265629644, 2.9285103862640871, -2.6303471135655325, -8.3563361642086047, 9.5712349244763715, 4.9728623009661161, -11.045088919587242, -5.7781337596219604, -17.732999074602972, 8.1353860976076646, -11.066240843831284, -1.7079574457159534, -16.411685365171998, -9.0471090651358299, -10.959376227315447, 8.5840398495674126, 6.6373658260736024, 11.422094029020409, 14.85785089306844, 13.185747281780415, 4.2063935223916191, -6.9166135608899282, 10.843153262137262, 5.3913075109409441, -10.744469667642237, -12.491640291445655, 14.141118162062066, 16.425476099516025, 9.8833761863476042, 2.8719064151687883, 14.982021915112442, 1.3588165304065343, -11.657839635726177, 11.066314862965077, -3.0565490195476204, 1.7820159270701772, -13.535333311782074, 4.4026933190218367, -11.097334550496313, -11.322820869044248, 16.418516996530371, 5.8239202459876136, 15.054905601216154, -9.3058742038490152, 8.48902767802557, -8.3853534273227748, -7.9255089736435176, -9.6156735881618811, 11.502594413898008, -6.0542015398269911, 7.1229229147355149, 0.31483632310264387, -11.482093481730768, -9.3225703551629309, 5.8001228713062831, -9.3515917458791051, 7.9778737065172969, 9.7095180444854847, -14.060064536791135, 4.9797253221020545, -6.9210799657794224, 6.6736460552213845, -7.7636429824024606, 10.233132490278882, 8.401747393605044, -10.861100567451366, 13.631509744686715, -15.723791754613185, -8.7931294115815923, -9.9520037489001609, -10.312792052906007, -8.0681893911111917, -15.411052087079765, 10.938779471602952, -8.751795633239853, -9.1302029882284419, -2.3357314769649777, -7.9130658335895596, 2.7508172894969509, -9.1666780515772324, 12.793063537524359, -13.39091818112591, 7.2827402370664842, -10.400778532411657, -1.90854156128735, -4.1272702472088971, 12.696932922959466, -4.0180403457213805, 10.828999052972396, 14.720617452742685, -8.3763729074389719, 3.955093172344033, 0.90932711822659873, -5.6696817865337819, -5.8822086115513805 +}; +const char HRA_112_112_detected_data[] = { +1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1 +}; diff --git a/src/HRA_112_112.h b/src/HRA_112_112.h new file mode 100644 index 0000000..1184cba --- /dev/null +++ b/src/HRA_112_112.h @@ -0,0 +1,19 @@ +/* + FILE....: HRA_112_112.h + + Static arrays for LDPC codec HRA_112_112, generated by ldpc_gen_c_h_file.m. +*/ + +#define HRA_112_112_NUMBERPARITYBITS 112 +#define HRA_112_112_MAX_ROW_WEIGHT 3 +#define HRA_112_112_CODELENGTH 224 +#define HRA_112_112_NUMBERROWSHCOLS 112 +#define HRA_112_112_MAX_COL_WEIGHT 3 +#define HRA_112_112_DEC_TYPE 0 +#define HRA_112_112_MAX_ITER 100 + +extern const uint16_t HRA_112_112_H_rows[]; +extern const uint16_t HRA_112_112_H_cols[]; +extern const float HRA_112_112_input[]; +extern const char HRA_112_112_detected_data[]; + diff --git a/src/HRA_112_112_test.h b/src/HRA_112_112_test.h new file mode 100644 index 0000000..06612bd --- /dev/null +++ b/src/HRA_112_112_test.h @@ -0,0 +1,31 @@ +/* + FILE....: ../src/HRA_112_112.h + + Static arrays for CML LDPC, generated by ldpc_gen_h_file.m. +*/ + +#define HRA_112_112_NUMBERPARITYBITS 112 +#define HRA_112_112_MAX_ROW_WEIGHT 3 +#define HRA_112_112_CODELENGTH 224 +#define HRA_112_112_NUMBERROWSHCOLS 112 +#define HRA_112_112_MAX_COL_WEIGHT 3 +#define HRA_112_112_DEC_TYPE 0 +#define HRA_112_112_MAX_ITER 100 + +#include + +uint16_t HRA_112_112_H_rows[] = { +22, 18, 15, 63, 16, 13, 1, 2, 29, 25, 28, 4, 36, 10, 38, 7, 60, 23, 11, 38, 28, 1, 12, 31, 57, 45, 57, 30, 23, 59, 67, 14, 16, 4, 14, 62, 15, 50, 7, 70, 64, 6, 42, 48, 9, 31, 19, 40, 49, 2, 25, 3, 41, 49, 36, 9, 29, 39, 31, 5, 17, 1, 29, 25, 11, 21, 18, 2, 8, 22, 39, 15, 8, 22, 13, 3, 19, 4, 21, 62, 34, 43, 6, 24, 17, 60, 8, 74, 6, 44, 60, 10, 33, 12, 26, 24, 45, 81, 69, 80, 41, 28, 23, 5, 10, 20, 52, 18, 13, 86, 3, 7, 59, 21, 65, 72, 34, 37, 26, 55, 47, 48, 34, 5, 44, 47, 68, 96, 82, 111, 61, 74, 30, 17, 55, 98, 81, 66, 89, 35, 74, 82, 91, 51, 55, 51, 30, 89, 61, 75, 40, 71, 73, 11, 56, 54, 19, 47, 94, 69, 64, 20, 64, 12, 54, 77, 42, 88, 36, 52, 90, 63, 70, 27, 32, 73, 91, 32, 56, 46, 9, 78, 51, 68, 88, 67, 20, 43, 40, 14, 66, 86, 39, 97, 38, 27, 50, 84, 54, 92, 61, 46, 67, 24, 58, 35, 58, 37, 98, 85, 73, 84, 48, 35, 57, 16, 26, 37, 65, 32, 72, 95, 107, 33, 77, 33, 85, 105, 106, 75, 56, 71, 79, 59, 52, 105, 79, 90, 93, 100, 88, 112, 86, 80, 65, 42, 106, 100, 93, 94, 99, 97, 93, 101, 111, 99, 83, 53, 85, 95, 108, 107, 41, 109, 84, 78, 104, 101, 69, 110, 98, 103, 80, 83, 77, 71, 76, 78, 87, 102, 104, 95, 96, 83, 87, 50, 110, 103, 112, 45, 58, 70, 94, 91, 89, 81, 101, 82, 63, 72, 100, 97, 76, 112, 53, 105, 49, 75, 109, 102, 66, 111, 68, 87, 92, 79, 96, 43, 90, 44, 110, 99, 102, 92, 103, 106, 62, 53, 27, 46, 108, 104, 107, 108, 109, 76 +}; + +uint16_t HRA_112_112_H_cols[] = { +7, 8, 52, 12, 12, 42, 16, 69, 45, 14, 19, 23, 6, 32, 3, 5, 22, 2, 45, 50, 2, 1, 18, 84, 10, 7, 62, 11, 9, 21, 24, 63, 2, 5, 28, 13, 6, 15, 58, 39, 39, 22, 76, 13, 26, 68, 9, 10, 49, 38, 32, 11, 34, 44, 8, 7, 25, 67, 1, 17, 19, 36, 4, 41, 3, 26, 31, 15, 45, 40, 8, 4, 41, 20, 6, 53, 1, 42, 9, 20, 25, 17, 33, 41, 3, 19, 55, 17, 27, 14, 31, 88, 15, 26, 36, 16, 28, 24, 27, 16, 30, 56, 48, 43, 4, 5, 38, 37, 40, 46, 18, 18, 22, 50, 76, 34, 60, 83, 39, 73, 56, 92, 42, 52, 75, 35, 37, 33, 61, 67, 47, 75, 66, 70, 29, 92, 51, 95, 84, 21, 57, 28, 46, 66, 93, 11, 94, 55, 96, 20, 71, 48, 53, 43, 82, 90, 66, 90, 14, 44, 54, 62, 34, 58, 81, 53, 23, 43, 27, 93, 10, 86, 37, 80, 60, 49, 21, 79, 74, 72, 48, 61, 40, 76, 64, 29, 38, 79, 51, 54, 13, 49, 72, 30, 50, 86, 35, 80, 61, 56, 36, 59, 65, 91, 25, 47, 58, 59, 78, 47, 32, 24, 44, 86, 64, 57, 12, 23, 109, 107, 85, 63, 31, 65, 62, 68, 111, 78, 104, 89, 112, 87, 69, 105, 65, 94, 109, 78, 72, 104, 85, 108, 77, 106, 79, 74, 103, 96, 64, 105, 105, 102, 63, 35, 59, 108, 112, 81, 102, 57, 106, 83, 81, 77, 101, 55, 94, 96, 97, 106, 46, 101, 83, 85, 71, 107, 104, 87, 33, 67, 103, 95, 30, 91, 89, 103, 75, 51, 107, 87, 91, 89, 99, 68, 52, 109, 99, 88, 84, 112, 54, 70, 92, 100, 98, 74, 60, 100, 98, 110, 90, 73, 71, 95, 70, 100, 29, 69, 110, 93, 82, 97, 98, 77, 73, 99, 101, 108, 82, 102, 111, 110, 111, 97, 88, 80 +}; + +float HRA_112_112_input[] = { +-5.7868467875518395, -6.340739523388657, 3.6654768375589399, 4.1452438183910827, -4.6746135252043111, -4.8353634065473701, -6.0729133999971285, 4.0335561282226271, -6.1114855315699135, 4.1029513876344916, -4.6481634503883624, 5.7650915278538646, 6.5567610490570312, 5.1810523550761207, 3.4789051916752669, 4.2678848515507122, 4.0314705275547089, 6.0297078342283799, 4.9101169653222163, -6.4577297598332324, -7.4273487270443095, 3.472130985267488, -6.5346233967202254, 7.5312028458762414, -5.2618748211985915, 6.4198074556254969, 3.7500207659511484, 5.4040878141701141, 5.7554260586578803, 3.3973620625026886, 7.1815269888532907, 5.0031747952824963, 5.1377243276145599, 5.385229914081755, -0.61384230253605643, 0.46954911161835722, 3.5182611493679663, 3.393698829567279, 6.147483866535171, 3.8374563885989228, 1.3663773773557015, -4.0917661778352352, -3.2968298202652835, -6.0371912041431148, -8.4279246895331781, -0.98556788606912304, -3.515442879601625, 4.2642476942514875, -5.5905016743156972, 3.6920101668161727, -4.035860013856472, 5.3290190966269995, -2.9729656070594057, -2.5054371041338537, 6.8683150013190115, -7.1109038108500098, 6.7301890172695158, 2.5782062882356374, 4.4161464916633282, 2.2692851122935322, -1.3682527221025034, 3.0794629981237631, -7.8655412763279973, 1.1479897597156494, 0.22370696314520414, 1.1222453403894148, -3.1335220808128219, -3.8352985265277089, -1.2463521619727009, 2.9511814015293218, -8.668811041413111, 3.0185610517830548, -6.9592962351476091, 3.9653416636625414, -3.9384322074229408, 1.6789027505247516, 2.9579632055145502, -2.1212672699995125, -3.8892168640945193, 7.516114544807583, -0.84285604179011253, 4.1295390817792512, 0.26093278495228162, -3.6071666499996047, -0.065323173773821908, -1.9146584862100915, 4.7951161310834367, 5.5440002982088803, 3.5917539980319364, -0.81416023563684481, -2.6588977758747721, -3.0404494660606227, 4.5389936536649662, 2.7870543501114082, 3.5622966707453889, 5.1982116994791161, 2.4775319712999302, 0.70541080068007755, 0.89622787904518464, 4.3789020039207758, -2.4976040580619445, -0.7201255450933205, 4.2071986295109394, -5.2418379271657001, -4.092365654835163, -4.3510198326542557, 3.7404138637596001, 1.2496890930262492, -7.1053909336149728, -4.8888279905256748, -6.3523901926735249, -1.8757980409249277, 3.6256343910366273, -3.6165398844758228, -0.38322352317510561, -0.84747550047769449, -1.2717892264620718, -2.3899810721111154, 4.1368500898628637, 3.0440159002314924, 3.4235543074310728, -2.146097053557551, -1.7537615307751735, -1.0280987119225686, 4.9009275359419204, 5.0046047156368116, -0.47700833783807428, -4.5989492891875567, 1.4154839158712684, 0.33410724822249849, -4.771937854508927, -1.1817007924012972, -2.5960865023249302, 0.30422629502493687, -2.2097849377516763, -4.343244940878872, 1.9464288912612249, -9.0976989032526809, -8.6454142547592685, -1.8164317522989997, 2.2780845702169961, -4.8775405042023356, -0.61834757216625769, -1.985554501661331, -0.87599558657596699, -8.0610201531782124, -5.9847574894882554, -10.365536404711067, 2.9782191161319376, -6.9443820217795169, 0.72935566343949876, -4.5326632961380664, 1.1307250622386897, -4.0853969692041314, 5.4926924507347596, 5.6722555096362042, -2.5069992226180222, 2.0460084066662092, 2.5375899018238197, -3.5264293517823679, 3.2103083878487557, 5.793713046583183, -2.7633653287377995, 6.482851815629938, -1.2471646528152021, 3.0010491047486085, 0.29072399293868856, -4.0686659405747738, -2.6253508133431289, -6.3896590677017171, 5.7054076607727886, 4.3053292399977092, 2.2372599539047151, -4.8975607398431897, 5.8124794005531406, -0.69648233429781359, 5.5509723605410004, 2.0900652762982923, -4.7944253330785118, -2.9224693872108287, 6.0218579796888303, 4.7027436964063387, -4.1564871824868659, -1.324779121305123, 0.38031612697724176, -0.69335927945709175, -0.4028295686263082, 2.0967669774299189, 2.7947186736855909, 2.1473880039026203, 6.368702510367898, -3.0691782325684049, 1.6125827087903837, 3.5925359669662518, 5.178224480471127, -2.5070763799556617, 4.4280512389456632, -6.5385259627250134, 2.8047951999607603, -3.0185715385981151, -0.33348983718789993, -4.3285127692183556, -7.9609407359365134, 7.064973172264966, 0.95714371675898213, -5.5481272272415545, -1.6024149180708045, -4.5740915350065992, -1.5117120929647263, 1.9996824689403947, 5.9527526663437724, 5.0239857792804967, 6.2677418491798784, -1.9758548902654505, 2.1709284879472324, 2.5054563138111572, 4.4483685492445115, 3.2098357106645676, -4.5306213859481099, 1.1291114493451548, 1.5827945023160555, -5.2733490015732292, 5.0664709821503457, 1.9652801880230106 +}; + +char HRA_112_112_detected_data[] = { +1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 +}; diff --git a/src/HRA_56_56.c b/src/HRA_56_56.c new file mode 100644 index 0000000..645ba24 --- /dev/null +++ b/src/HRA_56_56.c @@ -0,0 +1,22 @@ +/* + FILE....: HRA_56_56.c + + Static arrays for LDPC codec HRA_56_56, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "HRA_56_56.h" + +const uint16_t HRA_56_56_H_rows[] = { +4, 33, 22, 2, 7, 12, 15, 41, 6, 2, 8, 4, 1, 7, 20, 10, 2, 1, 28, 7, 3, 25, 18, 19, 17, 15, 8, 13, 9, 12, 39, 6, 17, 32, 3, 6, 10, 18, 4, 34, 1, 14, 9, 5, 15, 12, 5, 35, 5, 17, 16, 36, 20, 9, 34, 33, 14, 46, 39, 27, 43, 22, 19, 45, 16, 23, 31, 52, 3, 8, 51, 13, 31, 11, 31, 36, 11, 28, 30, 21, 38, 26, 42, 29, 23, 33, 45, 19, 28, 40, 10, 23, 41, 25, 29, 36, 29, 49, 38, 11, 30, 42, 16, 37, 49, 35, 18, 47, 24, 25, 54, 34, 41, 55, 47, 44, 56, 46, 20, 55, 21, 40, 37, 53, 13, 32, 52, 22, 32, 24, 44, 42, 49, 38, 48, 24, 56, 48, 50, 39, 26, 50, 54, 26, 37, 56, 14, 27, 46, 44, 45, 43, 53, 52, 40, 21, 51, 47, 30, 50, 51, 43, 27, 54, 53, 48, 55, 35 +}; + +const uint16_t HRA_56_56_H_cols[] = { +13, 4, 13, 1, 44, 9, 5, 11, 29, 16, 18, 6, 13, 1, 7, 9, 25, 23, 7, 7, 9, 3, 10, 18, 22, 26, 4, 19, 28, 23, 11, 14, 2, 40, 48, 20, 11, 22, 3, 10, 1, 20, 5, 4, 8, 2, 3, 23, 21, 27, 15, 12, 12, 31, 2, 5, 18, 10, 21, 12, 47, 32, 14, 14, 43, 35, 21, 30, 16, 35, 26, 47, 33, 38, 24, 15, 24, 6, 29, 24, 38, 29, 36, 22, 39, 45, 17, 17, 30, 55, 50, 40, 33, 25, 28, 34, 8, 27, 40, 19, 31, 6, 46, 26, 42, 30, 45, 15, 41, 52, 8, 25, 41, 17, 35, 39, 49, 36, 20, 27, 54, 37, 44, 46, 28, 42, 45, 51, 50, 51, 32, 53, 44, 16, 36, 53, 54, 32, 51, 33, 41, 47, 19, 34, 56, 56, 56, 52, 48, 43, 31, 43, 37, 46, 50, 38, 39, 37, 52, 54, 49, 48, 49, 42, 53, 55, 55, 34 +}; +const float HRA_56_56_input[] = { +14.298032547127473, -11.608683311452998, 0.061009204291271366, 8.7391847645722684, -12.795277326577247, 6.7260364215470982, -7.5723272788156795, 3.020497481136375, 8.2196966933834599, 11.034906196221687, 8.9543980103634855, 7.577128824074272, 11.270326150592165, 8.9523294544722756, 13.083603245905977, 10.444986837116906, 14.412579891463047, -0.8166007558942513, 9.668894733671868, 9.8522676575640613, 7.5958239024346623, 3.3746023851032851, 12.95322595905497, -7.1449563352606029, 1.2577795908906082, -9.5332224407426533, -17.239402070035631, -6.3014111920535631, -6.3042395285059891, 10.610150547425137, -3.8501667154717536, 13.993722156033463, -11.103807489470984, -0.23655217621193034, -11.820607488167541, -14.520377014662206, 14.480439663208152, -14.74956701516993, 5.8803502868629876, 16.404549902101486, 1.7430972286160022, 3.5578988903336057, -10.514179494138832, 15.893919839476579, -15.088901968318774, 8.8240079988183187, -11.214227098114568, 15.245351554277944, -8.0630908862483555, -4.2718917016539022, -6.8904115533020676, 7.1059188065004335, -15.465940930478686, 7.1911507113949069, -7.3855595052175262, 8.2801168546061081, 7.7415094545890444, 12.447605971579639, -7.1709811194443134, -16.91513428272188, -7.1177366282735868, -15.474578777159717, -9.5942142791182636, -6.9537488066001139, -7.7476201276622323, 4.1904181285877389, -6.2099572289514366, 10.754678540144104, -3.9339356682709932, 14.679906470086319, -8.142754803364026, -9.9243587954743582, -8.3178402502703221, 12.312937678168655, 8.8921607910136853, 12.075156922922833, 16.513528553689049, -13.145624744678896, 3.5338893311207094, -1.1150068888984415, 17.69091341508814, -7.0011692651766051, 11.611823808269614, -2.2724478894865379, 5.5105851969653212, 10.230592589300167, -10.45300755375545, 2.3936930052496277, -12.582400877459929, -10.207872559757952, 11.527552494414541, -6.8352398173173716, -5.9832808666428097, -10.392213829350812, -19.448491316457705, -3.5592349479718512, -7.2921546103361257, 12.917679155812705, -16.567433882993001, 8.2654374923309515, -12.878121359778884, 6.2541630279508933, -12.780545162108599, -10.751773785029803, 9.429146662721827, 10.341931054806189, 18.701038410743397, 9.823780098709431, 14.192912051007719, -16.603334298788742, 7.2592993795204217, 13.495247736424982 +}; +const char HRA_56_56_detected_data[] = { +0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 +}; diff --git a/src/HRA_56_56.h b/src/HRA_56_56.h new file mode 100644 index 0000000..6ac4078 --- /dev/null +++ b/src/HRA_56_56.h @@ -0,0 +1,19 @@ +/* + FILE....: HRA_56_56.h + + Static arrays for LDPC codec HRA_56_56, generated by ldpc_gen_c_h_file.m. +*/ + +#define HRA_56_56_NUMBERPARITYBITS 56 +#define HRA_56_56_MAX_ROW_WEIGHT 3 +#define HRA_56_56_CODELENGTH 112 +#define HRA_56_56_NUMBERROWSHCOLS 56 +#define HRA_56_56_MAX_COL_WEIGHT 3 +#define HRA_56_56_DEC_TYPE 0 +#define HRA_56_56_MAX_ITER 100 + +extern const uint16_t HRA_56_56_H_rows[]; +extern const uint16_t HRA_56_56_H_cols[]; +extern const float HRA_56_56_input[]; +extern const char HRA_56_56_detected_data[]; + diff --git a/src/HRAa_1536_512.c b/src/HRAa_1536_512.c new file mode 100644 index 0000000..10ce00b --- /dev/null +++ b/src/HRAa_1536_512.c @@ -0,0 +1,22 @@ +/* + FILE....: HRAa_1536_512.c + + Static arrays for LDPC codec HRAa_1536_512, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "HRAa_1536_512.h" + +const uint16_t HRAa_1536_512_H_rows[] = { +122, 98, 31, 39, 21, 33, 91, 90, 118, 111, 126, 34, 5, 120, 54, 2, 95, 67, 15, 68, 114, 10, 100, 53, 104, 29, 44, 76, 59, 112, 73, 77, 71, 61, 69, 128, 106, 50, 32, 6, 85, 102, 37, 99, 57, 75, 80, 88, 41, 27, 127, 16, 40, 119, 46, 110, 97, 79, 13, 45, 55, 62, 103, 92, 116, 7, 66, 83, 89, 96, 82, 58, 105, 78, 4, 47, 107, 52, 28, 20, 24, 51, 108, 36, 63, 30, 48, 26, 109, 60, 87, 49, 86, 25, 42, 123, 93, 18, 101, 43, 14, 72, 124, 35, 115, 81, 70, 22, 125, 64, 1, 113, 3, 17, 84, 74, 23, 94, 38, 12, 8, 65, 19, 56, 121, 9, 11, 117, 45, 115, 46, 23, 41, 17, 61, 112, 36, 99, 31, 107, 19, 37, 7, 11, 6, 47, 89, 4, 57, 20, 95, 55, 87, 82, 106, 88, 90, 85, 125, 42, 120, 18, 21, 34, 100, 103, 113, 5, 53, 108, 83, 67, 92, 109, 28, 76, 14, 43, 58, 30, 73, 33, 16, 35, 101, 22, 110, 94, 2, 91, 65, 98, 66, 51, 121, 84, 64, 118, 126, 27, 26, 111, 68, 69, 15, 124, 75, 123, 52, 10, 79, 40, 119, 9, 81, 102, 104, 13, 80, 127, 59, 72, 50, 48, 128, 56, 105, 117, 49, 54, 63, 60, 32, 71, 1, 114, 74, 70, 44, 86, 12, 8, 78, 29, 24, 96, 3, 93, 116, 62, 77, 38, 25, 39, 122, 97, 76, 37, 24, 104, 4, 46, 86, 44, 68, 47, 62, 49, 8, 79, 14, 119, 101, 63, 12, 53, 112, 78, 39, 103, 64, 100, 34, 108, 116, 23, 81, 121, 35, 124, 9, 127, 88, 125, 74, 94, 21, 10, 83, 2, 109, 80, 115, 122, 65, 1, 69, 71, 92, 89, 117, 75, 60, 59, 110, 43, 27, 118, 82, 38, 16, 26, 42, 55, 48, 70, 97, 90, 105, 33, 123, 120, 29, 126, 30, 73, 114, 57, 15, 72, 54, 96, 99, 107, 11, 45, 98, 22, 95, 41, 18, 13, 52, 87, 25, 17, 7, 58, 67, 32, 51, 50, 128, 61, 66, 113, 31, 106, 5, 36, 20, 19, 28, 6, 85, 91, 84, 56, 40, 111, 93, 77, 3, 102, 67, 63, 11, 23, 75, 55, 24, 38, 90, 17, 34, 5, 121, 103, 79, 40, 14, 76, 15, 88, 82, 100, 57, 102, 50, 84, 56, 114, 9, 119, 39, 86, 41, 89, 52, 13, 120, 25, 72, 33, 80, 3, 60, 109, 65, 28, 111, 16, 37, 69, 12, 94, 42, 105, 44, 106, 70, 68, 19, 74, 78, 124, 46, 43, 26, 32, 117, 128, 126, 93, 91, 116, 4, 10, 18, 64, 104, 81, 35, 115, 98, 48, 22, 125, 95, 123, 127, 96, 27, 107, 110, 58, 53, 62, 51, 97, 92, 54, 20, 21, 101, 30, 77, 2, 83, 87, 71, 108, 36, 61, 73, 8, 29, 113, 112, 59, 118, 45, 7, 6, 66, 85, 122, 47, 99, 49, 31, 1, 223, 249, 170, 159, 214, 134, 239, 206, 146, 132, 133, 207, 250, 208, 144, 213, 156, 198, 192, 211, 143, 174, 199, 254, 184, 131, 230, 161, 237, 158, 173, 204, 187, 171, 155, 164, 137, 183, 178, 151, 166, 180, 135, 200, 172, 176, 189, 169, 162, 136, 228, 252, 150, 212, 210, 231, 195, 154, 129, 147, 227, 148, 205, 255, 216, 233, 248, 246, 219, 236, 157, 197, 225, 240, 139, 256, 241, 238, 188, 152, 209, 167, 163, 145, 218, 168, 242, 165, 235, 153, 201, 160, 182, 138, 191, 245, 179, 140, 203, 185, 229, 181, 220, 175, 202, 190, 253, 234, 215, 149, 193, 251, 224, 221, 196, 177, 243, 232, 247, 217, 141, 186, 142, 244, 222, 194, 226, 130, 232, 185, 178, 129, 139, 244, 132, 164, 230, 191, 209, 242, 168, 228, 249, 158, 248, 235, 206, 238, 218, 159, 253, 196, 135, 147, 177, 225, 160, 137, 161, 212, 192, 175, 207, 222, 138, 134, 234, 136, 156, 152, 213, 226, 229, 151, 141, 201, 256, 181, 241, 243, 224, 180, 236, 194, 240, 182, 211, 255, 189, 208, 131, 176, 202, 155, 231, 146, 190, 237, 203, 183, 216, 133, 148, 144, 245, 174, 210, 252, 145, 142, 198, 187, 221, 153, 163, 223, 130, 162, 247, 140, 154, 184, 193, 215, 143, 199, 166, 220, 167, 219, 246, 204, 250, 173, 205, 254, 186, 149, 188, 172, 169, 150, 227, 233, 195, 251, 214, 217, 165, 170, 179, 157, 171, 197, 239, 200, 230, 130, 218, 131, 154, 223, 142, 155, 252, 174, 182, 156, 196, 229, 239, 192, 147, 198, 235, 209, 162, 199, 163, 227, 237, 148, 228, 160, 238, 240, 190, 241, 250, 211, 242, 184, 181, 251, 245, 187, 170, 194, 246, 212, 217, 138, 201, 193, 256, 224, 244, 243, 165, 144, 175, 180, 176, 185, 216, 141, 197, 231, 220, 204, 207, 221, 189, 150, 214, 134, 195, 234, 149, 186, 249, 140, 255, 168, 178, 133, 202, 145, 222, 236, 164, 188, 166, 208, 232, 132, 219, 159, 177, 139, 205, 226, 248, 254, 136, 161, 233, 135, 153, 171, 169, 146, 129, 167, 206, 215, 183, 225, 143, 137, 191, 200, 179, 213, 157, 152, 173, 151, 247, 253, 210, 158, 203, 172, 201, 162, 239, 190, 256, 229, 213, 135, 253, 178, 174, 193, 161, 238, 186, 141, 143, 205, 181, 129, 132, 180, 247, 255, 199, 241, 177, 251, 234, 212, 169, 200, 210, 133, 249, 163, 148, 153, 221, 164, 195, 152, 146, 232, 156, 243, 252, 142, 237, 219, 134, 197, 139, 137, 198, 218, 240, 155, 159, 160, 209, 228, 154, 168, 176, 225, 184, 194, 149, 188, 196, 157, 246, 208, 151, 236, 140, 130, 231, 226, 254, 217, 235, 165, 203, 182, 215, 189, 175, 136, 147, 185, 216, 242, 245, 172, 158, 173, 192, 211, 144, 171, 170, 214, 223, 207, 191, 222, 220, 179, 150, 244, 224, 230, 145, 183, 206, 202, 250, 204, 167, 227, 187, 166, 248, 138, 131, 233, 332, 283, 261, 276, 293, 336, 357, 369, 281, 317, 278, 356, 352, 367, 294, 350, 384, 327, 376, 290, 346, 361, 292, 351, 354, 363, 326, 291, 340, 273, 345, 306, 271, 341, 270, 307, 328, 360, 304, 362, 382, 322, 257, 297, 320, 337, 266, 259, 377, 368, 298, 310, 325, 371, 272, 324, 343, 374, 353, 370, 364, 316, 309, 269, 286, 277, 314, 358, 268, 313, 315, 311, 295, 267, 381, 344, 289, 260, 366, 258, 305, 342, 301, 308, 284, 331, 338, 380, 318, 329, 339, 264, 312, 303, 348, 335, 359, 330, 285, 263, 279, 274, 373, 265, 347, 333, 287, 323, 375, 355, 288, 365, 262, 379, 334, 378, 349, 383, 282, 296, 300, 321, 299, 275, 302, 280, 319, 372, 317, 372, 279, 308, 343, 334, 288, 341, 349, 318, 331, 329, 323, 371, 296, 298, 365, 327, 310, 344, 283, 321, 291, 325, 324, 360, 282, 294, 352, 377, 374, 342, 364, 263, 275, 267, 326, 335, 328, 289, 305, 280, 269, 314, 367, 300, 260, 333, 322, 271, 357, 306, 290, 358, 366, 303, 272, 302, 362, 353, 338, 383, 266, 264, 373, 359, 348, 312, 299, 286, 380, 268, 315, 285, 258, 363, 320, 287, 281, 311, 370, 313, 339, 273, 284, 292, 355, 345, 346, 384, 257, 295, 336, 277, 361, 261, 270, 369, 368, 337, 351, 378, 301, 316, 259, 262, 297, 276, 356, 293, 304, 347, 381, 330, 340, 379, 350, 332, 375, 382, 278, 307, 274, 309, 319, 265, 376, 354, 346, 320, 258, 341, 362, 360, 273, 342, 348, 324, 302, 340, 349, 292, 343, 370, 378, 295, 271, 327, 286, 371, 304, 306, 299, 345, 344, 326, 315, 357, 328, 262, 266, 329, 284, 309, 365, 332, 333, 338, 274, 303, 280, 380, 358, 363, 323, 322, 259, 294, 379, 285, 316, 278, 359, 310, 374, 334, 356, 261, 377, 347, 330, 355, 290, 331, 353, 314, 257, 267, 373, 291, 313, 375, 366, 382, 350, 260, 272, 335, 301, 275, 270, 300, 321, 311, 383, 317, 305, 384, 319, 337, 279, 297, 287, 277, 325, 367, 376, 308, 364, 264, 339, 312, 265, 351, 283, 268, 298, 288, 318, 368, 361, 307, 372, 296, 293, 289, 369, 269, 276, 263, 336, 381, 281, 352, 282, 354, 362, 360, 308, 384, 283, 296, 379, 280, 293, 294, 376, 358, 285, 319, 348, 302, 315, 304, 276, 338, 353, 290, 367, 346, 364, 306, 295, 260, 322, 378, 366, 363, 288, 361, 371, 281, 334, 356, 350, 347, 375, 365, 314, 351, 340, 257, 266, 345, 333, 373, 268, 277, 344, 359, 341, 343, 337, 352, 263, 349, 271, 381, 297, 377, 325, 339, 328, 267, 279, 372, 354, 287, 313, 316, 321, 258, 305, 300, 374, 330, 331, 259, 307, 261, 289, 335, 317, 324, 278, 368, 292, 299, 327, 320, 286, 291, 332, 272, 262, 275, 355, 265, 270, 383, 318, 309, 269, 274, 357, 298, 342, 282, 264, 329, 310, 284, 301, 336, 369, 303, 311, 323, 370, 326, 273, 380, 382, 312, 426, 449, 487, 455, 404, 413, 459, 469, 493, 508, 485, 442, 468, 439, 483, 443, 480, 418, 507, 423, 407, 474, 409, 425, 475, 444, 388, 496, 390, 490, 503, 416, 417, 509, 448, 479, 415, 501, 451, 471, 432, 427, 395, 410, 400, 408, 476, 441, 424, 391, 466, 482, 478, 454, 481, 394, 411, 446, 484, 431, 402, 491, 460, 494, 433, 440, 500, 450, 405, 430, 412, 387, 414, 492, 488, 436, 467, 461, 399, 472, 506, 396, 486, 505, 429, 495, 386, 438, 464, 456, 445, 462, 447, 428, 512, 385, 406, 463, 465, 422, 502, 437, 434, 435, 389, 489, 421, 497, 457, 499, 401, 393, 510, 392, 403, 453, 398, 397, 511, 477, 420, 452, 419, 504, 473, 498, 458, 470, 508, 439, 475, 499, 440, 394, 420, 469, 452, 416, 391, 405, 404, 498, 431, 510, 435, 434, 479, 459, 424, 472, 461, 429, 386, 489, 415, 512, 456, 406, 422, 411, 500, 455, 410, 401, 430, 392, 449, 468, 445, 443, 426, 490, 486, 389, 454, 464, 505, 473, 425, 442, 402, 436, 511, 488, 480, 466, 393, 481, 407, 397, 502, 446, 496, 504, 506, 438, 396, 492, 478, 433, 387, 501, 421, 418, 453, 470, 414, 450, 432, 428, 485, 491, 409, 447, 507, 385, 395, 465, 474, 403, 493, 457, 477, 460, 400, 444, 509, 463, 441, 467, 388, 427, 423, 398, 417, 412, 483, 399, 448, 503, 437, 471, 413, 487, 476, 419, 484, 495, 497, 408, 451, 390, 462, 482, 458, 494, 424, 429, 421, 467, 425, 480, 435, 436, 498, 417, 437, 419, 469, 477, 465, 428, 484, 493, 504, 452, 387, 458, 395, 418, 489, 390, 389, 474, 426, 444, 445, 466, 439, 388, 483, 416, 391, 461, 407, 491, 448, 431, 473, 385, 400, 411, 457, 394, 397, 470, 492, 406, 455, 434, 433, 475, 427, 505, 449, 420, 403, 478, 393, 443, 500, 446, 415, 414, 472, 454, 510, 511, 438, 408, 468, 487, 399, 506, 460, 495, 459, 450, 423, 386, 485, 481, 410, 453, 430, 412, 496, 502, 490, 501, 447, 432, 402, 462, 497, 404, 494, 503, 508, 440, 398, 512, 479, 441, 401, 392, 471, 456, 509, 405, 488, 409, 486, 422, 451, 507, 499, 413, 476, 442, 396, 482, 464, 463, 434, 487, 456, 385, 388, 477, 469, 427, 401, 439, 454, 464, 391, 390, 471, 399, 473, 400, 506, 436, 478, 437, 497, 465, 481, 490, 418, 404, 425, 463, 509, 393, 416, 467, 501, 409, 410, 498, 402, 394, 412, 438, 496, 480, 443, 450, 466, 476, 448, 460, 420, 397, 479, 511, 395, 502, 396, 387, 433, 457, 485, 419, 510, 474, 411, 426, 421, 435, 442, 449, 445, 415, 494, 499, 470, 512, 429, 392, 398, 488, 504, 451, 508, 417, 483, 406, 458, 405, 461, 453, 389, 440, 441, 423, 428, 492, 403, 459, 495, 452, 489, 414, 455, 407, 493, 507, 408, 500, 413, 444, 472, 430, 503, 386, 462, 447, 468, 432, 491, 482, 486, 446, 484, 424, 431, 505, 422, 475, 586, 617, 576, 608, 627, 589, 634, 597, 531, 534, 513, 620, 575, 605, 593, 539, 550, 639, 544, 567, 637, 628, 595, 592, 612, 551, 583, 541, 598, 527, 599, 545, 594, 610, 591, 633, 547, 516, 553, 522, 568, 558, 570, 619, 638, 523, 517, 537, 601, 542, 616, 622, 632, 629, 621, 609, 546, 564, 532, 636, 618, 588, 533, 582, 585, 623, 561, 578, 518, 525, 613, 529, 615, 614, 603, 577, 540, 528, 611, 559, 565, 556, 596, 574, 571, 581, 587, 519, 625, 552, 563, 635, 520, 580, 640, 602, 521, 538, 604, 631, 548, 624, 514, 515, 543, 607, 526, 557, 626, 600, 536, 566, 590, 572, 535, 562, 524, 630, 579, 584, 530, 555, 554, 606, 560, 549, 569, 573, 523, 515, 619, 608, 610, 594, 617, 618, 532, 542, 527, 626, 625, 584, 550, 541, 629, 521, 632, 622, 640, 599, 580, 579, 601, 627, 582, 556, 525, 581, 551, 536, 560, 630, 631, 614, 577, 559, 572, 592, 566, 524, 555, 598, 561, 595, 638, 602, 612, 546, 597, 513, 569, 540, 570, 571, 588, 604, 637, 548, 609, 534, 591, 518, 537, 564, 565, 528, 615, 606, 583, 621, 605, 624, 517, 543, 529, 519, 636, 530, 589, 639, 573, 620, 578, 545, 535, 634, 607, 567, 538, 586, 520, 635, 576, 552, 554, 558, 628, 544, 623, 568, 533, 563, 585, 611, 516, 562, 613, 557, 633, 531, 522, 590, 603, 574, 575, 553, 600, 587, 526, 616, 514, 547, 549, 539, 596, 593, 572, 609, 514, 594, 576, 626, 536, 598, 617, 564, 568, 558, 547, 606, 517, 624, 578, 582, 513, 571, 634, 585, 623, 605, 557, 539, 588, 545, 638, 534, 530, 524, 533, 552, 570, 573, 520, 595, 566, 559, 537, 567, 639, 562, 636, 635, 619, 597, 600, 621, 630, 616, 560, 632, 565, 584, 528, 640, 593, 561, 523, 629, 633, 518, 591, 551, 542, 583, 555, 599, 611, 548, 589, 602, 531, 612, 574, 522, 586, 538, 569, 546, 587, 613, 540, 608, 543, 553, 519, 627, 563, 592, 527, 628, 618, 601, 525, 521, 614, 544, 541, 580, 596, 603, 604, 607, 622, 579, 549, 620, 615, 575, 625, 637, 610, 526, 577, 554, 581, 550, 535, 529, 532, 515, 516, 556, 631, 590, 588, 589, 555, 638, 592, 518, 559, 625, 568, 546, 516, 610, 624, 590, 549, 601, 632, 514, 554, 561, 537, 569, 551, 521, 542, 541, 623, 640, 627, 564, 533, 530, 591, 611, 597, 579, 598, 600, 594, 528, 540, 581, 604, 633, 536, 527, 558, 593, 574, 534, 544, 616, 612, 607, 517, 620, 532, 618, 615, 608, 637, 622, 529, 621, 573, 602, 543, 578, 563, 595, 553, 523, 525, 582, 539, 560, 613, 552, 575, 639, 606, 635, 577, 548, 522, 605, 571, 520, 535, 580, 513, 629, 562, 570, 545, 617, 519, 566, 557, 556, 572, 587, 584, 547, 524, 576, 538, 603, 550, 599, 619, 628, 515, 630, 614, 567, 583, 626, 636, 585, 526, 565, 596, 531, 631, 586, 609, 634, 654, 647, 718, 697, 752, 672, 705, 651, 683, 675, 742, 670, 717, 658, 650, 695, 701, 665, 656, 723, 730, 702, 731, 726, 750, 711, 667, 645, 653, 691, 743, 733, 720, 714, 684, 722, 690, 678, 754, 721, 708, 710, 659, 749, 751, 724, 758, 748, 716, 646, 729, 664, 644, 728, 693, 759, 753, 746, 686, 719, 762, 700, 676, 756, 734, 765, 689, 715, 661, 643, 660, 680, 642, 740, 648, 732, 709, 663, 668, 685, 727, 662, 737, 747, 725, 703, 736, 713, 641, 764, 688, 666, 706, 745, 739, 712, 681, 682, 679, 655, 694, 767, 760, 704, 673, 674, 757, 669, 696, 657, 652, 692, 698, 699, 763, 677, 735, 741, 707, 649, 738, 768, 766, 671, 687, 755, 744, 761, 706, 645, 725, 682, 649, 704, 739, 715, 713, 690, 727, 670, 714, 765, 652, 751, 721, 666, 717, 676, 677, 658, 738, 726, 646, 663, 756, 669, 710, 695, 752, 657, 680, 691, 654, 712, 764, 741, 705, 685, 724, 720, 709, 692, 642, 750, 767, 686, 759, 716, 674, 694, 653, 718, 729, 683, 737, 673, 647, 671, 643, 697, 747, 761, 748, 675, 746, 708, 760, 687, 744, 711, 648, 664, 659, 722, 732, 758, 696, 679, 656, 733, 641, 762, 743, 650, 735, 730, 742, 753, 731, 701, 740, 745, 684, 728, 702, 763, 757, 768, 689, 700, 766, 660, 707, 662, 672, 661, 754, 667, 693, 681, 678, 665, 723, 736, 734, 651, 688, 698, 719, 703, 668, 644, 699, 749, 755, 655, 692, 708, 659, 697, 701, 647, 683, 762, 652, 722, 725, 760, 642, 764, 698, 690, 729, 682, 734, 695, 737, 691, 751, 641, 673, 672, 680, 686, 704, 714, 767, 745, 723, 743, 718, 665, 746, 657, 731, 720, 660, 712, 709, 765, 756, 687, 693, 671, 656, 730, 670, 742, 663, 732, 694, 702, 664, 650, 678, 668, 752, 763, 676, 726, 648, 662, 679, 689, 655, 738, 744, 715, 733, 681, 759, 685, 753, 707, 688, 713, 736, 755, 696, 711, 719, 684, 741, 658, 675, 728, 757, 740, 749, 727, 724, 766, 706, 758, 677, 674, 705, 717, 703, 646, 651, 644, 768, 748, 710, 643, 735, 747, 754, 761, 661, 654, 750, 739, 666, 699, 700, 716, 667, 721, 653, 669, 649, 645, 703, 723, 739, 737, 646, 667, 728, 704, 687, 710, 699, 676, 735, 656, 671, 755, 696, 750, 700, 758, 705, 678, 658, 726, 665, 721, 684, 744, 766, 643, 644, 745, 652, 754, 713, 720, 712, 768, 762, 661, 675, 692, 660, 748, 716, 679, 734, 642, 691, 651, 685, 763, 695, 689, 752, 722, 730, 756, 759, 736, 655, 707, 715, 709, 702, 673, 743, 663, 682, 727, 659, 731, 708, 657, 732, 714, 751, 725, 674, 648, 719, 680, 698, 757, 760, 717, 666, 669, 733, 647, 686, 765, 641, 694, 662, 753, 697, 738, 741, 649, 688, 749, 746, 767, 645, 664, 668, 654, 690, 761, 677, 729, 724, 653, 764, 706, 711, 672, 742, 718, 670, 740, 650, 701, 693, 683, 747, 681, 819, 870, 769, 827, 887, 805, 856, 785, 885, 823, 852, 841, 799, 831, 845, 822, 801, 866, 864, 844, 789, 860, 877, 783, 850, 818, 811, 884, 812, 833, 774, 851, 890, 808, 792, 781, 869, 807, 773, 836, 772, 815, 798, 786, 859, 868, 840, 832, 802, 865, 770, 896, 891, 803, 777, 892, 771, 797, 886, 895, 888, 778, 847, 796, 809, 780, 872, 858, 855, 826, 873, 791, 878, 834, 779, 862, 793, 814, 880, 824, 825, 853, 835, 861, 788, 876, 828, 842, 820, 875, 810, 787, 863, 800, 854, 839, 838, 837, 871, 881, 849, 894, 893, 806, 867, 848, 776, 784, 821, 874, 830, 804, 883, 795, 817, 846, 794, 775, 829, 889, 790, 879, 816, 813, 882, 782, 857, 843, 810, 820, 814, 859, 829, 880, 890, 861, 864, 784, 792, 834, 831, 823, 798, 801, 817, 827, 782, 843, 816, 892, 841, 894, 806, 879, 832, 802, 849, 825, 877, 783, 884, 826, 786, 795, 787, 794, 815, 821, 785, 813, 777, 819, 893, 863, 840, 809, 781, 775, 887, 848, 875, 803, 857, 805, 812, 873, 773, 835, 842, 790, 780, 789, 807, 886, 862, 868, 808, 796, 870, 855, 866, 793, 845, 799, 833, 850, 811, 854, 891, 836, 865, 838, 771, 778, 770, 839, 881, 856, 828, 852, 791, 822, 867, 874, 774, 847, 885, 869, 818, 846, 788, 888, 876, 853, 882, 895, 844, 776, 797, 858, 872, 804, 800, 824, 883, 769, 837, 871, 772, 830, 889, 860, 878, 779, 851, 896, 810, 884, 895, 789, 844, 821, 791, 859, 894, 854, 831, 876, 877, 816, 853, 835, 857, 856, 858, 805, 829, 782, 849, 893, 889, 795, 872, 823, 871, 802, 786, 846, 878, 815, 804, 869, 824, 813, 887, 851, 822, 783, 801, 800, 806, 776, 778, 811, 774, 817, 883, 777, 880, 790, 836, 860, 797, 873, 779, 865, 847, 891, 785, 888, 780, 868, 837, 838, 842, 793, 892, 845, 826, 792, 773, 885, 784, 787, 796, 814, 850, 875, 874, 775, 769, 799, 861, 840, 848, 772, 809, 770, 808, 866, 864, 834, 833, 879, 807, 832, 886, 827, 794, 870, 863, 841, 818, 896, 881, 862, 828, 839, 798, 820, 788, 852, 812, 830, 781, 771, 882, 890, 803, 843, 867, 855, 819, 825, 884, 815, 775, 823, 781, 861, 894, 779, 891, 836, 870, 789, 807, 862, 854, 893, 808, 805, 824, 770, 841, 826, 834, 786, 838, 796, 822, 869, 792, 839, 820, 825, 878, 791, 819, 799, 852, 896, 890, 882, 887, 840, 809, 790, 788, 858, 871, 804, 844, 876, 848, 886, 865, 795, 864, 776, 889, 818, 821, 784, 777, 875, 872, 855, 842, 794, 883, 782, 873, 814, 895, 892, 811, 778, 845, 812, 827, 846, 817, 856, 800, 785, 793, 787, 837, 773, 780, 879, 881, 772, 857, 831, 783, 847, 859, 867, 851, 769, 801, 833, 806, 853, 830, 816, 829, 828, 810, 797, 849, 832, 798, 863, 885, 860, 771, 803, 850, 813, 888, 843, 802, 866, 880, 874, 868, 774, 835, 877, 949, 911, 950, 932, 956, 978, 968, 947, 944, 984, 980, 941, 927, 1020, 962, 999, 1021, 983, 1024, 902, 937, 921, 993, 965, 933, 1004, 1022, 916, 931, 910, 981, 924, 914, 917, 974, 986, 967, 961, 997, 899, 1002, 966, 934, 998, 1008, 953, 987, 973, 1009, 909, 922, 963, 991, 959, 1011, 912, 940, 943, 979, 1001, 954, 969, 915, 985, 1015, 930, 1012, 1017, 960, 996, 906, 904, 994, 926, 935, 946, 1016, 992, 913, 918, 929, 995, 990, 952, 975, 1013, 958, 907, 972, 897, 957, 908, 1023, 938, 955, 903, 1003, 988, 1000, 942, 1006, 928, 970, 989, 1005, 1007, 898, 920, 1010, 1019, 945, 976, 982, 939, 923, 919, 971, 948, 905, 964, 977, 1018, 901, 1014, 900, 925, 936, 951, 1017, 949, 913, 936, 963, 990, 1015, 969, 966, 940, 957, 919, 927, 999, 908, 1020, 930, 899, 905, 1019, 1021, 948, 911, 989, 1023, 970, 1013, 944, 934, 972, 951, 971, 946, 991, 947, 1024, 914, 916, 931, 983, 1004, 945, 918, 1002, 928, 1006, 968, 939, 938, 941, 961, 937, 995, 1000, 985, 950, 994, 1016, 1003, 1008, 909, 1001, 906, 926, 1011, 953, 915, 910, 975, 907, 976, 993, 904, 903, 982, 956, 959, 980, 986, 917, 962, 942, 912, 977, 979, 921, 965, 997, 998, 922, 923, 988, 1022, 967, 973, 898, 1007, 987, 1009, 924, 974, 996, 1005, 933, 1018, 929, 925, 900, 992, 952, 1014, 960, 1012, 981, 901, 920, 954, 964, 958, 1010, 984, 902, 932, 955, 897, 978, 943, 935, 907, 963, 943, 945, 998, 1024, 958, 1020, 900, 959, 926, 992, 1021, 955, 991, 970, 905, 1003, 911, 934, 940, 913, 924, 939, 972, 975, 985, 956, 922, 938, 951, 941, 1008, 995, 932, 937, 986, 1007, 979, 947, 906, 927, 912, 993, 978, 977, 1010, 990, 901, 1016, 1019, 982, 929, 1011, 960, 1015, 1001, 914, 898, 971, 1009, 948, 931, 964, 903, 902, 923, 928, 1013, 921, 916, 936, 918, 987, 997, 1023, 935, 952, 917, 933, 983, 919, 981, 1018, 969, 957, 910, 1004, 909, 897, 1017, 999, 996, 1022, 930, 988, 915, 904, 994, 973, 1006, 1002, 967, 961, 989, 920, 965, 949, 980, 968, 976, 950, 925, 966, 899, 1000, 1005, 974, 953, 984, 1014, 908, 942, 944, 946, 954, 1012, 962, 927, 930, 905, 959, 951, 966, 910, 917, 1020, 1018, 996, 915, 976, 990, 982, 994, 909, 941, 937, 899, 969, 1023, 1009, 902, 963, 957, 919, 907, 1019, 960, 949, 1016, 916, 955, 900, 943, 1000, 934, 947, 938, 999, 1013, 977, 995, 945, 1001, 986, 913, 954, 906, 1005, 1011, 1024, 975, 921, 1002, 918, 942, 985, 987, 961, 967, 958, 973, 997, 1004, 1015, 908, 925, 897, 978, 953, 974, 924, 992, 972, 984, 1010, 1008, 979, 971, 936, 952, 914, 983, 988, 1017, 965, 926, 1014, 898, 923, 964, 1003, 970, 950, 939, 932, 998, 928, 956, 991, 940, 901, 931, 962, 1022, 946, 948, 903, 1021, 1006, 993, 935, 944, 904, 929, 980, 911, 922, 989, 1007, 968, 912, 981, 1012, 920, 933, 1132, 1107, 1101, 1150, 1145, 1065, 1147, 1059, 1038, 1115, 1083, 1034, 1151, 1079, 1047, 1054, 1116, 1076, 1069, 1120, 1126, 1086, 1064, 1133, 1036, 1057, 1128, 1030, 1099, 1037, 1027, 1084, 1134, 1138, 1125, 1068, 1092, 1137, 1093, 1048, 1102, 1111, 1104, 1029, 1046, 1121, 1041, 1035, 1070, 1123, 1091, 1088, 1045, 1131, 1148, 1139, 1063, 1096, 1106, 1097, 1095, 1050, 1055, 1149, 1078, 1112, 1081, 1062, 1142, 1052, 1049, 1025, 1146, 1060, 1056, 1108, 1136, 1109, 1058, 1105, 1044, 1033, 1143, 1087, 1051, 1077, 1110, 1117, 1085, 1090, 1073, 1031, 1127, 1122, 1113, 1144, 1130, 1043, 1066, 1118, 1089, 1103, 1082, 1040, 1067, 1053, 1071, 1042, 1072, 1061, 1124, 1129, 1135, 1100, 1114, 1080, 1039, 1140, 1094, 1152, 1141, 1075, 1098, 1026, 1074, 1032, 1119, 1028, 1097, 1049, 1055, 1115, 1113, 1110, 1135, 1101, 1081, 1082, 1093, 1066, 1151, 1103, 1121, 1048, 1035, 1029, 1090, 1028, 1050, 1123, 1077, 1083, 1145, 1047, 1111, 1067, 1112, 1059, 1100, 1118, 1042, 1102, 1109, 1079, 1054, 1094, 1120, 1132, 1078, 1031, 1030, 1027, 1026, 1106, 1053, 1069, 1117, 1105, 1108, 1137, 1058, 1034, 1070, 1063, 1143, 1149, 1104, 1033, 1076, 1045, 1136, 1052, 1092, 1133, 1148, 1025, 1051, 1122, 1144, 1080, 1074, 1141, 1116, 1043, 1139, 1129, 1146, 1057, 1098, 1119, 1039, 1125, 1037, 1131, 1114, 1130, 1086, 1044, 1127, 1073, 1032, 1150, 1099, 1060, 1128, 1085, 1056, 1068, 1061, 1096, 1038, 1142, 1065, 1126, 1046, 1062, 1134, 1152, 1124, 1036, 1107, 1095, 1138, 1075, 1084, 1071, 1091, 1147, 1072, 1087, 1064, 1041, 1140, 1040, 1089, 1088, 1025, 1060, 1053, 1051, 1049, 1147, 1082, 1141, 1151, 1081, 1045, 1084, 1105, 1047, 1058, 1035, 1137, 1037, 1050, 1074, 1100, 1040, 1124, 1116, 1088, 1079, 1073, 1057, 1113, 1099, 1104, 1140, 1052, 1046, 1056, 1152, 1150, 1144, 1066, 1077, 1138, 1083, 1097, 1044, 1063, 1126, 1030, 1131, 1076, 1111, 1069, 1096, 1146, 1059, 1108, 1133, 1087, 1042, 1103, 1125, 1092, 1090, 1089, 1142, 1117, 1068, 1029, 1062, 1129, 1148, 1036, 1026, 1067, 1055, 1101, 1120, 1038, 1132, 1078, 1028, 1145, 1075, 1031, 1061, 1107, 1072, 1121, 1118, 1054, 1109, 1135, 1027, 1080, 1122, 1033, 1039, 1112, 1127, 1115, 1091, 1064, 1139, 1041, 1110, 1130, 1149, 1136, 1070, 1065, 1086, 1098, 1128, 1134, 1043, 1085, 1102, 1094, 1032, 1123, 1119, 1106, 1143, 1034, 1048, 1095, 1093, 1114, 1071, 1131, 1056, 1028, 1077, 1151, 1137, 1031, 1144, 1119, 1084, 1066, 1078, 1105, 1047, 1075, 1126, 1138, 1070, 1115, 1042, 1079, 1128, 1123, 1122, 1063, 1050, 1152, 1064, 1146, 1074, 1134, 1118, 1049, 1045, 1149, 1088, 1136, 1068, 1085, 1052, 1026, 1093, 1096, 1098, 1048, 1125, 1067, 1030, 1116, 1103, 1145, 1032, 1127, 1106, 1094, 1041, 1080, 1097, 1104, 1147, 1102, 1117, 1089, 1083, 1054, 1073, 1092, 1040, 1100, 1058, 1091, 1150, 1057, 1142, 1076, 1051, 1086, 1132, 1101, 1043, 1060, 1027, 1025, 1081, 1133, 1099, 1124, 1140, 1033, 1029, 1121, 1109, 1069, 1055, 1111, 1110, 1113, 1108, 1072, 1141, 1087, 1065, 1071, 1095, 1139, 1129, 1039, 1059, 1090, 1143, 1046, 1135, 1112, 1082, 1044, 1038, 1061, 1148, 1037, 1062, 1034, 1130, 1053, 1107, 1120, 1114, 1036, 1035, 1249, 1214, 1233, 1199, 1235, 1157, 1166, 1263, 1231, 1208, 1211, 1178, 1163, 1193, 1270, 1182, 1260, 1175, 1153, 1248, 1271, 1267, 1251, 1252, 1183, 1172, 1241, 1203, 1266, 1227, 1222, 1277, 1161, 1274, 1254, 1195, 1169, 1155, 1186, 1202, 1279, 1162, 1239, 1217, 1258, 1244, 1228, 1190, 1278, 1224, 1198, 1181, 1234, 1165, 1174, 1230, 1184, 1269, 1194, 1159, 1168, 1205, 1237, 1215, 1264, 1185, 1173, 1180, 1229, 1206, 1273, 1246, 1220, 1196, 1176, 1191, 1275, 1245, 1261, 1225, 1221, 1253, 1192, 1218, 1216, 1272, 1156, 1207, 1262, 1276, 1167, 1189, 1158, 1232, 1170, 1219, 1187, 1280, 1204, 1259, 1255, 1154, 1226, 1171, 1268, 1223, 1212, 1209, 1250, 1188, 1256, 1240, 1265, 1247, 1243, 1179, 1242, 1213, 1238, 1201, 1200, 1177, 1210, 1160, 1197, 1257, 1164, 1236, 1265, 1275, 1232, 1212, 1173, 1192, 1231, 1279, 1185, 1203, 1205, 1248, 1270, 1215, 1241, 1167, 1161, 1228, 1175, 1153, 1159, 1230, 1191, 1209, 1259, 1253, 1229, 1171, 1257, 1221, 1264, 1188, 1256, 1278, 1199, 1239, 1251, 1155, 1218, 1261, 1254, 1202, 1237, 1174, 1187, 1245, 1190, 1272, 1274, 1255, 1179, 1172, 1216, 1207, 1176, 1262, 1247, 1213, 1238, 1156, 1277, 1268, 1164, 1269, 1260, 1210, 1180, 1183, 1276, 1222, 1224, 1177, 1246, 1233, 1234, 1273, 1211, 1208, 1217, 1158, 1165, 1267, 1197, 1194, 1250, 1220, 1160, 1258, 1206, 1240, 1236, 1244, 1242, 1168, 1225, 1204, 1170, 1157, 1178, 1186, 1243, 1189, 1169, 1249, 1280, 1227, 1195, 1223, 1200, 1214, 1163, 1226, 1182, 1184, 1154, 1266, 1198, 1235, 1201, 1263, 1181, 1196, 1162, 1219, 1193, 1252, 1166, 1271, 1206, 1208, 1271, 1239, 1153, 1195, 1224, 1188, 1236, 1191, 1264, 1197, 1175, 1232, 1182, 1228, 1209, 1210, 1246, 1227, 1244, 1193, 1167, 1194, 1184, 1279, 1199, 1223, 1259, 1243, 1256, 1212, 1187, 1237, 1248, 1214, 1176, 1263, 1268, 1219, 1278, 1202, 1276, 1265, 1189, 1154, 1274, 1213, 1192, 1211, 1215, 1170, 1171, 1164, 1216, 1240, 1168, 1166, 1177, 1235, 1267, 1261, 1252, 1174, 1201, 1173, 1163, 1241, 1257, 1169, 1262, 1157, 1186, 1229, 1249, 1225, 1198, 1178, 1217, 1207, 1245, 1160, 1200, 1161, 1275, 1165, 1226, 1196, 1179, 1159, 1233, 1238, 1221, 1280, 1260, 1172, 1253, 1269, 1270, 1158, 1155, 1258, 1218, 1273, 1230, 1190, 1231, 1250, 1204, 1222, 1251, 1203, 1220, 1272, 1255, 1234, 1254, 1266, 1277, 1181, 1205, 1162, 1183, 1242, 1185, 1156, 1247, 1180, 1173, 1254, 1271, 1252, 1207, 1269, 1185, 1157, 1162, 1268, 1192, 1263, 1179, 1251, 1188, 1230, 1194, 1255, 1273, 1163, 1181, 1206, 1242, 1247, 1270, 1191, 1161, 1171, 1193, 1235, 1198, 1217, 1246, 1241, 1187, 1262, 1174, 1218, 1238, 1165, 1279, 1156, 1280, 1195, 1177, 1213, 1240, 1208, 1184, 1159, 1170, 1277, 1210, 1204, 1166, 1228, 1248, 1182, 1199, 1229, 1249, 1223, 1153, 1190, 1225, 1221, 1261, 1226, 1257, 1197, 1244, 1258, 1201, 1186, 1232, 1276, 1160, 1176, 1212, 1202, 1253, 1274, 1267, 1175, 1172, 1233, 1167, 1154, 1243, 1200, 1256, 1189, 1220, 1272, 1239, 1180, 1205, 1231, 1169, 1227, 1219, 1250, 1275, 1158, 1260, 1234, 1259, 1209, 1168, 1278, 1164, 1245, 1183, 1216, 1236, 1203, 1264, 1215, 1237, 1214, 1266, 1196, 1155, 1222, 1265, 1211, 1178, 1224, 1298, 1403, 1337, 1329, 1331, 1386, 1349, 1320, 1288, 1287, 1380, 1402, 1342, 1366, 1352, 1353, 1304, 1284, 1334, 1397, 1321, 1286, 1360, 1328, 1381, 1326, 1309, 1333, 1365, 1282, 1362, 1385, 1314, 1387, 1303, 1383, 1351, 1369, 1311, 1310, 1301, 1308, 1400, 1359, 1395, 1332, 1358, 1323, 1367, 1296, 1364, 1372, 1350, 1371, 1361, 1396, 1363, 1294, 1377, 1281, 1368, 1343, 1355, 1393, 1399, 1327, 1378, 1388, 1302, 1392, 1300, 1406, 1319, 1404, 1315, 1382, 1379, 1408, 1345, 1405, 1324, 1335, 1305, 1306, 1370, 1390, 1401, 1391, 1283, 1291, 1338, 1375, 1313, 1398, 1292, 1316, 1330, 1384, 1289, 1325, 1295, 1376, 1307, 1373, 1339, 1354, 1374, 1290, 1344, 1317, 1322, 1394, 1318, 1340, 1407, 1336, 1285, 1312, 1297, 1356, 1347, 1346, 1293, 1348, 1389, 1341, 1299, 1357, 1298, 1313, 1387, 1357, 1296, 1323, 1283, 1333, 1382, 1347, 1332, 1316, 1405, 1366, 1402, 1394, 1388, 1309, 1401, 1338, 1302, 1359, 1400, 1285, 1371, 1365, 1367, 1407, 1294, 1348, 1350, 1305, 1376, 1374, 1386, 1356, 1297, 1343, 1287, 1282, 1286, 1331, 1326, 1351, 1321, 1399, 1354, 1306, 1393, 1362, 1353, 1325, 1346, 1310, 1395, 1324, 1391, 1342, 1311, 1361, 1337, 1335, 1328, 1322, 1355, 1352, 1404, 1380, 1303, 1383, 1370, 1379, 1281, 1339, 1289, 1398, 1288, 1308, 1396, 1304, 1301, 1349, 1312, 1314, 1319, 1384, 1368, 1397, 1334, 1358, 1341, 1299, 1406, 1403, 1372, 1307, 1320, 1284, 1317, 1385, 1363, 1364, 1389, 1292, 1290, 1330, 1360, 1408, 1329, 1327, 1377, 1369, 1344, 1378, 1291, 1375, 1381, 1300, 1336, 1373, 1295, 1315, 1340, 1345, 1293, 1390, 1318, 1392, 1380, 1399, 1376, 1337, 1361, 1342, 1304, 1407, 1338, 1390, 1289, 1325, 1393, 1383, 1345, 1323, 1362, 1364, 1363, 1358, 1339, 1388, 1397, 1340, 1348, 1305, 1372, 1360, 1336, 1283, 1403, 1400, 1346, 1371, 1374, 1401, 1366, 1296, 1347, 1395, 1351, 1294, 1375, 1349, 1319, 1404, 1318, 1382, 1370, 1312, 1391, 1408, 1313, 1406, 1385, 1287, 1389, 1398, 1314, 1300, 1292, 1308, 1324, 1301, 1333, 1316, 1332, 1343, 1402, 1281, 1386, 1285, 1384, 1321, 1373, 1282, 1353, 1354, 1286, 1377, 1290, 1396, 1302, 1295, 1341, 1381, 1368, 1293, 1329, 1326, 1394, 1311, 1344, 1315, 1330, 1327, 1288, 1392, 1355, 1405, 1322, 1356, 1352, 1284, 1359, 1298, 1297, 1350, 1334, 1309, 1335, 1303, 1379, 1331, 1291, 1369, 1387, 1320, 1357, 1328, 1310, 1365, 1367, 1306, 1307, 1317, 1299, 1378, 1313, 1300, 1384, 1286, 1374, 1317, 1382, 1369, 1337, 1363, 1301, 1401, 1408, 1352, 1305, 1308, 1315, 1377, 1358, 1390, 1294, 1381, 1403, 1344, 1332, 1354, 1380, 1290, 1362, 1370, 1291, 1388, 1361, 1287, 1349, 1400, 1385, 1283, 1320, 1348, 1325, 1324, 1314, 1360, 1339, 1357, 1326, 1394, 1399, 1342, 1306, 1368, 1404, 1299, 1296, 1365, 1372, 1375, 1402, 1303, 1398, 1297, 1281, 1319, 1289, 1395, 1367, 1406, 1321, 1345, 1376, 1378, 1371, 1307, 1364, 1285, 1288, 1302, 1351, 1293, 1346, 1353, 1316, 1391, 1312, 1310, 1340, 1338, 1383, 1327, 1318, 1396, 1389, 1397, 1322, 1298, 1347, 1295, 1366, 1329, 1387, 1359, 1343, 1335, 1355, 1292, 1323, 1284, 1282, 1333, 1392, 1379, 1328, 1356, 1331, 1336, 1330, 1341, 1393, 1373, 1309, 1311, 1407, 1350, 1405, 1304, 1334, 1386, 1461, 1428, 1471, 1489, 1427, 1424, 1514, 1463, 1439, 1522, 1487, 1445, 1409, 1459, 1419, 1483, 1486, 1481, 1415, 1451, 1429, 1528, 1527, 1531, 1417, 1484, 1476, 1422, 1478, 1502, 1524, 1473, 1535, 1431, 1505, 1523, 1416, 1462, 1521, 1414, 1474, 1443, 1410, 1536, 1418, 1446, 1456, 1435, 1525, 1517, 1457, 1492, 1500, 1495, 1513, 1440, 1436, 1437, 1508, 1454, 1464, 1413, 1450, 1472, 1509, 1529, 1477, 1433, 1432, 1467, 1491, 1469, 1516, 1479, 1434, 1515, 1499, 1442, 1497, 1412, 1530, 1425, 1520, 1519, 1532, 1485, 1448, 1488, 1507, 1426, 1449, 1496, 1423, 1493, 1506, 1512, 1470, 1498, 1534, 1411, 1465, 1441, 1458, 1503, 1468, 1420, 1455, 1533, 1526, 1501, 1430, 1518, 1453, 1447, 1444, 1466, 1494, 1510, 1452, 1460, 1511, 1482, 1475, 1421, 1438, 1490, 1504, 1480, 1506, 1429, 1497, 1433, 1477, 1528, 1439, 1417, 1427, 1458, 1494, 1489, 1474, 1473, 1520, 1529, 1435, 1532, 1504, 1409, 1426, 1453, 1421, 1483, 1502, 1518, 1418, 1463, 1516, 1530, 1496, 1482, 1533, 1513, 1531, 1459, 1486, 1534, 1412, 1512, 1514, 1455, 1505, 1481, 1445, 1443, 1411, 1468, 1536, 1447, 1452, 1446, 1521, 1415, 1484, 1441, 1480, 1442, 1414, 1423, 1460, 1469, 1465, 1519, 1430, 1410, 1428, 1492, 1478, 1467, 1425, 1517, 1525, 1511, 1424, 1456, 1444, 1500, 1431, 1420, 1461, 1498, 1416, 1436, 1485, 1495, 1437, 1503, 1487, 1448, 1432, 1491, 1476, 1449, 1507, 1527, 1434, 1470, 1419, 1490, 1509, 1510, 1438, 1466, 1522, 1488, 1523, 1526, 1501, 1499, 1422, 1440, 1472, 1475, 1479, 1462, 1524, 1471, 1457, 1454, 1413, 1493, 1451, 1535, 1508, 1515, 1464, 1450, 1437, 1500, 1432, 1527, 1443, 1456, 1521, 1501, 1528, 1418, 1451, 1446, 1421, 1478, 1493, 1530, 1499, 1462, 1414, 1448, 1477, 1472, 1471, 1426, 1523, 1498, 1485, 1509, 1533, 1453, 1447, 1458, 1467, 1484, 1423, 1517, 1519, 1409, 1455, 1411, 1454, 1502, 1531, 1504, 1525, 1416, 1464, 1413, 1417, 1489, 1473, 1410, 1459, 1480, 1495, 1516, 1439, 1420, 1482, 1433, 1481, 1468, 1483, 1536, 1466, 1532, 1457, 1494, 1508, 1450, 1429, 1534, 1431, 1497, 1449, 1445, 1436, 1463, 1513, 1490, 1488, 1524, 1424, 1496, 1415, 1505, 1520, 1518, 1476, 1507, 1514, 1440, 1425, 1428, 1491, 1475, 1526, 1438, 1465, 1470, 1435, 1510, 1441, 1412, 1503, 1444, 1535, 1442, 1434, 1469, 1512, 1474, 1419, 1430, 1479, 1511, 1492, 1486, 1422, 1487, 1515, 1461, 1529, 1460, 1427, 1452, 1506, 1522, 1430, 1438, 1487, 1414, 1420, 1510, 1447, 1509, 1433, 1482, 1424, 1415, 1446, 1493, 1518, 1417, 1485, 1441, 1434, 1490, 1484, 1462, 1520, 1410, 1418, 1423, 1427, 1527, 1524, 1533, 1471, 1483, 1457, 1451, 1502, 1521, 1460, 1498, 1523, 1473, 1412, 1479, 1448, 1536, 1508, 1439, 1416, 1443, 1500, 1519, 1419, 1470, 1522, 1513, 1477, 1480, 1516, 1425, 1512, 1411, 1472, 1454, 1474, 1444, 1459, 1432, 1496, 1426, 1440, 1467, 1491, 1489, 1504, 1463, 1481, 1449, 1514, 1476, 1530, 1450, 1505, 1532, 1442, 1468, 1445, 1456, 1429, 1413, 1492, 1517, 1466, 1437, 1475, 1525, 1422, 1465, 1495, 1421, 1529, 1507, 1526, 1458, 1511, 1499, 1453, 1488, 1534, 1535, 1497, 1436, 1428, 1478, 1486, 1515, 1528, 1431, 1469, 1452, 1409, 1501, 1461, 1503, 1531, 1464, 1494, 1455, 1506, 1435 +}; + +const uint16_t HRAa_1536_512_H_cols[] = { +111, 16, 113, 75, 13, 40, 66, 121, 126, 22, 127, 120, 59, 101, 19, 52, 114, 98, 123, 80, 5, 108, 117, 81, 94, 88, 50, 79, 26, 86, 3, 39, 6, 12, 104, 84, 43, 119, 4, 53, 49, 95, 100, 27, 60, 55, 76, 87, 92, 38, 82, 78, 24, 15, 61, 124, 45, 72, 29, 90, 34, 62, 85, 110, 122, 67, 18, 20, 35, 107, 33, 102, 31, 116, 46, 28, 32, 74, 58, 47, 106, 71, 68, 115, 41, 93, 91, 48, 69, 8, 7, 64, 97, 118, 17, 70, 57, 2, 44, 23, 99, 42, 63, 25, 73, 37, 77, 83, 89, 56, 10, 30, 112, 21, 105, 65, 128, 9, 54, 14, 125, 1, 96, 103, 109, 11, 51, 36, 59, 128, 26, 10, 11, 6, 43, 50, 37, 94, 75, 98, 121, 123, 21, 15, 84, 9, 60, 62, 110, 53, 40, 80, 90, 58, 35, 17, 71, 30, 4, 92, 28, 49, 83, 36, 88, 41, 82, 86, 48, 3, 34, 45, 31, 22, 104, 46, 116, 39, 97, 42, 102, 93, 38, 25, 100, 122, 33, 79, 47, 106, 95, 19, 111, 126, 57, 115, 72, 18, 23, 44, 91, 105, 99, 32, 63, 8, 12, 14, 81, 55, 20, 54, 16, 5, 109, 65, 120, 85, 69, 103, 114, 125, 1, 113, 73, 127, 61, 51, 101, 27, 56, 118, 66, 108, 89, 70, 29, 78, 7, 74, 77, 87, 117, 124, 96, 68, 119, 67, 2, 13, 112, 52, 107, 24, 64, 76, 43, 80, 48, 78, 3, 113, 100, 92, 104, 47, 74, 69, 64, 35, 33, 55, 30, 102, 124, 4, 66, 11, 101, 126, 9, 119, 2, 85, 99, 65, 107, 111, 77, 20, 28, 23, 5, 15, 73, 120, 44, 51, 123, 121, 83, 125, 94, 39, 81, 32, 36, 84, 63, 52, 72, 93, 70, 67, 71, 62, 10, 89, 127, 45, 122, 42, 108, 56, 53, 27, 18, 37, 90, 98, 86, 1, 106, 115, 96, 6, 46, 87, 91, 29, 34, 82, 57, 76, 31, 21, 105, 95, 117, 16, 24, 13, 59, 25, 110, 12, 7, 68, 97, 38, 22, 40, 26, 61, 112, 79, 14, 50, 8, 60, 54, 128, 103, 58, 109, 19, 49, 116, 114, 88, 75, 41, 118, 17, 96, 87, 72, 27, 105, 29, 50, 114, 112, 56, 43, 82, 118, 117, 79, 45, 111, 61, 115, 5, 69, 97, 21, 46, 23, 44, 57, 71, 6, 73, 37, 32, 33, 18, 123, 121, 107, 100, 20, 49, 24, 1, 42, 94, 85, 70, 60, 41, 65, 103, 104, 76, 102, 88, 14, 66, 48, 12, 16, 26, 91, 58, 93, 35, 2, 68, 39, 122, 116, 54, 4, 90, 109, 127, 7, 63, 78, 92, 98, 89, 99, 51, 77, 13, 8, 128, 40, 80, 125, 22, 25, 47, 120, 53, 36, 17, 55, 52, 15, 59, 11, 83, 3, 75, 106, 30, 62, 74, 9, 64, 86, 28, 108, 126, 110, 67, 38, 101, 31, 124, 84, 81, 19, 10, 34, 113, 119, 95, 11, 103, 104, 38, 47, 69, 88, 93, 97, 40, 46, 117, 70, 107, 30, 78, 72, 121, 9, 59, 63, 10, 115, 111, 48, 98, 16, 77, 28, 50, 105, 19, 32, 57, 37, 101, 126, 17, 26, 90, 39, 123, 122, 82, 108, 42, 80, 125, 67, 116, 91, 58, 81, 112, 20, 41, 127, 43, 85, 114, 128, 84, 13, 3, 76, 68, 119, 94, 86, 64, 27, 120, 65, 1, 87, 62, 6, 113, 35, 24, 15, 33, 23, 83, 8, 29, 31, 110, 49, 96, 75, 99, 14, 124, 106, 4, 56, 34, 79, 25, 71, 74, 73, 51, 2, 61, 44, 12, 55, 52, 66, 102, 89, 109, 5, 22, 54, 118, 100, 53, 36, 7, 92, 60, 21, 45, 18, 95, 89, 73, 70, 53, 28, 50, 2, 75, 120, 15, 8, 111, 29, 1, 100, 19, 110, 14, 43, 71, 69, 82, 78, 52, 18, 92, 27, 79, 108, 12, 124, 6, 105, 106, 10, 63, 116, 38, 99, 72, 97, 98, 9, 35, 80, 59, 125, 91, 67, 37, 30, 112, 55, 101, 16, 109, 4, 113, 114, 62, 17, 22, 86, 104, 7, 93, 119, 41, 77, 42, 26, 96, 88, 34, 68, 49, 13, 3, 60, 33, 40, 36, 20, 46, 85, 24, 81, 54, 51, 21, 23, 76, 32, 65, 117, 87, 83, 121, 95, 74, 118, 11, 31, 127, 94, 58, 84, 48, 44, 25, 45, 5, 57, 39, 126, 64, 107, 47, 56, 103, 128, 61, 115, 90, 66, 123, 102, 122, 3, 51, 57, 41, 39, 31, 118, 107, 55, 62, 75, 66, 36, 126, 24, 108, 8, 44, 92, 85, 21, 121, 72, 35, 77, 117, 114, 64, 58, 43, 13, 94, 17, 49, 54, 112, 6, 104, 38, 34, 65, 91, 27, 29, 124, 78, 42, 123, 115, 26, 1, 89, 109, 16, 10, 80, 81, 70, 4, 87, 119, 111, 14, 48, 30, 74, 83, 40, 98, 97, 96, 47, 12, 88, 128, 20, 15, 116, 63, 106, 101, 25, 32, 11, 82, 95, 69, 7, 127, 68, 45, 22, 84, 76, 93, 19, 50, 18, 105, 46, 37, 2, 99, 67, 71, 110, 90, 86, 23, 73, 122, 79, 100, 125, 113, 28, 9, 59, 5, 61, 120, 33, 53, 56, 103, 102, 60, 52, 90, 107, 40, 125, 123, 20, 96, 72, 119, 71, 88, 92, 50, 30, 2, 56, 79, 33, 63, 28, 34, 80, 116, 108, 22, 51, 115, 32, 126, 74, 13, 102, 81, 66, 29, 4, 25, 43, 75, 127, 21, 94, 114, 57, 12, 100, 58, 9, 111, 76, 8, 118, 1, 3, 128, 84, 46, 61, 95, 5, 91, 87, 54, 69, 38, 15, 52, 120, 24, 42, 37, 7, 62, 103, 117, 89, 48, 35, 85, 112, 121, 6, 59, 11, 31, 113, 18, 10, 64, 36, 47, 98, 104, 83, 53, 78, 23, 73, 82, 70, 39, 44, 16, 99, 60, 41, 97, 26, 105, 101, 106, 45, 49, 109, 55, 67, 86, 124, 65, 77, 68, 122, 110, 14, 17, 27, 93, 19, 72, 124, 31, 128, 44, 28, 92, 126, 82, 12, 48, 25, 30, 9, 117, 104, 47, 108, 98, 81, 53, 45, 15, 40, 71, 62, 85, 70, 106, 16, 63, 75, 26, 79, 8, 74, 110, 68, 57, 23, 6, 99, 105, 36, 19, 49, 107, 109, 91, 125, 122, 18, 86, 65, 14, 116, 67, 103, 11, 32, 89, 22, 84, 52, 101, 90, 51, 37, 39, 119, 61, 58, 60, 123, 29, 114, 3, 41, 102, 43, 80, 59, 2, 76, 78, 87, 42, 66, 95, 115, 10, 17, 88, 100, 127, 20, 46, 94, 50, 111, 35, 21, 93, 27, 112, 97, 54, 1, 24, 33, 113, 77, 38, 34, 56, 118, 121, 69, 83, 96, 5, 73, 7, 55, 64, 4, 13, 120, 19, 102, 38, 87, 6, 93, 60, 124, 33, 42, 13, 127, 54, 7, 91, 61, 37, 95, 104, 26, 67, 55, 18, 75, 122, 12, 116, 68, 52, 16, 25, 57, 66, 39, 97, 110, 92, 48, 76, 83, 14, 59, 36, 74, 125, 51, 4, 121, 120, 40, 28, 99, 62, 70, 88, 10, 108, 123, 11, 107, 118, 2, 64, 85, 44, 84, 96, 73, 81, 31, 106, 50, 80, 103, 30, 47, 69, 56, 9, 94, 3, 53, 5, 128, 63, 119, 43, 112, 27, 117, 115, 46, 78, 72, 114, 20, 1, 109, 23, 24, 82, 35, 101, 111, 126, 45, 100, 17, 79, 89, 8, 65, 113, 29, 22, 105, 58, 15, 21, 86, 71, 34, 77, 90, 32, 49, 41, 98, 60, 30, 89, 18, 117, 22, 10, 9, 99, 108, 90, 95, 123, 58, 101, 50, 119, 1, 127, 71, 41, 69, 35, 17, 83, 84, 103, 42, 27, 40, 39, 118, 93, 33, 75, 96, 110, 113, 73, 8, 21, 111, 48, 81, 100, 26, 66, 24, 4, 97, 5, 46, 28, 19, 82, 116, 3, 91, 105, 114, 126, 13, 62, 109, 79, 122, 121, 124, 7, 53, 37, 15, 16, 106, 63, 120, 128, 47, 44, 23, 55, 31, 57, 51, 29, 14, 49, 61, 38, 85, 54, 52, 104, 107, 92, 102, 59, 67, 77, 11, 25, 76, 36, 98, 32, 6, 34, 68, 125, 86, 88, 70, 64, 112, 45, 56, 20, 94, 65, 43, 87, 12, 2, 74, 80, 72, 115, 78, 13, 43, 100, 80, 62, 40, 19, 37, 25, 45, 15, 106, 124, 28, 93, 6, 82, 90, 5, 2, 21, 111, 34, 69, 68, 75, 48, 57, 58, 125, 9, 56, 102, 78, 42, 115, 12, 46, 114, 87, 91, 63, 20, 119, 113, 60, 107, 47, 51, 103, 14, 120, 1, 38, 8, 61, 101, 116, 70, 105, 72, 97, 3, 64, 32, 41, 123, 27, 67, 29, 74, 128, 18, 122, 16, 26, 86, 17, 11, 88, 4, 126, 71, 52, 94, 117, 54, 92, 79, 98, 77, 53, 110, 30, 104, 127, 35, 95, 89, 59, 65, 118, 121, 96, 55, 7, 76, 73, 50, 112, 84, 83, 39, 10, 36, 31, 49, 109, 23, 22, 66, 81, 24, 85, 108, 99, 33, 44, 235, 189, 247, 148, 168, 145, 143, 242, 214, 210, 144, 241, 218, 177, 205, 183, 134, 162, 141, 150, 163, 186, 132, 245, 253, 201, 200, 175, 244, 180, 139, 233, 182, 164, 184, 137, 142, 252, 254, 212, 133, 160, 178, 239, 129, 131, 146, 224, 229, 223, 194, 209, 169, 230, 152, 226, 149, 179, 221, 232, 135, 250, 231, 197, 191, 193, 172, 203, 204, 238, 234, 222, 181, 237, 207, 176, 251, 243, 211, 219, 215, 154, 171, 196, 158, 240, 153, 156, 147, 157, 190, 173, 248, 188, 151, 246, 256, 192, 138, 165, 185, 216, 166, 217, 227, 155, 140, 170, 174, 187, 202, 136, 167, 236, 130, 249, 228, 198, 213, 161, 195, 255, 208, 206, 159, 199, 220, 225, 132, 217, 191, 135, 202, 166, 153, 168, 158, 165, 133, 220, 175, 210, 225, 204, 209, 196, 154, 203, 238, 242, 174, 170, 214, 221, 194, 169, 252, 144, 150, 157, 159, 218, 215, 136, 249, 227, 229, 141, 241, 250, 253, 240, 234, 206, 162, 192, 155, 131, 251, 182, 178, 186, 200, 222, 130, 237, 212, 239, 189, 197, 138, 161, 223, 184, 245, 152, 254, 211, 226, 256, 176, 193, 199, 232, 235, 147, 163, 190, 139, 207, 187, 160, 171, 247, 224, 201, 248, 149, 230, 228, 213, 164, 216, 181, 156, 172, 243, 142, 173, 137, 195, 129, 244, 167, 146, 183, 198, 148, 255, 185, 179, 140, 180, 134, 205, 231, 219, 145, 143, 233, 246, 208, 151, 236, 188, 177, 219, 203, 233, 175, 224, 234, 162, 192, 254, 191, 164, 200, 171, 225, 178, 185, 212, 251, 163, 236, 222, 249, 131, 170, 207, 155, 149, 213, 202, 198, 206, 135, 168, 181, 151, 214, 238, 156, 220, 143, 235, 144, 197, 174, 231, 186, 184, 239, 169, 180, 250, 132, 252, 147, 208, 196, 210, 172, 201, 232, 129, 138, 253, 205, 150, 177, 141, 153, 152, 165, 146, 167, 140, 242, 139, 246, 176, 134, 166, 221, 228, 189, 211, 243, 136, 160, 133, 148, 216, 217, 240, 195, 137, 245, 229, 157, 188, 256, 215, 237, 179, 182, 194, 154, 223, 187, 204, 161, 145, 183, 173, 227, 226, 209, 142, 130, 193, 159, 247, 255, 158, 230, 244, 199, 241, 248, 190, 218, 216, 153, 201, 231, 174, 252, 139, 166, 187, 134, 217, 197, 190, 234, 238, 225, 164, 181, 220, 141, 140, 158, 189, 250, 213, 163, 160, 236, 243, 207, 155, 138, 235, 204, 246, 135, 203, 159, 233, 149, 179, 171, 232, 210, 152, 165, 143, 209, 200, 146, 145, 182, 241, 196, 130, 133, 229, 180, 170, 226, 169, 192, 214, 239, 167, 208, 251, 137, 205, 175, 162, 157, 222, 255, 148, 224, 151, 253, 228, 176, 218, 186, 230, 168, 136, 206, 242, 150, 178, 219, 131, 245, 223, 199, 147, 185, 188, 254, 237, 247, 211, 173, 244, 184, 154, 172, 212, 198, 221, 256, 248, 193, 249, 142, 132, 161, 202, 191, 240, 194, 177, 195, 215, 129, 227, 144, 183, 156, 180, 251, 130, 235, 203, 192, 206, 221, 146, 241, 129, 170, 157, 249, 139, 196, 205, 208, 240, 137, 231, 190, 215, 160, 193, 219, 254, 182, 144, 138, 204, 228, 214, 178, 252, 188, 253, 143, 159, 224, 246, 225, 171, 156, 238, 226, 166, 161, 173, 236, 232, 194, 195, 169, 218, 230, 181, 183, 184, 167, 211, 244, 245, 223, 165, 213, 152, 151, 158, 155, 199, 142, 233, 220, 248, 185, 209, 242, 191, 168, 256, 134, 174, 255, 179, 172, 150, 247, 153, 176, 243, 186, 201, 198, 217, 132, 189, 133, 234, 177, 237, 164, 197, 250, 135, 136, 131, 212, 200, 148, 229, 202, 141, 140, 154, 227, 145, 162, 163, 147, 239, 216, 222, 207, 187, 175, 210, 149, 211, 173, 189, 252, 130, 153, 187, 201, 133, 214, 246, 143, 181, 163, 256, 209, 160, 150, 203, 232, 236, 234, 154, 202, 242, 146, 238, 251, 156, 140, 188, 235, 186, 179, 194, 148, 149, 241, 208, 161, 240, 132, 184, 223, 168, 176, 198, 247, 229, 138, 162, 172, 239, 180, 158, 207, 190, 248, 253, 230, 220, 225, 250, 134, 167, 129, 233, 196, 171, 157, 200, 164, 137, 141, 136, 178, 147, 182, 249, 170, 145, 204, 243, 169, 131, 152, 139, 224, 183, 216, 219, 205, 210, 245, 215, 244, 185, 151, 135, 221, 166, 217, 213, 199, 222, 195, 191, 193, 254, 174, 144, 159, 218, 237, 255, 155, 227, 206, 177, 197, 192, 212, 226, 165, 142, 231, 175, 228, 246, 215, 213, 249, 187, 225, 178, 238, 171, 214, 254, 191, 177, 147, 160, 138, 169, 163, 165, 231, 192, 190, 221, 139, 202, 166, 164, 198, 239, 143, 204, 243, 144, 156, 182, 242, 184, 153, 193, 197, 176, 129, 207, 185, 170, 131, 167, 149, 145, 229, 172, 130, 168, 222, 142, 244, 158, 162, 146, 219, 133, 250, 141, 155, 205, 140, 188, 210, 247, 212, 216, 175, 151, 189, 148, 237, 203, 230, 226, 180, 157, 206, 255, 220, 234, 208, 200, 218, 183, 240, 132, 252, 136, 195, 174, 137, 211, 201, 223, 196, 228, 199, 248, 241, 186, 224, 181, 233, 159, 253, 154, 134, 217, 235, 245, 161, 227, 194, 179, 232, 251, 135, 209, 150, 173, 152, 236, 256, 253, 224, 146, 236, 243, 250, 202, 201, 147, 191, 198, 143, 189, 196, 151, 211, 131, 165, 195, 166, 208, 171, 140, 244, 214, 218, 219, 228, 235, 192, 141, 173, 234, 145, 167, 251, 232, 157, 256, 132, 180, 177, 176, 138, 178, 210, 255, 156, 170, 161, 163, 150, 130, 184, 159, 238, 194, 245, 252, 204, 139, 247, 205, 240, 179, 209, 133, 246, 215, 137, 222, 175, 136, 154, 160, 158, 223, 229, 197, 199, 212, 254, 213, 206, 242, 203, 168, 249, 183, 207, 226, 220, 152, 134, 162, 237, 200, 185, 181, 230, 216, 217, 142, 182, 190, 172, 187, 169, 231, 174, 225, 188, 227, 248, 193, 241, 155, 239, 135, 186, 129, 233, 148, 144, 149, 221, 153, 164, 196, 173, 172, 148, 146, 171, 170, 221, 188, 182, 145, 240, 213, 231, 211, 254, 252, 161, 204, 218, 190, 235, 154, 144, 130, 149, 197, 192, 175, 165, 131, 227, 208, 181, 158, 224, 229, 236, 184, 251, 233, 140, 156, 228, 176, 183, 246, 249, 220, 201, 244, 189, 151, 169, 164, 200, 137, 138, 152, 245, 226, 217, 250, 256, 255, 147, 247, 193, 139, 166, 242, 230, 129, 209, 223, 159, 136, 162, 142, 187, 178, 174, 241, 179, 163, 134, 155, 157, 133, 215, 132, 203, 177, 160, 210, 167, 143, 198, 150, 239, 212, 234, 219, 225, 206, 216, 214, 168, 194, 237, 135, 191, 180, 243, 205, 253, 202, 232, 185, 199, 153, 207, 248, 195, 186, 222, 141, 238, 148, 243, 166, 188, 226, 208, 149, 215, 145, 251, 239, 191, 209, 255, 144, 222, 231, 225, 156, 180, 133, 172, 147, 183, 200, 227, 179, 195, 249, 241, 196, 242, 137, 228, 173, 160, 230, 175, 151, 134, 253, 212, 235, 250, 211, 245, 163, 237, 247, 170, 138, 224, 139, 217, 182, 206, 152, 194, 205, 132, 186, 238, 142, 181, 207, 167, 252, 214, 158, 198, 236, 199, 223, 240, 234, 146, 155, 150, 135, 131, 202, 203, 246, 219, 171, 187, 164, 218, 143, 221, 229, 220, 174, 201, 185, 140, 232, 213, 165, 254, 154, 169, 178, 161, 157, 216, 153, 193, 168, 184, 248, 159, 129, 244, 210, 190, 192, 141, 256, 176, 204, 177, 130, 197, 189, 162, 136, 233, 201, 168, 135, 226, 152, 169, 167, 205, 203, 233, 243, 232, 253, 157, 249, 133, 165, 129, 220, 246, 209, 149, 197, 208, 160, 176, 224, 206, 146, 182, 187, 211, 130, 212, 250, 140, 227, 255, 213, 225, 173, 192, 134, 184, 180, 171, 238, 191, 237, 234, 170, 139, 136, 217, 190, 247, 189, 148, 202, 251, 219, 186, 166, 241, 252, 181, 138, 158, 210, 159, 172, 194, 179, 175, 193, 164, 132, 218, 150, 235, 188, 178, 229, 230, 154, 142, 155, 215, 240, 199, 153, 223, 248, 162, 244, 161, 239, 242, 200, 196, 245, 137, 198, 214, 228, 163, 131, 145, 231, 254, 185, 256, 177, 144, 183, 207, 216, 204, 174, 151, 147, 143, 222, 195, 141, 221, 156, 236, 148, 194, 175, 167, 249, 187, 182, 211, 136, 155, 227, 208, 151, 239, 188, 203, 199, 149, 137, 195, 130, 193, 207, 219, 132, 225, 145, 212, 215, 231, 135, 240, 184, 186, 174, 205, 173, 180, 178, 218, 222, 256, 251, 179, 150, 248, 170, 204, 247, 138, 164, 189, 209, 244, 156, 255, 191, 232, 198, 176, 190, 226, 246, 241, 142, 141, 242, 221, 133, 197, 243, 185, 172, 160, 152, 183, 213, 165, 217, 234, 140, 228, 220, 196, 250, 139, 214, 159, 131, 210, 238, 206, 237, 153, 216, 147, 171, 129, 223, 253, 229, 230, 202, 168, 162, 169, 254, 157, 200, 154, 192, 143, 181, 233, 235, 245, 201, 236, 224, 134, 144, 158, 163, 146, 161, 166, 252, 177, 306, 300, 383, 261, 369, 374, 357, 269, 291, 298, 345, 275, 352, 271, 339, 321, 356, 351, 372, 371, 297, 348, 286, 259, 355, 322, 317, 373, 333, 335, 367, 360, 330, 283, 289, 370, 258, 320, 279, 379, 350, 323, 316, 264, 346, 262, 266, 325, 268, 362, 361, 353, 276, 341, 324, 378, 338, 358, 314, 313, 364, 267, 274, 281, 305, 365, 359, 265, 307, 326, 308, 340, 336, 295, 312, 257, 382, 278, 270, 302, 287, 319, 299, 377, 375, 263, 354, 293, 310, 328, 376, 309, 381, 296, 349, 342, 327, 347, 343, 282, 273, 384, 280, 260, 329, 368, 344, 284, 301, 315, 380, 277, 366, 337, 303, 285, 311, 318, 272, 332, 288, 304, 331, 290, 294, 334, 292, 363, 363, 258, 260, 346, 336, 326, 358, 355, 370, 302, 350, 332, 316, 263, 369, 310, 338, 362, 273, 282, 329, 324, 378, 376, 359, 261, 264, 268, 375, 382, 348, 284, 356, 277, 279, 341, 309, 343, 364, 334, 361, 297, 360, 384, 377, 266, 311, 313, 349, 335, 373, 312, 293, 267, 367, 292, 314, 330, 296, 342, 323, 287, 371, 272, 304, 298, 327, 269, 317, 274, 278, 372, 303, 337, 383, 320, 351, 365, 321, 344, 276, 381, 290, 300, 374, 325, 366, 315, 301, 259, 347, 319, 322, 339, 262, 306, 368, 352, 280, 283, 270, 257, 318, 345, 357, 328, 275, 340, 281, 285, 271, 286, 288, 291, 308, 307, 295, 299, 379, 353, 331, 289, 294, 265, 380, 354, 333, 305, 325, 259, 305, 334, 316, 288, 378, 358, 361, 289, 326, 364, 376, 339, 275, 335, 263, 297, 338, 377, 352, 310, 349, 299, 381, 383, 363, 291, 308, 277, 351, 366, 374, 321, 328, 270, 373, 306, 274, 372, 350, 365, 281, 340, 337, 267, 298, 279, 345, 280, 370, 356, 292, 312, 342, 360, 329, 324, 285, 309, 344, 367, 347, 258, 341, 304, 303, 266, 353, 284, 276, 287, 290, 319, 322, 294, 295, 314, 336, 379, 348, 296, 359, 268, 260, 264, 271, 283, 282, 257, 318, 265, 269, 333, 362, 382, 323, 384, 320, 315, 286, 301, 311, 262, 369, 261, 302, 357, 293, 331, 354, 368, 375, 272, 278, 371, 327, 313, 330, 355, 317, 273, 307, 300, 380, 332, 343, 346, 300, 340, 277, 290, 283, 282, 293, 366, 319, 304, 279, 381, 305, 361, 333, 301, 365, 353, 317, 356, 370, 308, 295, 330, 372, 343, 302, 346, 378, 324, 323, 292, 266, 280, 268, 316, 259, 374, 339, 257, 261, 285, 313, 272, 258, 345, 298, 352, 311, 310, 263, 264, 267, 329, 289, 360, 364, 380, 320, 286, 287, 322, 351, 297, 315, 338, 375, 276, 344, 326, 309, 368, 303, 278, 337, 335, 294, 354, 384, 383, 271, 288, 260, 331, 269, 306, 367, 325, 299, 284, 312, 379, 270, 318, 363, 262, 342, 382, 291, 273, 341, 373, 332, 371, 281, 349, 296, 307, 274, 357, 336, 347, 355, 265, 377, 321, 350, 348, 358, 275, 314, 334, 376, 359, 369, 327, 328, 362, 275, 259, 380, 381, 271, 320, 345, 293, 354, 334, 317, 288, 353, 372, 349, 313, 378, 287, 331, 379, 289, 286, 377, 263, 297, 336, 282, 341, 357, 323, 343, 356, 284, 338, 269, 328, 365, 376, 322, 290, 344, 374, 325, 382, 281, 268, 296, 309, 316, 300, 347, 266, 311, 295, 298, 267, 337, 291, 276, 257, 292, 333, 368, 261, 373, 273, 364, 358, 375, 274, 324, 312, 278, 335, 339, 283, 329, 384, 321, 348, 315, 260, 294, 359, 304, 264, 326, 305, 352, 330, 360, 361, 280, 270, 362, 342, 258, 371, 327, 332, 340, 355, 367, 308, 265, 351, 303, 366, 306, 363, 279, 272, 369, 262, 346, 350, 318, 307, 383, 310, 319, 277, 302, 301, 370, 285, 299, 314, 280, 269, 366, 362, 384, 360, 262, 321, 383, 314, 361, 265, 381, 372, 325, 305, 294, 344, 259, 297, 371, 322, 309, 313, 292, 375, 379, 316, 382, 307, 304, 282, 281, 356, 345, 319, 355, 315, 323, 283, 330, 274, 263, 342, 332, 284, 302, 335, 324, 272, 278, 257, 303, 311, 276, 339, 260, 271, 376, 377, 261, 312, 359, 285, 357, 353, 334, 258, 299, 365, 340, 298, 336, 286, 328, 378, 358, 291, 341, 296, 380, 266, 289, 351, 267, 320, 350, 346, 273, 306, 295, 310, 329, 275, 367, 337, 277, 326, 374, 348, 343, 308, 290, 327, 288, 293, 368, 364, 349, 373, 279, 317, 333, 369, 338, 301, 347, 354, 331, 268, 370, 264, 318, 270, 300, 352, 287, 363, 341, 348, 376, 346, 331, 305, 340, 302, 308, 303, 315, 321, 375, 278, 298, 333, 319, 287, 334, 371, 260, 310, 263, 330, 326, 359, 282, 335, 313, 369, 342, 300, 299, 286, 379, 291, 276, 301, 355, 349, 347, 257, 304, 373, 294, 336, 290, 270, 306, 363, 383, 370, 262, 297, 284, 293, 384, 329, 358, 367, 277, 374, 267, 356, 353, 352, 272, 311, 323, 324, 368, 344, 362, 325, 380, 261, 328, 288, 317, 345, 279, 337, 296, 372, 271, 266, 382, 274, 273, 275, 264, 312, 343, 366, 361, 351, 316, 350, 381, 322, 292, 360, 285, 283, 314, 339, 338, 268, 269, 289, 354, 309, 365, 377, 307, 258, 332, 357, 295, 320, 281, 378, 318, 327, 280, 265, 259, 364, 346, 315, 371, 265, 305, 322, 321, 354, 273, 297, 257, 378, 345, 343, 275, 299, 278, 314, 353, 327, 335, 329, 338, 362, 326, 285, 323, 279, 369, 267, 298, 324, 309, 351, 319, 291, 336, 276, 333, 328, 292, 286, 280, 277, 288, 379, 259, 380, 260, 381, 296, 318, 364, 368, 287, 334, 375, 382, 270, 284, 342, 263, 266, 311, 360, 384, 258, 320, 363, 370, 359, 366, 341, 272, 316, 281, 356, 374, 282, 367, 302, 301, 295, 365, 339, 308, 337, 376, 283, 293, 330, 352, 361, 304, 271, 268, 300, 355, 290, 349, 331, 261, 348, 372, 313, 358, 274, 344, 373, 357, 294, 289, 317, 303, 310, 383, 325, 377, 312, 306, 347, 340, 307, 264, 269, 350, 332, 262, 257, 328, 348, 336, 323, 303, 339, 374, 351, 379, 272, 327, 274, 333, 352, 278, 359, 314, 370, 300, 267, 290, 270, 380, 261, 275, 260, 289, 259, 345, 330, 291, 284, 271, 310, 258, 340, 324, 301, 357, 365, 295, 329, 322, 307, 364, 384, 342, 283, 276, 338, 305, 296, 335, 282, 349, 266, 263, 298, 268, 371, 366, 313, 281, 319, 318, 356, 317, 382, 373, 381, 308, 299, 367, 286, 277, 331, 372, 315, 287, 269, 377, 341, 311, 346, 360, 306, 353, 285, 383, 355, 280, 321, 344, 376, 332, 343, 350, 375, 279, 316, 302, 354, 368, 325, 361, 304, 334, 312, 369, 347, 363, 273, 297, 358, 288, 264, 320, 378, 294, 337, 309, 262, 326, 362, 293, 265, 292, 261, 302, 357, 382, 328, 356, 346, 338, 340, 378, 323, 310, 342, 314, 279, 313, 326, 308, 309, 352, 322, 320, 269, 293, 315, 334, 345, 384, 376, 271, 379, 281, 381, 329, 289, 264, 301, 362, 266, 305, 278, 280, 262, 344, 268, 333, 283, 339, 321, 298, 368, 365, 377, 257, 336, 258, 273, 274, 306, 288, 304, 292, 307, 311, 335, 359, 296, 369, 349, 366, 284, 263, 332, 343, 276, 272, 330, 361, 363, 270, 347, 372, 316, 265, 290, 348, 260, 312, 324, 380, 286, 277, 337, 275, 383, 291, 331, 364, 367, 319, 353, 373, 371, 287, 325, 358, 285, 351, 318, 327, 294, 267, 300, 374, 317, 295, 354, 355, 259, 370, 360, 303, 341, 299, 375, 297, 282, 350, 326, 332, 286, 360, 328, 335, 312, 353, 267, 337, 371, 317, 344, 298, 340, 294, 363, 362, 383, 316, 320, 339, 368, 263, 282, 380, 381, 318, 366, 377, 348, 306, 309, 315, 350, 322, 382, 303, 301, 374, 330, 357, 272, 319, 268, 346, 352, 376, 345, 351, 370, 323, 321, 365, 367, 285, 260, 265, 277, 280, 341, 262, 324, 349, 271, 289, 295, 281, 300, 364, 297, 359, 333, 334, 355, 358, 375, 276, 361, 284, 261, 273, 275, 274, 378, 293, 379, 343, 372, 305, 290, 283, 331, 291, 299, 259, 336, 384, 369, 257, 342, 304, 270, 329, 311, 327, 373, 278, 313, 266, 307, 354, 269, 347, 296, 338, 279, 314, 258, 288, 292, 325, 287, 302, 356, 310, 264, 308, 294, 308, 296, 360, 304, 275, 341, 302, 305, 266, 369, 314, 269, 375, 291, 339, 349, 280, 381, 350, 327, 370, 329, 259, 316, 365, 357, 333, 257, 354, 313, 348, 359, 364, 261, 362, 332, 268, 287, 276, 331, 326, 267, 382, 286, 297, 295, 262, 323, 288, 309, 380, 378, 274, 334, 303, 355, 321, 289, 318, 366, 356, 279, 278, 307, 368, 352, 345, 277, 270, 371, 310, 317, 315, 319, 290, 283, 374, 376, 337, 306, 336, 351, 373, 271, 324, 311, 340, 330, 282, 273, 258, 264, 298, 361, 300, 342, 383, 346, 325, 284, 358, 372, 367, 335, 347, 377, 312, 292, 344, 293, 343, 263, 384, 281, 338, 301, 353, 260, 265, 379, 272, 299, 322, 285, 328, 363, 320, 512, 488, 426, 457, 396, 504, 503, 496, 413, 458, 387, 435, 420, 401, 403, 432, 394, 459, 443, 483, 484, 467, 388, 391, 422, 449, 473, 430, 497, 486, 511, 450, 424, 395, 463, 493, 433, 392, 415, 400, 417, 437, 448, 439, 502, 447, 508, 466, 510, 409, 479, 419, 477, 482, 390, 411, 407, 476, 500, 427, 494, 478, 386, 460, 429, 505, 385, 442, 434, 441, 491, 423, 495, 444, 389, 402, 487, 445, 399, 425, 462, 405, 489, 410, 506, 416, 490, 404, 418, 393, 455, 481, 454, 436, 469, 472, 480, 465, 509, 406, 485, 408, 398, 461, 438, 440, 474, 492, 428, 475, 431, 499, 498, 412, 464, 456, 451, 501, 414, 421, 397, 507, 470, 446, 468, 453, 471, 452, 404, 462, 511, 405, 418, 435, 392, 474, 438, 510, 437, 461, 400, 432, 401, 485, 499, 427, 475, 421, 453, 495, 459, 426, 422, 447, 442, 429, 456, 481, 443, 444, 397, 386, 420, 424, 468, 508, 505, 448, 415, 487, 486, 480, 482, 395, 473, 449, 411, 394, 494, 406, 403, 470, 500, 451, 476, 399, 507, 454, 472, 388, 491, 483, 396, 452, 425, 455, 436, 439, 409, 416, 385, 502, 469, 504, 402, 501, 490, 458, 445, 417, 484, 414, 391, 488, 471, 477, 466, 440, 434, 493, 423, 492, 489, 497, 450, 464, 506, 446, 390, 498, 463, 428, 512, 413, 467, 460, 433, 398, 387, 441, 410, 478, 430, 496, 479, 457, 407, 509, 419, 503, 412, 431, 393, 465, 408, 389, 430, 460, 466, 412, 468, 483, 443, 497, 486, 431, 452, 435, 491, 487, 445, 482, 509, 492, 484, 403, 436, 473, 453, 392, 420, 496, 389, 500, 397, 479, 456, 417, 469, 406, 480, 475, 393, 394, 411, 390, 447, 494, 476, 462, 501, 400, 504, 402, 461, 410, 467, 387, 490, 499, 505, 512, 457, 427, 401, 458, 471, 489, 398, 478, 459, 413, 506, 472, 449, 508, 477, 451, 498, 464, 465, 481, 433, 421, 470, 502, 441, 404, 450, 429, 439, 495, 440, 437, 432, 408, 424, 399, 444, 423, 428, 442, 405, 455, 485, 422, 493, 396, 438, 386, 418, 385, 416, 409, 426, 415, 407, 474, 503, 507, 419, 454, 434, 463, 425, 395, 448, 414, 391, 510, 446, 511, 488, 388, 388, 498, 442, 389, 475, 398, 397, 462, 416, 424, 439, 441, 436, 463, 400, 402, 393, 423, 481, 412, 472, 470, 488, 491, 420, 421, 449, 425, 493, 486, 456, 417, 468, 411, 446, 435, 451, 511, 478, 508, 413, 450, 392, 479, 461, 496, 509, 502, 443, 385, 452, 404, 406, 426, 394, 476, 477, 453, 429, 494, 455, 506, 500, 433, 454, 430, 466, 484, 474, 395, 487, 387, 444, 471, 482, 434, 473, 499, 414, 396, 408, 431, 418, 501, 391, 459, 399, 495, 401, 448, 512, 432, 390, 405, 437, 428, 409, 504, 469, 507, 445, 505, 386, 464, 485, 410, 503, 480, 489, 457, 483, 427, 407, 422, 458, 492, 419, 440, 497, 465, 510, 403, 490, 467, 415, 447, 438, 460, 475, 402, 497, 395, 439, 390, 481, 472, 408, 469, 456, 489, 457, 505, 430, 424, 447, 416, 508, 441, 415, 434, 473, 429, 405, 491, 459, 425, 410, 409, 451, 435, 479, 394, 488, 468, 399, 493, 407, 462, 455, 403, 387, 484, 483, 431, 391, 460, 404, 477, 453, 414, 506, 482, 500, 393, 406, 478, 471, 485, 449, 433, 463, 490, 467, 452, 420, 474, 426, 458, 501, 487, 504, 510, 486, 385, 386, 398, 417, 389, 432, 423, 454, 507, 419, 421, 494, 422, 400, 450, 492, 427, 470, 465, 438, 444, 511, 396, 418, 437, 461, 499, 443, 436, 480, 442, 495, 440, 448, 446, 411, 397, 392, 502, 413, 496, 476, 498, 509, 401, 428, 512, 466, 503, 445, 388, 464, 412, 477, 432, 414, 415, 489, 389, 474, 464, 484, 507, 434, 417, 498, 492, 445, 398, 458, 407, 455, 427, 424, 479, 452, 490, 409, 471, 390, 491, 472, 505, 399, 502, 450, 463, 425, 396, 495, 406, 430, 466, 512, 453, 510, 411, 435, 475, 393, 485, 438, 493, 433, 426, 509, 478, 437, 401, 481, 467, 395, 403, 508, 449, 385, 392, 405, 500, 446, 457, 448, 394, 501, 421, 419, 460, 447, 429, 470, 504, 465, 420, 410, 440, 386, 497, 462, 408, 454, 391, 496, 441, 456, 459, 473, 431, 397, 444, 388, 482, 387, 506, 483, 503, 451, 412, 416, 487, 511, 428, 486, 402, 461, 439, 480, 418, 400, 442, 468, 404, 443, 469, 494, 423, 436, 499, 476, 413, 488, 422, 482, 404, 499, 474, 470, 510, 387, 440, 445, 458, 392, 471, 389, 452, 477, 444, 466, 408, 468, 429, 396, 428, 418, 413, 467, 450, 438, 410, 492, 495, 420, 465, 483, 505, 500, 432, 402, 485, 397, 401, 427, 491, 457, 460, 502, 454, 386, 488, 463, 442, 419, 415, 443, 411, 388, 403, 416, 406, 461, 490, 489, 487, 476, 494, 484, 407, 511, 394, 469, 409, 414, 426, 405, 449, 504, 433, 459, 462, 478, 435, 493, 501, 481, 421, 486, 399, 448, 464, 475, 430, 479, 498, 390, 398, 496, 439, 437, 506, 480, 509, 412, 395, 431, 447, 453, 508, 446, 434, 512, 417, 472, 507, 473, 424, 451, 385, 497, 436, 425, 503, 441, 423, 393, 456, 400, 391, 455, 422, 454, 475, 404, 419, 488, 408, 494, 500, 387, 434, 412, 452, 401, 391, 503, 508, 432, 468, 396, 417, 392, 441, 411, 511, 439, 504, 476, 458, 453, 473, 385, 484, 501, 386, 489, 482, 512, 422, 498, 466, 403, 424, 481, 487, 402, 442, 420, 499, 429, 492, 423, 493, 415, 480, 389, 467, 456, 433, 418, 485, 410, 447, 388, 414, 445, 490, 409, 477, 472, 390, 446, 507, 405, 479, 465, 460, 448, 457, 438, 397, 427, 455, 464, 502, 509, 399, 469, 461, 443, 431, 444, 470, 505, 398, 486, 459, 497, 400, 428, 395, 449, 483, 425, 421, 430, 440, 478, 450, 435, 496, 506, 463, 407, 462, 436, 510, 426, 474, 451, 416, 471, 394, 413, 393, 495, 491, 406, 437, 467, 425, 466, 387, 474, 432, 391, 436, 473, 505, 512, 511, 503, 500, 491, 452, 440, 404, 464, 499, 418, 495, 398, 429, 417, 410, 460, 424, 507, 449, 478, 386, 457, 454, 492, 465, 501, 504, 409, 412, 486, 395, 431, 422, 477, 402, 487, 483, 450, 414, 399, 459, 388, 396, 405, 441, 468, 498, 448, 394, 423, 461, 485, 420, 447, 493, 455, 451, 426, 439, 488, 427, 442, 428, 470, 453, 463, 445, 434, 443, 397, 438, 508, 482, 476, 480, 479, 497, 481, 510, 403, 433, 446, 416, 393, 509, 475, 408, 407, 471, 430, 400, 437, 406, 490, 506, 385, 462, 469, 415, 496, 421, 390, 401, 489, 472, 484, 458, 494, 392, 435, 413, 444, 502, 419, 456, 389, 411, 447, 472, 507, 426, 392, 488, 434, 461, 411, 393, 404, 495, 424, 439, 471, 493, 483, 435, 412, 469, 385, 421, 468, 462, 429, 511, 397, 480, 405, 442, 497, 433, 391, 458, 419, 399, 476, 448, 410, 395, 413, 401, 428, 506, 454, 415, 443, 474, 457, 464, 500, 438, 481, 406, 389, 432, 492, 437, 510, 463, 430, 504, 502, 498, 416, 422, 485, 477, 450, 508, 446, 512, 449, 452, 484, 440, 444, 400, 482, 459, 470, 490, 414, 499, 503, 423, 479, 431, 418, 407, 473, 455, 496, 417, 408, 441, 445, 486, 398, 388, 465, 386, 402, 475, 453, 456, 491, 489, 451, 420, 396, 501, 509, 505, 467, 394, 390, 409, 387, 478, 403, 466, 487, 460, 436, 494, 425, 427, 447, 493, 422, 492, 460, 388, 418, 461, 449, 412, 415, 490, 464, 405, 482, 439, 446, 480, 438, 386, 395, 462, 444, 510, 399, 435, 458, 400, 505, 470, 506, 469, 385, 427, 401, 467, 390, 475, 448, 423, 453, 479, 491, 426, 425, 431, 474, 497, 484, 501, 499, 409, 494, 511, 488, 500, 393, 472, 429, 471, 502, 434, 487, 408, 454, 465, 481, 424, 419, 508, 463, 398, 466, 410, 489, 498, 430, 403, 486, 428, 417, 413, 394, 459, 440, 483, 451, 436, 392, 414, 457, 441, 504, 389, 442, 455, 402, 456, 496, 411, 406, 391, 473, 387, 421, 512, 485, 416, 477, 404, 468, 495, 503, 432, 450, 476, 478, 445, 433, 420, 396, 443, 407, 437, 509, 452, 507, 397, 503, 408, 444, 425, 472, 388, 396, 431, 400, 409, 435, 389, 482, 479, 410, 395, 442, 452, 411, 495, 471, 385, 500, 450, 393, 403, 512, 494, 476, 386, 430, 453, 402, 467, 432, 448, 469, 397, 391, 427, 460, 464, 418, 502, 489, 446, 510, 470, 417, 486, 449, 421, 505, 406, 458, 508, 480, 475, 454, 468, 501, 436, 415, 445, 424, 447, 477, 462, 439, 496, 426, 440, 459, 394, 416, 405, 401, 497, 387, 490, 456, 404, 455, 473, 398, 509, 481, 451, 493, 422, 488, 433, 504, 419, 506, 457, 465, 511, 484, 429, 392, 390, 487, 443, 438, 461, 498, 441, 474, 399, 434, 407, 420, 437, 423, 413, 478, 485, 412, 499, 483, 463, 507, 466, 414, 491, 492, 428 +}; +const float HRAa_1536_512_input[] = { +13.386899925109432, -13.874621377458897, -16.780017007177882, -6.290312059289052, -12.12827186210024, -6.7215865007863869, -12.928496427823001, -9.5320512690650236, -7.743243384270599, 13.537963482938862, -2.7747305809320273, -12.582411711157423, -5.3802664401721669, -12.212445933608072, -7.6896834132998464, -13.886251758086326, 10.057357007368099, -0.54545642222569801, 8.205317948012846, 9.9587921963912223, 1.787839710999801, -1.8877909028033726, -5.4872655283312968, -8.062104638589874, 12.160461660371981, -15.667876557032479, 8.8975273390429983, -3.3765083480826616, 9.3816292204533749, -11.374049439344271, -10.36262436541605, 6.7202129273737032, 8.6272248519835983, 6.8202854789610363, -9.9864325836014913, -1.3405851953534818, -11.142776994932193, -1.9184371643698088, 9.7100901224681202, 8.0943424444060117, 10.207687208250547, -12.139932744539616, -8.6843097992891565, 11.103660696595387, 8.3959816215268113, -5.2149232726762502, -10.099642434219659, 8.4287998205932535, -8.1131273436353393, 11.077737095117719, 11.873290693127736, -8.3323685207242288, 8.306765838979139, -7.7344852728193692, -12.595270449431288, -11.151338526616161, 8.8518394477850517, -7.3707217826997509, -15.236586757477074, -16.861400843579382, -5.2451688100646434, -7.9139079697369601, 4.624265800939507, -3.8868901758034666, 5.149322447921163, -4.8408994988342702, -16.025567965427282, 8.9397007078167832, 11.615085927048078, 8.7522408607897013, 8.9362025413954598, -12.419911954640257, 1.3360373310499056, 5.8047604915295699, -11.499552394388353, -9.0848912468207565, -0.33403972984943742, 4.4543924597778224, 7.5516321347188526, -14.133335935201398, 5.0051740595271017, 16.889255448806885, 4.2732555534579513, 10.895662242985567, 12.023371162173557, -16.54177280794126, 16.47187146826094, -8.1320457770163532, 14.492657760424361, 5.1425318773536102, -12.674348565024257, -12.591971003025808, -11.419434896299183, -7.134364911729187, -14.456345736529295, 6.9801481308852464, 3.5178871967459839, -5.4222404575852448, 17.787168094008695, -6.2963736353761854, 6.0773417416842221, 12.129562430166006, -12.394762329795224, 10.349629378600094, 6.4331304797784803, 4.0178325470947502, -1.138956390083639, 8.1137355075137663, 13.895337237225856, 5.2871675790043309, -0.71033385965710749, -8.0604882356929117, 10.198012315557385, 11.576288688276565, 10.989989721011501, -1.8717320818182488, 10.123904063310743, 10.784665440661042, -4.3035609830061903, 9.6837773036405093, -14.835135985873862, -5.1478442440128811, -6.6505387088228947, 7.6760013089942545, 6.4660475793279915, -6.5596877295244536, -9.3116314056097949, 7.6328445056019074, 8.8548767929342613, 7.5197255274599808, -7.9120195042812034, -7.1323001875535148, 10.791556287617038, 10.084448901305496, -10.743240913473755, 12.353642192693162, -4.527053580524516, 7.3242837488860237, 11.840083930085372, -10.619537990011144, -7.6706979631015884, -10.372557115087139, -8.8632681653872467, -4.4224067975512833, 10.305320214477293, -13.718057823394824, 4.1964852185559138, -1.4362461161357318, -9.2144112590704665, 8.3877875072624768, -10.28487762491257, -9.1114457918206746, 5.9370140811870229, 14.470896650278901, 5.1658695784729174, -9.341067315095037, 13.898060872612461, -3.9942168173342556, -8.3744670385083744, 7.3185644061709123, -10.677918127800307, 8.7839855993602747, 5.9967809699512715, 7.3957884730189676, -3.2504312305872545, -9.6416522009408538, 5.8869284856565551, 6.8296803475321157, -8.8993273140276621, 6.4153892959374943, 10.71036283303145, 5.7650612619594863, 10.78849375974715, -1.4177006030538843, 1.5219866880330013, 7.6721747796307929, -5.4730436651294374, -9.5147711755665831, -15.201928353576326, 9.1070883523744062, -1.429613590187548, 10.993649358659018, 3.3503803060819508, -17.486331072327484, -10.477380738424001, -4.7161288387109055, 7.0041944951217889, -8.5563404605446678, -13.558221470146432, 1.9509536932085323, -2.1008828270020299, -6.0209650694579304, 7.2795925605768037, 6.4403696840313165, 9.6872136018234638, -10.083520911839761, 2.2569120937126366, -6.2731874949190027, -16.003233247997624, 2.6470504909477603, 1.9679136003343678, 1.084323481971722, -5.5869253766683347, 10.471030535111106, -10.141071326109691, 3.0103339932739437, -1.7669043857695677, -7.6573452029265354, -4.3258934638902158, -10.968459179578497, 15.741636049842855, -10.9522061668373, -9.4904695438104927, 10.385857264222551, 10.297120789438011, 6.5744952638429925, 5.8740095877629486, 10.799510515320124, -6.3545024936903296, -0.79879489541004711, -7.9890116216388165, -7.0895275092337746, -1.1693711835427318, -11.031571816277879, -2.7661989355564196, -12.648614251118801, 3.6890373669346022, -9.6492587977566604, 16.37751360979837, -11.834071942761344, -8.1856488251627724, -2.6452776364462234, -7.8494578072748498, -4.3583881632417762, 9.0567313787087418, -11.915674625575223, 6.3560722843437931, -12.459623655201984, 10.634887971076129, -16.922079821941349, 2.6306182284481716, -4.8306213551740491, -6.8938315321790871, -11.732112230175732, -14.980055011514212, 14.341141814607978, 9.3877580146603421, 10.212542439703331, 10.226413776118815, 1.4940604264129116, 7.7454328449595184, -17.063990479025335, 19.866966739493524, -10.140740571896508, -12.522044834618598, 7.0883420344447883, 8.639822911246295, 8.696282010555846, -4.6180581749529885, 15.128219796014116, 9.944475468031726, 3.9061050633893308, -0.44811804820690332, -9.8453458886200469, 11.310920421915538, -1.8877371033018449, -13.955810775304432, -9.3663850942658744, -13.7152384276622, 8.1778408387550972, -11.099226967110654, -0.40938224282111474, 7.407933602924528, 9.5946649739529732, 8.9692970855929381, -7.4260161983282993, -6.7127946668575396, -3.32421449686648, 11.949556138901517, 6.0724437348944251, -8.7144215382129016, -6.8610474000112394, 7.2567571883933359, -6.3499249476454329, 9.3590736715335225, -6.5503328955021827, -6.9702845680797187, -10.317890011660792, -3.6167068395322954, -4.8790397611256688, 16.56935536921031, 15.259301626496455, 4.095983810772946, -8.287550939084964, -9.9120810548007725, 9.9159918358704644, 7.7341221557626856, -6.968193796769385, 11.636066712371051, -11.761055820947789, 8.1630237309173719, 6.4488185954770767, 7.3664462176342393, 9.1231645572893783, 1.6141196499486792, -9.6504558418612536, -5.3306358019773254, -6.2121734777196425, 6.0886130638484497, -7.8160047985525329, -2.3620627464284909, -5.7089981216523924, 11.764939486817402, 6.9146263458573811, 5.4499539427791159, 9.0526658073376804, -6.4040202312779462, 1.9520703353601458, 8.8078015730086339, -2.6857890845936474, -7.4845378984175008, -10.998145344747881, 3.9650986691130394, 7.3045582654386916, 7.256277698095202, 8.8550148662006052, 4.4431559525918427, 13.61919949600221, -8.6465615710269912, 5.8013976504697808, 3.5026821856868993, -12.178296532701346, 6.9207418083416181, -4.1355644302631589, 5.5861383859524665, -14.116022346856981, 12.594015809448324, -13.393001860550452, 9.5607723957857971, -13.112365438653656, -1.6596837312771877, 8.7341819566011267, 7.4760433147262795, -8.1942077127202122, 8.3436147974653725, 9.8720061590436838, 8.0887096325543109, -17.197684682990683, -8.0196097887787907, -7.4638388448193353, 14.00243903909713, -6.2485104839226615, 11.356138541390258, 3.7545892163531427, 10.415941927557306, 12.692270186087136, 3.839016769003043, -15.395769427822605, 7.7315150527655616, 4.8016964440291581, 8.0132387260974589, -6.4415560341290687, 10.805285608742018, -5.5301352184454284, -13.224718660056825, 0.35302225692097389, 4.4748784871174934, 6.9443759354462857, 10.685073446441708, 3.1575051344879466, -13.665701610090288, -3.8015869558522541, -2.3038729510788531, -8.4060938979535429, 10.397495774699411, 0.63231003672718755, 16.426675593327936, 4.2757077959938554, -8.2297561064825651, -12.203313074476801, 3.5349123059031688, -4.6316910854005595, 12.149986519547449, 10.142561680716403, -12.910916534376218, -11.816001928564599, 12.752636976550916, 1.347868026050816, 4.4506235037217419, 12.700335499696024, -13.848139080070318, -11.355529001962223, -5.7806475282042058, 0.47750289555723269, 5.6986275269369804, -4.4271319538016316, 10.462558932858533, -5.0368487144176184, 12.348453770774848, -10.530489062751826, 11.889507884552419, 6.7066063456855165, 8.7257914990822734, -11.740906669754361, -13.198118848397669, 11.966809170645028, 7.5576572433307501, -12.95621542476918, 11.112615788951556, 5.4150193506065785, -2.4444668502999507, 0.1275326588141078, -9.3810637216464059, 15.15093868960655, 3.1627056768504778, 7.7005484449478576, -10.234073188504981, 7.1267840100223658, -15.91683465924223, -13.410169751101346, 0.13625266261370772, -7.5750837050990372, 14.960178685292997, -15.435015552646451, -3.7057206375618463, -8.8999095085111666, -2.5149139619650525, -8.3327199889755423, 18.941920607436636, 13.420695019369392, 4.9195046375982541, 11.016163952781909, 8.6733276067619194, 12.478765201964949, 2.3345020319649099, 3.1973706815381244, -10.28793250894482, 3.1017921163255822, 3.5809364261341075, -11.688627720005062, -7.4899768065790839, 6.3649946224780551, 9.1684116530245543, -1.0144208985424472, -1.7386901599600024, 10.812333055795435, 4.961817477568788, 3.1009645563657138, 6.6921808083279686, 7.3774978735208627, 1.7132043124694183, -10.362105107573687, -12.173493799440179, -12.57733865447233, 10.40684423079197, -7.1829220405500269, -5.8532485804854053, -3.3187986578272421, 0.91880136486449959, -13.398651042134368, -6.3155049249186339, -17.255588061305122, 2.9621721519641029, 10.684388373450155, 9.920602983772957, -4.9406423078278641, 7.1264826077512149, 11.66719925284613, 6.721261092111213, -12.730916302360351, 10.795526753678212, -20.573136588685408, -5.6958101011529605, 6.9909504456743186, 4.4715875360382364, 12.499170749494757, -7.20935215447878, 9.3520391463706591, -11.260904720544124, 3.9094591998581429, 10.542421309584265, 7.1626495100659087, -6.2979737327672325, -7.4797184772604108, -10.033365613109066, 13.639664860076691, 14.61768258823167, -9.349535102620095, -12.423145667667011, 4.9898271501817089, 3.0038807688543274, -12.714132646116139, -11.715303881774823, 4.1065631173690322, 5.8299911288456308, 16.075633106498326, -5.7905188465892081, -10.727791126474877, -6.8206190409645826, -8.9175871578683328, -4.6200146277545517, 11.079880503025457, 2.510233715234405, -10.392607673591197, 5.8668194165681014, -7.0114162376738856, -10.279106538719603, -15.528793255069509, -4.6085364768240247, 6.8605550379128051, -2.5800329268976743, -7.3532639311399244, 20.672825917556292, -10.439895472960126, -14.128598455261217, 11.328263527383783, -7.463336179396399, 16.130593577787007, 7.8647052993942861, -7.7266572437869527, -7.6739353389438616, -7.8625194662984832, -5.5481184597671502, 16.352149156645865, 1.5600738712852105, 7.0446715470996484, 3.4977667900587481, 9.1242274771866878, -14.864890247335271, 2.228477042485411, -11.636329210405362, -4.6796208227724287, -2.2933856931597671, -9.3965545946571059, 5.2166591092510801, -0.0061470351703269257, 11.008731035650001, -4.0684606352010775, 7.3388311965238815, 9.6110268205483553, -14.385784807623017, -12.022179732503762, 2.2591715836384325, -12.450692202777248, -6.4694864795479514, 2.4970669565811572, -14.438327468512828, -7.1490383062998024, 3.1980227285689566, -4.3545915469413083, 11.850371754353054, -9.6358004132594868, -5.5732823609496984, -11.570303232115274, -7.8799771256040403, 11.364050055127539, 2.8166429122264298, -7.7893594643305502, -2.3842480986276682, -7.3290075822986527, -5.5039959632731286, -2.9510245234322539, -6.0257131849615027, -6.3046667299320047, 9.6500486152400153, -13.674873390020878, 10.734758291088976, -12.103386933808761, 12.184692560628328, 10.655296522071822, 11.91880094629235, -7.4922050113367078, -5.1457408035516625, 9.4250278995611794, -8.1618059524881748, 9.3940146817732177, -11.555304660224397, -9.043867998939163, -8.451710191375323, -0.697115284938572, 2.3373700418213623, 13.692672613492128, -15.665014564786702, -3.2403867344672141, -8.7601644681864741, 13.019487514767658, -12.791506892288574, -13.625856289969327, -6.2209979515728566, 8.6521749698161123, 7.4180160442834548, 1.1105314934818471, 4.4766310382738519, 11.438161271145697, 13.894059012603345, 4.0767572471493434, 3.9865238865858319, 3.7602317997987846, 0.76151966999394338, -5.1810102801857445, 14.799158905790362, 2.4576241055193684, -13.01983807978049, 7.7789583949391536, -7.7989618839443171, 2.5737045662046305, -13.443327011814354, -10.710116060594849, -10.563787698873153, -9.0325237664249336, -8.9417451798718943, -19.333428943078317, 14.683782394656195, -8.0733543435216593, 10.754644346477024, 7.7063042336814984, 7.1186808374245931, -3.9617268249118553, -5.7198371921519167, 5.593318866773699, -7.2969156100159678, -14.048944381672497, -10.062946047657139, -1.0260982646529979, -14.827752195442853, -9.2383256700032188, 15.633286094075363, -16.297177435658352, -0.64090358918251356, 16.682478300485606, -11.380226570148189, -7.5596774165642087, -7.2154274871131481, -7.1481514505268233, 8.5862772252140598, -11.750005376776613, 12.960896281443684, 13.382912666258086, -1.5320372082264357, -11.480485768573448, 4.604919918163711, -10.250884016863665, 16.502161055342512, 10.03826905000834, -4.2314133540673815, 6.914838473777273, 3.033372723351186, 15.789653601786865, 7.7740184970045538, -13.16261088269184, 1.467484633609379, 12.139927777657451, 7.3565534414936771, -16.102142555887689, -6.7186090884258327, -5.0455349707069272, 11.98730746398549, 10.256496746996197, -5.7536379862838647, -5.4682997322585303, -8.6174488346296947, 4.9421612015014782, -3.6472328067701021, -10.170655866613714, -8.731587322200923, -12.200853136951736, -6.4324926421828801, 12.383600590018332, 4.7177953853422574, -5.9611450690323569, -4.8404699641555782, 3.4274708633282907, -15.369056504155758, -13.448819507894497, -6.9107211824606498, 8.0113449069161451, -3.8973949861351929, 13.021049717764123, -6.3796819058710641, 7.5454744658108392, -24.991261131460227, -11.306957669810698, 9.9244994493158156, -15.552007939376315, -11.499894592347063, 6.7321370932847282, -5.7172766786206735, 13.927111999325204, 14.791062203179369, -10.463383452760558, 10.636801153156807, -4.894683643621029, 8.4748218331335483, 6.714189223798841, 9.4375736465144318, 12.487559872903708, -6.0987096595648733, 8.3058734633496965, 4.1758106815531235, -0.92420186594595199, -9.7108492563481441, -11.032513923038188, 6.723487961222486, 6.6405389489355722, 11.70091305718748, 4.2393067109120421, 8.1348475294426805, 13.323378479075469, 8.7202362776180511, 4.4526705951643395, -9.5406850815782391, 10.724131989567914, 3.8203055939862751, 5.655044851128495, -16.307030842468919, -12.651665707248567, 10.335451776575519, -11.543998335115962, -4.5894875308948739, -9.8049275923942005, -3.1277981660548742, 10.521084419510812, 9.1581333155226226, 13.912555752813075, 7.6645359315240986, 7.4281718483850714, -12.884604059581001, -10.227449781754478, 6.6088359371651677, -8.390397410570122, 1.7389657861698138, -9.733674950830439, 5.6026920997089826, 8.6808454450852413, -6.0587915108669694, 10.402906304509559, 3.573187038527244, 10.559282882232578, -10.863413477205437, -4.7386233555213177, 9.4904722391068699, 10.157539704403206, 2.8851592670612307, -8.3696995987232565, 11.297835199084789, -1.8627636495095405, -7.1252169596821719, 5.4278621558211784, -10.438886769424213, 11.047071633619222, -6.5900981825814391, -10.337633941764059, 2.5282376470547079, -9.6591177209883146, 12.449719103332304, 1.55178436617159, 8.8699335446384353, 11.259696425771455, 6.7783986934617984, -3.1793426009237473, -13.884272717050646, 6.6177054099083383, 4.9754611216591851, -8.1416721021369884, 10.636889546477317, 9.381740326488913, -13.207174194145681, 5.641084536081391, 10.931097561358635, 2.6818980710602407, 6.6334459052688892, 9.3510527294752901, -13.223477811560901, -16.02051667550996, -5.7642227501143166, -7.8575844017704233, 8.5138065738662689, 4.7241317174003958, -10.096994042501567, 12.438227764558155, 2.7850508919916313, -7.2072251055036469, -2.6269452276287124, -10.858511776465122, -9.382631273358955, 8.3283966460812575, 9.2585435022023024, -7.4395391778349076, -15.083896521243371, 16.802375383935249, -5.9975534292925188, -9.4765112294400247, 12.157497196108473, 4.5160814688935869, -2.7728770210355993, 2.9059766323671488, -5.4101491583069929, 8.8988634463609699, -6.400827609041122, 5.3560360503868081, -8.7304511666720401, -3.0755739720628865, -13.966358226924728, -6.7649639759434601, -5.5456693899453127, 17.302274909990441, -7.4968096247971072, 8.744509603950064, -10.794741197131442, -11.913516149338431, -7.729522769816862, -7.4691133826775182, -6.5715478061064134, -11.907691856087185, -0.20263423791519211, 8.7885430265334428, -5.9130473048668284, -13.708290803401704, -13.78899848903613, -15.209798120169717, -7.7253595989171355, 10.377128863501158, 9.5577922484441498, -9.1170808303499999, -6.4012157193694925, 6.0123229297351415, -3.8082896556779615, 14.084538271217655, 7.736609816185922, -7.1200940445799343, -6.0420560567461363, 6.7749183889388505, -6.7423962541293223, 11.698461510951111, 12.488447340839436, -12.158335264443023, -11.337129599624449, 4.6676968705568491, -12.701834709382553, -10.475346061527553, 11.810486767960239, -9.6940285745916039, 2.4420600898797606, -7.1590802169457932, 7.4477382756083328, -12.84581185975534, 4.294724353933816, 4.7862471286393875, -5.1283227202624628, -12.462450772792648, 5.8462045895795738, -2.3252078492902015, 10.784106121114156, -8.9091597599913488, 7.8715048196179795, -11.724382426901904, -9.8819847622548878, 5.5179135967036945, 5.8170155199540101, 13.471313785889976, -15.525106358542637, -10.787512021482629, -12.926571949496676, 0.64019471142609763, 11.404282273170695, 9.9588402015625466, 12.047596212569777, -9.4553988787340977, 8.1934695042991272, -9.2978201862150662, -0.16338758265088724, -9.874707008213198, -15.74174394890615, -6.2188307585781839, 6.8874774293005903, 9.063007022226051, 12.224864329254553, 9.6788512147473025, 4.2394307617891345, -10.591549936022522, 6.6238089274322478, 7.5643367406337223, -8.9582742726253759, 12.967837079016467, 11.558303731051819, 0.66328001774643597, 0.061562459877513763, -9.8220366611970817, -8.6914608429229716, 2.0563987156423309, -12.681611400476225, 1.3200230993063025, 14.397044749313597, -11.646369582297655, 11.475601313196282, -9.6685410246039822, 13.178785331570431, 9.3156729399597396, -8.2280610740799105, -5.8512271809845346, -3.3513051394681299, -12.508309397943608, 4.3947576780553819, -4.2609352469664099, -3.9364029654735142, -7.1257677022599761, -4.749374408895342, -7.8617667438721872, -3.1064686101999062, -3.7432869366585888, -4.8561219977586756, -5.4462675545135282, -3.0540684154947613, -15.35711806555511, -11.536068537082535, -4.7779544806256276, 1.5198489129897315, 2.2249257607654318, -4.4269263183089862, 7.4355310535388179, 9.2780119576973981, -10.652417931125679, -4.1778682483229783, -2.1566547856994727, -11.795081921533383, 10.848372600114878, 10.325168705158157, 6.3921784987473096, -3.4419598984874038, -8.0823946821166821, -8.8829402292522772, -2.8818508823421793, 6.3006936576743202, -18.0845485513623, -6.1046031768124465, -8.3535486208206997, 9.9650967368521606, 16.34809005021857, -6.3719619154861631, 6.6492139253615576, -2.2462433383876483, 12.414615001238596, 9.9243080855013854, 6.5816151826391636, -15.916468641697799, 15.719302793672236, 12.597035667242659, 7.9314977205991974, -4.6176638133992505, 9.8340751357654508, -5.6666671493884282, 16.964399126342375, -10.174033224406887, -6.9445510397424979, -7.0003017483847918, -5.7816060099388684, -12.7380229338664, 2.3874629194778292, -4.3315690351541818, 6.402268747442819, -7.1986862442546862, 3.8230018987349692, -16.488657131909211, -9.4628948760922604, -4.4930989787395363, 0.20228101276884691, 7.9230990768569933, 4.0956585057697925, 2.935031122594181, -6.6661480000167179, 2.1833750370684917, -13.862136299430089, 7.2537537887085604, -9.7837110663390341, 8.6426502286738316, 10.933145886680956, -11.848044341163014, 1.9015758573080708, 7.8955654850233579, 14.087625811239143, 15.74368395360325, 14.915952043583991, 2.4289544447309912, 10.938797000780177, -0.48350975665915585, -6.0724283824951737, 12.43180188960436, -17.027449220255846, 10.457087806200649, 11.834161047678036, -11.574528168603067, -5.8443316647878172, -15.909297292636424, 2.8661614976693999, 0.94537037187104889, -6.1321675750261466, 3.5179605788203152, -13.650295745999149, -14.925340774935689, 5.8996315469200731, -4.742895776593735, -12.78647038316033, -8.7668312292356614, 3.2991120560668561, 16.649617394331742, 12.078195842545881, 8.3422604344231779, 6.3829490997837528, -16.259300428897792, -6.7370828126804438, -19.032060980450861, 10.534387246647906, 15.112739135038019, 9.0482362921064681, -10.686676579265459, 7.4266114954786726, 7.6415038124348245, 0.0092345294467927729, 7.3107957428418979, -9.2074521242051137, 13.337719418423028, 11.800206756300712, 6.4124926065359418, -8.6909900143815833, 11.316987754233748, 19.639736933434676, -3.484119576702398, 2.9928203525781334, -13.578916945190016, -8.2764973238514497, 4.471627662727232, 14.082619508506047, 12.174165038542485, -11.000581807612242, -16.079501874825326, 0.70642865016413037, 15.746012766226523, -7.6161295955099675, 8.117804816632642, 9.3568227935114798, -13.012224242904074, 10.980884709953941, -10.668687925966264, 8.3605232827699503, 19.58871502961652, 7.3537694624012788, 12.7200136615813, -2.7781976528461332, -13.043003975732004, 13.14556253978828, 11.936967872899929, 13.171819029461137, -7.9252087243269118, 7.7003280461862138, -6.5060087655108747, -18.442930781768371, 22.885163982319007, 6.583490491290247, -1.1514058151352935, 10.669101185812385, -10.081271922767652, 13.414113164816222, -10.06095242529296, 4.4368474047139586, -9.5133443219646434, 6.2669708529045183, -9.611863292437766, -15.876098782760467, 0.32220461814667717, -4.7036651574655473, 6.5207549195711563, 5.0860839263292528, -12.612352596775924, 9.9738419686921542, 0.9396778045330193, 10.651502808863189, -1.1105748484379481, -9.0667683952063296, -3.7634192509691813, 8.1968711400693568, 7.2005601582338032, 13.38536236818598, -7.2074952622871384, -10.89721410521263, 5.8944483624519881, 4.1900839916018509, 12.886068410456097, -7.6817739511773864, 6.2800076465595316, -8.0059063646010156, 15.344612453245135, -10.986292543222252, -7.7963115789804949, 15.616622818007777, 10.715195479472955, -9.9059332996558478, 14.531108551785385, 8.0871721404149799, 11.28807228436758, 7.2050553662162322, 1.8673686167182675, 5.6379835308774515, 6.0070995688159945, 3.6718419825892781, 10.273782222887936, -11.003276573222182, 10.86280826743919, 4.8625050304430539, -6.8883036392210499, 9.4110700217989329, 8.5907090738786351, -4.1816331667751721, -4.5065585714549732, -11.851914290939416, -0.82661956749219301, -4.2729352395319262, -12.00561858749291, 11.248537736997887, 5.9702468837958875, -2.8246526750650882, 8.7625453187814948, -7.1602571689933585, -12.354031243120836, 7.4186972352690956, -6.987904733680633, -4.7802427263213847, -8.4594669364587052, 9.9074303226742551, 3.806086639453103, 11.279747903383944, 17.081579765803436, -9.3400423712763221, 3.1993990305779496, -11.821616914733911, -13.221112615394405, -10.273658410670993, 11.172005145239616, 9.0661355630755569, 9.2282171885349893, -10.23315808490522, -8.7767507313040536, 11.658399522139373, 8.1253713837323716, -6.0161671309769886, 16.112984014276019, -10.526568304448215, 11.152848111157505, -8.924603008706157, 19.991244818943592, 1.7502482049131347, 10.380462477594111, -12.601277391046924, 2.2056591767324831, -11.208801676783557, -10.115502455925911, 4.637267012273572, -4.3901359184650799, 6.4876168985133287, -4.998151172316156, -10.216089377506956, 10.51595559197369, 9.860423081769472, 2.0714834687695323, -8.4943703055745399, 2.6716218493294384, -4.4936844031461796, 7.0630594165237257, 11.626244158543082, 12.185499704257312, 14.474700254831625, -8.0226618511897883, -7.0870692277314653, -1.1721939107905543, 9.7010116241387543, -3.9275566558414692, -9.75092296492865, -0.95638727648524069, 8.8537127253606389, -14.829180519689713, 9.9027033868976222, 8.2208221244483237, -10.01770451901422, -6.4871122747161722, 1.9748473784403351, -11.360816340237003, -4.1135134538497162, -8.9279661633195779, -14.855403366544149, 10.607559153322043, -11.932153415925857, 18.392309282429526, -7.2895436119104833, 7.3649578192591916, -11.824321717922503, 4.5048430891613203, -16.076657798411361, -10.123099989589955, 4.6541470838769436, 14.693948982580077, 9.4260360038265905, -6.5360788988808212, -12.279752881306212, 0.14329411518298504, 15.277760011935301, 12.94645800633524, 9.0076074533198192, 3.1698412352516221, 7.1781738715915795, 15.252388120172336, -8.6205841782080128, 5.2369980810204497, -9.433249016049194, 11.112523275262491, -5.6094286689251271, -5.0372463006239476, -6.3399450364534582, 8.9510280620290601, 4.9779353674772384, -12.848232188637104, -7.9494772442250223, 0.056481817566435569, -1.0990377463926844, -8.778197904426678, 12.556996955893457, -8.8110005063100054, -5.0471729352089545, -10.673361741004538, -6.938427941848941, 8.599594025334758, -8.1348225722413492, -13.541689542539737, -11.229036341770312, -22.614183167994018, 12.576253012660271, 15.118290082755436, -9.2870046826546524, 12.899455356719221, 13.243961159383248, 4.4575044249539246, -13.064373901252422, -14.393244974865604, -7.5706760405997384, 8.5444523394978518, 12.288833952178848, -2.5897476840629694, -6.9298386101193596, 12.539861043573865, 11.593898741650712, -7.3909737338763124, 4.2946927448293568, 7.508232545403895, 8.5884600404407188, -7.3302711120767166, -11.033859476165276, 7.3743897210913136, 12.286574554025389, -1.700095235673573, -6.9072546333240732, -12.728102558911758, 6.4176904367705383, 5.903830856246814, 9.2556056318797992, 11.125813908063282, -10.011979772526844, 2.9405966507503511, 10.009962336069428, -4.8607974702953536, 1.7471621272732738, 9.7439136565857378, -0.66822435460540275, 18.464597991608112, -10.547977913897311, -6.8357758325587907, 4.9415192092837481, -11.223685529550222, 5.0739368213705465, -8.1592201290566155, 9.4541189767136888, 6.856119326024217, -18.448536650094034, 11.582475715514898, -10.178303201195758, 4.6276063705681079, -11.553748539540541, 2.5523254456603865, 4.2384411617925624, 9.8680333748165499, 8.1917716819138136, -10.850753257867975, 10.241807976913078, 12.017255467195287, 7.7723650228628429, 5.9396282417311674, -15.066965171524886, 9.4060341572848429, -4.4910564383161384, -8.2147205547924216, 4.7023980767577918, 11.671098907901923, 8.4913841414387878, 7.6416710694567156, 11.664303236292549, -8.9493566205550099, -6.6393544707268033, 7.8628598936427894, -8.5326569294992858, -2.0472135566402336, -11.584529863049369, -13.765771105899878, -13.236687110141661, 7.7745678935906666, 4.0644071666046333, -5.1127185876504511, 11.09916237943035, -18.103923278917275, 2.5020372532682957, 8.1940521912528261, 9.2210533248542514, -8.2947343120838326, -10.150302885063565, -7.0933287260530955, 12.386066725557843, 9.4912773578087801, 3.3565256628259474, 9.513448873526654, -9.5772677988882489, -9.7173765268110159, -7.7871728659279844, -6.33770970174879, 8.7446348550882131, -5.3074344597323737, 11.315880628341713, -5.6257158464771564, 5.9792501423848678, -9.9591388238248939, 10.547073748158361, -11.945860349110731, 9.8107678957781204, 5.3625757170649493, -7.3961894867189759, 11.294547725442342, -4.3290304291788617, -4.4072888651694688, -5.9735063255412655, 6.3232368782780126, -10.734895281472282, -8.8246478451021009, 8.3174800733332432, 10.666958445791396, 9.5832549522929806, 9.6003700340562261, 13.330599293965252, -7.7659598115974093, -8.4068157954698712, 6.7155631645630169, 10.951065869771208, -9.843399692801551, 8.6950573645033593, -12.91546689382516, -6.8284290555266072, 6.9679513402290612, 8.7517402592974953, -9.7252558599188106, 4.4957279393577405, -3.0198719775413605, -12.528522673998944, 12.791874350523511, -11.987866488473575, -7.7731187084210358, 15.356748666493452, -7.4363704293344366, 11.554365751821972, -13.691156388740444, -13.639104069640238, 12.899745770415052, -12.477204336163956, -12.161571929011455, -11.273422005627573, 20.710850070106048, 11.743681239843617, 9.6151567581220565, 8.2992099468073608, 8.4619149441334685, 8.8404977904969346, -10.918349909014658, -5.6517458894209422, 8.6526147356508165, -14.290258838779266, 3.0318506448723244, 3.6389793712730598, 13.887411508481932, -8.8335154477770956, 6.1670460127122331, 13.208091864632017, 15.635505869782437, -17.556690461708161, 12.400331386163444, 3.9778500015058431, -8.2047500613887383, -5.2233512983007522, 4.0362277485067475, 8.4751794582169477, -5.5914076527615748, -5.4777738529828426, 11.821238725863337, -8.8900626961710341, -7.29974425683878, -7.4473770624143274, -8.0512707557556205, 1.6226698981742598, -15.433546932692904, -4.1071266269684763, -8.4263162579803996, 9.0736808802899116, 6.0439240655594269, -9.6449191691164273, 9.2360102991487718, 16.958973272151585, -11.584208891462776, -8.5316628771682268, -10.964476795840529, 14.434155388768026, -16.016018668782927, 12.499589449114831, 5.3431907633740403, -13.783231585179763, 16.195154330455487, -6.4307912934527964, 11.080799577011028, 6.5325130508365454, 12.802146321954664, -7.6814813666878257, 6.1271513194854581, -6.9538126536653362, -5.0690242209381475, -11.855544305317043, -5.1941087352434137, 4.8945739632537482, 9.4974588137719405, 8.8718463435014332, -0.47224465841085145, 3.9456702743066483, 12.491257904548593, 3.9592076310204338, -5.0217678779827253, 6.3597443173631385, -10.612846967410137, 14.31614300592712, 7.1411122329367416, -11.762271600506461, 4.331988913082836, -15.437501431534956, -4.6693242794521481, -12.698173054121195, 12.417434316925727, 21.062913663865295, -3.5142449580964197, 1.3700514528580063, 5.6243547407690206, -12.071365752103238, -1.1360048996995593, -11.347850339525309, 10.833731442380101, 0.46134954632024316, 10.720116067259271, 7.3904190673115604, 6.7696592500196058, 10.652736359476924, -7.8165483190849638, 9.3865130951890841, -0.34774522512587569, -4.0566753969719276, -4.3275806653874298, -6.8638440461424404, -4.682521888031431, -8.2920976977163718, -14.311445847621952, 13.976975120531808, -8.6098361017160663, -12.114294053104134, 5.1005213815339383, -11.049107710762476, -7.0863761770199494, -12.463614616712142, -9.7359303784027027, -13.418212569071059, 5.7610447890373235, 15.56161888307617, 7.0574421915141308, 7.1030986195714929, 11.300511268289812, -7.2344128515783446, -11.13562468318859, -1.5760076318579441, 1.2107880314559112, -8.7874657760578643, -8.8001022473565236, 12.247082051858888, -9.8565622276713381, -3.0179931003584515, -4.5978322515637293, -6.571180711121297, 2.500611207880274, 0.84457801315975856, 6.4714616812285382, -18.464904505652935, -4.3990010259668271, 4.1350410389687466, -10.462432926909633, 6.2042736110931846, -3.8394082311505735, 8.5618068576083974, -17.977066011411761, 11.022903239935964, -19.178990090912414, -8.0470231091434652, 10.79648317128396, -13.096061841695322, -5.6164196771432566, 0.78843332401436395, 13.7984392278555, 7.6547594193414454, 7.5442903307994644, 12.66336251543067, -9.9436379532267338, 8.3550537237332758, 10.82799568784589, 12.384885746776661, 5.2191347513552007, 9.9942871944245102, 12.958881973386022, 5.8450353998039759, 5.156985957036718, 13.5582570732471, 10.34554494007787, -6.037237777176359, -8.2731248141970166, -7.9895984943236309, -12.02375110577746, 9.3728051686457299, 9.3911820274244171, 4.9339039982877528, 12.302318980639923, -5.5266659866771741, -4.9613643934779441, -11.294072601106434, 10.376229630289247, -8.2965871864098535, 6.6836050094050048, 6.894916881498717, -15.288396395010784, 9.0886752966827142, 7.439432773214512, -4.0410572378226171, 8.9307473630506085, 9.0038835677978959, -10.459659023792348, 8.8378541314937387, 10.339786491210649, -9.9890662163533968, 7.9788596610503406, -10.765397845560441, 12.052911411023967, 6.1067152607562258, -5.6066198973015737, 10.952942399934605, 7.6432926714438914, 8.3014387807885619, -8.5639306175146341, 5.1234913528982382, -9.7662598194835457, 6.1322495355624156, -8.160368360432031, -15.309087302665159, -8.3419685644228121, -5.2861952387314828, 5.7536255267894676, -12.714725164584957, -16.125699441038968, -12.439064087815231, -9.1320304457996606, 3.8603060490391887, -6.1338073713204455, -1.7222012329044754, 8.5214199468265512, -8.9836162439198581, -11.816294225738464, 4.2214300165680347, 10.919410045065687, -12.940481826969718, 11.334503455702539, 1.0676110391325953, 7.0891161904485651, 6.9961528158293813, 11.113742549839397, -14.034363540155118, -2.534544404400672, 4.8188993072548705, -18.804376110412633, -13.059868091828172, 2.8229971724161289, -9.6989297510369017, 4.7326387912990509, 12.188026385951737, -11.467461248064906, -14.073562498971903, -9.2196347513311832, 10.038208885426119, -4.3813258723769009, -4.1241400929515137, 11.486725329451389, 4.8628878289290549, -8.8001952481419785, -6.5888239970497349, -9.7953285124389389, 4.2522039839409844, -13.459928721286854, 4.8164035354744943, -15.811464084480162, -15.167000919853482, 8.6050948989220277, 5.4097197830658672, -3.201067374137641, 5.7304935157850272, -0.50989151426446222, -10.147545800700401, 14.129098358281857, 6.7974337326702985, -11.157443424806557, 5.4202945677131122, 6.2589729732564718, -8.100004693609538, -8.7681862399603006, -8.6314112980872526, -3.9762886492900669, 6.9078974491617418, -7.3105786438044316, -12.86172440009309, -10.982888171052132, 11.138006586636338, -4.7087869570844818, 6.0689150921803634, 6.1958655520184891, 14.665790446061886, -21.756441569001307, -6.0112922694975106, -8.604883105861056, 15.140407588256764, -7.0631519145705521, -15.024190589242993, -23.18926715039116, 8.2311742508471983, -8.3904317018734034, -9.8859430286919867, 5.9777560262912424, 4.489704569613985, 9.9452514956755529, 9.5807589942228493, 9.5768073329005379, -13.191427051485375, 8.6226588561737731, 2.398176437043392, 8.3478860808676707, 16.691979667886184, 10.245192955959679, -8.5601611176100771, -8.6435755556304308, 11.536812168223609, -3.8011348079490959, -0.4154822840976809, 7.3530196404235948, -6.2070213990800998, -3.3664554862576601, 1.9501048246997952, 11.044948446517594, -9.1773178494438294, -9.8012555654706048, 12.731258282570259, 7.4006494098682252, 8.8054756517321113, -8.4864693790843759, -14.388354721820441, -3.2911084226653116, 7.3278629195734881, -3.3628879633743507, -2.0906070586159164, 8.7678659217554724, 1.2754529803697003, -10.171163782743935, -8.6401640914138174, -15.570426156008278, -4.7735987049156741, 6.2627274839799227, -8.902086558167035, 5.890113367738306, -16.19738850063483, 12.494158748994153, 7.4515972260992802, -11.368802405389724, 0.79949913059431887, 10.464954350908759, 12.045093842059636, -6.2632239899779618, 9.3946694855915709, 4.6796796423594591, 7.4573657480844915, -2.1730144122742283, -10.441568309083868, -3.128467240255199, 2.6674648941331709, -1.7628028131302032, -11.490305842901, -2.6052782471959244, 9.1378585089733217, -8.3182391512182594, -6.0353916735033906, -6.4946073399059889, 8.5262424287807921, 11.041008586867564, 18.792916305706246, -5.4400449872596122, 4.7763430246707763, 7.4793455477938471, -12.701581632451186, 7.3391248408947076, -11.164236112983559, 9.4704084335423353, -10.054506153225052, 14.297500013934522, -1.9132095626133094, 14.164236143735152, -18.514789351038115, -10.538326608827228, 8.5742137931431603, -18.159208758191326, 7.6116880222576011, 7.9413670120767224, 9.047676658736421, 12.221156662181444, 7.0843147886392952, 13.170456072797521, -10.632225390661356, -12.606230762028668, -13.968700939920279, 0.90435763497244315, -4.1863354464526514, -0.57860003934790516, -7.7068236480377168, -7.5458142157151684, -15.760391765099628, 3.148710788422199, -8.571589030098103, -6.1442268269653644, -5.5386008972836374, -13.583703624827324, 12.571370461611423, -5.0037658066132318, 6.6729776513218466, 6.2491302239836344, -13.868418916158106, 13.949814810808402, 4.1350925641742018, 14.220597569700558, 7.8377637620610052, 10.165620408810733, -6.7532907993950042, 4.3042646268926728, 1.4896778697382114, 8.3496556534811361, -8.8688217756106855, -4.1638250519443876, -10.45385832370283, -17.931254325719735, 13.701501053759536, -9.4565546768244069, 1.3427226397103338, -12.271188095378776, 10.368577567683388, 8.025638109861422, -6.2074049810183825, -2.0991088194951866, -7.6695567427956011, 11.150836440150584, -1.496263923503625, -18.494976331519254, -4.2881609912726928, 12.980292811570745, -0.92488991150790378, -4.6658341014288567, -2.8894649330160642, 4.254991528529442, 6.433665878257556, 5.6179185883054492, 3.9771596771133968, 15.121069471781597, 16.580045222011115, -9.566021123652547, 11.967303334090824, 15.8257683504883, -12.810889692425972, -3.458648034714614, 3.990823559676568, 4.9093618306644045, -3.4096503299487577, 2.8468287182096539, 8.9865457241125046, -6.6201701664235877, -14.013179729737548, 11.434571611598438, 5.767464644498955, 9.3360216341670927, -11.330333170538852, 2.9944289963307167, -11.076388371680537, -9.0625652353016406, -12.834505378246872, -5.1884256791028482, 7.8120310086321405, 10.177307965543681, -9.4195921379930319, 5.466041504061816, -8.3541043828300516, 9.9136918737238453, 8.1033458202759867, -6.7036770007249524, -8.1223318972882215, -8.2591262612141172, -9.1232651727813856, -11.669246063763795, -0.030697844939840527, 9.3789394813876008, -11.107031538341255, 7.288702786596331, -4.6967946059755157, -1.5987277913422755, 11.510267151110476, -15.34971763301391, 8.2159765211646274, 6.6883959862268858, 13.179857051577731, 7.6088514551549089, 7.4989231135409131, -1.7239395961308088, 1.4954887205231719, -9.8573207709532547, 4.9542123592468155, -10.367910840496483, 5.7226061395590309, 9.5446949280935716, -8.6942844135306796, 6.2929455305188577, -6.7169960771850326, 19.637781323792851, -12.129044785216932, -2.8881972324088676, 4.5724813224397796, -4.9563780171627787, -8.8290411230288512, 2.163546702306324, -6.7813228130077352, 4.7602245034138555, -8.4569684434378569, -2.6066149728226859, 14.465681780446152, -7.4053864105652734, -9.8766495392168174, -12.069651713077828, -11.042473697693975, 8.1529541863355082, -9.631792308049631, -3.6472475127982888, 12.36876532086672, 13.587811221658276, 6.0796488885118061, 1.1309707002276215, 9.8361035439712978, -12.782363514428749, 14.877109246506274, 8.9863394004114223, 3.7313973097701414, -8.8429365798088835, 10.783409906469574, 5.4309225673390031, -6.2038249324134984, -12.503772776539773, 5.2588713559908609, 8.0377625659349796, -11.433112718999636, -2.3606577081546209, -0.51422838799139303, 11.042048536456281, -8.9107584751200442, -11.636004759251062, 12.663937409329666, -10.014401209989058, -8.0569057100231696, -8.5006754476725348, -8.2061921877402746, 3.6065709585004733, 0.73647938533134194, 1.8183486110849676, 5.4805296348307078, -2.2813810755893615, -3.9153542826111902, 13.587948798210096, 1.8068496248064898, 9.0325044536184134, 10.124444543125891, 13.84809053563459, 15.565497107356785, 8.9751576152107209, 9.3516719607931797, 3.6327626866158558, 11.760943102597267, 5.0870266626202989, 5.674904060336968, 12.357086041091151, 13.951717235903738, -19.310077284104022, 8.0053082251775685, -4.297125648181531, -6.3260546204828696, 10.294877306501972, 13.93365235676599, 13.141707549171858, -1.5568066615629472, 8.2172142670253123, -7.8132836735117186, 8.8354487563578399, 16.707153362143629, 4.5855551987365208, 12.223929231669286, 14.863765072540376, -15.461542707954242, -2.3371697391419985, -10.024175159008536, -11.737459729645774, -3.7329473123372199, -3.0590377398467261, 13.143768419466609, 9.2038314945946311, 3.521511313043765, -2.2535815241524322, 5.4844876358740011, -10.004087991701629, 11.888560517692463, -4.6722624505292263, 3.7082244357698078, 6.3751558628158023, 11.627185499278614, 1.9289094882369002, -12.217802164142721, -7.6763956464968892, 5.6910150189702744, -5.6417449295552817, 4.9980919736488802, -9.0536429095706819, 9.6119351348702313, 2.4973962155691476, -14.910998981505347, 4.1843311003165047, 5.9103254703115775, -10.108868185667163, -10.968757232820812, -6.2351738311660236, -5.4115373442221397, -5.1847401075738944, -17.223563033246595, -13.214097072642032, -11.854105278464028, 12.414721845275727, -6.2778430500337503, -10.885676169950498, 2.4563316506705526, -8.7748279932902093, -5.7945746677684031, -5.8659162690750017, -10.185454736539469, -12.259036348321617, -11.345440149075966, 6.5815217034894982, -6.4191766201668736, -7.3487464338408746, -0.40842055433143365, 10.921577631841934, -21.476071540546794, -10.659396127407732, -9.7319013100865899, -12.054728330205412, -10.865345038797253, 6.0360205068991064, 6.3343994011226927, -7.1354597827181925, 3.1432134836509893, -2.4414855631776251, 8.0775343816376086, 3.972870247588534, 1.9692418169429344, 7.2828780139977134, -15.463562597421859, 10.173242967382789, 15.083747077552808, -9.276641467191272, 7.7773515313362411, 9.0385622964224765, 5.6887720196625535, -10.133807142620341, -1.6437588724330709, -8.158553801413559, 10.446525293735167, -11.433423238083284, 8.6648442034190918, 10.064106964518734, -8.7075993351272132, -6.3080890103035614, 9.3898484683747458, -4.3190925589260534, -19.328147731608361, -7.6126659646899917, -11.705773894239984, 7.4600825708549596, -8.1116458562206901, -16.039122843816592, -2.6608032342278891, -5.3302266349477829, 7.386051049643469, 6.9792999266885793, -4.5182426093483645, 15.20105997302613, 9.5925220650656087, -0.84758073759469377, 4.5185848028718691, 5.6852984237201536, 8.9738282076193592, -12.235502878115856, 6.6410806023610247, -8.5942670023877028, -10.537735925654538, 7.1077614149638526, -6.4914995246164899, 6.2433348879497554, -11.339739148237399, 17.070957256911349, 2.8503359840349143, -0.58556596880585032, -8.6111923383904436, -12.931731217434081, 6.4866696051548578 +}; +const char HRAa_1536_512_detected_data[] = { +0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0 +}; diff --git a/src/HRAa_1536_512.h b/src/HRAa_1536_512.h new file mode 100644 index 0000000..6296756 --- /dev/null +++ b/src/HRAa_1536_512.h @@ -0,0 +1,19 @@ +/* + FILE....: HRAa_1536_512.h + + Static arrays for LDPC codec HRAa_1536_512, generated by ldpc_gen_c_h_file.m. +*/ + +#define HRAa_1536_512_NUMBERPARITYBITS 512 +#define HRAa_1536_512_MAX_ROW_WEIGHT 12 +#define HRAa_1536_512_CODELENGTH 2048 +#define HRAa_1536_512_NUMBERROWSHCOLS 1536 +#define HRAa_1536_512_MAX_COL_WEIGHT 4 +#define HRAa_1536_512_DEC_TYPE 0 +#define HRAa_1536_512_MAX_ITER 100 + +extern const uint16_t HRAa_1536_512_H_rows[]; +extern const uint16_t HRAa_1536_512_H_cols[]; +extern const float HRAa_1536_512_input[]; +extern const char HRAa_1536_512_detected_data[]; + diff --git a/src/HRAb_396_504.c b/src/HRAb_396_504.c new file mode 100644 index 0000000..876d83e --- /dev/null +++ b/src/HRAb_396_504.c @@ -0,0 +1,22 @@ +/* + FILE....: HRAb_396_504.c + + Static arrays for LDPC codec HRAb_396_504, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "HRAb_396_504.h" + +const uint16_t HRAb_396_504_H_rows[] = { +10, 53, 56, 11, 21, 4, 12, 33, 41, 2, 19, 10, 20, 14, 61, 31, 7, 24, 37, 5, 34, 13, 27, 59, 8, 26, 21, 5, 3, 26, 1, 28, 4, 18, 16, 6, 15, 7, 24, 30, 17, 25, 10, 35, 61, 6, 9, 64, 14, 2, 13, 28, 84, 1, 15, 20, 8, 64, 12, 27, 11, 18, 22, 33, 5, 29, 19, 4, 3, 31, 23, 21, 35, 9, 34, 6, 16, 28, 23, 14, 26, 10, 20, 8, 7, 17, 12, 24, 15, 18, 33, 36, 21, 31, 29, 3, 25, 32, 5, 2, 13, 1, 19, 30, 4, 27, 22, 11, 38, 129, 63, 46, 62, 19, 13, 44, 76, 117, 25, 75, 63, 29, 65, 54, 23, 47, 144, 15, 39, 41, 42, 82, 36, 70, 67, 58, 53, 89, 22, 72, 17, 45, 50, 9, 34, 41, 63, 40, 47, 55, 48, 44, 64, 72, 19, 67, 57, 66, 54, 42, 143, 36, 43, 46, 52, 108, 71, 49, 16, 39, 32, 38, 70, 62, 69, 26, 37, 55, 56, 50, 58, 65, 56, 61, 67, 52, 53, 50, 48, 39, 59, 37, 47, 51, 63, 70, 46, 60, 40, 71, 57, 72, 54, 68, 44, 42, 49, 45, 38, 64, 43, 62, 66, 69, 55, 41, 64, 138, 115, 107, 81, 30, 39, 55, 91, 155, 48, 87, 90, 49, 84, 98, 68, 64, 180, 32, 88, 108, 71, 111, 86, 112, 73, 126, 90, 114, 57, 134, 52, 51, 73, 40, 59, 87, 86, 90, 101, 68, 51, 102, 89, 85, 37, 124, 99, 75, 76, 95, 205, 48, 77, 97, 73, 114, 98, 94, 45, 53, 58, 92, 80, 103, 100, 65, 93, 105, 79, 91, 80, 79, 102, 75, 91, 96, 78, 90, 82, 97, 83, 108, 89, 119, 85, 95, 105, 99, 103, 100, 93, 92, 86, 88, 76, 81, 104, 94, 101, 87, 73, 106, 84, 74, 98, 77, 141, 149, 123, 214, 87, 64, 45, 60, 114, 173, 103, 115, 102, 95, 88, 101, 93, 71, 188, 66, 175, 136, 77, 170, 127, 126, 140, 135, 97, 117, 119, 149, 80, 96, 85, 110, 78, 122, 105, 111, 121, 160, 81, 125, 131, 107, 60, 170, 151, 120, 109, 133, 220, 96, 142, 98, 112, 123, 129, 157, 74, 85, 82, 113, 121, 144, 139, 83, 139, 130, 117, 141, 133, 120, 136, 141, 132, 114, 143, 107, 123, 131, 138, 122, 128, 147, 113, 111, 125, 126, 135, 134, 144, 140, 112, 109, 142, 124, 137, 139, 130, 127, 115, 118, 121, 129, 110, 117, 215, 185, 179, 261, 105, 94, 69, 158, 130, 210, 113, 132, 183, 148, 107, 133, 112, 74, 280, 67, 176, 172, 78, 193, 141, 153, 146, 160, 156, 147, 132, 150, 100, 168, 138, 161, 99, 176, 138, 192, 136, 186, 85, 167, 168, 118, 104, 200, 215, 147, 161, 177, 244, 116, 165, 119, 210, 156, 132, 191, 106, 135, 115, 180, 155, 163, 146, 178, 153, 166, 149, 175, 153, 155, 145, 169, 150, 179, 165, 116, 158, 167, 176, 168, 146, 158, 178, 149, 154, 138, 166, 145, 152, 161, 175, 148, 172, 156, 162, 177, 171, 157, 159, 164, 173, 203, 151, 180, 257, 191, 231, 262, 139, 130, 124, 178, 165, 234, 170, 185, 237, 164, 114, 143, 171, 80, 291, 122, 182, 204, 104, 242, 147, 154, 166, 183, 265, 187, 159, 212, 152, 175, 189, 164, 158, 187, 143, 223, 142, 217, 140, 208, 209, 154, 134, 252, 230, 196, 216, 182, 256, 150, 198, 137, 251, 166, 162, 197, 113, 174, 128, 196, 212, 193, 189, 185, 190, 201, 181, 203, 215, 184, 205, 189, 207, 196, 214, 174, 190, 199, 211, 201, 192, 181, 186, 210, 187, 163, 213, 200, 216, 198, 185, 212, 188, 191, 204, 206, 183, 193, 209, 197, 195, 224, 202, 208, 273, 218, 274, 294, 213, 163, 187, 248, 194, 235, 260, 200, 248, 224, 137, 254, 222, 85, 292, 145, 190, 212, 131, 245, 159, 199, 181, 258, 277, 206, 178, 219, 202, 184, 241, 205, 239, 260, 148, 271, 159, 263, 152, 242, 250, 183, 151, 259, 246, 214, 225, 237, 272, 206, 213, 145, 255, 199, 196, 228, 127, 188, 172, 222, 232, 226, 207, 238, 227, 224, 248, 233, 247, 223, 245, 239, 250, 232, 252, 194, 233, 249, 219, 225, 242, 238, 240, 226, 234, 170, 238, 210, 237, 230, 228, 243, 236, 231, 248, 221, 246, 218, 229, 227, 217, 235, 222, 251, 277, 262, 299, 338, 246, 208, 220, 289, 291, 276, 267, 233, 333, 307, 264, 288, 324, 92, 325, 169, 209, 233, 192, 275, 160, 257, 247, 317, 359, 308, 194, 228, 244, 236, 272, 248, 273, 295, 184, 315, 182, 339, 195, 268, 282, 243, 169, 300, 283, 265, 240, 258, 289, 245, 218, 173, 297, 240, 236, 257, 171, 219, 230, 288, 254, 264, 231, 281, 287, 277, 279, 303, 259, 286, 277, 279, 269, 261, 255, 220, 265, 283, 278, 276, 281, 285, 268, 266, 282, 182, 244, 241, 254, 274, 256, 258, 264, 253, 287, 270, 260, 267, 273, 262, 257, 288, 284, 275, 278, 276, 323, 347, 249, 266, 232, 331, 366, 332, 304, 280, 347, 355, 268, 297, 327, 311, 345, 186, 221, 279, 226, 283, 223, 310, 296, 348, 379, 316, 252, 229, 277, 273, 286, 319, 305, 329, 235, 343, 307, 376, 251, 306, 323, 276, 275, 358, 318, 328, 269, 319, 338, 274, 286, 280, 333, 262, 278, 314, 194, 256, 311, 302, 312, 327, 261, 293, 322, 308, 284, 325, 292, 322, 302, 297, 299, 306, 290, 263, 312, 311, 315, 317, 318, 304, 305, 289, 309, 280, 316, 271, 314, 313, 296, 303, 320, 307, 298, 300, 319, 294, 308, 321, 323, 301, 291, 324, 328, 337, 362, 385, 320, 310, 346, 344, 380, 349, 322, 369, 350, 367, 302, 358, 356, 316, 368, 211, 301, 282, 302, 309, 284, 341, 306, 365, 382, 325, 253, 285, 313, 281, 287, 351, 330, 364, 313, 368, 330, 377, 270, 334, 372, 331, 296, 365, 346, 345, 309, 324, 341, 317, 298, 320, 342, 345, 310, 336, 249, 304, 333, 352, 367, 349, 354, 294, 363, 335, 301, 340, 339, 327, 332, 350, 342, 344, 329, 310, 338, 331, 354, 328, 351, 364, 325, 348, 353, 293, 340, 295, 343, 355, 360, 326, 337, 341, 346, 352, 359, 335, 356, 357, 358, 334, 349, 330, 347, 372, 381, 0, 336, 326, 383, 367, 392, 374, 386, 376, 353, 387, 378, 0, 392, 342, 389, 255, 394, 314, 371, 361, 312, 377, 373, 384, 390, 339, 315, 290, 352, 324, 321, 360, 396, 371, 344, 388, 347, 378, 356, 392, 384, 389, 348, 390, 353, 387, 374, 337, 381, 350, 359, 362, 385, 375, 355, 361, 382, 351, 360, 383, 391, 379, 369, 375, 370, 395, 357, 386, 379, 333, 387, 390, 389, 377, 391, 365, 388, 386, 385, 396, 370, 382, 372, 376, 368, 336, 371, 345, 362, 361, 395, 366, 393, 378, 392, 384, 394, 363, 380, 369, 383, 381, 373, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const uint16_t HRAb_396_504_H_cols[] = { +31, 10, 29, 6, 20, 36, 17, 25, 36, 1, 4, 7, 7, 14, 20, 35, 33, 34, 6, 13, 5, 31, 17, 18, 11, 26, 23, 32, 14, 6, 16, 20, 8, 21, 44, 25, 19, 1, 7, 36, 9, 23, 55, 8, 7, 4, 18, 11, 14, 35, 34, 33, 2, 16, 8, 3, 31, 28, 24, 8, 15, 5, 3, 1, 15, 20, 20, 17, 7, 26, 18, 32, 27, 18, 12, 9, 23, 23, 71, 18, 5, 24, 68, 15, 18, 25, 5, 15, 30, 13, 9, 18, 17, 6, 14, 34, 29, 16, 37, 33, 16, 13, 11, 23, 5, 61, 4, 22, 51, 36, 24, 17, 11, 9, 3, 54, 10, 46, 31, 50, 41, 20, 3, 7, 44, 26, 25, 63, 2, 6, 23, 12, 16, 32, 28, 22, 15, 2, 5, 27, 1, 41, 16, 19, 20, 27, 25, 14, 2, 32, 47, 33, 26, 26, 10, 29, 60, 8, 25, 25, 36, 59, 6, 14, 9, 27, 44, 34, 20, 11, 17, 22, 10, 62, 21, 21, 52, 8, 3, 19, 27, 21, 13, 34, 2, 20, 7, 19, 35, 21, 2, 23, 24, 9, 43, 50, 60, 55, 26, 12, 70, 33, 72, 22, 36, 30, 67, 6, 21, 10, 20, 22, 5, 4, 1, 51, 42, 2, 32, 7, 21, 17, 25, 14, 51, 23, 69, 32, 32, 49, 3, 7, 12, 10, 10, 34, 13, 68, 37, 51, 35, 24, 46, 33, 24, 5, 27, 8, 5, 45, 43, 31, 31, 16, 20, 53, 1, 28, 48, 11, 4, 2, 42, 15, 29, 6, 11, 15, 51, 43, 40, 35, 1, 3, 24, 2, 1, 1, 22, 12, 34, 22, 24, 25, 32, 35, 35, 16, 8, 32, 9, 19, 68, 4, 38, 27, 16, 55, 3, 48, 21, 15, 72, 11, 37, 27, 14, 30, 24, 6, 18, 25, 33, 22, 31, 18, 28, 49, 36, 5, 35, 11, 3, 17, 19, 6, 17, 1, 38, 37, 8, 10, 13, 44, 70, 5, 2, 4, 30, 72, 26, 18, 40, 8, 19, 7, 1, 28, 10, 13, 36, 33, 13, 67, 14, 17, 71, 16, 29, 36, 24, 3, 69, 38, 28, 9, 8, 19, 12, 69, 23, 2, 27, 10, 58, 12, 26, 15, 29, 9, 3, 29, 7, 28, 4, 11, 14, 40, 11, 29, 27, 9, 13, 21, 70, 37, 54, 50, 69, 33, 28, 46, 38, 57, 47, 12, 61, 59, 22, 49, 37, 61, 41, 62, 11, 56, 27, 63, 71, 39, 42, 30, 60, 52, 66, 40, 70, 63, 64, 37, 73, 54, 47, 64, 21, 40, 22, 52, 103, 44, 34, 56, 41, 43, 60, 72, 43, 57, 29, 51, 42, 71, 49, 63, 37, 47, 45, 66, 13, 6, 68, 50, 27, 42, 67, 65, 23, 46, 35, 61, 50, 51, 55, 37, 74, 33, 43, 63, 83, 53, 35, 39, 12, 21, 45, 29, 72, 64, 69, 60, 52, 54, 56, 56, 49, 67, 41, 44, 66, 47, 39, 104, 15, 58, 96, 107, 40, 26, 61, 15, 12, 80, 30, 104, 56, 74, 65, 38, 58, 48, 89, 28, 61, 85, 59, 9, 45, 31, 52, 47, 62, 41, 56, 35, 67, 43, 25, 55, 39, 66, 56, 67, 30, 39, 32, 54, 49, 43, 69, 46, 65, 58, 102, 37, 31, 28, 51, 99, 66, 36, 55, 58, 82, 45, 47, 24, 61, 63, 56, 80, 34, 38, 100, 31, 78, 64, 71, 41, 28, 39, 12, 42, 30, 62, 67, 69, 60, 40, 66, 31, 105, 59, 104, 94, 58, 48, 84, 107, 106, 99, 53, 54, 77, 44, 45, 57, 83, 32, 55, 50, 49, 93, 105, 55, 62, 53, 100, 64, 40, 70, 84, 66, 104, 60, 103, 63, 67, 65, 22, 89, 39, 59, 52, 86, 76, 58, 92, 44, 96, 53, 54, 49, 73, 13, 61, 77, 57, 48, 98, 65, 57, 62, 26, 52, 73, 38, 67, 4, 80, 66, 50, 88, 102, 44, 77, 100, 92, 53, 34, 54, 47, 10, 29, 59, 71, 19, 68, 45, 49, 71, 86, 55, 69, 64, 53, 79, 19, 73, 90, 68, 92, 47, 57, 99, 77, 100, 71, 23, 96, 62, 87, 44, 41, 70, 51, 26, 63, 65, 39, 60, 40, 30, 54, 85, 52, 56, 104, 69, 45, 34, 30, 96, 66, 50, 79, 41, 46, 75, 57, 106, 102, 60, 52, 53, 42, 91, 53, 57, 93, 39, 50, 49, 4, 47, 66, 54, 62, 64, 49, 83, 59, 43, 104, 48, 55, 63, 60, 56, 102, 86, 48, 41, 14, 40, 67, 85, 38, 45, 107, 51, 68, 42, 42, 42, 66, 103, 53, 61, 64, 45, 57, 72, 50, 81, 19, 48, 65, 17, 97, 101, 95, 84, 102, 100, 96, 68, 65, 76, 85, 84, 74, 43, 108, 87, 51, 80, 55, 77, 86, 90, 47, 83, 72, 107, 79, 88, 97, 68, 106, 78, 95, 104, 94, 98, 91, 75, 0, 92, 69, 101, 62, 91, 38, 98, 0, 97, 61, 89, 85, 54, 99, 80, 86, 78, 62, 95, 70, 75, 93, 73, 83, 90, 76, 104, 39, 18, 74, 105, 48, 96, 106, 88, 59, 94, 57, 106, 76, 97, 108, 79, 0, 65, 98, 81, 0, 105, 43, 95, 38, 96, 85, 40, 77, 94, 93, 100, 88, 78, 82, 59, 90, 92, 101, 75, 91, 99, 70, 0, 46, 84, 0, 0, 88, 57, 64, 30, 63, 0, 71, 0, 86, 0, 105, 84, 81, 98, 0, 90, 102, 0, 106, 70, 82, 59, 73, 92, 91, 75, 99, 39, 69, 94, 72, 97, 53, 93, 75, 85, 50, 96, 71, 77, 107, 93, 73, 89, 74, 98, 0, 81, 41, 42, 94, 0, 90, 104, 79, 70, 0, 84, 76, 48, 101, 97, 105, 0, 72, 83, 0, 68, 0, 108, 86, 52, 46, 74, 68, 87, 38, 97, 76, 81, 98, 85, 102, 61, 0, 64, 0, 0, 82, 92, 0, 0, 0, 0, 75, 100, 0, 108, 103, 88, 0, 65, 91, 79, 73, 0, 0, 102, 83, 80, 0, 107, 74, 106, 0, 88, 0, 95, 0, 94, 98, 78, 72, 0, 106, 97, 93, 91, 0, 87, 0, 85, 0, 91, 75, 101, 0, 36, 82, 0, 108, 79, 0, 93, 79, 95, 60, 96, 0, 101, 78, 58, 0, 97, 81, 0, 0, 87, 0, 0, 0, 0, 37, 94, 108, 46, 33, 83, 76, 56, 85, 89, 82, 107, 0, 74, 99, 106, 88, 0, 107, 0, 0, 102, 0, 95, 76, 0, 0, 0, 106, 64, 0, 86, 0, 78, 98, 103, 89, 59, 82, 81, 94, 93, 83, 91, 84, 0, 101, 97, 0, 74, 105, 52, 72, 0, 74, 84, 0, 108, 82, 0, 63, 0, 0, 90, 97, 81, 73, 0, 98, 77, 0, 78, 58, 99, 13, 88, 107, 76, 85, 100, 89, 0, 94, 103, 0, 105, 101, 95, 94, 93, 0, 0, 80, 43, 65, 89, 104, 0, 91, 87, 0, 0, 108, 88, 78, 98, 73, 0, 106, 86, 105, 100, 83, 82, 75, 0, 46, 76, 79, 44, 0, 0, 0, 0, 0, 0, 0, 105, 99, 0, 0, 0, 0, 82, 0, 0, 101, 0, 89, 0, 0, 0, 67, 0, 93, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 82, 0, 108, 0, 0, 0, 100, 0, 0, 81, 0, 0, 0, 0, 79, 0, 107, 0, 0, 0, 0, 0, 0, 0, 87, 45, 0, 0, 77, 0, 0, 0, 92, 0, 103, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 46, 0, 102, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 89, 0, 80, 0, 0, 0, 0, 95, 87, 58, 103, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 77, 0, 0, 0, 0, 0, 83, 100, 0, 76, 0, 79, 0, 92, 0, 86, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 86, 103, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 90, 0, 0, 0, 0, 95, 0, 0, 87, 0, 0, 0, 90, 101, 0, 95, 0, 89, 0, 0, 0, 0, 0, 0, 80, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 84, 70, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 87, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; +const float HRAb_396_504_input[] = { +-12.781911708775533, 7.551155800725204, -11.899607043049681, 17.477156604046595, -13.803361319809902, 6.2002990057867589, -15.169569280110601, -17.341522766496183, 9.7107774319996505, 16.641703452581407, 8.4284168541090221, -11.930717934789106, -4.4208828355542424, -1.139969227664315, 17.673081687318597, 16.121750517979301, 3.6219051813553182, -20.05687038213798, -6.5018436610168866, 10.791743071707945, -8.0445304197245111, -8.3324911789627567, 11.41120852689847, -11.282456703274443, -9.2866085578109647, 9.9469665371993603, 15.140667602380192, 3.4450775767841488, 0.64231692247845451, 8.0801244936842966, 5.4636814535382374, -5.0107553707349375, 7.864699294226007, -10.386130310145816, -12.37983397229897, -14.572379771221275, -16.054735647120321, -11.263149256634462, 14.219711467898444, -9.2719771070008434, 8.3099403015379476, -10.148895658714522, 14.726350071572289, -6.8215748913296936, -7.3601951789355757, -15.40290283113702, -11.244311800452268, -7.9961343172040795, 5.1368563973467962, 9.5164063035654909, 8.4155629108106549, 16.014525967886211, 1.699070391185594, 9.954286029615325, 7.6585573567939873, 7.9223054149290961, 7.9198517179714161, 10.631081381345467, 3.2596035260666651, -4.6015483371596497, -9.3597887942885531, 7.6740974245989673, -16.604278204111164, -9.8303898312522513, 1.1205811253439053, 8.119179250191868, 9.5880695910130243, 8.2874878418366773, 6.0797980497495772, -12.937113562007257, -3.1974528849557156, 13.246273287806673, 11.66494172835136, -12.103215889657571, 16.688894677207085, 2.257955028557403, -8.5424956390175151, 12.497318796297906, -9.0900910972806521, 8.2209514183928061, 5.7402258284777101, -20.747034176270887, 3.5631050854868058, 10.395770683064073, -9.868223944850401, -8.6550086233418142, 3.8407639306907768, 11.327546861735177, 13.015569340310336, 25.712163835177048, 13.268816328384831, 4.6584774592149962, -13.317349857427834, 9.5406654991490569, 17.049953586489877, -4.0111152401055641, -11.693122827989608, 7.5370223906338998, 11.277949854414416, -11.498659185019621, 9.549753443463084, -12.055250773523783, -10.739286977821905, 14.136269830595458, -7.782253905067039, 4.9092522955317381, -10.465638951656203, -8.0435611797655167, -6.8433147729593813, -9.0439724403972992, 4.3359408282633236, 11.715689661715617, 19.611494165878462, 7.9190285414926178, -3.4982694249277611, -12.338256249127136, 9.8421320440049662, 4.1138225682471781, 6.4942182289542236, 5.2066961739124622, -9.7070041876701811, -9.1496153713901478, -11.724529081464583, -9.3603341476943687, -5.2966983729936237, -13.015748591796211, -3.8567718830575424, 10.135559234020649, 8.7124846719285305, 15.56420640265349, 11.252060195029108, -5.0089167203318068, 4.8507161178807445, 18.024720595741002, 17.065315044907795, -7.1935844977610666, 4.4815982827009275, -11.880975891281834, -12.172241984932276, 1.5152035384857121, 17.946629562223141, 5.5052899404780824, -13.120278899383999, 10.648236401527056, -14.506377227430642, -10.143170277861179, 14.044470462529238, -9.2254356225576046, -8.8348967562869412, -4.9590358444858067, 9.0535343466316753, 10.897394405658892, 14.0281876034117, 11.255519350361872, -13.859106646040908, 6.4504642887424621, 11.777861578819222, -11.639709904108361, -14.642162922529135, -14.4258126604062, 13.682206617896547, 11.95057687459364, -8.3091459570180035, 10.93961990916042, -11.907964651381601, 12.516150502079761, -13.04991156095979, 14.145576472835312, 10.632785447350683, 12.081094158208353, -6.8485025555270633, -7.6927274273100101, 9.6552183508541098, -8.5591832251882316, 15.638135027982772, 11.926988474833571, -14.987130306515169, 14.812479105542307, -11.914804743109391, 15.824256001061817, -8.5851098252378435, -13.901610955497368, 14.188963140600226, 6.811888787586982, 1.6003053019945943, 19.325203560888092, -13.704678587213907, 0.31402694199929804, 15.989943699374408, 6.0088299172857802, -16.886144255198669, 10.998325725589428, -8.2882779267894371, 2.6453088627011274, 10.412577554382436, -14.426316461418969, 8.1138928008495217, -1.3343532339748365, -20.340051195431247, -8.147129300539568, -2.9761356060569728, -10.375141176280817, -3.492207168269704, 7.9187407777624479, 13.120922417727103, -13.038589243192815, -5.2220329986414589, -15.490400289338059, 17.189589889777995, -7.0721481714310892, 12.581795403076717, 13.235922100360186, -14.068623066472972, 10.590824537759135, -15.881395141726383, -10.457045553712261, -9.8661324776225801, 4.734922703000958, 15.360039696456523, -3.6427404709897195, 12.283954090395133, -10.580773927999571, 0.82767864919701561, -19.322191171106951, -2.4440165020607636, 7.3561450067817269, 8.734912251555226, -10.1437777971503, 11.586163919375755, -15.408234206400728, -13.870410556862536, -16.459582947709787, -6.3237526923701468, 11.608212905773328, 5.6613158220955073, -11.774245858420727, 3.9445738850991399, 11.580625563882155, 4.8206111058017749, 9.1501633745566071, -7.8619603245069358, -10.01135725687336, 13.093956991526415, -16.457925498763061, 8.7995448079979344, -6.8693123471950814, 2.7230849761708642, 14.798365672787927, 5.3137203364492533, 12.867351465034174, 15.542257577290705, 10.701888362195504, -12.387250136917784, -7.2295230408544304, 9.6964847959436913, -9.0249610457078298, -6.1083927724817624, 10.739040854096423, 10.841475540702188, -11.378611500586242, 15.703248605756047, 3.4356087856986508, 9.107640628528733, -10.389742419200251, -13.652754262528372, -8.7325864940958979, -4.1006685083845982, 12.419068901103934, 18.740969634501024, -7.2686574148980894, 15.57081866775636, 7.8740814697714061, -5.3846084718512941, 10.477115100800031, -18.872361222343329, 6.1039069136118798, 17.308178559392783, -7.4815794858402631, -8.6125141656077062, 8.9583151933398391, 15.414391681552324, 11.050241874455013, -12.807870031579375, 9.0363612736996224, 15.816822937315944, 7.8444181915777751, 9.1766300505397727, 14.827248874904317, 10.059358980544847, 8.1004443450218631, -9.9138353480289823, -12.69584064620971, -1.2480517929964754, 4.9462685565954452, -11.001361577099411, -14.645415102047146, -8.290528664203066, -6.5125802605593295, -9.2390284023464098, -9.6219279810207716, -2.4663308852408137, 7.9284843220778702, -10.739866570047806, 6.0027860732461509, 6.1871445421636109, -7.2396227218981295, -16.909239064069116, 8.0605318273056952, -13.18199180405694, 11.423481528527208, 6.103394660237238, 11.02891865005909, -9.0418767418601025, -12.498971584987439, 20.946414970644234, 24.362523031251186, 4.928071385179801, -9.8370658808205729, 14.539073682029368, 1.2645116781629737, 14.426946417515435, 10.026504861776269, 10.448998607938103, 10.006313240241793, 11.891150094820924, 8.8375576186697344, 8.5771389584190558, -15.536407780091233, 13.349864120336063, -11.927556110752052, 16.068268030243942, 18.193338642202377, -11.869068102320544, 13.808406661021646, 11.216260613445977, -15.515968362285809, -14.909791180531339, -10.071410710917538, -5.5399590746720264, -14.934775635718978, 14.30539374658337, 7.3819695117708113, 7.7868368821638674, 15.432743081832081, -2.5950994414982973, -12.476581448977271, -1.6564415840602271, -10.295779594978484, 4.7085935460142574, 12.24789018308865, 16.925819961116584, -18.384663719107415, -14.057276635303813, -5.8146990314358709, 6.5631719088139118, 12.127149794502795, -15.739169438478982, 7.8271230641312846, -5.9606533200021854, 9.8721062001112347, 10.486834679901543, 6.3494439660436246, 9.9429692254989686, 19.542594690444115, 4.5180797153308676, -19.1566652225201, 15.006372860965323, -15.300035248621157, 9.7589319143789801, -4.7363679865964263, 5.3999824517855961, 8.0578934432355496, -19.385015013376869, -14.161802280526608, -12.881654979775632, -12.049094820078055, -5.3829315859449007, -7.3537414475927241, 6.844714008315254, -10.931623197527411, -10.939763582880817, -13.62500540625687, 20.49307277175809, 10.365734953239752, 4.0663542658207543, 15.929076113588478, -10.288951069929114, 7.8742158721474977, -1.422979120612724, -14.104879669064141, -4.55280623980281, -8.1653075636365458, 14.147963542838651, -13.933332225643916, 14.226165096278136, -13.375191283046002, 9.2088912804672614, 10.933675274282887, -9.9392697991816448, -16.955582876153894, -11.85793097786863, 5.8569767257292948, 6.6660744272807806, -4.6888969930553994, 20.646624453011015, -1.2485466035357267, 6.7572930222337293, -11.830468070632643, 12.387424895419418, -18.508514302306494, -15.324824129201243, 5.0862404533417127, -5.2707864200417625, -14.224777968048254, 7.6291208613793344, 5.0046921384732324, 7.9969106436802599, -14.577995568165489, 8.1080228274897834, 12.603861058845251, 11.220434316666585, -5.7247050938128154, 11.912056122344682, 0.10886944478234604, 9.3619646262630898, -7.7302663627879742, 14.530248266518536, -15.658478259515816, -1.2907403171529221, -6.3207955318188116, 15.484693780278064, 12.036254202990973, 4.6560888684896602, 7.678255286975908, 9.4289524624102352, 11.319695981517606, -5.4092744871032599, 6.6896098743454493, 2.1792109184280051, -11.081376849744698, -10.411817839842012, 11.057139193661996, 10.674844657971892, -7.611917928843007, -7.7114315734656405, -10.25566388330579, -9.5816821583841509, -3.8229805246413409, -9.4360724513005252, 8.5081398584333474, 12.93470424207193, -12.400231194882618, -9.4258414862069788, 21.836201624323113, 9.6722027120607468, -11.684243881860825, 11.18326004371732, 9.8228033099036569, -1.6298761838573241, -14.006557406509664, 3.2619201008452663, 3.9694393534038981, -8.8928237386570181, 6.2844903665726015, -4.7494171442219395, 5.9437023484394249, 13.979025508842865, -14.044878091079713, -4.9661838171055548, 7.6707889728317591, -4.2457033821315688, -1.3421305197348499, 4.9933591178833261, 1.5425117319878872, -17.930315353239411, 12.197719685382262, -5.947358941151732, -12.904626563212007, 6.1763577253014788, 16.076852398625185, 8.2709163525181015, -15.422610935202506, 10.890948687642558, -9.9461592598413802, 6.34551493463914, -15.578427358705113, 15.918090853090177, 9.9516599357932982, -3.9346680898413688, 5.3410774271588748, 11.920077938590593, -2.4538357241090294, -11.163446342656663, -10.488287129167166, -12.749714598521885, 5.4035140611182522, -7.3998902697733975, 8.1911994226222173, -6.178143732667059, 7.1909081188653348, -16.467787621055525, 7.5865191569782464, 15.269036731801625, -8.469922589870114 +}; +const char HRAb_396_504_detected_data[] = { +1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 +}; diff --git a/src/HRAb_396_504.h b/src/HRAb_396_504.h new file mode 100644 index 0000000..3ff3f94 --- /dev/null +++ b/src/HRAb_396_504.h @@ -0,0 +1,19 @@ +/* + FILE....: HRAb_396_504.h + + Static arrays for LDPC codec HRAb_396_504, generated by ldpc_gen_c_h_file.m. +*/ + +#define HRAb_396_504_NUMBERPARITYBITS 108 +#define HRAb_396_504_MAX_ROW_WEIGHT 12 +#define HRAb_396_504_CODELENGTH 504 +#define HRAb_396_504_NUMBERROWSHCOLS 396 +#define HRAb_396_504_MAX_COL_WEIGHT 7 +#define HRAb_396_504_DEC_TYPE 0 +#define HRAb_396_504_MAX_ITER 100 + +extern const uint16_t HRAb_396_504_H_rows[]; +extern const uint16_t HRAb_396_504_H_cols[]; +extern const float HRAb_396_504_input[]; +extern const char HRAb_396_504_detected_data[]; + diff --git a/src/H_1024_2048_4f.c b/src/H_1024_2048_4f.c new file mode 100644 index 0000000..7d01c4f --- /dev/null +++ b/src/H_1024_2048_4f.c @@ -0,0 +1,16 @@ +/* + FILE....: H_1024_2048_4f.c + + Static arrays for LDPC codec H_1024_2048_4f, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_1024_2048_4f.h" + +const uint16_t H_1024_2048_4f_H_rows[] = { +16, 7, 138, 40, 212, 23, 7, 53, 14, 43, 2, 74, 7, 107, 74, 14, 38, 190, 13, 114, 157, 38, 223, 64, 43, 26, 64, 52, 15, 71, 26, 20, 15, 213, 114, 154, 2, 55, 39, 165, 14, 133, 96, 5, 9, 13, 54, 105, 30, 8, 17, 100, 25, 20, 95, 18, 46, 6, 36, 95, 563, 32, 80, 141, 89, 58, 24, 7, 143, 83, 140, 12, 94, 52, 202, 9, 22, 30, 52, 61, 11, 32, 34, 153, 13, 120, 36, 204, 72, 332, 42, 59, 91, 4, 74, 28, 12, 145, 24, 60, 26, 13, 116, 48, 42, 34, 29, 14, 6, 2, 226, 72, 124, 23, 76, 177, 132, 12, 177, 13, 126, 68, 388, 35, 1, 5, 40, 14, 45, 17, 10, 76, 34, 186, 44, 97, 6, 119, 59, 9, 39, 125, 59, 79, 102, 42, 5, 58, 66, 1, 35, 165, 154, 71, 218, 91, 11, 13, 8, 141, 126, 63, 58, 11, 8, 201, 96, 17, 40, 81, 35, 78, 94, 107, 143, 201, 40, 4, 217, 1, 110, 124, 49, 222, 121, 41, 52, 85, 157, 5, 93, 83, 84, 81, 34, 33, 63, 193, 43, 27, 70, 12, 97, 149, 12, 79, 17, 27, 57, 34, 18, 130, 25, 26, 91, 3, 59, 60, 74, 6, 14, 70, 67, 204, 10, 51, 31, 56, 104, 50, 72, 196, 18, 83, 69, 11, 15, 12, 92, 103, 215, 108, 84, 39, 67, 55, 16, 36, 158, 90, 100, 127, 206, 31, 77, 122, 183, 26, 36, 22, 114, 81, 46, 12, 118, 22, 61, 160, 129, 53, 191, 2, 21, 56, 130, 2, 12, 16, 74, 56, 36, 169, 41, 61, 16, 73, 2, 56, 31, 25, 169, 8, 159, 62, 82, 217, 9, 29, 61, 27, 39, 43, 135, 24, 18, 221, 5, 83, 112, 184, 19, 16, 9, 7, 66, 32, 1, 28, 95, 84, 14, 86, 71, 132, 3, 35, 58, 26, 45, 131, 10, 27, 21, 16, 68, 41, 3, 48, 20, 28, 68, 87, 22, 39, 20, 123, 46, 33, 15, 165, 205, 55, 34, 139, 114, 79, 75, 90, 129, 10, 12, 38, 20, 158, 4, 71, 20, 32, 46, 121, 4, 12, 33, 41, 6, 135, 25, 27, 45, 95, 141, 29, 6, 80, 116, 5, 138, 47, 110, 90, 44, 4, 19, 10, 55, 32, 45, 111, 60, 121, 32, 164, 66, 23, 4, 25, 167, 217, 119, 141, 49, 40, 124, 52, 27, 54, 15, 39, 48, 5, 107, 69, 10, 65, 32, 59, 33, 13, 26, 225, 11, 13, 23, 211, 24, 18, 81, 108, 81, 179, 100, 1, 135, 12, 32, 90, 64, 12, 35, 80, 48, 17, 46, 67, 66, 20, 8, 237, 63, 75, 102, 50, 83, 230, 45, 142, 75, 20, 59, 7, 10, 89, 106, 207, 69, 41, 197, 122, 1, 26, 109, 2, 145, 153, 166, 39, 71, 17, 144, 13, 9, 147, 20, 99, 12, 4, 43, 57, 157, 1, 88, 150, 91, 3, 11, 70, 123, 176, 3, 6, 39, 21, 30, 43, 10, 19, 68, 1, 70, 45, 167, 83, 116, 57, 34, 7, 51, 71, 70, 66, 49, 10, 117, 66, 38, 7, 9, 19, 39, 44, 58, 369, 21, 135, 7, 13, 123, 7, 60, 104, 65, 8, 101, 142, 105, 35, 48, 28, 22, 139, 151, 27, 436, 37, 89, 230, 92, 36, 72, 37, 45, 50, 22, 16, 69, 55, 35, 97, 28, 46, 15, 16, 25, 42, 156, 10, 42, 57, 221, 15, 99, 64, 31, 143, 138, 29, 99, 8, 81, 94, 76, 96, 107, 20, 6, 23, 58, 33, 6, 216, 33, 121, 64, 36, 18, 2, 148, 35, 72, 2, 169, 102, 15, 233, 57, 229, 53, 23, 68, 73, 26, 144, 9, 75, 18, 53, 23, 727, 30, 18, 14, 111, 5, 26, 53, 23, 30, 135, 2, 60, 51, 62, 85, 202, 2, 48, 18, 21, 103, 67, 82, 57, 86, 27, 19, 107, 42, 37, 66, 19, 61, 56, 76, 8, 10, 43, 19, 4, 29, 79, 36, 19, 70, 63, 25, 19, 7, 21, 5, 37, 39, 47, 92, 28, 24, 188, 30, 60, 11, 146, 49, 17, 62, 3, 28, 4, 146, 14, 47, 59, 30, 80, 46, 49, 67, 249, 98, 86, 174, 20, 8, 6, 139, 127, 51, 62, 17, 85, 68, 60, 44, 113, 118, 171, 80, 44, 15, 38, 70, 51, 11, 99, 5, 6, 85, 35, 230, 113, 4, 152, 107, 31, 28, 41, 184, 10, 27, 69, 58, 68, 100, 24, 148, 78, 4, 62, 38, 140, 112, 16, 130, 17, 21, 40, 35, 40, 111, 230, 31, 14, 109, 4, 69, 61, 85, 17, 117, 125, 90, 65, 37, 7, 46, 29, 41, 87, 11, 53, 80, 209, 75, 55, 8, 38, 86, 19, 190, 52, 28, 38, 169, 72, 81, 32, 65, 149, 5, 46, 101, 124, 60, 181, 33, 56, 32, 44, 9, 46, 9, 70, 96, 8, 1, 3, 130, 21, 22, 115, 43, 9, 44, 49, 63, 94, 152, 15, 162, 87, 196, 28, 34, 230, 44, 31, 86, 183, 67, 5, 102, 120, 89, 26, 53, 34, 62, 54, 30, 17, 58, 50, 65, 110, 21, 3, 77, 22, 11, 6, 1, 11, 7, 472, 66, 6, 1, 5, 26, 82, 50, 73, 17, 35, 47, 65, 137, 66, 3, 91, 29, 64, 1, 155, 27, 89, 31, 49, 176, 21, 43, 41, 82, 147, 13, 54, 25, 33, 45, 390, 54, 93, 26, 2, 70, 38, 18, 170, 11, 30, 44, 70, 3, 77, 73, 14, 32, 2, 46, 25, 178, 38, 75, 81, 2, 212, 9, 24, 36, 175, 71, 49, 3, 1, 65, 84, 40, 29, 162, 67, 116, 172, 119, 71, 208, 9, 72, 23, 29, 49, 103, 75, 4, 76, 132, 13, 180, 53, 44, 7, 98, 88, 169, 27, 3, 22, 64, 120, 84, 200, 52, 116, 13, 22, 76, 1, 27, 290, 185, 159, 8, 36, 62, 8, 3, 177, 88, 98, 41, 58, 25, 15, 145, 118, 36, 80, 105, 3, 4, 168, 88, 47, 23, 61, 6, 37, 184, 47, 167, 104, 248, 210, 33, 215, 158, 128, 24, 89, 37, 194, 115, 50, 128, 199, 30, 219, 187, 55, 255, 166, 103, 112, 83, 55, 101, 93, 84, 87, 29, 285, 132, 230, 92, 197, 233, 200, 23, 147, 170, 87, 59, 22, 62, 136, 48, 233, 42, 136, 220, 63, 153, 23, 112, 39, 421, 111, 589, 69, 100, 161, 145, 132, 43, 104, 180, 95, 208, 29, 167, 90, 223, 30, 168, 94, 230, 149, 131, 125, 57, 218, 88, 149, 84, 216, 78, 544, 63, 77, 142, 153, 205, 117, 40, 194, 32, 75, 131, 46, 154, 207, 47, 38, 230, 57, 24, 71, 393, 106, 143, 40, 77, 266, 147, 42, 316, 182, 396, 123, 533, 53, 111, 42, 171, 43, 164, 76, 15, 462, 49, 206, 129, 354, 163, 138, 96, 142, 101, 161, 68, 142, 103, 180, 130, 85, 178, 129, 47, 167, 171, 159, 283, 95, 88, 24, 186, 205, 199, 233, 140, 14, 199, 261, 176, 88, 41, 89, 101, 121, 347, 119, 197, 204, 179, 15, 344, 78, 227, 188, 82, 522, 139, 45, 108, 230, 184, 86, 104, 107, 117, 401, 87, 91, 192, 199, 48, 51, 168, 76, 136, 164, 21, 83, 28, 79, 131, 184, 64, 175, 30, 106, 129, 51, 224, 152, 78, 48, 118, 73, 105, 487, 18, 118, 60, 134, 220, 209, 134, 374, 33, 228, 164, 18, 68, 18, 109, 174, 218, 352, 482, 73, 76, 171, 35, 234, 180, 115, 126, 213, 233, 73, 216, 166, 193, 92, 75, 214, 175, 87, 102, 51, 198, 33, 150, 231, 213, 150, 215, 13, 143, 234, 168, 123, 86, 76, 146, 180, 79, 192, 159, 144, 21, 123, 20, 98, 228, 71, 191, 22, 186, 114, 134, 346, 16, 112, 79, 37, 86, 166, 198, 39, 35, 774, 215, 150, 126, 212, 45, 39, 62, 79, 217, 74, 16, 51, 99, 104, 106, 96, 85, 134, 18, 55, 67, 156, 200, 205, 210, 78, 93, 217, 69, 87, 16, 174, 72, 138, 74, 206, 235, 207, 118, 180, 126, 36, 61, 204, 208, 129, 85, 189, 142, 213, 144, 134, 200, 113, 201, 107, 220, 175, 11, 120, 56, 80, 110, 220, 110, 195, 74, 94, 86, 212, 63, 57, 56, 216, 169, 54, 137, 97, 137, 15, 144, 65, 193, 187, 73, 71, 23, 20, 95, 56, 115, 149, 207, 204, 61, 219, 127, 54, 24, 184, 232, 358, 348, 216, 233, 42, 157, 110, 145, 82, 214, 113, 233, 71, 188, 77, 52, 142, 137, 64, 44, 54, 31, 228, 162, 37, 70, 346, 55, 116, 92, 127, 150, 195, 127, 57, 231, 133, 63, 103, 108, 183, 144, 147, 119, 53, 51, 104, 119, 233, 23, 443, 90, 88, 209, 147, 98, 306, 111, 225, 601, 195, 108, 92, 27, 113, 175, 218, 187, 58, 213, 289, 110, 43, 458, 80, 160, 158, 193, 157, 114, 62, 363, 62, 161, 207, 177, 125, 158, 99, 79, 229, 219, 5, 99, 169, 234, 105, 12, 92, 147, 198, 173, 109, 93, 165, 63, 82, 16, 327, 72, 107, 114, 146, 177, 88, 175, 71, 161, 61, 116, 78, 183, 69, 125, 43, 360, 93, 62, 10, 91, 149, 188, 53, 119, 383, 169, 178, 96, 35, 134, 113, 209, 114, 229, 97, 115, 146, 139, 100, 54, 79, 110, 244, 160, 74, 461, 93, 123, 297, 104, 202, 73, 65, 54, 96, 32, 42, 646, 91, 52, 207, 128, 55, 19, 40, 115, 87, 163, 40, 166, 191, 429, 16, 159, 274, 68, 189, 153, 37, 216, 226, 138, 158, 92, 155, 135, 153, 31, 289, 99, 134, 41, 218, 139, 127, 184, 78, 30, 48, 226, 50, 226, 87, 390, 124, 225, 264, 139, 292, 142, 59, 110, 98, 52, 212, 111, 147, 25, 98, 230, 804, 221, 220, 80, 118, 31, 28, 81, 45, 34, 202, 157, 74, 177, 190, 100, 204, 57, 51, 107, 44, 117, 212, 129, 207, 98, 29, 51, 113, 60, 216, 223, 115, 70, 203, 185, 209, 158, 84, 79, 8, 214, 121, 85, 103, 95, 66, 55, 44, 164, 26, 10, 142, 50, 102, 346, 83, 25, 205, 96, 151, 19, 198, 148, 56, 78, 177, 208, 37, 235, 97, 132, 102, 168, 466, 47, 53, 79, 367, 164, 131, 229, 139, 81, 141, 204, 167, 150, 87, 49, 142, 101, 84, 233, 212, 124, 206, 84, 60, 17, 53, 109, 514, 69, 211, 193, 67, 120, 41, 275, 115, 76, 173, 146, 200, 55, 158, 189, 124, 234, 132, 178, 219, 103, 165, 162, 116, 142, 100, 54, 153, 144, 145, 194, 233, 47, 57, 162, 178, 215, 281, 77, 124, 186, 19, 75, 78, 140, 86, 208, 230, 155, 110, 118, 171, 109, 157, 221, 125, 31, 85, 86, 301, 106, 164, 14, 50, 178, 40, 223, 62, 85, 91, 217, 100, 82, 33, 81, 253, 24, 69, 176, 133, 137, 209, 34, 154, 64, 54, 82, 68, 38, 87, 129, 140, 17, 24, 133, 109, 58, 231, 61, 141, 121, 50, 117, 129, 155, 78, 168, 128, 232, 108, 131, 235, 149, 184, 207, 208, 147, 52, 168, 199, 205, 173, 76, 64, 188, 207, 59, 160, 103, 93, 166, 134, 96, 136, 121, 159, 155, 68, 238, 109, 112, 542, 75, 33, 52, 28, 54, 136, 108, 89, 66, 90, 64, 130, 223, 122, 19, 133, 81, 77, 138, 234, 34, 235, 103, 230, 181, 232, 65, 69, 119, 181, 134, 283, 101, 205, 79, 411, 94, 105, 80, 146, 72, 46, 24, 173, 21, 108, 128, 89, 48, 149, 191, 30, 73, 82, 63, 104, 224, 58, 222, 117, 31, 213, 22, 141, 459, 467, 84, 83, 36, 106, 89, 116, 49, 57, 192, 101, 186, 200, 217, 90, 759, 69, 228, 31, 122, 88, 118, 122, 133, 155, 148, 100, 203, 91, 63, 29, 158, 179, 194, 44, 14, 203, 205, 704, 220, 202, 149, 127, 206, 48, 78, 37, 90, 490, 227, 230, 42, 98, 138, 9, 21, 224, 220, 133, 105, 179, 29, 92, 579, 207, 40, 228, 132, 61, 55, 172, 93, 129, 159, 189, 20, 87, 398, 111, 219, 120, 588, 226, 90, 221, 199, 193, 261, 215, 181, 206, 165, 53, 355, 211, 47, 222, 215, 60, 524, 295, 106, 162, 196, 77, 195, 125, 135, 110, 36, 400, 509, 251, 174, 214, 336, 203, 92, 208, 292, 99, 370, 147, 272, 154, 83, 388, 51, 162, 235, 64, 636, 124, 173, 65, 586, 227, 654, 161, 112, 223, 190, 201, 156, 121, 223, 172, 223, 172, 217, 91, 455, 37, 233, 106, 256, 211, 163, 127, 65, 247, 154, 213, 132, 231, 175, 585, 74, 84, 235, 437, 228, 212, 67, 208, 58, 199, 197, 79, 412, 229, 337, 136, 459, 175, 212, 127, 440, 113, 209, 52, 109, 490, 170, 94, 431, 201, 425, 181, 794, 157, 150, 141, 185, 117, 441, 80, 45, 722, 67, 218, 178, 509, 174, 150, 98, 151, 102, 188, 71, 143, 137, 329, 309, 116, 544, 223, 119, 175, 317, 445, 352, 207, 142, 604, 351, 206, 452, 282, 219, 25, 234, 474, 178, 747, 165, 207, 200, 378, 885, 128, 233, 603, 203, 173, 354, 172, 302, 261, 171, 657, 613, 47, 131, 770, 194, 146, 123, 189, 157, 907, 104, 152, 617, 202, 235, 67, 184, 105, 140, 170, 25, 111, 201, 92, 152, 224, 161, 208, 109, 141, 156, 128, 325, 165, 113, 112, 178, 116, 222, 540, 78, 120, 234, 168, 358, 503, 139, 811, 51, 383, 232, 98, 76, 41, 122, 194, 282, 398, 623, 77, 108, 368, 89, 236, 215, 218, 309, 719, 252, 176, 333, 224, 215, 99, 136, 230, 182, 118, 170, 96, 466, 104, 182, 239, 230, 205, 226, 235, 161, 286, 198, 136, 283, 88, 297, 403, 215, 218, 170, 164, 34, 168, 49, 211, 229, 187, 306, 72, 208, 201, 493, 611, 136, 192, 99, 175, 161, 178, 260, 150, 151, 935, 225, 180, 243, 222, 50, 72, 77, 84, 347, 102, 49, 60, 149, 229, 160, 135, 136, 235, 221, 234, 137, 171, 227, 233, 223, 137, 159, 353, 138, 101, 208, 181, 93, 143, 75, 220, 352, 393, 119, 196, 224, 38, 163, 212, 211, 142, 196, 197, 148, 393, 209, 199, 284, 126, 203, 121, 355, 212, 38, 311, 124, 109, 124, 233, 150, 473, 202, 152, 90, 472, 176, 117, 90, 710, 319, 63, 199, 122, 216, 22, 168, 100, 204, 205, 96, 117, 34, 61, 98, 108, 145, 152, 327, 205, 151, 226, 230, 112, 442, 210, 330, 708, 781, 569, 608, 446, 206, 163, 229, 139, 224, 138, 714, 77, 228, 81, 112, 145, 230, 210, 120, 163, 37, 240, 219, 185, 182, 475, 310, 159, 102, 139, 237, 199, 132, 230, 356, 167, 126, 138, 154, 211, 145, 230, 203, 111, 181, 278, 201, 353, 100, 715, 142, 94, 242, 213, 763, 392, 221, 302, 958, 198, 159, 95, 47, 192, 176, 264, 356, 230, 238, 482, 125, 111, 550, 83, 204, 163, 231, 224, 204, 117, 428, 66, 162, 231, 194, 129, 988, 175, 171, 299, 231, 46, 156, 188, 319, 108, 115, 129, 153, 252, 339, 110, 146, 197, 69, 94, 28, 632, 192, 117, 203, 159, 222, 115, 408, 209, 212, 160, 123, 97, 217, 126, 176, 73, 652, 427, 409, 11, 127, 202, 227, 87, 210, 682, 210, 179, 154, 63, 170, 143, 223, 174, 232, 99, 230, 181, 214, 111, 155, 144, 213, 540, 176, 194, 684, 98, 131, 384, 112, 374, 74, 211, 156, 122, 97, 153, 648, 165, 121, 214, 234, 209, 27, 95, 229, 170, 234, 59, 229, 213, 523, 365, 280, 711, 166, 205, 181, 72, 232, 434, 187, 328, 141, 231, 161, 230, 45, 438, 117, 160, 56, 220, 200, 221, 190, 173, 97, 224, 483, 77, 360, 140, 535, 227, 477, 426, 147, 511, 231, 115, 211, 143, 178, 218, 137, 169, 106, 137, 591, 830, 232, 696, 156, 143, 32, 227, 204, 48, 531, 597, 234, 106, 188, 258, 188, 232, 206, 103, 200, 453, 131, 387, 228, 224, 103, 163, 432, 176, 73, 504, 231, 159, 74, 210, 208, 238, 171, 152, 96, 64, 235, 170, 99, 162, 130, 226, 58, 116, 476, 83, 140, 153, 413, 123, 833, 86, 42, 213, 112, 166, 127, 211, 153, 174, 127, 192, 229, 162, 571, 186, 151, 130, 229, 515, 113, 59, 80, 453, 277, 190, 385, 206, 232, 227, 211, 233, 202, 91, 179, 193, 223, 222, 712, 456, 158, 651, 233, 124, 74, 230, 207, 644, 101, 233, 230, 98, 133, 184, 750, 170, 116, 203, 182, 220, 161, 505, 231, 419, 340, 214, 217, 250, 155, 213, 209, 226, 215, 152, 148, 520, 182, 147, 296, 241, 212, 154, 249, 230, 538, 399, 131, 225, 201, 268, 180, 106, 187, 109, 221, 710, 183, 157, 174, 191, 217, 185, 229, 179, 41, 97, 234, 563, 207, 321, 59, 56, 202, 73, 365, 133, 166, 105, 679, 118, 113, 235, 109, 636, 67, 130, 212, 217, 160, 273, 47, 158, 168, 154, 90, 197, 73, 102, 162, 344, 226, 110, 225, 194, 68, 371, 76, 204, 135, 91, 204, 133, 219, 100, 208, 230, 291, 174, 217, 407, 224, 193, 215, 219, 177, 171, 780, 208, 214, 230, 83, 113, 688, 226, 212, 183, 136, 114, 185, 203, 105, 181, 209, 177, 179, 194, 269, 114, 118, 590, 151, 93, 85, 180, 118, 164, 215, 120, 67, 269, 155, 164, 302, 334, 77, 214, 95, 114, 372, 331, 173, 417, 128, 336, 218, 268, 320, 146, 126, 228, 191, 633, 551, 222, 209, 670, 188, 625, 94, 203, 125, 263, 62, 179, 92, 134, 136, 144, 95, 181, 209, 39, 130, 112, 128, 172, 372, 102, 404, 178, 33, 235, 113, 198, 831, 556, 217, 140, 170, 359, 118, 155, 66, 107, 203, 126, 209, 234, 227, 141, 804, 149, 235, 691, 227, 92, 170, 148, 203, 197, 166, 120, 204, 109, 89, 148, 306, 196, 202, 91, 45, 208, 221, 709, 362, 219, 157, 202, 564, 75, 177, 50, 119, 723, 231, 778, 120, 130, 172, 85, 50, 289, 520, 326, 131, 186, 60, 128, 664, 628, 54, 346, 155, 201, 101, 310, 162, 163, 175, 219, 114, 155, 738, 141, 353, 128, 595, 246, 182, 227, 230, 195, 417, 267, 241, 232, 179, 234, 808, 244, 165, 224, 377, 72, 645, 446, 163, 262, 234, 205, 197, 685, 221, 174, 42, 611, 667, 287, 186, 225, 573, 879, 94, 227, 523, 106, 786, 279, 320, 156, 187, 734, 89, 177, 467, 65, 835, 180, 400, 143, 630, 370, 706, 210, 149, 253, 490, 222, 220, 166, 345, 224, 234, 174, 324, 132, 706, 56, 326, 137, 321, 215, 226, 165, 921, 258, 195, 287, 140, 492, 214, 627, 187, 89, 293, 497, 275, 216, 140, 233, 70, 213, 377, 122, 545, 307, 358, 172, 827, 181, 627, 172, 592, 161, 230, 123, 136, 575, 233, 134, 667, 217, 576, 198, 975, 395, 159, 270, 222, 139, 510, 139, 107, 999, 114, 219, 185, 536, 273, 152, 125, 227, 201, 207, 169, 208, 212, 583, 735, 125, 951, 248, 183, 537, 421, 513, 404, 454, 164, 842, 485, 225, 748, 486, 310, 65, 362, 870, 309, 932, 231, 624, 478, 448, 956, 171, 328, 654, 666, 221, 581, 232, 650, 454, 270, 724, 819, 99, 177, 817, 216, 218, 126, 210, 205, 920, 364, 177, 930, 205, 610, 133, 195, 129, 192, 225, 82, 120, 301, 202, 166, 321, 228, 326, 123, 543, 193, 151, 342, 226, 136, 148, 647, 465, 245, 928, 82, 230, 318, 342, 392, 932, 157, 859, 68, 742, 296, 146, 112, 127, 223, 203, 437, 557, 805, 137, 416, 374, 105, 332, 773, 222, 790, 916, 419, 192, 443, 311, 337, 498, 218, 519, 189, 135, 216, 113, 512, 119, 193, 831, 233, 633, 395, 266, 416, 497, 209, 322, 363, 101, 515, 863, 584, 468, 203, 204, 106, 189, 86, 230, 389, 318, 313, 88, 222, 232, 594, 677, 146, 211, 234, 336, 206, 218, 330, 399, 231, 947, 511, 207, 380, 308, 134, 133, 86, 88, 362, 214, 108, 94, 549, 652, 459, 167, 165, 572, 908, 571, 164, 203, 361, 284, 390, 200, 190, 672, 231, 156, 544, 278, 94, 217, 150, 380, 391, 578, 163, 219, 277, 43, 411, 219, 287, 379, 503, 232, 244, 488, 278, 214, 414, 566, 271, 122, 470, 357, 154, 642, 164, 232, 156, 421, 229, 712, 206, 468, 168, 640, 196, 120, 131, 807, 371, 70, 232, 194, 233, 50, 203, 146, 478, 307, 194, 160, 101, 209, 182, 187, 191, 158, 678, 230, 648, 576, 456, 174, 524, 254, 584, 725, 935, 594, 665, 798, 507, 275, 519, 255, 479, 238, 760, 144, 230, 97, 299, 179, 497, 452, 144, 744, 61, 471, 220, 616, 220, 566, 990, 225, 752, 152, 458, 209, 153, 403, 439, 220, 143, 210, 379, 436, 237, 333, 216, 161, 201, 325, 202, 903, 201, 904, 468, 130, 497, 373, 898, 422, 246, 385, 1016, 216, 211, 218, 154, 199, 574, 771, 521, 568, 424, 597, 160, 229, 1007, 144, 531, 165, 245, 230, 469, 225, 718, 159, 392, 268, 714, 201, 995, 209, 205, 549, 542, 104, 206, 201, 640, 126, 147, 148, 221, 451, 542, 191, 185, 217, 172, 187, 56, 675, 300, 247, 226, 172, 230, 211, 600, 256, 229, 207, 138, 150, 685, 200, 213, 225, 849, 962, 845, 151, 130, 230, 500, 203, 218, 968, 216, 594, 354, 169, 212, 163, 333, 227, 239, 126, 878, 210, 715, 248, 209, 267, 277, 886, 235, 230, 988, 194, 149, 424, 150, 420, 81, 219, 176, 182, 105, 412, 658, 253, 752, 444, 573, 412, 48, 137, 233, 223, 322, 134, 234, 656, 905, 514, 694, 738, 230, 394, 223, 80, 428, 638, 508, 522, 193, 495, 183, 231, 575, 496, 189, 181, 214, 466, 230, 357, 225, 182, 103, 232, 533, 171, 531, 183, 845, 232, 606, 515, 160, 764, 350, 219, 561, 231, 596, 396, 183, 242, 128, 188, 681, 907, 328, 786, 170, 145, 78, 728, 228, 66, 735, 702, 396, 107, 231, 303, 235, 256, 211, 140, 643, 700, 464, 407, 298, 401, 123, 196, 670, 732, 82, 718, 568, 217, 104, 337, 230, 617, 274, 201, 210, 242, 257, 227, 169, 215, 135, 300, 156, 131, 691, 104, 195, 186, 415, 202, 872, 93, 57, 624, 163, 173, 190, 314, 183, 228, 217, 216, 422, 210, 771, 217, 219, 152, 635, 841, 355, 197, 127, 634, 740, 220, 650, 226, 322, 235, 229, 261, 213, 122, 187, 194, 494, 392, 947, 684, 234, 686, 311, 190, 294, 353, 255, 871, 477, 299, 423, 224, 148, 185, 835, 214, 143, 214, 202, 397, 168, 607, 288, 451, 590, 276, 231, 419, 167, 651, 216, 285, 216, 160, 360, 697, 195, 154, 313, 611, 243, 375, 388, 541, 625, 929, 259, 318, 304, 279, 289, 132, 226, 203, 487, 749, 203, 340, 296, 566, 230, 198, 235, 205, 111, 108, 683, 577, 221, 382, 204, 95, 211, 169, 540, 189, 445, 208, 887, 225, 203, 680, 618, 809, 138, 151, 562, 240, 162, 456, 170, 161, 329, 232, 180, 200, 144, 295, 180, 364, 546, 172, 236, 218, 439, 401, 100, 511, 171, 124, 235, 425, 235, 176, 380, 590, 314, 175, 627, 490, 423, 797, 347, 480, 381, 196, 931, 325, 428, 608, 122, 121, 724, 527, 214, 230, 223, 164, 214, 207, 168, 203, 377, 218, 481, 209, 841, 330, 128, 759, 376, 221, 211, 220, 133, 205, 235, 221, 152, 565, 173, 212, 434, 599, 341, 355, 151, 191, 649, 547, 198, 635, 207, 668, 242, 276, 695, 177, 141, 251, 413, 683, 587, 231, 368, 876, 304, 659, 211, 433, 196, 343, 115, 206, 97, 222, 291, 151, 107, 234, 450, 75, 148, 145, 137, 307, 493, 135, 504, 206, 59, 508, 232, 218, 881, 833, 431, 143, 230, 482, 196, 182, 117, 220, 217, 158, 210, 387, 282, 562, 901, 207, 614, 894, 679, 368, 185, 214, 510, 295, 281, 212, 419, 212, 591, 206, 383, 230, 220, 216, 122, 225, 337, 870, 629, 522, 217, 208, 681, 115, 243, 683, 172, 927, 266, 810, 123, 144, 182, 215, 52, 359, 572, 609, 211, 520, 440, 156, 737, 669, 211, 631, 229, 518, 111, 620, 232, 216, 215, 484, 313, 190, 1013, 179, 604, 225, 749, 760, 339, 262, 473, 210, 620, 812, 858, 563, 245, 241, 854, 266, 192, 304, 564, 103, 0, 505, 192, 349, 443, 223, 204, 807, 223, 234, 205, 896, 808, 469, 309, 567, 698, 972, 183, 246, 909, 226, 832, 543, 535, 173, 208, 777, 219, 196, 523, 97, 997, 211, 556, 183, 839, 560, 0, 224, 198, 506, 514, 632, 226, 852, 625, 746, 235, 343, 474, 495, 1022, 173, 725, 450, 669, 613, 345, 298, 1015, 293, 223, 517, 837, 735, 262, 0, 232, 93, 501, 821, 637, 230, 202, 250, 106, 458, 713, 132, 726, 524, 567, 191, 859, 232, 824, 219, 888, 333, 472, 779, 180, 917, 372, 161, 730, 327, 0, 235, 0, 445, 206, 291, 233, 191, 622, 252, 114, 1015, 119, 389, 207, 692, 363, 190, 126, 413, 541, 219, 221, 228, 271, 836, 752, 145, 1013, 682, 222, 757, 707, 982, 856, 494, 474, 844, 580, 400, 1020, 829, 454, 95, 562, 984, 502, 998, 406, 779, 684, 479, 0, 208, 373, 663, 776, 516, 830, 335, 720, 651, 314, 0, 957, 204, 693, 848, 260, 489, 460, 217, 434, 955, 536, 204, 0, 396, 909, 135, 234, 187, 222, 270, 102, 135, 335, 316, 555, 492, 385, 486, 140, 585, 211, 184, 851, 232, 167, 215, 745, 471, 253, 972, 105, 388, 967, 477, 788, 977, 267, 971, 473, 788, 962, 204, 167, 209, 226, 275, 562, 869, 863, 186, 583, 519, 141, 780, 822, 232, 994, 982, 770, 237, 934, 441, 349, 717, 224, 800, 672, 201, 512, 186, 944, 187, 228, 0, 342, 665, 581, 723, 435, 629, 290, 614, 612, 188, 1020, 874, 0, 571, 232, 210, 209, 660, 214, 347, 449, 443, 953, 219, 343, 463, 643, 699, 190, 232, 328, 559, 231, 223, 553, 902, 541, 995, 561, 232, 802, 736, 201, 581, 157, 314, 403, 218, 199, 189, 550, 883, 945, 226, 417, 703, 950, 617, 254, 905, 526, 407, 432, 222, 294, 818, 378, 225, 780, 511, 101, 348, 172, 664, 718, 671, 186, 828, 641, 145, 463, 361, 366, 418, 621, 235, 428, 550, 370, 216, 968, 770, 608, 225, 899, 409, 224, 748, 235, 549, 329, 447, 492, 774, 254, 616, 228, 766, 197, 231, 195, 820, 510, 84, 386, 893, 236, 85, 288, 213, 600, 360, 235, 226, 105, 217, 210, 189, 408, 178, 755, 433, 825, 775, 558, 208, 614, 576, 811, 742, 0, 964, 683, 0, 583, 666, 551, 307, 574, 426, 857, 179, 371, 133, 673, 221, 569, 580, 229, 858, 82, 574, 272, 751, 539, 0, 0, 234, 903, 231, 929, 233, 290, 453, 707, 221, 234, 483, 593, 478, 615, 440, 426, 664, 211, 610, 385, 1021, 356, 0, 751, 201, 601, 596, 978, 579, 433, 524, 0, 222, 872, 231, 181, 206, 719, 1012, 703, 617, 515, 663, 222, 405, 0, 205, 852, 228, 310, 867, 559, 599, 753, 228, 605, 274, 809, 210, 996, 231, 232, 756, 645, 147, 429, 488, 716, 138, 234, 192, 431, 880, 720, 210, 223, 553, 186, 214, 182, 697, 616, 729, 530, 184, 507, 785, 690, 852, 249, 260, 195, 250, 749, 600, 223, 521, 921, 0, 0, 198, 210, 397, 612, 312, 235, 0, 496, 676, 448, 0, 455, 538, 726, 369, 280, 131, 1017, 487, 726, 257, 501, 519, 425, 910, 350, 466, 0, 331, 167, 565, 189, 1003, 132, 234, 397, 211, 116, 618, 803, 835, 849, 457, 668, 615, 139, 166, 320, 864, 506, 153, 464, 945, 942, 685, 848, 773, 498, 457, 479, 115, 793, 645, 826, 596, 212, 587, 442, 361, 644, 603, 393, 184, 704, 527, 900, 411, 230, 216, 130, 449, 620, 225, 762, 191, 1024, 258, 797, 527, 202, 979, 465, 476, 643, 528, 922, 502, 491, 829, 189, 379, 887, 0, 665, 824, 219, 386, 88, 817, 302, 102, 849, 0, 641, 149, 335, 692, 334, 277, 652, 145, 691, 778, 624, 605, 410, 590, 151, 204, 693, 758, 93, 856, 571, 243, 122, 744, 232, 713, 308, 206, 840, 334, 599, 475, 213, 231, 176, 416, 215, 198, 919, 125, 538, 245, 438, 359, 1010, 171, 208, 837, 225, 180, 236, 499, 190, 232, 383, 235, 788, 230, 981, 239, 489, 185, 772, 1000, 539, 202, 155, 0, 983, 232, 714, 402, 794, 365, 324, 483, 222, 146, 283, 197, 649, 737, 988, 796, 325, 984, 340, 218, 298, 480, 442, 900, 484, 315, 721, 696, 173, 206, 990, 351, 151, 215, 221, 559, 218, 675, 858, 853, 779, 463, 251, 549, 206, 750, 293, 406, 234, 209, 733, 799, 305, 235, 647, 891, 326, 889, 731, 947, 799, 1023, 295, 658, 491, 773, 455, 191, 227, 224, 568, 976, 233, 371, 570, 611, 784, 367, 286, 408, 160, 233, 718, 944, 230, 570, 430, 288, 227, 232, 807, 438, 607, 218, 981, 231, 230, 868, 671, 966, 503, 154, 911, 508, 195, 461, 195, 201, 460, 273, 286, 338, 158, 375, 427, 692, 814, 732, 366, 474, 746, 779, 369, 630, 214, 192, 312, 502, 607, 179, 556, 828, 484, 202, 761, 644, 525, 832, 649, 639, 977, 228, 1001, 370, 504, 747, 175, 150, 823, 654, 258, 368, 570, 230, 588, 223, 205, 496, 384, 583, 674, 495, 1012, 444, 190, 0, 486, 263, 451, 224, 222, 669, 279, 446, 205, 713, 375, 231, 991, 655, 517, 509, 156, 206, 704, 675, 305, 731, 227, 732, 629, 739, 819, 201, 165, 397, 619, 753, 811, 234, 815, 0, 882, 786, 224, 735, 304, 661, 121, 235, 221, 520, 292, 225, 197, 580, 485, 235, 193, 155, 185, 762, 783, 220, 558, 766, 121, 552, 567, 301, 1009, 0, 847, 156, 631, 516, 382, 298, 224, 293, 493, 167, 228, 408, 376, 629, 955, 387, 650, 0, 878, 800, 711, 220, 532, 464, 439, 305, 660, 446, 713, 637, 414, 444, 228, 221, 485, 376, 708, 956, 814, 823, 221, 387, 836, 120, 556, 785, 312, 0, 787, 814, 124, 191, 192, 223, 381, 577, 632, 677, 578, 755, 671, 199, 963, 983, 214, 896, 230, 992, 128, 975, 382, 227, 263, 606, 414, 204, 0, 214, 966, 324, 0, 800, 344, 737, 661, 686, 0, 819, 952, 626, 884, 680, 948, 793, 513, 331, 591, 153, 0, 0, 213, 840, 545, 342, 207, 954, 418, 349, 210, 0, 847, 698, 662, 677, 873, 1012, 205, 641, 0, 235, 0, 738, 0, 418, 292, 0, 418, 202, 631, 182, 0, 423, 631, 244, 0, 689, 0, 444, 554, 842, 954, 0, 230, 921, 697, 942, 616, 687, 649, 553, 0, 294, 802, 989, 740, 639, 491, 498, 0, 470, 377, 908, 940, 743, 708, 0, 259, 231, 602, 964, 758, 548, 259, 399, 169, 545, 867, 198, 0, 938, 737, 865, 1003, 499, 950, 229, 0, 801, 920, 907, 214, 0, 686, 225, 0, 447, 0, 247, 0, 555, 420, 979, 276, 666, 716, 523, 125, 0, 157, 689, 234, 0, 404, 196, 232, 595, 834, 532, 233, 338, 557, 1002, 918, 257, 0, 816, 413, 836, 0, 0, 0, 731, 483, 924, 593, 475, 0, 937, 875, 119, 821, 0, 743, 0, 860, 782, 996, 667, 0, 445, 822, 1022, 835, 577, 0, 367, 938, 980, 705, 0, 0, 220, 736, 0, 457, 825, 507, 222, 734, 0, 830, 259, 0, 815, 942, 403, 240, 672, 287, 410, 219, 623, 359, 378, 0, 999, 809, 0, 213, 1001, 290, 233, 0, 429, 201, 230, 865, 897, 604, 0, 166, 634, 0, 630, 1005, 0, 639, 0, 754, 963, 0, 548, 183, 227, 339, 526, 601, 0, 0, 327, 591, 789, 163, 1014, 998, 410, 0, 0, 0, 375, 0, 939, 898, 894, 354, 946, 714, 215, 577, 193, 989, 433, 498, 0, 449, 711, 804, 846, 757, 0, 407, 638, 0, 373, 0, 0, 0, 0, 764, 213, 311, 694, 271, 821, 610, 458, 963, 435, 781, 637, 0, 0, 233, 568, 435, 582, 391, 233, 992, 925, 544, 0, 919, 233, 958, 876, 224, 847, 318, 561, 778, 455, 220, 294, 803, 0, 0, 336, 454, 755, 974, 1012, 680, 0, 776, 871, 530, 560, 324, 844, 574, 597, 834, 606, 160, 661, 176, 742, 806, 694, 366, 901, 918, 267, 850, 613, 432, 642, 1004, 384, 787, 658, 449, 529, 0, 896, 738, 622, 0, 657, 823, 913, 636, 578, 440, 610, 570, 0, 502, 878, 322, 0, 330, 794, 202, 928, 893, 96, 528, 0, 950, 202, 576, 886, 687, 442, 510, 316, 125, 315, 349, 206, 427, 210, 973, 641, 0, 790, 787, 231, 818, 0, 812, 0, 0, 0, 0, 0, 0, 674, 613, 364, 854, 879, 966, 200, 782, 152, 848, 558, 829, 934, 420, 860, 233, 784, 357, 753, 602, 0, 0, 386, 1019, 271, 0, 272, 588, 767, 755, 463, 315, 810, 0, 949, 902, 460, 841, 708, 225, 630, 818, 0, 973, 0, 886, 234, 874, 998, 0, 0, 857, 638, 0, 225, 880, 673, 185, 384, 897, 0, 902, 679, 0, 0, 228, 505, 0, 220, 999, 276, 506, 967, 895, 682, 0, 687, 865, 736, 844, 599, 0, 308, 639, 853, 766, 148, 792, 671, 943, 213, 239, 480, 555, 896, 991, 288, 312, 741, 216, 222, 265, 0, 0, 754, 698, 436, 518, 822, 745, 0, 709, 795, 453, 550, 820, 0, 334, 618, 0, 0, 0, 205, 306, 895, 947, 391, 329, 0, 706, 979, 899, 0, 702, 659, 904, 958, 394, 212, 0, 879, 934, 976, 669, 811, 743, 0, 528, 532, 0, 653, 193, 0, 716, 0, 174, 365, 432, 212, 184, 902, 0, 0, 883, 489, 912, 715, 213, 204, 402, 920, 777, 206, 529, 1003, 0, 846, 0, 0, 606, 1009, 730, 203, 806, 0, 897, 0, 437, 695, 650, 604, 684, 0, 646, 213, 767, 563, 917, 535, 434, 721, 363, 477, 635, 264, 1015, 255, 0, 448, 959, 0, 321, 0, 761, 696, 705, 598, 1004, 662, 890, 911, 280, 452, 930, 0, 747, 0, 872, 786, 134, 0, 772, 173, 0, 0, 743, 527, 546, 899, 911, 628, 733, 272, 717, 1006, 940, 647, 861, 640, 465, 533, 0, 884, 97, 0, 886, 486, 450, 978, 282, 887, 665, 208, 858, 623, 968, 677, 240, 286, 189, 836, 228, 227, 959, 215, 765, 526, 928, 546, 0, 186, 621, 913, 331, 265, 525, 569, 595, 262, 579, 503, 968, 724, 0, 756, 518, 200, 794, 0, 855, 216, 507, 0, 0, 343, 0, 674, 0, 558, 791, 709, 589, 695, 398, 224, 709, 898, 0, 900, 345, 0, 782, 648, 912, 857, 720, 0, 561, 394, 894, 908, 210, 680, 0, 565, 761, 431, 234, 573, 417, 678, 0, 0, 901, 530, 265, 848, 300, 0, 462, 451, 404, 229, 0, 0, 634, 585, 0, 0, 699, 0, 1018, 969, 0, 0, 889, 1007, 659, 0, 655, 584, 229, 235, 910, 0, 379, 441, 0, 860, 854, 866, 493, 647, 952, 567, 869, 0, 512, 0, 538, 945, 601, 412, 0, 655, 701, 596, 0, 233, 234, 952, 925, 0, 757, 203, 970, 916, 247, 806, 215, 216, 564, 352, 569, 471, 222, 405, 690, 960, 863, 875, 543, 494, 769, 837, 742, 792, 769, 226, 436, 843, 653, 227, 609, 907, 0, 317, 951, 906, 0, 0, 700, 760, 0, 231, 0, 389, 751, 773, 218, 235, 0, 915, 462, 420, 740, 501, 685, 415, 536, 928, 801, 757, 750, 657, 0, 859, 224, 0, 802, 602, 728, 521, 536, 745, 308, 572, 380, 0, 715, 415, 0, 976, 1014, 0, 221, 481, 985, 765, 548, 777, 402, 791, 863, 845, 0, 212, 185, 423, 749, 0, 0, 481, 971, 0, 897, 851, 226, 1019, 350, 0, 187, 559, 228, 547, 467, 338, 394, 867, 642, 369, 227, 213, 470, 960, 861, 249, 806, 991, 148, 882, 609, 626, 0, 0, 941, 162, 768, 0, 690, 643, 234, 303, 676, 681, 382, 644, 911, 829, 0, 745, 844, 0, 930, 994, 785, 231, 939, 798, 521, 716, 728, 615, 1002, 732, 816, 795, 300, 635, 532, 1008, 840, 0, 885, 932, 378, 871, 0, 358, 768, 892, 500, 0, 796, 956, 129, 815, 207, 280, 0, 706, 838, 833, 803, 0, 1007, 201, 0, 0, 692, 0, 452, 0, 140, 0, 722, 320, 427, 705, 605, 534, 0, 232, 0, 372, 0, 903, 554, 978, 781, 791, 0, 0, 0, 0, 0, 840, 0, 0, 701, 430, 0, 201, 0, 0, 357, 843, 0, 476, 589, 0, 464, 983, 662, 0, 0, 0, 0, 725, 0, 0, 315, 752, 0, 264, 0, 0, 0, 798, 429, 0, 889, 323, 880, 319, 0, 832, 699, 846, 0, 0, 0, 827, 581, 0, 0, 0, 319, 0, 765, 961, 633, 754, 0, 0, 0, 686, 0, 1000, 0, 789, 689, 676, 0, 0, 424, 0, 955, 0, 963, 0, 701, 529, 729, 0, 850, 0, 405, 817, 204, 618, 0, 565, 0, 0, 0, 898, 0, 1010, 0, 395, 0, 967, 991, 940, 228, 0, 870, 248, 0, 707, 0, 661, 0, 730, 459, 0, 409, 997, 0, 961, 512, 0, 465, 799, 557, 0, 787, 471, 254, 807, 0, 748, 448, 534, 1013, 0, 0, 284, 0, 0, 540, 0, 0, 0, 0, 975, 700, 0, 0, 833, 0, 0, 884, 299, 874, 0, 0, 0, 0, 0, 0, 0, 0, 529, 1017, 0, 0, 663, 0, 810, 0, 0, 0, 0, 0, 241, 1014, 0, 656, 0, 592, 252, 772, 0, 0, 505, 0, 994, 0, 482, 552, 849, 341, 676, 795, 874, 589, 508, 0, 0, 0, 0, 231, 1013, 595, 553, 0, 467, 281, 332, 0, 0, 776, 0, 235, 866, 0, 919, 0, 0, 946, 0, 784, 0, 0, 734, 622, 284, 364, 997, 0, 0, 0, 345, 0, 0, 210, 0, 0, 821, 0, 0, 0, 545, 0, 0, 1005, 912, 395, 1021, 883, 614, 603, 207, 0, 531, 959, 0, 586, 822, 941, 900, 977, 0, 414, 842, 0, 977, 0, 0, 0, 0, 792, 316, 323, 817, 834, 985, 769, 488, 0, 892, 995, 674, 0, 0, 296, 751, 922, 637, 557, 398, 0, 0, 931, 0, 986, 281, 0, 0, 233, 948, 460, 594, 0, 496, 227, 861, 0, 0, 0, 481, 506, 0, 0, 0, 843, 0, 957, 954, 739, 696, 668, 0, 0, 623, 0, 0, 218, 0, 195, 1008, 0, 0, 517, 941, 0, 587, 0, 1021, 974, 782, 0, 580, 0, 0, 797, 555, 0, 0, 869, 989, 0, 695, 998, 0, 760, 660, 967, 746, 628, 0, 790, 965, 924, 0, 495, 0, 270, 0, 0, 108, 0, 0, 1001, 406, 868, 0, 729, 0, 923, 808, 234, 457, 425, 489, 478, 469, 0, 0, 0, 815, 846, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 916, 981, 0, 381, 939, 305, 0, 0, 1016, 0, 945, 891, 317, 0, 587, 0, 722, 0, 0, 525, 0, 543, 0, 551, 816, 0, 0, 582, 756, 1006, 0, 0, 1023, 488, 0, 0, 426, 0, 842, 0, 1023, 0, 0, 410, 0, 0, 0, 0, 883, 0, 0, 335, 905, 0, 619, 934, 936, 0, 0, 879, 0, 0, 273, 632, 0, 246, 0, 341, 924, 1002, 0, 1011, 0, 996, 0, 0, 0, 914, 0, 522, 800, 0, 864, 178, 839, 904, 0, 456, 406, 789, 727, 0, 0, 775, 935, 812, 796, 339, 691, 0, 0, 949, 0, 0, 648, 0, 0, 0, 767, 827, 516, 694, 0, 0, 702, 929, 0, 0, 0, 285, 0, 0, 0, 461, 537, 0, 915, 986, 948, 0, 976, 993, 0, 1008, 673, 323, 0, 0, 0, 0, 690, 0, 0, 0, 627, 0, 0, 882, 813, 0, 866, 0, 405, 487, 582, 492, 188, 904, 0, 0, 0, 992, 0, 798, 219, 350, 666, 0, 975, 438, 0, 0, 0, 0, 0, 0, 986, 0, 936, 0, 877, 0, 0, 0, 1016, 812, 652, 0, 0, 0, 0, 220, 814, 0, 927, 724, 864, 912, 391, 839, 0, 424, 0, 542, 0, 509, 0, 0, 501, 0, 993, 0, 959, 890, 0, 0, 0, 0, 578, 485, 0, 0, 892, 0, 0, 0, 257, 0, 0, 906, 0, 0, 0, 0, 778, 0, 0, 0, 938, 957, 986, 0, 0, 0, 0, 864, 951, 634, 0, 990, 167, 0, 972, 499, 748, 0, 958, 0, 0, 303, 868, 1011, 0, 860, 338, 704, 230, 0, 421, 332, 0, 374, 882, 990, 0, 805, 0, 439, 688, 0, 607, 469, 974, 937, 723, 763, 1008, 825, 987, 845, 0, 1009, 592, 534, 0, 0, 0, 229, 537, 0, 0, 348, 0, 1024, 0, 793, 875, 731, 663, 741, 711, 476, 980, 953, 0, 0, 447, 0, 0, 888, 926, 1019, 733, 0, 792, 0, 0, 0, 344, 744, 0, 867, 824, 513, 468, 721, 0, 0, 0, 0, 0, 1024, 573, 0, 435, 0, 0, 475, 753, 552, 0, 0, 0, 1014, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 765, 0, 805, 881, 818, 400, 0, 0, 624, 640, 0, 0, 0, 1018, 964, 906, 0, 744, 0, 0, 841, 0, 552, 952, 970, 703, 0, 710, 0, 657, 0, 702, 593, 0, 0, 0, 922, 906, 0, 0, 263, 0, 415, 638, 801, 612, 0, 774, 268, 615, 729, 0, 0, 984, 693, 620, 0, 0, 802, 909, 839, 621, 712, 868, 730, 682, 0, 0, 0, 356, 1001, 0, 0, 0, 767, 0, 0, 992, 0, 625, 910, 785, 291, 256, 0, 0, 539, 662, 763, 600, 723, 603, 727, 0, 0, 0, 0, 688, 0, 881, 301, 0, 0, 687, 0, 925, 554, 0, 608, 678, 699, 0, 0, 619, 0, 0, 0, 0, 504, 873, 0, 0, 0, 0, 535, 0, 0, 0, 0, 226, 188, 974, 0, 0, 0, 651, 0, 0, 993, 0, 231, 0, 890, 0, 197, 668, 260, 678, 768, 598, 656, 0, 939, 1011, 303, 361, 602, 0, 0, 494, 0, 0, 278, 0, 664, 923, 0, 0, 0, 653, 1010, 0, 962, 783, 279, 0, 717, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856, 1015, 989, 0, 0, 0, 0, 703, 0, 750, 0, 825, 681, 734, 1000, 0, 891, 0, 0, 1004, 808, 927, 0, 579, 0, 0, 995, 0, 877, 0, 174, 0, 208, 660, 0, 0, 0, 0, 888, 0, 0, 297, 0, 0, 762, 0, 913, 0, 265, 0, 0, 409, 949, 979, 788, 598, 0, 402, 0, 926, 0, 0, 733, 0, 949, 873, 0, 0, 0, 0, 0, 0, 0, 0, 838, 719, 0, 229, 0, 0, 0, 0, 0, 560, 626, 0, 913, 0, 789, 0, 0, 0, 0, 891, 0, 0, 656, 994, 0, 269, 0, 0, 0, 0, 484, 0, 0, 340, 0, 548, 0, 0, 0, 0, 0, 0, 0, 1009, 759, 0, 0, 0, 323, 0, 0, 0, 892, 0, 0, 0, 0, 783, 0, 0, 0, 0, 851, 705, 0, 0, 887, 0, 0, 0, 1005, 0, 813, 901, 0, 0, 0, 0, 572, 0, 389, 0, 0, 801, 0, 0, 0, 983, 0, 0, 0, 479, 0, 0, 0, 0, 250, 0, 980, 914, 0, 0, 0, 855, 0, 0, 775, 0, 411, 0, 0, 0, 654, 0, 534, 0, 0, 0, 0, 473, 0, 914, 0, 893, 470, 541, 0, 0, 0, 588, 0, 0, 0, 0, 0, 0, 0, 0, 956, 0, 0, 880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, 881, 0, 658, 728, 0, 0, 0, 838, 0, 0, 0, 0, 719, 1019, 530, 964, 859, 970, 0, 936, 0, 0, 0, 0, 430, 0, 954, 621, 0, 872, 317, 517, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 866, 944, 422, 938, 0, 0, 0, 0, 547, 0, 0, 499, 0, 0, 885, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 903, 645, 0, 586, 0, 0, 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 837, 925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 953, 0, 932, 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 764, 0, 619, 274, 870, 0, 0, 0, 758, 0, 0, 0, 0, 978, 0, 0, 0, 0, 851, 984, 0, 0, 655, 0, 0, 416, 0, 461, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, 804, 0, 0, 0, 0, 0, 0, 0, 0, 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 110, 0, 0, 0, 566, 0, 0, 0, 0, 944, 916, 251, 646, 0, 888, 0, 721, 0, 0, 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 622, 0, 0, 0, 0, 0, 0, 961, 0, 688, 0, 0, 0, 0, 0, 0, 780, 0, 741, 0, 0, 0, 670, 803, 1018, 0, 0, 0, 0, 0, 0, 771, 0, 966, 0, 0, 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, 1006, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 500, 973, 0, 480, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 341, 0, 0, 0, 514, 853, 1021, 0, 0, 0, 831, 0, 0, 917, 759, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 810, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936, 0, 0, 923, 0, 1023, 820, 698, 740, 196, 0, 0, 0, 0, 0, 0, 0, 636, 659, 957, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 775, 0, 0, 0, 0, 943, 0, 500, 0, 0, 981, 0, 554, 0, 855, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, 0, 0, 969, 1006, 0, 0, 202, 0, 0, 1016, 0, 0, 0, 0, 0, 462, 0, 0, 0, 933, 348, 861, 362, 0, 909, 528, 0, 551, 0, 0, 0, 0, 0, 0, 741, 0, 982, 873, 0, 0, 0, 953, 0, 0, 0, 876, 0, 0, 646, 951, 0, 0, 0, 269, 564, 0, 0, 774, 0, 0, 0, 910, 980, 0, 0, 0, 0, 862, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 899, 0, 0, 0, 0, 813, 679, 0, 0, 0, 0, 0, 0, 0, 894, 0, 1017, 0, 0, 0, 965, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 857, 609, 0, 0, 889, 0, 0, 0, 0, 0, 985, 962, 0, 933, 0, 0, 0, 0, 890, 0, 1011, 0, 0, 914, 0, 0, 0, 970, 726, 0, 0, 0, 0, 927, 0, 0, 539, 0, 771, 772, 0, 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, 875, 0, 0, 987, 0, 942, 823, 781, 0, 0, 0, 0, 0, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 918, 0, 0, 0, 790, 0, 0, 871, 0, 828, 0, 0, 0, 0, 1004, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 701, 725, 0, 0, 915, 0, 0, 0, 0, 965, 0, 0, 0, 0, 0, 850, 0, 0, 0, 0, 390, 712, 0, 0, 0, 0, 791, 0, 0, 0, 0, 770, 0, 0, 0, 633, 0, 584, 0, 0, 0, 831, 0, 0, 0, 921, 946, 754, 0, 0, 533, 0, 0, 919, 0, 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 693, 0, 926, 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 878, 1018, 1020, 0, 0, 0, 0, 0, 855, 0, 0, 987, 0, 0, 0, 0, 0, 0, 222, 0, 430, 853, 0, 0, 0, 0, 1007, 0, 0, 351, 0, 0, 0, 0, 0, 0, 717, 0, 0, 1024, 0, 0, 0, 761, 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 809, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 472, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 828, 0, 0, 0, 401, 0, 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, 1002, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 854, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 933, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 746, 525, 0, 0, 0, 0, 987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 720, 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 653, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 930, 0, 575, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, 763, 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 996, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, 199, 0, 0, 0, 0, 0, 0, 0, 776, 824, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 826, 885, 546, 0, 961, 931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 847, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 969, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 856, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 960, 997, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 783, 0, 0, 0, 0, 0, 0, 931, 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const uint16_t H_1024_2048_4f_H_cols[] = { +125, 11, 216, 94, 44, 58, 2, 50, 45, 131, 81, 72, 19, 9, 29, 1, 51, 56, 311, 32, 205, 46, 6, 11, 53, 26, 200, 96, 33, 19, 227, 62, 7, 83, 124, 33, 13, 17, 39, 4, 169, 33, 10, 135, 129, 57, 2, 49, 133, 16, 51, 28, 8, 47, 22, 76, 83, 66, 45, 22, 80, 47, 54, 24, 54, 149, 97, 122, 62, 99, 30, 22, 222, 12, 100, 115, 28, 89, 102, 63, 170, 183, 27, 31, 148, 190, 32, 85, 12, 7, 74, 37, 30, 41, 55, 43, 54, 139, 44, 52, 29, 141, 22, 4, 48, 25, 14, 187, 115, 32, 2, 26, 112, 20, 15, 103, 96, 221, 133, 4, 68, 102, 114, 56, 30, 121, 82, 4, 135, 147, 81, 35, 42, 118, 31, 48, 78, 3, 128, 71, 2, 93, 58, 284, 65, 190, 42, 220, 63, 125, 140, 138, 22, 36, 557, 48, 21, 9, 125, 268, 62, 26, 25, 129, 15, 24, 3, 77, 99, 43, 127, 70, 48, 32, 89, 167, 52, 135, 2, 56, 13, 7, 41, 1, 127, 37, 21, 142, 192, 18, 106, 19, 10, 14, 10, 27, 29, 63, 9, 40, 22, 52, 40, 29, 28, 14, 29, 42, 113, 6, 18, 5, 25, 2, 8, 88, 73, 84, 3, 53, 8, 20, 23, 20, 4, 6, 8, 95, 22, 9, 88, 2, 39, 16, 44, 248, 254, 418, 268, 201, 13, 461, 309, 18, 15, 6, 84, 5, 525, 98, 36, 130, 64, 139, 23, 79, 148, 84, 91, 189, 11, 8, 821, 44, 515, 18, 12, 492, 44, 126, 145, 47, 137, 317, 95, 127, 347, 338, 46, 551, 219, 162, 155, 148, 34, 274, 36, 387, 478, 215, 126, 43, 84, 76, 24, 235, 44, 82, 164, 517, 207, 181, 652, 20, 422, 291, 104, 310, 37, 163, 256, 511, 291, 183, 41, 119, 153, 227, 54, 47, 79, 276, 52, 4, 217, 77, 120, 175, 146, 303, 20, 90, 112, 531, 180, 39, 105, 144, 7, 52, 203, 28, 72, 7, 69, 296, 173, 340, 26, 561, 159, 155, 3, 136, 17, 443, 25, 105, 207, 390, 329, 165, 137, 195, 570, 345, 180, 246, 542, 45, 381, 4, 175, 232, 254, 225, 21, 172, 352, 309, 420, 802, 234, 354, 211, 311, 660, 50, 99, 331, 301, 229, 111, 551, 110, 121, 538, 1, 98, 34, 67, 2, 200, 137, 97, 169, 275, 397, 127, 204, 127, 103, 140, 275, 691, 245, 11, 31, 253, 125, 59, 238, 56, 85, 121, 418, 397, 355, 49, 20, 119, 331, 266, 193, 273, 448, 94, 586, 443, 111, 129, 390, 27, 62, 124, 24, 99, 143, 269, 78, 508, 161, 442, 156, 75, 403, 189, 100, 107, 191, 341, 132, 294, 31, 133, 265, 53, 282, 36, 84, 138, 52, 9, 73, 160, 28, 228, 171, 110, 482, 322, 200, 157, 49, 159, 162, 224, 290, 190, 65, 81, 88, 295, 156, 74, 316, 94, 82, 108, 479, 93, 167, 230, 668, 24, 64, 191, 208, 35, 129, 307, 131, 19, 65, 279, 178, 86, 420, 246, 768, 475, 184, 43, 23, 220, 2, 610, 383, 92, 203, 266, 142, 123, 133, 47, 136, 152, 548, 433, 151, 141, 499, 46, 90, 27, 651, 244, 54, 319, 319, 415, 201, 74, 7, 124, 57, 135, 403, 300, 28, 307, 165, 14, 21, 102, 360, 38, 298, 410, 371, 282, 97, 39, 335, 116, 121, 178, 344, 464, 159, 63, 300, 146, 281, 90, 59, 348, 5, 29, 662, 21, 111, 159, 295, 5, 462, 336, 630, 488, 389, 241, 93, 176, 3, 238, 338, 697, 361, 786, 199, 34, 277, 80, 262, 449, 71, 197, 100, 316, 11, 216, 129, 206, 170, 69, 14, 90, 371, 274, 59, 53, 66, 71, 226, 617, 55, 95, 276, 80, 376, 42, 352, 295, 605, 23, 394, 221, 401, 73, 181, 182, 320, 284, 61, 336, 41, 184, 191, 548, 286, 9, 33, 176, 342, 270, 128, 35, 333, 79, 444, 344, 202, 386, 294, 516, 82, 38, 399, 476, 16, 637, 150, 411, 171, 30, 10, 72, 431, 60, 523, 515, 136, 187, 286, 364, 332, 69, 36, 57, 157, 19, 531, 324, 609, 82, 61, 120, 89, 525, 316, 270, 372, 101, 261, 458, 129, 258, 343, 20, 181, 398, 132, 272, 184, 38, 103, 259, 192, 93, 119, 156, 666, 7, 50, 88, 187, 8, 1, 331, 79, 440, 234, 88, 428, 221, 70, 168, 142, 5, 747, 298, 42, 432, 72, 324, 445, 152, 2, 63, 6, 627, 619, 382, 247, 69, 376, 442, 247, 264, 188, 453, 193, 249, 306, 125, 177, 50, 315, 114, 248, 9, 170, 76, 233, 522, 45, 137, 229, 33, 251, 10, 283, 18, 123, 205, 479, 28, 48, 134, 6, 102, 77, 319, 271, 243, 343, 30, 17, 22, 180, 232, 12, 91, 609, 198, 150, 98, 334, 12, 380, 94, 175, 365, 109, 190, 133, 41, 63, 162, 179, 268, 45, 160, 141, 55, 146, 87, 19, 59, 16, 451, 64, 26, 158, 535, 58, 35, 188, 202, 95, 81, 68, 498, 17, 122, 155, 419, 13, 107, 169, 318, 393, 243, 499, 106, 226, 101, 387, 242, 117, 330, 218, 10, 165, 163, 310, 341, 374, 40, 53, 189, 564, 261, 15, 173, 388, 85, 111, 51, 630, 38, 71, 142, 258, 203, 34, 222, 106, 363, 272, 92, 304, 6, 458, 192, 646, 114, 86, 43, 560, 634, 258, 31, 118, 453, 252, 116, 147, 228, 113, 68, 299, 54, 22, 286, 4, 611, 224, 115, 197, 305, 168, 186, 255, 144, 208, 162, 104, 256, 87, 174, 70, 236, 237, 321, 231, 306, 17, 9, 109, 149, 13, 291, 30, 52, 157, 185, 309, 267, 655, 70, 235, 89, 94, 374, 3, 112, 359, 663, 206, 125, 40, 399, 325, 123, 547, 230, 8, 126, 117, 418, 154, 32, 166, 288, 307, 225, 479, 78, 435, 113, 303, 548, 42, 293, 171, 55, 168, 132, 78, 214, 102, 107, 353, 89, 446, 481, 342, 62, 108, 488, 40, 1, 187, 83, 425, 71, 446, 202, 161, 260, 75, 449, 621, 150, 37, 325, 178, 126, 109, 7, 159, 76, 225, 157, 97, 46, 16, 33, 247, 130, 211, 393, 54, 273, 77, 41, 67, 164, 31, 208, 207, 72, 49, 254, 82, 196, 106, 151, 59, 76, 22, 58, 97, 186, 51, 25, 391, 131, 102, 19, 104, 183, 230, 200, 74, 16, 382, 28, 228, 108, 99, 92, 100, 267, 294, 91, 27, 58, 315, 133, 143, 235, 201, 110, 89, 244, 15, 259, 130, 92, 172, 144, 130, 194, 205, 49, 87, 188, 277, 44, 157, 51, 74, 93, 41, 92, 73, 60, 139, 136, 236, 186, 63, 141, 145, 25, 68, 202, 44, 131, 242, 213, 181, 60, 57, 219, 35, 250, 148, 128, 226, 138, 86, 172, 239, 122, 113, 82, 139, 110, 10, 150, 212, 101, 66, 200, 228, 200, 52, 145, 138, 130, 87, 64, 140, 69, 357, 98, 236, 46, 355, 80, 138, 216, 196, 55, 48, 602, 67, 124, 249, 154, 321, 64, 52, 81, 157, 19, 68, 73, 201, 143, 117, 153, 72, 57, 37, 108, 254, 116, 149, 15, 69, 108, 54, 58, 189, 135, 134, 49, 182, 261, 65, 128, 25, 198, 98, 29, 52, 38, 102, 18, 171, 66, 75, 177, 88, 33, 125, 104, 49, 230, 10, 56, 96, 34, 38, 12, 96, 120, 134, 20, 67, 31, 66, 28, 62, 38, 44, 42, 115, 104, 36, 92, 14, 50, 27, 53, 385, 439, 477, 505, 430, 16, 634, 670, 58, 223, 42, 122, 118, 716, 115, 393, 192, 223, 327, 416, 524, 556, 622, 97, 303, 166, 26, 884, 474, 698, 116, 231, 782, 714, 183, 287, 431, 479, 492, 240, 484, 559, 357, 782, 591, 308, 241, 277, 238, 186, 682, 86, 510, 606, 275, 849, 49, 93, 318, 779, 297, 279, 661, 423, 684, 800, 466, 676, 781, 769, 464, 390, 496, 147, 435, 285, 540, 404, 314, 394, 208, 219, 290, 67, 583, 210, 375, 67, 73, 454, 212, 244, 299, 369, 377, 564, 220, 255, 653, 207, 300, 257, 681, 239, 735, 484, 217, 293, 179, 81, 434, 288, 409, 32, 582, 714, 242, 334, 179, 363, 457, 364, 229, 692, 533, 350, 315, 277, 239, 590, 351, 716, 868, 550, 60, 421, 117, 278, 246, 774, 883, 85, 208, 447, 342, 667, 953, 542, 472, 455, 383, 960, 123, 134, 621, 343, 464, 344, 594, 124, 198, 571, 242, 304, 57, 194, 583, 280, 155, 480, 386, 330, 523, 364, 250, 349, 574, 151, 359, 823, 273, 323, 48, 756, 427, 153, 464, 743, 477, 395, 451, 534, 489, 218, 213, 507, 351, 400, 598, 292, 520, 241, 606, 694, 369, 256, 405, 255, 578, 154, 412, 120, 172, 289, 671, 756, 426, 527, 163, 316, 504, 394, 290, 125, 313, 540, 676, 349, 587, 222, 562, 218, 374, 398, 143, 222, 113, 138, 157, 434, 628, 616, 389, 172, 506, 877, 243, 446, 741, 636, 212, 554, 356, 396, 116, 633, 210, 795, 729, 377, 543, 274, 258, 247, 539, 557, 373, 353, 861, 196, 323, 413, 599, 136, 381, 338, 263, 154, 504, 477, 527, 220, 521, 260, 928, 532, 496, 53, 104, 436, 240, 624, 561, 174, 331, 483, 562, 617, 144, 612, 195, 420, 689, 713, 224, 144, 509, 214, 149, 100, 683, 902, 96, 368, 356, 440, 766, 216, 63, 209, 847, 145, 424, 487, 60, 314, 241, 61, 715, 566, 386, 105, 476, 425, 791, 326, 324, 579, 417, 341, 387, 263, 368, 703, 354, 179, 444, 245, 407, 214, 264, 431, 148, 61, 757, 245, 191, 447, 314, 140, 600, 478, 766, 494, 523, 461, 433, 263, 158, 491, 593, 754, 411, 847, 289, 296, 302, 185, 276, 580, 374, 326, 532, 471, 617, 353, 237, 243, 659, 777, 29, 109, 654, 907, 228, 57, 480, 270, 664, 711, 367, 294, 466, 231, 503, 347, 366, 629, 740, 262, 575, 660, 521, 729, 603, 734, 533, 564, 131, 783, 189, 364, 356, 582, 368, 122, 37, 178, 452, 411, 177, 119, 579, 557, 484, 502, 261, 423, 414, 754, 204, 296, 754, 751, 327, 958, 488, 799, 563, 529, 76, 389, 695, 81, 557, 657, 652, 665, 344, 602, 628, 99, 39, 296, 658, 91, 547, 475, 682, 183, 75, 153, 408, 724, 380, 592, 731, 674, 419, 555, 503, 657, 489, 201, 262, 614, 433, 701, 612, 77, 549, 507, 644, 389, 124, 724, 834, 655, 193, 147, 310, 105, 46, 500, 572, 512, 342, 167, 672, 523, 219, 496, 161, 529, 762, 432, 147, 489, 233, 399, 498, 273, 95, 514, 367, 749, 676, 463, 283, 689, 499, 525, 929, 289, 253, 474, 645, 592, 372, 402, 223, 585, 651, 170, 337, 293, 352, 939, 430, 862, 640, 355, 234, 80, 373, 723, 501, 504, 378, 216, 513, 357, 412, 768, 260, 112, 309, 445, 358, 531, 597, 140, 35, 211, 446, 407, 407, 174, 833, 402, 441, 188, 405, 185, 471, 165, 249, 842, 582, 401, 599, 62, 346, 425, 195, 510, 56, 693, 287, 177, 152, 285, 196, 501, 26, 712, 158, 327, 334, 621, 272, 312, 423, 533, 349, 217, 483, 505, 143, 622, 668, 465, 428, 205, 428, 661, 398, 280, 584, 221, 236, 486, 677, 361, 166, 740, 469, 39, 206, 723, 706, 597, 553, 418, 160, 784, 689, 320, 163, 250, 459, 637, 396, 774, 633, 428, 292, 285, 743, 444, 360, 473, 257, 545, 611, 346, 449, 261, 502, 328, 796, 194, 325, 199, 722, 653, 579, 366, 140, 543, 392, 513, 347, 307, 194, 83, 631, 391, 158, 304, 460, 818, 380, 439, 339, 686, 230, 680, 426, 306, 473, 379, 181, 421, 114, 271, 199, 503, 265, 427, 260, 539, 110, 448, 325, 663, 797, 297, 65, 87, 173, 329, 467, 623, 832, 130, 534, 234, 204, 765, 419, 227, 542, 776, 805, 232, 224, 457, 351, 156, 556, 273, 327, 544, 182, 618, 252, 106, 333, 460, 544, 705, 495, 265, 666, 509, 578, 627, 198, 306, 490, 128, 249, 210, 712, 385, 146, 568, 631, 229, 468, 780, 550, 594, 693, 678, 326, 145, 248, 132, 467, 175, 775, 437, 279, 350, 176, 457, 720, 180, 110, 337, 365, 147, 137, 13, 165, 140, 331, 164, 118, 85, 41, 131, 278, 168, 225, 516, 287, 285, 260, 56, 99, 205, 101, 300, 318, 107, 76, 289, 99, 233, 133, 171, 87, 300, 106, 141, 114, 238, 91, 67, 427, 186, 263, 105, 199, 287, 311, 216, 79, 124, 404, 38, 274, 209, 148, 139, 218, 284, 313, 162, 54, 83, 403, 200, 233, 335, 222, 143, 112, 254, 91, 341, 132, 115, 180, 206, 368, 262, 225, 70, 92, 323, 287, 195, 168, 65, 250, 156, 208, 191, 78, 70, 167, 203, 288, 258, 251, 171, 205, 145, 191, 223, 78, 174, 245, 239, 369, 125, 63, 264, 131, 397, 222, 193, 262, 151, 206, 185, 256, 191, 182, 131, 161, 238, 17, 202, 275, 187, 74, 312, 231, 206, 106, 244, 335, 185, 97, 126, 144, 113, 387, 148, 279, 117, 500, 86, 267, 305, 209, 84, 85, 715, 215, 133, 364, 283, 339, 112, 431, 137, 204, 40, 209, 152, 228, 282, 204, 174, 106, 76, 72, 152, 341, 119, 167, 177, 115, 122, 120, 151, 201, 432, 159, 91, 278, 286, 138, 271, 197, 215, 189, 85, 138, 101, 122, 100, 329, 120, 97, 240, 99, 41, 134, 135, 71, 238, 33, 80, 109, 86, 89, 21, 189, 179, 155, 51, 186, 143, 127, 31, 70, 118, 67, 60, 144, 110, 67, 169, 91, 77, 32, 71, 699, 449, 674, 551, 681, 186, 678, 773, 355, 485, 465, 518, 150, 775, 528, 759, 253, 576, 373, 620, 654, 643, 652, 196, 526, 182, 89, 924, 618, 759, 272, 348, 829, 879, 204, 361, 440, 822, 592, 414, 758, 654, 454, 889, 635, 778, 673, 727, 330, 536, 795, 203, 755, 783, 441, 863, 626, 763, 333, 830, 771, 566, 737, 498, 761, 881, 645, 935, 919, 903, 537, 416, 675, 167, 485, 366, 843, 771, 700, 445, 284, 429, 313, 381, 909, 625, 585, 285, 333, 733, 773, 399, 600, 541, 407, 697, 248, 450, 678, 468, 322, 672, 828, 509, 757, 500, 228, 718, 745, 244, 693, 315, 681, 257, 627, 748, 343, 456, 259, 713, 475, 431, 408, 952, 619, 604, 683, 489, 416, 722, 500, 794, 917, 839, 357, 790, 901, 462, 568, 830, 961, 101, 335, 636, 847, 857, 959, 703, 566, 466, 436, 964, 226, 289, 910, 540, 491, 356, 742, 259, 632, 752, 302, 778, 160, 662, 720, 315, 765, 569, 505, 660, 796, 535, 460, 612, 580, 691, 979, 872, 339, 753, 51, 760, 568, 370, 643, 853, 566, 559, 453, 831, 597, 501, 803, 750, 571, 465, 613, 299, 563, 379, 691, 837, 450, 552, 603, 290, 880, 174, 890, 370, 545, 357, 933, 764, 636, 658, 182, 547, 732, 578, 439, 321, 450, 563, 763, 444, 659, 627, 610, 929, 459, 487, 363, 430, 376, 233, 166, 680, 687, 623, 397, 417, 738, 900, 478, 617, 849, 933, 670, 570, 450, 578, 852, 781, 371, 939, 836, 602, 606, 425, 267, 670, 615, 625, 632, 704, 899, 480, 485, 521, 820, 622, 391, 626, 265, 284, 590, 624, 881, 345, 709, 415, 1005, 886, 600, 130, 405, 699, 329, 650, 630, 358, 519, 619, 971, 664, 710, 621, 873, 541, 777, 821, 560, 305, 620, 438, 305, 103, 692, 928, 236, 498, 481, 688, 803, 303, 620, 358, 948, 242, 722, 752, 311, 629, 819, 610, 825, 748, 434, 798, 669, 700, 802, 669, 890, 752, 430, 504, 402, 800, 635, 992, 426, 271, 571, 413, 784, 345, 269, 602, 441, 207, 848, 637, 541, 573, 410, 215, 631, 586, 930, 679, 530, 467, 884, 606, 223, 660, 623, 809, 862, 945, 370, 772, 539, 350, 405, 830, 432, 476, 574, 894, 836, 695, 362, 336, 696, 860, 422, 561, 959, 962, 454, 951, 516, 914, 716, 904, 581, 300, 598, 497, 662, 400, 573, 657, 852, 499, 607, 771, 575, 855, 719, 762, 603, 845, 176, 808, 588, 810, 575, 781, 975, 340, 632, 478, 945, 639, 414, 172, 906, 888, 665, 815, 334, 470, 720, 902, 544, 680, 890, 811, 746, 981, 542, 914, 605, 590, 117, 490, 865, 134, 831, 687, 832, 835, 528, 726, 640, 516, 519, 773, 855, 809, 648, 806, 901, 629, 543, 264, 452, 729, 788, 727, 843, 892, 493, 580, 567, 957, 668, 252, 509, 743, 625, 871, 706, 408, 555, 638, 885, 518, 595, 775, 906, 739, 236, 647, 484, 730, 361, 908, 717, 695, 408, 559, 746, 888, 370, 639, 366, 788, 877, 459, 437, 765, 518, 443, 635, 817, 322, 882, 419, 851, 938, 702, 314, 781, 942, 609, 951, 837, 360, 707, 711, 782, 718, 510, 329, 824, 658, 757, 438, 409, 421, 954, 718, 969, 642, 403, 705, 246, 402, 906, 741, 597, 711, 526, 732, 623, 580, 777, 497, 825, 839, 575, 638, 692, 822, 380, 392, 493, 525, 558, 512, 565, 987, 917, 643, 286, 455, 440, 529, 250, 270, 865, 640, 704, 681, 107, 848, 634, 514, 931, 311, 948, 302, 576, 684, 696, 950, 616, 677, 801, 276, 382, 493, 706, 403, 873, 591, 577, 905, 332, 524, 756, 417, 713, 925, 738, 677, 232, 680, 682, 515, 833, 613, 404, 567, 748, 814, 799, 318, 871, 641, 698, 280, 834, 918, 615, 967, 476, 469, 880, 919, 465, 666, 682, 560, 674, 736, 779, 803, 772, 639, 381, 759, 487, 508, 599, 463, 652, 732, 757, 475, 437, 549, 469, 818, 638, 393, 685, 787, 819, 614, 696, 494, 866, 417, 611, 572, 687, 514, 533, 667, 567, 375, 815, 737, 990, 691, 532, 637, 859, 299, 786, 472, 409, 564, 700, 239, 933, 358, 346, 589, 613, 391, 588, 367, 731, 312, 518, 345, 710, 804, 702, 215, 194, 986, 583, 550, 629, 935, 429, 796, 291, 410, 899, 455, 369, 679, 828, 812, 784, 669, 480, 699, 585, 788, 278, 463, 626, 723, 707, 595, 717, 734, 795, 593, 839, 563, 362, 690, 895, 858, 766, 251, 495, 495, 240, 365, 483, 714, 851, 486, 588, 878, 257, 658, 1007, 703, 708, 773, 805, 474, 149, 770, 619, 601, 553, 794, 738, 354, 456, 586, 569, 758, 317, 272, 504, 371, 190, 220, 68, 292, 297, 360, 236, 202, 102, 108, 178, 285, 207, 233, 538, 339, 333, 266, 114, 109, 213, 214, 332, 340, 298, 78, 429, 316, 266, 195, 247, 248, 429, 348, 244, 127, 283, 105, 128, 540, 311, 347, 151, 220, 317, 386, 226, 114, 270, 416, 246, 280, 378, 163, 143, 227, 299, 488, 197, 211, 164, 455, 223, 237, 422, 382, 154, 231, 286, 95, 357, 202, 244, 219, 208, 384, 422, 295, 192, 193, 353, 301, 262, 278, 92, 358, 196, 239, 333, 118, 156, 264, 384, 395, 299, 388, 278, 263, 240, 195, 225, 99, 192, 317, 368, 371, 206, 220, 360, 133, 505, 385, 378, 265, 164, 226, 362, 362, 213, 367, 139, 191, 252, 174, 215, 460, 209, 87, 422, 295, 262, 115, 327, 340, 231, 163, 160, 157, 144, 420, 348, 297, 450, 506, 204, 270, 401, 218, 94, 103, 761, 328, 189, 398, 293, 392, 118, 491, 247, 235, 82, 225, 219, 275, 291, 263, 183, 110, 178, 137, 212, 377, 187, 221, 420, 146, 338, 261, 237, 210, 471, 244, 202, 421, 318, 297, 291, 203, 257, 240, 201, 232, 175, 265, 161, 332, 141, 198, 283, 176, 95, 160, 142, 98, 275, 62, 215, 145, 100, 115, 80, 255, 192, 190, 110, 229, 178, 151, 64, 210, 160, 81, 140, 211, 289, 79, 213, 108, 98, 71, 93, 835, 458, 879, 708, 820, 772, 907, 993, 560, 690, 482, 821, 556, 940, 760, 912, 508, 816, 406, 739, 864, 679, 867, 779, 927, 724, 702, 1021, 624, 1017, 997, 558, 908, 892, 379, 438, 656, 826, 675, 747, 908, 717, 943, 955, 1002, 973, 961, 914, 359, 764, 827, 351, 804, 1004, 996, 929, 929, 956, 737, 972, 791, 1010, 954, 742, 981, 946, 895, 956, 923, 974, 979, 938, 889, 251, 1018, 735, 995, 1023, 849, 742, 392, 850, 780, 503, 1020, 802, 721, 552, 723, 860, 1006, 516, 639, 825, 880, 902, 686, 549, 896, 651, 906, 985, 930, 514, 790, 897, 269, 924, 832, 733, 1014, 855, 718, 395, 923, 1010, 826, 738, 545, 898, 850, 612, 992, 1004, 767, 936, 987, 615, 832, 807, 835, 881, 968, 934, 860, 838, 939, 667, 688, 893, 984, 875, 989, 789, 891, 1003, 1019, 979, 875, 719, 642, 990, 775, 860, 918, 615, 730, 607, 931, 271, 649, 912, 727, 850, 786, 838, 905, 442, 941, 830, 764, 852, 960, 1020, 661, 918, 806, 913, 1023, 894, 684, 904, 352, 975, 868, 685, 705, 912, 618, 844, 624, 1021, 861, 589, 1001, 949, 665, 922, 895, 761, 843, 601, 808, 973, 1009, 790, 739, 458, 980, 809, 976, 733, 622, 616, 1010, 885, 1015, 716, 323, 783, 822, 594, 481, 947, 825, 822, 867, 758, 972, 663, 712, 948, 751, 698, 937, 828, 882, 372, 836, 764, 728, 741, 448, 595, 856, 916, 952, 724, 1022, 983, 883, 787, 502, 709, 996, 1001, 572, 957, 940, 878, 874, 461, 593, 700, 995, 870, 844, 817, 941, 754, 585, 715, 944, 898, 971, 840, 801, 750, 740, 712, 952, 897, 1016, 558, 1008, 973, 988, 589, 466, 853, 690, 866, 686, 587, 758, 647, 983, 940, 1024, 905, 887, 715, 803, 867, 807, 776, 882, 835, 337, 254, 833, 1001, 903, 760, 528, 915, 944, 512, 887, 507, 993, 301, 941, 926, 332, 741, 962, 800, 991, 892, 792, 945, 787, 827, 869, 707, 1005, 759, 473, 605, 406, 1004, 1007, 1011, 932, 312, 910, 876, 927, 770, 733, 915, 871, 725, 882, 977, 709, 813, 544, 701, 810, 648, 1024, 896, 870, 805, 937, 872, 604, 1023, 1022, 845, 889, 1006, 454, 792, 826, 415, 965, 976, 517, 674, 815, 913, 1018, 842, 422, 678, 789, 920, 946, 851, 1012, 987, 840, 1014, 1005, 925, 769, 982, 816, 978, 824, 856, 790, 649, 933, 954, 960, 598, 709, 796, 736, 901, 965, 916, 655, 950, 866, 896, 931, 878, 780, 920, 1002, 924, 868, 725, 1011, 675, 583, 259, 926, 1012, 918, 1009, 603, 551, 877, 950, 957, 1006, 928, 967, 814, 991, 846, 994, 732, 871, 734, 884, 878, 269, 953, 966, 1013, 955, 591, 909, 744, 768, 571, 891, 940, 890, 812, 976, 986, 1022, 1004, 443, 985, 986, 808, 969, 911, 977, 719, 893, 974, 1017, 799, 473, 739, 752, 1019, 996, 865, 891, 813, 873, 975, 831, 845, 904, 978, 767, 982, 922, 492, 1011, 592, 955, 869, 726, 839, 649, 798, 964, 837, 862, 671, 913, 978, 861, 577, 914, 937, 1008, 708, 876, 666, 963, 856, 1024, 1013, 869, 626, 902, 999, 855, 993, 841, 921, 823, 824, 862, 828, 608, 581, 904, 998, 838, 859, 843, 735, 1017, 793, 994, 920, 997, 1023, 506, 868, 916, 840, 722, 721, 980, 997, 854, 972, 1001, 968, 875, 883, 1007, 963, 783, 941, 807, 989, 816, 998, 915, 602, 750, 998, 1000, 979, 644, 785, 909, 570, 288, 522, 988, 749, 980, 766, 526, 873, 962, 638, 947, 854, 1006, 337, 747, 991, 838, 1005, 841, 985, 879, 455, 844, 965, 908, 590, 949, 760, 647, 910, 920, 676, 1002, 793, 989, 969, 785, 755, 880, 792, 939, 728, 907, 662, 491, 794, 932, 844, 969, 986, 990, 693, 900, 461, 836, 955, 997, 981, 554, 508, 947, 944, 577, 916, 987, 669, 811, 1007, 789, 923, 985, 994, 384, 966, 538, 1014, 919, 730, 745, 740, 963, 574, 456, 574, 589, 852, 848, 744, 840, 861, 961, 737, 1015, 808, 894, 820, 646, 864, 943, 584, 935, 817, 946, 485, 886, 957, 996, 874, 778, 967, 1024, 988, 798, 555, 511, 595, 863, 655, 971, 659, 949, 841, 999, 800, 804, 936, 776, 545, 1021, 385, 851, 814, 730, 330, 963, 998, 656, 673, 687, 938, 685, 953, 1011, 795, 925, 816, 486, 705, 911, 819, 917, 823, 976, 912, 1018, 896, 857, 672, 1022, 729, 811, 697, 1012, 834, 901, 657, 992, 731, 971, 747, 942, 1016, 919, 968, 995, 513, 936, 462, 959, 983, 859, 977, 927, 988, 404, 664, 1009, 984, 947, 951, 934, 879, 214, 897, 970, 670, 761, 982, 922, 983, 506, 894, 778, 1020, 442, 276, 509, 392, 307, 375, 314, 457, 313, 394, 365, 205, 120, 128, 237, 297, 452, 236, 581, 345, 512, 292, 393, 158, 290, 258, 378, 515, 382, 213, 593, 368, 348, 210, 305, 259, 432, 362, 301, 169, 336, 118, 199, 658, 329, 369, 186, 338, 411, 462, 233, 187, 452, 428, 326, 288, 442, 327, 217, 318, 349, 490, 377, 426, 388, 490, 245, 335, 475, 433, 290, 292, 391, 219, 460, 237, 255, 225, 281, 450, 437, 416, 206, 243, 386, 313, 336, 292, 170, 375, 215, 258, 339, 173, 164, 322, 422, 463, 319, 441, 336, 316, 446, 229, 247, 112, 362, 382, 481, 382, 398, 237, 418, 261, 522, 436, 392, 345, 174, 366, 370, 384, 276, 369, 142, 251, 403, 216, 269, 537, 330, 102, 444, 311, 303, 203, 332, 387, 354, 203, 214, 352, 175, 427, 397, 388, 462, 617, 319, 304, 536, 374, 441, 153, 789, 336, 193, 484, 333, 479, 142, 682, 345, 284, 152, 256, 237, 286, 381, 283, 246, 180, 509, 240, 261, 473, 196, 302, 424, 249, 453, 267, 257, 216, 511, 264, 266, 502, 354, 333, 397, 254, 264, 384, 341, 346, 354, 275, 165, 359, 166, 208, 328, 186, 160, 253, 156, 144, 285, 192, 288, 310, 213, 260, 220, 263, 296, 241, 134, 317, 306, 184, 69, 217, 204, 111, 181, 234, 320, 96, 268, 139, 117, 135, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 287, 704, 405, 386, 383, 470, 552, 491, 423, 431, 238, 158, 164, 349, 312, 488, 238, 665, 363, 543, 343, 404, 304, 377, 328, 415, 558, 596, 513, 605, 396, 373, 285, 326, 281, 564, 365, 304, 177, 374, 126, 302, 686, 379, 453, 388, 419, 531, 572, 264, 414, 540, 557, 352, 367, 498, 476, 426, 399, 394, 535, 382, 447, 424, 530, 327, 341, 513, 506, 323, 312, 532, 279, 467, 245, 313, 332, 299, 482, 439, 429, 234, 314, 653, 322, 342, 314, 247, 379, 503, 437, 511, 318, 319, 382, 528, 564, 494, 457, 339, 437, 615, 266, 393, 214, 421, 396, 510, 389, 452, 298, 472, 294, 553, 523, 488, 642, 266, 378, 400, 478, 286, 413, 148, 309, 438, 579, 352, 615, 379, 117, 745, 324, 322, 219, 383, 418, 416, 213, 247, 355, 273, 449, 415, 511, 492, 701, 398, 308, 561, 398, 484, 365, 845, 369, 231, 495, 436, 483, 211, 706, 349, 327, 169, 302, 322, 375, 502, 547, 328, 341, 614, 338, 300, 508, 493, 398, 440, 280, 471, 395, 448, 310, 673, 293, 290, 539, 396, 613, 510, 282, 267, 391, 372, 353, 377, 303, 198, 420, 176, 373, 361, 196, 193, 301, 170, 174, 357, 247, 298, 350, 252, 287, 241, 358, 315, 250, 142, 342, 325, 192, 71, 256, 307, 218, 238, 267, 371, 107, 301, 180, 127, 165, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 482, 834, 496, 420, 510, 526, 598, 537, 471, 505, 264, 272, 221, 386, 317, 702, 305, 670, 367, 658, 386, 433, 405, 406, 429, 471, 579, 664, 615, 643, 401, 427, 353, 449, 348, 570, 535, 312, 412, 476, 146, 348, 731, 397, 500, 471, 451, 701, 618, 318, 423, 627, 571, 395, 379, 524, 541, 469, 549, 401, 652, 445, 592, 551, 534, 454, 517, 530, 519, 366, 339, 569, 316, 634, 278, 420, 528, 314, 596, 569, 514, 308, 320, 681, 375, 540, 460, 472, 390, 537, 470, 534, 339, 380, 391, 552, 630, 496, 556, 393, 461, 656, 320, 504, 285, 518, 438, 739, 414, 465, 309, 548, 355, 583, 527, 518, 733, 345, 427, 577, 572, 346, 622, 393, 347, 441, 635, 359, 683, 552, 324, 808, 358, 376, 259, 385, 446, 438, 620, 381, 424, 340, 482, 424, 520, 500, 745, 538, 341, 663, 422, 507, 447, 877, 501, 313, 600, 469, 526, 273, 763, 414, 367, 218, 485, 407, 387, 543, 584, 497, 513, 646, 404, 364, 531, 521, 500, 544, 308, 554, 433, 529, 406, 710, 345, 390, 573, 567, 652, 588, 298, 389, 493, 379, 377, 477, 468, 317, 530, 207, 379, 387, 224, 198, 342, 264, 212, 394, 284, 351, 364, 269, 316, 249, 380, 334, 259, 163, 363, 424, 203, 75, 259, 336, 239, 317, 289, 415, 113, 305, 218, 143, 201, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 616, 874, 678, 500, 605, 536, 674, 633, 515, 536, 277, 428, 321, 417, 334, 727, 325, 677, 394, 688, 559, 457, 435, 583, 480, 562, 644, 679, 639, 752, 425, 608, 393, 546, 568, 596, 738, 344, 582, 609, 412, 480, 736, 465, 580, 692, 557, 714, 691, 453, 577, 636, 767, 435, 396, 588, 607, 586, 650, 429, 703, 459, 613, 570, 646, 660, 593, 575, 529, 392, 517, 630, 341, 783, 601, 422, 614, 356, 641, 599, 661, 463, 382, 728, 663, 584, 501, 565, 446, 576, 506, 564, 374, 395, 545, 573, 636, 501, 653, 553, 622, 659, 454, 555, 321, 603, 447, 781, 479, 480, 404, 666, 487, 596, 573, 533, 791, 409, 745, 612, 671, 507, 733, 479, 360, 537, 848, 494, 710, 565, 441, 820, 547, 443, 276, 425, 504, 555, 656, 410, 459, 445, 489, 449, 554, 505, 763, 565, 371, 698, 438, 574, 471, 893, 571, 413, 675, 490, 561, 301, 775, 428, 402, 323, 582, 444, 711, 546, 641, 618, 520, 698, 550, 473, 561, 651, 544, 727, 346, 595, 515, 603, 520, 746, 513, 396, 636, 594, 699, 620, 472, 485, 562, 440, 573, 512, 508, 358, 611, 219, 386, 451, 236, 270, 373, 308, 293, 440, 331, 434, 376, 284, 358, 257, 385, 340, 282, 205, 370, 444, 223, 85, 311, 362, 271, 329, 375, 427, 188, 335, 235, 162, 227, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 833, 620, 897, 706, 643, 609, 545, 678, 827, 532, 699, 361, 432, 641, 581, 337, 737, 436, 682, 456, 773, 573, 606, 695, 635, 631, 581, 694, 794, 647, 779, 445, 611, 525, 556, 614, 668, 767, 418, 586, 746, 574, 497, 826, 520, 713, 709, 581, 727, 804, 527, 631, 645, 826, 576, 515, 625, 685, 628, 667, 526, 726, 513, 678, 790, 669, 715, 629, 741, 671, 420, 569, 667, 373, 801, 673, 618, 643, 497, 712, 645, 667, 482, 676, 745, 694, 620, 522, 861, 459, 726, 567, 667, 460, 470, 572, 578, 663, 552, 761, 729, 646, 663, 500, 573, 473, 650, 469, 786, 510, 556, 423, 713, 519, 628, 686, 607, 812, 451, 860, 680, 726, 527, 736, 494, 445, 612, 881, 506, 771, 659, 569, 835, 586, 544, 297, 582, 527, 560, 689, 601, 466, 548, 558, 483, 700, 507, 767, 650, 439, 709, 676, 586, 545, 902, 585, 486, 733, 520, 608, 452, 821, 484, 687, 350, 587, 521, 753, 621, 680, 675, 834, 745, 569, 496, 571, 704, 631, 796, 698, 608, 572, 620, 573, 794, 690, 475, 651, 607, 701, 784, 506, 565, 564, 468, 664, 714, 536, 383, 657, 262, 455, 519, 284, 330, 396, 344, 337, 461, 395, 448, 525, 356, 417, 262, 410, 394, 302, 292, 431, 465, 250, 150, 347, 430, 322, 539, 421, 480, 220, 378, 250, 175, 248, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 879, 649, 931, 749, 689, 722, 548, 721, 829, 536, 741, 372, 490, 708, 590, 515, 772, 615, 686, 468, 836, 837, 628, 762, 685, 644, 664, 705, 899, 697, 797, 573, 814, 647, 577, 681, 690, 804, 486, 774, 754, 584, 514, 841, 571, 793, 713, 616, 842, 842, 651, 808, 714, 866, 580, 609, 655, 759, 710, 698, 671, 766, 546, 825, 815, 684, 744, 729, 758, 683, 487, 596, 806, 562, 883, 749, 779, 703, 558, 715, 721, 813, 522, 730, 785, 718, 726, 643, 890, 789, 810, 601, 694, 514, 582, 602, 615, 717, 591, 766, 741, 692, 682, 550, 810, 635, 657, 504, 793, 559, 633, 567, 732, 550, 670, 749, 659, 881, 455, 890, 841, 863, 547, 756, 531, 504, 699, 905, 661, 818, 686, 709, 844, 608, 603, 323, 633, 595, 581, 768, 722, 554, 594, 632, 642, 707, 625, 935, 816, 502, 749, 710, 595, 770, 936, 641, 499, 754, 591, 625, 491, 831, 548, 717, 484, 593, 565, 825, 634, 748, 694, 938, 750, 702, 523, 666, 857, 759, 846, 783, 822, 614, 633, 608, 871, 694, 514, 653, 635, 718, 792, 517, 601, 728, 527, 849, 728, 686, 440, 710, 294, 538, 540, 350, 351, 413, 399, 351, 496, 398, 453, 547, 388, 514, 271, 451, 408, 316, 346, 433, 507, 293, 239, 365, 436, 392, 550, 430, 498, 226, 404, 283, 216, 274, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 885, 655, 951, 765, 743, 744, 687, 803, 840, 586, 797, 444, 546, 780, 623, 574, 786, 635, 699, 493, 873, 876, 637, 817, 695, 688, 757, 753, 956, 711, 854, 643, 823, 823, 618, 947, 706, 810, 511, 776, 795, 587, 532, 853, 605, 818, 773, 646, 906, 870, 656, 858, 738, 887, 685, 672, 662, 837, 714, 730, 784, 808, 684, 864, 871, 883, 817, 760, 783, 739, 524, 619, 829, 569, 934, 839, 875, 764, 677, 735, 813, 827, 688, 735, 798, 786, 796, 968, 904, 827, 842, 693, 870, 600, 683, 677, 667, 744, 597, 812, 819, 710, 761, 567, 873, 650, 666, 798, 815, 629, 642, 697, 748, 870, 748, 764, 787, 887, 541, 974, 864, 896, 565, 780, 688, 530, 703, 929, 831, 835, 718, 758, 887, 643, 648, 869, 636, 599, 611, 785, 840, 627, 630, 769, 656, 726, 634, 943, 853, 528, 818, 750, 604, 774, 954, 685, 649, 824, 670, 766, 525, 847, 585, 802, 512, 698, 667, 847, 681, 823, 734, 960, 862, 719, 850, 683, 876, 776, 877, 827, 874, 751, 701, 613, 911, 708, 599, 696, 683, 736, 900, 704, 728, 771, 689, 858, 828, 700, 472, 752, 311, 568, 596, 389, 390, 472, 474, 404, 524, 406, 469, 552, 462, 555, 281, 468, 512, 339, 350, 444, 589, 310, 302, 417, 453, 402, 622, 479, 525, 260, 438, 294, 253, 299, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 901, 922, 983, 782, 817, 878, 792, 832, 945, 675, 877, 448, 913, 803, 737, 582, 833, 640, 782, 604, 908, 945, 646, 834, 915, 862, 903, 809, 967, 867, 905, 814, 884, 851, 746, 951, 791, 829, 539, 806, 797, 667, 676, 929, 646, 828, 823, 656, 950, 889, 665, 885, 798, 914, 753, 702, 695, 869, 803, 736, 839, 865, 843, 893, 894, 891, 857, 828, 818, 830, 528, 812, 890, 650, 941, 863, 897, 784, 680, 799, 815, 888, 694, 949, 809, 799, 830, 980, 930, 892, 898, 927, 884, 844, 804, 697, 708, 979, 607, 839, 915, 830, 869, 671, 920, 784, 751, 850, 836, 790, 777, 769, 813, 880, 838, 954, 843, 953, 911, 986, 875, 967, 663, 820, 788, 552, 715, 937, 844, 894, 779, 784, 898, 872, 683, 874, 821, 817, 625, 832, 911, 690, 642, 829, 770, 751, 770, 970, 932, 567, 883, 766, 690, 818, 972, 899, 790, 829, 876, 797, 603, 950, 664, 870, 576, 809, 724, 859, 806, 926, 792, 995, 893, 791, 863, 819, 910, 805, 926, 831, 907, 769, 789, 746, 937, 781, 727, 865, 755, 807, 913, 842, 743, 836, 769, 923, 925, 794, 573, 828, 361, 625, 672, 400, 400, 501, 492, 673, 549, 426, 522, 572, 477, 578, 307, 513, 529, 470, 402, 482, 612, 332, 331, 486, 466, 519, 644, 484, 551, 269, 443, 298, 269, 326, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, 936, 1003, 971, 858, 884, 881, 999, 964, 689, 880, 495, 974, 934, 846, 590, 868, 657, 806, 720, 927, 984, 966, 925, 938, 887, 982, 850, 978, 928, 943, 825, 916, 864, 775, 1000, 994, 924, 691, 955, 910, 695, 839, 977, 917, 924, 893, 931, 955, 994, 725, 989, 863, 919, 802, 804, 774, 940, 867, 821, 1016, 925, 937, 900, 909, 896, 891, 837, 910, 923, 949, 923, 933, 671, 970, 972, 900, 846, 715, 921, 899, 911, 863, 954, 885, 805, 848, 1005, 953, 962, 976, 968, 920, 919, 899, 831, 798, 1000, 681, 846, 958, 859, 905, 688, 1007, 801, 931, 889, 880, 834, 797, 881, 864, 900, 925, 959, 942, 969, 961, 992, 925, 970, 692, 842, 796, 911, 724, 1010, 999, 935, 851, 973, 971, 913, 841, 888, 895, 901, 720, 950, 946, 728, 749, 930, 936, 910, 857, 973, 964, 725, 899, 845, 701, 824, 1015, 950, 794, 958, 998, 821, 753, 957, 697, 888, 762, 871, 761, 873, 811, 951, 841, 1001, 903, 850, 948, 846, 993, 939, 980, 886, 912, 954, 856, 755, 969, 959, 785, 911, 808, 881, 933, 957, 854, 878, 821, 953, 931, 903, 860, 960, 453, 648, 750, 483, 482, 586, 526, 676, 557, 446, 570, 601, 504, 609, 667, 543, 670, 474, 431, 608, 639, 468, 511, 616, 468, 598, 680, 490, 583, 288, 470, 308, 297, 393, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, 943, 1016, 1017, 886, 1023, 978, 1002, 1002, 756, 927, 505, 991, 983, 1010, 770, 891, 925, 897, 1023, 1003, 992, 1021, 946, 1009, 921, 995, 886, 1009, 934, 966, 935, 943, 903, 892, 1013, 1024, 940, 934, 1013, 1007, 999, 909, 982, 983, 937, 1020, 992, 968, 1003, 740, 1003, 976, 1013, 1017, 824, 956, 1008, 943, 1009, 1022, 1001, 977, 985, 953, 955, 958, 878, 964, 930, 962, 965, 935, 737, 992, 993, 932, 993, 917, 1014, 942, 936, 950, 987, 1002, 855, 1024, 1019, 977, 995, 982, 1010, 1019, 921, 931, 873, 927, 1006, 742, 974, 1017, 940, 969, 938, 1015, 952, 956, 928, 976, 872, 1017, 936, 945, 1023, 992, 990, 955, 1012, 995, 999, 943, 983, 999, 999, 923, 958, 990, 1017, 1020, 1000, 1007, 1015, 1006, 928, 940, 929, 937, 1001, 723, 1017, 962, 765, 950, 1000, 1011, 922, 912, 978, 989, 864, 930, 891, 768, 826, 1024, 1010, 989, 979, 1021, 868, 824, 1019, 1020, 894, 911, 973, 958, 1018, 981, 969, 858, 1018, 926, 999, 1021, 907, 1004, 942, 1008, 975, 932, 1001, 868, 854, 997, 1008, 925, 919, 1022, 1024, 1000, 1001, 935, 981, 823, 980, 972, 946, 1010, 988, 455, 654, 786, 487, 497, 655, 578, 695, 580, 494, 572, 632, 531, 679, 682, 597, 703, 541, 499, 610, 751, 479, 531, 662, 488, 617, 686, 645, 587, 400, 485, 354, 302, 436, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 667, 789, 582, 536, 676, 662, 705, 674, 510, 629, 660, 559, 748, 685, 610, 708, 610, 570, 640, 787, 514, 549, 728, 532, 619, 722, 661, 626, 403, 492, 368, 308, 445, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 692, 813, 645, 594, 720, 739, 787, 763, 537, 655, 732, 581, 750, 688, 614, 759, 632, 581, 718, 795, 521, 584, 744, 613, 684, 785, 685, 705, 421, 496, 383, 311, 460, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 494, 714, 818, 654, 696, 734, 801, 810, 766, 541, 700, 773, 588, 758, 750, 668, 793, 736, 628, 752, 801, 725, 595, 786, 618, 720, 805, 702, 711, 425, 499, 407, 330, 503, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 725, 872, 664, 796, 746, 855, 847, 800, 543, 723, 819, 608, 841, 765, 704, 811, 753, 641, 886, 884, 730, 669, 853, 623, 764, 846, 858, 714, 442, 602, 497, 370, 505, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 751, 874, 723, 861, 761, 866, 856, 822, 554, 742, 867, 681, 861, 777, 714, 820, 810, 709, 940, 890, 829, 729, 881, 697, 785, 905, 912, 719, 450, 604, 551, 385, 570, 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, 805, 922, 803, 873, 900, 872, 860, 875, 672, 805, 894, 696, 867, 823, 763, 851, 836, 760, 956, 899, 887, 807, 886, 780, 833, 935, 927, 723, 464, 627, 597, 411, 579, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 824, 850, 957, 840, 888, 926, 905, 963, 878, 677, 885, 910, 725, 871, 855, 765, 949, 863, 845, 970, 927, 916, 869, 921, 812, 842, 961, 959, 766, 476, 630, 616, 419, 585, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 981, 971, 843, 891, 942, 964, 984, 917, 706, 921, 944, 762, 898, 889, 824, 957, 876, 856, 981, 982, 928, 872, 939, 835, 866, 967, 965, 785, 486, 651, 622, 429, 587, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 988, 975, 975, 916, 978, 1001, 990, 933, 745, 1007, 974, 936, 970, 1002, 982, 961, 907, 988, 987, 985, 941, 895, 955, 930, 910, 997, 981, 795, 521, 669, 639, 440, 649, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 990, 984, 1024, 985, 991, 1012, 1001, 959, 959, 1013, 976, 944, 1013, 1021, 1020, 989, 946, 1022, 1005, 989, 999, 1002, 1004, 984, 921, 1020, 1014, 1015, 538, 682, 654, 456, 733, 814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 755, 673, 583, 751, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 759, 702, 624, 757, 845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 812, 718, 724, 765, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 838, 721, 731, 799, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 858, 806, 735, 813, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 894, 826, 742, 902, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 916, 849, 772, 916, 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 921, 908, 789, 932, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 673, 970, 945, 798, 955, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 997, 1019, 812, 960, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; diff --git a/src/H_1024_2048_4f.h b/src/H_1024_2048_4f.h new file mode 100644 index 0000000..b71e49a --- /dev/null +++ b/src/H_1024_2048_4f.h @@ -0,0 +1,16 @@ +/* + FILE....: H_1024_2048_4f.h + + Static arrays for LDPC codec H_1024_2048_4f, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_1024_2048_4f_NUMBERPARITYBITS 1024 +#define H_1024_2048_4f_MAX_ROW_WEIGHT 12 +#define H_1024_2048_4f_CODELENGTH 2048 +#define H_1024_2048_4f_NUMBERROWSHCOLS 1024 +#define H_1024_2048_4f_MAX_COL_WEIGHT 54 +#define H_1024_2048_4f_DEC_TYPE 0 +#define H_1024_2048_4f_MAX_ITER 100 + +extern const uint16_t H_1024_2048_4f_H_rows[]; +extern const uint16_t H_1024_2048_4f_H_cols[]; diff --git a/src/H_128_256_5.c b/src/H_128_256_5.c new file mode 100644 index 0000000..75c6ccf --- /dev/null +++ b/src/H_128_256_5.c @@ -0,0 +1,22 @@ +/* + FILE....: H_128_256_5.c + + Static arrays for LDPC codec H_128_256_5, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_128_256_5.h" + +const uint16_t H_128_256_5_H_rows[] = { +2, 44, 14, 2, 15, 36, 28, 19, 17, 7, 20, 11, 3, 9, 12, 13, 29, 7, 25, 11, 31, 13, 53, 15, 11, 6, 5, 61, 9, 13, 7, 22, 8, 10, 5, 11, 32, 9, 8, 35, 17, 13, 11, 33, 1, 33, 5, 14, 12, 21, 31, 1, 20, 2, 8, 7, 22, 4, 24, 31, 71, 20, 10, 51, 3, 65, 6, 41, 3, 40, 35, 10, 6, 16, 37, 24, 21, 4, 63, 8, 17, 9, 15, 5, 3, 7, 18, 33, 6, 36, 1, 5, 74, 27, 18, 24, 22, 8, 22, 26, 23, 14, 39, 4, 30, 24, 26, 29, 15, 2, 1, 3, 29, 23, 52, 56, 45, 12, 4, 28, 23, 53, 29, 14, 16, 1, 41, 18, 70, 66, 50, 19, 37, 46, 61, 21, 33, 32, 51, 21, 57, 28, 18, 37, 41, 23, 43, 47, 42, 16, 83, 64, 66, 19, 41, 62, 10, 44, 9, 24, 46, 30, 13, 16, 41, 17, 19, 39, 49, 54, 39, 43, 2, 55, 64, 26, 46, 45, 43, 12, 21, 6, 40, 52, 32, 20, 85, 34, 73, 25, 42, 57, 25, 83, 34, 53, 15, 61, 53, 46, 28, 36, 48, 51, 36, 25, 65, 44, 38, 72, 48, 68, 12, 16, 37, 35, 45, 39, 25, 40, 80, 38, 22, 32, 49, 34, 27, 57, 35, 34, 74, 19, 56, 38, 31, 32, 26, 82, 4, 18, 58, 56, 67, 77, 76, 60, 80, 44, 86, 68, 57, 27, 37, 20, 44, 29, 72, 71, 72, 42, 83, 50, 114, 48, 39, 67, 74, 30, 63, 51, 47, 68, 47, 36, 52, 95, 82, 38, 89, 70, 77, 53, 78, 76, 84, 78, 66, 64, 62, 55, 28, 17, 75, 27, 45, 68, 61, 67, 55, 49, 14, 73, 86, 42, 55, 71, 67, 23, 50, 10, 59, 74, 80, 57, 113, 50, 88, 30, 45, 90, 38, 105, 70, 66, 30, 86, 55, 59, 111, 89, 105, 63, 58, 31, 69, 48, 54, 82, 63, 85, 26, 27, 49, 85, 62, 52, 34, 70, 90, 59, 68, 74, 54, 60, 40, 60, 58, 40, 105, 87, 58, 75, 54, 35, 47, 84, 50, 56, 73, 78, 80, 97, 107, 62, 91, 49, 102, 71, 69, 33, 47, 46, 89, 103, 91, 83, 101, 97, 94, 65, 117, 66, 88, 73, 101, 42, 76, 88, 77, 90, 48, 105, 61, 104, 107, 52, 96, 100, 110, 60, 102, 92, 120, 79, 112, 87, 99, 81, 43, 93, 114, 101, 70, 80, 75, 93, 65, 79, 92, 77, 108, 59, 79, 81, 86, 95, 63, 51, 76, 86, 111, 81, 127, 98, 112, 100, 65, 91, 117, 110, 96, 73, 59, 100, 69, 92, 120, 98, 122, 72, 112, 84, 94, 103, 84, 85, 87, 88, 92, 77, 93, 116, 94, 79, 56, 111, 120, 64, 108, 107, 90, 89, 75, 87, 67, 43, 113, 107, 93, 76, 64, 105, 96, 88, 118, 94, 81, 89, 84, 98, 114, 78, 109, 115, 104, 78, 96, 54, 75, 58, 104, 115, 118, 113, 126, 110, 99, 95, 128, 119, 109, 82, 109, 98, 103, 113, 102, 113, 60, 119, 109, 106, 123, 128, 127, 117, 116, 81, 115, 124, 123, 99, 122, 91, 100, 97, 121, 112, 122, 116, 83, 125, 104, 108, 71, 102, 109, 93, 128, 95, 106, 103, 126, 110, 107, 69, 87, 123, 115, 120, 128, 100, 115, 123, 72, 121, 0, 118, 121, 85, 106, 101, 110, 101, 124, 99, 125, 117, 125, 97, 125, 106, 92, 114, 118, 91, 97, 108, 106, 126, 117, 104, 62, 114, 122, 123, 127, 126, 124, 95, 102, 124, 79, 124, 116, 111, 99, 90, 121, 127, 98, 111, 119, 96, 119, 108, 112, 119, 120, 103, 126, 122, 116, 94, 118, 82, 127, 69, 128, 125 +}; + +const uint16_t H_128_256_5_H_cols[] = { +45, 1, 13, 58, 27, 26, 10, 33, 14, 29, 12, 15, 16, 3, 5, 22, 9, 15, 4, 11, 8, 32, 18, 32, 19, 48, 38, 7, 17, 12, 21, 10, 9, 60, 40, 6, 5, 22, 9, 55, 17, 4, 19, 2, 39, 6, 15, 8, 41, 3, 11, 19, 23, 42, 34, 91, 13, 77, 48, 17, 7, 28, 13, 24, 6, 2, 10, 16, 54, 1, 2, 1, 10, 11, 37, 13, 15, 27, 30, 40, 26, 10, 2, 29, 59, 47, 32, 9, 23, 16, 1, 28, 36, 5, 6, 23, 4, 12, 5, 24, 3, 15, 13, 20, 18, 20, 21, 42, 9, 4, 57, 31, 2, 7, 27, 25, 7, 1, 8, 29, 35, 31, 21, 28, 40, 3, 23, 7, 52, 4, 65, 78, 35, 54, 18, 39, 29, 34, 20, 49, 22, 45, 24, 36, 36, 87, 8, 53, 12, 57, 52, 59, 62, 85, 86, 14, 108, 34, 51, 37, 44, 67, 71, 18, 16, 65, 40, 70, 27, 12, 35, 30, 50, 33, 17, 17, 44, 6, 14, 22, 26, 81, 43, 105, 58, 101, 55, 26, 19, 33, 53, 32, 43, 8, 42, 40, 71, 24, 43, 3, 46, 56, 41, 28, 25, 30, 44, 57, 34, 21, 5, 78, 68, 51, 55, 14, 74, 64, 32, 45, 42, 79, 20, 67, 34, 60, 30, 33, 11, 27, 50, 41, 66, 49, 53, 47, 11, 25, 73, 36, 14, 37, 57, 38, 24, 66, 18, 58, 64, 37, 29, 73, 75, 51, 59, 22, 91, 45, 69, 104, 47, 67, 31, 55, 31, 54, 25, 52, 30, 48, 69, 74, 38, 95, 26, 58, 50, 95, 101, 76, 65, 100, 94, 35, 113, 62, 60, 57, 46, 91, 88, 74, 75, 81, 43, 92, 37, 21, 44, 80, 63, 49, 20, 75, 87, 53, 54, 56, 68, 97, 46, 112, 64, 105, 69, 98, 28, 89, 76, 47, 63, 25, 51, 84, 79, 39, 50, 63, 61, 93, 99, 55, 46, 114, 49, 93, 50, 82, 23, 81, 82, 56, 83, 61, 98, 93, 64, 72, 46, 89, 48, 109, 78, 74, 33, 60, 38, 44, 80, 90, 75, 69, 96, 86, 19, 52, 92, 61, 16, 82, 61, 88, 65, 83, 111, 73, 67, 75, 56, 97, 77, 88, 95, 47, 111, 54, 85, 111, 84, 73, 56, 80, 38, 63, 36, 85, 35, 102, 83, 86, 41, 112, 39, 62, 53, 97, 114, 96, 78, 107, 99, 73, 123, 69, 78, 96, 88, 98, 101, 77, 87, 94, 90, 99, 68, 48, 51, 120, 89, 72, 109, 80, 97, 60, 64, 90, 71, 107, 49, 114, 100, 113, 72, 100, 41, 91, 79, 94, 66, 31, 101, 95, 123, 67, 61, 76, 68, 96, 106, 106, 86, 118, 90, 115, 58, 110, 39, 110, 84, 70, 100, 84, 114, 97, 84, 81, 87, 112, 52, 112, 85, 109, 74, 62, 70, 99, 118, 121, 103, 80, 104, 95, 45, 66, 104, 77, 59, 92, 120, 103, 76, 111, 113, 93, 107, 93, 62, 100, 79, 96, 108, 59, 126, 110, 112, 119, 92, 89, 86, 98, 82, 72, 43, 118, 42, 124, 109, 125, 81, 128, 104, 126, 77, 99, 121, 106, 91, 109, 124, 120, 128, 105, 107, 108, 124, 102, 108, 90, 125, 106, 103, 102, 127, 63, 102, 127, 117, 126, 125, 83, 120, 111, 76, 115, 122, 124, 71, 116, 123, 126, 94, 118, 70, 118, 83, 107, 79, 68, 115, 122, 126, 92, 122, 82, 113, 103, 125, 117, 116, 122, 101, 119, 113, 124, 66, 115, 88, 121, 104, 110, 127, 106, 119, 85, 105, 122, 98, 123, 116, 116, 105, 70, 72, 121, 128, 127, 108, 87, 117, 114, 119, 71, 110, 115, 103, 117, 128, 121, 89, 123, 116, 117, 0, 120, 94, 102, 128, 119, 125, 127 +}; +const float H_128_256_5_input[] = { +-8.8994349771084629, -2.2264881688239941, 15.221530002446757, -0.39525362027279998, 13.442727654278771, -10.000442582434765, 8.5404090461277598, 16.432027973130197, 14.246872691160114, 2.6448289703038665, 11.863343696232654, 4.174651054544948, 10.288062518986955, 12.085683283784871, 3.4121899888598004, 9.1115751924588562, -10.810079499566237, 1.3739160908287105, 10.193128819909694, 3.5997991319409715, 15.252939624442645, 7.8059185917026843, -1.141552617398524, -5.4585533732512204, -7.1985417950651627, -11.078712541348164, -3.7197747259098599, -6.9715544083806256, 4.8350467668286372, -8.4378844630126757, 9.2909631551985523, -13.264491023395877, 13.29420431281155, -16.107993796779667, -6.308916359108748, 11.90542068917763, -17.405334641933944, 6.4284228626032878, 3.0768153742069018, 11.853700717454576, 17.640154289991976, -5.2721404813136417, 20.584732959872778, -6.7125902650906779, 6.5978715835307131, -6.1735464272366514, 6.3164198345461697, -14.401260649632755, -14.487703458954298, -5.8513629748056406, 5.5729511574836881, -9.013132752980674, 8.9988683878222044, -11.263912700584942, 13.485110330806128, -4.8625805463887231, -8.9173751521280824, 10.960944349100908, -14.772741989217471, 1.1368460179590478, 10.533109114159828, -1.731122993192219, 6.0498682584846524, 13.360259295000249, -8.1132970979856438, 9.5693771119534112, -12.578014725946508, 7.0229599627046593, 4.3720950386342494, 14.366897307196593, -0.2595503946882991, -8.822187045424192, -17.794267274108481, -2.7237117577689975, 11.097280635523761, 9.7949231987861634, 15.294276496861425, 6.0841375010899243, 11.169445345055827, 11.904159075277251, 9.1840263923068974, -5.5011617203311012, 16.754980283161505, 7.5513624901915035, -12.170700227106005, -11.483103606370603, -12.025806209056533, 5.1085406001744822, 13.373965752403866, -13.93398032921742, -3.3375271260328137, -5.0546492889404364, 3.4021410284759925, 6.2487730438409157, -12.667072890747553, -10.733091469360994, -12.179180763062972, 11.176700470191063, -11.616901732983612, -10.119483446721208, -8.6850004796910767, -12.677334280090912, -4.3454670403804858, -9.6582743438569203, -9.4373477042683529, -5.0933688337275695, 14.946470562034275, -9.5827796114077728, -12.579787690724327, -5.1317618464667945, 9.7995335974617479, 3.935671855878343, -5.120219966909672, -1.0737815811081737, 12.262597164050909, 12.930462261713524, -10.002664845731484, 8.6911316894060171, 10.515367492600749, 17.842791232413518, 11.503068266000463, 0.7672764564891652, 14.793448459789646, 8.1945046885718504, -8.1324447231556771, 10.265204571293244, 10.433947332186976, -13.070884283907548, -8.3960998416231085, 4.9148913185470375, -10.422874683972211, -11.088739385454351, -5.2623788916708749, -9.4339832891969255, -1.6059826144931535, 11.258751578423034, 12.782380682326652, 10.796361068381742, 13.81940336087583, 6.0191480445312484, 5.0635927171792945, 8.8888332858691825, -5.8812839036685194, 13.782784721594529, 12.501681731989231, 11.315875387889772, -3.773961578229545, 10.665302965437366, 1.2443349889724857, 10.748108985336613, -10.647273973137242, -13.375772243768143, 10.778336161253916, 13.520253518547392, -0.31609537750065214, -2.475823983608934, -8.0419367447924746, -6.4823648863210481, -4.5798319665012235, 12.710284434647598, 11.140388782304239, 8.018507577316937, -12.549284695242829, 14.887316703670896, 15.010107967429951, -15.399171325118063, -8.0816667358175973, -6.6302855944401404, 10.566758114915686, -9.6712985774865867, -10.989892866088582, -2.9502229280575123, -7.8748744688277927, 13.391186021456775, -13.450214789026996, -6.4126752277302099, -11.16710059702414, -7.2444144765480658, -5.5672969972856778, -8.8773312015249726, 13.719522588578332, 11.07457454354517, 8.7479356580553347, 0.58609202162242569, -18.723523952614787, -1.9397327392511032, -8.6455901886153637, 9.2918044013476511, 4.8898010354938704, -6.9894142182003609, -0.1191884647878291, -13.44984965914426, -3.4596444772305261, 5.1319125752378314, -10.427093821749148, -8.5064597147739125, 14.736880938095643, -15.211136760645743, -10.38069323739759, 0.087732074612520833, -4.7977922493487748, 3.1108186580087001, 8.1492732382718991, -2.7096006449185972, 9.4614578695259421, -18.242468149470778, -10.800555835992892, -5.8325818881984466, 16.216906744162525, 16.028982056738251, 13.841633178111548, 3.301741016692473, -13.962273950825141, -12.080675707754205, 7.6736779018117174, 11.959683046750843, -9.8186269532308081, -6.8666083041682322, 10.854650842369852, -17.865310956014465, 13.342746302221908, 10.237148734886931, -9.5317378135033763, -3.3932680342422912, 11.135022697187321, -5.8464827434562983, -10.855498726923935, -10.389826062676315, 17.22405328987611, -8.6670566421031872, -4.4906061687679069, -13.926679140242809, 4.6527756761303296, 11.459319592377085, 16.469693825200174, -3.2267090796784621, -8.508420245307466, -14.014716857177133, 17.46825981866947, 8.7394092695610119, -10.559493481189753, 12.767938048701128, 15.138604949078795, 11.992106918420994, -4.1009466576601428, 10.895797683842719, -11.102485145032849, 9.2740371065936902, 5.0223781181934672, -13.009215931560048, -2.4537770130506042, 9.4538398738987919, -9.4463497897265984, -7.4868090201247508, 4.9784182834226272, 8.3854387393004792 +}; +const char H_128_256_5_detected_data[] = { +1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0 +}; diff --git a/src/H_128_256_5.h b/src/H_128_256_5.h new file mode 100644 index 0000000..899780c --- /dev/null +++ b/src/H_128_256_5.h @@ -0,0 +1,19 @@ +/* + FILE....: H_128_256_5.h + + Static arrays for LDPC codec H_128_256_5, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_128_256_5_NUMBERPARITYBITS 128 +#define H_128_256_5_MAX_ROW_WEIGHT 5 +#define H_128_256_5_CODELENGTH 256 +#define H_128_256_5_NUMBERROWSHCOLS 128 +#define H_128_256_5_MAX_COL_WEIGHT 5 +#define H_128_256_5_DEC_TYPE 0 +#define H_128_256_5_MAX_ITER 100 + +extern const uint16_t H_128_256_5_H_rows[]; +extern const uint16_t H_128_256_5_H_cols[]; +extern const float H_128_256_5_input[]; +extern const char H_128_256_5_detected_data[]; + diff --git a/src/H_16200_9720.c b/src/H_16200_9720.c new file mode 100644 index 0000000..84c28e7 --- /dev/null +++ b/src/H_16200_9720.c @@ -0,0 +1,16 @@ +/* + FILE....: H_16200_9720.c + + Static arrays for LDPC codec H_16200_9720, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_16200_9720.h" + +const uint16_t H_16200_9720_H_rows[] = { +4, 446, 699, 410, 240, 94, 285, 44, 122, 1210, 173, 208, 559, 707, 162, 319, 844, 389, 5, 447, 700, 411, 241, 95, 286, 45, 123, 1211, 174, 209, 560, 708, 163, 320, 845, 390, 6, 448, 701, 412, 242, 96, 287, 46, 124, 1212, 175, 210, 561, 709, 164, 321, 846, 391, 7, 449, 702, 413, 243, 97, 288, 47, 125, 1213, 176, 211, 562, 710, 165, 322, 847, 392, 8, 450, 703, 414, 244, 98, 289, 48, 126, 1214, 177, 212, 563, 711, 166, 323, 848, 393, 9, 451, 704, 415, 245, 99, 290, 49, 127, 1215, 178, 213, 564, 712, 167, 324, 849, 394, 10, 452, 705, 416, 246, 100, 291, 50, 128, 1216, 179, 214, 565, 713, 168, 325, 850, 395, 11, 453, 706, 417, 247, 101, 292, 51, 129, 1217, 180, 215, 566, 714, 169, 326, 851, 396, 12, 454, 707, 418, 248, 102, 293, 52, 130, 1218, 181, 216, 567, 715, 170, 327, 852, 397, 13, 455, 708, 419, 249, 103, 294, 53, 131, 1219, 182, 217, 568, 716, 171, 328, 853, 398, 14, 456, 709, 420, 250, 104, 295, 54, 132, 1220, 183, 218, 569, 717, 172, 329, 854, 399, 15, 457, 710, 421, 251, 105, 296, 55, 133, 1221, 184, 219, 570, 361, 173, 330, 855, 400, 16, 458, 711, 422, 252, 106, 297, 56, 134, 1222, 185, 220, 571, 362, 174, 331, 856, 401, 17, 459, 712, 423, 253, 107, 298, 57, 135, 1223, 186, 221, 572, 363, 175, 332, 857, 402, 18, 460, 713, 424, 254, 108, 299, 58, 136, 1224, 187, 222, 573, 361, 176, 333, 858, 403, 19, 461, 714, 425, 255, 109, 300, 59, 137, 1225, 188, 223, 574, 362, 177, 334, 859, 404, 20, 462, 715, 426, 256, 110, 301, 60, 138, 1226, 189, 224, 575, 363, 178, 335, 860, 405, 21, 463, 716, 427, 257, 111, 302, 61, 139, 1227, 190, 225, 576, 364, 179, 336, 861, 406, 22, 464, 717, 428, 258, 112, 303, 62, 140, 1228, 191, 226, 577, 365, 180, 337, 862, 407, 23, 465, 718, 429, 259, 113, 304, 63, 141, 1229, 192, 227, 578, 366, 181, 338, 863, 408, 24, 466, 719, 430, 260, 114, 305, 64, 142, 1230, 193, 228, 579, 367, 182, 339, 864, 409, 25, 467, 720, 431, 261, 115, 306, 65, 143, 1231, 194, 229, 580, 368, 183, 340, 865, 410, 26, 468, 361, 432, 262, 116, 307, 66, 144, 1232, 195, 230, 581, 369, 184, 341, 866, 411, 27, 469, 362, 433, 263, 117, 308, 67, 145, 1233, 196, 231, 582, 370, 185, 342, 867, 412, 28, 470, 363, 434, 264, 118, 309, 68, 146, 1234, 197, 232, 583, 371, 186, 343, 868, 413, 29, 471, 364, 435, 265, 119, 310, 69, 147, 1235, 198, 233, 584, 372, 187, 344, 869, 414, 30, 472, 365, 436, 266, 120, 311, 70, 148, 1236, 199, 234, 585, 373, 188, 345, 870, 415, 31, 473, 366, 437, 267, 121, 312, 71, 149, 1237, 200, 235, 586, 374, 189, 346, 871, 416, 32, 474, 367, 438, 268, 122, 313, 72, 150, 1238, 201, 236, 587, 375, 190, 347, 872, 417, 33, 475, 368, 439, 269, 123, 314, 73, 151, 1239, 202, 237, 588, 376, 191, 348, 873, 418, 34, 476, 369, 440, 1, 124, 315, 74, 152, 1240, 203, 238, 589, 377, 192, 349, 874, 419, 35, 477, 370, 441, 2, 125, 316, 75, 153, 1241, 204, 239, 590, 378, 193, 350, 875, 420, 36, 478, 371, 442, 3, 126, 317, 76, 154, 1242, 205, 240, 591, 379, 194, 351, 876, 421, 37, 479, 372, 443, 4, 127, 318, 77, 155, 1243, 206, 241, 592, 380, 195, 352, 877, 422, 38, 480, 373, 444, 5, 128, 319, 78, 156, 1244, 207, 242, 593, 381, 196, 353, 878, 423, 39, 481, 374, 445, 6, 129, 320, 79, 157, 1245, 208, 243, 594, 382, 197, 354, 879, 424, 40, 482, 375, 446, 7, 130, 321, 80, 158, 1246, 209, 244, 595, 383, 198, 355, 880, 425, 41, 483, 376, 447, 8, 131, 322, 81, 159, 1247, 210, 245, 596, 384, 199, 356, 881, 426, 42, 484, 377, 448, 9, 132, 323, 82, 160, 1248, 211, 246, 597, 385, 200, 357, 882, 427, 43, 485, 378, 449, 10, 133, 324, 83, 161, 1249, 212, 247, 598, 386, 201, 358, 883, 428, 44, 486, 379, 361, 11, 134, 325, 84, 162, 1250, 213, 248, 599, 387, 202, 359, 884, 429, 45, 487, 380, 362, 12, 135, 326, 85, 163, 1251, 214, 249, 600, 388, 203, 360, 885, 430, 46, 488, 381, 363, 13, 136, 327, 86, 164, 1252, 215, 250, 601, 389, 204, 1, 886, 431, 47, 489, 382, 364, 14, 137, 328, 87, 165, 1253, 216, 251, 602, 390, 205, 2, 887, 432, 48, 490, 383, 365, 15, 138, 329, 88, 166, 1254, 217, 252, 603, 391, 206, 3, 888, 433, 49, 491, 384, 366, 16, 139, 330, 89, 167, 1255, 218, 253, 604, 392, 207, 4, 889, 434, 50, 492, 385, 367, 17, 140, 331, 90, 168, 1256, 219, 254, 605, 393, 208, 5, 890, 435, 51, 493, 386, 368, 18, 141, 332, 91, 169, 1257, 220, 255, 606, 394, 209, 6, 891, 436, 52, 494, 387, 369, 19, 142, 333, 92, 170, 1258, 221, 256, 607, 395, 210, 7, 892, 437, 53, 495, 388, 370, 20, 143, 334, 93, 171, 1259, 222, 257, 608, 396, 211, 8, 893, 438, 54, 496, 389, 371, 21, 144, 335, 94, 172, 1260, 223, 258, 609, 397, 212, 9, 894, 439, 55, 497, 390, 372, 22, 145, 336, 95, 173, 1261, 224, 259, 610, 398, 213, 10, 895, 440, 56, 498, 391, 373, 23, 146, 337, 96, 174, 1262, 225, 260, 611, 399, 214, 11, 896, 441, 57, 499, 392, 374, 24, 147, 338, 97, 175, 1263, 226, 261, 612, 400, 215, 12, 897, 442, 58, 500, 393, 375, 25, 148, 339, 98, 176, 1264, 227, 262, 613, 401, 216, 13, 898, 443, 59, 501, 394, 376, 26, 149, 340, 99, 177, 1265, 228, 263, 614, 402, 217, 14, 899, 444, 60, 502, 395, 377, 27, 150, 341, 100, 178, 1266, 229, 264, 615, 403, 218, 15, 900, 445, 61, 503, 396, 378, 28, 151, 342, 101, 179, 1267, 230, 265, 616, 404, 219, 16, 901, 446, 62, 504, 397, 379, 29, 152, 343, 102, 180, 1268, 231, 266, 617, 405, 220, 17, 902, 447, 63, 505, 398, 380, 30, 153, 344, 103, 181, 1269, 232, 267, 618, 406, 221, 18, 903, 448, 64, 506, 399, 381, 31, 154, 345, 104, 182, 1270, 233, 268, 619, 407, 222, 19, 904, 449, 65, 507, 400, 382, 32, 155, 346, 105, 183, 1271, 234, 269, 620, 408, 223, 20, 905, 450, 66, 508, 401, 383, 33, 156, 347, 106, 184, 1272, 235, 270, 621, 409, 224, 21, 906, 451, 67, 509, 402, 384, 34, 157, 348, 107, 185, 1273, 236, 271, 622, 410, 225, 22, 907, 452, 68, 510, 403, 385, 35, 158, 349, 108, 186, 1274, 237, 272, 623, 411, 226, 23, 908, 453, 69, 511, 404, 386, 36, 159, 350, 109, 187, 1275, 238, 273, 624, 412, 227, 24, 909, 454, 70, 512, 405, 387, 37, 160, 351, 110, 188, 1276, 239, 274, 625, 413, 228, 25, 910, 455, 71, 513, 406, 388, 38, 161, 352, 111, 189, 1277, 240, 275, 626, 414, 229, 26, 911, 456, 72, 514, 407, 389, 39, 162, 353, 112, 190, 1278, 241, 276, 627, 415, 230, 27, 912, 457, 73, 515, 408, 390, 40, 163, 354, 113, 191, 1279, 242, 277, 628, 416, 231, 28, 913, 458, 74, 516, 409, 391, 41, 164, 355, 114, 192, 1280, 243, 278, 629, 417, 232, 29, 914, 459, 75, 517, 410, 392, 42, 165, 356, 115, 193, 1281, 244, 279, 630, 418, 233, 30, 915, 460, 76, 518, 411, 393, 43, 166, 357, 116, 194, 1282, 245, 280, 631, 419, 234, 31, 916, 461, 77, 519, 412, 394, 44, 167, 358, 117, 195, 1283, 246, 281, 632, 420, 235, 32, 917, 462, 78, 520, 413, 395, 45, 168, 359, 118, 196, 1284, 247, 282, 633, 421, 236, 33, 918, 463, 79, 521, 414, 396, 46, 169, 360, 119, 197, 1285, 248, 283, 634, 422, 237, 34, 919, 464, 80, 522, 415, 397, 47, 170, 1, 120, 198, 1286, 249, 284, 635, 423, 238, 35, 920, 465, 81, 523, 416, 398, 48, 171, 2, 121, 199, 1287, 250, 285, 636, 424, 239, 36, 921, 466, 82, 524, 417, 399, 49, 172, 3, 122, 200, 1288, 251, 286, 637, 425, 240, 37, 922, 467, 83, 525, 418, 400, 50, 173, 4, 123, 201, 1289, 252, 287, 638, 426, 241, 38, 923, 468, 84, 526, 419, 401, 51, 174, 5, 124, 202, 1290, 253, 288, 639, 427, 242, 39, 924, 469, 85, 527, 420, 402, 52, 175, 6, 125, 203, 1291, 254, 289, 640, 428, 243, 40, 925, 470, 86, 528, 421, 403, 53, 176, 7, 126, 204, 1292, 255, 290, 641, 429, 244, 41, 926, 471, 87, 529, 422, 404, 54, 177, 8, 127, 205, 1293, 256, 291, 642, 430, 245, 42, 927, 472, 88, 530, 423, 405, 55, 178, 9, 128, 206, 1294, 257, 292, 643, 431, 246, 43, 928, 473, 89, 531, 424, 406, 56, 179, 10, 129, 207, 1295, 258, 293, 644, 432, 247, 44, 929, 474, 90, 532, 425, 407, 57, 180, 11, 130, 208, 1296, 259, 294, 645, 433, 248, 45, 930, 475, 91, 533, 426, 408, 58, 181, 12, 131, 209, 1297, 260, 295, 646, 434, 249, 46, 931, 476, 92, 534, 427, 409, 59, 182, 13, 132, 210, 1298, 261, 296, 647, 435, 250, 47, 932, 477, 93, 535, 428, 410, 60, 183, 14, 133, 211, 1299, 262, 297, 648, 436, 251, 48, 933, 478, 94, 536, 429, 411, 61, 184, 15, 134, 212, 1300, 263, 298, 649, 437, 252, 49, 934, 479, 95, 537, 430, 412, 62, 185, 16, 135, 213, 1301, 264, 299, 650, 438, 253, 50, 935, 480, 96, 538, 431, 413, 63, 186, 17, 136, 214, 1302, 265, 300, 651, 439, 254, 51, 936, 481, 97, 539, 432, 414, 64, 187, 18, 137, 215, 1303, 266, 301, 652, 440, 255, 52, 937, 482, 98, 540, 433, 415, 65, 188, 19, 138, 216, 1304, 267, 302, 653, 441, 256, 53, 938, 483, 99, 541, 434, 416, 66, 189, 20, 139, 217, 1305, 268, 303, 654, 442, 257, 54, 939, 484, 100, 542, 435, 417, 67, 190, 21, 140, 218, 1306, 269, 304, 655, 443, 258, 55, 940, 485, 101, 543, 436, 418, 68, 191, 22, 141, 219, 1307, 270, 305, 656, 444, 259, 56, 941, 486, 102, 544, 437, 419, 69, 192, 23, 142, 220, 1308, 271, 306, 657, 445, 260, 57, 942, 487, 103, 545, 438, 420, 70, 193, 24, 143, 221, 1309, 272, 307, 658, 446, 261, 58, 943, 488, 104, 546, 439, 421, 71, 194, 25, 144, 222, 1310, 273, 308, 659, 447, 262, 59, 944, 489, 105, 547, 440, 422, 72, 195, 26, 145, 223, 1311, 274, 309, 660, 448, 263, 60, 945, 490, 106, 548, 441, 423, 73, 196, 27, 146, 224, 1312, 275, 310, 661, 449, 264, 61, 946, 491, 107, 549, 442, 424, 74, 197, 28, 147, 225, 1313, 276, 311, 662, 450, 265, 62, 947, 492, 108, 550, 443, 425, 75, 198, 29, 148, 226, 1314, 277, 312, 663, 451, 266, 63, 948, 493, 109, 551, 444, 426, 76, 199, 30, 149, 227, 1315, 278, 313, 664, 452, 267, 64, 949, 494, 110, 552, 445, 427, 77, 200, 31, 150, 228, 1316, 279, 314, 665, 453, 268, 65, 950, 495, 111, 553, 446, 428, 78, 201, 32, 151, 229, 1317, 280, 315, 666, 454, 269, 66, 951, 496, 112, 554, 447, 429, 79, 202, 33, 152, 230, 1318, 281, 316, 667, 455, 270, 67, 952, 497, 113, 555, 448, 430, 80, 203, 34, 153, 231, 1319, 282, 317, 668, 456, 271, 68, 953, 498, 114, 556, 449, 431, 81, 204, 35, 154, 232, 1320, 283, 318, 669, 457, 272, 69, 954, 499, 115, 557, 450, 432, 82, 205, 36, 155, 233, 1321, 284, 319, 670, 458, 273, 70, 955, 500, 116, 558, 451, 433, 83, 206, 37, 156, 234, 1322, 285, 320, 671, 459, 274, 71, 956, 501, 117, 559, 452, 434, 84, 207, 38, 157, 235, 1323, 286, 321, 672, 460, 275, 72, 957, 502, 118, 560, 453, 435, 85, 208, 39, 158, 236, 1324, 287, 322, 673, 461, 276, 73, 958, 503, 119, 561, 454, 436, 86, 209, 40, 159, 237, 1325, 288, 323, 674, 462, 277, 74, 959, 504, 120, 562, 455, 437, 87, 210, 41, 160, 238, 1326, 289, 324, 675, 463, 278, 75, 960, 505, 121, 563, 456, 438, 88, 211, 42, 161, 239, 1327, 290, 325, 676, 464, 279, 76, 961, 506, 122, 564, 457, 439, 89, 212, 43, 162, 240, 1328, 291, 326, 677, 465, 280, 77, 962, 507, 123, 565, 458, 440, 90, 213, 44, 163, 241, 1329, 292, 327, 678, 466, 281, 78, 963, 508, 124, 566, 459, 441, 91, 214, 45, 164, 242, 1330, 293, 328, 679, 467, 282, 79, 964, 509, 125, 567, 460, 442, 1, 215, 46, 165, 243, 1331, 294, 329, 680, 468, 283, 80, 965, 510, 126, 568, 461, 443, 2, 216, 47, 166, 244, 1332, 295, 330, 361, 469, 284, 81, 966, 511, 127, 569, 462, 444, 3, 217, 48, 167, 245, 1333, 296, 331, 362, 470, 285, 82, 967, 512, 128, 570, 463, 445, 4, 218, 49, 168, 246, 1334, 297, 332, 363, 471, 286, 83, 968, 513, 129, 571, 464, 446, 5, 219, 50, 169, 247, 1335, 298, 333, 364, 472, 287, 84, 969, 514, 130, 572, 465, 447, 6, 220, 51, 170, 248, 1336, 299, 334, 365, 473, 288, 85, 970, 515, 131, 573, 466, 448, 7, 221, 52, 171, 249, 1337, 300, 335, 366, 474, 289, 86, 971, 516, 132, 574, 467, 449, 8, 222, 53, 172, 250, 1338, 301, 336, 367, 475, 290, 87, 972, 517, 133, 575, 468, 450, 9, 223, 54, 173, 251, 1339, 302, 337, 368, 476, 291, 88, 973, 518, 134, 576, 469, 451, 10, 224, 55, 174, 252, 1340, 303, 338, 369, 477, 292, 89, 974, 519, 135, 577, 470, 452, 11, 225, 56, 175, 253, 1341, 304, 339, 370, 478, 293, 90, 975, 520, 136, 578, 471, 453, 12, 226, 57, 176, 254, 1342, 305, 340, 371, 479, 294, 91, 976, 521, 137, 579, 472, 454, 13, 227, 58, 177, 255, 1343, 306, 341, 372, 480, 295, 92, 977, 522, 138, 580, 473, 455, 14, 228, 59, 178, 256, 1344, 307, 342, 373, 481, 296, 93, 978, 523, 139, 581, 474, 456, 15, 229, 60, 179, 257, 1345, 308, 343, 374, 482, 297, 94, 979, 524, 140, 582, 475, 457, 16, 230, 61, 180, 258, 1346, 309, 344, 375, 483, 298, 95, 980, 525, 141, 583, 476, 458, 17, 231, 62, 181, 259, 1347, 310, 345, 376, 484, 299, 96, 981, 526, 142, 584, 477, 459, 18, 232, 63, 182, 260, 1348, 311, 346, 377, 485, 300, 97, 982, 527, 143, 585, 478, 460, 19, 233, 64, 183, 261, 1349, 312, 347, 378, 486, 301, 98, 983, 528, 144, 586, 479, 461, 20, 234, 65, 184, 262, 1350, 313, 348, 379, 487, 302, 99, 984, 529, 145, 587, 480, 462, 21, 235, 66, 185, 263, 1351, 314, 349, 380, 488, 303, 100, 985, 530, 146, 588, 481, 463, 22, 236, 67, 186, 264, 1352, 315, 350, 381, 489, 304, 101, 986, 531, 147, 589, 482, 464, 23, 237, 68, 187, 265, 1353, 316, 351, 382, 490, 305, 102, 987, 532, 148, 590, 483, 465, 24, 238, 69, 188, 266, 1354, 317, 352, 383, 491, 306, 103, 988, 533, 149, 591, 484, 466, 25, 239, 70, 189, 267, 1355, 318, 353, 384, 492, 307, 104, 989, 534, 150, 592, 485, 467, 26, 240, 71, 190, 268, 1356, 319, 354, 385, 493, 308, 105, 990, 535, 151, 593, 486, 468, 27, 241, 72, 191, 269, 1357, 320, 355, 386, 494, 309, 106, 991, 536, 152, 594, 487, 469, 28, 242, 73, 192, 270, 1358, 321, 356, 387, 495, 310, 107, 992, 537, 153, 595, 488, 470, 29, 243, 74, 193, 271, 1359, 322, 357, 388, 496, 311, 108, 993, 538, 154, 596, 489, 471, 30, 244, 75, 194, 272, 1360, 323, 358, 389, 497, 312, 109, 994, 539, 155, 597, 490, 472, 31, 245, 76, 195, 273, 1361, 324, 359, 390, 498, 313, 110, 995, 540, 156, 598, 491, 473, 32, 246, 77, 196, 274, 1362, 325, 360, 391, 499, 314, 111, 996, 541, 157, 599, 492, 474, 33, 247, 78, 197, 275, 1363, 326, 1, 392, 500, 315, 112, 997, 542, 158, 600, 493, 475, 34, 248, 79, 198, 276, 1364, 327, 2, 393, 501, 316, 113, 998, 543, 159, 601, 494, 476, 35, 249, 80, 199, 277, 1365, 328, 3, 394, 502, 317, 114, 999, 544, 160, 602, 495, 477, 36, 250, 81, 200, 278, 1366, 329, 4, 395, 503, 318, 115, 1000, 545, 161, 603, 496, 478, 37, 251, 82, 201, 279, 1367, 330, 5, 396, 504, 1, 116, 1001, 546, 162, 604, 497, 479, 38, 252, 83, 202, 280, 1368, 331, 6, 397, 505, 2, 117, 1002, 547, 163, 605, 498, 480, 39, 253, 84, 203, 281, 1369, 332, 7, 398, 506, 3, 118, 1003, 548, 164, 606, 499, 481, 40, 254, 85, 204, 282, 1370, 333, 8, 399, 507, 4, 119, 1004, 549, 165, 607, 500, 482, 41, 255, 86, 205, 283, 1371, 334, 9, 400, 508, 5, 120, 1005, 550, 166, 608, 501, 483, 42, 256, 87, 206, 284, 1372, 335, 10, 361, 509, 6, 121, 1006, 551, 167, 609, 502, 484, 43, 257, 88, 207, 285, 1373, 336, 11, 362, 510, 7, 122, 1007, 552, 168, 610, 503, 485, 44, 258, 89, 208, 286, 1374, 337, 12, 363, 511, 8, 123, 1008, 553, 169, 611, 504, 486, 45, 259, 90, 209, 287, 1375, 338, 13, 364, 512, 9, 124, 1009, 554, 170, 612, 505, 487, 46, 260, 91, 210, 288, 1376, 339, 14, 365, 513, 10, 125, 1010, 555, 171, 613, 506, 488, 47, 261, 92, 211, 289, 1377, 340, 15, 366, 514, 11, 126, 1011, 556, 172, 614, 507, 489, 48, 262, 93, 212, 290, 1378, 341, 16, 367, 515, 12, 127, 1012, 557, 173, 615, 508, 490, 49, 263, 94, 213, 291, 1379, 342, 17, 368, 516, 13, 128, 1013, 558, 174, 616, 509, 491, 50, 264, 95, 214, 292, 1380, 343, 18, 369, 517, 14, 129, 1014, 559, 175, 617, 510, 492, 51, 265, 96, 215, 293, 1381, 344, 19, 370, 518, 15, 130, 1015, 560, 176, 618, 511, 493, 52, 266, 97, 216, 294, 1382, 345, 20, 371, 519, 16, 131, 1016, 561, 177, 619, 512, 494, 53, 267, 98, 217, 295, 1383, 346, 21, 372, 520, 17, 132, 1017, 562, 178, 620, 513, 495, 54, 268, 99, 218, 296, 1384, 347, 22, 373, 521, 18, 133, 1018, 563, 179, 621, 514, 496, 55, 269, 100, 219, 297, 1385, 348, 23, 374, 522, 19, 134, 1019, 564, 180, 622, 515, 497, 56, 270, 101, 220, 298, 1386, 349, 24, 375, 523, 20, 135, 1020, 565, 181, 623, 516, 498, 57, 271, 102, 221, 299, 1387, 350, 25, 376, 524, 21, 136, 1021, 566, 182, 624, 517, 499, 58, 272, 103, 222, 300, 1388, 351, 26, 377, 525, 22, 137, 1022, 567, 183, 625, 518, 500, 59, 273, 104, 223, 301, 1389, 352, 27, 378, 526, 23, 138, 1023, 568, 184, 626, 519, 501, 60, 274, 105, 224, 302, 1390, 353, 28, 379, 527, 24, 139, 1024, 569, 185, 627, 520, 502, 61, 275, 106, 225, 303, 1391, 354, 29, 380, 528, 25, 140, 1025, 570, 186, 628, 521, 503, 62, 276, 107, 226, 304, 1392, 355, 30, 381, 529, 26, 141, 1026, 571, 187, 629, 522, 504, 63, 277, 108, 227, 305, 1393, 356, 31, 382, 530, 27, 142, 1027, 572, 188, 630, 523, 505, 64, 278, 109, 228, 306, 1394, 357, 32, 383, 531, 28, 143, 1028, 573, 189, 631, 524, 506, 65, 279, 110, 229, 307, 1395, 358, 33, 384, 532, 29, 144, 1029, 574, 190, 632, 525, 507, 66, 280, 111, 230, 308, 1396, 359, 34, 385, 533, 30, 145, 1030, 575, 191, 633, 526, 508, 67, 281, 112, 231, 309, 1397, 360, 35, 386, 534, 31, 146, 1031, 576, 192, 634, 527, 509, 68, 282, 113, 232, 310, 1398, 1, 36, 387, 535, 32, 147, 1032, 577, 193, 635, 528, 510, 69, 283, 114, 233, 311, 1399, 2, 37, 388, 536, 33, 148, 1033, 578, 194, 636, 529, 511, 70, 284, 115, 234, 312, 1400, 3, 38, 389, 537, 34, 149, 1034, 579, 195, 637, 530, 512, 71, 285, 116, 235, 313, 1401, 4, 39, 390, 538, 35, 150, 1035, 580, 196, 638, 531, 513, 72, 286, 117, 236, 314, 1402, 5, 40, 391, 539, 36, 151, 1036, 581, 197, 639, 532, 514, 73, 287, 118, 237, 315, 1403, 6, 41, 392, 540, 37, 152, 1037, 582, 198, 640, 533, 515, 74, 288, 119, 238, 316, 1404, 7, 42, 393, 541, 38, 153, 1038, 583, 199, 641, 534, 516, 75, 289, 120, 239, 317, 1405, 8, 43, 394, 542, 39, 154, 1039, 584, 200, 642, 535, 517, 76, 290, 121, 240, 318, 1406, 9, 44, 395, 543, 40, 155, 1040, 585, 201, 643, 536, 518, 77, 291, 122, 241, 319, 1407, 10, 45, 396, 544, 41, 156, 1041, 586, 202, 644, 537, 519, 78, 292, 123, 242, 320, 1408, 11, 46, 397, 545, 42, 157, 1042, 587, 203, 645, 538, 520, 79, 293, 124, 243, 321, 1409, 12, 47, 398, 546, 1, 158, 1043, 588, 204, 646, 539, 521, 80, 294, 125, 244, 322, 1410, 13, 48, 399, 547, 2, 159, 1044, 589, 205, 647, 540, 522, 81, 295, 126, 245, 323, 1411, 14, 49, 400, 548, 3, 160, 1045, 590, 206, 648, 541, 523, 82, 296, 127, 246, 324, 1412, 15, 50, 401, 549, 4, 161, 1046, 591, 207, 649, 542, 524, 83, 297, 128, 247, 325, 1413, 16, 51, 402, 550, 5, 162, 1047, 592, 208, 650, 543, 525, 84, 298, 129, 248, 326, 1414, 17, 52, 403, 551, 6, 163, 1048, 593, 209, 651, 544, 526, 85, 299, 130, 249, 327, 1415, 18, 53, 404, 552, 7, 164, 1049, 594, 210, 652, 545, 527, 86, 300, 131, 250, 328, 1416, 19, 54, 405, 553, 8, 165, 1050, 595, 211, 653, 546, 528, 87, 301, 132, 251, 329, 1417, 20, 55, 406, 554, 9, 166, 1051, 596, 212, 654, 547, 529, 88, 302, 133, 252, 330, 1418, 21, 56, 407, 555, 10, 167, 1052, 597, 213, 655, 548, 530, 89, 303, 134, 253, 331, 1419, 22, 57, 408, 556, 11, 168, 1053, 598, 214, 656, 549, 531, 90, 304, 135, 254, 332, 1420, 23, 58, 409, 557, 12, 169, 1054, 599, 215, 657, 550, 532, 91, 305, 136, 255, 333, 1421, 24, 59, 410, 558, 13, 170, 1055, 600, 216, 658, 551, 533, 92, 306, 137, 256, 334, 1422, 25, 60, 411, 559, 14, 171, 1056, 601, 217, 659, 552, 534, 93, 307, 138, 257, 335, 1423, 26, 61, 412, 560, 15, 172, 1057, 602, 218, 660, 553, 535, 94, 308, 139, 258, 336, 1424, 27, 62, 413, 561, 16, 173, 1058, 603, 219, 661, 554, 536, 95, 309, 140, 259, 337, 1425, 28, 63, 414, 562, 17, 174, 1059, 604, 220, 662, 555, 537, 96, 310, 141, 260, 338, 1426, 29, 64, 415, 563, 18, 175, 1060, 605, 221, 663, 556, 538, 97, 311, 142, 261, 339, 1427, 30, 65, 416, 564, 19, 176, 1061, 606, 222, 664, 557, 539, 98, 312, 143, 262, 340, 1428, 31, 66, 417, 565, 20, 177, 1062, 607, 223, 665, 558, 540, 99, 313, 144, 263, 341, 1429, 32, 67, 418, 566, 21, 178, 1063, 608, 224, 666, 559, 541, 100, 314, 145, 264, 342, 1430, 33, 68, 419, 567, 22, 179, 1064, 609, 225, 667, 560, 542, 101, 315, 146, 265, 343, 1431, 34, 69, 420, 568, 23, 180, 1065, 610, 226, 668, 561, 543, 102, 316, 147, 266, 344, 1432, 35, 70, 421, 569, 24, 181, 1066, 611, 227, 669, 562, 544, 103, 317, 148, 267, 345, 1433, 36, 71, 422, 570, 25, 182, 1067, 612, 228, 670, 563, 545, 104, 318, 149, 268, 346, 1434, 37, 72, 423, 571, 26, 183, 1068, 613, 229, 671, 564, 546, 105, 319, 150, 269, 347, 1435, 38, 73, 424, 572, 27, 184, 1069, 614, 230, 672, 565, 547, 106, 320, 151, 270, 348, 1436, 39, 74, 425, 573, 28, 185, 1070, 615, 231, 673, 566, 548, 107, 321, 152, 271, 349, 1437, 40, 75, 426, 574, 29, 186, 1071, 616, 232, 674, 567, 549, 108, 322, 153, 272, 350, 1438, 41, 76, 427, 575, 30, 187, 1072, 617, 233, 675, 568, 550, 109, 323, 154, 273, 351, 1439, 42, 77, 428, 576, 31, 188, 1073, 618, 234, 676, 569, 551, 110, 324, 155, 274, 352, 1440, 43, 78, 429, 577, 32, 189, 1074, 619, 235, 677, 570, 552, 111, 325, 156, 275, 353, 1081, 44, 79, 430, 578, 33, 190, 1075, 620, 236, 678, 571, 553, 112, 326, 157, 276, 354, 1082, 45, 80, 431, 579, 34, 191, 1076, 621, 237, 679, 572, 554, 113, 327, 158, 277, 355, 1083, 46, 81, 432, 580, 35, 192, 1077, 622, 238, 680, 573, 555, 114, 328, 159, 278, 356, 1084, 47, 82, 433, 581, 36, 193, 1078, 623, 239, 681, 574, 556, 115, 329, 160, 279, 357, 1085, 48, 83, 434, 582, 37, 194, 1079, 624, 240, 682, 575, 557, 116, 330, 161, 280, 358, 1086, 49, 84, 435, 583, 38, 195, 1080, 625, 241, 683, 576, 558, 117, 331, 162, 281, 359, 1087, 50, 85, 436, 584, 39, 196, 721, 626, 242, 684, 577, 559, 118, 332, 163, 282, 360, 1088, 51, 86, 437, 585, 40, 197, 722, 627, 243, 685, 578, 560, 119, 333, 164, 283, 1, 1089, 52, 87, 438, 586, 41, 198, 723, 628, 244, 686, 579, 561, 120, 334, 165, 284, 2, 1090, 53, 88, 439, 587, 42, 199, 724, 629, 245, 687, 580, 562, 121, 335, 166, 285, 3, 1091, 54, 89, 440, 588, 43, 200, 725, 630, 246, 688, 581, 563, 122, 336, 167, 286, 4, 1092, 55, 90, 441, 589, 44, 201, 726, 631, 247, 689, 582, 564, 123, 337, 168, 287, 5, 1093, 56, 91, 442, 590, 45, 202, 727, 632, 248, 690, 583, 565, 124, 338, 169, 288, 6, 1094, 57, 92, 443, 591, 46, 203, 728, 633, 249, 691, 584, 566, 125, 339, 170, 289, 7, 1095, 58, 93, 444, 592, 47, 204, 729, 634, 250, 692, 585, 567, 126, 340, 171, 290, 8, 1096, 59, 94, 445, 593, 48, 205, 730, 635, 251, 693, 586, 568, 127, 341, 172, 291, 9, 1097, 60, 95, 446, 594, 49, 206, 731, 636, 252, 694, 587, 569, 128, 342, 173, 292, 10, 1098, 61, 96, 447, 595, 50, 207, 732, 637, 253, 695, 588, 570, 129, 343, 174, 293, 11, 1099, 62, 97, 448, 596, 51, 208, 733, 638, 254, 696, 589, 571, 130, 344, 175, 294, 12, 1100, 63, 98, 449, 597, 52, 209, 734, 639, 255, 697, 590, 572, 131, 345, 176, 295, 13, 1101, 64, 99, 450, 598, 53, 210, 735, 640, 256, 698, 591, 573, 132, 346, 177, 296, 14, 1102, 65, 100, 451, 599, 54, 211, 736, 641, 257, 699, 592, 574, 133, 347, 178, 297, 15, 1103, 66, 101, 452, 600, 55, 212, 737, 642, 258, 700, 593, 575, 134, 348, 179, 298, 16, 1104, 67, 102, 453, 601, 56, 213, 738, 643, 259, 701, 594, 576, 135, 349, 180, 299, 17, 1105, 68, 103, 454, 602, 57, 214, 739, 644, 260, 702, 595, 577, 136, 350, 181, 300, 18, 1106, 69, 104, 455, 603, 58, 215, 740, 645, 261, 703, 596, 578, 137, 351, 182, 301, 19, 1107, 70, 105, 456, 604, 59, 216, 741, 646, 262, 704, 597, 579, 138, 352, 183, 302, 20, 1108, 71, 106, 457, 605, 60, 217, 742, 647, 263, 705, 598, 580, 139, 353, 184, 303, 21, 1109, 72, 107, 458, 606, 61, 218, 743, 648, 264, 706, 599, 581, 140, 354, 185, 304, 22, 1110, 73, 108, 459, 607, 62, 219, 744, 649, 265, 707, 600, 582, 141, 355, 186, 305, 23, 1111, 74, 109, 460, 608, 63, 220, 745, 650, 266, 708, 601, 583, 142, 356, 187, 306, 24, 1112, 75, 110, 461, 609, 64, 221, 746, 651, 267, 709, 602, 584, 143, 357, 188, 307, 25, 1113, 76, 111, 462, 610, 65, 222, 747, 652, 268, 710, 603, 585, 144, 358, 189, 308, 26, 1114, 77, 112, 463, 611, 66, 223, 748, 653, 269, 711, 604, 586, 145, 359, 190, 309, 27, 1115, 78, 113, 464, 612, 67, 224, 749, 654, 270, 712, 605, 587, 146, 360, 191, 310, 28, 1116, 79, 114, 465, 613, 68, 225, 750, 655, 271, 713, 606, 588, 147, 1, 192, 311, 29, 1117, 80, 115, 466, 614, 69, 226, 751, 656, 272, 714, 607, 589, 148, 2, 193, 312, 30, 1118, 81, 116, 467, 615, 70, 227, 752, 657, 273, 715, 608, 590, 149, 3, 194, 313, 31, 1119, 82, 117, 468, 616, 71, 228, 753, 658, 274, 716, 609, 591, 150, 4, 195, 314, 32, 1120, 83, 118, 469, 617, 72, 229, 754, 659, 275, 717, 610, 592, 151, 5, 196, 315, 33, 1121, 84, 119, 470, 618, 73, 230, 755, 660, 276, 718, 611, 593, 152, 6, 197, 316, 34, 1122, 85, 120, 471, 619, 74, 231, 756, 661, 277, 719, 612, 594, 153, 7, 198, 317, 35, 1123, 86, 121, 472, 620, 75, 232, 757, 662, 278, 720, 613, 595, 154, 8, 199, 318, 36, 1124, 87, 122, 473, 621, 76, 233, 758, 663, 279, 361, 614, 596, 155, 9, 200, 319, 37, 1125, 88, 123, 474, 622, 77, 234, 759, 664, 280, 362, 615, 597, 156, 10, 201, 320, 38, 1126, 89, 124, 475, 623, 78, 235, 760, 665, 281, 363, 616, 598, 157, 11, 202, 321, 39, 1127, 90, 125, 476, 624, 79, 236, 761, 666, 282, 364, 617, 599, 158, 12, 203, 322, 40, 1128, 91, 126, 477, 625, 80, 237, 762, 667, 283, 365, 618, 600, 159, 13, 204, 323, 41, 1129, 92, 127, 478, 626, 81, 238, 763, 668, 284, 366, 619, 601, 160, 14, 205, 324, 42, 1130, 93, 128, 479, 627, 82, 239, 764, 669, 285, 367, 620, 602, 161, 15, 206, 325, 43, 1131, 94, 129, 480, 628, 83, 240, 765, 670, 286, 368, 621, 603, 162, 16, 207, 326, 44, 1132, 95, 130, 481, 629, 84, 241, 766, 671, 287, 369, 622, 604, 163, 17, 208, 327, 45, 1133, 96, 131, 482, 630, 85, 242, 767, 672, 288, 370, 623, 605, 164, 18, 209, 328, 46, 1134, 97, 132, 483, 631, 86, 243, 768, 673, 289, 371, 624, 606, 165, 19, 210, 329, 47, 1135, 98, 133, 484, 632, 87, 244, 769, 674, 290, 372, 625, 607, 166, 20, 211, 330, 48, 1136, 99, 134, 485, 633, 88, 245, 770, 675, 291, 373, 626, 608, 167, 21, 212, 331, 49, 1137, 100, 135, 486, 634, 89, 246, 771, 676, 292, 374, 627, 609, 168, 22, 213, 332, 50, 1138, 101, 136, 487, 635, 90, 247, 772, 677, 293, 375, 628, 610, 169, 23, 214, 333, 51, 1139, 102, 137, 488, 636, 91, 248, 773, 678, 294, 376, 629, 611, 170, 24, 215, 334, 52, 1140, 103, 138, 489, 637, 92, 249, 774, 679, 295, 377, 630, 612, 171, 25, 216, 335, 53, 1141, 104, 139, 490, 638, 93, 250, 775, 680, 296, 378, 631, 613, 172, 26, 217, 336, 54, 1142, 105, 140, 491, 639, 94, 251, 776, 681, 297, 379, 632, 614, 173, 27, 218, 337, 55, 1143, 106, 141, 492, 640, 95, 252, 777, 682, 298, 380, 633, 615, 174, 28, 219, 338, 56, 1144, 107, 142, 493, 641, 96, 253, 778, 683, 299, 381, 634, 616, 175, 29, 220, 339, 57, 1145, 108, 143, 494, 642, 97, 254, 779, 684, 300, 382, 635, 617, 176, 30, 221, 340, 58, 1146, 109, 144, 495, 643, 98, 255, 780, 685, 301, 383, 636, 618, 177, 31, 222, 341, 59, 1147, 110, 145, 496, 644, 99, 256, 781, 686, 302, 384, 637, 619, 178, 32, 223, 342, 60, 1148, 111, 146, 497, 645, 100, 257, 782, 687, 303, 385, 638, 620, 179, 33, 224, 343, 61, 1149, 112, 147, 498, 646, 101, 258, 783, 688, 304, 386, 639, 621, 180, 34, 225, 344, 62, 1150, 113, 148, 499, 647, 102, 259, 784, 689, 305, 387, 640, 622, 181, 35, 226, 345, 63, 1151, 114, 149, 500, 648, 103, 260, 785, 690, 306, 388, 641, 623, 182, 36, 227, 346, 64, 1152, 115, 150, 501, 649, 104, 261, 786, 691, 307, 389, 642, 624, 183, 37, 228, 347, 65, 1153, 116, 151, 502, 650, 105, 262, 787, 692, 308, 390, 643, 625, 184, 38, 229, 348, 66, 1154, 117, 152, 503, 651, 106, 263, 788, 693, 309, 391, 644, 626, 185, 39, 230, 349, 67, 1155, 118, 153, 504, 652, 107, 264, 789, 694, 310, 392, 645, 627, 186, 40, 231, 350, 68, 1156, 119, 154, 505, 653, 108, 265, 790, 695, 311, 393, 646, 628, 187, 41, 232, 351, 69, 1157, 120, 155, 506, 654, 109, 266, 791, 696, 312, 394, 647, 629, 188, 42, 233, 352, 70, 1158, 121, 156, 507, 655, 110, 267, 792, 697, 313, 395, 648, 630, 189, 43, 234, 353, 71, 1159, 122, 157, 508, 656, 111, 268, 793, 698, 314, 396, 649, 631, 190, 44, 235, 354, 72, 1160, 123, 158, 509, 657, 112, 269, 794, 699, 315, 397, 650, 361, 191, 45, 236, 355, 73, 1161, 124, 159, 510, 658, 113, 270, 795, 700, 316, 398, 651, 362, 192, 46, 237, 356, 74, 1162, 125, 160, 511, 659, 114, 271, 796, 701, 317, 399, 652, 363, 193, 47, 238, 357, 75, 1163, 126, 161, 512, 660, 115, 272, 797, 702, 318, 400, 653, 364, 194, 48, 239, 358, 76, 1164, 127, 162, 513, 661, 116, 273, 798, 703, 319, 401, 654, 365, 195, 49, 240, 359, 77, 1165, 128, 163, 514, 662, 117, 274, 799, 704, 320, 402, 655, 366, 196, 50, 241, 360, 78, 1166, 129, 164, 515, 663, 118, 275, 800, 705, 321, 403, 656, 367, 197, 51, 242, 1, 79, 1167, 130, 165, 516, 664, 119, 276, 801, 706, 322, 404, 657, 368, 198, 52, 243, 2, 80, 1168, 131, 166, 517, 665, 120, 277, 802, 707, 323, 405, 658, 369, 199, 53, 244, 3, 81, 1169, 132, 167, 518, 666, 121, 278, 803, 708, 324, 406, 659, 370, 200, 54, 245, 4, 82, 1170, 133, 168, 519, 667, 122, 279, 804, 709, 325, 407, 660, 371, 201, 55, 246, 5, 83, 1171, 134, 169, 520, 668, 123, 280, 805, 710, 326, 408, 661, 372, 202, 56, 247, 6, 84, 1172, 135, 170, 521, 669, 124, 281, 806, 711, 327, 409, 662, 373, 203, 57, 248, 7, 85, 1173, 136, 171, 522, 670, 125, 282, 807, 712, 328, 410, 663, 374, 204, 58, 249, 8, 86, 1174, 137, 172, 523, 671, 126, 283, 808, 713, 329, 411, 664, 375, 205, 59, 250, 9, 87, 1175, 138, 173, 524, 672, 127, 284, 809, 714, 330, 412, 665, 376, 206, 60, 251, 10, 88, 1176, 139, 174, 525, 673, 128, 285, 810, 715, 331, 413, 666, 377, 207, 61, 252, 11, 89, 1177, 140, 175, 526, 674, 129, 286, 811, 716, 332, 414, 667, 378, 208, 62, 253, 12, 90, 1178, 141, 176, 527, 675, 130, 287, 812, 717, 333, 415, 668, 379, 209, 63, 254, 13, 91, 1179, 142, 177, 528, 676, 131, 288, 813, 718, 334, 416, 669, 380, 210, 64, 255, 14, 92, 1180, 143, 178, 529, 677, 132, 289, 814, 719, 335, 417, 670, 381, 211, 65, 256, 15, 93, 1181, 144, 179, 530, 678, 133, 290, 815, 720, 336, 418, 671, 382, 212, 66, 257, 16, 94, 1182, 145, 180, 531, 679, 134, 291, 816, 361, 337, 419, 672, 383, 213, 67, 258, 17, 95, 1183, 146, 181, 532, 680, 135, 292, 817, 362, 338, 420, 673, 384, 214, 68, 259, 18, 96, 1184, 147, 182, 533, 681, 136, 293, 818, 363, 339, 421, 674, 385, 215, 69, 260, 19, 97, 1185, 148, 183, 534, 682, 137, 294, 819, 364, 340, 422, 675, 386, 216, 70, 261, 20, 98, 1186, 149, 184, 535, 683, 138, 295, 820, 365, 341, 423, 676, 387, 217, 71, 262, 21, 99, 1187, 150, 185, 536, 684, 139, 296, 821, 366, 342, 424, 677, 388, 218, 72, 263, 22, 100, 1188, 151, 186, 537, 685, 140, 297, 822, 367, 343, 425, 678, 389, 219, 73, 264, 23, 101, 1189, 152, 187, 538, 686, 141, 298, 823, 368, 344, 426, 679, 390, 220, 74, 265, 24, 102, 1190, 153, 188, 539, 687, 142, 299, 824, 369, 345, 427, 680, 391, 221, 75, 266, 25, 103, 1191, 154, 189, 540, 688, 143, 300, 825, 370, 346, 428, 681, 392, 222, 76, 267, 26, 104, 1192, 155, 190, 541, 689, 144, 301, 826, 371, 347, 429, 682, 393, 223, 77, 268, 27, 105, 1193, 156, 191, 542, 690, 145, 302, 827, 372, 348, 430, 683, 394, 224, 78, 269, 28, 106, 1194, 157, 192, 543, 691, 146, 303, 828, 373, 349, 431, 684, 395, 225, 79, 270, 29, 107, 1195, 158, 193, 544, 692, 147, 304, 829, 374, 350, 432, 685, 396, 226, 80, 271, 30, 108, 1196, 159, 194, 545, 693, 148, 305, 830, 375, 351, 433, 686, 397, 227, 81, 272, 31, 109, 1197, 160, 195, 546, 694, 149, 306, 831, 376, 352, 434, 687, 398, 228, 82, 273, 32, 110, 1198, 161, 196, 547, 695, 150, 307, 832, 377, 353, 435, 688, 399, 229, 83, 274, 33, 111, 1199, 162, 197, 548, 696, 151, 308, 833, 378, 354, 436, 689, 400, 230, 84, 275, 34, 112, 1200, 163, 198, 549, 697, 152, 309, 834, 379, 355, 437, 690, 401, 231, 85, 276, 35, 113, 1201, 164, 199, 550, 698, 153, 310, 835, 380, 356, 438, 691, 402, 232, 86, 277, 36, 114, 1202, 165, 200, 551, 699, 154, 311, 836, 381, 357, 439, 692, 403, 233, 87, 278, 37, 115, 1203, 166, 201, 552, 700, 155, 312, 837, 382, 358, 440, 693, 404, 234, 88, 279, 38, 116, 1204, 167, 202, 553, 701, 156, 313, 838, 383, 359, 441, 694, 405, 235, 89, 280, 39, 117, 1205, 168, 203, 554, 702, 157, 314, 839, 384, 360, 442, 695, 406, 236, 90, 281, 40, 118, 1206, 169, 204, 555, 703, 158, 315, 840, 385, 1, 443, 696, 407, 237, 91, 282, 41, 119, 1207, 170, 205, 556, 704, 159, 316, 841, 386, 2, 444, 697, 408, 238, 92, 283, 42, 120, 1208, 171, 206, 557, 705, 160, 317, 842, 387, 3, 445, 698, 409, 239, 93, 284, 43, 121, 1209, 172, 207, 558, 706, 161, 318, 843, 388, 909, 722, 730, 681, 331, 576, 787, 807, 1950, 1590, 735, 1306, 599, 710, 204, 403, 1090, 761, 910, 723, 731, 682, 332, 577, 788, 808, 1951, 1591, 736, 1307, 600, 711, 205, 404, 1091, 762, 911, 724, 732, 683, 333, 578, 789, 809, 1952, 1592, 737, 1308, 601, 712, 206, 405, 1092, 763, 912, 725, 733, 684, 334, 579, 790, 810, 1953, 1593, 738, 1309, 602, 713, 207, 406, 1093, 764, 913, 726, 734, 685, 335, 580, 791, 811, 1954, 1594, 739, 1310, 603, 714, 208, 407, 1094, 765, 914, 727, 735, 686, 336, 581, 792, 812, 1955, 1595, 740, 1311, 604, 715, 209, 408, 1095, 766, 915, 728, 736, 687, 337, 582, 793, 813, 1956, 1596, 741, 1312, 605, 716, 210, 409, 1096, 767, 916, 729, 737, 688, 338, 583, 794, 814, 1957, 1597, 742, 1313, 606, 717, 211, 410, 1097, 768, 917, 730, 738, 689, 339, 584, 795, 815, 1958, 1598, 743, 1314, 607, 718, 212, 411, 1098, 769, 918, 731, 739, 690, 340, 585, 796, 816, 1959, 1599, 744, 1315, 608, 719, 213, 412, 1099, 770, 919, 732, 740, 691, 341, 586, 797, 817, 1960, 1600, 745, 1316, 609, 720, 214, 413, 1100, 771, 920, 733, 741, 692, 342, 587, 798, 818, 1961, 1601, 746, 1317, 610, 718, 215, 414, 1101, 772, 921, 734, 742, 693, 343, 588, 799, 819, 1962, 1602, 747, 1318, 611, 719, 216, 415, 1102, 773, 922, 735, 743, 694, 344, 589, 800, 820, 1963, 1603, 748, 1319, 612, 720, 217, 416, 1103, 774, 923, 736, 744, 695, 345, 590, 801, 821, 1964, 1604, 749, 1320, 613, 364, 218, 417, 1104, 775, 924, 737, 745, 696, 346, 591, 802, 822, 1965, 1605, 750, 1321, 614, 365, 219, 418, 1105, 776, 925, 738, 746, 697, 347, 592, 803, 823, 1966, 1606, 751, 1322, 615, 366, 220, 419, 1106, 777, 926, 739, 747, 698, 348, 593, 804, 824, 1967, 1607, 752, 1323, 616, 367, 221, 420, 1107, 778, 927, 740, 748, 699, 349, 594, 805, 825, 1968, 1608, 753, 1324, 617, 368, 222, 421, 1108, 779, 928, 741, 749, 700, 350, 595, 806, 826, 1969, 1609, 754, 1325, 618, 369, 223, 422, 1109, 780, 929, 742, 750, 701, 351, 596, 807, 827, 1970, 1610, 755, 1326, 619, 370, 224, 423, 1110, 781, 930, 743, 751, 702, 352, 597, 808, 828, 1971, 1611, 756, 1327, 620, 371, 225, 424, 1111, 782, 931, 744, 752, 703, 353, 598, 809, 829, 1972, 1612, 757, 1328, 621, 372, 226, 425, 1112, 783, 932, 745, 753, 704, 354, 599, 810, 830, 1973, 1613, 758, 1329, 622, 373, 227, 426, 1113, 784, 933, 746, 754, 705, 355, 600, 811, 831, 1974, 1614, 759, 1330, 623, 374, 228, 427, 1114, 785, 934, 747, 755, 706, 356, 601, 812, 832, 1975, 1615, 760, 1331, 624, 375, 229, 428, 1115, 786, 935, 748, 756, 707, 357, 602, 813, 833, 1976, 1616, 761, 1332, 625, 376, 230, 429, 1116, 787, 936, 749, 757, 708, 358, 603, 814, 834, 1977, 1617, 762, 1333, 626, 377, 231, 430, 1117, 788, 937, 750, 758, 709, 359, 604, 815, 835, 1978, 1618, 763, 1334, 627, 378, 232, 431, 1118, 789, 938, 751, 759, 710, 360, 605, 816, 836, 1979, 1619, 764, 1335, 628, 379, 233, 432, 1119, 790, 939, 752, 760, 711, 270, 606, 817, 837, 1980, 1620, 765, 1336, 629, 380, 234, 433, 1120, 791, 940, 753, 761, 712, 271, 607, 818, 838, 1981, 1621, 766, 1337, 630, 381, 235, 434, 1121, 792, 941, 754, 762, 713, 272, 608, 819, 839, 1982, 1622, 767, 1338, 631, 382, 236, 435, 1122, 793, 942, 755, 763, 714, 273, 609, 820, 840, 1983, 1623, 768, 1339, 632, 383, 237, 436, 1123, 794, 943, 756, 764, 715, 274, 610, 821, 841, 1984, 1624, 769, 1340, 633, 384, 238, 437, 1124, 795, 944, 757, 765, 716, 275, 611, 822, 842, 1985, 1625, 770, 1341, 634, 385, 239, 438, 1125, 796, 945, 758, 766, 717, 276, 612, 823, 843, 1986, 1626, 771, 1342, 635, 386, 240, 439, 1126, 797, 946, 759, 767, 718, 277, 613, 824, 844, 1987, 1627, 772, 1343, 636, 387, 241, 440, 1127, 798, 947, 760, 768, 719, 278, 614, 825, 845, 1988, 1628, 773, 1344, 637, 388, 242, 441, 1128, 799, 948, 761, 769, 720, 279, 615, 826, 846, 1989, 1629, 774, 1345, 638, 389, 243, 442, 1129, 800, 949, 762, 770, 450, 280, 616, 827, 847, 1990, 1630, 775, 1346, 639, 390, 244, 443, 1130, 801, 950, 763, 771, 451, 281, 617, 828, 848, 1991, 1631, 776, 1347, 640, 391, 245, 444, 1131, 802, 951, 764, 772, 452, 282, 618, 829, 849, 1992, 1632, 777, 1348, 641, 392, 246, 445, 1132, 803, 952, 765, 773, 453, 283, 619, 830, 850, 1993, 1633, 778, 1349, 642, 393, 247, 446, 1133, 804, 953, 766, 774, 454, 284, 620, 831, 851, 1994, 1634, 779, 1350, 643, 394, 248, 447, 1134, 805, 954, 767, 775, 455, 285, 621, 832, 852, 1995, 1635, 780, 1351, 644, 395, 249, 448, 1135, 806, 955, 768, 776, 456, 286, 622, 833, 853, 1996, 1636, 781, 1352, 645, 396, 250, 449, 1136, 807, 956, 769, 777, 457, 287, 623, 834, 854, 1997, 1637, 782, 1353, 646, 397, 251, 450, 1137, 808, 957, 770, 778, 458, 288, 624, 835, 855, 1998, 1638, 783, 1354, 647, 398, 252, 451, 1138, 809, 958, 771, 779, 459, 289, 625, 836, 856, 1999, 1639, 784, 1355, 648, 399, 253, 452, 1139, 810, 959, 772, 780, 460, 290, 626, 837, 857, 2000, 1640, 785, 1356, 649, 400, 254, 453, 1140, 811, 960, 773, 781, 461, 291, 627, 838, 858, 2001, 1641, 786, 1357, 650, 401, 255, 454, 1141, 812, 961, 774, 782, 462, 292, 628, 839, 859, 2002, 1642, 787, 1358, 651, 402, 256, 455, 1142, 813, 962, 775, 783, 463, 293, 629, 840, 860, 2003, 1643, 788, 1359, 652, 403, 257, 456, 1143, 814, 963, 776, 784, 464, 294, 630, 841, 861, 2004, 1644, 789, 1360, 653, 404, 258, 457, 1144, 815, 964, 777, 785, 465, 295, 631, 842, 862, 2005, 1645, 790, 1361, 654, 405, 259, 458, 1145, 816, 965, 778, 786, 466, 296, 632, 843, 863, 2006, 1646, 791, 1362, 655, 406, 260, 459, 1146, 817, 966, 779, 787, 467, 297, 633, 844, 864, 2007, 1647, 792, 1363, 656, 407, 261, 460, 1147, 818, 967, 780, 788, 468, 298, 634, 845, 865, 2008, 1648, 793, 1364, 657, 408, 262, 461, 1148, 819, 968, 781, 789, 469, 299, 635, 846, 866, 2009, 1649, 794, 1365, 658, 409, 263, 462, 1149, 820, 969, 782, 790, 470, 300, 636, 847, 867, 2010, 1650, 795, 1366, 659, 410, 264, 463, 1150, 821, 970, 783, 791, 471, 301, 637, 848, 868, 2011, 1651, 796, 1367, 660, 411, 265, 464, 1151, 822, 971, 784, 792, 472, 302, 638, 849, 869, 2012, 1652, 797, 1368, 661, 412, 266, 465, 1152, 823, 972, 785, 793, 473, 303, 639, 850, 870, 2013, 1653, 798, 1369, 662, 413, 267, 466, 1153, 824, 973, 786, 794, 474, 304, 640, 851, 871, 2014, 1654, 799, 1370, 663, 414, 268, 467, 1154, 825, 974, 787, 795, 475, 305, 641, 852, 872, 2015, 1655, 800, 1371, 664, 415, 269, 468, 1155, 826, 975, 788, 796, 476, 306, 642, 853, 873, 2016, 1656, 801, 1372, 665, 416, 270, 469, 1156, 827, 976, 789, 797, 477, 307, 643, 854, 874, 2017, 1657, 802, 1373, 666, 417, 271, 470, 1157, 828, 977, 790, 798, 478, 308, 644, 855, 875, 2018, 1658, 803, 1374, 667, 418, 272, 471, 1158, 829, 978, 791, 799, 479, 309, 645, 856, 876, 2019, 1659, 804, 1375, 668, 419, 273, 472, 1159, 830, 979, 792, 800, 480, 310, 646, 857, 877, 2020, 1660, 805, 1376, 669, 420, 274, 473, 1160, 831, 980, 793, 801, 481, 311, 647, 858, 878, 2021, 1661, 806, 1377, 670, 421, 275, 474, 1161, 832, 981, 794, 802, 482, 312, 648, 859, 879, 2022, 1662, 807, 1378, 671, 422, 276, 475, 1162, 833, 982, 795, 803, 483, 313, 649, 860, 880, 2023, 1663, 808, 1379, 672, 423, 277, 476, 1163, 834, 983, 796, 804, 484, 314, 650, 861, 881, 2024, 1664, 809, 1380, 673, 424, 278, 477, 1164, 835, 984, 797, 805, 485, 315, 651, 862, 882, 2025, 1665, 810, 1381, 674, 425, 279, 478, 1165, 836, 985, 798, 806, 486, 316, 652, 863, 883, 2026, 1666, 811, 1382, 675, 426, 280, 479, 1166, 837, 986, 799, 807, 487, 317, 653, 864, 884, 2027, 1667, 812, 1383, 676, 427, 281, 480, 1167, 838, 987, 800, 808, 488, 318, 654, 865, 885, 2028, 1668, 813, 1384, 677, 428, 282, 481, 1168, 839, 988, 801, 809, 489, 319, 655, 866, 886, 2029, 1669, 814, 1385, 678, 429, 283, 482, 1169, 840, 989, 802, 810, 490, 320, 656, 867, 887, 2030, 1670, 815, 1386, 679, 430, 284, 483, 1170, 841, 990, 803, 811, 491, 321, 657, 868, 888, 2031, 1671, 816, 1387, 680, 431, 285, 484, 1171, 842, 991, 804, 812, 492, 322, 658, 869, 889, 2032, 1672, 817, 1388, 681, 432, 286, 485, 1172, 843, 992, 805, 813, 493, 323, 659, 870, 890, 2033, 1673, 818, 1389, 682, 433, 287, 486, 1173, 844, 993, 806, 814, 494, 324, 660, 871, 891, 2034, 1674, 819, 1390, 683, 434, 288, 487, 1174, 845, 994, 807, 815, 495, 325, 661, 872, 892, 2035, 1675, 820, 1391, 684, 435, 289, 488, 1175, 846, 995, 808, 816, 496, 326, 662, 873, 893, 2036, 1676, 821, 1392, 685, 436, 290, 489, 1176, 847, 996, 809, 817, 497, 327, 663, 874, 894, 2037, 1677, 822, 1393, 686, 437, 291, 490, 1177, 848, 997, 810, 818, 498, 328, 664, 875, 895, 2038, 1678, 823, 1394, 687, 438, 292, 491, 1178, 849, 998, 811, 819, 499, 329, 665, 876, 896, 2039, 1679, 824, 1395, 688, 439, 293, 492, 1179, 850, 999, 812, 820, 500, 330, 666, 877, 897, 2040, 1680, 825, 1396, 689, 440, 294, 493, 1180, 851, 1000, 813, 821, 501, 331, 667, 878, 898, 2041, 1681, 826, 1397, 690, 441, 295, 494, 1181, 852, 1001, 814, 822, 502, 332, 668, 879, 899, 2042, 1682, 827, 1398, 691, 442, 296, 495, 1182, 853, 1002, 815, 823, 503, 333, 669, 880, 900, 2043, 1683, 828, 1399, 692, 443, 297, 496, 1183, 854, 1003, 816, 824, 504, 334, 670, 881, 901, 2044, 1684, 829, 1400, 693, 444, 298, 497, 1184, 855, 1004, 817, 825, 505, 335, 671, 882, 902, 2045, 1685, 830, 1401, 694, 445, 299, 498, 1185, 856, 1005, 818, 826, 506, 336, 672, 883, 903, 2046, 1686, 831, 1402, 695, 446, 300, 499, 1186, 857, 1006, 819, 827, 507, 337, 673, 884, 904, 2047, 1687, 832, 1403, 696, 447, 301, 500, 1187, 858, 1007, 820, 828, 508, 338, 674, 885, 905, 2048, 1688, 833, 1404, 697, 448, 302, 501, 1188, 859, 1008, 821, 829, 509, 339, 675, 886, 906, 2049, 1689, 834, 1405, 698, 449, 303, 502, 1189, 860, 1009, 822, 830, 510, 340, 676, 887, 907, 2050, 1690, 835, 1406, 699, 450, 304, 503, 1190, 861, 1010, 823, 831, 511, 341, 677, 888, 908, 2051, 1691, 836, 1407, 700, 451, 305, 504, 1191, 862, 1011, 824, 832, 512, 342, 678, 889, 909, 2052, 1692, 837, 1408, 701, 452, 306, 505, 1192, 863, 1012, 825, 833, 513, 343, 679, 890, 910, 2053, 1693, 838, 1409, 702, 453, 307, 506, 1193, 864, 1013, 826, 834, 514, 344, 680, 891, 911, 2054, 1694, 839, 1410, 703, 454, 308, 507, 1194, 865, 1014, 827, 835, 515, 345, 681, 892, 912, 2055, 1695, 840, 1411, 704, 455, 309, 508, 1195, 866, 1015, 828, 836, 516, 346, 682, 893, 913, 2056, 1696, 841, 1412, 705, 456, 310, 509, 1196, 867, 1016, 829, 837, 517, 347, 683, 894, 914, 2057, 1697, 842, 1413, 706, 457, 311, 510, 1197, 868, 1017, 830, 838, 518, 348, 684, 895, 915, 2058, 1698, 843, 1414, 707, 458, 312, 511, 1198, 869, 1018, 831, 839, 519, 349, 685, 896, 916, 2059, 1699, 844, 1415, 708, 459, 313, 512, 1199, 870, 1019, 832, 840, 520, 350, 686, 897, 917, 2060, 1700, 845, 1416, 709, 460, 314, 513, 1200, 871, 1020, 833, 841, 521, 351, 687, 898, 918, 2061, 1701, 846, 1417, 710, 461, 315, 514, 1201, 872, 1021, 834, 842, 522, 352, 688, 899, 919, 2062, 1702, 847, 1418, 711, 462, 316, 515, 1202, 873, 1022, 835, 843, 523, 353, 689, 900, 920, 2063, 1703, 848, 1419, 712, 463, 317, 516, 1203, 874, 1023, 836, 844, 524, 354, 690, 901, 921, 2064, 1704, 849, 1081, 713, 464, 318, 517, 1204, 875, 1024, 837, 845, 525, 355, 691, 902, 922, 2065, 1705, 850, 1082, 714, 465, 319, 518, 1205, 876, 1025, 838, 846, 526, 356, 692, 903, 923, 2066, 1706, 851, 1083, 715, 466, 320, 519, 1206, 877, 1026, 839, 847, 527, 357, 693, 904, 924, 2067, 1707, 852, 1084, 716, 467, 321, 520, 1207, 878, 1027, 840, 848, 528, 358, 694, 905, 925, 2068, 1708, 853, 1085, 717, 468, 322, 521, 1208, 879, 1028, 841, 849, 529, 359, 695, 906, 926, 2069, 1709, 854, 1086, 718, 469, 323, 522, 1209, 880, 1029, 842, 850, 530, 360, 696, 907, 927, 2070, 1710, 855, 1087, 719, 470, 324, 523, 1210, 881, 1030, 843, 851, 531, 92, 697, 908, 928, 2071, 1711, 856, 1088, 720, 471, 325, 524, 1211, 882, 1031, 844, 852, 532, 93, 698, 909, 929, 2072, 1712, 857, 1089, 681, 472, 326, 525, 1212, 883, 1032, 845, 853, 533, 94, 699, 910, 930, 2073, 1713, 858, 1090, 682, 473, 327, 526, 1213, 884, 1033, 846, 854, 534, 95, 700, 911, 931, 2074, 1714, 859, 1091, 683, 474, 328, 527, 1214, 885, 1034, 847, 855, 535, 96, 701, 912, 932, 2075, 1715, 860, 1092, 684, 475, 329, 528, 1215, 886, 1035, 848, 856, 536, 97, 702, 913, 933, 2076, 1716, 861, 1093, 685, 476, 330, 529, 1216, 887, 1036, 849, 857, 537, 98, 703, 914, 934, 2077, 1717, 862, 1094, 686, 477, 331, 530, 1217, 888, 1037, 850, 858, 538, 99, 704, 915, 935, 2078, 1718, 863, 1095, 687, 478, 332, 531, 1218, 889, 1038, 851, 859, 539, 100, 705, 916, 936, 2079, 1719, 864, 1096, 688, 479, 333, 532, 1219, 890, 1039, 852, 860, 540, 101, 706, 917, 937, 2080, 1720, 865, 1097, 689, 480, 334, 533, 1220, 891, 1040, 853, 861, 541, 102, 707, 918, 938, 2081, 1721, 866, 1098, 690, 481, 335, 534, 1221, 892, 1041, 854, 862, 542, 103, 708, 919, 939, 2082, 1722, 867, 1099, 691, 482, 336, 535, 1222, 893, 1042, 855, 863, 543, 104, 709, 920, 940, 2083, 1723, 868, 1100, 692, 483, 337, 536, 1223, 894, 1043, 856, 864, 544, 105, 710, 921, 941, 2084, 1724, 869, 1101, 693, 484, 338, 537, 1224, 895, 1044, 857, 865, 545, 106, 711, 922, 942, 2085, 1725, 870, 1081, 694, 485, 339, 538, 1225, 896, 1045, 858, 866, 546, 107, 712, 923, 943, 2086, 1726, 871, 1082, 695, 486, 340, 539, 1226, 897, 1046, 859, 867, 547, 108, 713, 924, 944, 2087, 1727, 872, 1083, 696, 487, 341, 540, 1227, 898, 1047, 860, 868, 548, 109, 714, 925, 945, 2088, 1728, 873, 1084, 697, 488, 342, 541, 1228, 899, 1048, 861, 869, 549, 110, 715, 926, 946, 2089, 1729, 874, 1085, 698, 489, 343, 542, 1229, 900, 1049, 862, 870, 550, 111, 716, 927, 947, 2090, 1730, 875, 1086, 699, 490, 344, 543, 1230, 901, 1050, 863, 871, 551, 112, 717, 928, 948, 2091, 1731, 876, 1087, 700, 491, 345, 544, 1231, 902, 1051, 864, 872, 552, 113, 718, 929, 949, 2092, 1732, 877, 1088, 701, 492, 346, 545, 1232, 903, 1052, 865, 873, 553, 114, 719, 930, 950, 2093, 1733, 878, 1089, 702, 493, 347, 546, 1233, 904, 1053, 866, 874, 554, 115, 720, 931, 951, 2094, 1734, 879, 1090, 703, 494, 348, 547, 1234, 905, 1054, 867, 875, 555, 116, 361, 932, 952, 2095, 1735, 880, 1091, 704, 495, 349, 548, 1235, 906, 1055, 868, 876, 556, 117, 362, 933, 953, 2096, 1736, 881, 1092, 705, 496, 350, 549, 1236, 907, 1056, 869, 877, 557, 118, 363, 934, 954, 2097, 1737, 882, 1093, 706, 497, 351, 550, 1237, 908, 1057, 870, 878, 558, 119, 364, 935, 955, 2098, 1738, 883, 1094, 707, 498, 352, 551, 1238, 909, 1058, 871, 879, 559, 120, 365, 936, 956, 2099, 1739, 884, 1095, 708, 499, 353, 552, 1239, 910, 1059, 872, 880, 560, 121, 366, 937, 957, 2100, 1740, 885, 1096, 709, 500, 354, 553, 1240, 911, 1060, 873, 881, 561, 122, 367, 938, 958, 2101, 1741, 886, 1097, 710, 501, 355, 554, 1241, 912, 1061, 874, 882, 562, 123, 368, 939, 959, 2102, 1742, 887, 1098, 711, 502, 356, 555, 1242, 913, 1062, 875, 883, 563, 124, 369, 940, 960, 2103, 1743, 888, 1099, 712, 503, 357, 556, 1243, 914, 1063, 876, 884, 564, 125, 370, 941, 961, 2104, 1744, 889, 1100, 713, 504, 358, 557, 1244, 915, 1064, 877, 885, 565, 126, 371, 942, 962, 2105, 1745, 890, 1101, 714, 505, 359, 558, 1245, 916, 1065, 878, 886, 566, 127, 372, 943, 963, 2106, 1746, 891, 1102, 715, 506, 360, 559, 1246, 917, 1066, 879, 887, 567, 128, 373, 944, 964, 2107, 1747, 892, 1103, 716, 507, 319, 560, 1247, 918, 1067, 880, 888, 568, 129, 374, 945, 965, 2108, 1748, 893, 1104, 717, 508, 320, 561, 1248, 919, 1068, 881, 889, 569, 130, 375, 946, 966, 2109, 1749, 894, 1105, 718, 509, 321, 562, 1249, 920, 1069, 882, 890, 570, 131, 376, 947, 967, 2110, 1750, 895, 1106, 719, 510, 322, 563, 1250, 921, 1070, 883, 891, 571, 132, 377, 948, 968, 2111, 1751, 896, 1107, 720, 511, 323, 564, 1251, 922, 1071, 884, 892, 572, 133, 378, 949, 969, 2112, 1752, 897, 1108, 401, 512, 324, 565, 1252, 923, 1072, 885, 893, 573, 134, 379, 950, 970, 2113, 1753, 898, 1109, 402, 513, 325, 566, 1253, 924, 1073, 886, 894, 574, 135, 380, 951, 971, 2114, 1754, 899, 1110, 403, 514, 326, 567, 1254, 925, 1074, 887, 895, 575, 136, 381, 952, 972, 2115, 1755, 900, 1111, 404, 515, 327, 568, 1255, 926, 1075, 888, 896, 576, 137, 382, 953, 973, 2116, 1441, 901, 1112, 405, 516, 328, 569, 1256, 927, 1076, 889, 897, 577, 138, 383, 954, 974, 2117, 1442, 902, 1113, 406, 517, 329, 570, 1257, 928, 1077, 890, 898, 578, 139, 384, 955, 975, 2118, 1443, 903, 1114, 407, 518, 330, 571, 1258, 929, 1078, 891, 899, 579, 140, 385, 956, 976, 2119, 1444, 904, 1115, 408, 519, 331, 572, 1259, 930, 1079, 892, 900, 580, 141, 386, 957, 977, 2120, 1445, 905, 1116, 409, 520, 332, 573, 1260, 931, 1080, 893, 901, 581, 142, 387, 958, 978, 2121, 1446, 906, 1117, 410, 521, 333, 574, 1261, 932, 721, 894, 902, 582, 143, 388, 959, 979, 2122, 1447, 907, 1118, 411, 522, 334, 575, 1262, 933, 722, 895, 903, 583, 144, 389, 960, 980, 2123, 1448, 908, 1119, 412, 523, 335, 576, 1263, 934, 723, 896, 904, 584, 145, 390, 961, 981, 2124, 1449, 909, 1120, 413, 524, 336, 577, 1264, 935, 724, 897, 905, 585, 146, 391, 962, 982, 2125, 1450, 910, 1121, 414, 525, 337, 578, 1265, 936, 725, 898, 906, 586, 147, 392, 963, 983, 2126, 1451, 911, 1122, 415, 526, 338, 579, 1266, 937, 726, 899, 907, 587, 148, 393, 964, 984, 2127, 1452, 912, 1123, 416, 527, 339, 580, 1267, 938, 727, 900, 908, 588, 149, 394, 965, 985, 2128, 1453, 913, 1124, 417, 528, 340, 581, 1268, 939, 728, 901, 909, 589, 150, 395, 966, 986, 2129, 1454, 914, 1125, 418, 529, 341, 582, 1269, 940, 729, 902, 910, 590, 151, 396, 967, 987, 2130, 1455, 915, 1126, 419, 530, 342, 583, 1270, 941, 730, 903, 911, 591, 152, 397, 968, 988, 2131, 1456, 916, 1127, 420, 531, 343, 584, 1271, 942, 731, 904, 912, 592, 153, 398, 969, 989, 2132, 1457, 917, 1128, 421, 532, 344, 585, 1272, 943, 732, 905, 913, 593, 154, 399, 970, 990, 2133, 1458, 918, 1129, 422, 533, 345, 586, 1273, 944, 733, 906, 914, 594, 155, 400, 971, 991, 2134, 1459, 919, 1130, 423, 534, 346, 587, 1274, 945, 734, 907, 915, 595, 156, 401, 972, 992, 2135, 1460, 920, 1131, 424, 535, 347, 588, 1275, 946, 735, 908, 916, 596, 157, 402, 973, 993, 2136, 1461, 921, 1132, 425, 536, 348, 589, 1276, 947, 736, 909, 917, 597, 158, 403, 974, 994, 2137, 1462, 922, 1133, 426, 537, 349, 590, 1277, 948, 737, 910, 918, 598, 159, 404, 975, 995, 2138, 1463, 923, 1134, 427, 538, 350, 591, 1278, 949, 738, 911, 919, 599, 160, 405, 976, 996, 2139, 1464, 924, 1135, 428, 539, 351, 592, 1279, 950, 739, 912, 920, 600, 161, 406, 977, 997, 2140, 1465, 925, 1136, 429, 540, 352, 593, 1280, 951, 740, 913, 921, 601, 162, 407, 978, 998, 2141, 1466, 926, 1137, 430, 541, 353, 594, 1281, 952, 741, 914, 922, 602, 163, 408, 979, 999, 2142, 1467, 927, 1138, 431, 542, 354, 595, 1282, 953, 742, 915, 923, 603, 164, 409, 980, 1000, 2143, 1468, 928, 1139, 432, 543, 355, 596, 1283, 954, 743, 916, 924, 604, 165, 410, 981, 1001, 2144, 1469, 929, 1140, 433, 544, 356, 597, 1284, 955, 744, 917, 925, 605, 166, 411, 982, 1002, 2145, 1470, 930, 1141, 434, 545, 357, 598, 1285, 956, 745, 918, 926, 606, 167, 412, 983, 1003, 2146, 1471, 931, 1142, 435, 546, 358, 599, 1286, 957, 746, 919, 927, 607, 168, 413, 984, 1004, 2147, 1472, 932, 1143, 436, 547, 359, 600, 1287, 958, 747, 920, 928, 608, 169, 414, 985, 1005, 2148, 1473, 933, 1144, 437, 548, 360, 601, 1288, 959, 748, 921, 929, 609, 170, 415, 986, 1006, 2149, 1474, 934, 1145, 438, 549, 43, 602, 1289, 960, 749, 922, 930, 610, 171, 416, 987, 1007, 2150, 1475, 935, 1146, 439, 550, 44, 603, 1290, 961, 750, 923, 931, 611, 172, 417, 988, 1008, 2151, 1476, 936, 1147, 440, 551, 45, 604, 1291, 962, 751, 924, 932, 612, 173, 418, 989, 1009, 2152, 1477, 937, 1148, 441, 552, 46, 605, 1292, 963, 752, 925, 933, 613, 174, 419, 990, 1010, 2153, 1478, 938, 1149, 442, 553, 47, 606, 1293, 964, 753, 926, 934, 614, 175, 420, 991, 1011, 2154, 1479, 939, 1150, 443, 554, 48, 607, 1294, 965, 754, 927, 935, 615, 176, 421, 992, 1012, 2155, 1480, 940, 1151, 444, 555, 49, 608, 1295, 966, 755, 928, 936, 616, 177, 422, 993, 1013, 2156, 1481, 941, 1152, 445, 556, 50, 609, 1296, 967, 756, 929, 937, 617, 178, 423, 994, 1014, 2157, 1482, 942, 1153, 446, 557, 51, 610, 1297, 968, 757, 930, 938, 618, 179, 424, 995, 1015, 2158, 1483, 943, 1154, 447, 558, 52, 611, 1298, 969, 758, 931, 939, 619, 180, 425, 996, 1016, 2159, 1484, 944, 1155, 448, 559, 53, 612, 1299, 970, 759, 932, 940, 620, 181, 426, 997, 1017, 2160, 1485, 945, 1156, 449, 560, 54, 613, 1300, 971, 760, 933, 941, 621, 182, 427, 998, 1018, 1801, 1441, 946, 1157, 450, 561, 55, 614, 1301, 972, 761, 934, 942, 622, 183, 428, 999, 1019, 1802, 1442, 947, 1158, 451, 562, 56, 615, 1302, 973, 762, 935, 943, 623, 184, 429, 1000, 1020, 1803, 1443, 948, 1159, 452, 563, 57, 616, 1303, 974, 763, 936, 944, 624, 185, 430, 1001, 1021, 1804, 1444, 949, 1160, 453, 564, 58, 617, 1304, 975, 764, 937, 945, 625, 186, 431, 1002, 1022, 1805, 1445, 950, 1161, 454, 565, 59, 618, 1305, 976, 765, 938, 946, 626, 187, 432, 1003, 1023, 1806, 1446, 951, 1162, 455, 566, 60, 619, 1306, 977, 766, 939, 947, 627, 188, 433, 1004, 1024, 1807, 1447, 952, 1163, 456, 567, 61, 620, 1307, 978, 767, 940, 948, 628, 189, 434, 1005, 1025, 1808, 1448, 953, 1164, 457, 568, 62, 621, 1308, 979, 768, 941, 949, 629, 190, 435, 1006, 1026, 1809, 1449, 954, 1165, 458, 569, 63, 622, 1309, 980, 769, 942, 950, 630, 191, 436, 1007, 1027, 1810, 1450, 955, 1166, 459, 570, 64, 623, 1310, 981, 770, 943, 951, 631, 192, 437, 1008, 1028, 1811, 1451, 956, 1167, 460, 571, 65, 624, 1311, 982, 771, 944, 952, 632, 193, 438, 1009, 1029, 1812, 1452, 957, 1168, 461, 572, 66, 625, 1312, 983, 772, 945, 721, 633, 194, 439, 1010, 1030, 1813, 1453, 958, 1169, 462, 573, 67, 626, 1313, 984, 773, 946, 722, 634, 195, 440, 1011, 1031, 1814, 1454, 959, 1170, 463, 574, 68, 627, 1314, 985, 774, 947, 723, 635, 196, 441, 1012, 1032, 1815, 1455, 960, 1171, 464, 575, 69, 628, 1315, 986, 775, 948, 724, 636, 197, 442, 1013, 1033, 1816, 1456, 961, 1172, 465, 576, 70, 629, 1316, 987, 776, 949, 725, 637, 198, 443, 1014, 1034, 1817, 1457, 962, 1173, 466, 577, 71, 630, 1317, 988, 777, 950, 726, 638, 199, 444, 1015, 1035, 1818, 1458, 963, 1174, 467, 578, 72, 631, 1318, 989, 778, 951, 727, 639, 200, 445, 1016, 1036, 1819, 1459, 964, 1175, 468, 579, 73, 632, 1319, 990, 779, 952, 728, 640, 201, 446, 1017, 1037, 1820, 1460, 965, 1176, 469, 580, 74, 633, 1320, 991, 780, 953, 729, 641, 202, 447, 1018, 1038, 1821, 1461, 966, 1177, 470, 581, 75, 634, 1321, 992, 781, 954, 730, 642, 203, 448, 1019, 1039, 1822, 1462, 967, 1178, 471, 582, 76, 635, 1322, 993, 782, 955, 731, 643, 204, 449, 1020, 1040, 1823, 1463, 968, 1179, 472, 583, 77, 636, 1323, 994, 783, 956, 732, 644, 205, 450, 1021, 1041, 1824, 1464, 969, 1180, 473, 584, 78, 637, 1324, 995, 784, 957, 733, 645, 206, 451, 1022, 1042, 1825, 1465, 970, 1181, 474, 585, 79, 638, 1325, 996, 785, 958, 734, 646, 207, 452, 1023, 1043, 1826, 1466, 971, 1182, 475, 586, 80, 639, 1326, 997, 786, 959, 735, 647, 208, 453, 1024, 1044, 1827, 1467, 972, 1183, 476, 587, 81, 640, 1327, 998, 787, 960, 736, 648, 209, 454, 1025, 1045, 1828, 1468, 973, 1184, 477, 588, 82, 641, 1328, 999, 788, 961, 737, 649, 210, 455, 1026, 1046, 1829, 1469, 974, 1185, 478, 589, 83, 642, 1329, 1000, 789, 962, 738, 650, 211, 456, 1027, 1047, 1830, 1470, 975, 1186, 479, 590, 84, 643, 1330, 1001, 790, 963, 739, 651, 212, 457, 1028, 1048, 1831, 1471, 976, 1187, 480, 591, 85, 644, 1331, 1002, 791, 964, 740, 652, 213, 458, 1029, 1049, 1832, 1472, 977, 1188, 481, 592, 86, 645, 1332, 1003, 792, 965, 741, 653, 214, 459, 1030, 1050, 1833, 1473, 978, 1189, 482, 593, 87, 646, 1333, 1004, 793, 966, 742, 654, 215, 460, 1031, 1051, 1834, 1474, 979, 1190, 483, 594, 88, 647, 1334, 1005, 794, 967, 743, 655, 216, 461, 1032, 1052, 1835, 1475, 980, 1191, 484, 595, 89, 648, 1335, 1006, 795, 968, 744, 656, 217, 462, 1033, 1053, 1836, 1476, 981, 1192, 485, 596, 90, 649, 1336, 1007, 796, 969, 745, 657, 218, 463, 1034, 1054, 1837, 1477, 982, 1193, 486, 597, 91, 650, 1337, 1008, 797, 970, 746, 658, 219, 464, 1035, 1055, 1838, 1478, 983, 1194, 487, 598, 92, 651, 1338, 1009, 798, 971, 747, 659, 220, 465, 1036, 1056, 1839, 1479, 984, 1195, 488, 599, 93, 652, 1339, 1010, 799, 972, 748, 660, 221, 466, 1037, 1057, 1840, 1480, 985, 1196, 489, 600, 94, 653, 1340, 1011, 800, 973, 749, 661, 222, 467, 1038, 1058, 1841, 1481, 986, 1197, 490, 601, 95, 654, 1341, 1012, 801, 974, 750, 662, 223, 468, 1039, 1059, 1842, 1482, 987, 1198, 491, 602, 96, 655, 1342, 1013, 802, 975, 751, 663, 224, 469, 1040, 1060, 1843, 1483, 988, 1199, 492, 603, 97, 656, 1343, 1014, 803, 976, 752, 664, 225, 470, 1041, 1061, 1844, 1484, 989, 1200, 493, 604, 98, 657, 1344, 1015, 804, 977, 753, 665, 226, 471, 1042, 1062, 1845, 1485, 990, 1201, 494, 605, 99, 658, 1345, 1016, 805, 978, 754, 666, 227, 472, 1043, 1063, 1846, 1486, 991, 1202, 495, 606, 100, 659, 1346, 1017, 806, 979, 755, 667, 228, 473, 1044, 1064, 1847, 1487, 992, 1203, 496, 607, 101, 660, 1347, 1018, 807, 980, 756, 668, 229, 474, 1045, 1065, 1848, 1488, 993, 1204, 497, 608, 102, 661, 1348, 1019, 808, 981, 757, 669, 230, 475, 1046, 1066, 1849, 1489, 994, 1205, 498, 609, 103, 662, 1349, 1020, 809, 982, 758, 670, 231, 476, 1047, 1067, 1850, 1490, 995, 1206, 499, 610, 104, 663, 1350, 1021, 810, 983, 759, 671, 232, 477, 1048, 1068, 1851, 1491, 996, 1207, 500, 611, 105, 664, 1351, 1022, 811, 984, 760, 672, 233, 478, 1049, 1069, 1852, 1492, 997, 1208, 501, 612, 106, 665, 1352, 1023, 812, 985, 761, 673, 234, 479, 1050, 1070, 1853, 1493, 998, 1209, 502, 613, 107, 666, 1353, 1024, 813, 986, 762, 674, 235, 480, 1051, 1071, 1854, 1494, 999, 1210, 503, 614, 108, 667, 1354, 1025, 814, 987, 763, 675, 236, 481, 1052, 1072, 1855, 1495, 1000, 1211, 504, 615, 109, 668, 1355, 1026, 815, 988, 764, 676, 237, 482, 1053, 1073, 1856, 1496, 1001, 1212, 505, 616, 110, 669, 1356, 1027, 816, 989, 765, 677, 238, 483, 1054, 1074, 1857, 1497, 1002, 1213, 506, 617, 111, 670, 1357, 1028, 817, 990, 766, 678, 239, 484, 1055, 1075, 1858, 1498, 1003, 1214, 507, 618, 112, 671, 1358, 1029, 818, 991, 767, 679, 240, 485, 1056, 1076, 1859, 1499, 1004, 1215, 508, 619, 113, 672, 1359, 1030, 819, 992, 768, 680, 241, 486, 1057, 1077, 1860, 1500, 1005, 1216, 509, 620, 114, 673, 1360, 1031, 820, 993, 769, 681, 242, 487, 1058, 1078, 1861, 1501, 1006, 1217, 510, 621, 115, 674, 1361, 1032, 821, 994, 770, 682, 243, 488, 1059, 1079, 1862, 1502, 1007, 1218, 511, 622, 116, 675, 1362, 1033, 822, 995, 771, 683, 244, 489, 1060, 1080, 1863, 1503, 1008, 1219, 512, 623, 117, 676, 1363, 1034, 823, 996, 772, 684, 245, 490, 1061, 721, 1864, 1504, 1009, 1220, 513, 624, 118, 677, 1364, 1035, 824, 997, 773, 685, 246, 491, 1062, 722, 1865, 1505, 1010, 1221, 514, 625, 119, 678, 1365, 1036, 825, 998, 774, 686, 247, 492, 1063, 723, 1866, 1506, 1011, 1222, 515, 626, 120, 679, 1366, 1037, 826, 999, 775, 687, 248, 493, 1064, 724, 1867, 1507, 1012, 1223, 516, 627, 121, 680, 1367, 1038, 827, 1000, 776, 688, 249, 494, 1065, 725, 1868, 1508, 1013, 1224, 517, 628, 122, 681, 1368, 1039, 828, 1001, 777, 689, 250, 495, 1066, 726, 1869, 1509, 1014, 1225, 518, 629, 123, 682, 1369, 1040, 829, 1002, 778, 690, 251, 496, 1067, 727, 1870, 1510, 1015, 1226, 519, 630, 124, 683, 1370, 1041, 830, 1003, 779, 691, 252, 497, 1068, 728, 1871, 1511, 1016, 1227, 520, 631, 125, 684, 1371, 1042, 831, 1004, 780, 692, 253, 498, 1069, 729, 1872, 1512, 1017, 1228, 521, 632, 126, 685, 1372, 1043, 832, 1005, 781, 693, 254, 499, 1070, 730, 1873, 1513, 1018, 1229, 522, 633, 127, 686, 1373, 1044, 833, 1006, 782, 694, 255, 500, 1071, 731, 1874, 1514, 1019, 1230, 523, 634, 128, 687, 1374, 1045, 834, 1007, 783, 695, 256, 501, 1072, 732, 1875, 1515, 1020, 1231, 524, 635, 129, 688, 1375, 1046, 835, 1008, 784, 696, 257, 502, 1073, 733, 1876, 1516, 1021, 1232, 525, 636, 130, 689, 1376, 1047, 836, 1009, 785, 697, 258, 503, 1074, 734, 1877, 1517, 1022, 1233, 526, 637, 131, 690, 1377, 1048, 837, 1010, 786, 698, 259, 504, 1075, 735, 1878, 1518, 1023, 1234, 527, 638, 132, 691, 1378, 1049, 838, 1011, 787, 699, 260, 505, 1076, 736, 1879, 1519, 1024, 1235, 528, 639, 133, 692, 1379, 1050, 839, 1012, 788, 700, 261, 506, 1077, 737, 1880, 1520, 1025, 1236, 529, 640, 134, 693, 1380, 1051, 840, 1013, 789, 701, 262, 507, 1078, 738, 1881, 1521, 1026, 1237, 530, 641, 135, 694, 1381, 1052, 841, 1014, 790, 702, 263, 508, 1079, 739, 1882, 1522, 1027, 1238, 531, 642, 136, 695, 1382, 1053, 842, 1015, 791, 703, 264, 509, 1080, 740, 1883, 1523, 1028, 1239, 532, 643, 137, 696, 1383, 1054, 843, 1016, 792, 704, 265, 510, 721, 741, 1884, 1524, 1029, 1240, 533, 644, 138, 697, 1384, 1055, 844, 1017, 793, 705, 266, 511, 722, 742, 1885, 1525, 1030, 1241, 534, 645, 139, 698, 1385, 1056, 845, 1018, 794, 706, 267, 512, 723, 743, 1886, 1526, 1031, 1242, 535, 646, 140, 699, 1386, 1057, 846, 1019, 795, 707, 268, 513, 724, 744, 1887, 1527, 1032, 1243, 536, 647, 141, 700, 1387, 1058, 847, 1020, 796, 708, 269, 514, 725, 745, 1888, 1528, 1033, 1244, 537, 648, 142, 701, 1388, 1059, 848, 1021, 797, 709, 270, 515, 726, 746, 1889, 1529, 1034, 1245, 538, 649, 143, 702, 1389, 1060, 849, 1022, 798, 710, 271, 516, 727, 747, 1890, 1530, 1035, 1246, 539, 650, 144, 703, 1390, 1061, 850, 1023, 799, 711, 272, 517, 728, 748, 1891, 1531, 1036, 1247, 540, 651, 145, 704, 1391, 1062, 851, 1024, 800, 712, 273, 518, 729, 749, 1892, 1532, 1037, 1248, 541, 652, 146, 705, 1392, 1063, 852, 1025, 801, 713, 274, 519, 730, 750, 1893, 1533, 1038, 1249, 542, 653, 147, 706, 1393, 1064, 853, 1026, 802, 714, 275, 520, 731, 751, 1894, 1534, 1039, 1250, 543, 654, 148, 707, 1394, 1065, 854, 1027, 803, 715, 276, 521, 732, 752, 1895, 1535, 1040, 1251, 544, 655, 149, 708, 1395, 1066, 855, 1028, 804, 716, 277, 522, 733, 753, 1896, 1536, 1041, 1252, 545, 656, 150, 709, 1396, 1067, 856, 1029, 805, 717, 278, 523, 734, 754, 1897, 1537, 1042, 1253, 546, 657, 151, 710, 1397, 1068, 857, 1030, 806, 718, 279, 524, 735, 755, 1898, 1538, 1043, 1254, 547, 658, 152, 711, 1398, 1069, 858, 1031, 807, 719, 280, 525, 736, 756, 1899, 1539, 1044, 1255, 548, 659, 153, 712, 1399, 1070, 859, 1032, 808, 720, 281, 526, 737, 757, 1900, 1540, 1045, 1256, 549, 660, 154, 713, 1400, 1071, 860, 1033, 809, 632, 282, 527, 738, 758, 1901, 1541, 1046, 1257, 550, 661, 155, 714, 1401, 1072, 861, 1034, 810, 633, 283, 528, 739, 759, 1902, 1542, 1047, 1258, 551, 662, 156, 715, 1402, 1073, 862, 1035, 811, 634, 284, 529, 740, 760, 1903, 1543, 1048, 1259, 552, 663, 157, 716, 1403, 1074, 863, 1036, 812, 635, 285, 530, 741, 761, 1904, 1544, 1049, 1260, 553, 664, 158, 717, 1404, 1075, 864, 1037, 813, 636, 286, 531, 742, 762, 1905, 1545, 1050, 1261, 554, 665, 159, 718, 1405, 1076, 865, 1038, 814, 637, 287, 532, 743, 763, 1906, 1546, 1051, 1262, 555, 666, 160, 719, 1406, 1077, 866, 1039, 815, 638, 288, 533, 744, 764, 1907, 1547, 1052, 1263, 556, 667, 161, 720, 1407, 1078, 867, 1040, 816, 639, 289, 534, 745, 765, 1908, 1548, 1053, 1264, 557, 668, 162, 361, 1408, 1079, 868, 1041, 817, 640, 290, 535, 746, 766, 1909, 1549, 1054, 1265, 558, 669, 163, 362, 1409, 1080, 869, 1042, 818, 641, 291, 536, 747, 767, 1910, 1550, 1055, 1266, 559, 670, 164, 363, 1410, 721, 870, 1043, 819, 642, 292, 537, 748, 768, 1911, 1551, 1056, 1267, 560, 671, 165, 364, 1411, 722, 871, 1044, 820, 643, 293, 538, 749, 769, 1912, 1552, 1057, 1268, 561, 672, 166, 365, 1412, 723, 872, 1045, 821, 644, 294, 539, 750, 770, 1913, 1553, 1058, 1269, 562, 673, 167, 366, 1413, 724, 873, 1046, 822, 645, 295, 540, 751, 771, 1914, 1554, 1059, 1270, 563, 674, 168, 367, 1414, 725, 874, 1047, 823, 646, 296, 541, 752, 772, 1915, 1555, 1060, 1271, 564, 675, 169, 368, 1415, 726, 875, 1048, 824, 647, 297, 542, 753, 773, 1916, 1556, 1061, 1272, 565, 676, 170, 369, 1416, 727, 876, 1049, 825, 648, 298, 543, 754, 774, 1917, 1557, 1062, 1273, 566, 677, 171, 370, 1417, 728, 877, 1050, 826, 649, 299, 544, 755, 775, 1918, 1558, 1063, 1274, 567, 678, 172, 371, 1418, 729, 878, 1051, 827, 650, 300, 545, 756, 776, 1919, 1559, 1064, 1275, 568, 679, 173, 372, 1419, 730, 879, 1052, 828, 651, 301, 546, 757, 777, 1920, 1560, 1065, 1276, 569, 680, 174, 373, 1420, 731, 880, 1053, 829, 652, 302, 547, 758, 778, 1921, 1561, 1066, 1277, 570, 681, 175, 374, 1421, 732, 881, 1054, 830, 653, 303, 548, 759, 779, 1922, 1562, 1067, 1278, 571, 682, 176, 375, 1422, 733, 882, 1055, 831, 654, 304, 549, 760, 780, 1923, 1563, 1068, 1279, 572, 683, 177, 376, 1423, 734, 883, 1056, 832, 655, 305, 550, 761, 781, 1924, 1564, 1069, 1280, 573, 684, 178, 377, 1424, 735, 884, 1057, 833, 656, 306, 551, 762, 782, 1925, 1565, 1070, 1281, 574, 685, 179, 378, 1425, 736, 885, 1058, 834, 657, 307, 552, 763, 783, 1926, 1566, 1071, 1282, 575, 686, 180, 379, 1426, 737, 886, 1059, 835, 658, 308, 553, 764, 784, 1927, 1567, 1072, 1283, 576, 687, 181, 380, 1427, 738, 887, 1060, 836, 659, 309, 554, 765, 785, 1928, 1568, 1073, 1284, 577, 688, 182, 381, 1428, 739, 888, 1061, 837, 660, 310, 555, 766, 786, 1929, 1569, 1074, 1285, 578, 689, 183, 382, 1429, 740, 889, 1062, 838, 661, 311, 556, 767, 787, 1930, 1570, 1075, 1286, 579, 690, 184, 383, 1430, 741, 890, 1063, 839, 662, 312, 557, 768, 788, 1931, 1571, 1076, 1287, 580, 691, 185, 384, 1431, 742, 891, 1064, 840, 663, 313, 558, 769, 789, 1932, 1572, 1077, 1288, 581, 692, 186, 385, 1432, 743, 892, 1065, 841, 664, 314, 559, 770, 790, 1933, 1573, 1078, 1289, 582, 693, 187, 386, 1433, 744, 893, 1066, 842, 665, 315, 560, 771, 791, 1934, 1574, 1079, 1290, 583, 694, 188, 387, 1434, 745, 894, 1067, 843, 666, 316, 561, 772, 792, 1935, 1575, 1080, 1291, 584, 695, 189, 388, 1435, 746, 895, 1068, 844, 667, 317, 562, 773, 793, 1936, 1576, 721, 1292, 585, 696, 190, 389, 1436, 747, 896, 1069, 845, 668, 318, 563, 774, 794, 1937, 1577, 722, 1293, 586, 697, 191, 390, 1437, 748, 897, 1070, 846, 669, 319, 564, 775, 795, 1938, 1578, 723, 1294, 587, 698, 192, 391, 1438, 749, 898, 1071, 847, 670, 320, 565, 776, 796, 1939, 1579, 724, 1295, 588, 699, 193, 392, 1439, 750, 899, 1072, 848, 671, 321, 566, 777, 797, 1940, 1580, 725, 1296, 589, 700, 194, 393, 1440, 751, 900, 1073, 721, 672, 322, 567, 778, 798, 1941, 1581, 726, 1297, 590, 701, 195, 394, 1081, 752, 901, 1074, 722, 673, 323, 568, 779, 799, 1942, 1582, 727, 1298, 591, 702, 196, 395, 1082, 753, 902, 1075, 723, 674, 324, 569, 780, 800, 1943, 1583, 728, 1299, 592, 703, 197, 396, 1083, 754, 903, 1076, 724, 675, 325, 570, 781, 801, 1944, 1584, 729, 1300, 593, 704, 198, 397, 1084, 755, 904, 1077, 725, 676, 326, 571, 782, 802, 1945, 1585, 730, 1301, 594, 705, 199, 398, 1085, 756, 905, 1078, 726, 677, 327, 572, 783, 803, 1946, 1586, 731, 1302, 595, 706, 200, 399, 1086, 757, 906, 1079, 727, 678, 328, 573, 784, 804, 1947, 1587, 732, 1303, 596, 707, 201, 400, 1087, 758, 907, 1080, 728, 679, 329, 574, 785, 805, 1948, 1588, 733, 1304, 597, 708, 202, 401, 1088, 759, 908, 721, 729, 680, 330, 575, 786, 806, 1949, 1589, 734, 1305, 598, 709, 203, 402, 1089, 760, 1203, 1717, 858, 1019, 652, 1177, 1919, 1266, 2215, 1635, 1252, 1327, 1070, 1839, 819, 1106, 1539, 2455, 1204, 1718, 859, 1020, 653, 1178, 1920, 1267, 2216, 1636, 1253, 1328, 1071, 1840, 820, 1107, 1540, 2456, 1205, 1719, 860, 1021, 654, 1179, 1921, 1268, 2217, 1637, 1254, 1329, 1072, 1841, 821, 1108, 1541, 2457, 1206, 1720, 861, 1022, 655, 1180, 1922, 1269, 2218, 1638, 1255, 1330, 1073, 1842, 822, 1109, 1542, 2458, 1207, 1721, 862, 1023, 656, 1181, 1923, 1270, 2219, 1639, 1256, 1331, 1074, 1843, 823, 1110, 1543, 2459, 1208, 1722, 863, 1024, 657, 1182, 1924, 1271, 2220, 1640, 1257, 1332, 1075, 1844, 824, 1111, 1544, 2460, 1209, 1723, 864, 1025, 658, 1183, 1925, 1272, 2221, 1641, 1258, 1333, 1076, 1845, 825, 1112, 1545, 2461, 1210, 1724, 865, 1026, 659, 1184, 1926, 1273, 2222, 1642, 1259, 1334, 1077, 1846, 826, 1113, 1546, 2462, 1211, 1725, 866, 1027, 660, 1185, 1927, 1274, 2223, 1643, 1260, 1335, 1078, 1847, 827, 1114, 1547, 2463, 1212, 1726, 867, 1028, 661, 1186, 1928, 1275, 2224, 1644, 1261, 1336, 1079, 1848, 828, 1115, 1548, 2464, 1213, 1727, 868, 1029, 662, 1187, 1929, 1276, 2225, 1645, 1262, 1337, 1080, 1849, 829, 1116, 1549, 2465, 1214, 1728, 869, 1030, 663, 1188, 1930, 1277, 2226, 1646, 1263, 1338, 721, 1850, 830, 1117, 1550, 2466, 1215, 1729, 870, 1031, 664, 1189, 1931, 1278, 2227, 1647, 1264, 1339, 722, 1851, 831, 1118, 1551, 2467, 1216, 1730, 871, 1032, 665, 1190, 1932, 1279, 2228, 1648, 1265, 1340, 723, 1852, 832, 1119, 1552, 2468, 1217, 1731, 872, 1033, 666, 1191, 1933, 1280, 2229, 1649, 1266, 1341, 724, 1853, 833, 1120, 1553, 2469, 1218, 1732, 873, 1034, 667, 1192, 1934, 1281, 2230, 1650, 1267, 1342, 725, 1854, 834, 1121, 1554, 2470, 1219, 1733, 874, 1035, 668, 1193, 1935, 1282, 2231, 1651, 1268, 1343, 726, 1855, 835, 1122, 1555, 2471, 1220, 1734, 875, 1036, 669, 1194, 1936, 1283, 2232, 1652, 1269, 1344, 727, 1856, 836, 1123, 1556, 2472, 1221, 1735, 876, 1037, 670, 1195, 1937, 1284, 2233, 1653, 1270, 1345, 728, 1857, 837, 1124, 1557, 2473, 1222, 1736, 877, 1038, 671, 1196, 1938, 1285, 2234, 1654, 1271, 1346, 729, 1858, 838, 1125, 1558, 2474, 1223, 1737, 878, 1039, 672, 1197, 1939, 1286, 2235, 1655, 1272, 1347, 730, 1859, 839, 1126, 1559, 2475, 1224, 1738, 879, 1040, 673, 1198, 1940, 1287, 2236, 1656, 1273, 1348, 731, 1860, 840, 1127, 1560, 2476, 1225, 1739, 880, 1041, 674, 1199, 1941, 1288, 2237, 1657, 1274, 1349, 732, 1861, 841, 1128, 1561, 2477, 1226, 1740, 881, 1042, 675, 1200, 1942, 1289, 2238, 1658, 1275, 1350, 733, 1862, 842, 1129, 1562, 2478, 1227, 1741, 882, 1043, 676, 1201, 1943, 1290, 2239, 1659, 1276, 1351, 734, 1863, 843, 1130, 1563, 2479, 1228, 1742, 883, 1044, 677, 1202, 1944, 1291, 2240, 1660, 1277, 1352, 735, 1864, 844, 1131, 1564, 2480, 1229, 1743, 884, 1045, 678, 1203, 1945, 1292, 2241, 1661, 1278, 1353, 736, 1865, 845, 1132, 1565, 2481, 1230, 1744, 885, 1046, 679, 1204, 1946, 1293, 2242, 1662, 1279, 1354, 737, 1866, 846, 1133, 1566, 2482, 1231, 1745, 886, 1047, 680, 1205, 1947, 1294, 2243, 1663, 1280, 1355, 738, 1867, 847, 1134, 1567, 2483, 1232, 1746, 887, 1048, 681, 1206, 1948, 1295, 2244, 1664, 1281, 1356, 739, 1868, 848, 1135, 1568, 2484, 1233, 1747, 888, 1049, 682, 1207, 1949, 1296, 2245, 1665, 1282, 1357, 740, 1869, 849, 1136, 1569, 2485, 1234, 1748, 889, 1050, 683, 1081, 1950, 1297, 2246, 1666, 1283, 1358, 741, 1870, 850, 1137, 1570, 2486, 1235, 1749, 890, 1051, 684, 1082, 1951, 1298, 2247, 1667, 1284, 1359, 742, 1871, 851, 1138, 1571, 2487, 1236, 1750, 891, 1052, 685, 1083, 1952, 1299, 2248, 1668, 1285, 1360, 743, 1872, 852, 1139, 1572, 2488, 1237, 1751, 892, 1053, 686, 1084, 1953, 1300, 2249, 1669, 1286, 1361, 744, 1873, 853, 1140, 1573, 2489, 1238, 1752, 893, 1054, 687, 1085, 1954, 1301, 2250, 1670, 1287, 1362, 745, 1874, 854, 1141, 1574, 2490, 1239, 1753, 894, 1055, 688, 1086, 1955, 1302, 2251, 1671, 1288, 1363, 746, 1875, 855, 1142, 1575, 2491, 1240, 1754, 895, 1056, 689, 1087, 1956, 1303, 2252, 1672, 1289, 1364, 747, 1876, 856, 1143, 1576, 2492, 1241, 1755, 896, 1057, 690, 1088, 1957, 1304, 2253, 1673, 1290, 1365, 748, 1877, 857, 1144, 1577, 2493, 1242, 1756, 897, 1058, 691, 1089, 1958, 1305, 2254, 1674, 1291, 1366, 749, 1878, 858, 1145, 1578, 2494, 1243, 1757, 898, 1059, 692, 1090, 1959, 1306, 2255, 1675, 1292, 1367, 750, 1879, 859, 1146, 1441, 2495, 1244, 1758, 899, 1060, 693, 1091, 1960, 1307, 2256, 1676, 1293, 1368, 751, 1880, 860, 1147, 1442, 2496, 1245, 1759, 900, 1061, 694, 1092, 1961, 1308, 2257, 1677, 1294, 1369, 752, 1881, 861, 1148, 1443, 2497, 1246, 1760, 901, 1062, 695, 1093, 1962, 1309, 2258, 1678, 1295, 1370, 753, 1882, 862, 1149, 1444, 2498, 1247, 1761, 902, 1063, 696, 1094, 1963, 1310, 2259, 1679, 1296, 1371, 754, 1883, 863, 1150, 1445, 2499, 1248, 1762, 903, 1064, 697, 1095, 1964, 1311, 2260, 1680, 1297, 1372, 755, 1884, 864, 1151, 1446, 2500, 1249, 1763, 904, 1065, 698, 1096, 1965, 1312, 2261, 1681, 1298, 1373, 756, 1885, 865, 1152, 1447, 2501, 1250, 1764, 905, 1066, 699, 1097, 1966, 1313, 2262, 1682, 1299, 1374, 757, 1886, 866, 1153, 1448, 2502, 1251, 1765, 906, 1067, 700, 1098, 1967, 1314, 2263, 1683, 1300, 1375, 758, 1887, 867, 1154, 1449, 2503, 1252, 1766, 907, 1068, 701, 1099, 1968, 1315, 2264, 1684, 1301, 1376, 759, 1888, 868, 1155, 1450, 2504, 1253, 1767, 908, 1069, 702, 1100, 1969, 1316, 2265, 1685, 1302, 1377, 760, 1889, 869, 1156, 1451, 2505, 1254, 1768, 909, 1070, 703, 1101, 1970, 1317, 2266, 1686, 1303, 1378, 761, 1890, 870, 1157, 1452, 2506, 1255, 1769, 910, 1071, 704, 1102, 1971, 1318, 2267, 1687, 1304, 1379, 762, 1891, 871, 1158, 1453, 2507, 1256, 1770, 911, 1072, 705, 1103, 1972, 1319, 2268, 1688, 1305, 1380, 763, 1892, 872, 1159, 1454, 2508, 1257, 1771, 912, 1073, 706, 1104, 1973, 1320, 2269, 1689, 1306, 1381, 764, 1893, 873, 1160, 1455, 2509, 1258, 1772, 913, 1074, 707, 1105, 1974, 1321, 2270, 1690, 1307, 1382, 765, 1894, 874, 1161, 1456, 2510, 1259, 1773, 914, 1075, 708, 1106, 1975, 1322, 2271, 1691, 1308, 1383, 766, 1895, 875, 1162, 1457, 2511, 1260, 1774, 915, 1076, 709, 1107, 1976, 1323, 2272, 1692, 1309, 1384, 767, 1896, 876, 1163, 1458, 2512, 1261, 1775, 916, 1077, 710, 1108, 1977, 1324, 2273, 1693, 1310, 1385, 768, 1897, 877, 1164, 1459, 2513, 1262, 1776, 917, 1078, 711, 1109, 1978, 1325, 2274, 1694, 1311, 1386, 769, 1898, 878, 1165, 1460, 2514, 1263, 1777, 918, 1079, 712, 1110, 1979, 1326, 2275, 1695, 1312, 1387, 770, 1899, 879, 1166, 1461, 2515, 1264, 1778, 919, 1080, 713, 1111, 1980, 1327, 2276, 1696, 1313, 1388, 771, 1900, 880, 1167, 1462, 2516, 1265, 1779, 920, 721, 714, 1112, 1981, 1328, 2277, 1697, 1314, 1389, 772, 1901, 881, 1168, 1463, 2517, 1266, 1780, 921, 722, 715, 1113, 1982, 1329, 2278, 1698, 1315, 1390, 773, 1902, 882, 1169, 1464, 2518, 1267, 1781, 922, 723, 716, 1114, 1983, 1330, 2279, 1699, 1316, 1391, 774, 1903, 883, 1170, 1465, 2519, 1268, 1782, 923, 724, 717, 1115, 1984, 1331, 2280, 1700, 1317, 1392, 775, 1904, 884, 1171, 1466, 2520, 1269, 1783, 924, 725, 718, 1116, 1985, 1332, 2281, 1701, 1318, 1393, 776, 1905, 885, 1172, 1467, 2161, 1270, 1784, 925, 726, 719, 1117, 1986, 1333, 2282, 1702, 1319, 1394, 777, 1906, 886, 1173, 1468, 2162, 1271, 1785, 926, 727, 720, 1118, 1987, 1334, 2283, 1703, 1320, 1395, 778, 1907, 887, 1174, 1469, 2163, 1272, 1786, 927, 728, 361, 1119, 1988, 1335, 2284, 1704, 1321, 1396, 779, 1908, 888, 1175, 1470, 2164, 1273, 1787, 928, 729, 362, 1120, 1989, 1336, 2285, 1705, 1322, 1397, 780, 1909, 889, 1176, 1471, 2165, 1274, 1788, 929, 730, 363, 1121, 1990, 1337, 2286, 1706, 1323, 1398, 781, 1910, 890, 1177, 1472, 2166, 1275, 1789, 930, 731, 364, 1122, 1991, 1338, 2287, 1707, 1324, 1399, 782, 1911, 891, 1178, 1473, 2167, 1276, 1790, 931, 732, 365, 1123, 1992, 1339, 2288, 1708, 1325, 1400, 783, 1912, 892, 1179, 1474, 2168, 1277, 1791, 932, 733, 366, 1124, 1993, 1340, 2289, 1709, 1326, 1401, 784, 1913, 893, 1180, 1475, 2169, 1278, 1792, 933, 734, 367, 1125, 1994, 1341, 2290, 1710, 1327, 1402, 785, 1914, 894, 1181, 1476, 2170, 1279, 1793, 934, 735, 368, 1126, 1995, 1342, 2291, 1711, 1328, 1403, 786, 1915, 895, 1182, 1477, 2171, 1280, 1794, 935, 736, 369, 1127, 1996, 1343, 2292, 1712, 1329, 1404, 787, 1916, 896, 1183, 1478, 2172, 1281, 1795, 936, 737, 370, 1128, 1997, 1344, 2293, 1713, 1330, 1405, 788, 1917, 897, 1184, 1479, 2173, 1282, 1796, 937, 738, 371, 1129, 1998, 1345, 2294, 1714, 1331, 1406, 789, 1918, 898, 1185, 1480, 2174, 1283, 1797, 938, 739, 372, 1130, 1999, 1346, 2295, 1715, 1332, 1407, 790, 1919, 899, 1186, 1481, 2175, 1284, 1798, 939, 740, 373, 1131, 2000, 1347, 2296, 1716, 1333, 1408, 791, 1920, 900, 1187, 1482, 2176, 1285, 1799, 940, 741, 374, 1132, 2001, 1348, 2297, 1717, 1334, 1409, 792, 1921, 901, 1188, 1483, 2177, 1286, 1800, 941, 742, 375, 1133, 2002, 1349, 2298, 1718, 1335, 1410, 793, 1922, 902, 1189, 1484, 2178, 1287, 1441, 942, 743, 376, 1134, 2003, 1350, 2299, 1719, 1336, 1411, 794, 1923, 903, 1190, 1485, 2179, 1288, 1442, 943, 744, 377, 1135, 2004, 1351, 2300, 1720, 1337, 1412, 795, 1924, 904, 1191, 1486, 2180, 1289, 1443, 944, 745, 378, 1136, 2005, 1352, 2301, 1721, 1338, 1413, 796, 1925, 905, 1192, 1487, 2181, 1290, 1444, 945, 746, 379, 1137, 2006, 1353, 2302, 1722, 1339, 1414, 797, 1926, 906, 1193, 1488, 2182, 1291, 1445, 946, 747, 380, 1138, 2007, 1354, 2303, 1723, 1340, 1415, 798, 1927, 907, 1194, 1489, 2183, 1292, 1446, 947, 748, 381, 1139, 2008, 1355, 2304, 1724, 1341, 1416, 799, 1928, 908, 1195, 1490, 2184, 1293, 1447, 948, 749, 382, 1140, 2009, 1356, 2305, 1725, 1342, 1417, 800, 1929, 909, 1196, 1491, 2185, 1294, 1448, 949, 750, 383, 1141, 2010, 1357, 2306, 1726, 1343, 1418, 801, 1930, 910, 1197, 1492, 2186, 1295, 1449, 950, 751, 384, 1142, 2011, 1358, 2307, 1727, 1344, 1419, 802, 1931, 911, 1198, 1493, 2187, 1296, 1450, 951, 752, 385, 1143, 2012, 1359, 2308, 1728, 1345, 1420, 803, 1932, 912, 1199, 1494, 2188, 1297, 1451, 952, 753, 386, 1144, 2013, 1360, 2309, 1729, 1346, 1421, 804, 1933, 913, 1200, 1495, 2189, 1298, 1452, 953, 754, 387, 1145, 2014, 1361, 2310, 1730, 1347, 1422, 805, 1934, 914, 1201, 1496, 2190, 1299, 1453, 954, 755, 388, 1146, 2015, 1362, 2311, 1731, 1348, 1423, 806, 1935, 915, 1202, 1497, 2191, 1300, 1454, 955, 756, 389, 1147, 2016, 1363, 2312, 1732, 1349, 1424, 807, 1936, 916, 1203, 1498, 2192, 1301, 1455, 956, 757, 390, 1148, 2017, 1364, 2313, 1733, 1350, 1425, 808, 1937, 917, 1204, 1499, 2193, 1302, 1456, 957, 758, 391, 1149, 2018, 1365, 2314, 1734, 1351, 1426, 809, 1938, 918, 1205, 1500, 2194, 1303, 1457, 958, 759, 392, 1150, 2019, 1366, 2315, 1735, 1352, 1427, 810, 1939, 919, 1206, 1501, 2195, 1304, 1458, 959, 760, 393, 1151, 2020, 1367, 2316, 1736, 1353, 1428, 811, 1940, 920, 1207, 1502, 2196, 1305, 1459, 960, 761, 394, 1152, 2021, 1368, 2317, 1737, 1354, 1429, 812, 1941, 921, 1208, 1503, 2197, 1306, 1460, 961, 762, 395, 1153, 2022, 1369, 2318, 1738, 1355, 1430, 813, 1942, 922, 1209, 1504, 2198, 1307, 1461, 962, 763, 396, 1154, 2023, 1370, 2319, 1739, 1356, 1431, 814, 1943, 923, 1210, 1505, 2199, 1308, 1462, 963, 764, 397, 1155, 2024, 1371, 2320, 1740, 1357, 1432, 815, 1944, 924, 1211, 1506, 2200, 1309, 1463, 964, 765, 398, 1156, 2025, 1372, 2321, 1741, 1358, 1433, 816, 1945, 925, 1212, 1507, 2201, 1310, 1464, 965, 766, 399, 1157, 2026, 1373, 2322, 1742, 1359, 1434, 817, 1946, 926, 1213, 1508, 2202, 1311, 1465, 966, 767, 400, 1158, 2027, 1374, 2323, 1743, 1360, 1435, 818, 1947, 927, 1214, 1509, 2203, 1312, 1466, 967, 768, 401, 1159, 2028, 1375, 2324, 1744, 1361, 1436, 819, 1948, 928, 1215, 1510, 2204, 1313, 1467, 968, 769, 402, 1160, 2029, 1376, 2325, 1745, 1362, 1437, 820, 1949, 929, 1216, 1511, 2205, 1314, 1468, 969, 770, 403, 1161, 2030, 1377, 2326, 1746, 1363, 1438, 821, 1950, 930, 1217, 1512, 2206, 1315, 1469, 970, 771, 404, 1162, 2031, 1378, 2327, 1747, 1364, 1439, 822, 1951, 931, 1218, 1513, 2207, 1316, 1470, 971, 772, 405, 1163, 2032, 1379, 2328, 1748, 1365, 1440, 823, 1952, 932, 1219, 1514, 2208, 1317, 1471, 972, 773, 406, 1164, 2033, 1380, 2329, 1749, 1366, 1420, 824, 1953, 933, 1220, 1515, 2209, 1318, 1472, 973, 774, 407, 1165, 2034, 1381, 2330, 1750, 1367, 1421, 825, 1954, 934, 1221, 1516, 2210, 1319, 1473, 974, 775, 408, 1166, 2035, 1382, 2331, 1751, 1368, 1422, 826, 1955, 935, 1222, 1517, 2211, 1320, 1474, 975, 776, 409, 1167, 2036, 1383, 2332, 1752, 1369, 1423, 827, 1956, 936, 1223, 1518, 2212, 1321, 1475, 976, 777, 410, 1168, 2037, 1384, 2333, 1753, 1370, 1424, 828, 1957, 937, 1224, 1519, 2213, 1322, 1476, 977, 778, 411, 1169, 2038, 1385, 2334, 1754, 1371, 1425, 829, 1958, 938, 1225, 1520, 2214, 1323, 1477, 978, 779, 412, 1170, 2039, 1386, 2335, 1755, 1372, 1426, 830, 1959, 939, 1226, 1521, 2215, 1324, 1478, 979, 780, 413, 1171, 2040, 1387, 2336, 1756, 1373, 1427, 831, 1960, 940, 1227, 1522, 2216, 1325, 1479, 980, 781, 414, 1172, 2041, 1388, 2337, 1757, 1374, 1428, 832, 1961, 941, 1228, 1523, 2217, 1326, 1480, 981, 782, 415, 1173, 2042, 1389, 2338, 1758, 1375, 1429, 833, 1962, 942, 1229, 1524, 2218, 1327, 1481, 982, 783, 416, 1174, 2043, 1390, 2339, 1759, 1376, 1430, 834, 1963, 943, 1230, 1525, 2219, 1328, 1482, 983, 784, 417, 1175, 2044, 1391, 2340, 1760, 1377, 1431, 835, 1964, 944, 1231, 1526, 2220, 1329, 1483, 984, 785, 418, 1176, 2045, 1392, 2341, 1761, 1378, 1432, 836, 1965, 945, 1232, 1527, 2221, 1330, 1484, 985, 786, 419, 1177, 2046, 1393, 2342, 1762, 1379, 1433, 837, 1966, 946, 1233, 1528, 2222, 1331, 1485, 986, 787, 420, 1178, 2047, 1394, 2343, 1763, 1380, 1434, 838, 1967, 947, 1234, 1529, 2223, 1332, 1486, 987, 788, 421, 1179, 2048, 1395, 2344, 1764, 1381, 1435, 839, 1968, 948, 1235, 1530, 2224, 1333, 1487, 988, 789, 422, 1180, 2049, 1396, 2345, 1765, 1382, 1436, 840, 1969, 949, 1236, 1531, 2225, 1334, 1488, 989, 790, 423, 1181, 2050, 1397, 2346, 1766, 1383, 1437, 841, 1970, 950, 1237, 1532, 2226, 1335, 1489, 990, 791, 424, 1182, 2051, 1398, 2347, 1767, 1384, 1438, 842, 1971, 951, 1238, 1533, 2227, 1336, 1490, 991, 792, 425, 1183, 2052, 1399, 2348, 1768, 1385, 1439, 843, 1972, 952, 1239, 1534, 2228, 1337, 1491, 992, 793, 426, 1184, 2053, 1400, 2349, 1769, 1386, 1440, 844, 1973, 953, 1240, 1441, 2229, 1338, 1492, 993, 794, 427, 1185, 2054, 1401, 2350, 1770, 1387, 1102, 845, 1974, 954, 1241, 1442, 2230, 1339, 1493, 994, 795, 428, 1186, 2055, 1402, 2351, 1771, 1388, 1103, 846, 1975, 955, 1242, 1443, 2231, 1340, 1494, 995, 796, 429, 1187, 2056, 1403, 2352, 1772, 1389, 1104, 847, 1976, 956, 1243, 1444, 2232, 1341, 1495, 996, 797, 430, 1188, 2057, 1404, 2353, 1773, 1390, 1105, 848, 1977, 957, 1244, 1445, 2233, 1342, 1496, 997, 798, 431, 1189, 2058, 1405, 2354, 1774, 1391, 1106, 849, 1978, 958, 1245, 1446, 2234, 1343, 1497, 998, 799, 432, 1190, 2059, 1406, 2355, 1775, 1392, 1107, 850, 1979, 959, 1246, 1447, 2235, 1344, 1498, 999, 800, 433, 1191, 2060, 1407, 2356, 1776, 1393, 1108, 851, 1980, 960, 1247, 1448, 2236, 1345, 1499, 1000, 801, 434, 1192, 2061, 1408, 2357, 1777, 1394, 1109, 852, 1981, 961, 1248, 1449, 2237, 1346, 1500, 1001, 802, 435, 1193, 2062, 1409, 2358, 1778, 1395, 1110, 853, 1982, 962, 1249, 1450, 2238, 1347, 1501, 1002, 803, 436, 1194, 2063, 1410, 2359, 1779, 1396, 1111, 854, 1983, 963, 1250, 1451, 2239, 1348, 1502, 1003, 804, 437, 1195, 2064, 1411, 2360, 1780, 1397, 1112, 855, 1984, 964, 1251, 1452, 2240, 1349, 1503, 1004, 805, 438, 1196, 2065, 1412, 2361, 1781, 1398, 1113, 856, 1985, 965, 1252, 1453, 2241, 1350, 1504, 1005, 806, 439, 1197, 2066, 1413, 2362, 1782, 1399, 1114, 857, 1986, 966, 1253, 1454, 2242, 1351, 1505, 1006, 807, 440, 1198, 1801, 1414, 2363, 1783, 1400, 1115, 858, 1987, 967, 1254, 1455, 2243, 1352, 1506, 1007, 808, 441, 1199, 1802, 1415, 2364, 1784, 1401, 1116, 859, 1988, 968, 1255, 1456, 2244, 1353, 1507, 1008, 809, 442, 1200, 1803, 1416, 2365, 1785, 1402, 1117, 860, 1989, 969, 1256, 1457, 2245, 1354, 1508, 1009, 810, 443, 1201, 1804, 1417, 2366, 1786, 1403, 1118, 861, 1990, 970, 1257, 1458, 2246, 1355, 1509, 1010, 811, 444, 1202, 1805, 1418, 2367, 1787, 1404, 1119, 862, 1991, 971, 1258, 1459, 2247, 1356, 1510, 1011, 812, 445, 1203, 1806, 1419, 2368, 1788, 1405, 1120, 863, 1992, 972, 1259, 1460, 2248, 1357, 1511, 1012, 813, 446, 1204, 1807, 1420, 2369, 1789, 1406, 1121, 864, 1993, 973, 1260, 1461, 2249, 1358, 1512, 1013, 814, 447, 1205, 1808, 1421, 2370, 1790, 1407, 1122, 865, 1994, 974, 1261, 1462, 2250, 1359, 1513, 1014, 815, 448, 1206, 1809, 1422, 2371, 1791, 1408, 1123, 866, 1995, 975, 1262, 1463, 2251, 1360, 1514, 1015, 816, 449, 1207, 1810, 1423, 2372, 1792, 1409, 1124, 867, 1996, 976, 1263, 1464, 2252, 1361, 1515, 1016, 817, 450, 1208, 1811, 1424, 2373, 1793, 1410, 1125, 868, 1997, 977, 1264, 1465, 2253, 1362, 1516, 1017, 818, 451, 1209, 1812, 1425, 2374, 1794, 1411, 1126, 869, 1998, 978, 1265, 1466, 2254, 1363, 1517, 1018, 819, 452, 1210, 1813, 1426, 2375, 1795, 1412, 1127, 870, 1999, 979, 1266, 1467, 2255, 1364, 1518, 1019, 820, 453, 1211, 1814, 1427, 2161, 1796, 1413, 1128, 871, 2000, 980, 1267, 1468, 2256, 1365, 1519, 1020, 821, 454, 1212, 1815, 1428, 2162, 1797, 1414, 1129, 872, 2001, 981, 1268, 1469, 2257, 1366, 1520, 1021, 822, 455, 1213, 1816, 1429, 2163, 1798, 1415, 1130, 873, 2002, 982, 1269, 1470, 2258, 1367, 1521, 1022, 823, 456, 1214, 1817, 1430, 2164, 1799, 1416, 1131, 874, 2003, 983, 1270, 1471, 2259, 1368, 1522, 1023, 824, 457, 1215, 1818, 1431, 2165, 1800, 1417, 1132, 875, 2004, 984, 1271, 1472, 2260, 1369, 1523, 1024, 825, 458, 1216, 1819, 1432, 2166, 1756, 1418, 1133, 876, 2005, 985, 1272, 1473, 2261, 1370, 1524, 1025, 826, 459, 1217, 1820, 1433, 2167, 1757, 1419, 1134, 877, 2006, 986, 1273, 1474, 2262, 1371, 1525, 1026, 827, 460, 1218, 1821, 1434, 2168, 1758, 1420, 1135, 878, 2007, 987, 1274, 1475, 2263, 1372, 1526, 1027, 828, 461, 1219, 1822, 1435, 2169, 1759, 1421, 1136, 879, 2008, 988, 1275, 1476, 2264, 1373, 1527, 1028, 829, 462, 1220, 1823, 1436, 2170, 1760, 1422, 1137, 880, 2009, 989, 1276, 1477, 2265, 1374, 1528, 1029, 830, 463, 1221, 1824, 1437, 2171, 1761, 1423, 1138, 881, 2010, 990, 1277, 1478, 2266, 1375, 1529, 1030, 831, 464, 1222, 1825, 1438, 2172, 1762, 1424, 1139, 882, 2011, 991, 1278, 1479, 2267, 1376, 1530, 1031, 832, 465, 1223, 1826, 1439, 2173, 1763, 1425, 1140, 883, 2012, 992, 1279, 1480, 2268, 1377, 1531, 1032, 833, 466, 1224, 1827, 1440, 2174, 1764, 1426, 1141, 884, 2013, 993, 1280, 1481, 2269, 1378, 1532, 1033, 834, 467, 1225, 1828, 1081, 2175, 1765, 1427, 1142, 885, 2014, 994, 1281, 1482, 2270, 1379, 1533, 1034, 835, 468, 1226, 1829, 1082, 2176, 1766, 1428, 1143, 886, 2015, 995, 1282, 1483, 2271, 1380, 1534, 1035, 836, 469, 1227, 1830, 1083, 2177, 1767, 1429, 1144, 887, 2016, 996, 1283, 1484, 2272, 1381, 1535, 1036, 837, 470, 1228, 1831, 1084, 2178, 1768, 1430, 1145, 888, 2017, 997, 1284, 1485, 2273, 1382, 1536, 1037, 838, 471, 1229, 1832, 1085, 2179, 1769, 1431, 1146, 889, 2018, 998, 1285, 1486, 2274, 1383, 1537, 1038, 839, 472, 1230, 1833, 1086, 2180, 1770, 1432, 1147, 890, 2019, 999, 1286, 1487, 2275, 1384, 1538, 1039, 840, 473, 1231, 1834, 1087, 2181, 1771, 1433, 1148, 891, 2020, 1000, 1287, 1488, 2276, 1385, 1539, 1040, 841, 474, 1232, 1835, 1088, 2182, 1772, 1434, 1149, 892, 2021, 1001, 1288, 1489, 2277, 1386, 1540, 1041, 842, 475, 1233, 1836, 1089, 2183, 1773, 1435, 1150, 893, 2022, 1002, 1289, 1490, 2278, 1387, 1541, 1042, 843, 476, 1234, 1837, 1090, 2184, 1774, 1436, 1151, 894, 2023, 1003, 1290, 1491, 2279, 1388, 1542, 1043, 844, 477, 1235, 1838, 1091, 2185, 1775, 1437, 1152, 895, 2024, 1004, 1291, 1492, 2280, 1389, 1543, 1044, 845, 478, 1236, 1839, 1092, 2186, 1776, 1438, 1153, 896, 2025, 1005, 1292, 1493, 2281, 1390, 1544, 1045, 846, 479, 1237, 1840, 1093, 2187, 1777, 1439, 1154, 897, 2026, 1006, 1293, 1494, 2282, 1391, 1545, 1046, 847, 480, 1238, 1841, 1094, 2188, 1778, 1440, 1155, 898, 2027, 1007, 1294, 1495, 2283, 1392, 1546, 1047, 848, 481, 1239, 1842, 1095, 2189, 1779, 1081, 1156, 899, 2028, 1008, 1295, 1496, 2284, 1393, 1547, 1048, 849, 482, 1240, 1843, 1096, 2190, 1780, 1082, 1157, 900, 2029, 1009, 1296, 1497, 2285, 1394, 1548, 1049, 850, 483, 1241, 1844, 1097, 2191, 1781, 1083, 1158, 901, 2030, 1010, 1297, 1498, 2286, 1395, 1549, 1050, 851, 484, 1242, 1845, 1098, 2192, 1782, 1084, 1159, 902, 2031, 1011, 1298, 1499, 2287, 1396, 1550, 1051, 852, 485, 1243, 1846, 1099, 2193, 1783, 1085, 1160, 903, 2032, 1012, 1299, 1500, 2288, 1397, 1551, 1052, 853, 486, 1244, 1847, 1100, 2194, 1784, 1086, 1161, 904, 2033, 1013, 1300, 1501, 2289, 1398, 1552, 1053, 854, 487, 1245, 1848, 1101, 2195, 1785, 1087, 1162, 905, 2034, 1014, 1301, 1502, 2290, 1399, 1553, 1054, 855, 488, 1246, 1849, 1102, 2196, 1786, 1088, 1163, 906, 2035, 1015, 1302, 1503, 2291, 1400, 1554, 1055, 856, 489, 1247, 1850, 1103, 2197, 1787, 1089, 1164, 907, 2036, 1016, 1303, 1504, 2292, 1401, 1555, 1056, 857, 490, 1248, 1851, 1104, 2198, 1788, 1090, 1165, 908, 2037, 1017, 1304, 1505, 2293, 1402, 1556, 1057, 858, 491, 1249, 1852, 1105, 2199, 1789, 1091, 1166, 909, 2038, 1018, 1305, 1506, 2294, 1403, 1557, 1058, 859, 492, 1250, 1853, 1106, 2200, 1790, 1092, 1167, 910, 2039, 1019, 1306, 1507, 2295, 1404, 1558, 1059, 860, 493, 1251, 1854, 1107, 2201, 1791, 1093, 1168, 911, 2040, 1020, 1307, 1508, 2296, 1405, 1559, 1060, 861, 494, 1252, 1855, 1108, 2202, 1792, 1094, 1169, 912, 2041, 1021, 1308, 1509, 2297, 1406, 1560, 1061, 862, 495, 1253, 1856, 1109, 2203, 1793, 1095, 1170, 913, 2042, 1022, 1309, 1510, 2298, 1407, 1561, 1062, 863, 496, 1254, 1857, 1110, 2204, 1794, 1096, 1171, 914, 2043, 1023, 1310, 1511, 2299, 1408, 1562, 1063, 864, 497, 1255, 1858, 1111, 2205, 1795, 1097, 1172, 915, 2044, 1024, 1311, 1512, 2300, 1409, 1563, 1064, 865, 498, 1256, 1859, 1112, 2206, 1796, 1098, 1173, 916, 2045, 1025, 1312, 1513, 2301, 1410, 1564, 1065, 866, 499, 1257, 1860, 1113, 2207, 1797, 1099, 1174, 917, 2046, 1026, 1313, 1514, 2302, 1411, 1565, 1066, 867, 500, 1258, 1861, 1114, 2208, 1798, 1100, 1175, 918, 2047, 1027, 1314, 1515, 2303, 1412, 1566, 1067, 868, 501, 1259, 1862, 1115, 2209, 1799, 1101, 1176, 919, 2048, 1028, 1315, 1516, 2304, 1413, 1567, 1068, 869, 502, 1260, 1863, 1116, 2210, 1800, 1102, 1177, 920, 2049, 1029, 1316, 1517, 2305, 1414, 1568, 1069, 870, 503, 1261, 1864, 1117, 2211, 1486, 1103, 1178, 921, 2050, 1030, 1317, 1518, 2306, 1415, 1569, 1070, 871, 504, 1262, 1865, 1118, 2212, 1487, 1104, 1179, 922, 2051, 1031, 1318, 1519, 2307, 1416, 1570, 1071, 872, 505, 1263, 1866, 1119, 2213, 1488, 1105, 1180, 923, 2052, 1032, 1319, 1520, 2308, 1417, 1571, 1072, 873, 506, 1264, 1867, 1120, 2214, 1489, 1106, 1181, 924, 2053, 1033, 1320, 1521, 2309, 1418, 1572, 1073, 874, 507, 1265, 1868, 1121, 2215, 1490, 1107, 1182, 925, 2054, 1034, 1321, 1522, 2310, 1419, 1573, 1074, 875, 508, 1266, 1869, 1122, 2216, 1491, 1108, 1183, 926, 2055, 1035, 1322, 1523, 2311, 1420, 1574, 1075, 876, 509, 1267, 1870, 1123, 2217, 1492, 1109, 1184, 927, 2056, 1036, 1323, 1524, 2312, 1421, 1575, 1076, 877, 510, 1268, 1871, 1124, 2218, 1493, 1110, 1185, 928, 2057, 1037, 1324, 1525, 2313, 1422, 1576, 1077, 878, 511, 1269, 1872, 1125, 2219, 1494, 1111, 1186, 929, 2058, 1038, 1325, 1526, 2314, 1423, 1577, 1078, 879, 512, 1270, 1873, 1126, 2220, 1495, 1112, 1187, 930, 2059, 1039, 1326, 1527, 2315, 1424, 1578, 1079, 880, 513, 1271, 1874, 1127, 2221, 1496, 1113, 1188, 931, 2060, 1040, 1327, 1528, 2316, 1425, 1579, 1080, 881, 514, 1272, 1875, 1128, 2222, 1497, 1114, 1189, 932, 2061, 1041, 1328, 1529, 2317, 1426, 1580, 953, 882, 515, 1273, 1876, 1129, 2223, 1498, 1115, 1190, 933, 2062, 1042, 1329, 1530, 2318, 1427, 1581, 954, 883, 516, 1274, 1877, 1130, 2224, 1499, 1116, 1191, 934, 2063, 1043, 1330, 1531, 2319, 1428, 1582, 955, 884, 517, 1275, 1878, 1131, 2225, 1500, 1117, 1192, 935, 2064, 1044, 1331, 1532, 2320, 1429, 1583, 956, 885, 518, 1276, 1879, 1132, 2226, 1501, 1118, 1193, 936, 2065, 1045, 1332, 1533, 2321, 1430, 1584, 957, 886, 519, 1277, 1880, 1133, 2227, 1502, 1119, 1194, 937, 2066, 1046, 1333, 1534, 2322, 1431, 1585, 958, 887, 520, 1278, 1881, 1134, 2228, 1503, 1120, 1195, 938, 2067, 1047, 1334, 1535, 2323, 1432, 1586, 959, 888, 521, 1279, 1882, 1135, 2229, 1504, 1121, 1196, 939, 2068, 1048, 1335, 1536, 2324, 1433, 1587, 960, 889, 522, 1280, 1883, 1136, 2230, 1505, 1122, 1197, 940, 2069, 1049, 1336, 1537, 2325, 1434, 1588, 961, 890, 523, 1281, 1884, 1137, 2231, 1506, 1123, 1198, 941, 2070, 1050, 1337, 1538, 2326, 1435, 1589, 962, 891, 524, 1282, 1885, 1138, 2232, 1507, 1124, 1199, 942, 2071, 1051, 1338, 1539, 2327, 1436, 1590, 963, 892, 525, 1283, 1886, 1139, 2233, 1508, 1125, 1200, 943, 2072, 1052, 1339, 1540, 2328, 1437, 1591, 964, 893, 526, 1284, 1887, 1140, 2234, 1509, 1126, 1201, 944, 2073, 1053, 1340, 1541, 2329, 1438, 1592, 965, 894, 527, 1285, 1888, 1141, 2235, 1510, 1127, 1202, 945, 2074, 1054, 1341, 1542, 2330, 1439, 1593, 966, 895, 528, 1286, 1889, 1142, 2236, 1511, 1128, 1203, 946, 2075, 1055, 1342, 1543, 2331, 1440, 1594, 967, 896, 529, 1287, 1890, 1143, 2237, 1512, 1129, 1204, 947, 2076, 1056, 1343, 1544, 2332, 1081, 1595, 968, 897, 530, 1288, 1891, 1144, 2238, 1513, 1130, 1205, 948, 2077, 1057, 1344, 1545, 2333, 1082, 1596, 969, 898, 531, 1289, 1892, 1145, 2239, 1514, 1131, 1206, 949, 2078, 1058, 1345, 1546, 2334, 1083, 1597, 970, 899, 532, 1290, 1893, 1146, 2240, 1515, 1132, 1207, 950, 2079, 1059, 1346, 1547, 2335, 1084, 1598, 971, 900, 533, 1291, 1894, 1147, 2241, 1516, 1133, 1208, 951, 2080, 1060, 1347, 1548, 2336, 1085, 1599, 972, 901, 534, 1292, 1801, 1148, 2242, 1517, 1134, 1209, 952, 2081, 1061, 1348, 1549, 2337, 1086, 1600, 973, 902, 535, 1293, 1802, 1149, 2243, 1518, 1135, 1210, 953, 2082, 1062, 1349, 1550, 2338, 1087, 1601, 974, 903, 536, 1294, 1803, 1150, 2244, 1519, 1136, 1211, 954, 2083, 1063, 1350, 1551, 2339, 1088, 1602, 975, 904, 537, 1295, 1804, 1151, 2245, 1520, 1137, 1212, 955, 2084, 1064, 1351, 1552, 2340, 1089, 1603, 976, 905, 538, 1296, 1805, 1152, 2246, 1521, 1138, 1213, 956, 2085, 1065, 1352, 1553, 2341, 1090, 1604, 977, 906, 539, 1297, 1806, 1153, 2247, 1522, 1139, 1214, 957, 2086, 1066, 1353, 1554, 2342, 1091, 1605, 978, 907, 540, 1298, 1807, 1154, 2248, 1523, 1140, 1215, 958, 2087, 1067, 1354, 1555, 2343, 1092, 1606, 979, 908, 541, 1299, 1808, 1155, 2249, 1524, 1141, 1216, 959, 2088, 1068, 1355, 1556, 2344, 1093, 1607, 980, 909, 542, 1300, 1809, 1156, 2250, 1525, 1142, 1217, 960, 2089, 1069, 1356, 1557, 2345, 1094, 1608, 981, 910, 543, 1301, 1810, 1157, 2251, 1526, 1143, 1218, 961, 2090, 1070, 1357, 1558, 2346, 1095, 1609, 982, 911, 544, 1302, 1811, 1158, 2252, 1527, 1144, 1219, 962, 2091, 1071, 1358, 1559, 2347, 1096, 1610, 983, 912, 545, 1303, 1812, 1159, 2253, 1528, 1145, 1220, 963, 2092, 1072, 1359, 1560, 2348, 1097, 1611, 984, 913, 546, 1304, 1813, 1160, 2254, 1529, 1146, 1221, 964, 2093, 1073, 1360, 1561, 2349, 1098, 1612, 985, 914, 547, 1305, 1814, 1161, 2255, 1530, 1147, 1222, 965, 2094, 1074, 1361, 1562, 2350, 1099, 1613, 986, 915, 548, 1306, 1815, 1162, 2256, 1531, 1148, 1223, 966, 2095, 1075, 1362, 1563, 2351, 1100, 1614, 987, 916, 549, 1307, 1816, 1163, 2257, 1532, 1149, 1224, 967, 2096, 1076, 1363, 1564, 2352, 1101, 1615, 988, 917, 550, 1308, 1817, 1164, 2258, 1533, 1150, 1225, 968, 2097, 1077, 1364, 1565, 2353, 1102, 1616, 989, 918, 551, 1309, 1818, 1165, 2259, 1534, 1151, 1226, 969, 2098, 1078, 1365, 1566, 2354, 1103, 1617, 990, 919, 552, 1310, 1819, 1166, 2260, 1535, 1152, 1227, 970, 2099, 1079, 1366, 1567, 2355, 1104, 1618, 991, 920, 553, 1311, 1820, 1167, 2261, 1536, 1153, 1228, 971, 2100, 1080, 1367, 1568, 2356, 1105, 1619, 992, 921, 554, 1312, 1821, 1168, 2262, 1537, 1154, 1229, 972, 2101, 721, 1368, 1441, 2357, 1106, 1620, 993, 922, 555, 1313, 1822, 1169, 2263, 1538, 1155, 1230, 973, 2102, 722, 1369, 1442, 2358, 1107, 1621, 994, 923, 556, 1081, 1823, 1170, 2264, 1539, 1156, 1231, 974, 2103, 723, 1370, 1443, 2359, 1108, 1622, 995, 924, 557, 1082, 1824, 1171, 2265, 1540, 1157, 1232, 975, 2104, 724, 1371, 1444, 2360, 1109, 1623, 996, 925, 558, 1083, 1825, 1172, 2266, 1541, 1158, 1233, 976, 2105, 725, 1372, 1445, 2361, 1110, 1624, 997, 926, 559, 1084, 1826, 1173, 2267, 1542, 1159, 1234, 977, 2106, 726, 1373, 1446, 2362, 1111, 1625, 998, 927, 560, 1085, 1827, 1174, 2268, 1543, 1160, 1235, 978, 2107, 727, 1374, 1447, 2363, 1112, 1626, 999, 928, 561, 1086, 1828, 1175, 2269, 1544, 1161, 1236, 979, 2108, 728, 1375, 1448, 2364, 1113, 1627, 1000, 929, 562, 1087, 1829, 1176, 2270, 1545, 1162, 1237, 980, 2109, 729, 1376, 1449, 2365, 1114, 1628, 1001, 930, 563, 1088, 1830, 1177, 2271, 1546, 1163, 1238, 981, 2110, 730, 1377, 1450, 2366, 1115, 1629, 1002, 931, 564, 1089, 1831, 1178, 2272, 1547, 1164, 1239, 982, 2111, 731, 1378, 1451, 2367, 1116, 1630, 1003, 932, 565, 1090, 1832, 1179, 2273, 1548, 1165, 1240, 983, 2112, 732, 1379, 1452, 2368, 1117, 1631, 1004, 933, 566, 1091, 1833, 1180, 2274, 1549, 1166, 1241, 984, 2113, 733, 1380, 1453, 2369, 1118, 1632, 1005, 934, 567, 1092, 1834, 1181, 2275, 1550, 1167, 1242, 985, 2114, 734, 1381, 1454, 2370, 1119, 1633, 1006, 935, 568, 1093, 1835, 1182, 2276, 1551, 1168, 1243, 986, 2115, 735, 1382, 1455, 2371, 1120, 1634, 1007, 936, 569, 1094, 1836, 1183, 2277, 1552, 1169, 1244, 987, 2116, 736, 1383, 1456, 2372, 1121, 1635, 1008, 937, 570, 1095, 1837, 1184, 2278, 1553, 1170, 1245, 988, 2117, 737, 1384, 1457, 2373, 1122, 1636, 1009, 938, 571, 1096, 1838, 1185, 2279, 1554, 1171, 1246, 989, 2118, 738, 1385, 1458, 2374, 1123, 1637, 1010, 939, 572, 1097, 1839, 1186, 2280, 1555, 1172, 1247, 990, 2119, 739, 1386, 1459, 2375, 1124, 1638, 1011, 940, 573, 1098, 1840, 1187, 2281, 1556, 1173, 1248, 991, 2120, 740, 1387, 1460, 2376, 1125, 1639, 1012, 941, 574, 1099, 1841, 1188, 2282, 1557, 1174, 1249, 992, 2121, 741, 1388, 1461, 2377, 1126, 1640, 1013, 942, 575, 1100, 1842, 1189, 2283, 1558, 1175, 1250, 993, 2122, 742, 1389, 1462, 2378, 1127, 1641, 1014, 943, 576, 1101, 1843, 1190, 2284, 1559, 1176, 1251, 994, 2123, 743, 1390, 1463, 2379, 1128, 1642, 1015, 944, 577, 1102, 1844, 1191, 2285, 1560, 1177, 1252, 995, 2124, 744, 1391, 1464, 2380, 1129, 1643, 1016, 945, 578, 1103, 1845, 1192, 2286, 1561, 1178, 1253, 996, 2125, 745, 1392, 1465, 2381, 1130, 1644, 1017, 946, 579, 1104, 1846, 1193, 2287, 1562, 1179, 1254, 997, 2126, 746, 1393, 1466, 2382, 1131, 1645, 1018, 947, 580, 1105, 1847, 1194, 2288, 1563, 1180, 1255, 998, 2127, 747, 1394, 1467, 2383, 1132, 1646, 1019, 948, 581, 1106, 1848, 1195, 2289, 1564, 1181, 1256, 999, 2128, 748, 1395, 1468, 2384, 1133, 1647, 1020, 949, 582, 1107, 1849, 1196, 2290, 1565, 1182, 1257, 1000, 2129, 749, 1396, 1469, 2385, 1134, 1648, 1021, 950, 583, 1108, 1850, 1197, 2291, 1566, 1183, 1258, 1001, 2130, 750, 1397, 1470, 2386, 1135, 1649, 1022, 951, 584, 1109, 1851, 1198, 2292, 1567, 1184, 1259, 1002, 2131, 751, 1398, 1471, 2387, 1136, 1650, 1023, 952, 585, 1110, 1852, 1199, 2293, 1568, 1185, 1260, 1003, 2132, 752, 1399, 1472, 2388, 1137, 1651, 1024, 953, 586, 1111, 1853, 1200, 2294, 1569, 1186, 1261, 1004, 2133, 753, 1400, 1473, 2389, 1138, 1652, 1025, 954, 587, 1112, 1854, 1201, 2295, 1570, 1187, 1262, 1005, 2134, 754, 1401, 1474, 2390, 1139, 1653, 1026, 955, 588, 1113, 1855, 1202, 2296, 1571, 1188, 1263, 1006, 2135, 755, 1402, 1475, 2391, 1140, 1654, 1027, 956, 589, 1114, 1856, 1203, 2297, 1572, 1189, 1264, 1007, 2136, 756, 1403, 1476, 2392, 1141, 1655, 1028, 957, 590, 1115, 1857, 1204, 2298, 1573, 1190, 1265, 1008, 2137, 757, 1404, 1477, 2393, 1142, 1656, 1029, 958, 591, 1116, 1858, 1205, 2299, 1574, 1191, 1266, 1009, 2138, 758, 1405, 1478, 2394, 1143, 1657, 1030, 959, 592, 1117, 1859, 1206, 2300, 1575, 1192, 1267, 1010, 2139, 759, 1406, 1479, 2395, 1144, 1658, 1031, 960, 593, 1118, 1860, 1207, 2301, 1576, 1193, 1268, 1011, 2140, 760, 1407, 1480, 2396, 1145, 1659, 1032, 961, 594, 1119, 1861, 1208, 2302, 1577, 1194, 1269, 1012, 2141, 761, 1408, 1481, 2397, 1146, 1660, 1033, 962, 595, 1120, 1862, 1209, 2303, 1578, 1195, 1270, 1013, 2142, 762, 1409, 1482, 2398, 1147, 1661, 1034, 963, 596, 1121, 1863, 1210, 2304, 1579, 1196, 1271, 1014, 2143, 763, 1410, 1483, 2399, 1148, 1662, 1035, 964, 597, 1122, 1864, 1211, 2305, 1580, 1197, 1272, 1015, 2144, 764, 1411, 1484, 2400, 1149, 1663, 1036, 965, 598, 1123, 1865, 1212, 2161, 1581, 1198, 1273, 1016, 2145, 765, 1412, 1485, 2401, 1150, 1664, 1037, 966, 599, 1124, 1866, 1213, 2162, 1582, 1199, 1274, 1017, 2146, 766, 1413, 1486, 2402, 1151, 1665, 1038, 967, 600, 1125, 1867, 1214, 2163, 1583, 1200, 1275, 1018, 2147, 767, 1414, 1487, 2403, 1152, 1666, 1039, 968, 601, 1126, 1868, 1215, 2164, 1584, 1201, 1276, 1019, 2148, 768, 1415, 1488, 2404, 1153, 1667, 1040, 969, 602, 1127, 1869, 1216, 2165, 1585, 1202, 1277, 1020, 2149, 769, 1416, 1489, 2405, 1154, 1668, 1041, 970, 603, 1128, 1870, 1217, 2166, 1586, 1203, 1278, 1021, 2150, 770, 1417, 1490, 2406, 1155, 1669, 1042, 971, 604, 1129, 1871, 1218, 2167, 1587, 1204, 1279, 1022, 2151, 771, 1418, 1491, 2407, 1156, 1670, 1043, 972, 605, 1130, 1872, 1219, 2168, 1588, 1205, 1280, 1023, 2152, 772, 1419, 1492, 2408, 1157, 1671, 1044, 973, 606, 1131, 1873, 1220, 2169, 1589, 1206, 1281, 1024, 2153, 773, 1420, 1493, 2409, 1158, 1672, 1045, 974, 607, 1132, 1874, 1221, 2170, 1590, 1207, 1282, 1025, 2154, 774, 1421, 1494, 2410, 1159, 1673, 1046, 975, 608, 1133, 1875, 1222, 2171, 1591, 1208, 1283, 1026, 2155, 775, 1422, 1495, 2411, 1160, 1674, 1047, 976, 609, 1134, 1876, 1223, 2172, 1592, 1209, 1284, 1027, 2156, 776, 1423, 1496, 2412, 1161, 1675, 1048, 977, 610, 1135, 1877, 1224, 2173, 1593, 1210, 1285, 1028, 2157, 777, 1424, 1497, 2413, 1162, 1676, 1049, 978, 611, 1136, 1878, 1225, 2174, 1594, 1211, 1286, 1029, 2158, 778, 1425, 1498, 2414, 1163, 1677, 1050, 979, 612, 1137, 1879, 1226, 2175, 1595, 1212, 1287, 1030, 2159, 779, 1426, 1499, 2415, 1164, 1678, 1051, 980, 613, 1138, 1880, 1227, 2176, 1596, 1213, 1288, 1031, 2160, 780, 1427, 1500, 2416, 1165, 1679, 1052, 981, 614, 1139, 1881, 1228, 2177, 1597, 1214, 1289, 1032, 1801, 781, 1428, 1501, 2417, 1166, 1680, 1053, 982, 615, 1140, 1882, 1229, 2178, 1598, 1215, 1290, 1033, 1802, 782, 1429, 1502, 2418, 1167, 1681, 1054, 983, 616, 1141, 1883, 1230, 2179, 1599, 1216, 1291, 1034, 1803, 783, 1430, 1503, 2419, 1168, 1682, 1055, 984, 617, 1142, 1884, 1231, 2180, 1600, 1217, 1292, 1035, 1804, 784, 1431, 1504, 2420, 1169, 1683, 1056, 985, 618, 1143, 1885, 1232, 2181, 1601, 1218, 1293, 1036, 1805, 785, 1432, 1505, 2421, 1170, 1684, 1057, 986, 619, 1144, 1886, 1233, 2182, 1602, 1219, 1294, 1037, 1806, 786, 1433, 1506, 2422, 1171, 1685, 1058, 987, 620, 1145, 1887, 1234, 2183, 1603, 1220, 1295, 1038, 1807, 787, 1434, 1507, 2423, 1172, 1686, 1059, 988, 621, 1146, 1888, 1235, 2184, 1604, 1221, 1296, 1039, 1808, 788, 1435, 1508, 2424, 1173, 1687, 1060, 989, 622, 1147, 1889, 1236, 2185, 1605, 1222, 1297, 1040, 1809, 789, 1436, 1509, 2425, 1174, 1688, 1061, 990, 623, 1148, 1890, 1237, 2186, 1606, 1223, 1298, 1041, 1810, 790, 1437, 1510, 2426, 1175, 1689, 1062, 991, 624, 1149, 1891, 1238, 2187, 1607, 1224, 1299, 1042, 1811, 791, 1438, 1511, 2427, 1176, 1690, 1063, 992, 625, 1150, 1892, 1239, 2188, 1608, 1225, 1300, 1043, 1812, 792, 1439, 1512, 2428, 1177, 1691, 1064, 993, 626, 1151, 1893, 1240, 2189, 1609, 1226, 1301, 1044, 1813, 793, 1440, 1513, 2429, 1178, 1692, 1065, 994, 627, 1152, 1894, 1241, 2190, 1610, 1227, 1302, 1045, 1814, 794, 1081, 1514, 2430, 1179, 1693, 1066, 995, 628, 1153, 1895, 1242, 2191, 1611, 1228, 1303, 1046, 1815, 795, 1082, 1515, 2431, 1180, 1694, 1067, 996, 629, 1154, 1896, 1243, 2192, 1612, 1229, 1304, 1047, 1816, 796, 1083, 1516, 2432, 1181, 1695, 1068, 997, 630, 1155, 1897, 1244, 2193, 1613, 1230, 1305, 1048, 1817, 797, 1084, 1517, 2433, 1182, 1696, 1069, 998, 631, 1156, 1898, 1245, 2194, 1614, 1231, 1306, 1049, 1818, 798, 1085, 1518, 2434, 1183, 1697, 1070, 999, 632, 1157, 1899, 1246, 2195, 1615, 1232, 1307, 1050, 1819, 799, 1086, 1519, 2435, 1184, 1698, 1071, 1000, 633, 1158, 1900, 1247, 2196, 1616, 1233, 1308, 1051, 1820, 800, 1087, 1520, 2436, 1185, 1699, 1072, 1001, 634, 1159, 1901, 1248, 2197, 1617, 1234, 1309, 1052, 1821, 801, 1088, 1521, 2437, 1186, 1700, 1073, 1002, 635, 1160, 1902, 1249, 2198, 1618, 1235, 1310, 1053, 1822, 802, 1089, 1522, 2438, 1187, 1701, 1074, 1003, 636, 1161, 1903, 1250, 2199, 1619, 1236, 1311, 1054, 1823, 803, 1090, 1523, 2439, 1188, 1702, 1075, 1004, 637, 1162, 1904, 1251, 2200, 1620, 1237, 1312, 1055, 1824, 804, 1091, 1524, 2440, 1189, 1703, 1076, 1005, 638, 1163, 1905, 1252, 2201, 1621, 1238, 1313, 1056, 1825, 805, 1092, 1525, 2441, 1190, 1704, 1077, 1006, 639, 1164, 1906, 1253, 2202, 1622, 1239, 1314, 1057, 1826, 806, 1093, 1526, 2442, 1191, 1705, 1078, 1007, 640, 1165, 1907, 1254, 2203, 1623, 1240, 1315, 1058, 1827, 807, 1094, 1527, 2443, 1192, 1706, 1079, 1008, 641, 1166, 1908, 1255, 2204, 1624, 1241, 1316, 1059, 1828, 808, 1095, 1528, 2444, 1193, 1707, 1080, 1009, 642, 1167, 1909, 1256, 2205, 1625, 1242, 1317, 1060, 1829, 809, 1096, 1529, 2445, 1194, 1708, 849, 1010, 643, 1168, 1910, 1257, 2206, 1626, 1243, 1318, 1061, 1830, 810, 1097, 1530, 2446, 1195, 1709, 850, 1011, 644, 1169, 1911, 1258, 2207, 1627, 1244, 1319, 1062, 1831, 811, 1098, 1531, 2447, 1196, 1710, 851, 1012, 645, 1170, 1912, 1259, 2208, 1628, 1245, 1320, 1063, 1832, 812, 1099, 1532, 2448, 1197, 1711, 852, 1013, 646, 1171, 1913, 1260, 2209, 1629, 1246, 1321, 1064, 1833, 813, 1100, 1533, 2449, 1198, 1712, 853, 1014, 647, 1172, 1914, 1261, 2210, 1630, 1247, 1322, 1065, 1834, 814, 1101, 1534, 2450, 1199, 1713, 854, 1015, 648, 1173, 1915, 1262, 2211, 1631, 1248, 1323, 1066, 1835, 815, 1102, 1535, 2451, 1200, 1714, 855, 1016, 649, 1174, 1916, 1263, 2212, 1632, 1249, 1324, 1067, 1836, 816, 1103, 1536, 2452, 1201, 1715, 856, 1017, 650, 1175, 1917, 1264, 2213, 1633, 1250, 1325, 1068, 1837, 817, 1104, 1537, 2453, 1202, 1716, 857, 1018, 651, 1176, 1918, 1265, 2214, 1634, 1251, 1326, 1069, 1838, 818, 1105, 1538, 2454, 2309, 2050, 2431, 1457, 2978, 1410, 2013, 1568, 2360, 1861, 1553, 1706, 1127, 2682, 1222, 2325, 1667, 2866, 2310, 2051, 2432, 1458, 2979, 1411, 2014, 1569, 2361, 1862, 1554, 1707, 1128, 2683, 1223, 2326, 1668, 2867, 2311, 2052, 2433, 1459, 2980, 1412, 2015, 1570, 2362, 1863, 1555, 1708, 1129, 2684, 1224, 2327, 1669, 2868, 2312, 2053, 2434, 1460, 2981, 1413, 2016, 1571, 2363, 1864, 1556, 1709, 1130, 2685, 1225, 2328, 1670, 2869, 2313, 2054, 2435, 1461, 2982, 1414, 2017, 1572, 2364, 1865, 1557, 1710, 1131, 2686, 1226, 2329, 1671, 2870, 2314, 2055, 2436, 1462, 2983, 1415, 2018, 1573, 2365, 1866, 1558, 1711, 1132, 2687, 1227, 2330, 1672, 2871, 2315, 2056, 2437, 1463, 2984, 1416, 2019, 1574, 2366, 1867, 1559, 1712, 1133, 2688, 1228, 2331, 1673, 2872, 2316, 2057, 2438, 1464, 2985, 1417, 2020, 1575, 2367, 1868, 1560, 1713, 1134, 2689, 1229, 2332, 1674, 2873, 2317, 2058, 2439, 1465, 2986, 1418, 2021, 1576, 2368, 1869, 1561, 1714, 1135, 2690, 1230, 2333, 1675, 2874, 2318, 2059, 2440, 1466, 2987, 1419, 2022, 1577, 2369, 1870, 1562, 1715, 1136, 2691, 1231, 2334, 1676, 2875, 2319, 2060, 2441, 1467, 2988, 1420, 2023, 1578, 2370, 1871, 1563, 1716, 1137, 2692, 1232, 2335, 1677, 2876, 2320, 2061, 2442, 1468, 2989, 1421, 2024, 1579, 2371, 1872, 1564, 1717, 1138, 2693, 1233, 2336, 1678, 2877, 2321, 2062, 2443, 1469, 2990, 1422, 2025, 1580, 2372, 1873, 1565, 1718, 1139, 2694, 1234, 2337, 1679, 2878, 2322, 2063, 2444, 1470, 2991, 1423, 2026, 1581, 2373, 1874, 1566, 1719, 1140, 2695, 1235, 2338, 1680, 2879, 2323, 2064, 2445, 1471, 2992, 1424, 2027, 1582, 2374, 1875, 1567, 1720, 1141, 2696, 1236, 2339, 1681, 2880, 2324, 2065, 2446, 1472, 2993, 1425, 2028, 1583, 2375, 1876, 1568, 1721, 1142, 2697, 1237, 2340, 1682, 2521, 2325, 2066, 2447, 1473, 2994, 1426, 2029, 1584, 2376, 1877, 1569, 1722, 1143, 2698, 1238, 2341, 1683, 2522, 2326, 2067, 2448, 1474, 2995, 1427, 2030, 1585, 2377, 1878, 1570, 1723, 1144, 2699, 1239, 2342, 1684, 2523, 2327, 2068, 2449, 1475, 2996, 1428, 2031, 1586, 2378, 1879, 1571, 1724, 1145, 2700, 1240, 2343, 1685, 2524, 2328, 2069, 2450, 1476, 2997, 1429, 2032, 1587, 2379, 1880, 1572, 1725, 1146, 2701, 1241, 2344, 1686, 2525, 2329, 2070, 2451, 1477, 2998, 1430, 2033, 1588, 2380, 1881, 1573, 1726, 1147, 2702, 1242, 2345, 1687, 2526, 2330, 2071, 2452, 1478, 2999, 1431, 2034, 1589, 2381, 1882, 1574, 1727, 1148, 2703, 1243, 2346, 1688, 2527, 2331, 2072, 2453, 1479, 3000, 1432, 2035, 1590, 2382, 1883, 1575, 1728, 1149, 2704, 1244, 2347, 1689, 2528, 2332, 2073, 2454, 1480, 3001, 1433, 2036, 1591, 2383, 1884, 1576, 1729, 1150, 2705, 1245, 2348, 1690, 2529, 2333, 2074, 2455, 1481, 3002, 1434, 2037, 1592, 2384, 1885, 1577, 1730, 1151, 2706, 1246, 2349, 1691, 2530, 2334, 2075, 2456, 1482, 3003, 1435, 2038, 1593, 2385, 1886, 1578, 1731, 1152, 2707, 1247, 2350, 1692, 2531, 2335, 2076, 2457, 1483, 3004, 1436, 2039, 1594, 2386, 1887, 1579, 1732, 1153, 2708, 1248, 2351, 1693, 2532, 2336, 2077, 2458, 1484, 3005, 1437, 2040, 1595, 2387, 1888, 1580, 1733, 1154, 2709, 1249, 2352, 1694, 2533, 2337, 2078, 2459, 1485, 3006, 1438, 2041, 1596, 2388, 1889, 1581, 1734, 1155, 2710, 1250, 2353, 1695, 2534, 2338, 2079, 2460, 1486, 3007, 1439, 2042, 1597, 2389, 1890, 1582, 1735, 1156, 2711, 1251, 2354, 1696, 2535, 2339, 2080, 2461, 1487, 3008, 1440, 2043, 1598, 2390, 1891, 1583, 1736, 1157, 2712, 1252, 2355, 1697, 2536, 2340, 2081, 2462, 1488, 3009, 1208, 2044, 1599, 2391, 1892, 1584, 1737, 1158, 2713, 1253, 2356, 1698, 2537, 2341, 2082, 2463, 1489, 3010, 1209, 2045, 1600, 2392, 1893, 1585, 1738, 1159, 2714, 1254, 2357, 1699, 2538, 2342, 2083, 2464, 1490, 3011, 1210, 2046, 1601, 2393, 1894, 1586, 1739, 1160, 2715, 1255, 2358, 1700, 2539, 2343, 2084, 2465, 1491, 3012, 1211, 2047, 1602, 2394, 1895, 1587, 1740, 1161, 2716, 1256, 2359, 1701, 2540, 2344, 2085, 2466, 1492, 3013, 1212, 2048, 1603, 2395, 1896, 1588, 1741, 1162, 2717, 1257, 2360, 1702, 2541, 2345, 2086, 2467, 1493, 3014, 1213, 2049, 1604, 2396, 1897, 1589, 1742, 1163, 2718, 1258, 2361, 1703, 2542, 2346, 2087, 2468, 1494, 3015, 1214, 2050, 1605, 2397, 1898, 1590, 1743, 1164, 2719, 1259, 2362, 1704, 2543, 2347, 2088, 2469, 1495, 3016, 1215, 2051, 1606, 2398, 1899, 1591, 1744, 1165, 2720, 1260, 2363, 1705, 2544, 2348, 2089, 2470, 1496, 3017, 1216, 2052, 1607, 2399, 1900, 1592, 1745, 1166, 2721, 1261, 2364, 1706, 2545, 2349, 2090, 2471, 1497, 3018, 1217, 2053, 1608, 2400, 1901, 1593, 1746, 1167, 2722, 1262, 2365, 1579, 2546, 2350, 2091, 2472, 1498, 3019, 1218, 2054, 1609, 2401, 1902, 1594, 1747, 1168, 2723, 1263, 2366, 1580, 2547, 2351, 2092, 2473, 1499, 3020, 1219, 2055, 1610, 2402, 1903, 1595, 1748, 1169, 2724, 1264, 2367, 1581, 2548, 2352, 2093, 2474, 1500, 3021, 1220, 2056, 1611, 2403, 1904, 1596, 1749, 1170, 2725, 1265, 2368, 1582, 2549, 2353, 2094, 2475, 1501, 3022, 1221, 2057, 1612, 2404, 1905, 1597, 1750, 1171, 2726, 1266, 2369, 1583, 2550, 2354, 2095, 2476, 1502, 3023, 1222, 2058, 1613, 2405, 1906, 1598, 1751, 1172, 2727, 1267, 2370, 1584, 2551, 2355, 2096, 2477, 1503, 3024, 1223, 2059, 1614, 2406, 1907, 1599, 1752, 1173, 2728, 1268, 2371, 1585, 2552, 2356, 2097, 2478, 1504, 3025, 1224, 2060, 1615, 2407, 1908, 1600, 1753, 1174, 2729, 1269, 2372, 1586, 2553, 2357, 2098, 2479, 1505, 3026, 1225, 2061, 1616, 2408, 1909, 1601, 1754, 1175, 2730, 1270, 2373, 1587, 2554, 2358, 2099, 2480, 1506, 3027, 1226, 2062, 1617, 2409, 1910, 1602, 1755, 1176, 2731, 1271, 2374, 1588, 2555, 2359, 2100, 2481, 1507, 3028, 1227, 2063, 1618, 2410, 1911, 1603, 1756, 1177, 2732, 1272, 2375, 1589, 2556, 2360, 2101, 2482, 1508, 3029, 1228, 2064, 1619, 2411, 1912, 1604, 1757, 1178, 2733, 1273, 2376, 1590, 2557, 2361, 2102, 2483, 1509, 3030, 1229, 2065, 1620, 2412, 1913, 1605, 1758, 1179, 2734, 1274, 2377, 1591, 2558, 2362, 2103, 2484, 1510, 3031, 1230, 2066, 1621, 2413, 1914, 1606, 1759, 1180, 2735, 1275, 2378, 1592, 2559, 2363, 2104, 2485, 1511, 3032, 1231, 2067, 1622, 2414, 1915, 1607, 1760, 1181, 2736, 1276, 2379, 1593, 2560, 2364, 2105, 2486, 1512, 3033, 1232, 2068, 1623, 2415, 1916, 1608, 1761, 1182, 2737, 1277, 2380, 1594, 2561, 2365, 2106, 2487, 1513, 3034, 1233, 2069, 1624, 2416, 1917, 1609, 1762, 1183, 2738, 1278, 2381, 1595, 2562, 2366, 2107, 2488, 1514, 3035, 1234, 2070, 1625, 2417, 1918, 1610, 1763, 1184, 2739, 1279, 2382, 1596, 2563, 2367, 2108, 2489, 1515, 3036, 1235, 2071, 1626, 2418, 1919, 1611, 1764, 1185, 2740, 1280, 2383, 1597, 2564, 2368, 2109, 2490, 1516, 3037, 1236, 2072, 1627, 2419, 1920, 1612, 1765, 1186, 2741, 1281, 2384, 1598, 2565, 2369, 2110, 2491, 1517, 3038, 1237, 2073, 1628, 2420, 1921, 1613, 1766, 1187, 2742, 1282, 2385, 1599, 2566, 2370, 2111, 2492, 1518, 3039, 1238, 2074, 1629, 2421, 1922, 1614, 1767, 1188, 2743, 1283, 2386, 1600, 2567, 2371, 2112, 2493, 1519, 3040, 1239, 2075, 1630, 2422, 1923, 1615, 1768, 1189, 2744, 1284, 2387, 1601, 2568, 2372, 2113, 2494, 1520, 3041, 1240, 2076, 1631, 2423, 1924, 1616, 1769, 1190, 2745, 1285, 2388, 1602, 2569, 2373, 2114, 2495, 1521, 3042, 1241, 2077, 1632, 2424, 1925, 1617, 1770, 1191, 2746, 1286, 2389, 1603, 2570, 2374, 2115, 2496, 1522, 3043, 1242, 2078, 1633, 2425, 1926, 1618, 1771, 1192, 2747, 1287, 2390, 1604, 2571, 2375, 2116, 2497, 1523, 3044, 1243, 2079, 1634, 2426, 1927, 1619, 1772, 1193, 2748, 1288, 2391, 1605, 2572, 2376, 2117, 2498, 1524, 3045, 1244, 2080, 1635, 2427, 1928, 1620, 1773, 1194, 2749, 1289, 2392, 1606, 2573, 2377, 2118, 2499, 1525, 3046, 1245, 2081, 1636, 2428, 1929, 1621, 1774, 1195, 2750, 1290, 2393, 1607, 2574, 2378, 2119, 2500, 1526, 3047, 1246, 2082, 1637, 2429, 1930, 1622, 1775, 1196, 2751, 1291, 2161, 1608, 2575, 2379, 2120, 2501, 1527, 3048, 1247, 2083, 1638, 2430, 1931, 1623, 1776, 1197, 2752, 1292, 2162, 1609, 2576, 2380, 2121, 2502, 1528, 3049, 1248, 2084, 1639, 2431, 1932, 1624, 1777, 1198, 2753, 1293, 2163, 1610, 2577, 2381, 2122, 2503, 1529, 3050, 1249, 2085, 1640, 2432, 1933, 1625, 1778, 1199, 2754, 1294, 2164, 1611, 2578, 2382, 2123, 2504, 1530, 3051, 1250, 2086, 1641, 2433, 1934, 1626, 1779, 1200, 2755, 1295, 2165, 1612, 2579, 2383, 2124, 2505, 1531, 3052, 1251, 2087, 1642, 2434, 1935, 1627, 1780, 1201, 2756, 1296, 2166, 1613, 2580, 2384, 2125, 2506, 1532, 3053, 1252, 2088, 1643, 2435, 1936, 1628, 1781, 1202, 2757, 1297, 2167, 1614, 2581, 2385, 2126, 2507, 1533, 3054, 1253, 2089, 1644, 2436, 1937, 1629, 1782, 1203, 2758, 1298, 2168, 1615, 2582, 2386, 2127, 2508, 1534, 3055, 1254, 2090, 1645, 2437, 1938, 1630, 1783, 1204, 2759, 1299, 2169, 1616, 2583, 2387, 2128, 2509, 1535, 3056, 1255, 2091, 1646, 2438, 1939, 1631, 1784, 1205, 2760, 1300, 2170, 1617, 2584, 2388, 2129, 2510, 1536, 3057, 1256, 2092, 1647, 2439, 1940, 1632, 1785, 1206, 2761, 1301, 2171, 1618, 2585, 2389, 2130, 2511, 1537, 3058, 1257, 2093, 1648, 2440, 1941, 1633, 1786, 1207, 2762, 1302, 2172, 1619, 2586, 2390, 2131, 2512, 1538, 3059, 1258, 2094, 1649, 2441, 1942, 1634, 1787, 1208, 2763, 1303, 2173, 1620, 2587, 2391, 2132, 2513, 1539, 3060, 1259, 2095, 1650, 2442, 1943, 1635, 1788, 1209, 2764, 1304, 2174, 1621, 2588, 2392, 2133, 2514, 1540, 3061, 1260, 2096, 1651, 2443, 1944, 1636, 1789, 1210, 2765, 1305, 2175, 1622, 2589, 2393, 2134, 2515, 1541, 3062, 1261, 2097, 1652, 2444, 1945, 1637, 1790, 1211, 2766, 1306, 2176, 1623, 2590, 2394, 2135, 2516, 1542, 3063, 1262, 2098, 1653, 2445, 1946, 1638, 1791, 1212, 2767, 1307, 2177, 1624, 2591, 2395, 2136, 2517, 1543, 3064, 1263, 2099, 1654, 2446, 1947, 1639, 1792, 1213, 2768, 1308, 2178, 1625, 2592, 2396, 2137, 2518, 1544, 3065, 1264, 2100, 1655, 2447, 1948, 1640, 1793, 1214, 2769, 1309, 2179, 1626, 2593, 2397, 2138, 2519, 1545, 3066, 1265, 2101, 1656, 2448, 1949, 1641, 1794, 1215, 2770, 1310, 2180, 1627, 2594, 2398, 2139, 2520, 1546, 3067, 1266, 2102, 1657, 2449, 1950, 1642, 1795, 1216, 2771, 1311, 2181, 1628, 2595, 2399, 2140, 2161, 1547, 3068, 1267, 2103, 1658, 2450, 1951, 1643, 1796, 1217, 2772, 1312, 2182, 1629, 2596, 2400, 2141, 2162, 1548, 3069, 1268, 2104, 1659, 2451, 1952, 1644, 1797, 1218, 2773, 1313, 2183, 1630, 2597, 2401, 2142, 2163, 1549, 3070, 1269, 2105, 1660, 2452, 1953, 1645, 1798, 1219, 2774, 1314, 2184, 1631, 2598, 2402, 2143, 2164, 1550, 3071, 1270, 2106, 1661, 2453, 1954, 1646, 1799, 1220, 2775, 1315, 2185, 1632, 2599, 2403, 2144, 2165, 1551, 3072, 1271, 2107, 1662, 2454, 1955, 1647, 1800, 1221, 2521, 1316, 2186, 1633, 2600, 2404, 2145, 2166, 1552, 3073, 1272, 2108, 1663, 2455, 1956, 1648, 1441, 1222, 2522, 1317, 2187, 1634, 2601, 2405, 2146, 2167, 1553, 3074, 1273, 2109, 1664, 2456, 1957, 1649, 1442, 1223, 2523, 1318, 2188, 1635, 2602, 2406, 2147, 2168, 1554, 3075, 1274, 2110, 1665, 2457, 1958, 1650, 1443, 1224, 2524, 1319, 2189, 1636, 2603, 2407, 2148, 2169, 1555, 3076, 1275, 2111, 1666, 2458, 1959, 1651, 1444, 1225, 2525, 1320, 2190, 1637, 2604, 2408, 2149, 2170, 1556, 2881, 1276, 2112, 1667, 2459, 1960, 1652, 1445, 1226, 2526, 1321, 2191, 1638, 2605, 2409, 2150, 2171, 1557, 2882, 1277, 2113, 1668, 2460, 1961, 1653, 1446, 1227, 2527, 1322, 2192, 1639, 2606, 2410, 2151, 2172, 1558, 2883, 1278, 2114, 1669, 2461, 1962, 1654, 1447, 1228, 2528, 1323, 2193, 1640, 2607, 2411, 2152, 2173, 1559, 2884, 1279, 2115, 1670, 2462, 1963, 1655, 1448, 1229, 2529, 1324, 2194, 1641, 2608, 2412, 2153, 2174, 1560, 2885, 1280, 2116, 1671, 2463, 1964, 1656, 1449, 1230, 2530, 1325, 2195, 1642, 2609, 2413, 2154, 2175, 1561, 2886, 1281, 2117, 1672, 2464, 1965, 1657, 1450, 1231, 2531, 1326, 2196, 1643, 2610, 2414, 2155, 2176, 1562, 2887, 1282, 2118, 1673, 2465, 1966, 1658, 1451, 1232, 2532, 1327, 2197, 1644, 2611, 2415, 2156, 2177, 1563, 2888, 1283, 2119, 1674, 2466, 1967, 1659, 1452, 1233, 2533, 1328, 2198, 1645, 2612, 2416, 2157, 2178, 1564, 2889, 1284, 2120, 1675, 2467, 1968, 1660, 1453, 1234, 2534, 1329, 2199, 1646, 2613, 2417, 2158, 2179, 1565, 2890, 1285, 2121, 1676, 2468, 1969, 1661, 1454, 1235, 2535, 1330, 2200, 1647, 2614, 2418, 2159, 2180, 1566, 2891, 1286, 2122, 1677, 2469, 1970, 1662, 1455, 1236, 2536, 1331, 2201, 1648, 2615, 2419, 2160, 2181, 1567, 2892, 1287, 2123, 1678, 2470, 1971, 1663, 1456, 1237, 2537, 1332, 2202, 1649, 2616, 2420, 1801, 2182, 1568, 2893, 1288, 2124, 1679, 2471, 1972, 1664, 1457, 1238, 2538, 1333, 2203, 1650, 2617, 2421, 1802, 2183, 1569, 2894, 1289, 2125, 1680, 2472, 1973, 1665, 1458, 1239, 2539, 1334, 2204, 1651, 2618, 2422, 1803, 2184, 1570, 2895, 1290, 2126, 1681, 2473, 1974, 1666, 1459, 1240, 2540, 1335, 2205, 1652, 2619, 2423, 1804, 2185, 1571, 2896, 1291, 2127, 1682, 2474, 1975, 1667, 1460, 1241, 2541, 1336, 2206, 1653, 2620, 2424, 1805, 2186, 1572, 2897, 1292, 2128, 1683, 2475, 1976, 1668, 1461, 1242, 2542, 1337, 2207, 1654, 2621, 2425, 1806, 2187, 1573, 2898, 1293, 2129, 1684, 2476, 1977, 1669, 1462, 1243, 2543, 1338, 2208, 1655, 2622, 2426, 1807, 2188, 1574, 2899, 1294, 2130, 1685, 2477, 1978, 1670, 1463, 1244, 2544, 1339, 2209, 1656, 2623, 2427, 1808, 2189, 1575, 2900, 1295, 2131, 1686, 2478, 1979, 1671, 1464, 1245, 2545, 1340, 2210, 1657, 2624, 2428, 1809, 2190, 1576, 2901, 1296, 2132, 1687, 2479, 1980, 1672, 1465, 1246, 2546, 1341, 2211, 1658, 2625, 2429, 1810, 2191, 1577, 2902, 1297, 2133, 1688, 2480, 1981, 1673, 1466, 1247, 2547, 1342, 2212, 1659, 2626, 2430, 1811, 2192, 1578, 2903, 1298, 2134, 1689, 2481, 1982, 1674, 1467, 1248, 2548, 1343, 2213, 1660, 2627, 2431, 1812, 2193, 1579, 2904, 1299, 2135, 1690, 2482, 1983, 1675, 1468, 1249, 2549, 1344, 2214, 1661, 2628, 2432, 1813, 2194, 1580, 2905, 1300, 2136, 1691, 2483, 1984, 1676, 1469, 1250, 2550, 1345, 2215, 1662, 2629, 2433, 1814, 2195, 1581, 2906, 1301, 2137, 1692, 2484, 1985, 1677, 1470, 1251, 2551, 1346, 2216, 1663, 2630, 2434, 1815, 2196, 1582, 2907, 1302, 2138, 1693, 2485, 1986, 1678, 1471, 1252, 2552, 1347, 2217, 1664, 2631, 2435, 1816, 2197, 1583, 2908, 1303, 2139, 1694, 2486, 1987, 1679, 1472, 1253, 2553, 1348, 2218, 1665, 2632, 2436, 1817, 2198, 1584, 2909, 1304, 2140, 1695, 2487, 1988, 1680, 1473, 1254, 2554, 1349, 2219, 1666, 2633, 2437, 1818, 2199, 1585, 2910, 1305, 2141, 1696, 2488, 1989, 1681, 1474, 1255, 2555, 1350, 2220, 1667, 2634, 2438, 1819, 2200, 1586, 2911, 1306, 2142, 1697, 2489, 1990, 1682, 1475, 1256, 2556, 1351, 2221, 1668, 2635, 2439, 1820, 2201, 1587, 2912, 1307, 2143, 1698, 2490, 1991, 1683, 1476, 1257, 2557, 1352, 2222, 1669, 2636, 2440, 1821, 2202, 1588, 2913, 1308, 2144, 1699, 2491, 1992, 1684, 1477, 1258, 2558, 1353, 2223, 1670, 2637, 2441, 1822, 2203, 1589, 2914, 1309, 2145, 1700, 2492, 1993, 1685, 1478, 1259, 2559, 1354, 2224, 1671, 2638, 2442, 1823, 2204, 1590, 2915, 1310, 2146, 1701, 2493, 1994, 1686, 1479, 1260, 2560, 1355, 2225, 1672, 2639, 2443, 1824, 2205, 1591, 2916, 1311, 2147, 1702, 2494, 1995, 1687, 1480, 1261, 2561, 1356, 2226, 1535, 2640, 2444, 1825, 2206, 1592, 2917, 1312, 2148, 1703, 2495, 1996, 1688, 1481, 1262, 2562, 1357, 2227, 1536, 2641, 2445, 1826, 2207, 1593, 2918, 1313, 2149, 1704, 2496, 1997, 1689, 1482, 1263, 2563, 1358, 2228, 1537, 2642, 2446, 1827, 2208, 1594, 2919, 1314, 2150, 1705, 2497, 1998, 1690, 1483, 1264, 2564, 1359, 2229, 1538, 2643, 2447, 1828, 2209, 1595, 2920, 1315, 2151, 1706, 2498, 1999, 1691, 1484, 1265, 2565, 1360, 2230, 1539, 2644, 2448, 1829, 2210, 1596, 2921, 1316, 2152, 1707, 2499, 2000, 1692, 1485, 1266, 2566, 1361, 2231, 1540, 2645, 2449, 1830, 2211, 1597, 2922, 1317, 2153, 1708, 2500, 2001, 1693, 1486, 1267, 2567, 1362, 2232, 1541, 2646, 2450, 1831, 2212, 1598, 2923, 1318, 2154, 1709, 2501, 2002, 1694, 1487, 1268, 2568, 1363, 2233, 1542, 2647, 2451, 1832, 2213, 1599, 2924, 1319, 2155, 1710, 2502, 2003, 1695, 1488, 1269, 2569, 1364, 2234, 1543, 2648, 2452, 1833, 2214, 1600, 2925, 1320, 2156, 1711, 2503, 2004, 1696, 1489, 1270, 2570, 1365, 2235, 1544, 2649, 2453, 1834, 2215, 1601, 2926, 1321, 2157, 1712, 2504, 2005, 1697, 1490, 1271, 2571, 1366, 2236, 1545, 2650, 2454, 1835, 2216, 1602, 2927, 1322, 2158, 1713, 2505, 2006, 1698, 1491, 1272, 2572, 1367, 2237, 1546, 2651, 2455, 1836, 2217, 1603, 2928, 1323, 2159, 1714, 2506, 2007, 1699, 1492, 1273, 2573, 1368, 2238, 1547, 2652, 2456, 1837, 2218, 1604, 2929, 1324, 2160, 1715, 2507, 2008, 1700, 1493, 1274, 2574, 1369, 2239, 1548, 2653, 2457, 1838, 2219, 1605, 2930, 1325, 2067, 1716, 2508, 2009, 1701, 1494, 1275, 2575, 1370, 2240, 1549, 2654, 2458, 1839, 2220, 1606, 2931, 1326, 2068, 1717, 2509, 2010, 1702, 1495, 1276, 2576, 1371, 2241, 1550, 2655, 2459, 1840, 2221, 1607, 2932, 1327, 2069, 1718, 2510, 2011, 1703, 1496, 1277, 2577, 1372, 2242, 1551, 2656, 2460, 1841, 2222, 1608, 2933, 1328, 2070, 1719, 2511, 2012, 1704, 1497, 1278, 2578, 1373, 2243, 1552, 2657, 2461, 1842, 2223, 1609, 2934, 1329, 2071, 1720, 2512, 2013, 1705, 1498, 1279, 2579, 1374, 2244, 1553, 2658, 2462, 1843, 2224, 1610, 2935, 1330, 2072, 1721, 2513, 2014, 1706, 1499, 1280, 2580, 1375, 2245, 1554, 2659, 2463, 1844, 2225, 1611, 2936, 1331, 2073, 1722, 2514, 2015, 1707, 1500, 1281, 2581, 1376, 2246, 1555, 2660, 2464, 1845, 2226, 1612, 2937, 1332, 2074, 1723, 2515, 2016, 1708, 1501, 1282, 2582, 1377, 2247, 1556, 2661, 2465, 1846, 2227, 1613, 2938, 1333, 2075, 1724, 2516, 2017, 1709, 1502, 1283, 2583, 1378, 2248, 1557, 2662, 2466, 1847, 2228, 1614, 2881, 1334, 2076, 1725, 2517, 2018, 1710, 1503, 1284, 2584, 1379, 2249, 1558, 2663, 2467, 1848, 2229, 1615, 2882, 1335, 2077, 1726, 2518, 2019, 1711, 1504, 1285, 2585, 1380, 2250, 1559, 2664, 2468, 1849, 2230, 1616, 2883, 1336, 2078, 1727, 2519, 2020, 1712, 1505, 1286, 2586, 1381, 2251, 1560, 2665, 2469, 1850, 2231, 1617, 2884, 1337, 2079, 1728, 2520, 2021, 1713, 1506, 1287, 2587, 1382, 2252, 1561, 2666, 2470, 1851, 2232, 1618, 2885, 1338, 2080, 1729, 2376, 2022, 1714, 1507, 1288, 2588, 1383, 2253, 1562, 2667, 2471, 1852, 2233, 1619, 2886, 1339, 2081, 1730, 2377, 2023, 1715, 1508, 1289, 2589, 1384, 2254, 1563, 2668, 2472, 1853, 2234, 1620, 2887, 1340, 2082, 1731, 2378, 2024, 1716, 1509, 1290, 2590, 1385, 2255, 1564, 2669, 2473, 1854, 2235, 1621, 2888, 1341, 2083, 1732, 2379, 2025, 1717, 1510, 1291, 2591, 1386, 2256, 1565, 2670, 2474, 1855, 2236, 1622, 2889, 1342, 2084, 1733, 2380, 2026, 1718, 1511, 1292, 2592, 1387, 2257, 1566, 2671, 2475, 1856, 2237, 1623, 2890, 1343, 2085, 1734, 2381, 2027, 1719, 1512, 1293, 2593, 1388, 2258, 1567, 2672, 2476, 1857, 2238, 1624, 2891, 1344, 2086, 1735, 2382, 2028, 1720, 1513, 1294, 2594, 1389, 2259, 1568, 2673, 2477, 1858, 2239, 1625, 2892, 1345, 2087, 1736, 2383, 2029, 1721, 1514, 1295, 2595, 1390, 2260, 1569, 2674, 2478, 1859, 2240, 1626, 2893, 1346, 2088, 1737, 2384, 2030, 1722, 1515, 1296, 2596, 1391, 2261, 1570, 2675, 2479, 1860, 2241, 1627, 2894, 1347, 2089, 1738, 2385, 2031, 1723, 1516, 1297, 2597, 1392, 2262, 1571, 2676, 2480, 1861, 2242, 1628, 2895, 1348, 2090, 1739, 2386, 2032, 1724, 1517, 1298, 2598, 1393, 2263, 1572, 2677, 2481, 1862, 2243, 1629, 2896, 1349, 2091, 1740, 2387, 2033, 1725, 1518, 1299, 2599, 1394, 2264, 1573, 2678, 2482, 1863, 2244, 1630, 2897, 1350, 2092, 1741, 2388, 2034, 1726, 1519, 1300, 2600, 1395, 2265, 1574, 2679, 2483, 1864, 2245, 1631, 2898, 1351, 2093, 1742, 2389, 2035, 1727, 1520, 1301, 2601, 1396, 2266, 1575, 2680, 2484, 1865, 2246, 1632, 2899, 1352, 2094, 1743, 2390, 2036, 1728, 1521, 1302, 2602, 1397, 2267, 1576, 2681, 2485, 1866, 2247, 1633, 2900, 1353, 2095, 1744, 2391, 2037, 1729, 1522, 1303, 2603, 1398, 2268, 1577, 2682, 2486, 1867, 2248, 1634, 2901, 1354, 2096, 1745, 2392, 2038, 1730, 1523, 1304, 2604, 1399, 2269, 1578, 2683, 2487, 1868, 2249, 1635, 2902, 1355, 2097, 1746, 2393, 2039, 1731, 1524, 1305, 2605, 1400, 2270, 1579, 2684, 2488, 1869, 2250, 1636, 2903, 1356, 2098, 1747, 2394, 2040, 1732, 1525, 1306, 2606, 1401, 2271, 1580, 2685, 2489, 1870, 2251, 1637, 2904, 1357, 2099, 1748, 2395, 2041, 1733, 1526, 1307, 2607, 1402, 2272, 1581, 2686, 2490, 1871, 2252, 1638, 2905, 1358, 2100, 1749, 2396, 2042, 1734, 1527, 1308, 2608, 1403, 2273, 1582, 2687, 2491, 1872, 2253, 1639, 2906, 1359, 2101, 1750, 2397, 2043, 1735, 1528, 1309, 2609, 1404, 2274, 1583, 2688, 2492, 1873, 2254, 1640, 2907, 1360, 2102, 1751, 2398, 2044, 1736, 1529, 1310, 2610, 1405, 2275, 1584, 2689, 2493, 1874, 2255, 1641, 2908, 1361, 2103, 1752, 2399, 2045, 1737, 1530, 1311, 2611, 1406, 2276, 1585, 2690, 2494, 1875, 2256, 1642, 2909, 1362, 2104, 1753, 2400, 2046, 1738, 1531, 1312, 2612, 1407, 2277, 1586, 2691, 2495, 1876, 2257, 1643, 2910, 1363, 2105, 1754, 2401, 2047, 1739, 1532, 1313, 2613, 1408, 2278, 1587, 2692, 2496, 1877, 2258, 1644, 2911, 1364, 2106, 1755, 2402, 2048, 1740, 1533, 1314, 2614, 1409, 2279, 1588, 2693, 2497, 1878, 2259, 1645, 2912, 1365, 2107, 1756, 2403, 2049, 1741, 1534, 1315, 2615, 1410, 2280, 1589, 2694, 2498, 1879, 2260, 1646, 2913, 1366, 2108, 1757, 2404, 2050, 1742, 1535, 1316, 2616, 1411, 2281, 1590, 2695, 2499, 1880, 2261, 1647, 2914, 1367, 2109, 1758, 2405, 2051, 1743, 1536, 1317, 2617, 1412, 2282, 1591, 2696, 2500, 1881, 2262, 1648, 2915, 1368, 2110, 1759, 2406, 2052, 1744, 1537, 1318, 2618, 1413, 2283, 1592, 2697, 2501, 1882, 2263, 1649, 2916, 1369, 2111, 1760, 2407, 2053, 1745, 1538, 1319, 2619, 1414, 2284, 1593, 2698, 2502, 1883, 2264, 1650, 2917, 1370, 2112, 1761, 2408, 2054, 1746, 1539, 1320, 2620, 1415, 2285, 1594, 2699, 2503, 1884, 2265, 1651, 2918, 1371, 2113, 1762, 2409, 2055, 1747, 1540, 1321, 2621, 1416, 2286, 1595, 2700, 2504, 1885, 2266, 1652, 2919, 1372, 2114, 1763, 2410, 2056, 1748, 1541, 1322, 2622, 1417, 2287, 1596, 2701, 2505, 1886, 2267, 1653, 2920, 1373, 2115, 1764, 2411, 2057, 1749, 1542, 1323, 2623, 1418, 2161, 1597, 2702, 2506, 1887, 2268, 1654, 2921, 1374, 2116, 1765, 2412, 2058, 1750, 1543, 1324, 2624, 1419, 2162, 1598, 2703, 2507, 1888, 2269, 1655, 2922, 1375, 2117, 1766, 2413, 2059, 1751, 1544, 1325, 2625, 1420, 2163, 1599, 2704, 2508, 1889, 2270, 1656, 2923, 1376, 2118, 1767, 2414, 2060, 1752, 1545, 1326, 2521, 1421, 2164, 1600, 2705, 2509, 1890, 2271, 1657, 2924, 1377, 2119, 1768, 2415, 2061, 1753, 1546, 1327, 2522, 1422, 2165, 1601, 2706, 2510, 1891, 2272, 1658, 2925, 1378, 2120, 1769, 2416, 2062, 1754, 1547, 1328, 2523, 1423, 2166, 1602, 2707, 2511, 1892, 2273, 1659, 2926, 1379, 2121, 1770, 2417, 2063, 1755, 1548, 1329, 2524, 1424, 2167, 1603, 2708, 2512, 1893, 2274, 1660, 2927, 1380, 2122, 1771, 2418, 2064, 1756, 1549, 1330, 2525, 1425, 2168, 1604, 2709, 2513, 1894, 2275, 1661, 2928, 1381, 2123, 1772, 2419, 2065, 1757, 1550, 1331, 2526, 1426, 2169, 1605, 2710, 2514, 1895, 2276, 1662, 2929, 1382, 2124, 1773, 2420, 2066, 1758, 1551, 1332, 2527, 1427, 2170, 1606, 2711, 2515, 1896, 2277, 1663, 2930, 1383, 2125, 1774, 2421, 2067, 1759, 1552, 1333, 2528, 1428, 2171, 1607, 2712, 2516, 1897, 2278, 1664, 2931, 1384, 2126, 1775, 2422, 2068, 1760, 1553, 1334, 2529, 1429, 2172, 1608, 2713, 2517, 1898, 2279, 1665, 2932, 1385, 2127, 1776, 2423, 2069, 1761, 1554, 1335, 2530, 1430, 2173, 1609, 2714, 2518, 1899, 2280, 1666, 2933, 1386, 2128, 1777, 2424, 2070, 1762, 1555, 1336, 2531, 1431, 2174, 1610, 2715, 2519, 1900, 2281, 1667, 2934, 1387, 2129, 1778, 2425, 2071, 1763, 1556, 1337, 2532, 1432, 2175, 1611, 2716, 2520, 1901, 2282, 1668, 2935, 1388, 2130, 1779, 2426, 2072, 1764, 1557, 1338, 2533, 1433, 2176, 1612, 2717, 2161, 1902, 2283, 1669, 2936, 1389, 2131, 1780, 2427, 2073, 1765, 1558, 1339, 2534, 1434, 2177, 1613, 2718, 2162, 1903, 2284, 1670, 2937, 1390, 2132, 1781, 2428, 2074, 1766, 1559, 1340, 2535, 1435, 2178, 1614, 2719, 2163, 1904, 2285, 1671, 2938, 1391, 2133, 1782, 2429, 2075, 1767, 1560, 1341, 2536, 1436, 2179, 1615, 2720, 2164, 1905, 2286, 1672, 2939, 1392, 2134, 1783, 2430, 2076, 1768, 1561, 1342, 2537, 1437, 2180, 1616, 2721, 2165, 1906, 2287, 1673, 2940, 1393, 2135, 1784, 2431, 2077, 1769, 1562, 1343, 2538, 1438, 2181, 1617, 2722, 2166, 1907, 2288, 1674, 2941, 1394, 2136, 1785, 2432, 2078, 1770, 1563, 1344, 2539, 1439, 2182, 1618, 2723, 2167, 1908, 2289, 1675, 2942, 1395, 2137, 1786, 2433, 2079, 1771, 1564, 1345, 2540, 1440, 2183, 1619, 2724, 2168, 1909, 2290, 1676, 2943, 1396, 2138, 1787, 2434, 2080, 1772, 1565, 1346, 2541, 1081, 2184, 1620, 2725, 2169, 1910, 2291, 1677, 2944, 1397, 2139, 1788, 2435, 2081, 1773, 1566, 1347, 2542, 1082, 2185, 1621, 2726, 2170, 1911, 2292, 1678, 2945, 1398, 2140, 1789, 2436, 2082, 1774, 1567, 1348, 2543, 1083, 2186, 1622, 2727, 2171, 1912, 2293, 1679, 2946, 1399, 2141, 1790, 2437, 2083, 1775, 1568, 1349, 2544, 1084, 2187, 1623, 2728, 2172, 1913, 2294, 1680, 2947, 1400, 2142, 1791, 2438, 2084, 1776, 1569, 1350, 2545, 1085, 2188, 1624, 2729, 2173, 1914, 2295, 1681, 2948, 1401, 2143, 1792, 2439, 2085, 1777, 1570, 1351, 2546, 1086, 2189, 1625, 2730, 2174, 1915, 2296, 1682, 2949, 1402, 2144, 1793, 2440, 2086, 1778, 1571, 1352, 2547, 1087, 2190, 1626, 2731, 2175, 1916, 2297, 1683, 2950, 1403, 2145, 1794, 2441, 2087, 1779, 1572, 1353, 2548, 1088, 2191, 1627, 2732, 2176, 1917, 2298, 1684, 2951, 1404, 2146, 1795, 2442, 2088, 1780, 1573, 1354, 2549, 1089, 2192, 1628, 2733, 2177, 1918, 2299, 1685, 2952, 1405, 2147, 1796, 2443, 2089, 1781, 1574, 1355, 2550, 1090, 2193, 1629, 2734, 2178, 1919, 2300, 1686, 2953, 1406, 2148, 1797, 2444, 2090, 1782, 1575, 1356, 2551, 1091, 2194, 1630, 2735, 2179, 1920, 2301, 1687, 2954, 1407, 2149, 1798, 2445, 2091, 1783, 1576, 1357, 2552, 1092, 2195, 1631, 2736, 2180, 1921, 2302, 1688, 2955, 1408, 2150, 1799, 2446, 2092, 1784, 1577, 1358, 2553, 1093, 2196, 1632, 2737, 2181, 1922, 2303, 1689, 2956, 1409, 2151, 1800, 2447, 2093, 1785, 1578, 1359, 2554, 1094, 2197, 1633, 2738, 2182, 1923, 2304, 1690, 2957, 1410, 2152, 1441, 2448, 2094, 1786, 1579, 1360, 2555, 1095, 2198, 1634, 2739, 2183, 1924, 2305, 1691, 2958, 1411, 2153, 1442, 2449, 2095, 1787, 1580, 1361, 2556, 1096, 2199, 1635, 2740, 2184, 1925, 2306, 1692, 2959, 1412, 2154, 1443, 2450, 2096, 1788, 1581, 1362, 2557, 1097, 2200, 1636, 2741, 2185, 1926, 2307, 1693, 2960, 1413, 2155, 1444, 2451, 2097, 1789, 1582, 1363, 2558, 1098, 2201, 1637, 2742, 2186, 1927, 2308, 1694, 2961, 1414, 2156, 1445, 2452, 2098, 1790, 1583, 1364, 2559, 1099, 2202, 1638, 2743, 2187, 1928, 2309, 1695, 2962, 1415, 2157, 1446, 2453, 2099, 1791, 1584, 1365, 2560, 1100, 2203, 1639, 2744, 2188, 1929, 2310, 1696, 2963, 1416, 2158, 1447, 2454, 2100, 1792, 1585, 1366, 2561, 1101, 2204, 1640, 2745, 2189, 1930, 2311, 1697, 2964, 1417, 2159, 1448, 2455, 2101, 1793, 1586, 1367, 2562, 1102, 2205, 1641, 2746, 2190, 1931, 2312, 1698, 2965, 1418, 2160, 1449, 2456, 2102, 1794, 1587, 1368, 2563, 1103, 2206, 1642, 2747, 2191, 1932, 2313, 1699, 2966, 1419, 1895, 1450, 2457, 2103, 1795, 1588, 1369, 2564, 1104, 2207, 1643, 2748, 2192, 1933, 2314, 1700, 2967, 1420, 1896, 1451, 2458, 2104, 1796, 1589, 1370, 2565, 1105, 2208, 1644, 2749, 2193, 1934, 2315, 1701, 2968, 1421, 1897, 1452, 2459, 2105, 1797, 1590, 1371, 2566, 1106, 2209, 1645, 2750, 2194, 1935, 2316, 1702, 2969, 1422, 1898, 1453, 2460, 2106, 1798, 1591, 1372, 2567, 1107, 2210, 1646, 2751, 2195, 1936, 2317, 1703, 2970, 1423, 1899, 1454, 2461, 2107, 1799, 1592, 1373, 2568, 1108, 2211, 1647, 2752, 2196, 1937, 2318, 1704, 2971, 1424, 1900, 1455, 2462, 2108, 1800, 1593, 1374, 2569, 1109, 2212, 1648, 2753, 2197, 1938, 2319, 1705, 2972, 1425, 1901, 1456, 2463, 2109, 1441, 1594, 1375, 2570, 1110, 2213, 1649, 2754, 2198, 1939, 2320, 1706, 2973, 1426, 1902, 1457, 2464, 2110, 1442, 1595, 1376, 2571, 1111, 2214, 1650, 2755, 2199, 1940, 2321, 1707, 2974, 1427, 1903, 1458, 2465, 2111, 1443, 1596, 1377, 2572, 1112, 2215, 1651, 2756, 2200, 1941, 2322, 1708, 2975, 1428, 1904, 1459, 2466, 2112, 1444, 1597, 1378, 2573, 1113, 2216, 1652, 2757, 2201, 1942, 2323, 1709, 2976, 1429, 1905, 1460, 2467, 2113, 1445, 1598, 1379, 2574, 1114, 2217, 1653, 2758, 2202, 1943, 2324, 1710, 2977, 1430, 1906, 1461, 2468, 2114, 1446, 1599, 1380, 2575, 1115, 2218, 1654, 2759, 2203, 1944, 2325, 1711, 2978, 1431, 1907, 1462, 2469, 2115, 1447, 1600, 1381, 2576, 1116, 2219, 1655, 2760, 2204, 1945, 2326, 1712, 2979, 1432, 1908, 1463, 2470, 2116, 1448, 1601, 1382, 2577, 1117, 2220, 1656, 2761, 2205, 1946, 2327, 1713, 2980, 1433, 1909, 1464, 2471, 2117, 1449, 1602, 1383, 2578, 1118, 2221, 1657, 2762, 2206, 1947, 2328, 1714, 2981, 1434, 1910, 1465, 2472, 2118, 1450, 1603, 1384, 2579, 1119, 2222, 1658, 2763, 2207, 1948, 2329, 1715, 2982, 1435, 1911, 1466, 2473, 2119, 1451, 1604, 1385, 2580, 1120, 2223, 1659, 2764, 2208, 1949, 2330, 1716, 2983, 1436, 1912, 1467, 2474, 2120, 1452, 1605, 1386, 2581, 1121, 2224, 1660, 2765, 2209, 1950, 2331, 1717, 2984, 1437, 1913, 1468, 2475, 2121, 1453, 1606, 1387, 2582, 1122, 2225, 1661, 2766, 2210, 1951, 2332, 1718, 2985, 1438, 1914, 1469, 2476, 2122, 1454, 1607, 1388, 2583, 1123, 2226, 1662, 2767, 2211, 1952, 2333, 1719, 2986, 1439, 1915, 1470, 2477, 2123, 1455, 1608, 1389, 2584, 1124, 2227, 1569, 2768, 2212, 1953, 2334, 1720, 2881, 1440, 1916, 1471, 2478, 2124, 1456, 1609, 1390, 2585, 1125, 2228, 1570, 2769, 2213, 1954, 2335, 1721, 2882, 1314, 1917, 1472, 2479, 2125, 1457, 1610, 1391, 2586, 1126, 2229, 1571, 2770, 2214, 1955, 2336, 1722, 2883, 1315, 1918, 1473, 2480, 2126, 1458, 1611, 1392, 2587, 1127, 2230, 1572, 2771, 2215, 1956, 2337, 1723, 2884, 1316, 1919, 1474, 2481, 2127, 1459, 1612, 1393, 2588, 1128, 2231, 1573, 2772, 2216, 1957, 2338, 1724, 2885, 1317, 1920, 1475, 2482, 2128, 1460, 1613, 1394, 2589, 1129, 2232, 1574, 2773, 2217, 1958, 2339, 1725, 2886, 1318, 1921, 1476, 2483, 2129, 1461, 1614, 1395, 2590, 1130, 2233, 1575, 2774, 2218, 1959, 2340, 1726, 2887, 1319, 1922, 1477, 2484, 2130, 1462, 1615, 1396, 2591, 1131, 2234, 1576, 2775, 2219, 1960, 2341, 1727, 2888, 1320, 1923, 1478, 2485, 2131, 1463, 1616, 1397, 2592, 1132, 2235, 1577, 2776, 2220, 1961, 2342, 1728, 2889, 1321, 1924, 1479, 2486, 2132, 1464, 1617, 1398, 2593, 1133, 2236, 1578, 2777, 2221, 1962, 2343, 1729, 2890, 1322, 1925, 1480, 2487, 2133, 1465, 1618, 1399, 2594, 1134, 2237, 1579, 2778, 2222, 1963, 2344, 1730, 2891, 1323, 1926, 1481, 2488, 2134, 1466, 1619, 1400, 2595, 1135, 2238, 1580, 2779, 2223, 1964, 2345, 1731, 2892, 1324, 1927, 1482, 2489, 2135, 1467, 1620, 1401, 2596, 1136, 2239, 1581, 2780, 2224, 1965, 2346, 1732, 2893, 1325, 1928, 1483, 2490, 2136, 1468, 1621, 1402, 2597, 1137, 2240, 1582, 2781, 2225, 1966, 2347, 1733, 2894, 1326, 1929, 1484, 2491, 2137, 1469, 1622, 1403, 2598, 1138, 2241, 1583, 2782, 2226, 1967, 2348, 1734, 2895, 1327, 1930, 1485, 2492, 2138, 1470, 1623, 1404, 2599, 1139, 2242, 1584, 2783, 2227, 1968, 2349, 1735, 2896, 1328, 1931, 1486, 2493, 2139, 1471, 1624, 1405, 2600, 1140, 2243, 1585, 2784, 2228, 1969, 2350, 1736, 2897, 1329, 1932, 1487, 2494, 2140, 1472, 1625, 1406, 2601, 1141, 2244, 1586, 2785, 2229, 1970, 2351, 1737, 2898, 1330, 1933, 1488, 2495, 2141, 1473, 1626, 1407, 2602, 1142, 2245, 1587, 2786, 2230, 1971, 2352, 1738, 2899, 1331, 1934, 1489, 2496, 2142, 1474, 1627, 1408, 2603, 1143, 2246, 1588, 2787, 2231, 1972, 2353, 1739, 2900, 1332, 1935, 1490, 2497, 2143, 1475, 1628, 1409, 2604, 1144, 2247, 1589, 2788, 2232, 1973, 2354, 1740, 2901, 1333, 1936, 1491, 2498, 2144, 1476, 1629, 1410, 2605, 1145, 2248, 1590, 2789, 2233, 1974, 2355, 1741, 2902, 1334, 1937, 1492, 2499, 2145, 1477, 1630, 1411, 2606, 1146, 2249, 1591, 2790, 2234, 1975, 2356, 1742, 2903, 1335, 1938, 1493, 2500, 1801, 1478, 1631, 1412, 2607, 1147, 2250, 1592, 2791, 2235, 1976, 2357, 1743, 2904, 1336, 1939, 1494, 2501, 1802, 1479, 1632, 1413, 2608, 1148, 2251, 1593, 2792, 2236, 1977, 2358, 1744, 2905, 1337, 1940, 1495, 2502, 1803, 1480, 1633, 1414, 2609, 1149, 2252, 1594, 2793, 2237, 1978, 2359, 1745, 2906, 1338, 1941, 1496, 2503, 1804, 1481, 1634, 1415, 2610, 1150, 2253, 1595, 2794, 2238, 1979, 2360, 1746, 2907, 1339, 1942, 1497, 2504, 1805, 1482, 1635, 1416, 2611, 1151, 2254, 1596, 2795, 2239, 1980, 2361, 1747, 2908, 1340, 1943, 1498, 2505, 1806, 1483, 1636, 1417, 2612, 1152, 2255, 1597, 2796, 2240, 1981, 2362, 1748, 2909, 1341, 1944, 1499, 2506, 1807, 1484, 1637, 1418, 2613, 1153, 2256, 1598, 2797, 2241, 1982, 2363, 1749, 2910, 1342, 1945, 1500, 2507, 1808, 1485, 1638, 1419, 2614, 1154, 2257, 1599, 2798, 2242, 1983, 2364, 1750, 2911, 1343, 1946, 1501, 2508, 1809, 1486, 1639, 1420, 2615, 1155, 2258, 1600, 2799, 2243, 1984, 2365, 1751, 2912, 1344, 1947, 1502, 2509, 1810, 1487, 1640, 1421, 2616, 1156, 2259, 1601, 2800, 2244, 1985, 2366, 1752, 2913, 1345, 1948, 1503, 2510, 1811, 1488, 1641, 1422, 2617, 1157, 2260, 1602, 2801, 2245, 1986, 2367, 1753, 2914, 1346, 1949, 1504, 2511, 1812, 1489, 1642, 1423, 2618, 1158, 2261, 1603, 2802, 2246, 1987, 2368, 1754, 2915, 1347, 1950, 1505, 2512, 1813, 1490, 1643, 1424, 2619, 1159, 2262, 1604, 2803, 2247, 1988, 2369, 1755, 2916, 1348, 1951, 1506, 2513, 1814, 1491, 1644, 1425, 2620, 1160, 2263, 1605, 2804, 2248, 1989, 2370, 1756, 2917, 1349, 1952, 1507, 2514, 1815, 1492, 1645, 1426, 2621, 1161, 2264, 1606, 2805, 2249, 1990, 2371, 1757, 2918, 1350, 1953, 1508, 2515, 1801, 1493, 1646, 1427, 2622, 1162, 2265, 1607, 2806, 2250, 1991, 2372, 1758, 2919, 1351, 1954, 1509, 2516, 1802, 1494, 1647, 1428, 2623, 1163, 2266, 1608, 2807, 2251, 1992, 2373, 1759, 2920, 1352, 1955, 1510, 2517, 1803, 1495, 1648, 1429, 2624, 1164, 2267, 1609, 2808, 2252, 1993, 2374, 1760, 2921, 1353, 1956, 1511, 2518, 1804, 1496, 1649, 1430, 2625, 1165, 2268, 1610, 2809, 2253, 1994, 2375, 1761, 2922, 1354, 1957, 1512, 2519, 1805, 1497, 1650, 1431, 2626, 1166, 2269, 1611, 2810, 2254, 1995, 2376, 1762, 2923, 1355, 1958, 1513, 2520, 1806, 1498, 1651, 1432, 2627, 1167, 2270, 1612, 2811, 2255, 1996, 2377, 1763, 2924, 1356, 1959, 1514, 2306, 1807, 1499, 1652, 1433, 2628, 1168, 2271, 1613, 2812, 2256, 1997, 2378, 1764, 2925, 1357, 1960, 1515, 2307, 1808, 1500, 1653, 1434, 2629, 1169, 2272, 1614, 2813, 2257, 1998, 2379, 1765, 2926, 1358, 1961, 1516, 2308, 1809, 1501, 1654, 1435, 2630, 1170, 2273, 1615, 2814, 2258, 1999, 2380, 1766, 2927, 1359, 1962, 1517, 2309, 1810, 1502, 1655, 1436, 2631, 1171, 2274, 1616, 2815, 2259, 2000, 2381, 1767, 2928, 1360, 1963, 1518, 2310, 1811, 1503, 1656, 1437, 2632, 1172, 2275, 1617, 2816, 2260, 2001, 2382, 1768, 2929, 1361, 1964, 1519, 2311, 1812, 1504, 1657, 1438, 2633, 1173, 2276, 1618, 2817, 2261, 2002, 2383, 1769, 2930, 1362, 1965, 1520, 2312, 1813, 1505, 1658, 1439, 2634, 1174, 2277, 1619, 2818, 2262, 2003, 2384, 1770, 2931, 1363, 1966, 1521, 2313, 1814, 1506, 1659, 1440, 2635, 1175, 2278, 1620, 2819, 2263, 2004, 2385, 1771, 2932, 1364, 1967, 1522, 2314, 1815, 1507, 1660, 1081, 2636, 1176, 2279, 1621, 2820, 2264, 2005, 2386, 1772, 2933, 1365, 1968, 1523, 2315, 1816, 1508, 1661, 1082, 2637, 1177, 2280, 1622, 2821, 2265, 2006, 2387, 1773, 2934, 1366, 1969, 1524, 2316, 1817, 1509, 1662, 1083, 2638, 1178, 2281, 1623, 2822, 2266, 2007, 2388, 1774, 2935, 1367, 1970, 1525, 2317, 1818, 1510, 1663, 1084, 2639, 1179, 2282, 1624, 2823, 2267, 2008, 2389, 1775, 2936, 1368, 1971, 1526, 2318, 1819, 1511, 1664, 1085, 2640, 1180, 2283, 1625, 2824, 2268, 2009, 2390, 1776, 2937, 1369, 1972, 1527, 2319, 1820, 1512, 1665, 1086, 2641, 1181, 2284, 1626, 2825, 2269, 2010, 2391, 1777, 2938, 1370, 1973, 1528, 2320, 1821, 1513, 1666, 1087, 2642, 1182, 2285, 1627, 2826, 2270, 2011, 2392, 1778, 2939, 1371, 1974, 1529, 2321, 1822, 1514, 1667, 1088, 2643, 1183, 2286, 1628, 2827, 2271, 2012, 2393, 1779, 2940, 1372, 1975, 1530, 2322, 1823, 1515, 1668, 1089, 2644, 1184, 2287, 1629, 2828, 2272, 2013, 2394, 1780, 2941, 1373, 1976, 1531, 2323, 1824, 1516, 1669, 1090, 2645, 1185, 2288, 1630, 2829, 2273, 2014, 2395, 1781, 2942, 1374, 1977, 1532, 2324, 1825, 1517, 1670, 1091, 2646, 1186, 2289, 1631, 2830, 2274, 2015, 2396, 1782, 2943, 1375, 1978, 1533, 2325, 1826, 1518, 1671, 1092, 2647, 1187, 2290, 1632, 2831, 2275, 2016, 2397, 1783, 2944, 1376, 1979, 1534, 2326, 1827, 1519, 1672, 1093, 2648, 1188, 2291, 1633, 2832, 2276, 2017, 2398, 1784, 2945, 1377, 1980, 1535, 2327, 1828, 1520, 1673, 1094, 2649, 1189, 2292, 1634, 2833, 2277, 2018, 2399, 1785, 2946, 1378, 1981, 1536, 2328, 1829, 1521, 1674, 1095, 2650, 1190, 2293, 1635, 2834, 2278, 2019, 2400, 1786, 2947, 1379, 1982, 1537, 2329, 1830, 1522, 1675, 1096, 2651, 1191, 2294, 1636, 2835, 2279, 2020, 2401, 1787, 2948, 1380, 1983, 1538, 2330, 1831, 1523, 1676, 1097, 2652, 1192, 2295, 1637, 2836, 2280, 2021, 2402, 1788, 2949, 1381, 1984, 1539, 2331, 1832, 1524, 1677, 1098, 2653, 1193, 2296, 1638, 2837, 2281, 2022, 2403, 1789, 2950, 1382, 1985, 1540, 2332, 1833, 1525, 1678, 1099, 2654, 1194, 2297, 1639, 2838, 2282, 2023, 2404, 1790, 2951, 1383, 1986, 1541, 2333, 1834, 1526, 1679, 1100, 2655, 1195, 2298, 1640, 2839, 2283, 2024, 2405, 1791, 2952, 1384, 1987, 1542, 2334, 1835, 1527, 1680, 1101, 2656, 1196, 2299, 1641, 2840, 2284, 2025, 2406, 1792, 2953, 1385, 1988, 1543, 2335, 1836, 1528, 1681, 1102, 2657, 1197, 2300, 1642, 2841, 2285, 2026, 2407, 1793, 2954, 1386, 1989, 1544, 2336, 1837, 1529, 1682, 1103, 2658, 1198, 2301, 1643, 2842, 2286, 2027, 2408, 1794, 2955, 1387, 1990, 1545, 2337, 1838, 1530, 1683, 1104, 2659, 1199, 2302, 1644, 2843, 2287, 2028, 2409, 1795, 2956, 1388, 1991, 1546, 2338, 1839, 1531, 1684, 1105, 2660, 1200, 2303, 1645, 2844, 2288, 2029, 2410, 1796, 2957, 1389, 1992, 1547, 2339, 1840, 1532, 1685, 1106, 2661, 1201, 2304, 1646, 2845, 2289, 2030, 2411, 1797, 2958, 1390, 1993, 1548, 2340, 1841, 1533, 1686, 1107, 2662, 1202, 2305, 1647, 2846, 2290, 2031, 2412, 1798, 2959, 1391, 1994, 1549, 2341, 1842, 1534, 1687, 1108, 2663, 1203, 2306, 1648, 2847, 2291, 2032, 2413, 1799, 2960, 1392, 1995, 1550, 2342, 1843, 1535, 1688, 1109, 2664, 1204, 2307, 1649, 2848, 2292, 2033, 2414, 1800, 2961, 1393, 1996, 1551, 2343, 1844, 1536, 1689, 1110, 2665, 1205, 2308, 1650, 2849, 2293, 2034, 2415, 1441, 2962, 1394, 1997, 1552, 2344, 1845, 1537, 1690, 1111, 2666, 1206, 2309, 1651, 2850, 2294, 2035, 2416, 1442, 2963, 1395, 1998, 1553, 2345, 1846, 1538, 1691, 1112, 2667, 1207, 2310, 1652, 2851, 2295, 2036, 2417, 1443, 2964, 1396, 1999, 1554, 2346, 1847, 1539, 1692, 1113, 2668, 1208, 2311, 1653, 2852, 2296, 2037, 2418, 1444, 2965, 1397, 2000, 1555, 2347, 1848, 1540, 1693, 1114, 2669, 1209, 2312, 1654, 2853, 2297, 2038, 2419, 1445, 2966, 1398, 2001, 1556, 2348, 1849, 1541, 1694, 1115, 2670, 1210, 2313, 1655, 2854, 2298, 2039, 2420, 1446, 2967, 1399, 2002, 1557, 2349, 1850, 1542, 1695, 1116, 2671, 1211, 2314, 1656, 2855, 2299, 2040, 2421, 1447, 2968, 1400, 2003, 1558, 2350, 1851, 1543, 1696, 1117, 2672, 1212, 2315, 1657, 2856, 2300, 2041, 2422, 1448, 2969, 1401, 2004, 1559, 2351, 1852, 1544, 1697, 1118, 2673, 1213, 2316, 1658, 2857, 2301, 2042, 2423, 1449, 2970, 1402, 2005, 1560, 2352, 1853, 1545, 1698, 1119, 2674, 1214, 2317, 1659, 2858, 2302, 2043, 2424, 1450, 2971, 1403, 2006, 1561, 2353, 1854, 1546, 1699, 1120, 2675, 1215, 2318, 1660, 2859, 2303, 2044, 2425, 1451, 2972, 1404, 2007, 1562, 2354, 1855, 1547, 1700, 1121, 2676, 1216, 2319, 1661, 2860, 2304, 2045, 2426, 1452, 2973, 1405, 2008, 1563, 2355, 1856, 1548, 1701, 1122, 2677, 1217, 2320, 1662, 2861, 2305, 2046, 2427, 1453, 2974, 1406, 2009, 1564, 2356, 1857, 1549, 1702, 1123, 2678, 1218, 2321, 1663, 2862, 2306, 2047, 2428, 1454, 2975, 1407, 2010, 1565, 2357, 1858, 1550, 1703, 1124, 2679, 1219, 2322, 1664, 2863, 2307, 2048, 2429, 1455, 2976, 1408, 2011, 1566, 2358, 1859, 1551, 1704, 1125, 2680, 1220, 2323, 1665, 2864, 2308, 2049, 2430, 1456, 2977, 1409, 2012, 1567, 2359, 1860, 1552, 1705, 1126, 2681, 1221, 2324, 1666, 2865, 3122, 2199, 2927, 1834, 3084, 1798, 2760, 2393, 2568, 1876, 1954, 2473, 1807, 2787, 1778, 2452, 1761, 3078, 3123, 2200, 2928, 1835, 3085, 1799, 2761, 2394, 2569, 1877, 1955, 2474, 1808, 2788, 1779, 2453, 1762, 3079, 3124, 2201, 2929, 1836, 3086, 1800, 2762, 2395, 2570, 1878, 1956, 2475, 1809, 2789, 1780, 2454, 1763, 3080, 3125, 2202, 2930, 1837, 3087, 1441, 2763, 2396, 2571, 1879, 1957, 2476, 1810, 2790, 1781, 2455, 1764, 3081, 3126, 2203, 2931, 1838, 3088, 1442, 2764, 2397, 2572, 1880, 1958, 2477, 1811, 2791, 1782, 2456, 1765, 3082, 3127, 2204, 2932, 1839, 3089, 1443, 2765, 2398, 2573, 1881, 1959, 2478, 1812, 2792, 1783, 2457, 1766, 3083, 3128, 2205, 2933, 1840, 3090, 1444, 2766, 2399, 2574, 1882, 1960, 2479, 1813, 2793, 1784, 2458, 1767, 3084, 3129, 2206, 2934, 1841, 3091, 1445, 2767, 2400, 2575, 1883, 1961, 2480, 1814, 2794, 1785, 2459, 1768, 3085, 3130, 2207, 2935, 1842, 3092, 1446, 2768, 2401, 2576, 1884, 1962, 2481, 1815, 2795, 1786, 2460, 1769, 3086, 3131, 2208, 2936, 1843, 3093, 1447, 2769, 2402, 2577, 1885, 1963, 2482, 1816, 2796, 1787, 2461, 1770, 3087, 3132, 2209, 2937, 1844, 3094, 1448, 2770, 2403, 2578, 1886, 1964, 2483, 1817, 2797, 1788, 2462, 1771, 3088, 3133, 2210, 2938, 1845, 3095, 1449, 2771, 2404, 2579, 1887, 1965, 2484, 1818, 2798, 1789, 2463, 1772, 3089, 3134, 2211, 2939, 1846, 3096, 1450, 2772, 2405, 2580, 1888, 1966, 2485, 1819, 2799, 1790, 2464, 1773, 3090, 3135, 2212, 2940, 1847, 3097, 1451, 2773, 2406, 2581, 1889, 1967, 2486, 1820, 2800, 1791, 2465, 1774, 3091, 3136, 2213, 2941, 1848, 3098, 1452, 2774, 2407, 2582, 1890, 1968, 2487, 1821, 2801, 1792, 2466, 1775, 3092, 3137, 2214, 2942, 1849, 3099, 1453, 2775, 2408, 2583, 1891, 1969, 2488, 1822, 2802, 1793, 2467, 1776, 3093, 3138, 2215, 2943, 1850, 3100, 1454, 2776, 2409, 2584, 1892, 1970, 2489, 1823, 2803, 1794, 2468, 1777, 3094, 3139, 2216, 2944, 1851, 3101, 1455, 2777, 2410, 2585, 1893, 1971, 2490, 1824, 2804, 1795, 2469, 1778, 3095, 3140, 2217, 2945, 1852, 3102, 1456, 2778, 2411, 2586, 1894, 1972, 2491, 1825, 2805, 1796, 2470, 1779, 3096, 3141, 2218, 2946, 1853, 3103, 1457, 2779, 2412, 2587, 1895, 1973, 2492, 1826, 2806, 1797, 2471, 1780, 3097, 3142, 2219, 2947, 1854, 3104, 1458, 2780, 2413, 2588, 1896, 1974, 2493, 1827, 2807, 1798, 2472, 1781, 3098, 3143, 2220, 2948, 1855, 3105, 1459, 2781, 2414, 2589, 1897, 1975, 2494, 1828, 2808, 1799, 2473, 1782, 3099, 2881, 2221, 2949, 1856, 3106, 1460, 2782, 2415, 2590, 1898, 1976, 2495, 1829, 2809, 1800, 2474, 1783, 3100, 2882, 2222, 2950, 1857, 3107, 1461, 2783, 2416, 2591, 1899, 1977, 2496, 1830, 2810, 1441, 2475, 1784, 3101, 2883, 2223, 2951, 1858, 3108, 1462, 2784, 2417, 2592, 1900, 1978, 2497, 1831, 2811, 1442, 2476, 1785, 3102, 2884, 2224, 2952, 1859, 3109, 1463, 2785, 2418, 2593, 1901, 1979, 2498, 1832, 2812, 1443, 2477, 1786, 3103, 2885, 2225, 2953, 1860, 3110, 1464, 2786, 2419, 2594, 1902, 1980, 2499, 1833, 2813, 1444, 2478, 1787, 3104, 2886, 2226, 2954, 1861, 3111, 1465, 2787, 2420, 2595, 1903, 1981, 2500, 1834, 2814, 1445, 2479, 1788, 3105, 2887, 2227, 2955, 1862, 3112, 1466, 2788, 2421, 2596, 1904, 1982, 2501, 1835, 2815, 1446, 2480, 1789, 3106, 2888, 2228, 2956, 1863, 3113, 1467, 2789, 2422, 2597, 1905, 1983, 2502, 1836, 2816, 1447, 2481, 1790, 3107, 2889, 2229, 2957, 1864, 3114, 1468, 2790, 2423, 2598, 1906, 1984, 2503, 1837, 2817, 1448, 2482, 1791, 3108, 2890, 2230, 2958, 1865, 3115, 1469, 2791, 2424, 2599, 1907, 1985, 2504, 1838, 2818, 1449, 2483, 1792, 3109, 2891, 2231, 2959, 1866, 3116, 1470, 2792, 2425, 2600, 1908, 1986, 2505, 1839, 2819, 1450, 2484, 1793, 3110, 2892, 2232, 2960, 1867, 3117, 1471, 2793, 2426, 2601, 1909, 1987, 2506, 1840, 2820, 1451, 2485, 1794, 3111, 2893, 2233, 2961, 1868, 3118, 1472, 2794, 2427, 2602, 1910, 1988, 2507, 1841, 2821, 1452, 2486, 1795, 3112, 2894, 2234, 2962, 1869, 3119, 1473, 2795, 2428, 2603, 1911, 1989, 2508, 1842, 2822, 1453, 2487, 1796, 3113, 2895, 2235, 2963, 1870, 3120, 1474, 2796, 2429, 2604, 1912, 1990, 2509, 1843, 2823, 1454, 2488, 1797, 3114, 2896, 2236, 2964, 1871, 3121, 1475, 2797, 2430, 2605, 1913, 1991, 2510, 1844, 2824, 1455, 2489, 1798, 3115, 2897, 2237, 2965, 1872, 3122, 1476, 2798, 2431, 2606, 1914, 1992, 2511, 1845, 2825, 1456, 2490, 1799, 3116, 2898, 2238, 2966, 1873, 3123, 1477, 2799, 2432, 2607, 1915, 1993, 2512, 1846, 2826, 1457, 2491, 1800, 3117, 2899, 2239, 2967, 1874, 3124, 1478, 2800, 2433, 2608, 1916, 1994, 2513, 1847, 2827, 1458, 2492, 1707, 3118, 2900, 2240, 2968, 1875, 3125, 1479, 2801, 2434, 2609, 1917, 1995, 2514, 1848, 2828, 1459, 2493, 1708, 3119, 2901, 2241, 2969, 1876, 3126, 1480, 2802, 2435, 2610, 1918, 1996, 2515, 1849, 2829, 1460, 2494, 1709, 3120, 2902, 2242, 2970, 1877, 3127, 1481, 2803, 2436, 2611, 1919, 1997, 2516, 1850, 2830, 1461, 2495, 1710, 3121, 2903, 2243, 2971, 1878, 3128, 1482, 2804, 2437, 2612, 1920, 1998, 2517, 1851, 2831, 1462, 2496, 1711, 3122, 2904, 2244, 2972, 1879, 3129, 1483, 2805, 2161, 2613, 1921, 1999, 2518, 1852, 2832, 1463, 2497, 1712, 3123, 2905, 2245, 2973, 1880, 3130, 1484, 2806, 2162, 2614, 1922, 2000, 2519, 1853, 2833, 1464, 2498, 1713, 3124, 2906, 2246, 2974, 1881, 3131, 1485, 2807, 2163, 2615, 1923, 2001, 2520, 1854, 2834, 1465, 2499, 1714, 3125, 2907, 2247, 2975, 1882, 3132, 1486, 2808, 2164, 2616, 1924, 2002, 2161, 1855, 2835, 1466, 2500, 1715, 3126, 2908, 2248, 2881, 1883, 3133, 1487, 2809, 2165, 2617, 1925, 2003, 2162, 1856, 2836, 1467, 2501, 1716, 3127, 2909, 2249, 2882, 1884, 3134, 1488, 2810, 2166, 2618, 1926, 2004, 2163, 1857, 2837, 1468, 2502, 1717, 3128, 2910, 2250, 2883, 1885, 3135, 1489, 2811, 2167, 2619, 1927, 2005, 2164, 1858, 2838, 1469, 2503, 1718, 3129, 2911, 2251, 2884, 1886, 3136, 1490, 2812, 2168, 2620, 1928, 2006, 2165, 1859, 2839, 1470, 2504, 1719, 3130, 2912, 2252, 2885, 1887, 3137, 1491, 2813, 2169, 2621, 1929, 2007, 2166, 1860, 2840, 1471, 2505, 1720, 3131, 2913, 2253, 2886, 1888, 3138, 1492, 2814, 2170, 2622, 1930, 2008, 2167, 1861, 2841, 1472, 2506, 1721, 3132, 2914, 2254, 2887, 1889, 3139, 1493, 2815, 2171, 2623, 1931, 2009, 2168, 1862, 2842, 1473, 2507, 1722, 3133, 2915, 2255, 2888, 1890, 3140, 1494, 2816, 2172, 2624, 1932, 2010, 2169, 1863, 2843, 1474, 2508, 1723, 3134, 2916, 2256, 2889, 1891, 3141, 1495, 2817, 2173, 2625, 1933, 2011, 2170, 1864, 2844, 1475, 2509, 1724, 3135, 2917, 2257, 2890, 1892, 3142, 1496, 2818, 2174, 2626, 1934, 2012, 2171, 1865, 2845, 1476, 2510, 1725, 3136, 2918, 2258, 2891, 1893, 3143, 1497, 2819, 2175, 2627, 1935, 2013, 2172, 1866, 2846, 1477, 2511, 1726, 3137, 2919, 2259, 2892, 1894, 3144, 1498, 2820, 2176, 2628, 1936, 2014, 2173, 1867, 2847, 1478, 2512, 1727, 3138, 2920, 2260, 2893, 1895, 3145, 1499, 2821, 2177, 2629, 1937, 2015, 2174, 1868, 2848, 1479, 2513, 1728, 3139, 2921, 2261, 2894, 1896, 3146, 1500, 2822, 2178, 2630, 1938, 2016, 2175, 1869, 2849, 1480, 2514, 1729, 3140, 2922, 2262, 2895, 1897, 3147, 1501, 2823, 2179, 2631, 1939, 2017, 2176, 1870, 2850, 1481, 2515, 1730, 3141, 2923, 2263, 2896, 1898, 3148, 1502, 2824, 2180, 2632, 1940, 2018, 2177, 1871, 2851, 1482, 2516, 1731, 3142, 2924, 2264, 2897, 1899, 3149, 1503, 2825, 2181, 2633, 1941, 2019, 2178, 1872, 2852, 1483, 2517, 1732, 3143, 2925, 2265, 2898, 1900, 3150, 1504, 2826, 2182, 2634, 1942, 2020, 2179, 1873, 2853, 1484, 2518, 1733, 3144, 2926, 2266, 2899, 1901, 3151, 1505, 2827, 2183, 2635, 1943, 2021, 2180, 1874, 2854, 1485, 2519, 1734, 3145, 2927, 2267, 2900, 1902, 3152, 1506, 2828, 2184, 2636, 1944, 2022, 2181, 1875, 2855, 1486, 2520, 1735, 3146, 2928, 2268, 2901, 1903, 3153, 1507, 2829, 2185, 2637, 1945, 2023, 2182, 1876, 2856, 1487, 2394, 1736, 3147, 2929, 2269, 2902, 1904, 3154, 1508, 2830, 2186, 2638, 1946, 2024, 2183, 1877, 2857, 1488, 2395, 1737, 3148, 2930, 2270, 2903, 1905, 3155, 1509, 2831, 2187, 2639, 1947, 2025, 2184, 1878, 2858, 1489, 2396, 1738, 2881, 2931, 2271, 2904, 1906, 3156, 1510, 2832, 2188, 2640, 1948, 2026, 2185, 1879, 2859, 1490, 2397, 1739, 2882, 2932, 2272, 2905, 1907, 3157, 1511, 2833, 2189, 2641, 1949, 2027, 2186, 1880, 2860, 1491, 2398, 1740, 2883, 2933, 2273, 2906, 1908, 3158, 1512, 2834, 2190, 2642, 1950, 2028, 2187, 1881, 2861, 1492, 2399, 1741, 2884, 2934, 2274, 2907, 1909, 3159, 1513, 2835, 2191, 2643, 1951, 2029, 2188, 1882, 2862, 1493, 2400, 1742, 2885, 2935, 2275, 2908, 1910, 3160, 1514, 2836, 2192, 2644, 1952, 2030, 2189, 1883, 2863, 1494, 2401, 1743, 2886, 2936, 2276, 2909, 1911, 3161, 1515, 2837, 2193, 2645, 1953, 2031, 2190, 1884, 2864, 1495, 2402, 1744, 2887, 2937, 2277, 2910, 1912, 3162, 1516, 2838, 2194, 2646, 1954, 2032, 2191, 1885, 2865, 1496, 2403, 1745, 2888, 2938, 2278, 2911, 1913, 3163, 1517, 2839, 2195, 2647, 1955, 2033, 2192, 1886, 2866, 1497, 2404, 1746, 2889, 2939, 2279, 2912, 1914, 3164, 1518, 2840, 2196, 2648, 1956, 2034, 2193, 1887, 2867, 1498, 2405, 1747, 2890, 2940, 2280, 2913, 1915, 3165, 1519, 2841, 2197, 2649, 1957, 2035, 2194, 1888, 2868, 1499, 2406, 1748, 2891, 2941, 2281, 2914, 1916, 3166, 1520, 2842, 2198, 2650, 1958, 2036, 2195, 1889, 2869, 1500, 2407, 1749, 2892, 2942, 2282, 2915, 1917, 3167, 1521, 2843, 2199, 2651, 1959, 2037, 2196, 1890, 2870, 1501, 2408, 1750, 2893, 2943, 2283, 2916, 1918, 3168, 1522, 2844, 2200, 2652, 1960, 2038, 2197, 1891, 2871, 1502, 2409, 1751, 2894, 2944, 2284, 2917, 1919, 3169, 1523, 2845, 2201, 2653, 1961, 2039, 2198, 1892, 2872, 1503, 2410, 1752, 2895, 2945, 2285, 2918, 1920, 3170, 1524, 2846, 2202, 2654, 1962, 2040, 2199, 1893, 2873, 1504, 2411, 1753, 2896, 2946, 2286, 2919, 1921, 3171, 1525, 2847, 2203, 2655, 1963, 2041, 2200, 1894, 2874, 1505, 2412, 1754, 2897, 2947, 2287, 2920, 1922, 3172, 1526, 2848, 2204, 2656, 1964, 2042, 2201, 1895, 2875, 1506, 2413, 1755, 2898, 2948, 2288, 2921, 1923, 3173, 1527, 2849, 2205, 2657, 1965, 2043, 2202, 1896, 2876, 1507, 2414, 1756, 2899, 2949, 2289, 2922, 1924, 3174, 1528, 2850, 2206, 2658, 1966, 2044, 2203, 1897, 2877, 1508, 2415, 1757, 2900, 2950, 2290, 2923, 1925, 3175, 1529, 2851, 2207, 2659, 1967, 2045, 2204, 1898, 2878, 1509, 2416, 1758, 2901, 2951, 2291, 2924, 1926, 3176, 1530, 2852, 2208, 2660, 1968, 2046, 2205, 1899, 2879, 1510, 2417, 1759, 2902, 2952, 2292, 2925, 1927, 3177, 1531, 2853, 2209, 2661, 1969, 2047, 2206, 1900, 2880, 1511, 2418, 1760, 2903, 2953, 2293, 2926, 1928, 3178, 1532, 2854, 2210, 2662, 1970, 2048, 2207, 1901, 2776, 1512, 2419, 1761, 2904, 2954, 2294, 2927, 1929, 3179, 1533, 2855, 2211, 2663, 1971, 2049, 2208, 1902, 2777, 1513, 2420, 1762, 2905, 2955, 2295, 2928, 1930, 3180, 1534, 2856, 2212, 2664, 1972, 2050, 2209, 1903, 2778, 1514, 2421, 1763, 2906, 2956, 2296, 2929, 1931, 3181, 1535, 2857, 2213, 2665, 1973, 2051, 2210, 1904, 2779, 1515, 2422, 1764, 2907, 2957, 2297, 2930, 1932, 3182, 1536, 2858, 2214, 2666, 1974, 2052, 2211, 1905, 2780, 1516, 2423, 1765, 2908, 2958, 2298, 2931, 1933, 3077, 1537, 2859, 2215, 2667, 1975, 2053, 2212, 1906, 2781, 1517, 2424, 1766, 2909, 2959, 2299, 2932, 1934, 3078, 1538, 2860, 2216, 2668, 1976, 2054, 2213, 1907, 2782, 1518, 2425, 1767, 2910, 2960, 2300, 2933, 1935, 3079, 1539, 2861, 2217, 2669, 1977, 2055, 2214, 1908, 2783, 1519, 2426, 1768, 2911, 2961, 2301, 2934, 1936, 3080, 1540, 2862, 2218, 2670, 1978, 2056, 2215, 1909, 2784, 1520, 2427, 1769, 2912, 2962, 2302, 2935, 1937, 3081, 1541, 2863, 2219, 2671, 1979, 2057, 2216, 1910, 2785, 1521, 2428, 1770, 2913, 2963, 2303, 2936, 1938, 3082, 1542, 2864, 2220, 2672, 1980, 2058, 2217, 1911, 2786, 1522, 2429, 1771, 2914, 2964, 2304, 2937, 1939, 3083, 1543, 2865, 2221, 2673, 1981, 2059, 2218, 1912, 2787, 1523, 2430, 1772, 2915, 2965, 2305, 2938, 1940, 3084, 1544, 2866, 2222, 2674, 1982, 2060, 2219, 1913, 2788, 1524, 2431, 1773, 2916, 2966, 2306, 2939, 1941, 3085, 1545, 2867, 2223, 2675, 1983, 2061, 2220, 1914, 2789, 1525, 2432, 1774, 2917, 2967, 2307, 2940, 1942, 3086, 1546, 2868, 2224, 2676, 1984, 2062, 2221, 1915, 2790, 1526, 2433, 1775, 2918, 2968, 2308, 2941, 1943, 3087, 1547, 2869, 2225, 2677, 1985, 2063, 2222, 1916, 2791, 1527, 2434, 1776, 2919, 2969, 2309, 2942, 1944, 3088, 1548, 2870, 2226, 2678, 1986, 2064, 2223, 1917, 2792, 1528, 2435, 1777, 2920, 2970, 2310, 2943, 1945, 3089, 1549, 2871, 2227, 2679, 1987, 2065, 2224, 1918, 2793, 1529, 2436, 1778, 2921, 2971, 2311, 2944, 1946, 3090, 1550, 2872, 2228, 2680, 1988, 2066, 2225, 1919, 2794, 1530, 2437, 1779, 2922, 2972, 2312, 2945, 1947, 3091, 1551, 2873, 2229, 2681, 1989, 2067, 2226, 1920, 2795, 1531, 2438, 1780, 2923, 2973, 2313, 2946, 1948, 3092, 1552, 2874, 2230, 2682, 1990, 2068, 2227, 1921, 2796, 1532, 2439, 1781, 2924, 2974, 2314, 2947, 1949, 3093, 1553, 2875, 2231, 2683, 1991, 2069, 2228, 1922, 2797, 1533, 2440, 1782, 2925, 2975, 2315, 2948, 1950, 3094, 1554, 2876, 2232, 2684, 1992, 2070, 2229, 1923, 2798, 1534, 2441, 1783, 2926, 2976, 2316, 2949, 1951, 3095, 1555, 2877, 2233, 2685, 1993, 2071, 2230, 1924, 2799, 1535, 2442, 1784, 2927, 2977, 2317, 2950, 1952, 3096, 1556, 2878, 2234, 2686, 1994, 2072, 2231, 1925, 2800, 1536, 2443, 1785, 2928, 2881, 2318, 2951, 1953, 3097, 1557, 2879, 2235, 2687, 1995, 2073, 2232, 1926, 2801, 1537, 2444, 1786, 2929, 2882, 2319, 2952, 1954, 3098, 1558, 2880, 2236, 2688, 1996, 2074, 2233, 1927, 2802, 1538, 2445, 1787, 2930, 2883, 2320, 2953, 1955, 3099, 1559, 2521, 2237, 2689, 1997, 2075, 2234, 1928, 2803, 1539, 2446, 1788, 2931, 2884, 2321, 2954, 1956, 3100, 1560, 2522, 2238, 2690, 1998, 2076, 2235, 1929, 2804, 1540, 2447, 1789, 2932, 2885, 2322, 2955, 1957, 3101, 1561, 2523, 2239, 2691, 1999, 2077, 2236, 1930, 2805, 1541, 2448, 1790, 2933, 2886, 2323, 2956, 1958, 3102, 1562, 2524, 2240, 2692, 2000, 2078, 2237, 1931, 2806, 1542, 2449, 1791, 2934, 2887, 2324, 2957, 1959, 3103, 1563, 2525, 2241, 2693, 2001, 2079, 2238, 1932, 2807, 1543, 2450, 1792, 2935, 2888, 2325, 2958, 1960, 3104, 1564, 2526, 2242, 2694, 2002, 2080, 2239, 1933, 2808, 1544, 2451, 1793, 2936, 2889, 2326, 2959, 1961, 3105, 1565, 2527, 2243, 2695, 2003, 2081, 2240, 1934, 2809, 1545, 2452, 1794, 2937, 2890, 2327, 2960, 1962, 3106, 1566, 2528, 2161, 2696, 2004, 2082, 2241, 1935, 2810, 1546, 2453, 1795, 2938, 2891, 2328, 2961, 1963, 3107, 1567, 2529, 2162, 2697, 2005, 2083, 2242, 1936, 2811, 1547, 2454, 1796, 2939, 2892, 2329, 2962, 1964, 3108, 1568, 2530, 2163, 2698, 2006, 2084, 2243, 1937, 2812, 1548, 2455, 1797, 2940, 2893, 2330, 2963, 1965, 3109, 1569, 2531, 2164, 2699, 2007, 2085, 2244, 1938, 2813, 1549, 2456, 1798, 2941, 2894, 2331, 2964, 1966, 3110, 1570, 2532, 2165, 2700, 2008, 2086, 2245, 1939, 2814, 1550, 2457, 1799, 2942, 2895, 2332, 2965, 1967, 3111, 1571, 2533, 2166, 2701, 2009, 2087, 2246, 1940, 2815, 1551, 2458, 1800, 2943, 2896, 2333, 2966, 1968, 3112, 1572, 2534, 2167, 2702, 2010, 2088, 2247, 1941, 2816, 1552, 2459, 1673, 2944, 2897, 2334, 2967, 1969, 3113, 1573, 2535, 2168, 2703, 2011, 2089, 2248, 1942, 2817, 1553, 2460, 1674, 2945, 2898, 2335, 2968, 1970, 3114, 1574, 2536, 2169, 2704, 2012, 2090, 2249, 1943, 2818, 1554, 2461, 1675, 2946, 2899, 2336, 2969, 1971, 3115, 1575, 2537, 2170, 2705, 2013, 2091, 2250, 1944, 2819, 1555, 2462, 1676, 2947, 2900, 2337, 2970, 1972, 3116, 1576, 2538, 2171, 2706, 2014, 2092, 2251, 1945, 2820, 1556, 2463, 1677, 2948, 2901, 2338, 2971, 1973, 3117, 1577, 2539, 2172, 2707, 2015, 2093, 2252, 1946, 2821, 1557, 2464, 1678, 2949, 2902, 2339, 2972, 1974, 3118, 1578, 2540, 2173, 2708, 2016, 2094, 2253, 1947, 2822, 1558, 2465, 1679, 2950, 2903, 2340, 2973, 1975, 3119, 1579, 2541, 2174, 2709, 2017, 2095, 2254, 1948, 2823, 1559, 2466, 1680, 2951, 2904, 2341, 2974, 1976, 3120, 1580, 2542, 2175, 2710, 2018, 2096, 2255, 1949, 2824, 1560, 2467, 1681, 2952, 2905, 2342, 2975, 1977, 3121, 1581, 2543, 2176, 2711, 2019, 2097, 2256, 1950, 2825, 1561, 2468, 1682, 2953, 2906, 2343, 2976, 1978, 3122, 1582, 2544, 2177, 2712, 2020, 2098, 2257, 1951, 2826, 1562, 2469, 1683, 2954, 2907, 2344, 2977, 1979, 3123, 1583, 2545, 2178, 2713, 2021, 2099, 2258, 1952, 2827, 1563, 2470, 1684, 2955, 2908, 2345, 2978, 1980, 3124, 1584, 2546, 2179, 2714, 2022, 2100, 2259, 1953, 2828, 1564, 2471, 1685, 2956, 2909, 2346, 2979, 1981, 3125, 1585, 2547, 2180, 2715, 2023, 2101, 2260, 1954, 2829, 1565, 2472, 1686, 2957, 2910, 2347, 2980, 1982, 3126, 1586, 2548, 2181, 2716, 2024, 2102, 2261, 1955, 2830, 1566, 2473, 1687, 2958, 2911, 2348, 2981, 1983, 3127, 1587, 2549, 2182, 2717, 2025, 2103, 2262, 1956, 2831, 1567, 2474, 1688, 2959, 2912, 2349, 2982, 1984, 3128, 1588, 2550, 2183, 2718, 2026, 2104, 2263, 1957, 2832, 1568, 2475, 1689, 2960, 2913, 2350, 2983, 1985, 3129, 1589, 2551, 2184, 2719, 2027, 2105, 2264, 1958, 2833, 1569, 2476, 1690, 2961, 2914, 2351, 2984, 1986, 3130, 1590, 2552, 2185, 2720, 2028, 2106, 2265, 1959, 2834, 1570, 2477, 1691, 2962, 2915, 2352, 2985, 1987, 3131, 1591, 2553, 2186, 2721, 2029, 2107, 2266, 1960, 2835, 1571, 2478, 1692, 2963, 2916, 2353, 2986, 1988, 3132, 1592, 2554, 2187, 2722, 2030, 2108, 2267, 1961, 2836, 1572, 2479, 1693, 2964, 2917, 2354, 2987, 1989, 3133, 1593, 2555, 2188, 2723, 2031, 2109, 2268, 1962, 2837, 1573, 2480, 1694, 2965, 2918, 2355, 2988, 1990, 3134, 1594, 2556, 2189, 2724, 2032, 2110, 2269, 1963, 2838, 1574, 2481, 1695, 2966, 2919, 2356, 2989, 1991, 2939, 1595, 2557, 2190, 2725, 2033, 2111, 2270, 1964, 2839, 1575, 2482, 1696, 2967, 2920, 2357, 2990, 1992, 2940, 1596, 2558, 2191, 2726, 2034, 2112, 2271, 1965, 2840, 1576, 2483, 1697, 2968, 2921, 2358, 2991, 1993, 2941, 1597, 2559, 2192, 2727, 2035, 2113, 2272, 1966, 2841, 1577, 2484, 1698, 2969, 2922, 2359, 2992, 1994, 2942, 1598, 2560, 2193, 2728, 2036, 2114, 2273, 1967, 2842, 1578, 2485, 1699, 2970, 2923, 2360, 2993, 1995, 2943, 1599, 2561, 2194, 2729, 2037, 2115, 2274, 1968, 2843, 1579, 2486, 1700, 2971, 2924, 2361, 2994, 1996, 2944, 1600, 2562, 2195, 2730, 2038, 2116, 2275, 1969, 2844, 1580, 2487, 1701, 2972, 2925, 2362, 2995, 1997, 2945, 1601, 2563, 2196, 2731, 2039, 2117, 2276, 1970, 2845, 1581, 2488, 1702, 2881, 2926, 2363, 2996, 1998, 2946, 1602, 2564, 2197, 2732, 2040, 2118, 2277, 1971, 2846, 1582, 2489, 1703, 2882, 2927, 2364, 2997, 1999, 2947, 1603, 2565, 2198, 2733, 2041, 2119, 2278, 1972, 2847, 1583, 2490, 1704, 2883, 2928, 2365, 2998, 2000, 2948, 1604, 2566, 2199, 2734, 2042, 2120, 2279, 1973, 2848, 1584, 2491, 1705, 2884, 2929, 2366, 2999, 2001, 2949, 1605, 2567, 2200, 2735, 2043, 2121, 2280, 1974, 2849, 1585, 2492, 1706, 2885, 2930, 2367, 3000, 2002, 2950, 1606, 2568, 2201, 2736, 2044, 2122, 2281, 1975, 2850, 1586, 2493, 1707, 2886, 2931, 2368, 3001, 2003, 2951, 1607, 2569, 2202, 2737, 2045, 2123, 2282, 1976, 2851, 1587, 2494, 1708, 2887, 2932, 2369, 3002, 2004, 2952, 1608, 2570, 2203, 2738, 2046, 2124, 2283, 1977, 2852, 1588, 2495, 1709, 2888, 2933, 2370, 3003, 1801, 2953, 1609, 2571, 2204, 2739, 2047, 2125, 2284, 1978, 2853, 1589, 2496, 1710, 2889, 2934, 2371, 3004, 1802, 2954, 1610, 2572, 2205, 2740, 2048, 2126, 2285, 1979, 2854, 1590, 2497, 1711, 2890, 2935, 2372, 3005, 1803, 2955, 1611, 2573, 2206, 2741, 2049, 2127, 2286, 1980, 2855, 1591, 2498, 1712, 2891, 2936, 2373, 3006, 1804, 2956, 1612, 2574, 2207, 2742, 2050, 2128, 2287, 1981, 2856, 1592, 2499, 1713, 2892, 2937, 2374, 3007, 1805, 2957, 1613, 2575, 2208, 2743, 2051, 2129, 2288, 1982, 2857, 1593, 2500, 1714, 2893, 2938, 2375, 3008, 1806, 2958, 1614, 2576, 2209, 2744, 2052, 2130, 2289, 1983, 2858, 1594, 2501, 1715, 2894, 2939, 2376, 3009, 1807, 2959, 1615, 2577, 2210, 2745, 2053, 2131, 2290, 1984, 2859, 1595, 2502, 1716, 2895, 2940, 2377, 3010, 1808, 2960, 1616, 2578, 2211, 2746, 2054, 2132, 2291, 1985, 2860, 1596, 2503, 1717, 2896, 2941, 2378, 3011, 1809, 2961, 1617, 2579, 2212, 2747, 2055, 2133, 2292, 1986, 2861, 1597, 2504, 1718, 2897, 2942, 2379, 3012, 1810, 2962, 1618, 2580, 2213, 2748, 2056, 2134, 2293, 1987, 2862, 1598, 2505, 1719, 2898, 2943, 2380, 3013, 1811, 2963, 1619, 2581, 2214, 2749, 2057, 2135, 2294, 1988, 2863, 1599, 2506, 1720, 2899, 2944, 2381, 3014, 1812, 2964, 1620, 2582, 2215, 2750, 2058, 2136, 2295, 1989, 2864, 1600, 2507, 1721, 2900, 2945, 2382, 3015, 1813, 2965, 1621, 2583, 2216, 2751, 2059, 2137, 2296, 1990, 2865, 1601, 2508, 1722, 2901, 2946, 2383, 3016, 1814, 2966, 1622, 2584, 2217, 2752, 2060, 2138, 2297, 1991, 2866, 1602, 2509, 1723, 2902, 2947, 2384, 3017, 1815, 2967, 1623, 2585, 2218, 2753, 2061, 2139, 2298, 1992, 2867, 1603, 2510, 1724, 2903, 2948, 2385, 3018, 1816, 2968, 1624, 2586, 2219, 2754, 2062, 2140, 2299, 1993, 2868, 1604, 2511, 1725, 2904, 2949, 2386, 3019, 1817, 2969, 1625, 2587, 2220, 2755, 2063, 2141, 2300, 1994, 2869, 1605, 2512, 1726, 2905, 2950, 2387, 3020, 1818, 2970, 1626, 2588, 2221, 2756, 2064, 2142, 2301, 1995, 2870, 1606, 2513, 1727, 2906, 2951, 2388, 3021, 1819, 2971, 1627, 2589, 2222, 2757, 2065, 2143, 2302, 1996, 2871, 1607, 2514, 1728, 2907, 2952, 2389, 3022, 1820, 2972, 1628, 2590, 2223, 2758, 2066, 2144, 2303, 1997, 2872, 1608, 2515, 1729, 2908, 2953, 2390, 3023, 1821, 2973, 1629, 2591, 2224, 2759, 2067, 2145, 2304, 1998, 2873, 1609, 2516, 1730, 2909, 2954, 2391, 3024, 1822, 2974, 1630, 2592, 2225, 2760, 2068, 2146, 2305, 1999, 2874, 1610, 2517, 1731, 2910, 2955, 2392, 3025, 1823, 2975, 1631, 2593, 2226, 2761, 2069, 2147, 2306, 2000, 2875, 1611, 2518, 1732, 2911, 2956, 2393, 3026, 1824, 2976, 1632, 2594, 2227, 2762, 2070, 2148, 2307, 2001, 2876, 1612, 2519, 1733, 2912, 2957, 2394, 3027, 1825, 2977, 1633, 2595, 2228, 2763, 2071, 2149, 2308, 2002, 2877, 1613, 2520, 1734, 2913, 2958, 2395, 3028, 1826, 2978, 1634, 2596, 2229, 2764, 2072, 2150, 2309, 2003, 2878, 1614, 2288, 1735, 2914, 2959, 2396, 3029, 1827, 2979, 1635, 2597, 2230, 2765, 2073, 2151, 2310, 2004, 2879, 1615, 2289, 1736, 2915, 2960, 2397, 3030, 1828, 2980, 1636, 2598, 2231, 2766, 2074, 2152, 2311, 2005, 2880, 1616, 2290, 1737, 2916, 2961, 2398, 3031, 1829, 2981, 1637, 2599, 2232, 2767, 2075, 2153, 2312, 2006, 2626, 1617, 2291, 1738, 2917, 2962, 2399, 3032, 1830, 2982, 1638, 2600, 2233, 2768, 2076, 2154, 2313, 2007, 2627, 1618, 2292, 1739, 2918, 2963, 2400, 3033, 1831, 2983, 1639, 2601, 2234, 2769, 2077, 2155, 2314, 2008, 2628, 1619, 2293, 1740, 2919, 2964, 2401, 3034, 1832, 2984, 1640, 2602, 2235, 2770, 2078, 2156, 2315, 2009, 2629, 1620, 2294, 1741, 2920, 2965, 2402, 3035, 1833, 2985, 1641, 2603, 2236, 2771, 2079, 2157, 2316, 2010, 2630, 1621, 2295, 1742, 2921, 2966, 2403, 3036, 1834, 2986, 1642, 2604, 2237, 2772, 2080, 2158, 2317, 2011, 2631, 1622, 2296, 1743, 2922, 2967, 2404, 3037, 1835, 2987, 1643, 2605, 2238, 2773, 2081, 2159, 2318, 2012, 2632, 1623, 2297, 1744, 2923, 2968, 2405, 3038, 1836, 2988, 1644, 2606, 2239, 2774, 2082, 2160, 2319, 2013, 2633, 1624, 2298, 1745, 2924, 2969, 2406, 3039, 1837, 2989, 1645, 2607, 2240, 2775, 2083, 1801, 2320, 2014, 2634, 1625, 2299, 1746, 2925, 2970, 2407, 3040, 1838, 2990, 1646, 2608, 2241, 2776, 2084, 1802, 2321, 2015, 2635, 1626, 2300, 1747, 2926, 2971, 2408, 3041, 1839, 2991, 1647, 2609, 2242, 2777, 2085, 1803, 2322, 2016, 2636, 1627, 2301, 1748, 2927, 2972, 2409, 3042, 1840, 2992, 1648, 2610, 2243, 2778, 2086, 1804, 2323, 2017, 2637, 1628, 2302, 1749, 2928, 2973, 2410, 3043, 1841, 2993, 1649, 2611, 2244, 2779, 2087, 1805, 2324, 2018, 2638, 1629, 2303, 1750, 2929, 2974, 2411, 3044, 1842, 2994, 1650, 2612, 2245, 2780, 2088, 1806, 2325, 2019, 2639, 1630, 2304, 1751, 2930, 2975, 2412, 3045, 1843, 2995, 1651, 2613, 2246, 2781, 2089, 1807, 2326, 2020, 2640, 1631, 2305, 1752, 2931, 2976, 2413, 3046, 1844, 2996, 1652, 2614, 2247, 2782, 2090, 1808, 2327, 2021, 2641, 1632, 2306, 1753, 2932, 2977, 2414, 3047, 1845, 2997, 1653, 2615, 2248, 2783, 2091, 1809, 2328, 2022, 2642, 1633, 2307, 1754, 2933, 2978, 2415, 3048, 1846, 2998, 1654, 2616, 2249, 2784, 2092, 1810, 2329, 2023, 2643, 1634, 2308, 1755, 2934, 2979, 2416, 3049, 1847, 2999, 1655, 2617, 2250, 2785, 2093, 1811, 2330, 2024, 2644, 1635, 2309, 1756, 2935, 2980, 2417, 3050, 1848, 3000, 1656, 2618, 2251, 2786, 2094, 1812, 2331, 2025, 2645, 1636, 2310, 1757, 2936, 2981, 2418, 3051, 1849, 3001, 1657, 2619, 2252, 2787, 2095, 1813, 2332, 2026, 2646, 1637, 2311, 1758, 2937, 2982, 2419, 3052, 1850, 3002, 1658, 2620, 2253, 2788, 2096, 1814, 2333, 2027, 2647, 1638, 2312, 1759, 2938, 2983, 2420, 3053, 1851, 3003, 1659, 2621, 2254, 2789, 2097, 1815, 2334, 2028, 2648, 1639, 2313, 1760, 2939, 2984, 2421, 3054, 1852, 3004, 1660, 2622, 2255, 2790, 2098, 1816, 2335, 2029, 2649, 1640, 2314, 1761, 2940, 2985, 2422, 3055, 1853, 3005, 1661, 2623, 2256, 2791, 2099, 1817, 2336, 2030, 2650, 1641, 2315, 1762, 2941, 2986, 2423, 3056, 1854, 3006, 1662, 2624, 2257, 2792, 2100, 1818, 2337, 2031, 2651, 1642, 2316, 1763, 2942, 2987, 2424, 3057, 1855, 3007, 1663, 2625, 2258, 2793, 2101, 1819, 2338, 2032, 2652, 1643, 2317, 1764, 2943, 2988, 2425, 3058, 1856, 3008, 1664, 2626, 2259, 2794, 2102, 1820, 2339, 2033, 2653, 1644, 2318, 1765, 2944, 2989, 2426, 3059, 1857, 3009, 1665, 2627, 2260, 2795, 2103, 1821, 2340, 2034, 2654, 1645, 2319, 1766, 2945, 2990, 2427, 3060, 1858, 3010, 1666, 2628, 2261, 2796, 2104, 1822, 2341, 2035, 2655, 1646, 2320, 1767, 2946, 2991, 2428, 3061, 1859, 3011, 1667, 2629, 2262, 2797, 2105, 1823, 2342, 2036, 2656, 1647, 2321, 1768, 2947, 2992, 2429, 3062, 1860, 3012, 1668, 2630, 2263, 2798, 2106, 1824, 2343, 2037, 2657, 1648, 2322, 1769, 2948, 2993, 2430, 3063, 1861, 3013, 1669, 2631, 2264, 2799, 2107, 1825, 2344, 2038, 2658, 1649, 2323, 1770, 2949, 2994, 2431, 3064, 1862, 3014, 1670, 2632, 2265, 2800, 2108, 1826, 2345, 2039, 2659, 1650, 2324, 1771, 2950, 2995, 2432, 3065, 1863, 3015, 1671, 2633, 2266, 2801, 2109, 1827, 2346, 2040, 2660, 1651, 2325, 1772, 2951, 2996, 2433, 3066, 1864, 3016, 1672, 2634, 2267, 2802, 2110, 1828, 2347, 2041, 2661, 1652, 2326, 1773, 2952, 2997, 2434, 3067, 1865, 3017, 1673, 2635, 2268, 2803, 2111, 1829, 2348, 2042, 2662, 1653, 2327, 1774, 2953, 2998, 2435, 3068, 1866, 3018, 1674, 2636, 2269, 2804, 2112, 1830, 2349, 2043, 2663, 1654, 2328, 1775, 2954, 2999, 2436, 3069, 1867, 3019, 1675, 2637, 2270, 2805, 2113, 1831, 2350, 2044, 2664, 1655, 2329, 1776, 2955, 3000, 2437, 3070, 1868, 3020, 1676, 2638, 2271, 2806, 2114, 1832, 2351, 2045, 2665, 1656, 2330, 1777, 2956, 3001, 2438, 3071, 1869, 3021, 1677, 2639, 2272, 2807, 2115, 1833, 2352, 2046, 2666, 1657, 2331, 1778, 2957, 3002, 2439, 3072, 1870, 3022, 1678, 2640, 2273, 2808, 2116, 1834, 2353, 2047, 2667, 1658, 2332, 1779, 2958, 3003, 2440, 3073, 1871, 3023, 1679, 2641, 2274, 2809, 2117, 1835, 2354, 2048, 2668, 1659, 2333, 1780, 2959, 3004, 2441, 3074, 1872, 3024, 1680, 2642, 2275, 2810, 2118, 1836, 2355, 2049, 2669, 1660, 2334, 1781, 2960, 3005, 2442, 3075, 1873, 3025, 1681, 2643, 2276, 2811, 2119, 1837, 2356, 2050, 2670, 1661, 2335, 1782, 2961, 3006, 2443, 3076, 1874, 3026, 1682, 2644, 2277, 2812, 2120, 1838, 2357, 2051, 2671, 1662, 2336, 1783, 2962, 3007, 2444, 3077, 1875, 3027, 1683, 2645, 2278, 2813, 2121, 1839, 2358, 2052, 2672, 1663, 2337, 1784, 2963, 3008, 2445, 3078, 1876, 3028, 1684, 2646, 2279, 2814, 2122, 1840, 2359, 2053, 2673, 1664, 2338, 1785, 2964, 3009, 2446, 3079, 1877, 3029, 1685, 2647, 2280, 2815, 2123, 1841, 2360, 2054, 2674, 1665, 2339, 1786, 2965, 3010, 2447, 3080, 1878, 3030, 1686, 2648, 2281, 2816, 2124, 1842, 2361, 2055, 2675, 1666, 2340, 1787, 2966, 3011, 2448, 3081, 1879, 3031, 1687, 2649, 2282, 2817, 2125, 1843, 2362, 2056, 2676, 1667, 2341, 1788, 2967, 3012, 2449, 3082, 1880, 3032, 1688, 2650, 2283, 2818, 2126, 1844, 2363, 2057, 2677, 1668, 2342, 1789, 2968, 3013, 2450, 3083, 1881, 3033, 1689, 2651, 2284, 2819, 2127, 1845, 2364, 2058, 2678, 1669, 2343, 1790, 2969, 3014, 2451, 3084, 1882, 3034, 1690, 2652, 2285, 2820, 2128, 1846, 2365, 2059, 2679, 1670, 2344, 1791, 2970, 3015, 2452, 3085, 1883, 3035, 1691, 2653, 2286, 2821, 2129, 1847, 2366, 2060, 2680, 1671, 2345, 1792, 2971, 3016, 2453, 3086, 1884, 3036, 1692, 2654, 2287, 2822, 2130, 1848, 2367, 2061, 2681, 1672, 2346, 1793, 2972, 3017, 2454, 3087, 1885, 3037, 1693, 2655, 2288, 2823, 2131, 1849, 2368, 2062, 2682, 1673, 2347, 1794, 2973, 3018, 2455, 3088, 1886, 3038, 1694, 2656, 2289, 2824, 2132, 1850, 2369, 2063, 2683, 1674, 2348, 1795, 2974, 3019, 2456, 3089, 1887, 3039, 1695, 2657, 2290, 2825, 2133, 1851, 2370, 2064, 2684, 1675, 2349, 1796, 2975, 3020, 2457, 3090, 1888, 3040, 1696, 2658, 2291, 2826, 2134, 1852, 2371, 2065, 2685, 1676, 2350, 1797, 2976, 3021, 2458, 3091, 1889, 3041, 1697, 2659, 2292, 2827, 2135, 1853, 2372, 2066, 2686, 1677, 2351, 1798, 2977, 3022, 2459, 3092, 1890, 3042, 1698, 2660, 2293, 2828, 2136, 1854, 2373, 2067, 2687, 1678, 2352, 1799, 2978, 3023, 2460, 3093, 1891, 3043, 1699, 2661, 2294, 2829, 2137, 1855, 2374, 2068, 2688, 1679, 2353, 1800, 2979, 3024, 2461, 3094, 1892, 3044, 1700, 2662, 2295, 2830, 2138, 1856, 2375, 2069, 2689, 1680, 2354, 1663, 2980, 3025, 2462, 3095, 1893, 2987, 1701, 2663, 2296, 2831, 2139, 1857, 2376, 2070, 2690, 1681, 2355, 1664, 2981, 3026, 2463, 3096, 1894, 2988, 1702, 2664, 2297, 2832, 2140, 1858, 2377, 2071, 2691, 1682, 2356, 1665, 2982, 3027, 2464, 3097, 1895, 2989, 1703, 2665, 2298, 2833, 2141, 1859, 2378, 2072, 2692, 1683, 2357, 1666, 2983, 3028, 2465, 3098, 1896, 2990, 1704, 2666, 2299, 2834, 2142, 1860, 2379, 2073, 2693, 1684, 2358, 1667, 2984, 3029, 2466, 3099, 1897, 2991, 1705, 2667, 2300, 2835, 2143, 1861, 2380, 2074, 2694, 1685, 2359, 1668, 2985, 3030, 2467, 3100, 1898, 2992, 1706, 2668, 2301, 2836, 2144, 1862, 2381, 2075, 2695, 1686, 2360, 1669, 2986, 3031, 2468, 3101, 1899, 2993, 1707, 2669, 2302, 2837, 2145, 1863, 2382, 2076, 2696, 1687, 2361, 1670, 2987, 3032, 2469, 3102, 1900, 2994, 1708, 2670, 2303, 2838, 2146, 1864, 2383, 2077, 2697, 1688, 2362, 1671, 2988, 3033, 2470, 3103, 1901, 2995, 1709, 2671, 2304, 2521, 2147, 1865, 2384, 2078, 2698, 1689, 2363, 1672, 2989, 3034, 2471, 3104, 1902, 2996, 1710, 2672, 2305, 2522, 2148, 1866, 2385, 2079, 2699, 1690, 2364, 1673, 2990, 3035, 2472, 3105, 1903, 2997, 1711, 2673, 2306, 2523, 2149, 1867, 2386, 2080, 2700, 1691, 2365, 1674, 2991, 3036, 2473, 3106, 1904, 2998, 1712, 2674, 2307, 2524, 2150, 1868, 2387, 2081, 2701, 1692, 2366, 1675, 2992, 3037, 2474, 3107, 1905, 2999, 1713, 2675, 2308, 2525, 2151, 1869, 2388, 2082, 2702, 1693, 2367, 1676, 2993, 3038, 2475, 3108, 1906, 3000, 1714, 2676, 2309, 2526, 2152, 1870, 2389, 2083, 2703, 1694, 2368, 1677, 2994, 3039, 2476, 3109, 1907, 3001, 1715, 2677, 2310, 2527, 2153, 1871, 2390, 2084, 2704, 1695, 2369, 1678, 2995, 3040, 2477, 3110, 1908, 3002, 1716, 2678, 2311, 2528, 2154, 1872, 2391, 2085, 2705, 1696, 2370, 1679, 2996, 3041, 2478, 3111, 1909, 3003, 1717, 2679, 2312, 2529, 2155, 1873, 2392, 2086, 2706, 1697, 2371, 1680, 2997, 3042, 2479, 3112, 1910, 3004, 1718, 2680, 2313, 2530, 2156, 1874, 2393, 2087, 2707, 1698, 2372, 1681, 2998, 3043, 2480, 3113, 1911, 3005, 1719, 2681, 2314, 2531, 2157, 1875, 2394, 2088, 2708, 1699, 2373, 1682, 2999, 3044, 2481, 3114, 1912, 3006, 1720, 2682, 2315, 2532, 2158, 1876, 2395, 2089, 2709, 1700, 2374, 1683, 3000, 3045, 2482, 3115, 1913, 3007, 1721, 2683, 2316, 2533, 2159, 1877, 2396, 2090, 2710, 1701, 2375, 1684, 3001, 3046, 2483, 3116, 1914, 3008, 1722, 2684, 2317, 2534, 2160, 1878, 2397, 2091, 2711, 1702, 2376, 1685, 3002, 3047, 2484, 3117, 1915, 3009, 1723, 2685, 2318, 2535, 2146, 1879, 2398, 2092, 2712, 1703, 2377, 1686, 3003, 3048, 2485, 3118, 1916, 3010, 1724, 2686, 2319, 2536, 2147, 1880, 2399, 2093, 2713, 1704, 2378, 1687, 3004, 3049, 2486, 3119, 1917, 3011, 1725, 2687, 2320, 2537, 2148, 1881, 2400, 2094, 2714, 1705, 2379, 1688, 3005, 3050, 2487, 3120, 1918, 3012, 1726, 2688, 2321, 2538, 2149, 1882, 2401, 2095, 2715, 1706, 2380, 1689, 3006, 3051, 2488, 3121, 1919, 3013, 1727, 2689, 2322, 2539, 2150, 1883, 2402, 2096, 2716, 1707, 2381, 1690, 3007, 3052, 2489, 3122, 1920, 3014, 1728, 2690, 2323, 2540, 2151, 1884, 2403, 2097, 2717, 1708, 2382, 1691, 3008, 3053, 2490, 3123, 1921, 3015, 1729, 2691, 2324, 2541, 2152, 1885, 2404, 2098, 2718, 1709, 2383, 1692, 3009, 3054, 2491, 3124, 1922, 3016, 1730, 2692, 2325, 2542, 2153, 1886, 2405, 2099, 2719, 1710, 2384, 1693, 3010, 3055, 2492, 3125, 1923, 3017, 1731, 2693, 2326, 2543, 2154, 1887, 2406, 2100, 2720, 1711, 2385, 1694, 3011, 3056, 2493, 3126, 1924, 3018, 1732, 2694, 2327, 2544, 2155, 1888, 2407, 2101, 2721, 1712, 2386, 1695, 3012, 3057, 2494, 3127, 1925, 3019, 1733, 2695, 2328, 2545, 2156, 1889, 2408, 2102, 2722, 1713, 2387, 1696, 3013, 3058, 2495, 3128, 1926, 3020, 1734, 2696, 2329, 2546, 2157, 1890, 2409, 2103, 2723, 1714, 2388, 1697, 3014, 3059, 2496, 3129, 1927, 3021, 1735, 2697, 2330, 2547, 2158, 1891, 2410, 2104, 2724, 1715, 2389, 1698, 3015, 3060, 2497, 3130, 1928, 3022, 1736, 2698, 2331, 2548, 2159, 1892, 2411, 2105, 2725, 1716, 2390, 1699, 3016, 3061, 2498, 3131, 1929, 3023, 1737, 2699, 2332, 2549, 2160, 1893, 2412, 2106, 2726, 1717, 2391, 1700, 3017, 3062, 2499, 3132, 1930, 3024, 1738, 2700, 2333, 2550, 1816, 1894, 2413, 2107, 2727, 1718, 2392, 1701, 3018, 3063, 2500, 3133, 1931, 3025, 1739, 2701, 2334, 2551, 1817, 1895, 2414, 2108, 2728, 1719, 2393, 1702, 3019, 3064, 2501, 3134, 1932, 3026, 1740, 2702, 2335, 2552, 1818, 1896, 2415, 2109, 2729, 1720, 2394, 1703, 3020, 3065, 2502, 3135, 1933, 3027, 1741, 2703, 2336, 2553, 1819, 1897, 2416, 2110, 2730, 1721, 2395, 1704, 3021, 3066, 2503, 3136, 1934, 3028, 1742, 2704, 2337, 2554, 1820, 1898, 2417, 2111, 2731, 1722, 2396, 1705, 3022, 3067, 2504, 3137, 1935, 3029, 1743, 2705, 2338, 2555, 1821, 1899, 2418, 2112, 2732, 1723, 2397, 1706, 3023, 3068, 2505, 3138, 1936, 3030, 1744, 2706, 2339, 2556, 1822, 1900, 2419, 2113, 2733, 1724, 2398, 1707, 3024, 3069, 2506, 3139, 1937, 3031, 1745, 2707, 2340, 2557, 1823, 1901, 2420, 2114, 2734, 1725, 2399, 1708, 3025, 3070, 2507, 3140, 1938, 3032, 1746, 2708, 2341, 2558, 1824, 1902, 2421, 2115, 2735, 1726, 2400, 1709, 3026, 3071, 2508, 3141, 1939, 3033, 1747, 2709, 2342, 2559, 1825, 1903, 2422, 2116, 2736, 1727, 2401, 1710, 3027, 3072, 2509, 3142, 1940, 3034, 1748, 2710, 2343, 2560, 1826, 1904, 2423, 2117, 2737, 1728, 2402, 1711, 3028, 3073, 2510, 3143, 1941, 3035, 1749, 2711, 2344, 2561, 1827, 1905, 2424, 2118, 2738, 1729, 2403, 1712, 3029, 3074, 2511, 3144, 1942, 3036, 1750, 2712, 2345, 2562, 1828, 1906, 2425, 2119, 2739, 1730, 2404, 1713, 3030, 3075, 2512, 3145, 1943, 3037, 1751, 2713, 2346, 2521, 1829, 1907, 2426, 2120, 2740, 1731, 2405, 1714, 3031, 3076, 2513, 2881, 1944, 3038, 1752, 2714, 2347, 2522, 1830, 1908, 2427, 2121, 2741, 1732, 2406, 1715, 3032, 3077, 2514, 2882, 1945, 3039, 1753, 2715, 2348, 2523, 1831, 1909, 2428, 2122, 2742, 1733, 2407, 1716, 3033, 3078, 2515, 2883, 1946, 3040, 1754, 2716, 2349, 2524, 1832, 1910, 2429, 2123, 2743, 1734, 2408, 1717, 3034, 3079, 2516, 2884, 1947, 3041, 1755, 2717, 2350, 2525, 1833, 1911, 2430, 2124, 2744, 1735, 2409, 1718, 3035, 3080, 2517, 2885, 1948, 3042, 1756, 2718, 2351, 2526, 1834, 1912, 2431, 2125, 2745, 1736, 2410, 1719, 3036, 3081, 2518, 2886, 1949, 3043, 1757, 2719, 2352, 2527, 1835, 1913, 2432, 2126, 2746, 1737, 2411, 1720, 3037, 3082, 2519, 2887, 1950, 3044, 1758, 2720, 2353, 2528, 1836, 1914, 2433, 2127, 2747, 1738, 2412, 1721, 3038, 3083, 2520, 2888, 1951, 3045, 1759, 2721, 2354, 2529, 1837, 1915, 2434, 2128, 2748, 1739, 2413, 1722, 3039, 3084, 2161, 2889, 1952, 3046, 1760, 2722, 2355, 2530, 1838, 1916, 2435, 2129, 2749, 1740, 2414, 1723, 3040, 3085, 2162, 2890, 1953, 3047, 1761, 2723, 2356, 2531, 1839, 1917, 2436, 2130, 2750, 1741, 2415, 1724, 3041, 3086, 2163, 2891, 1954, 3048, 1762, 2724, 2357, 2532, 1840, 1918, 2437, 2131, 2751, 1742, 2416, 1725, 3042, 3087, 2164, 2892, 1955, 3049, 1763, 2725, 2358, 2533, 1841, 1919, 2438, 2132, 2752, 1743, 2417, 1726, 3043, 3088, 2165, 2893, 1956, 3050, 1764, 2726, 2359, 2534, 1842, 1920, 2439, 2133, 2753, 1744, 2418, 1727, 3044, 3089, 2166, 2894, 1801, 3051, 1765, 2727, 2360, 2535, 1843, 1921, 2440, 2134, 2754, 1745, 2419, 1728, 3045, 3090, 2167, 2895, 1802, 3052, 1766, 2728, 2361, 2536, 1844, 1922, 2441, 2135, 2755, 1746, 2420, 1729, 3046, 3091, 2168, 2896, 1803, 3053, 1767, 2729, 2362, 2537, 1845, 1923, 2442, 2136, 2756, 1747, 2421, 1730, 3047, 3092, 2169, 2897, 1804, 3054, 1768, 2730, 2363, 2538, 1846, 1924, 2443, 2137, 2757, 1748, 2422, 1731, 3048, 3093, 2170, 2898, 1805, 3055, 1769, 2731, 2364, 2539, 1847, 1925, 2444, 2138, 2758, 1749, 2423, 1732, 3049, 3094, 2171, 2899, 1806, 3056, 1770, 2732, 2365, 2540, 1848, 1926, 2445, 2139, 2759, 1750, 2424, 1733, 3050, 3095, 2172, 2900, 1807, 3057, 1771, 2733, 2366, 2541, 1849, 1927, 2446, 2140, 2760, 1751, 2425, 1734, 3051, 3096, 2173, 2901, 1808, 3058, 1772, 2734, 2367, 2542, 1850, 1928, 2447, 2141, 2761, 1752, 2426, 1735, 3052, 3097, 2174, 2902, 1809, 3059, 1773, 2735, 2368, 2543, 1851, 1929, 2448, 2142, 2762, 1753, 2427, 1736, 3053, 3098, 2175, 2903, 1810, 3060, 1774, 2736, 2369, 2544, 1852, 1930, 2449, 2143, 2763, 1754, 2428, 1737, 3054, 3099, 2176, 2904, 1811, 3061, 1775, 2737, 2370, 2545, 1853, 1931, 2450, 2144, 2764, 1755, 2429, 1738, 3055, 3100, 2177, 2905, 1812, 3062, 1776, 2738, 2371, 2546, 1854, 1932, 2451, 2145, 2765, 1756, 2430, 1739, 3056, 3101, 2178, 2906, 1813, 3063, 1777, 2739, 2372, 2547, 1855, 1933, 2452, 2146, 2766, 1757, 2431, 1740, 3057, 3102, 2179, 2907, 1814, 3064, 1778, 2740, 2373, 2548, 1856, 1934, 2453, 2147, 2767, 1758, 2432, 1741, 3058, 3103, 2180, 2908, 1815, 3065, 1779, 2741, 2374, 2549, 1857, 1935, 2454, 2148, 2768, 1759, 2433, 1742, 3059, 3104, 2181, 2909, 1816, 3066, 1780, 2742, 2375, 2550, 1858, 1936, 2455, 2149, 2769, 1760, 2434, 1743, 3060, 3105, 2182, 2910, 1817, 3067, 1781, 2743, 2376, 2551, 1859, 1937, 2456, 2150, 2770, 1761, 2435, 1744, 3061, 3106, 2183, 2911, 1818, 3068, 1782, 2744, 2377, 2552, 1860, 1938, 2457, 2151, 2771, 1762, 2436, 1745, 3062, 3107, 2184, 2912, 1819, 3069, 1783, 2745, 2378, 2553, 1861, 1939, 2458, 2152, 2772, 1763, 2437, 1746, 3063, 3108, 2185, 2913, 1820, 3070, 1784, 2746, 2379, 2554, 1862, 1940, 2459, 2153, 2773, 1764, 2438, 1747, 3064, 3109, 2186, 2914, 1821, 3071, 1785, 2747, 2380, 2555, 1863, 1941, 2460, 2154, 2774, 1765, 2439, 1748, 3065, 3110, 2187, 2915, 1822, 3072, 1786, 2748, 2381, 2556, 1864, 1942, 2461, 2155, 2775, 1766, 2440, 1749, 3066, 3111, 2188, 2916, 1823, 3073, 1787, 2749, 2382, 2557, 1865, 1943, 2462, 2156, 2776, 1767, 2441, 1750, 3067, 3112, 2189, 2917, 1824, 3074, 1788, 2750, 2383, 2558, 1866, 1944, 2463, 2157, 2777, 1768, 2442, 1751, 3068, 3113, 2190, 2918, 1825, 3075, 1789, 2751, 2384, 2559, 1867, 1945, 2464, 2158, 2778, 1769, 2443, 1752, 3069, 3114, 2191, 2919, 1826, 3076, 1790, 2752, 2385, 2560, 1868, 1946, 2465, 2159, 2779, 1770, 2444, 1753, 3070, 3115, 2192, 2920, 1827, 3077, 1791, 2753, 2386, 2561, 1869, 1947, 2466, 2160, 2780, 1771, 2445, 1754, 3071, 3116, 2193, 2921, 1828, 3078, 1792, 2754, 2387, 2562, 1870, 1948, 2467, 1801, 2781, 1772, 2446, 1755, 3072, 3117, 2194, 2922, 1829, 3079, 1793, 2755, 2388, 2563, 1871, 1949, 2468, 1802, 2782, 1773, 2447, 1756, 3073, 3118, 2195, 2923, 1830, 3080, 1794, 2756, 2389, 2564, 1872, 1950, 2469, 1803, 2783, 1774, 2448, 1757, 3074, 3119, 2196, 2924, 1831, 3081, 1795, 2757, 2390, 2565, 1873, 1951, 2470, 1804, 2784, 1775, 2449, 1758, 3075, 3120, 2197, 2925, 1832, 3082, 1796, 2758, 2391, 2566, 1874, 1952, 2471, 1805, 2785, 1776, 2450, 1759, 3076, 3121, 2198, 2926, 1833, 3083, 1797, 2759, 2392, 2567, 1875, 1953, 2472, 1806, 2786, 1777, 2451, 1760, 3077, 3219, 3015, 3192, 1990, 3142, 2819, 3166, 2476, 2610, 2339, 2547, 2752, 2779, 3024, 2646, 2581, 1910, 3170, 3220, 3016, 3193, 1991, 3143, 2820, 3167, 2477, 2611, 2340, 2548, 2753, 2780, 3025, 2647, 2582, 1911, 3171, 3221, 3017, 3194, 1992, 3144, 2821, 3168, 2478, 2612, 2341, 2549, 2754, 2781, 3026, 2648, 2583, 1912, 3172, 3222, 3018, 3195, 1993, 3145, 2822, 3169, 2479, 2613, 2342, 2550, 2755, 2782, 3027, 2649, 2584, 1913, 3173, 3223, 3019, 3196, 1994, 3146, 2823, 3170, 2480, 2614, 2343, 2551, 2756, 2783, 3028, 2650, 2585, 1914, 3174, 3224, 3020, 3197, 1995, 3147, 2824, 3171, 2481, 2615, 2344, 2552, 2757, 2784, 3029, 2651, 2586, 1915, 3175, 3225, 3021, 3198, 1996, 3148, 2825, 3172, 2482, 2616, 2345, 2553, 2758, 2785, 3030, 2652, 2587, 1916, 3176, 3226, 3022, 3199, 1997, 3149, 2826, 3173, 2483, 2617, 2346, 2554, 2759, 2786, 3031, 2653, 2588, 1917, 3177, 3227, 3023, 3200, 1998, 3150, 2827, 3174, 2484, 2618, 2347, 2555, 2760, 2787, 3032, 2654, 2589, 1918, 3178, 3228, 3024, 3201, 1999, 3151, 2828, 3175, 2485, 2619, 2348, 2556, 2761, 2788, 3033, 2655, 2590, 1919, 3179, 3229, 3025, 3202, 2000, 3152, 2829, 3176, 2486, 2620, 2349, 2557, 2762, 2789, 3034, 2656, 2591, 1920, 3180, 3230, 3026, 3203, 2001, 3153, 2830, 3177, 2487, 2621, 2350, 2558, 2763, 2790, 3035, 2657, 2592, 1921, 3181, 3231, 3027, 3204, 2002, 3154, 2831, 3178, 2488, 2622, 2351, 2559, 2764, 2791, 3036, 2658, 2593, 1922, 3182, 3232, 3028, 3205, 2003, 3155, 2832, 3179, 2489, 2623, 2352, 2560, 2765, 2792, 3037, 2659, 2594, 1923, 3183, 3233, 3029, 3206, 2004, 3156, 2833, 3180, 2490, 2624, 2353, 2561, 2766, 2793, 3038, 2660, 2595, 1924, 3184, 3234, 3030, 3207, 2005, 3157, 2834, 3181, 2491, 2625, 2354, 2562, 2767, 2794, 3039, 2661, 2596, 1925, 3185, 3235, 3031, 3208, 2006, 3158, 2835, 3182, 2492, 2626, 2355, 2563, 2768, 2795, 3040, 2662, 2597, 1926, 3186, 3236, 3032, 3209, 2007, 3159, 2836, 3183, 2493, 2627, 2356, 2564, 2769, 2796, 3041, 2663, 2598, 1927, 3187, 3237, 3033, 3210, 2008, 3160, 2837, 3184, 2494, 2628, 2357, 2565, 2770, 2797, 3042, 2664, 2599, 1928, 3188, 3238, 3034, 3211, 2009, 3161, 2838, 3185, 2495, 2629, 2358, 2566, 2771, 2798, 3043, 2665, 2600, 1929, 3189, 3239, 3035, 3212, 2010, 3162, 2839, 3186, 2496, 2630, 2359, 2567, 2772, 2799, 3044, 2666, 2601, 1930, 3190, 3240, 3036, 3213, 2011, 3163, 2840, 3187, 2497, 2631, 2360, 2568, 2773, 2800, 3045, 2667, 2602, 1931, 3191, 3144, 3037, 3214, 2012, 3164, 2841, 3188, 2498, 2632, 2361, 2569, 2774, 2801, 3046, 2668, 2603, 1932, 3192, 3145, 3038, 3215, 2013, 3165, 2842, 3189, 2499, 2633, 2362, 2570, 2775, 2802, 3047, 2669, 2604, 1933, 3193, 3146, 3039, 3216, 2014, 3166, 2843, 3190, 2500, 2634, 2363, 2571, 2776, 2803, 3048, 2670, 2605, 1934, 3194, 3147, 3040, 3217, 2015, 3167, 2844, 3191, 2501, 2635, 2364, 2572, 2777, 2804, 3049, 2671, 2606, 1935, 3195, 3148, 3041, 3218, 2016, 3168, 2845, 3192, 2502, 2636, 2365, 2573, 2778, 2805, 3050, 2672, 2607, 1936, 3196, 3149, 3042, 3219, 2017, 3169, 2846, 3193, 2503, 2637, 2366, 2574, 2779, 2806, 3051, 2673, 2608, 1937, 3197, 3150, 3043, 3220, 2018, 3170, 2847, 3194, 2504, 2638, 2367, 2575, 2780, 2807, 3052, 2674, 2609, 1938, 3198, 3151, 3044, 3221, 2019, 3171, 2848, 3195, 2505, 2639, 2368, 2576, 2781, 2808, 3053, 2675, 2610, 1939, 3199, 3152, 3045, 3222, 2020, 3172, 2849, 3196, 2506, 2640, 2369, 2577, 2782, 2809, 3054, 2676, 2611, 1940, 3200, 3153, 3046, 3223, 2021, 3173, 2850, 3197, 2507, 2641, 2370, 2578, 2783, 2810, 3055, 2677, 2612, 1941, 3201, 3154, 3047, 3224, 2022, 3174, 2851, 3198, 2508, 2642, 2371, 2579, 2784, 2811, 3056, 2678, 2613, 1942, 3202, 3155, 3048, 3225, 2023, 3175, 2852, 3199, 2509, 2643, 2372, 2580, 2785, 2812, 3057, 2679, 2614, 1943, 3203, 3156, 3049, 3226, 2024, 3176, 2853, 3200, 2510, 2644, 2373, 2581, 2786, 2813, 3058, 2680, 2615, 1944, 3204, 3157, 3050, 3227, 2025, 3177, 2854, 3201, 2511, 2645, 2374, 2582, 2787, 2814, 3059, 2681, 2616, 1945, 3205, 3158, 3051, 3228, 2026, 3178, 2855, 3202, 2512, 2646, 2375, 2583, 2788, 2815, 3060, 2682, 2617, 1946, 3206, 3159, 3052, 3229, 2027, 3179, 2856, 3203, 2513, 2647, 2376, 2584, 2789, 2816, 3061, 2683, 2618, 1947, 3207, 3160, 3053, 3230, 2028, 3180, 2857, 3204, 2514, 2648, 2377, 2585, 2790, 2817, 3062, 2684, 2619, 1948, 3208, 3161, 3054, 3231, 2029, 3181, 2858, 3205, 2515, 2649, 2378, 2586, 2791, 2818, 3063, 2685, 2620, 1949, 3209, 3162, 3055, 3232, 2030, 3182, 2859, 3206, 2516, 2650, 2379, 2587, 2792, 2819, 3064, 2686, 2621, 1950, 3210, 3163, 3056, 3233, 2031, 3183, 2860, 3207, 2517, 2651, 2380, 2588, 2793, 2820, 3065, 2687, 2622, 1951, 3211, 3164, 3057, 3234, 2032, 3184, 2861, 3208, 2518, 2652, 2381, 2589, 2794, 2821, 3066, 2688, 2623, 1952, 3212, 3165, 3058, 3235, 2033, 3185, 2862, 3209, 2519, 2653, 2382, 2590, 2795, 2822, 3067, 2689, 2624, 1953, 3213, 3166, 3059, 3236, 2034, 3186, 2863, 3210, 2520, 2654, 2383, 2591, 2796, 2823, 3068, 2690, 2625, 1954, 3214, 3167, 3060, 3237, 2035, 3187, 2864, 3211, 2438, 2655, 2384, 2592, 2797, 2824, 3069, 2691, 2626, 1955, 3215, 3168, 3061, 3238, 2036, 3188, 2865, 3212, 2439, 2656, 2385, 2593, 2798, 2825, 3070, 2692, 2627, 1956, 3216, 3169, 3062, 3239, 2037, 3189, 2866, 3213, 2440, 2657, 2386, 2594, 2799, 2826, 3071, 2693, 2628, 1957, 3217, 3170, 3063, 3240, 2038, 3190, 2867, 3214, 2441, 2658, 2387, 2595, 2800, 2827, 3072, 2694, 2629, 1958, 3218, 3171, 3064, 2976, 2039, 3191, 2868, 3215, 2442, 2659, 2388, 2596, 2801, 2828, 3073, 2695, 2630, 1959, 3219, 3172, 3065, 2977, 2040, 3192, 2869, 3216, 2443, 2660, 2389, 2597, 2802, 2829, 3074, 2696, 2631, 1960, 3220, 3173, 3066, 2978, 2041, 3193, 2870, 3217, 2444, 2661, 2390, 2598, 2803, 2830, 3075, 2697, 2632, 1961, 3221, 3174, 3067, 2979, 2042, 3194, 2871, 3218, 2445, 2662, 2391, 2599, 2804, 2831, 3076, 2698, 2633, 1962, 3222, 3175, 3068, 2980, 2043, 3195, 2872, 3219, 2446, 2663, 2392, 2600, 2805, 2832, 3077, 2699, 2634, 1963, 3223, 3176, 3069, 2981, 2044, 3196, 2873, 3220, 2447, 2664, 2393, 2601, 2806, 2833, 3078, 2700, 2635, 1964, 3224, 3177, 3070, 2982, 2045, 3197, 2874, 3221, 2448, 2665, 2394, 2602, 2807, 2834, 3079, 2701, 2636, 1965, 3225, 3178, 3071, 2983, 2046, 3198, 2875, 3222, 2449, 2666, 2395, 2603, 2808, 2835, 3080, 2702, 2637, 1966, 3226, 3179, 3072, 2984, 2047, 3199, 2876, 3223, 2450, 2667, 2396, 2604, 2809, 2836, 3081, 2703, 2638, 1967, 3227, 3180, 3073, 2985, 2048, 3200, 2877, 3224, 2451, 2668, 2397, 2605, 2810, 2837, 3082, 2704, 2639, 1968, 3228, 3181, 3074, 2986, 2049, 3201, 2878, 3225, 2452, 2669, 2398, 2606, 2811, 2838, 3083, 2705, 2640, 1969, 3229, 3182, 3075, 2987, 2050, 3202, 2879, 3226, 2453, 2670, 2399, 2607, 2812, 2839, 3084, 2706, 2641, 1970, 3230, 3183, 3076, 2988, 2051, 3203, 2880, 3227, 2454, 2671, 2400, 2608, 2813, 2840, 3085, 2707, 2642, 1971, 3231, 3184, 3077, 2989, 2052, 3204, 2521, 3228, 2455, 2672, 2401, 2609, 2814, 2841, 3086, 2708, 2643, 1972, 3232, 3185, 3078, 2990, 2053, 3205, 2522, 3229, 2456, 2673, 2402, 2610, 2815, 2842, 3087, 2709, 2644, 1973, 3233, 3186, 3079, 2991, 2054, 3206, 2523, 3230, 2457, 2674, 2403, 2611, 2816, 2843, 3088, 2710, 2645, 1974, 3234, 3187, 3080, 2992, 2055, 3207, 2524, 3231, 2458, 2675, 2404, 2612, 2817, 2844, 3089, 2711, 2646, 1975, 3235, 3188, 3081, 2993, 2056, 3208, 2525, 3232, 2459, 2676, 2405, 2613, 2818, 2845, 3090, 2712, 2647, 1976, 3236, 3189, 3082, 2994, 2057, 3209, 2526, 3233, 2460, 2677, 2406, 2614, 2819, 2846, 3091, 2713, 2648, 1977, 3237, 3190, 3083, 2995, 2058, 3210, 2527, 3234, 2461, 2678, 2407, 2615, 2820, 2847, 3092, 2714, 2649, 1978, 3238, 3191, 3084, 2996, 2059, 3211, 2528, 3235, 2462, 2679, 2408, 2616, 2821, 2848, 3093, 2715, 2650, 1979, 3239, 3192, 3085, 2997, 2060, 3212, 2529, 3236, 2463, 2680, 2409, 2617, 2822, 2849, 3094, 2716, 2651, 1980, 3240, 3193, 3086, 2998, 2061, 3213, 2530, 3237, 2464, 2681, 2410, 2618, 2823, 2850, 3095, 2717, 2652, 1981, 3149, 3194, 3087, 2999, 2062, 3214, 2531, 3238, 2465, 2682, 2411, 2619, 2824, 2851, 3096, 2718, 2653, 1982, 3150, 3195, 3088, 3000, 2063, 3215, 2532, 3239, 2466, 2683, 2412, 2620, 2825, 2852, 3097, 2719, 2654, 1983, 3151, 3196, 3089, 3001, 2064, 3216, 2533, 3240, 2467, 2684, 2413, 2621, 2826, 2853, 3098, 2720, 2655, 1984, 3152, 3197, 3090, 3002, 2065, 3217, 2534, 2881, 2468, 2685, 2414, 2622, 2827, 2854, 3099, 2721, 2656, 1985, 3153, 3198, 3091, 3003, 2066, 3218, 2535, 2882, 2469, 2686, 2415, 2623, 2828, 2855, 3100, 2722, 2657, 1986, 3154, 3199, 3092, 3004, 2067, 3219, 2536, 2883, 2470, 2687, 2416, 2624, 2829, 2856, 3101, 2723, 2658, 1987, 3155, 3200, 3093, 3005, 2068, 3220, 2537, 2884, 2471, 2688, 2417, 2625, 2830, 2857, 3102, 2724, 2659, 1988, 3156, 3201, 3094, 3006, 2069, 3221, 2538, 2885, 2472, 2689, 2418, 2626, 2831, 2858, 3103, 2725, 2660, 1989, 3157, 3202, 3095, 3007, 2070, 3222, 2539, 2886, 2473, 2690, 2419, 2627, 2832, 2859, 3104, 2726, 2661, 1990, 3158, 3203, 3096, 3008, 2071, 3223, 2540, 2887, 2474, 2691, 2420, 2628, 2833, 2860, 3105, 2727, 2662, 1991, 3159, 3204, 3097, 3009, 2072, 3224, 2541, 2888, 2475, 2692, 2421, 2629, 2834, 2861, 3106, 2728, 2663, 1992, 3160, 3205, 3098, 3010, 2073, 3225, 2542, 2889, 2476, 2693, 2422, 2630, 2835, 2862, 3107, 2729, 2664, 1993, 3161, 3206, 3099, 3011, 2074, 3226, 2543, 2890, 2477, 2694, 2423, 2631, 2836, 2863, 3108, 2730, 2665, 1994, 3162, 3207, 3100, 3012, 2075, 3227, 2544, 2891, 2478, 2695, 2424, 2632, 2837, 2864, 3109, 2731, 2666, 1995, 3163, 3208, 3101, 3013, 2076, 3228, 2545, 2892, 2479, 2696, 2425, 2633, 2838, 2865, 3110, 2732, 2667, 1996, 3164, 3209, 3102, 3014, 2077, 3229, 2546, 2893, 2480, 2697, 2426, 2634, 2839, 2866, 3111, 2733, 2668, 1997, 3165, 3210, 3103, 3015, 2078, 3230, 2547, 2894, 2481, 2698, 2427, 2635, 2840, 2867, 3112, 2734, 2669, 1998, 3166, 3211, 3104, 3016, 2079, 3231, 2548, 2895, 2482, 2699, 2428, 2636, 2841, 2868, 3113, 2735, 2670, 1999, 3167, 3212, 3105, 3017, 2080, 3232, 2549, 2896, 2483, 2700, 2429, 2637, 2842, 2869, 3114, 2736, 2671, 2000, 3168, 3213, 3106, 3018, 2081, 3233, 2550, 2897, 2484, 2701, 2430, 2638, 2843, 2870, 3115, 2737, 2672, 2001, 3169, 3214, 3107, 3019, 2082, 3234, 2551, 2898, 2485, 2702, 2431, 2639, 2844, 2871, 3116, 2738, 2673, 2002, 3170, 3215, 3108, 3020, 2083, 3235, 2552, 2899, 2486, 2703, 2432, 2640, 2845, 2872, 3117, 2739, 2674, 2003, 3171, 3216, 3109, 3021, 2084, 3236, 2553, 2900, 2487, 2704, 2433, 2641, 2846, 2873, 3118, 2740, 2675, 2004, 3172, 3217, 3110, 3022, 2085, 3237, 2554, 2901, 2488, 2705, 2434, 2642, 2847, 2874, 3119, 2741, 2676, 2005, 3173, 3218, 3111, 3023, 2086, 3238, 2555, 2902, 2489, 2706, 2435, 2643, 2848, 2875, 3120, 2742, 2677, 2006, 3174, 3219, 3112, 3024, 2087, 3239, 2556, 2903, 2490, 2707, 2436, 2644, 2849, 2876, 3121, 2743, 2678, 2007, 3175, 3220, 3113, 3025, 2088, 3240, 2557, 2904, 2491, 2708, 2437, 2645, 2850, 2877, 3122, 2744, 2679, 2008, 3176, 3221, 3114, 3026, 2089, 3183, 2558, 2905, 2492, 2709, 2438, 2646, 2851, 2878, 3123, 2745, 2680, 2009, 3177, 3222, 3115, 3027, 2090, 3184, 2559, 2906, 2493, 2710, 2439, 2647, 2852, 2879, 3124, 2746, 2681, 2010, 3178, 3223, 3116, 3028, 2091, 3185, 2560, 2907, 2494, 2711, 2440, 2648, 2853, 2880, 3125, 2747, 2682, 2011, 3179, 3224, 3117, 3029, 2092, 3186, 2561, 2908, 2495, 2712, 2441, 2649, 2854, 2521, 3126, 2748, 2683, 2012, 3180, 3225, 3118, 3030, 2093, 3187, 2562, 2909, 2496, 2713, 2442, 2650, 2855, 2522, 3127, 2749, 2684, 2013, 3181, 3226, 3119, 3031, 2094, 3188, 2563, 2910, 2497, 2714, 2443, 2651, 2856, 2523, 3128, 2750, 2685, 2014, 3182, 3227, 3120, 3032, 2095, 3189, 2564, 2911, 2498, 2715, 2444, 2652, 2857, 2524, 3129, 2751, 2686, 2015, 3183, 3228, 3121, 3033, 2096, 3190, 2565, 2912, 2499, 2716, 2445, 2653, 2858, 2525, 3130, 2752, 2687, 2016, 3184, 3229, 3122, 3034, 2097, 3191, 2566, 2913, 2500, 2717, 2446, 2654, 2859, 2526, 3131, 2753, 2688, 2017, 3185, 3230, 3123, 3035, 2098, 3192, 2567, 2914, 2501, 2718, 2447, 2655, 2860, 2527, 3132, 2754, 2689, 2018, 3186, 3231, 3124, 3036, 2099, 3193, 2568, 2915, 2502, 2719, 2448, 2656, 2861, 2528, 3133, 2755, 2690, 2019, 3187, 3232, 3125, 3037, 2100, 3194, 2569, 2916, 2503, 2720, 2449, 2657, 2862, 2529, 3134, 2756, 2691, 2020, 3188, 3233, 3126, 3038, 2101, 3195, 2570, 2917, 2504, 2721, 2450, 2658, 2863, 2530, 3135, 2757, 2692, 2021, 3189, 3234, 3127, 3039, 2102, 3196, 2571, 2918, 2505, 2722, 2451, 2659, 2864, 2531, 3136, 2758, 2693, 2022, 3190, 3235, 3128, 3040, 2103, 3197, 2572, 2919, 2506, 2723, 2452, 2660, 2865, 2532, 3137, 2759, 2694, 2023, 3191, 3236, 3129, 3041, 2104, 3198, 2573, 2920, 2507, 2724, 2453, 2661, 2866, 2533, 3138, 2760, 2695, 2024, 3192, 3237, 3130, 3042, 2105, 3199, 2574, 2921, 2508, 2725, 2454, 2662, 2867, 2534, 3139, 2761, 2696, 2025, 3193, 3238, 3131, 3043, 2106, 3200, 2575, 2922, 2509, 2726, 2455, 2663, 2868, 2535, 3140, 2762, 2697, 2026, 3194, 3239, 3132, 3044, 2107, 3201, 2576, 2923, 2510, 2727, 2456, 2664, 2869, 2536, 3141, 2763, 2698, 2027, 3195, 3240, 3133, 3045, 2108, 3202, 2577, 2924, 2511, 2728, 2457, 2665, 2870, 2537, 3142, 2764, 2699, 2028, 3196, 2978, 3134, 3046, 2109, 3203, 2578, 2925, 2512, 2729, 2458, 2666, 2871, 2538, 3143, 2765, 2700, 2029, 3197, 2979, 3135, 3047, 2110, 3204, 2579, 2926, 2513, 2730, 2459, 2667, 2872, 2539, 3144, 2766, 2701, 2030, 3198, 2980, 3136, 3048, 2111, 3205, 2580, 2927, 2514, 2731, 2460, 2668, 2873, 2540, 3145, 2767, 2702, 2031, 3199, 2981, 3137, 3049, 2112, 3206, 2581, 2928, 2515, 2732, 2461, 2669, 2874, 2541, 3146, 2768, 2703, 2032, 3200, 2982, 3138, 3050, 2113, 3207, 2582, 2929, 2516, 2733, 2462, 2670, 2875, 2542, 3147, 2769, 2704, 2033, 3201, 2983, 3139, 3051, 2114, 3208, 2583, 2930, 2517, 2734, 2463, 2671, 2876, 2543, 3148, 2770, 2705, 2034, 3202, 2984, 3140, 3052, 2115, 3209, 2584, 2931, 2518, 2735, 2464, 2672, 2877, 2544, 3149, 2771, 2706, 2035, 3203, 2985, 3141, 3053, 2116, 3210, 2585, 2932, 2519, 2736, 2465, 2673, 2878, 2545, 3150, 2772, 2707, 2036, 3204, 2986, 3142, 3054, 2117, 3211, 2586, 2933, 2520, 2737, 2466, 2674, 2879, 2546, 3151, 2773, 2708, 2037, 3205, 2987, 3143, 3055, 2118, 3212, 2587, 2934, 2244, 2738, 2467, 2675, 2880, 2547, 3152, 2774, 2709, 2038, 3206, 2988, 3144, 3056, 2119, 3213, 2588, 2935, 2245, 2739, 2468, 2676, 2521, 2548, 3153, 2775, 2710, 2039, 3207, 2989, 3145, 3057, 2120, 3214, 2589, 2936, 2246, 2740, 2469, 2677, 2522, 2549, 3154, 2776, 2711, 2040, 3208, 2990, 3146, 3058, 2121, 3215, 2590, 2937, 2247, 2741, 2470, 2678, 2523, 2550, 3155, 2777, 2712, 2041, 3209, 2991, 3147, 3059, 2122, 3216, 2591, 2938, 2248, 2742, 2471, 2679, 2524, 2551, 3156, 2778, 2713, 2042, 3210, 2992, 3148, 3060, 2123, 3217, 2592, 2939, 2249, 2743, 2472, 2680, 2525, 2552, 3157, 2779, 2714, 2043, 3211, 2993, 3149, 3061, 2124, 3218, 2593, 2940, 2250, 2744, 2473, 2681, 2526, 2553, 3158, 2780, 2715, 2044, 3212, 2994, 3150, 3062, 2125, 3219, 2594, 2941, 2251, 2745, 2474, 2682, 2527, 2554, 3159, 2781, 2716, 2045, 3213, 2995, 3151, 3063, 2126, 3220, 2595, 2942, 2252, 2746, 2475, 2683, 2528, 2555, 3160, 2782, 2717, 2046, 3214, 2996, 3152, 3064, 2127, 3221, 2596, 2943, 2253, 2747, 2476, 2684, 2529, 2556, 3161, 2783, 2718, 2047, 3215, 2997, 3153, 3065, 2128, 3222, 2597, 2944, 2254, 2748, 2477, 2685, 2530, 2557, 3162, 2784, 2719, 2048, 3216, 2998, 3154, 3066, 2129, 3223, 2598, 2945, 2255, 2749, 2478, 2686, 2531, 2558, 3163, 2785, 2720, 2049, 3217, 2999, 3155, 3067, 2130, 3224, 2599, 2946, 2256, 2750, 2479, 2687, 2532, 2559, 3164, 2786, 2721, 2050, 3218, 3000, 3156, 3068, 2131, 3225, 2600, 2947, 2257, 2751, 2480, 2688, 2533, 2560, 3165, 2787, 2722, 2051, 3219, 3001, 3157, 3069, 2132, 3226, 2601, 2948, 2258, 2752, 2481, 2689, 2534, 2561, 3166, 2788, 2723, 2052, 3220, 3002, 3158, 3070, 2133, 3227, 2602, 2949, 2259, 2753, 2482, 2690, 2535, 2562, 3167, 2789, 2724, 2053, 3221, 3003, 3159, 3071, 2134, 3228, 2603, 2950, 2260, 2754, 2483, 2691, 2536, 2563, 3168, 2790, 2725, 2054, 3222, 3004, 3160, 3072, 2135, 3229, 2604, 2951, 2261, 2755, 2484, 2692, 2537, 2564, 3169, 2791, 2726, 2055, 3223, 3005, 3161, 3073, 2136, 3230, 2605, 2952, 2262, 2756, 2485, 2693, 2538, 2565, 3170, 2792, 2727, 2056, 3224, 3006, 3162, 3074, 2137, 3231, 2606, 2953, 2263, 2757, 2486, 2694, 2539, 2566, 3171, 2793, 2728, 2057, 3225, 3007, 3163, 3075, 2138, 3232, 2607, 2954, 2264, 2758, 2487, 2695, 2540, 2567, 3172, 2794, 2729, 2058, 3226, 3008, 3164, 3076, 2139, 3233, 2608, 2955, 2265, 2759, 2488, 2696, 2541, 2568, 3173, 2795, 2730, 2059, 3227, 3009, 3165, 3077, 2140, 3234, 2609, 2956, 2266, 2760, 2489, 2697, 2542, 2569, 3174, 2796, 2731, 2060, 3228, 3010, 3166, 3078, 2141, 3235, 2610, 2957, 2267, 2761, 2490, 2698, 2543, 2570, 3175, 2797, 2732, 2061, 3229, 3011, 3167, 3079, 2142, 3236, 2611, 2958, 2268, 2762, 2491, 2699, 2544, 2571, 3176, 2798, 2733, 2062, 3230, 3012, 3168, 3080, 2143, 3237, 2612, 2959, 2269, 2763, 2492, 2700, 2545, 2572, 3177, 2799, 2734, 2063, 3231, 3013, 3169, 3081, 2144, 3238, 2613, 2960, 2270, 2764, 2493, 2701, 2546, 2573, 3178, 2800, 2735, 2064, 3232, 3014, 3170, 3082, 2145, 3239, 2614, 2961, 2271, 2765, 2494, 2702, 2547, 2574, 3179, 2801, 2736, 2065, 3233, 3015, 3171, 3083, 2146, 3240, 2615, 2962, 2272, 2766, 2495, 2703, 2548, 2575, 3180, 2802, 2737, 2066, 3234, 3016, 3172, 3084, 2147, 3135, 2616, 2963, 2273, 2767, 2496, 2704, 2549, 2576, 3181, 2803, 2738, 2067, 3235, 3017, 3173, 3085, 2148, 3136, 2617, 2964, 2274, 2768, 2497, 2705, 2550, 2577, 3182, 2804, 2739, 2068, 3236, 3018, 3174, 3086, 2149, 3137, 2618, 2965, 2275, 2769, 2498, 2706, 2551, 2578, 3183, 2805, 2740, 2069, 3237, 3019, 3175, 3087, 2150, 3138, 2619, 2966, 2276, 2770, 2499, 2707, 2552, 2579, 3184, 2806, 2741, 2070, 3238, 3020, 3176, 3088, 2151, 3139, 2620, 2967, 2277, 2771, 2500, 2708, 2553, 2580, 3185, 2807, 2742, 2071, 3239, 3021, 3177, 3089, 2152, 3140, 2621, 2968, 2278, 2772, 2501, 2709, 2554, 2581, 3186, 2808, 2743, 2072, 3240, 3022, 3178, 3090, 2153, 3141, 2622, 2969, 2279, 2773, 2502, 2710, 2555, 2582, 3187, 2809, 2744, 2073, 2973, 3023, 3179, 3091, 2154, 3142, 2623, 2970, 2280, 2774, 2503, 2711, 2556, 2583, 3188, 2810, 2745, 2074, 2974, 3024, 3180, 3092, 2155, 3143, 2624, 2971, 2281, 2775, 2504, 2712, 2557, 2584, 3189, 2811, 2746, 2075, 2975, 3025, 3181, 3093, 2156, 3144, 2625, 2972, 2282, 2776, 2505, 2713, 2558, 2585, 3190, 2812, 2747, 2076, 2976, 3026, 3182, 3094, 2157, 3145, 2626, 2973, 2283, 2777, 2506, 2714, 2559, 2586, 3191, 2813, 2748, 2077, 2977, 3027, 3183, 3095, 2158, 3146, 2627, 2974, 2284, 2778, 2507, 2715, 2560, 2587, 3192, 2814, 2749, 2078, 2978, 3028, 3184, 3096, 2159, 3147, 2628, 2975, 2285, 2779, 2508, 2716, 2561, 2588, 3193, 2815, 2750, 2079, 2979, 3029, 3185, 3097, 2160, 3148, 2629, 2976, 2286, 2780, 2509, 2717, 2562, 2589, 3194, 2816, 2751, 2080, 2980, 3030, 3186, 3098, 2005, 3149, 2630, 2977, 2287, 2781, 2510, 2718, 2563, 2590, 3195, 2817, 2752, 2081, 2981, 3031, 3187, 3099, 2006, 3150, 2631, 2978, 2288, 2782, 2511, 2719, 2564, 2591, 3196, 2818, 2753, 2082, 2982, 3032, 3188, 3100, 2007, 3151, 2632, 2979, 2289, 2783, 2512, 2720, 2565, 2592, 3197, 2819, 2754, 2083, 2983, 3033, 3189, 3101, 2008, 3152, 2633, 2980, 2290, 2784, 2513, 2721, 2566, 2593, 3198, 2820, 2755, 2084, 2984, 3034, 3190, 3102, 2009, 3153, 2634, 2981, 2291, 2785, 2514, 2722, 2567, 2594, 3199, 2821, 2756, 2085, 2985, 3035, 3191, 3103, 2010, 3154, 2635, 2982, 2292, 2786, 2515, 2723, 2568, 2595, 3200, 2822, 2757, 2086, 2986, 3036, 3192, 3104, 2011, 3155, 2636, 2983, 2293, 2787, 2516, 2724, 2569, 2596, 3201, 2823, 2758, 2087, 2987, 3037, 3193, 3105, 2012, 3156, 2637, 2984, 2294, 2788, 2517, 2725, 2570, 2597, 3202, 2824, 2759, 2088, 2988, 3038, 3194, 3106, 2013, 3157, 2638, 2985, 2295, 2789, 2518, 2726, 2571, 2598, 3203, 2825, 2760, 2089, 2989, 3039, 3195, 3107, 2014, 3158, 2639, 2986, 2296, 2790, 2519, 2727, 2572, 2599, 3204, 2826, 2761, 2090, 2990, 3040, 3196, 3108, 2015, 3159, 2640, 2987, 2297, 2791, 2520, 2728, 2573, 2600, 3205, 2827, 2762, 2091, 2991, 3041, 3197, 3109, 2016, 3160, 2641, 2988, 2298, 2792, 2161, 2729, 2574, 2601, 3206, 2828, 2763, 2092, 2992, 3042, 3198, 3110, 2017, 3161, 2642, 2989, 2299, 2793, 2162, 2730, 2575, 2602, 3207, 2829, 2764, 2093, 2993, 3043, 3199, 3111, 2018, 3162, 2643, 2990, 2300, 2794, 2163, 2731, 2576, 2603, 3208, 2830, 2765, 2094, 2994, 3044, 3200, 3112, 2019, 3163, 2644, 2991, 2301, 2795, 2164, 2732, 2577, 2604, 3209, 2831, 2766, 2095, 2995, 3045, 3201, 3113, 2020, 3164, 2645, 2992, 2302, 2796, 2165, 2733, 2578, 2605, 3210, 2832, 2767, 2096, 2996, 3046, 3202, 3114, 2021, 3165, 2646, 2993, 2303, 2797, 2166, 2734, 2579, 2606, 3211, 2833, 2768, 2097, 2997, 3047, 3203, 3115, 2022, 3166, 2647, 2994, 2304, 2798, 2167, 2735, 2580, 2607, 3212, 2834, 2769, 2098, 2998, 3048, 3204, 3116, 2023, 3167, 2648, 2995, 2305, 2799, 2168, 2736, 2581, 2608, 3213, 2835, 2770, 2099, 2999, 3049, 3205, 3117, 2024, 3168, 2649, 2996, 2306, 2800, 2169, 2737, 2582, 2609, 3214, 2836, 2771, 2100, 3000, 3050, 3206, 3118, 2025, 3169, 2650, 2997, 2307, 2801, 2170, 2738, 2583, 2610, 3215, 2837, 2772, 2101, 3001, 3051, 3207, 3119, 2026, 3170, 2651, 2998, 2308, 2802, 2171, 2739, 2584, 2611, 3216, 2838, 2773, 2102, 3002, 3052, 3208, 3120, 2027, 3171, 2652, 2999, 2309, 2803, 2172, 2740, 2585, 2612, 3217, 2839, 2774, 2103, 3003, 3053, 3209, 3121, 2028, 3172, 2653, 3000, 2310, 2804, 2173, 2741, 2586, 2613, 3218, 2840, 2775, 2104, 3004, 3054, 3210, 3122, 2029, 3173, 2654, 3001, 2311, 2805, 2174, 2742, 2587, 2614, 3219, 2841, 2776, 2105, 3005, 3055, 3211, 3123, 2030, 3174, 2655, 3002, 2312, 2806, 2175, 2743, 2588, 2615, 3220, 2842, 2777, 2106, 3006, 3056, 3212, 3124, 2031, 3175, 2656, 3003, 2313, 2807, 2176, 2744, 2589, 2616, 3221, 2843, 2778, 2107, 3007, 3057, 3213, 3125, 2032, 3176, 2657, 3004, 2314, 2808, 2177, 2745, 2590, 2617, 3222, 2844, 2779, 2108, 3008, 3058, 3214, 3126, 2033, 3177, 2658, 3005, 2315, 2809, 2178, 2746, 2591, 2618, 3223, 2845, 2780, 2109, 3009, 3059, 3215, 3127, 2034, 3178, 2659, 3006, 2316, 2810, 2179, 2747, 2592, 2619, 3224, 2846, 2781, 2110, 3010, 3060, 3216, 3128, 2035, 3179, 2660, 3007, 2317, 2811, 2180, 2748, 2593, 2620, 3225, 2847, 2782, 2111, 3011, 3061, 3217, 3129, 2036, 3180, 2661, 3008, 2318, 2812, 2181, 2749, 2594, 2621, 3226, 2848, 2783, 2112, 3012, 3062, 3218, 3130, 2037, 3181, 2662, 3009, 2319, 2813, 2182, 2750, 2595, 2622, 3227, 2849, 2784, 2113, 3013, 3063, 3219, 3131, 2038, 3182, 2663, 3010, 2320, 2814, 2183, 2751, 2596, 2623, 3228, 2850, 2785, 2114, 3014, 3064, 3220, 3132, 2039, 3183, 2664, 3011, 2321, 2815, 2184, 2752, 2597, 2624, 3229, 2851, 2786, 2115, 3015, 3065, 3221, 3133, 2040, 3184, 2665, 3012, 2322, 2816, 2185, 2753, 2598, 2625, 3230, 2852, 2787, 2116, 3016, 3066, 3222, 3134, 2041, 3185, 2666, 3013, 2323, 2817, 2186, 2754, 2599, 2626, 3231, 2853, 2788, 2117, 3017, 3067, 3223, 3135, 2042, 3186, 2667, 3014, 2324, 2818, 2187, 2755, 2600, 2627, 3232, 2854, 2789, 2118, 3018, 3068, 3224, 3136, 2043, 3187, 2668, 3015, 2325, 2819, 2188, 2756, 2601, 2628, 3233, 2855, 2790, 2119, 3019, 3069, 3225, 3137, 2044, 3188, 2669, 3016, 2326, 2820, 2189, 2757, 2602, 2629, 3234, 2856, 2791, 2120, 3020, 3070, 3226, 3138, 2045, 3189, 2670, 3017, 2327, 2821, 2190, 2758, 2603, 2630, 3235, 2857, 2792, 2121, 3021, 3071, 3227, 3139, 2046, 3190, 2671, 3018, 2328, 2822, 2191, 2759, 2604, 2631, 3236, 2858, 2793, 2122, 3022, 3072, 3228, 3140, 2047, 3191, 2672, 3019, 2329, 2823, 2192, 2760, 2605, 2632, 3237, 2859, 2794, 2123, 3023, 3073, 3229, 3141, 2048, 3192, 2673, 3020, 2330, 2824, 2193, 2761, 2606, 2633, 3238, 2860, 2795, 2124, 3024, 3074, 3230, 3142, 2049, 3193, 2674, 3021, 2331, 2825, 2194, 2762, 2607, 2634, 3239, 2861, 2796, 2125, 3025, 3075, 3231, 3143, 2050, 3194, 2675, 3022, 2332, 2826, 2195, 2763, 2608, 2635, 3240, 2862, 2797, 2126, 3026, 3076, 3232, 3144, 2051, 3195, 2676, 3023, 2333, 2827, 2196, 2764, 2609, 2636, 2881, 2863, 2798, 2127, 3027, 3077, 3233, 3145, 2052, 3196, 2677, 3024, 2334, 2828, 2197, 2765, 2610, 2637, 2882, 2864, 2799, 2128, 3028, 3078, 3234, 3146, 2053, 3197, 2678, 3025, 2335, 2829, 2198, 2766, 2611, 2638, 2883, 2865, 2800, 2129, 3029, 3079, 3235, 3147, 2054, 3198, 2679, 3026, 2336, 2830, 2199, 2767, 2612, 2639, 2884, 2866, 2801, 2130, 3030, 3080, 3236, 3148, 2055, 3199, 2680, 3027, 2337, 2831, 2200, 2768, 2613, 2640, 2885, 2867, 2802, 2131, 3031, 3081, 3237, 3149, 2056, 3200, 2681, 3028, 2338, 2832, 2201, 2769, 2614, 2641, 2886, 2868, 2803, 2132, 3032, 3082, 3238, 3150, 2057, 3201, 2682, 3029, 2339, 2833, 2202, 2770, 2615, 2642, 2887, 2869, 2804, 2133, 3033, 3083, 3239, 3151, 2058, 3202, 2683, 3030, 2340, 2834, 2203, 2771, 2616, 2643, 2888, 2870, 2805, 2134, 3034, 3084, 3240, 3152, 2059, 3203, 2684, 3031, 2341, 2835, 2204, 2772, 2617, 2644, 2889, 2871, 2806, 2135, 3035, 3085, 2881, 3153, 2060, 3204, 2685, 3032, 2342, 2836, 2205, 2773, 2618, 2645, 2890, 2872, 2807, 2136, 3036, 3086, 2882, 3154, 2061, 3205, 2686, 3033, 2343, 2837, 2206, 2774, 2619, 2646, 2891, 2873, 2808, 2137, 3037, 3087, 2883, 3155, 2062, 3206, 2687, 3034, 2344, 2838, 2207, 2775, 2620, 2647, 2892, 2874, 2809, 2138, 3038, 3088, 2884, 3156, 2063, 3207, 2688, 3035, 2345, 2839, 2208, 2776, 2621, 2648, 2893, 2875, 2810, 2139, 3039, 3089, 2885, 3157, 2064, 3208, 2689, 3036, 2346, 2840, 2209, 2777, 2622, 2649, 2894, 2876, 2811, 2140, 3040, 3090, 2886, 3158, 2065, 3209, 2690, 3037, 2347, 2841, 2210, 2778, 2623, 2650, 2895, 2877, 2812, 2141, 3041, 3091, 2887, 3159, 2066, 3210, 2691, 3038, 2348, 2842, 2211, 2779, 2624, 2651, 2896, 2878, 2813, 2142, 3042, 3092, 2888, 3160, 2067, 3211, 2692, 3039, 2349, 2843, 2212, 2780, 2625, 2652, 2897, 2879, 2814, 2143, 3043, 3093, 2889, 3161, 2068, 3212, 2693, 3040, 2350, 2844, 2213, 2781, 2626, 2653, 2898, 2880, 2815, 2144, 3044, 3094, 2890, 3162, 2069, 3213, 2694, 3041, 2351, 2845, 2214, 2782, 2627, 2654, 2899, 2521, 2816, 2145, 3045, 3095, 2891, 3163, 2070, 3214, 2695, 3042, 2352, 2846, 2215, 2783, 2628, 2655, 2900, 2522, 2817, 2146, 3046, 3096, 2892, 3164, 2071, 3215, 2696, 3043, 2353, 2847, 2216, 2784, 2629, 2656, 2901, 2523, 2818, 2147, 3047, 3097, 2893, 3165, 2072, 3216, 2697, 3044, 2354, 2848, 2217, 2785, 2630, 2657, 2902, 2524, 2819, 2148, 3048, 3098, 2894, 3166, 2073, 3217, 2698, 3045, 2355, 2849, 2218, 2786, 2631, 2658, 2903, 2525, 2820, 2149, 3049, 3099, 2895, 3167, 2074, 3218, 2699, 3046, 2356, 2850, 2219, 2787, 2632, 2659, 2904, 2526, 2821, 2150, 3050, 3100, 2896, 3168, 2075, 3219, 2700, 3047, 2357, 2851, 2220, 2788, 2633, 2660, 2905, 2527, 2822, 2151, 3051, 3101, 2897, 3169, 2076, 3220, 2701, 3048, 2358, 2852, 2221, 2789, 2634, 2661, 2906, 2528, 2823, 2152, 3052, 3102, 2898, 3170, 2077, 3221, 2702, 3049, 2359, 2853, 2222, 2790, 2635, 2662, 2907, 2529, 2824, 2153, 3053, 3103, 2899, 3171, 2078, 3222, 2703, 3050, 2360, 2854, 2223, 2791, 2636, 2663, 2908, 2530, 2825, 2154, 3054, 3104, 2900, 3172, 2079, 3223, 2704, 3051, 2361, 2855, 2224, 2792, 2637, 2664, 2909, 2531, 2826, 2155, 3055, 3105, 2901, 3173, 2080, 3224, 2705, 3052, 2362, 2856, 2225, 2793, 2638, 2665, 2910, 2532, 2827, 2156, 3056, 3106, 2902, 3174, 2081, 3225, 2706, 3053, 2363, 2857, 2226, 2794, 2639, 2666, 2911, 2533, 2828, 2157, 3057, 3107, 2903, 3175, 2082, 3226, 2707, 3054, 2364, 2858, 2227, 2795, 2640, 2667, 2912, 2534, 2829, 2158, 3058, 3108, 2904, 3176, 2083, 3227, 2708, 3055, 2365, 2859, 2228, 2796, 2641, 2668, 2913, 2535, 2830, 2159, 3059, 3109, 2905, 3177, 2084, 3228, 2709, 3056, 2366, 2860, 2229, 2797, 2642, 2669, 2914, 2536, 2831, 2160, 3060, 3110, 2906, 3178, 2085, 3229, 2710, 3057, 2367, 2861, 2230, 2798, 2643, 2670, 2915, 2537, 2832, 1801, 3061, 3111, 2907, 3179, 2086, 3230, 2711, 3058, 2368, 2862, 2231, 2799, 2644, 2671, 2916, 2538, 2833, 1802, 3062, 3112, 2908, 3180, 2087, 3231, 2712, 3059, 2369, 2863, 2232, 2800, 2645, 2672, 2917, 2539, 2834, 1803, 3063, 3113, 2909, 3181, 2088, 3232, 2713, 3060, 2370, 2864, 2233, 2801, 2646, 2673, 2918, 2540, 2835, 1804, 3064, 3114, 2910, 3182, 2089, 3233, 2714, 3061, 2371, 2865, 2234, 2802, 2647, 2674, 2919, 2541, 2836, 1805, 3065, 3115, 2911, 3183, 2090, 3234, 2715, 3062, 2372, 2866, 2235, 2803, 2648, 2675, 2920, 2542, 2837, 1806, 3066, 3116, 2912, 3184, 2091, 3235, 2716, 3063, 2373, 2867, 2236, 2804, 2649, 2676, 2921, 2543, 2838, 1807, 3067, 3117, 2913, 3185, 2092, 3236, 2717, 3064, 2374, 2868, 2237, 2805, 2650, 2677, 2922, 2544, 2839, 1808, 3068, 3118, 2914, 3186, 2093, 3237, 2718, 3065, 2375, 2869, 2238, 2806, 2651, 2678, 2923, 2545, 2840, 1809, 3069, 3119, 2915, 3187, 2094, 3238, 2719, 3066, 2376, 2870, 2239, 2807, 2652, 2679, 2924, 2546, 2841, 1810, 3070, 3120, 2916, 3188, 2095, 3239, 2720, 3067, 2377, 2871, 2240, 2808, 2653, 2680, 2925, 2547, 2842, 1811, 3071, 3121, 2917, 3189, 2096, 3240, 2721, 3068, 2378, 2872, 2241, 2809, 2654, 2681, 2926, 2548, 2843, 1812, 3072, 3122, 2918, 3190, 2097, 3045, 2722, 3069, 2379, 2873, 2242, 2810, 2655, 2682, 2927, 2549, 2844, 1813, 3073, 3123, 2919, 3191, 2098, 3046, 2723, 3070, 2380, 2874, 2243, 2811, 2656, 2683, 2928, 2550, 2845, 1814, 3074, 3124, 2920, 3192, 2099, 3047, 2724, 3071, 2381, 2875, 2244, 2812, 2657, 2684, 2929, 2551, 2846, 1815, 3075, 3125, 2921, 3193, 2100, 3048, 2725, 3072, 2382, 2876, 2245, 2813, 2658, 2685, 2930, 2552, 2847, 1816, 3076, 3126, 2922, 3194, 2101, 3049, 2726, 3073, 2383, 2877, 2246, 2814, 2659, 2686, 2931, 2553, 2848, 1817, 3077, 3127, 2923, 3195, 2102, 3050, 2727, 3074, 2384, 2878, 2247, 2815, 2660, 2687, 2932, 2554, 2849, 1818, 3078, 3128, 2924, 3196, 2103, 3051, 2728, 3075, 2385, 2879, 2248, 2816, 2661, 2688, 2933, 2555, 2850, 1819, 3079, 3129, 2925, 3197, 2104, 3052, 2729, 3076, 2386, 2880, 2249, 2817, 2662, 2689, 2934, 2556, 2851, 1820, 3080, 3130, 2926, 3198, 2105, 3053, 2730, 3077, 2387, 2839, 2250, 2818, 2663, 2690, 2935, 2557, 2852, 1821, 3081, 3131, 2927, 3199, 2106, 3054, 2731, 3078, 2388, 2840, 2251, 2819, 2664, 2691, 2936, 2558, 2853, 1822, 3082, 3132, 2928, 3200, 2107, 3055, 2732, 3079, 2389, 2841, 2252, 2820, 2665, 2692, 2937, 2559, 2854, 1823, 3083, 3133, 2929, 3201, 2108, 3056, 2733, 3080, 2390, 2842, 2253, 2821, 2666, 2693, 2938, 2560, 2855, 1824, 3084, 3134, 2930, 3202, 2109, 3057, 2734, 3081, 2391, 2843, 2254, 2822, 2667, 2694, 2939, 2561, 2856, 1825, 3085, 3135, 2931, 3203, 2110, 3058, 2735, 3082, 2392, 2844, 2255, 2823, 2668, 2695, 2940, 2562, 2857, 1826, 3086, 3136, 2932, 3204, 2111, 3059, 2736, 3083, 2393, 2845, 2256, 2824, 2669, 2696, 2941, 2563, 2858, 1827, 3087, 3137, 2933, 3205, 2112, 3060, 2737, 3084, 2394, 2846, 2257, 2825, 2670, 2697, 2942, 2564, 2859, 1828, 3088, 3138, 2934, 3206, 2113, 3061, 2738, 3085, 2395, 2847, 2258, 2826, 2671, 2698, 2943, 2565, 2860, 1829, 3089, 3139, 2935, 3207, 2114, 3062, 2739, 3086, 2396, 2848, 2259, 2827, 2672, 2699, 2944, 2566, 2861, 1830, 3090, 3140, 2936, 3208, 2115, 3063, 2740, 3087, 2397, 2849, 2260, 2828, 2673, 2700, 2945, 2567, 2862, 1831, 3091, 3141, 2937, 3209, 2116, 3064, 2741, 3088, 2398, 2850, 2261, 2829, 2674, 2701, 2946, 2568, 2863, 1832, 3092, 3142, 2938, 3210, 2117, 3065, 2742, 3089, 2399, 2851, 2262, 2830, 2675, 2702, 2947, 2569, 2864, 1833, 3093, 3143, 2939, 3211, 2118, 3066, 2743, 3090, 2400, 2852, 2263, 2831, 2676, 2703, 2948, 2570, 2865, 1834, 3094, 3144, 2940, 3212, 2119, 3067, 2744, 3091, 2401, 2853, 2264, 2832, 2677, 2704, 2949, 2571, 2866, 1835, 3095, 3145, 2941, 3213, 2120, 3068, 2745, 3092, 2402, 2854, 2265, 2833, 2678, 2705, 2950, 2572, 2867, 1836, 3096, 3146, 2942, 3214, 2121, 3069, 2746, 3093, 2403, 2855, 2266, 2834, 2679, 2706, 2951, 2573, 2868, 1837, 3097, 3147, 2943, 3215, 2122, 3070, 2747, 3094, 2404, 2856, 2267, 2835, 2680, 2707, 2952, 2574, 2869, 1838, 3098, 3148, 2944, 3216, 2123, 3071, 2748, 3095, 2405, 2857, 2268, 2836, 2681, 2708, 2953, 2575, 2870, 1839, 3099, 3149, 2945, 3217, 2124, 3072, 2749, 3096, 2406, 2858, 2269, 2837, 2682, 2709, 2954, 2576, 2871, 1840, 3100, 3150, 2946, 3218, 2125, 3073, 2750, 3097, 2407, 2859, 2270, 2838, 2683, 2710, 2955, 2577, 2872, 1841, 3101, 3151, 2947, 3219, 2126, 3074, 2751, 3098, 2408, 2860, 2271, 2839, 2684, 2711, 2956, 2578, 2873, 1842, 3102, 3152, 2948, 3220, 2127, 3075, 2752, 3099, 2409, 2861, 2272, 2840, 2685, 2712, 2957, 2579, 2874, 1843, 3103, 3153, 2949, 3221, 2128, 3076, 2753, 3100, 2410, 2862, 2273, 2841, 2686, 2713, 2958, 2580, 2875, 1844, 3104, 3154, 2950, 3222, 2129, 3077, 2754, 3101, 2411, 2863, 2274, 2842, 2687, 2714, 2959, 2581, 2876, 1845, 3105, 3155, 2951, 3223, 2130, 3078, 2755, 3102, 2412, 2864, 2275, 2843, 2688, 2715, 2960, 2582, 2877, 1846, 3106, 3156, 2952, 3224, 2131, 3079, 2756, 3103, 2413, 2865, 2276, 2844, 2689, 2716, 2961, 2583, 2878, 1847, 3107, 3157, 2953, 3225, 2132, 3080, 2757, 3104, 2414, 2866, 2277, 2845, 2690, 2717, 2962, 2584, 2879, 1848, 3108, 3158, 2954, 3226, 2133, 3081, 2758, 3105, 2415, 2867, 2278, 2846, 2691, 2718, 2963, 2585, 2880, 1849, 3109, 3159, 2955, 3227, 2134, 3082, 2759, 3106, 2416, 2868, 2279, 2847, 2692, 2719, 2964, 2586, 2521, 1850, 3110, 3160, 2956, 3228, 2135, 3083, 2760, 3107, 2417, 2869, 2280, 2848, 2693, 2720, 2965, 2587, 2522, 1851, 3111, 3161, 2957, 3229, 2136, 3084, 2761, 3108, 2418, 2870, 2281, 2849, 2694, 2721, 2966, 2588, 2523, 1852, 3112, 3162, 2958, 3230, 2137, 3085, 2762, 3109, 2419, 2871, 2282, 2850, 2695, 2722, 2967, 2589, 2524, 1853, 3113, 3163, 2959, 3231, 2138, 3086, 2763, 3110, 2420, 2872, 2283, 2851, 2696, 2723, 2968, 2590, 2525, 1854, 3114, 3164, 2960, 3232, 2139, 3087, 2764, 3111, 2421, 2873, 2284, 2852, 2697, 2724, 2969, 2591, 2526, 1855, 3115, 3165, 2961, 3233, 2140, 3088, 2765, 3112, 2422, 2874, 2285, 2853, 2698, 2725, 2970, 2592, 2527, 1856, 3116, 3166, 2962, 3234, 2141, 3089, 2766, 3113, 2423, 2875, 2286, 2854, 2699, 2726, 2971, 2593, 2528, 1857, 3117, 3167, 2963, 3235, 2142, 3090, 2767, 3114, 2424, 2876, 2287, 2855, 2700, 2727, 2972, 2594, 2529, 1858, 3118, 3168, 2964, 3236, 2143, 3091, 2768, 3115, 2425, 2877, 2288, 2856, 2701, 2728, 2973, 2595, 2530, 1859, 3119, 3169, 2965, 3237, 2144, 3092, 2769, 3116, 2426, 2878, 2289, 2857, 2702, 2729, 2974, 2596, 2531, 1860, 3120, 3170, 2966, 3238, 2145, 3093, 2770, 3117, 2427, 2879, 2290, 2858, 2703, 2730, 2975, 2597, 2532, 1861, 3121, 3171, 2967, 3239, 2146, 3094, 2771, 3118, 2428, 2880, 2291, 2859, 2704, 2731, 2976, 2598, 2533, 1862, 3122, 3172, 2968, 3240, 2147, 3095, 2772, 3119, 2429, 2563, 2292, 2860, 2705, 2732, 2977, 2599, 2534, 1863, 3123, 3173, 2969, 3146, 2148, 3096, 2773, 3120, 2430, 2564, 2293, 2861, 2706, 2733, 2978, 2600, 2535, 1864, 3124, 3174, 2970, 3147, 2149, 3097, 2774, 3121, 2431, 2565, 2294, 2862, 2707, 2734, 2979, 2601, 2536, 1865, 3125, 3175, 2971, 3148, 2150, 3098, 2775, 3122, 2432, 2566, 2295, 2863, 2708, 2735, 2980, 2602, 2537, 1866, 3126, 3176, 2972, 3149, 2151, 3099, 2776, 3123, 2433, 2567, 2296, 2864, 2709, 2736, 2981, 2603, 2538, 1867, 3127, 3177, 2973, 3150, 2152, 3100, 2777, 3124, 2434, 2568, 2297, 2865, 2710, 2737, 2982, 2604, 2539, 1868, 3128, 3178, 2974, 3151, 2153, 3101, 2778, 3125, 2435, 2569, 2298, 2866, 2711, 2738, 2983, 2605, 2540, 1869, 3129, 3179, 2975, 3152, 2154, 3102, 2779, 3126, 2436, 2570, 2299, 2867, 2712, 2739, 2984, 2606, 2541, 1870, 3130, 3180, 2976, 3153, 2155, 3103, 2780, 3127, 2437, 2571, 2300, 2868, 2713, 2740, 2985, 2607, 2542, 1871, 3131, 3181, 2977, 3154, 2156, 3104, 2781, 3128, 2438, 2572, 2301, 2869, 2714, 2741, 2986, 2608, 2543, 1872, 3132, 3182, 2978, 3155, 2157, 3105, 2782, 3129, 2439, 2573, 2302, 2870, 2715, 2742, 2987, 2609, 2544, 1873, 3133, 3183, 2979, 3156, 2158, 3106, 2783, 3130, 2440, 2574, 2303, 2871, 2716, 2743, 2988, 2610, 2545, 1874, 3134, 3184, 2980, 3157, 2159, 3107, 2784, 3131, 2441, 2575, 2304, 2872, 2717, 2744, 2989, 2611, 2546, 1875, 3135, 3185, 2981, 3158, 2160, 3108, 2785, 3132, 2442, 2576, 2305, 2873, 2718, 2745, 2990, 2612, 2547, 1876, 3136, 3186, 2982, 3159, 1957, 3109, 2786, 3133, 2443, 2577, 2306, 2874, 2719, 2746, 2991, 2613, 2548, 1877, 3137, 3187, 2983, 3160, 1958, 3110, 2787, 3134, 2444, 2578, 2307, 2875, 2720, 2747, 2992, 2614, 2549, 1878, 3138, 3188, 2984, 3161, 1959, 3111, 2788, 3135, 2445, 2579, 2308, 2876, 2721, 2748, 2993, 2615, 2550, 1879, 3139, 3189, 2985, 3162, 1960, 3112, 2789, 3136, 2446, 2580, 2309, 2877, 2722, 2749, 2994, 2616, 2551, 1880, 3140, 3190, 2986, 3163, 1961, 3113, 2790, 3137, 2447, 2581, 2310, 2878, 2723, 2750, 2995, 2617, 2552, 1881, 3141, 3191, 2987, 3164, 1962, 3114, 2791, 3138, 2448, 2582, 2311, 2879, 2724, 2751, 2996, 2618, 2553, 1882, 3142, 3192, 2988, 3165, 1963, 3115, 2792, 3139, 2449, 2583, 2312, 2880, 2725, 2752, 2997, 2619, 2554, 1883, 3143, 3193, 2989, 3166, 1964, 3116, 2793, 3140, 2450, 2584, 2313, 2521, 2726, 2753, 2998, 2620, 2555, 1884, 3144, 3194, 2990, 3167, 1965, 3117, 2794, 3141, 2451, 2585, 2314, 2522, 2727, 2754, 2999, 2621, 2556, 1885, 3145, 3195, 2991, 3168, 1966, 3118, 2795, 3142, 2452, 2586, 2315, 2523, 2728, 2755, 3000, 2622, 2557, 1886, 3146, 3196, 2992, 3169, 1967, 3119, 2796, 3143, 2453, 2587, 2316, 2524, 2729, 2756, 3001, 2623, 2558, 1887, 3147, 3197, 2993, 3170, 1968, 3120, 2797, 3144, 2454, 2588, 2317, 2525, 2730, 2757, 3002, 2624, 2559, 1888, 3148, 3198, 2994, 3171, 1969, 3121, 2798, 3145, 2455, 2589, 2318, 2526, 2731, 2758, 3003, 2625, 2560, 1889, 3149, 3199, 2995, 3172, 1970, 3122, 2799, 3146, 2456, 2590, 2319, 2527, 2732, 2759, 3004, 2626, 2561, 1890, 3150, 3200, 2996, 3173, 1971, 3123, 2800, 3147, 2457, 2591, 2320, 2528, 2733, 2760, 3005, 2627, 2562, 1891, 3151, 3201, 2997, 3174, 1972, 3124, 2801, 3148, 2458, 2592, 2321, 2529, 2734, 2761, 3006, 2628, 2563, 1892, 3152, 3202, 2998, 3175, 1973, 3125, 2802, 3149, 2459, 2593, 2322, 2530, 2735, 2762, 3007, 2629, 2564, 1893, 3153, 3203, 2999, 3176, 1974, 3126, 2803, 3150, 2460, 2594, 2323, 2531, 2736, 2763, 3008, 2630, 2565, 1894, 3154, 3204, 3000, 3177, 1975, 3127, 2804, 3151, 2461, 2595, 2324, 2532, 2737, 2764, 3009, 2631, 2566, 1895, 3155, 3205, 3001, 3178, 1976, 3128, 2805, 3152, 2462, 2596, 2325, 2533, 2738, 2765, 3010, 2632, 2567, 1896, 3156, 3206, 3002, 3179, 1977, 3129, 2806, 3153, 2463, 2597, 2326, 2534, 2739, 2766, 3011, 2633, 2568, 1897, 3157, 3207, 3003, 3180, 1978, 3130, 2807, 3154, 2464, 2598, 2327, 2535, 2740, 2767, 3012, 2634, 2569, 1898, 3158, 3208, 3004, 3181, 1979, 3131, 2808, 3155, 2465, 2599, 2328, 2536, 2741, 2768, 3013, 2635, 2570, 1899, 3159, 3209, 3005, 3182, 1980, 3132, 2809, 3156, 2466, 2600, 2329, 2537, 2742, 2769, 3014, 2636, 2571, 1900, 3160, 3210, 3006, 3183, 1981, 3133, 2810, 3157, 2467, 2601, 2330, 2538, 2743, 2770, 3015, 2637, 2572, 1901, 3161, 3211, 3007, 3184, 1982, 3134, 2811, 3158, 2468, 2602, 2331, 2539, 2744, 2771, 3016, 2638, 2573, 1902, 3162, 3212, 3008, 3185, 1983, 3135, 2812, 3159, 2469, 2603, 2332, 2540, 2745, 2772, 3017, 2639, 2574, 1903, 3163, 3213, 3009, 3186, 1984, 3136, 2813, 3160, 2470, 2604, 2333, 2541, 2746, 2773, 3018, 2640, 2575, 1904, 3164, 3214, 3010, 3187, 1985, 3137, 2814, 3161, 2471, 2605, 2334, 2542, 2747, 2774, 3019, 2641, 2576, 1905, 3165, 3215, 3011, 3188, 1986, 3138, 2815, 3162, 2472, 2606, 2335, 2543, 2748, 2775, 3020, 2642, 2577, 1906, 3166, 3216, 3012, 3189, 1987, 3139, 2816, 3163, 2473, 2607, 2336, 2544, 2749, 2776, 3021, 2643, 2578, 1907, 3167, 3217, 3013, 3190, 1988, 3140, 2817, 3164, 2474, 2608, 2337, 2545, 2750, 2777, 3022, 2644, 2579, 1908, 3168, 3218, 3014, 3191, 1989, 3141, 2818, 3165, 2475, 2609, 2338, 2546, 2751, 2778, 3023, 2645, 2580, 1909, 3169, 3241, 3481, 3961, 3880, 4681, 5041, 5401, 3454, 5883, 4709, 5654, 4461, 3885, 4623, 4705, 6292, 5067, 4116, 3242, 3482, 3962, 3881, 4682, 5042, 5402, 3455, 5884, 4710, 5655, 4462, 3886, 4624, 4706, 6293, 5068, 4117, 3243, 3483, 3963, 3882, 4683, 5043, 5403, 3456, 5885, 4711, 5656, 4463, 3887, 4625, 4707, 6294, 5069, 4118, 3244, 3484, 3964, 3883, 4684, 5044, 5404, 3457, 5886, 4712, 5657, 4464, 3888, 4626, 4708, 6295, 5070, 4119, 3245, 3485, 3965, 3884, 4685, 5045, 5405, 3458, 5887, 4713, 5658, 4465, 3889, 4627, 4709, 6296, 5071, 4120, 3246, 3486, 3966, 3885, 4686, 5046, 5406, 3459, 5888, 4714, 5659, 4466, 3890, 4628, 4710, 6297, 5072, 4121, 3247, 3487, 3967, 3886, 4687, 5047, 5407, 3460, 5889, 4715, 5660, 4467, 3891, 4629, 4711, 6298, 5073, 4122, 3248, 3488, 3968, 3887, 4688, 5048, 5408, 3461, 5890, 4716, 5661, 4468, 3892, 4630, 4712, 6299, 5074, 4123, 3249, 3489, 3969, 3888, 4689, 5049, 5409, 3462, 5891, 4717, 5662, 4469, 3893, 4631, 4713, 6300, 5075, 4124, 3250, 3490, 3970, 3889, 4690, 5050, 5410, 3463, 5892, 4718, 5663, 4470, 3894, 4632, 4714, 6301, 5076, 4125, 3251, 3491, 3971, 3890, 4691, 5051, 5411, 3464, 5893, 4719, 5664, 4471, 3895, 4633, 4715, 6302, 5077, 4126, 3252, 3492, 3972, 3891, 4692, 5052, 5412, 3465, 5894, 4720, 5665, 4472, 3896, 4634, 4716, 6303, 5078, 4127, 3253, 3493, 3973, 3892, 4693, 5053, 5413, 3466, 5895, 4721, 5666, 4473, 3897, 4635, 4717, 6304, 5079, 4128, 3254, 3494, 3974, 3893, 4694, 5054, 5414, 3467, 5896, 4722, 5667, 4474, 3898, 4636, 4718, 6305, 5080, 4129, 3255, 3495, 3975, 3894, 4695, 5055, 5415, 3468, 5897, 4723, 5668, 4475, 3899, 4637, 4719, 6306, 5081, 4130, 3256, 3496, 3976, 3895, 4696, 5056, 5416, 3469, 5898, 4724, 5669, 4476, 3900, 4638, 4720, 6307, 5082, 4131, 3257, 3497, 3977, 3896, 4697, 5057, 5417, 3470, 5899, 4725, 5670, 4477, 3901, 4639, 4721, 6308, 5083, 4132, 3258, 3498, 3978, 3897, 4698, 5058, 5418, 3471, 5900, 4726, 5671, 4478, 3902, 4640, 4722, 6309, 5084, 4133, 3259, 3499, 3979, 3898, 4699, 5059, 5419, 3472, 5901, 4727, 5672, 4479, 3903, 4641, 4723, 6310, 5085, 4134, 3260, 3500, 3980, 3899, 4700, 5060, 5420, 3473, 5902, 4728, 5673, 4480, 3904, 4642, 4724, 6311, 5086, 4135, 3261, 3501, 3981, 3900, 4701, 5061, 5421, 3474, 5903, 4729, 5674, 4481, 3905, 4643, 4725, 6312, 5087, 4136, 3262, 3502, 3982, 3901, 4702, 5062, 5422, 3475, 5904, 4730, 5675, 4482, 3906, 4644, 4726, 6313, 5088, 4137, 3263, 3503, 3983, 3902, 4703, 5063, 5423, 3476, 5905, 4731, 5676, 4483, 3907, 4645, 4727, 6314, 5089, 4138, 3264, 3504, 3984, 3903, 4704, 5064, 5424, 3477, 5906, 4732, 5677, 4484, 3908, 4646, 4728, 6315, 5090, 4139, 3265, 3505, 3985, 3904, 4705, 5065, 5425, 3478, 5907, 4733, 5678, 4485, 3909, 4647, 4729, 6316, 5091, 4140, 3266, 3506, 3986, 3905, 4706, 5066, 5426, 3479, 5908, 4734, 5679, 4486, 3910, 4648, 4730, 6317, 5092, 4141, 3267, 3507, 3987, 3906, 4707, 5067, 5427, 3480, 5909, 4735, 5680, 4487, 3911, 4649, 4731, 6318, 5093, 4142, 3268, 3508, 3988, 3907, 4708, 5068, 5428, 3481, 5910, 4736, 5681, 4488, 3912, 4650, 4732, 6319, 5094, 4143, 3269, 3509, 3989, 3908, 4709, 5069, 5429, 3482, 5911, 4737, 5682, 4489, 3913, 4651, 4733, 6320, 5095, 4144, 3270, 3510, 3990, 3909, 4710, 5070, 5430, 3483, 5912, 4738, 5683, 4490, 3914, 4652, 4734, 6321, 5096, 4145, 3271, 3511, 3991, 3910, 4711, 5071, 5431, 3484, 5913, 4739, 5684, 4491, 3915, 4653, 4735, 6322, 5097, 4146, 3272, 3512, 3992, 3911, 4712, 5072, 5432, 3485, 5914, 4740, 5685, 4492, 3916, 4654, 4736, 6323, 5098, 4147, 3273, 3513, 3993, 3912, 4713, 5073, 5433, 3486, 5915, 4741, 5686, 4493, 3917, 4655, 4737, 6324, 5099, 4148, 3274, 3514, 3994, 3913, 4714, 5074, 5434, 3487, 5916, 4742, 5687, 4494, 3918, 4656, 4738, 6325, 5100, 4149, 3275, 3515, 3995, 3914, 4715, 5075, 5435, 3488, 5917, 4743, 5688, 4495, 3919, 4657, 4739, 6326, 5101, 4150, 3276, 3516, 3996, 3915, 4716, 5076, 5436, 3489, 5918, 4744, 5689, 4496, 3920, 4658, 4740, 6327, 5102, 4151, 3277, 3517, 3997, 3916, 4717, 5077, 5437, 3490, 5919, 4745, 5690, 4497, 3921, 4659, 4741, 6328, 5103, 4152, 3278, 3518, 3998, 3917, 4718, 5078, 5438, 3491, 5920, 4746, 5691, 4498, 3922, 4660, 4742, 6329, 5104, 4153, 3279, 3519, 3999, 3918, 4719, 5079, 5439, 3492, 5921, 4747, 5692, 4499, 3923, 4661, 4743, 6330, 5105, 4154, 3280, 3520, 4000, 3919, 4720, 5080, 5440, 3493, 5922, 4748, 5693, 4500, 3924, 4662, 4744, 6331, 5106, 4155, 3281, 3521, 4001, 3920, 4721, 5081, 5441, 3494, 5923, 4749, 5694, 4501, 3925, 4663, 4745, 6332, 5107, 4156, 3282, 3522, 4002, 3921, 4722, 5082, 5442, 3495, 5924, 4750, 5695, 4502, 3926, 4664, 4746, 6333, 5108, 4157, 3283, 3523, 4003, 3922, 4723, 5083, 5443, 3496, 5925, 4751, 5696, 4503, 3927, 4665, 4747, 6334, 5109, 4158, 3284, 3524, 4004, 3923, 4724, 5084, 5444, 3497, 5926, 4752, 5697, 4504, 3928, 4666, 4748, 6335, 5110, 4159, 3285, 3525, 4005, 3924, 4725, 5085, 5445, 3498, 5927, 4753, 5698, 4505, 3929, 4667, 4749, 6336, 5111, 4160, 3286, 3526, 4006, 3925, 4726, 5086, 5446, 3499, 5928, 4754, 5699, 4506, 3930, 4668, 4750, 6337, 5112, 4161, 3287, 3527, 4007, 3926, 4727, 5087, 5447, 3500, 5929, 4755, 5700, 4507, 3931, 4669, 4751, 6338, 5113, 4162, 3288, 3528, 4008, 3927, 4728, 5088, 5448, 3501, 5930, 4756, 5701, 4508, 3932, 4670, 4752, 6339, 5114, 4163, 3289, 3529, 4009, 3928, 4729, 5089, 5449, 3502, 5931, 4757, 5702, 4509, 3933, 4671, 4753, 6340, 5115, 4164, 3290, 3530, 4010, 3929, 4730, 5090, 5450, 3503, 5932, 4758, 5703, 4510, 3934, 4672, 4754, 6341, 5116, 4165, 3291, 3531, 4011, 3930, 4731, 5091, 5451, 3504, 5933, 4759, 5704, 4511, 3935, 4673, 4755, 6342, 5117, 4166, 3292, 3532, 4012, 3931, 4732, 5092, 5452, 3505, 5934, 4760, 5705, 4512, 3936, 4674, 4756, 6343, 5118, 4167, 3293, 3533, 4013, 3932, 4733, 5093, 5453, 3506, 5935, 4761, 5706, 4513, 3937, 4675, 4757, 6344, 5119, 4168, 3294, 3534, 4014, 3933, 4734, 5094, 5454, 3507, 5936, 4762, 5707, 4514, 3938, 4676, 4758, 6345, 5120, 4169, 3295, 3535, 4015, 3934, 4735, 5095, 5455, 3508, 5937, 4763, 5708, 4515, 3939, 4677, 4759, 6346, 5121, 4170, 3296, 3536, 4016, 3935, 4736, 5096, 5456, 3509, 5938, 4764, 5709, 4516, 3940, 4678, 4760, 6347, 5122, 4171, 3297, 3537, 4017, 3936, 4737, 5097, 5457, 3510, 5939, 4765, 5710, 4517, 3941, 4679, 4761, 6348, 5123, 4172, 3298, 3538, 4018, 3937, 4738, 5098, 5458, 3511, 5940, 4766, 5711, 4518, 3942, 4680, 4762, 6349, 5124, 4173, 3299, 3539, 4019, 3938, 4739, 5099, 5459, 3512, 5941, 4767, 5712, 4519, 3943, 4321, 4763, 6350, 5125, 4174, 3300, 3540, 4020, 3939, 4740, 5100, 5460, 3513, 5942, 4768, 5713, 4520, 3944, 4322, 4764, 6351, 5126, 4175, 3301, 3541, 4021, 3940, 4741, 5101, 5461, 3514, 5943, 4769, 5714, 4521, 3945, 4323, 4765, 6352, 5127, 4176, 3302, 3542, 4022, 3941, 4742, 5102, 5462, 3515, 5944, 4770, 5715, 4522, 3946, 4324, 4766, 6353, 5128, 4177, 3303, 3543, 4023, 3942, 4743, 5103, 5463, 3516, 5945, 4771, 5716, 4523, 3947, 4325, 4767, 6354, 5129, 4178, 3304, 3544, 4024, 3943, 4744, 5104, 5464, 3517, 5946, 4772, 5717, 4524, 3948, 4326, 4768, 6355, 5130, 4179, 3305, 3545, 4025, 3944, 4745, 5105, 5465, 3518, 5947, 4773, 5718, 4525, 3949, 4327, 4769, 6356, 5131, 4180, 3306, 3546, 4026, 3945, 4746, 5106, 5466, 3519, 5948, 4774, 5719, 4526, 3950, 4328, 4770, 6357, 5132, 4181, 3307, 3547, 4027, 3946, 4747, 5107, 5467, 3520, 5949, 4775, 5720, 4527, 3951, 4329, 4771, 6358, 5133, 4182, 3308, 3548, 4028, 3947, 4748, 5108, 5468, 3521, 5950, 4776, 5721, 4528, 3952, 4330, 4772, 6359, 5134, 4183, 3309, 3549, 4029, 3948, 4749, 5109, 5469, 3522, 5951, 4777, 5722, 4529, 3953, 4331, 4773, 6360, 5135, 4184, 3310, 3550, 4030, 3949, 4750, 5110, 5470, 3523, 5952, 4778, 5723, 4530, 3954, 4332, 4774, 6361, 5136, 4185, 3311, 3551, 4031, 3950, 4751, 5111, 5471, 3524, 5953, 4779, 5724, 4531, 3955, 4333, 4775, 6362, 5137, 4186, 3312, 3552, 4032, 3951, 4752, 5112, 5472, 3525, 5954, 4780, 5725, 4532, 3956, 4334, 4776, 6363, 5138, 4187, 3313, 3553, 4033, 3952, 4753, 5113, 5473, 3526, 5955, 4781, 5726, 4533, 3957, 4335, 4777, 6364, 5139, 4188, 3314, 3554, 4034, 3953, 4754, 5114, 5474, 3527, 5956, 4782, 5727, 4534, 3958, 4336, 4778, 6365, 5140, 4189, 3315, 3555, 4035, 3954, 4755, 5115, 5475, 3528, 5957, 4783, 5728, 4535, 3959, 4337, 4779, 6366, 5141, 4190, 3316, 3556, 4036, 3955, 4756, 5116, 5476, 3529, 5958, 4784, 5729, 4536, 3960, 4338, 4780, 6367, 5142, 4191, 3317, 3557, 4037, 3956, 4757, 5117, 5477, 3530, 5959, 4785, 5730, 4537, 3601, 4339, 4781, 6368, 5143, 4192, 3318, 3558, 4038, 3957, 4758, 5118, 5478, 3531, 5960, 4786, 5731, 4538, 3602, 4340, 4782, 6369, 5144, 4193, 3319, 3559, 4039, 3958, 4759, 5119, 5479, 3532, 5961, 4787, 5732, 4539, 3603, 4341, 4783, 6370, 5145, 4194, 3320, 3560, 4040, 3959, 4760, 5120, 5480, 3533, 5962, 4788, 5733, 4540, 3604, 4342, 4784, 6371, 5146, 4195, 3321, 3561, 4041, 3960, 4761, 5121, 5481, 3534, 5963, 4789, 5734, 4541, 3605, 4343, 4785, 6372, 5147, 4196, 3322, 3562, 4042, 3601, 4762, 5122, 5482, 3535, 5964, 4790, 5735, 4542, 3606, 4344, 4786, 6373, 5148, 4197, 3323, 3563, 4043, 3602, 4763, 5123, 5483, 3536, 5965, 4791, 5736, 4543, 3607, 4345, 4787, 6374, 5149, 4198, 3324, 3564, 4044, 3603, 4764, 5124, 5484, 3537, 5966, 4792, 5737, 4544, 3608, 4346, 4788, 6375, 5150, 4199, 3325, 3565, 4045, 3604, 4765, 5125, 5485, 3538, 5967, 4793, 5738, 4545, 3609, 4347, 4789, 6376, 5151, 4200, 3326, 3566, 4046, 3605, 4766, 5126, 5486, 3539, 5968, 4794, 5739, 4546, 3610, 4348, 4790, 6377, 5152, 4201, 3327, 3567, 4047, 3606, 4767, 5127, 5487, 3540, 5969, 4795, 5740, 4547, 3611, 4349, 4791, 6378, 5153, 4202, 3328, 3568, 4048, 3607, 4768, 5128, 5488, 3541, 5970, 4796, 5741, 4548, 3612, 4350, 4792, 6379, 5154, 4203, 3329, 3569, 4049, 3608, 4769, 5129, 5489, 3542, 5971, 4797, 5742, 4549, 3613, 4351, 4793, 6380, 5155, 4204, 3330, 3570, 4050, 3609, 4770, 5130, 5490, 3543, 5972, 4798, 5743, 4550, 3614, 4352, 4794, 6381, 5156, 4205, 3331, 3571, 4051, 3610, 4771, 5131, 5491, 3544, 5973, 4799, 5744, 4551, 3615, 4353, 4795, 6382, 5157, 4206, 3332, 3572, 4052, 3611, 4772, 5132, 5492, 3545, 5974, 4800, 5745, 4552, 3616, 4354, 4796, 6383, 5158, 4207, 3333, 3573, 4053, 3612, 4773, 5133, 5493, 3546, 5975, 4801, 5746, 4553, 3617, 4355, 4797, 6384, 5159, 4208, 3334, 3574, 4054, 3613, 4774, 5134, 5494, 3547, 5976, 4802, 5747, 4554, 3618, 4356, 4798, 6385, 5160, 4209, 3335, 3575, 4055, 3614, 4775, 5135, 5495, 3548, 5977, 4803, 5748, 4555, 3619, 4357, 4799, 6386, 5161, 4210, 3336, 3576, 4056, 3615, 4776, 5136, 5496, 3549, 5978, 4804, 5749, 4556, 3620, 4358, 4800, 6387, 5162, 4211, 3337, 3577, 4057, 3616, 4777, 5041, 5497, 3550, 5979, 4805, 5750, 4557, 3621, 4359, 4801, 6388, 5163, 4212, 3338, 3578, 4058, 3617, 4778, 5042, 5498, 3551, 5980, 4806, 5751, 4558, 3622, 4360, 4802, 6389, 5164, 4213, 3339, 3579, 4059, 3618, 4779, 5043, 5499, 3552, 5981, 4807, 5752, 4559, 3623, 4361, 4803, 6390, 5165, 4214, 3340, 3580, 4060, 3619, 4780, 5044, 5500, 3553, 5982, 4808, 5753, 4560, 3624, 4362, 4804, 6391, 5166, 4215, 3341, 3581, 4061, 3620, 4781, 5045, 5501, 3554, 5983, 4809, 5754, 4561, 3625, 4363, 4805, 6392, 5167, 4216, 3342, 3582, 4062, 3621, 4782, 5046, 5502, 3555, 5984, 4810, 5755, 4562, 3626, 4364, 4806, 6393, 5168, 4217, 3343, 3583, 4063, 3622, 4783, 5047, 5503, 3556, 5985, 4811, 5756, 4563, 3627, 4365, 4807, 6394, 5169, 4218, 3344, 3584, 4064, 3623, 4784, 5048, 5504, 3557, 5986, 4812, 5757, 4564, 3628, 4366, 4808, 6395, 5170, 4219, 3345, 3585, 4065, 3624, 4785, 5049, 5505, 3558, 5987, 4813, 5758, 4565, 3629, 4367, 4809, 6396, 5171, 4220, 3346, 3586, 4066, 3625, 4786, 5050, 5506, 3559, 5988, 4814, 5759, 4566, 3630, 4368, 4810, 6397, 5172, 4221, 3347, 3587, 4067, 3626, 4787, 5051, 5507, 3560, 5989, 4815, 5760, 4567, 3631, 4369, 4811, 6398, 5173, 4222, 3348, 3588, 4068, 3627, 4788, 5052, 5508, 3561, 5990, 4816, 5401, 4568, 3632, 4370, 4812, 6399, 5174, 4223, 3349, 3589, 4069, 3628, 4789, 5053, 5509, 3562, 5991, 4817, 5402, 4569, 3633, 4371, 4813, 6400, 5175, 4224, 3350, 3590, 4070, 3629, 4790, 5054, 5510, 3563, 5992, 4818, 5403, 4570, 3634, 4372, 4814, 6401, 5176, 4225, 3351, 3591, 4071, 3630, 4791, 5055, 5511, 3564, 5993, 4819, 5404, 4571, 3635, 4373, 4815, 6402, 5177, 4226, 3352, 3592, 4072, 3631, 4792, 5056, 5512, 3565, 5994, 4820, 5405, 4572, 3636, 4374, 4816, 6403, 5178, 4227, 3353, 3593, 4073, 3632, 4793, 5057, 5513, 3566, 5995, 4821, 5406, 4573, 3637, 4375, 4817, 6404, 5179, 4228, 3354, 3594, 4074, 3633, 4794, 5058, 5514, 3567, 5996, 4822, 5407, 4574, 3638, 4376, 4818, 6405, 5180, 4229, 3355, 3595, 4075, 3634, 4795, 5059, 5515, 3568, 5997, 4823, 5408, 4575, 3639, 4377, 4819, 6406, 5181, 4230, 3356, 3596, 4076, 3635, 4796, 5060, 5516, 3569, 5998, 4824, 5409, 4576, 3640, 4378, 4820, 6407, 5182, 4231, 3357, 3597, 4077, 3636, 4797, 5061, 5517, 3570, 5999, 4825, 5410, 4577, 3641, 4379, 4821, 6408, 5183, 4232, 3358, 3598, 4078, 3637, 4798, 5062, 5518, 3571, 6000, 4826, 5411, 4578, 3642, 4380, 4822, 6409, 5184, 4233, 3359, 3599, 4079, 3638, 4799, 5063, 5519, 3572, 6001, 4827, 5412, 4579, 3643, 4381, 4823, 6410, 5185, 4234, 3360, 3600, 4080, 3639, 4800, 5064, 5520, 3573, 6002, 4828, 5413, 4580, 3644, 4382, 4824, 6411, 5186, 4235, 3361, 3241, 4081, 3640, 4801, 5065, 5521, 3574, 6003, 4829, 5414, 4581, 3645, 4383, 4825, 6412, 5187, 4236, 3362, 3242, 4082, 3641, 4802, 5066, 5522, 3575, 6004, 4830, 5415, 4582, 3646, 4384, 4826, 6413, 5188, 4237, 3363, 3243, 4083, 3642, 4803, 5067, 5523, 3576, 6005, 4831, 5416, 4583, 3647, 4385, 4827, 6414, 5189, 4238, 3364, 3244, 4084, 3643, 4804, 5068, 5524, 3577, 6006, 4832, 5417, 4584, 3648, 4386, 4828, 6415, 5190, 4239, 3365, 3245, 4085, 3644, 4805, 5069, 5525, 3578, 6007, 4833, 5418, 4585, 3649, 4387, 4829, 6416, 5191, 4240, 3366, 3246, 4086, 3645, 4806, 5070, 5526, 3579, 6008, 4834, 5419, 4586, 3650, 4388, 4830, 6417, 5192, 4241, 3367, 3247, 4087, 3646, 4807, 5071, 5527, 3580, 6009, 4835, 5420, 4587, 3651, 4389, 4831, 6418, 5193, 4242, 3368, 3248, 4088, 3647, 4808, 5072, 5528, 3581, 6010, 4836, 5421, 4588, 3652, 4390, 4832, 6419, 5194, 4243, 3369, 3249, 4089, 3648, 4809, 5073, 5529, 3582, 6011, 4837, 5422, 4589, 3653, 4391, 4833, 6420, 5195, 4244, 3370, 3250, 4090, 3649, 4810, 5074, 5530, 3583, 6012, 4838, 5423, 4590, 3654, 4392, 4834, 6421, 5196, 4245, 3371, 3251, 4091, 3650, 4811, 5075, 5531, 3584, 6013, 4839, 5424, 4591, 3655, 4393, 4835, 6422, 5197, 4246, 3372, 3252, 4092, 3651, 4812, 5076, 5532, 3585, 6014, 4840, 5425, 4592, 3656, 4394, 4836, 6423, 5198, 4247, 3373, 3253, 4093, 3652, 4813, 5077, 5533, 3586, 6015, 4841, 5426, 4593, 3657, 4395, 4837, 6424, 5199, 4248, 3374, 3254, 4094, 3653, 4814, 5078, 5534, 3587, 6016, 4842, 5427, 4594, 3658, 4396, 4838, 6425, 5200, 4249, 3375, 3255, 4095, 3654, 4815, 5079, 5535, 3588, 6017, 4843, 5428, 4595, 3659, 4397, 4839, 6426, 5201, 4250, 3376, 3256, 4096, 3655, 4816, 5080, 5536, 3589, 6018, 4844, 5429, 4596, 3660, 4398, 4840, 6427, 5202, 4251, 3377, 3257, 4097, 3656, 4817, 5081, 5537, 3590, 6019, 4845, 5430, 4597, 3661, 4399, 4841, 6428, 5203, 4252, 3378, 3258, 4098, 3657, 4818, 5082, 5538, 3591, 6020, 4846, 5431, 4598, 3662, 4400, 4842, 6429, 5204, 4253, 3379, 3259, 4099, 3658, 4819, 5083, 5539, 3592, 6021, 4847, 5432, 4599, 3663, 4401, 4843, 6430, 5205, 4254, 3380, 3260, 4100, 3659, 4820, 5084, 5540, 3593, 6022, 4848, 5433, 4600, 3664, 4402, 4844, 6431, 5206, 4255, 3381, 3261, 4101, 3660, 4821, 5085, 5541, 3594, 6023, 4849, 5434, 4601, 3665, 4403, 4845, 6432, 5207, 4256, 3382, 3262, 4102, 3661, 4822, 5086, 5542, 3595, 6024, 4850, 5435, 4602, 3666, 4404, 4846, 6433, 5208, 4257, 3383, 3263, 4103, 3662, 4823, 5087, 5543, 3596, 6025, 4851, 5436, 4603, 3667, 4405, 4847, 6434, 5209, 4258, 3384, 3264, 4104, 3663, 4824, 5088, 5544, 3597, 6026, 4852, 5437, 4604, 3668, 4406, 4848, 6435, 5210, 4259, 3385, 3265, 4105, 3664, 4825, 5089, 5545, 3598, 6027, 4853, 5438, 4605, 3669, 4407, 4849, 6436, 5211, 4260, 3386, 3266, 4106, 3665, 4826, 5090, 5546, 3599, 6028, 4854, 5439, 4606, 3670, 4408, 4850, 6437, 5212, 4261, 3387, 3267, 4107, 3666, 4827, 5091, 5547, 3600, 6029, 4855, 5440, 4607, 3671, 4409, 4851, 6438, 5213, 4262, 3388, 3268, 4108, 3667, 4828, 5092, 5548, 3241, 6030, 4856, 5441, 4608, 3672, 4410, 4852, 6439, 5214, 4263, 3389, 3269, 4109, 3668, 4829, 5093, 5549, 3242, 6031, 4857, 5442, 4609, 3673, 4411, 4853, 6440, 5215, 4264, 3390, 3270, 4110, 3669, 4830, 5094, 5550, 3243, 6032, 4858, 5443, 4610, 3674, 4412, 4854, 6441, 5216, 4265, 3391, 3271, 4111, 3670, 4831, 5095, 5551, 3244, 6033, 4859, 5444, 4611, 3675, 4413, 4855, 6442, 5217, 4266, 3392, 3272, 4112, 3671, 4832, 5096, 5552, 3245, 6034, 4860, 5445, 4612, 3676, 4414, 4856, 6443, 5218, 4267, 3393, 3273, 4113, 3672, 4833, 5097, 5553, 3246, 6035, 4861, 5446, 4613, 3677, 4415, 4857, 6444, 5219, 4268, 3394, 3274, 4114, 3673, 4834, 5098, 5554, 3247, 6036, 4862, 5447, 4614, 3678, 4416, 4858, 6445, 5220, 4269, 3395, 3275, 4115, 3674, 4835, 5099, 5555, 3248, 6037, 4863, 5448, 4615, 3679, 4417, 4859, 6446, 5221, 4270, 3396, 3276, 4116, 3675, 4836, 5100, 5556, 3249, 6038, 4864, 5449, 4616, 3680, 4418, 4860, 6447, 5222, 4271, 3397, 3277, 4117, 3676, 4837, 5101, 5557, 3250, 6039, 4865, 5450, 4617, 3681, 4419, 4861, 6448, 5223, 4272, 3398, 3278, 4118, 3677, 4838, 5102, 5558, 3251, 6040, 4866, 5451, 4618, 3682, 4420, 4862, 6449, 5224, 4273, 3399, 3279, 4119, 3678, 4839, 5103, 5559, 3252, 6041, 4867, 5452, 4619, 3683, 4421, 4863, 6450, 5225, 4274, 3400, 3280, 4120, 3679, 4840, 5104, 5560, 3253, 6042, 4868, 5453, 4620, 3684, 4422, 4864, 6451, 5226, 4275, 3401, 3281, 4121, 3680, 4841, 5105, 5561, 3254, 6043, 4869, 5454, 4621, 3685, 4423, 4865, 6452, 5227, 4276, 3402, 3282, 4122, 3681, 4842, 5106, 5562, 3255, 6044, 4870, 5455, 4622, 3686, 4424, 4866, 6453, 5228, 4277, 3403, 3283, 4123, 3682, 4843, 5107, 5563, 3256, 6045, 4871, 5456, 4623, 3687, 4425, 4867, 6454, 5229, 4278, 3404, 3284, 4124, 3683, 4844, 5108, 5564, 3257, 6046, 4872, 5457, 4624, 3688, 4426, 4868, 6455, 5230, 4279, 3405, 3285, 4125, 3684, 4845, 5109, 5565, 3258, 6047, 4873, 5458, 4625, 3689, 4427, 4869, 6456, 5231, 4280, 3406, 3286, 4126, 3685, 4846, 5110, 5566, 3259, 6048, 4874, 5459, 4626, 3690, 4428, 4870, 6457, 5232, 4281, 3407, 3287, 4127, 3686, 4847, 5111, 5567, 3260, 6049, 4875, 5460, 4627, 3691, 4429, 4871, 6458, 5233, 4282, 3408, 3288, 4128, 3687, 4848, 5112, 5568, 3261, 6050, 4876, 5461, 4628, 3692, 4430, 4872, 6459, 5234, 4283, 3409, 3289, 4129, 3688, 4849, 5113, 5569, 3262, 6051, 4877, 5462, 4629, 3693, 4431, 4873, 6460, 5235, 4284, 3410, 3290, 4130, 3689, 4850, 5114, 5570, 3263, 6052, 4878, 5463, 4630, 3694, 4432, 4874, 6461, 5236, 4285, 3411, 3291, 4131, 3690, 4851, 5115, 5571, 3264, 6053, 4879, 5464, 4631, 3695, 4433, 4875, 6462, 5237, 4286, 3412, 3292, 4132, 3691, 4852, 5116, 5572, 3265, 6054, 4880, 5465, 4632, 3696, 4434, 4876, 6463, 5238, 4287, 3413, 3293, 4133, 3692, 4853, 5117, 5573, 3266, 6055, 4881, 5466, 4633, 3697, 4435, 4877, 6464, 5239, 4288, 3414, 3294, 4134, 3693, 4854, 5118, 5574, 3267, 6056, 4882, 5467, 4634, 3698, 4436, 4878, 6465, 5240, 4289, 3415, 3295, 4135, 3694, 4855, 5119, 5575, 3268, 6057, 4883, 5468, 4635, 3699, 4437, 4879, 6466, 5241, 4290, 3416, 3296, 4136, 3695, 4856, 5120, 5576, 3269, 6058, 4884, 5469, 4636, 3700, 4438, 4880, 6467, 5242, 4291, 3417, 3297, 4137, 3696, 4857, 5121, 5577, 3270, 6059, 4885, 5470, 4637, 3701, 4439, 4881, 6468, 5243, 4292, 3418, 3298, 4138, 3697, 4858, 5122, 5578, 3271, 6060, 4886, 5471, 4638, 3702, 4440, 4882, 6469, 5244, 4293, 3419, 3299, 4139, 3698, 4859, 5123, 5579, 3272, 6061, 4887, 5472, 4639, 3703, 4441, 4883, 6470, 5245, 4294, 3420, 3300, 4140, 3699, 4860, 5124, 5580, 3273, 6062, 4888, 5473, 4640, 3704, 4442, 4884, 6471, 5246, 4295, 3421, 3301, 4141, 3700, 4861, 5125, 5581, 3274, 6063, 4889, 5474, 4641, 3705, 4443, 4885, 6472, 5247, 4296, 3422, 3302, 4142, 3701, 4862, 5126, 5582, 3275, 6064, 4890, 5475, 4642, 3706, 4444, 4886, 6473, 5248, 4297, 3423, 3303, 4143, 3702, 4863, 5127, 5583, 3276, 6065, 4891, 5476, 4643, 3707, 4445, 4887, 6474, 5249, 4298, 3424, 3304, 4144, 3703, 4864, 5128, 5584, 3277, 6066, 4892, 5477, 4644, 3708, 4446, 4888, 6475, 5250, 4299, 3425, 3305, 4145, 3704, 4865, 5129, 5585, 3278, 6067, 4893, 5478, 4645, 3709, 4447, 4889, 6476, 5251, 4300, 3426, 3306, 4146, 3705, 4866, 5130, 5586, 3279, 6068, 4894, 5479, 4646, 3710, 4448, 4890, 6477, 5252, 4301, 3427, 3307, 4147, 3706, 4867, 5131, 5587, 3280, 6069, 4895, 5480, 4647, 3711, 4449, 4891, 6478, 5253, 4302, 3428, 3308, 4148, 3707, 4868, 5132, 5588, 3281, 6070, 4896, 5481, 4648, 3712, 4450, 4892, 6479, 5254, 4303, 3429, 3309, 4149, 3708, 4869, 5133, 5589, 3282, 6071, 4897, 5482, 4649, 3713, 4451, 4893, 6480, 5255, 4304, 3430, 3310, 4150, 3709, 4870, 5134, 5590, 3283, 6072, 4898, 5483, 4650, 3714, 4452, 4894, 6121, 5256, 4305, 3431, 3311, 4151, 3710, 4871, 5135, 5591, 3284, 6073, 4899, 5484, 4651, 3715, 4453, 4895, 6122, 5257, 4306, 3432, 3312, 4152, 3711, 4872, 5136, 5592, 3285, 6074, 4900, 5485, 4652, 3716, 4454, 4896, 6123, 5258, 4307, 3433, 3313, 4153, 3712, 4873, 5137, 5593, 3286, 6075, 4901, 5486, 4653, 3717, 4455, 4897, 6124, 5259, 4308, 3434, 3314, 4154, 3713, 4874, 5138, 5594, 3287, 6076, 4902, 5487, 4654, 3718, 4456, 4898, 6125, 5260, 4309, 3435, 3315, 4155, 3714, 4875, 5139, 5595, 3288, 6077, 4903, 5488, 4655, 3719, 4457, 4899, 6126, 5261, 4310, 3436, 3316, 4156, 3715, 4876, 5140, 5596, 3289, 6078, 4904, 5489, 4656, 3720, 4458, 4900, 6127, 5262, 4311, 3437, 3317, 4157, 3716, 4877, 5141, 5597, 3290, 6079, 4905, 5490, 4657, 3721, 4459, 4901, 6128, 5263, 4312, 3438, 3318, 4158, 3717, 4878, 5142, 5598, 3291, 6080, 4906, 5491, 4658, 3722, 4460, 4902, 6129, 5264, 4313, 3439, 3319, 4159, 3718, 4879, 5143, 5599, 3292, 6081, 4907, 5492, 4659, 3723, 4461, 4903, 6130, 5265, 4314, 3440, 3320, 4160, 3719, 4880, 5144, 5600, 3293, 6082, 4908, 5493, 4660, 3724, 4462, 4904, 6131, 5266, 4315, 3441, 3321, 4161, 3720, 4881, 5145, 5601, 3294, 6083, 4909, 5494, 4661, 3725, 4463, 4905, 6132, 5267, 4316, 3442, 3322, 4162, 3721, 4882, 5146, 5602, 3295, 6084, 4910, 5495, 4662, 3726, 4464, 4906, 6133, 5268, 4317, 3443, 3323, 4163, 3722, 4883, 5147, 5603, 3296, 6085, 4911, 5496, 4663, 3727, 4465, 4907, 6134, 5269, 4318, 3444, 3324, 4164, 3723, 4884, 5148, 5604, 3297, 6086, 4912, 5497, 4664, 3728, 4466, 4908, 6135, 5270, 4319, 3445, 3325, 4165, 3724, 4885, 5149, 5605, 3298, 6087, 4913, 5498, 4665, 3729, 4467, 4909, 6136, 5271, 4320, 3446, 3326, 4166, 3725, 4886, 5150, 5606, 3299, 6088, 4914, 5499, 4666, 3730, 4468, 4910, 6137, 5272, 3961, 3447, 3327, 4167, 3726, 4887, 5151, 5607, 3300, 6089, 4915, 5500, 4667, 3731, 4469, 4911, 6138, 5273, 3962, 3448, 3328, 4168, 3727, 4888, 5152, 5608, 3301, 6090, 4916, 5501, 4668, 3732, 4470, 4912, 6139, 5274, 3963, 3449, 3329, 4169, 3728, 4889, 5153, 5609, 3302, 6091, 4917, 5502, 4669, 3733, 4471, 4913, 6140, 5275, 3964, 3450, 3330, 4170, 3729, 4890, 5154, 5610, 3303, 6092, 4918, 5503, 4670, 3734, 4472, 4914, 6141, 5276, 3965, 3451, 3331, 4171, 3730, 4891, 5155, 5401, 3304, 6093, 4919, 5504, 4671, 3735, 4473, 4915, 6142, 5277, 3966, 3452, 3332, 4172, 3731, 4892, 5156, 5402, 3305, 6094, 4920, 5505, 4672, 3736, 4474, 4916, 6143, 5278, 3967, 3453, 3333, 4173, 3732, 4893, 5157, 5403, 3306, 6095, 4921, 5506, 4673, 3737, 4475, 4917, 6144, 5279, 3968, 3454, 3334, 4174, 3733, 4894, 5158, 5404, 3307, 6096, 4922, 5507, 4674, 3738, 4476, 4918, 6145, 5280, 3969, 3455, 3335, 4175, 3734, 4895, 5159, 5405, 3308, 6097, 4923, 5508, 4675, 3739, 4477, 4919, 6146, 5281, 3970, 3456, 3336, 4176, 3735, 4896, 5160, 5406, 3309, 6098, 4924, 5509, 4676, 3740, 4478, 4920, 6147, 5282, 3971, 3457, 3337, 4177, 3736, 4897, 5161, 5407, 3310, 6099, 4925, 5510, 4677, 3741, 4479, 4921, 6148, 5283, 3972, 3458, 3338, 4178, 3737, 4898, 5162, 5408, 3311, 6100, 4926, 5511, 4678, 3742, 4480, 4922, 6149, 5284, 3973, 3459, 3339, 4179, 3738, 4899, 5163, 5409, 3312, 6101, 4927, 5512, 4679, 3743, 4481, 4923, 6150, 5285, 3974, 3460, 3340, 4180, 3739, 4900, 5164, 5410, 3313, 6102, 4928, 5513, 4680, 3744, 4482, 4924, 6151, 5286, 3975, 3461, 3341, 4181, 3740, 4901, 5165, 5411, 3314, 6103, 4929, 5514, 4321, 3745, 4483, 4925, 6152, 5287, 3976, 3462, 3342, 4182, 3741, 4902, 5166, 5412, 3315, 6104, 4930, 5515, 4322, 3746, 4484, 4926, 6153, 5288, 3977, 3463, 3343, 4183, 3742, 4903, 5167, 5413, 3316, 6105, 4931, 5516, 4323, 3747, 4485, 4927, 6154, 5289, 3978, 3464, 3344, 4184, 3743, 4904, 5168, 5414, 3317, 6106, 4932, 5517, 4324, 3748, 4486, 4928, 6155, 5290, 3979, 3465, 3345, 4185, 3744, 4905, 5169, 5415, 3318, 6107, 4933, 5518, 4325, 3749, 4487, 4929, 6156, 5291, 3980, 3466, 3346, 4186, 3745, 4906, 5170, 5416, 3319, 6108, 4934, 5519, 4326, 3750, 4488, 4930, 6157, 5292, 3981, 3467, 3347, 4187, 3746, 4907, 5171, 5417, 3320, 6109, 4935, 5520, 4327, 3751, 4489, 4931, 6158, 5293, 3982, 3468, 3348, 4188, 3747, 4908, 5172, 5418, 3321, 6110, 4936, 5521, 4328, 3752, 4490, 4932, 6159, 5294, 3983, 3469, 3349, 4189, 3748, 4909, 5173, 5419, 3322, 6111, 4937, 5522, 4329, 3753, 4491, 4933, 6160, 5295, 3984, 3470, 3350, 4190, 3749, 4910, 5174, 5420, 3323, 6112, 4938, 5523, 4330, 3754, 4492, 4934, 6161, 5296, 3985, 3471, 3351, 4191, 3750, 4911, 5175, 5421, 3324, 6113, 4939, 5524, 4331, 3755, 4493, 4935, 6162, 5297, 3986, 3472, 3352, 4192, 3751, 4912, 5176, 5422, 3325, 6114, 4940, 5525, 4332, 3756, 4494, 4936, 6163, 5298, 3987, 3473, 3353, 4193, 3752, 4913, 5177, 5423, 3326, 6115, 4941, 5526, 4333, 3757, 4495, 4937, 6164, 5299, 3988, 3474, 3354, 4194, 3753, 4914, 5178, 5424, 3327, 6116, 4942, 5527, 4334, 3758, 4496, 4938, 6165, 5300, 3989, 3475, 3355, 4195, 3754, 4915, 5179, 5425, 3328, 6117, 4943, 5528, 4335, 3759, 4497, 4939, 6166, 5301, 3990, 3476, 3356, 4196, 3755, 4916, 5180, 5426, 3329, 6118, 4944, 5529, 4336, 3760, 4498, 4940, 6167, 5302, 3991, 3477, 3357, 4197, 3756, 4917, 5181, 5427, 3330, 6119, 4945, 5530, 4337, 3761, 4499, 4941, 6168, 5303, 3992, 3478, 3358, 4198, 3757, 4918, 5182, 5428, 3331, 6120, 4946, 5531, 4338, 3762, 4500, 4942, 6169, 5304, 3993, 3479, 3359, 4199, 3758, 4919, 5183, 5429, 3332, 5761, 4947, 5532, 4339, 3763, 4501, 4943, 6170, 5305, 3994, 3480, 3360, 4200, 3759, 4920, 5184, 5430, 3333, 5762, 4948, 5533, 4340, 3764, 4502, 4944, 6171, 5306, 3995, 3481, 3361, 4201, 3760, 4921, 5185, 5431, 3334, 5763, 4949, 5534, 4341, 3765, 4503, 4945, 6172, 5307, 3996, 3482, 3362, 4202, 3761, 4922, 5186, 5432, 3335, 5764, 4950, 5535, 4342, 3766, 4504, 4946, 6173, 5308, 3997, 3483, 3363, 4203, 3762, 4923, 5187, 5433, 3336, 5765, 4951, 5536, 4343, 3767, 4505, 4947, 6174, 5309, 3998, 3484, 3364, 4204, 3763, 4924, 5188, 5434, 3337, 5766, 4952, 5537, 4344, 3768, 4506, 4948, 6175, 5310, 3999, 3485, 3365, 4205, 3764, 4925, 5189, 5435, 3338, 5767, 4953, 5538, 4345, 3769, 4507, 4949, 6176, 5311, 4000, 3486, 3366, 4206, 3765, 4926, 5190, 5436, 3339, 5768, 4954, 5539, 4346, 3770, 4508, 4950, 6177, 5312, 4001, 3487, 3367, 4207, 3766, 4927, 5191, 5437, 3340, 5769, 4955, 5540, 4347, 3771, 4509, 4951, 6178, 5313, 4002, 3488, 3368, 4208, 3767, 4928, 5192, 5438, 3341, 5770, 4956, 5541, 4348, 3772, 4510, 4952, 6179, 5314, 4003, 3489, 3369, 4209, 3768, 4929, 5193, 5439, 3342, 5771, 4957, 5542, 4349, 3773, 4511, 4953, 6180, 5315, 4004, 3490, 3370, 4210, 3769, 4930, 5194, 5440, 3343, 5772, 4958, 5543, 4350, 3774, 4512, 4954, 6181, 5316, 4005, 3491, 3371, 4211, 3770, 4931, 5195, 5441, 3344, 5773, 4959, 5544, 4351, 3775, 4513, 4955, 6182, 5317, 4006, 3492, 3372, 4212, 3771, 4932, 5196, 5442, 3345, 5774, 4960, 5545, 4352, 3776, 4514, 4956, 6183, 5318, 4007, 3493, 3373, 4213, 3772, 4933, 5197, 5443, 3346, 5775, 4961, 5546, 4353, 3777, 4515, 4957, 6184, 5319, 4008, 3494, 3374, 4214, 3773, 4934, 5198, 5444, 3347, 5776, 4962, 5547, 4354, 3778, 4516, 4958, 6185, 5320, 4009, 3495, 3375, 4215, 3774, 4935, 5199, 5445, 3348, 5777, 4963, 5548, 4355, 3779, 4517, 4959, 6186, 5321, 4010, 3496, 3376, 4216, 3775, 4936, 5200, 5446, 3349, 5778, 4964, 5549, 4356, 3780, 4518, 4960, 6187, 5322, 4011, 3497, 3377, 4217, 3776, 4937, 5201, 5447, 3350, 5779, 4965, 5550, 4357, 3781, 4519, 4961, 6188, 5323, 4012, 3498, 3378, 4218, 3777, 4938, 5202, 5448, 3351, 5780, 4966, 5551, 4358, 3782, 4520, 4962, 6189, 5324, 4013, 3499, 3379, 4219, 3778, 4939, 5203, 5449, 3352, 5781, 4967, 5552, 4359, 3783, 4521, 4963, 6190, 5325, 4014, 3500, 3380, 4220, 3779, 4940, 5204, 5450, 3353, 5782, 4968, 5553, 4360, 3784, 4522, 4964, 6191, 5326, 4015, 3501, 3381, 4221, 3780, 4941, 5205, 5451, 3354, 5783, 4969, 5554, 4361, 3785, 4523, 4965, 6192, 5327, 4016, 3502, 3382, 4222, 3781, 4942, 5206, 5452, 3355, 5784, 4970, 5555, 4362, 3786, 4524, 4966, 6193, 5328, 4017, 3503, 3383, 4223, 3782, 4943, 5207, 5453, 3356, 5785, 4971, 5556, 4363, 3787, 4525, 4967, 6194, 5329, 4018, 3504, 3384, 4224, 3783, 4944, 5208, 5454, 3357, 5786, 4972, 5557, 4364, 3788, 4526, 4968, 6195, 5330, 4019, 3505, 3385, 4225, 3784, 4945, 5209, 5455, 3358, 5787, 4973, 5558, 4365, 3789, 4527, 4969, 6196, 5331, 4020, 3506, 3386, 4226, 3785, 4946, 5210, 5456, 3359, 5788, 4974, 5559, 4366, 3790, 4528, 4970, 6197, 5332, 4021, 3507, 3387, 4227, 3786, 4947, 5211, 5457, 3360, 5789, 4975, 5560, 4367, 3791, 4529, 4971, 6198, 5333, 4022, 3508, 3388, 4228, 3787, 4948, 5212, 5458, 3361, 5790, 4976, 5561, 4368, 3792, 4530, 4972, 6199, 5334, 4023, 3509, 3389, 4229, 3788, 4949, 5213, 5459, 3362, 5791, 4977, 5562, 4369, 3793, 4531, 4973, 6200, 5335, 4024, 3510, 3390, 4230, 3789, 4950, 5214, 5460, 3363, 5792, 4978, 5563, 4370, 3794, 4532, 4974, 6201, 5336, 4025, 3511, 3391, 4231, 3790, 4951, 5215, 5461, 3364, 5793, 4979, 5564, 4371, 3795, 4533, 4975, 6202, 5337, 4026, 3512, 3392, 4232, 3791, 4952, 5216, 5462, 3365, 5794, 4980, 5565, 4372, 3796, 4534, 4976, 6203, 5338, 4027, 3513, 3393, 4233, 3792, 4953, 5217, 5463, 3366, 5795, 4981, 5566, 4373, 3797, 4535, 4977, 6204, 5339, 4028, 3514, 3394, 4234, 3793, 4954, 5218, 5464, 3367, 5796, 4982, 5567, 4374, 3798, 4536, 4978, 6205, 5340, 4029, 3515, 3395, 4235, 3794, 4955, 5219, 5465, 3368, 5797, 4983, 5568, 4375, 3799, 4537, 4979, 6206, 5341, 4030, 3516, 3396, 4236, 3795, 4956, 5220, 5466, 3369, 5798, 4984, 5569, 4376, 3800, 4538, 4980, 6207, 5342, 4031, 3517, 3397, 4237, 3796, 4957, 5221, 5467, 3370, 5799, 4985, 5570, 4377, 3801, 4539, 4981, 6208, 5343, 4032, 3518, 3398, 4238, 3797, 4958, 5222, 5468, 3371, 5800, 4986, 5571, 4378, 3802, 4540, 4982, 6209, 5344, 4033, 3519, 3399, 4239, 3798, 4959, 5223, 5469, 3372, 5801, 4987, 5572, 4379, 3803, 4541, 4983, 6210, 5345, 4034, 3520, 3400, 4240, 3799, 4960, 5224, 5470, 3373, 5802, 4988, 5573, 4380, 3804, 4542, 4984, 6211, 5346, 4035, 3521, 3401, 4241, 3800, 4961, 5225, 5471, 3374, 5803, 4989, 5574, 4381, 3805, 4543, 4985, 6212, 5347, 4036, 3522, 3402, 4242, 3801, 4962, 5226, 5472, 3375, 5804, 4990, 5575, 4382, 3806, 4544, 4986, 6213, 5348, 4037, 3523, 3403, 4243, 3802, 4963, 5227, 5473, 3376, 5805, 4991, 5576, 4383, 3807, 4545, 4987, 6214, 5349, 4038, 3524, 3404, 4244, 3803, 4964, 5228, 5474, 3377, 5806, 4992, 5577, 4384, 3808, 4546, 4988, 6215, 5350, 4039, 3525, 3405, 4245, 3804, 4965, 5229, 5475, 3378, 5807, 4993, 5578, 4385, 3809, 4547, 4989, 6216, 5351, 4040, 3526, 3406, 4246, 3805, 4966, 5230, 5476, 3379, 5808, 4994, 5579, 4386, 3810, 4548, 4990, 6217, 5352, 4041, 3527, 3407, 4247, 3806, 4967, 5231, 5477, 3380, 5809, 4995, 5580, 4387, 3811, 4549, 4991, 6218, 5353, 4042, 3528, 3408, 4248, 3807, 4968, 5232, 5478, 3381, 5810, 4996, 5581, 4388, 3812, 4550, 4992, 6219, 5354, 4043, 3529, 3409, 4249, 3808, 4969, 5233, 5479, 3382, 5811, 4997, 5582, 4389, 3813, 4551, 4993, 6220, 5355, 4044, 3530, 3410, 4250, 3809, 4970, 5234, 5480, 3383, 5812, 4998, 5583, 4390, 3814, 4552, 4994, 6221, 5356, 4045, 3531, 3411, 4251, 3810, 4971, 5235, 5481, 3384, 5813, 4999, 5584, 4391, 3815, 4553, 4995, 6222, 5357, 4046, 3532, 3412, 4252, 3811, 4972, 5236, 5482, 3385, 5814, 5000, 5585, 4392, 3816, 4554, 4996, 6223, 5358, 4047, 3533, 3413, 4253, 3812, 4973, 5237, 5483, 3386, 5815, 5001, 5586, 4393, 3817, 4555, 4997, 6224, 5359, 4048, 3534, 3414, 4254, 3813, 4974, 5238, 5484, 3387, 5816, 5002, 5587, 4394, 3818, 4556, 4998, 6225, 5360, 4049, 3535, 3415, 4255, 3814, 4975, 5239, 5485, 3388, 5817, 5003, 5588, 4395, 3819, 4557, 4999, 6226, 5361, 4050, 3536, 3416, 4256, 3815, 4976, 5240, 5486, 3389, 5818, 5004, 5589, 4396, 3820, 4558, 5000, 6227, 5362, 4051, 3537, 3417, 4257, 3816, 4977, 5241, 5487, 3390, 5819, 5005, 5590, 4397, 3821, 4559, 5001, 6228, 5363, 4052, 3538, 3418, 4258, 3817, 4978, 5242, 5488, 3391, 5820, 5006, 5591, 4398, 3822, 4560, 5002, 6229, 5364, 4053, 3539, 3419, 4259, 3818, 4979, 5243, 5489, 3392, 5821, 5007, 5592, 4399, 3823, 4561, 5003, 6230, 5365, 4054, 3540, 3420, 4260, 3819, 4980, 5244, 5490, 3393, 5822, 5008, 5593, 4400, 3824, 4562, 5004, 6231, 5366, 4055, 3541, 3421, 4261, 3820, 4981, 5245, 5491, 3394, 5823, 5009, 5594, 4401, 3825, 4563, 5005, 6232, 5367, 4056, 3542, 3422, 4262, 3821, 4982, 5246, 5492, 3395, 5824, 5010, 5595, 4402, 3826, 4564, 5006, 6233, 5368, 4057, 3543, 3423, 4263, 3822, 4983, 5247, 5493, 3396, 5825, 5011, 5596, 4403, 3827, 4565, 5007, 6234, 5369, 4058, 3544, 3424, 4264, 3823, 4984, 5248, 5494, 3397, 5826, 5012, 5597, 4404, 3828, 4566, 5008, 6235, 5370, 4059, 3545, 3425, 4265, 3824, 4985, 5249, 5495, 3398, 5827, 5013, 5598, 4405, 3829, 4567, 5009, 6236, 5371, 4060, 3546, 3426, 4266, 3825, 4986, 5250, 5496, 3399, 5828, 5014, 5599, 4406, 3830, 4568, 5010, 6237, 5372, 4061, 3547, 3427, 4267, 3826, 4987, 5251, 5497, 3400, 5829, 5015, 5600, 4407, 3831, 4569, 5011, 6238, 5373, 4062, 3548, 3428, 4268, 3827, 4988, 5252, 5498, 3401, 5830, 5016, 5601, 4408, 3832, 4570, 5012, 6239, 5374, 4063, 3549, 3429, 4269, 3828, 4989, 5253, 5499, 3402, 5831, 5017, 5602, 4409, 3833, 4571, 5013, 6240, 5375, 4064, 3550, 3430, 4270, 3829, 4990, 5254, 5500, 3403, 5832, 5018, 5603, 4410, 3834, 4572, 5014, 6241, 5376, 4065, 3551, 3431, 4271, 3830, 4991, 5255, 5501, 3404, 5833, 5019, 5604, 4411, 3835, 4573, 5015, 6242, 5377, 4066, 3552, 3432, 4272, 3831, 4992, 5256, 5502, 3405, 5834, 5020, 5605, 4412, 3836, 4574, 5016, 6243, 5378, 4067, 3553, 3433, 4273, 3832, 4993, 5257, 5503, 3406, 5835, 5021, 5606, 4413, 3837, 4575, 5017, 6244, 5379, 4068, 3554, 3434, 4274, 3833, 4994, 5258, 5504, 3407, 5836, 5022, 5607, 4414, 3838, 4576, 5018, 6245, 5380, 4069, 3555, 3435, 4275, 3834, 4995, 5259, 5505, 3408, 5837, 5023, 5608, 4415, 3839, 4577, 5019, 6246, 5381, 4070, 3556, 3436, 4276, 3835, 4996, 5260, 5506, 3409, 5838, 5024, 5609, 4416, 3840, 4578, 5020, 6247, 5382, 4071, 3557, 3437, 4277, 3836, 4997, 5261, 5507, 3410, 5839, 5025, 5610, 4417, 3841, 4579, 5021, 6248, 5383, 4072, 3558, 3438, 4278, 3837, 4998, 5262, 5508, 3411, 5840, 5026, 5611, 4418, 3842, 4580, 5022, 6249, 5384, 4073, 3559, 3439, 4279, 3838, 4999, 5263, 5509, 3412, 5841, 5027, 5612, 4419, 3843, 4581, 5023, 6250, 5385, 4074, 3560, 3440, 4280, 3839, 5000, 5264, 5510, 3413, 5842, 5028, 5613, 4420, 3844, 4582, 5024, 6251, 5386, 4075, 3561, 3441, 4281, 3840, 5001, 5265, 5511, 3414, 5843, 5029, 5614, 4421, 3845, 4583, 5025, 6252, 5387, 4076, 3562, 3442, 4282, 3841, 5002, 5266, 5512, 3415, 5844, 5030, 5615, 4422, 3846, 4584, 5026, 6253, 5388, 4077, 3563, 3443, 4283, 3842, 5003, 5267, 5513, 3416, 5845, 5031, 5616, 4423, 3847, 4585, 5027, 6254, 5389, 4078, 3564, 3444, 4284, 3843, 5004, 5268, 5514, 3417, 5846, 5032, 5617, 4424, 3848, 4586, 5028, 6255, 5390, 4079, 3565, 3445, 4285, 3844, 5005, 5269, 5515, 3418, 5847, 5033, 5618, 4425, 3849, 4587, 5029, 6256, 5391, 4080, 3566, 3446, 4286, 3845, 5006, 5270, 5516, 3419, 5848, 5034, 5619, 4426, 3850, 4588, 5030, 6257, 5392, 4081, 3567, 3447, 4287, 3846, 5007, 5271, 5517, 3420, 5849, 5035, 5620, 4427, 3851, 4589, 5031, 6258, 5393, 4082, 3568, 3448, 4288, 3847, 5008, 5272, 5518, 3421, 5850, 5036, 5621, 4428, 3852, 4590, 5032, 6259, 5394, 4083, 3569, 3449, 4289, 3848, 5009, 5273, 5519, 3422, 5851, 5037, 5622, 4429, 3853, 4591, 5033, 6260, 5395, 4084, 3570, 3450, 4290, 3849, 5010, 5274, 5520, 3423, 5852, 5038, 5623, 4430, 3854, 4592, 5034, 6261, 5396, 4085, 3571, 3451, 4291, 3850, 5011, 5275, 5521, 3424, 5853, 5039, 5624, 4431, 3855, 4593, 5035, 6262, 5397, 4086, 3572, 3452, 4292, 3851, 5012, 5276, 5522, 3425, 5854, 5040, 5625, 4432, 3856, 4594, 5036, 6263, 5398, 4087, 3573, 3453, 4293, 3852, 5013, 5277, 5523, 3426, 5855, 4681, 5626, 4433, 3857, 4595, 5037, 6264, 5399, 4088, 3574, 3454, 4294, 3853, 5014, 5278, 5524, 3427, 5856, 4682, 5627, 4434, 3858, 4596, 5038, 6265, 5400, 4089, 3575, 3455, 4295, 3854, 5015, 5279, 5525, 3428, 5857, 4683, 5628, 4435, 3859, 4597, 5039, 6266, 5041, 4090, 3576, 3456, 4296, 3855, 5016, 5280, 5526, 3429, 5858, 4684, 5629, 4436, 3860, 4598, 5040, 6267, 5042, 4091, 3577, 3457, 4297, 3856, 5017, 5281, 5527, 3430, 5859, 4685, 5630, 4437, 3861, 4599, 4681, 6268, 5043, 4092, 3578, 3458, 4298, 3857, 5018, 5282, 5528, 3431, 5860, 4686, 5631, 4438, 3862, 4600, 4682, 6269, 5044, 4093, 3579, 3459, 4299, 3858, 5019, 5283, 5529, 3432, 5861, 4687, 5632, 4439, 3863, 4601, 4683, 6270, 5045, 4094, 3580, 3460, 4300, 3859, 5020, 5284, 5530, 3433, 5862, 4688, 5633, 4440, 3864, 4602, 4684, 6271, 5046, 4095, 3581, 3461, 4301, 3860, 5021, 5285, 5531, 3434, 5863, 4689, 5634, 4441, 3865, 4603, 4685, 6272, 5047, 4096, 3582, 3462, 4302, 3861, 5022, 5286, 5532, 3435, 5864, 4690, 5635, 4442, 3866, 4604, 4686, 6273, 5048, 4097, 3583, 3463, 4303, 3862, 5023, 5287, 5533, 3436, 5865, 4691, 5636, 4443, 3867, 4605, 4687, 6274, 5049, 4098, 3584, 3464, 4304, 3863, 5024, 5288, 5534, 3437, 5866, 4692, 5637, 4444, 3868, 4606, 4688, 6275, 5050, 4099, 3585, 3465, 4305, 3864, 5025, 5289, 5535, 3438, 5867, 4693, 5638, 4445, 3869, 4607, 4689, 6276, 5051, 4100, 3586, 3466, 4306, 3865, 5026, 5290, 5536, 3439, 5868, 4694, 5639, 4446, 3870, 4608, 4690, 6277, 5052, 4101, 3587, 3467, 4307, 3866, 5027, 5291, 5537, 3440, 5869, 4695, 5640, 4447, 3871, 4609, 4691, 6278, 5053, 4102, 3588, 3468, 4308, 3867, 5028, 5292, 5538, 3441, 5870, 4696, 5641, 4448, 3872, 4610, 4692, 6279, 5054, 4103, 3589, 3469, 4309, 3868, 5029, 5293, 5539, 3442, 5871, 4697, 5642, 4449, 3873, 4611, 4693, 6280, 5055, 4104, 3590, 3470, 4310, 3869, 5030, 5294, 5540, 3443, 5872, 4698, 5643, 4450, 3874, 4612, 4694, 6281, 5056, 4105, 3591, 3471, 4311, 3870, 5031, 5295, 5541, 3444, 5873, 4699, 5644, 4451, 3875, 4613, 4695, 6282, 5057, 4106, 3592, 3472, 4312, 3871, 5032, 5296, 5542, 3445, 5874, 4700, 5645, 4452, 3876, 4614, 4696, 6283, 5058, 4107, 3593, 3473, 4313, 3872, 5033, 5297, 5543, 3446, 5875, 4701, 5646, 4453, 3877, 4615, 4697, 6284, 5059, 4108, 3594, 3474, 4314, 3873, 5034, 5298, 5544, 3447, 5876, 4702, 5647, 4454, 3878, 4616, 4698, 6285, 5060, 4109, 3595, 3475, 4315, 3874, 5035, 5299, 5545, 3448, 5877, 4703, 5648, 4455, 3879, 4617, 4699, 6286, 5061, 4110, 3596, 3476, 4316, 3875, 5036, 5300, 5546, 3449, 5878, 4704, 5649, 4456, 3880, 4618, 4700, 6287, 5062, 4111, 3597, 3477, 4317, 3876, 5037, 5301, 5547, 3450, 5879, 4705, 5650, 4457, 3881, 4619, 4701, 6288, 5063, 4112, 3598, 3478, 4318, 3877, 5038, 5302, 5548, 3451, 5880, 4706, 5651, 4458, 3882, 4620, 4702, 6289, 5064, 4113, 3599, 3479, 4319, 3878, 5039, 5303, 5549, 3452, 5881, 4707, 5652, 4459, 3883, 4621, 4703, 6290, 5065, 4114, 3600, 3480, 4320, 3879, 5040, 5304, 5550, 3453, 5882, 4708, 5653, 4460, 3884, 4622, 4704, 6291, 5066, 4115, 4182, 3601, 6068, 4321, 6165, 5305, 5551, 5761, 6121, 6481, 6841, 7201, 7561, 7343, 6827, 8641, 8783, 6929, 4183, 3602, 6069, 4322, 6166, 5306, 5552, 5762, 6122, 6482, 6842, 7202, 7562, 7344, 6828, 8642, 8784, 6930, 4184, 3603, 6070, 4323, 6167, 5307, 5553, 5763, 6123, 6483, 6843, 7203, 7563, 7345, 6829, 8643, 8785, 6931, 4185, 3604, 6071, 4324, 6168, 5308, 5554, 5764, 6124, 6484, 6844, 7204, 7564, 7346, 6830, 8644, 8786, 6932, 4186, 3605, 6072, 4325, 6169, 5309, 5555, 5765, 6125, 6485, 6845, 7205, 7565, 7347, 6831, 8645, 8787, 6933, 4187, 3606, 6073, 4326, 6170, 5310, 5556, 5766, 6126, 6486, 6846, 7206, 7566, 7348, 6832, 8646, 8788, 6934, 4188, 3607, 6074, 4327, 6171, 5311, 5557, 5767, 6127, 6487, 6847, 7207, 7567, 7349, 6833, 8647, 8789, 6935, 4189, 3608, 6075, 4328, 6172, 5312, 5558, 5768, 6128, 6488, 6848, 7208, 7568, 7350, 6834, 8648, 8790, 6936, 4190, 3609, 6076, 4329, 6173, 5313, 5559, 5769, 6129, 6489, 6849, 7209, 7569, 7351, 6835, 8649, 8791, 6937, 4191, 3610, 6077, 4330, 6174, 5314, 5560, 5770, 6130, 6490, 6850, 7210, 7570, 7352, 6836, 8650, 8792, 6938, 4192, 3611, 6078, 4331, 6175, 5315, 5561, 5771, 6131, 6491, 6851, 7211, 7571, 7353, 6837, 8651, 8793, 6939, 4193, 3612, 6079, 4332, 6176, 5316, 5562, 5772, 6132, 6492, 6852, 7212, 7572, 7354, 6838, 8652, 8794, 6940, 4194, 3613, 6080, 4333, 6177, 5317, 5563, 5773, 6133, 6493, 6853, 7213, 7573, 7355, 6839, 8653, 8795, 6941, 4195, 3614, 6081, 4334, 6178, 5318, 5564, 5774, 6134, 6494, 6854, 7214, 7574, 7356, 6840, 8654, 8796, 6942, 4196, 3615, 6082, 4335, 6179, 5319, 5565, 5775, 6135, 6495, 6855, 7215, 7575, 7357, 6481, 8655, 8797, 6943, 4197, 3616, 6083, 4336, 6180, 5320, 5566, 5776, 6136, 6496, 6856, 7216, 7576, 7358, 6482, 8656, 8798, 6944, 4198, 3617, 6084, 4337, 6181, 5321, 5567, 5777, 6137, 6497, 6857, 7217, 7577, 7359, 6483, 8657, 8799, 6945, 4199, 3618, 6085, 4338, 6182, 5322, 5568, 5778, 6138, 6498, 6858, 7218, 7578, 7360, 6484, 8658, 8800, 6946, 4200, 3619, 6086, 4339, 6183, 5323, 5569, 5779, 6139, 6499, 6859, 7219, 7579, 7361, 6485, 8659, 8801, 6947, 4201, 3620, 6087, 4340, 6184, 5324, 5570, 5780, 6140, 6500, 6860, 7220, 7580, 7362, 6486, 8660, 8802, 6948, 4202, 3621, 6088, 4341, 6185, 5325, 5571, 5781, 6141, 6501, 6861, 7221, 7581, 7363, 6487, 8661, 8803, 6949, 4203, 3622, 6089, 4342, 6186, 5326, 5572, 5782, 6142, 6502, 6862, 7222, 7582, 7364, 6488, 8662, 8804, 6950, 4204, 3623, 6090, 4343, 6187, 5327, 5573, 5783, 6143, 6503, 6863, 7223, 7583, 7365, 6489, 8663, 8805, 6951, 4205, 3624, 6091, 4344, 6188, 5328, 5574, 5784, 6144, 6504, 6864, 7224, 7584, 7366, 6490, 8664, 8806, 6952, 4206, 3625, 6092, 4345, 6189, 5329, 5575, 5785, 6145, 6505, 6865, 7225, 7585, 7367, 6491, 8665, 8807, 6953, 4207, 3626, 6093, 4346, 6190, 5330, 5576, 5786, 6146, 6506, 6866, 7226, 7586, 7368, 6492, 8666, 8808, 6954, 4208, 3627, 6094, 4347, 6191, 5331, 5577, 5787, 6147, 6507, 6867, 7227, 7587, 7369, 6493, 8667, 8809, 6955, 4209, 3628, 6095, 4348, 6192, 5332, 5578, 5788, 6148, 6508, 6868, 7228, 7588, 7370, 6494, 8668, 8810, 6956, 4210, 3629, 6096, 4349, 6193, 5333, 5579, 5789, 6149, 6509, 6869, 7229, 7589, 7371, 6495, 8669, 8811, 6957, 4211, 3630, 6097, 4350, 6194, 5334, 5580, 5790, 6150, 6510, 6870, 7230, 7590, 7372, 6496, 8670, 8812, 6958, 4212, 3631, 6098, 4351, 6195, 5335, 5581, 5791, 6151, 6511, 6871, 7231, 7591, 7373, 6497, 8671, 8813, 6959, 4213, 3632, 6099, 4352, 6196, 5336, 5582, 5792, 6152, 6512, 6872, 7232, 7592, 7374, 6498, 8672, 8814, 6960, 4214, 3633, 6100, 4353, 6197, 5337, 5583, 5793, 6153, 6513, 6873, 7233, 7593, 7375, 6499, 8673, 8815, 6961, 4215, 3634, 6101, 4354, 6198, 5338, 5584, 5794, 6154, 6514, 6874, 7234, 7594, 7376, 6500, 8674, 8816, 6962, 4216, 3635, 6102, 4355, 6199, 5339, 5585, 5795, 6155, 6515, 6875, 7235, 7595, 7377, 6501, 8675, 8817, 6963, 4217, 3636, 6103, 4356, 6200, 5340, 5586, 5796, 6156, 6516, 6876, 7236, 7596, 7378, 6502, 8676, 8818, 6964, 4218, 3637, 6104, 4357, 6201, 5341, 5587, 5797, 6157, 6517, 6877, 7237, 7597, 7379, 6503, 8677, 8819, 6965, 4219, 3638, 6105, 4358, 6202, 5342, 5588, 5798, 6158, 6518, 6878, 7238, 7598, 7380, 6504, 8678, 8820, 6966, 4220, 3639, 6106, 4359, 6203, 5343, 5589, 5799, 6159, 6519, 6879, 7239, 7599, 7381, 6505, 8679, 8821, 6967, 4221, 3640, 6107, 4360, 6204, 5344, 5590, 5800, 6160, 6520, 6880, 7240, 7600, 7382, 6506, 8680, 8822, 6968, 4222, 3641, 6108, 4361, 6205, 5345, 5591, 5801, 6161, 6521, 6881, 7241, 7601, 7383, 6507, 8681, 8823, 6969, 4223, 3642, 6109, 4362, 6206, 5346, 5592, 5802, 6162, 6522, 6882, 7242, 7602, 7384, 6508, 8682, 8824, 6970, 4224, 3643, 6110, 4363, 6207, 5347, 5593, 5803, 6163, 6523, 6883, 7243, 7603, 7385, 6509, 8683, 8825, 6971, 4225, 3644, 6111, 4364, 6208, 5348, 5594, 5804, 6164, 6524, 6884, 7244, 7604, 7386, 6510, 8684, 8826, 6972, 4226, 3645, 6112, 4365, 6209, 5349, 5595, 5805, 6165, 6525, 6885, 7245, 7605, 7387, 6511, 8685, 8827, 6973, 4227, 3646, 6113, 4366, 6210, 5350, 5596, 5806, 6166, 6526, 6886, 7246, 7606, 7388, 6512, 8686, 8828, 6974, 4228, 3647, 6114, 4367, 6211, 5351, 5597, 5807, 6167, 6527, 6887, 7247, 7607, 7389, 6513, 8687, 8829, 6975, 4229, 3648, 6115, 4368, 6212, 5352, 5598, 5808, 6168, 6528, 6888, 7248, 7608, 7390, 6514, 8688, 8830, 6976, 4230, 3649, 6116, 4369, 6213, 5353, 5599, 5809, 6169, 6529, 6889, 7249, 7609, 7391, 6515, 8689, 8831, 6977, 4231, 3650, 6117, 4370, 6214, 5354, 5600, 5810, 6170, 6530, 6890, 7250, 7610, 7392, 6516, 8690, 8832, 6978, 4232, 3651, 6118, 4371, 6215, 5355, 5601, 5811, 6171, 6531, 6891, 7251, 7611, 7393, 6517, 8691, 8833, 6979, 4233, 3652, 6119, 4372, 6216, 5356, 5602, 5812, 6172, 6532, 6892, 7252, 7612, 7394, 6518, 8692, 8834, 6980, 4234, 3653, 6120, 4373, 6217, 5357, 5603, 5813, 6173, 6533, 6893, 7253, 7613, 7395, 6519, 8693, 8835, 6981, 4235, 3654, 5761, 4374, 6218, 5358, 5604, 5814, 6174, 6534, 6894, 7254, 7614, 7396, 6520, 8694, 8836, 6982, 4236, 3655, 5762, 4375, 6219, 5359, 5605, 5815, 6175, 6535, 6895, 7255, 7615, 7397, 6521, 8695, 8837, 6983, 4237, 3656, 5763, 4376, 6220, 5360, 5606, 5816, 6176, 6536, 6896, 7256, 7616, 7398, 6522, 8696, 8838, 6984, 4238, 3657, 5764, 4377, 6221, 5361, 5607, 5817, 6177, 6537, 6897, 7257, 7617, 7399, 6523, 8697, 8839, 6985, 4239, 3658, 5765, 4378, 6222, 5362, 5608, 5818, 6178, 6538, 6898, 7258, 7618, 7400, 6524, 8698, 8840, 6986, 4240, 3659, 5766, 4379, 6223, 5363, 5609, 5819, 6179, 6539, 6899, 7259, 7619, 7401, 6525, 8699, 8841, 6987, 4241, 3660, 5767, 4380, 6224, 5364, 5610, 5820, 6180, 6540, 6900, 7260, 7620, 7402, 6526, 8700, 8842, 6988, 4242, 3661, 5768, 4381, 6225, 5365, 5611, 5821, 6181, 6541, 6901, 7261, 7621, 7403, 6527, 8701, 8843, 6989, 4243, 3662, 5769, 4382, 6226, 5366, 5612, 5822, 6182, 6542, 6902, 7262, 7622, 7404, 6528, 8702, 8844, 6990, 4244, 3663, 5770, 4383, 6227, 5367, 5613, 5823, 6183, 6543, 6903, 7263, 7623, 7405, 6529, 8703, 8845, 6991, 4245, 3664, 5771, 4384, 6228, 5368, 5614, 5824, 6184, 6544, 6904, 7264, 7624, 7406, 6530, 8704, 8846, 6992, 4246, 3665, 5772, 4385, 6229, 5369, 5615, 5825, 6185, 6545, 6905, 7265, 7625, 7407, 6531, 8705, 8847, 6993, 4247, 3666, 5773, 4386, 6230, 5370, 5616, 5826, 6186, 6546, 6906, 7266, 7626, 7408, 6532, 8706, 8848, 6994, 4248, 3667, 5774, 4387, 6231, 5371, 5617, 5827, 6187, 6547, 6907, 7267, 7627, 7409, 6533, 8707, 8849, 6995, 4249, 3668, 5775, 4388, 6232, 5372, 5618, 5828, 6188, 6548, 6908, 7268, 7628, 7410, 6534, 8708, 8850, 6996, 4250, 3669, 5776, 4389, 6233, 5373, 5619, 5829, 6189, 6549, 6909, 7269, 7629, 7411, 6535, 8709, 8851, 6997, 4251, 3670, 5777, 4390, 6234, 5374, 5620, 5830, 6190, 6550, 6910, 7270, 7630, 7412, 6536, 8710, 8852, 6998, 4252, 3671, 5778, 4391, 6235, 5375, 5621, 5831, 6191, 6551, 6911, 7271, 7631, 7413, 6537, 8711, 8853, 6999, 4253, 3672, 5779, 4392, 6236, 5376, 5622, 5832, 6192, 6552, 6912, 7272, 7632, 7414, 6538, 8712, 8854, 7000, 4254, 3673, 5780, 4393, 6237, 5377, 5623, 5833, 6193, 6553, 6913, 7273, 7633, 7415, 6539, 8713, 8855, 7001, 4255, 3674, 5781, 4394, 6238, 5378, 5624, 5834, 6194, 6554, 6914, 7274, 7634, 7416, 6540, 8714, 8856, 7002, 4256, 3675, 5782, 4395, 6239, 5379, 5625, 5835, 6195, 6555, 6915, 7275, 7635, 7417, 6541, 8715, 8857, 7003, 4257, 3676, 5783, 4396, 6240, 5380, 5626, 5836, 6196, 6556, 6916, 7276, 7636, 7418, 6542, 8716, 8858, 7004, 4258, 3677, 5784, 4397, 6241, 5381, 5627, 5837, 6197, 6557, 6917, 7277, 7637, 7419, 6543, 8717, 8859, 7005, 4259, 3678, 5785, 4398, 6242, 5382, 5628, 5838, 6198, 6558, 6918, 7278, 7638, 7420, 6544, 8718, 8860, 7006, 4260, 3679, 5786, 4399, 6243, 5383, 5629, 5839, 6199, 6559, 6919, 7279, 7639, 7421, 6545, 8719, 8861, 7007, 4261, 3680, 5787, 4400, 6244, 5384, 5630, 5840, 6200, 6560, 6920, 7280, 7640, 7422, 6546, 8720, 8862, 7008, 4262, 3681, 5788, 4401, 6245, 5385, 5631, 5841, 6201, 6561, 6921, 7281, 7641, 7423, 6547, 8721, 8863, 7009, 4263, 3682, 5789, 4402, 6246, 5386, 5632, 5842, 6202, 6562, 6922, 7282, 7642, 7424, 6548, 8722, 8864, 7010, 4264, 3683, 5790, 4403, 6247, 5387, 5633, 5843, 6203, 6563, 6923, 7283, 7643, 7425, 6549, 8723, 8865, 7011, 4265, 3684, 5791, 4404, 6248, 5388, 5634, 5844, 6204, 6564, 6924, 7284, 7644, 7426, 6550, 8724, 8866, 7012, 4266, 3685, 5792, 4405, 6249, 5389, 5635, 5845, 6205, 6565, 6925, 7285, 7645, 7427, 6551, 8725, 8867, 7013, 4267, 3686, 5793, 4406, 6250, 5390, 5636, 5846, 6206, 6566, 6926, 7286, 7646, 7428, 6552, 8726, 8868, 7014, 4268, 3687, 5794, 4407, 6251, 5391, 5637, 5847, 6207, 6567, 6927, 7287, 7647, 7429, 6553, 8727, 8869, 7015, 4269, 3688, 5795, 4408, 6252, 5392, 5638, 5848, 6208, 6568, 6928, 7288, 7648, 7430, 6554, 8728, 8870, 7016, 4270, 3689, 5796, 4409, 6253, 5393, 5639, 5849, 6209, 6569, 6929, 7289, 7649, 7431, 6555, 8729, 8871, 7017, 4271, 3690, 5797, 4410, 6254, 5394, 5640, 5850, 6210, 6570, 6930, 7290, 7650, 7432, 6556, 8730, 8872, 7018, 4272, 3691, 5798, 4411, 6255, 5395, 5641, 5851, 6211, 6571, 6931, 7291, 7651, 7433, 6557, 8731, 8873, 7019, 4273, 3692, 5799, 4412, 6256, 5396, 5642, 5852, 6212, 6572, 6932, 7292, 7652, 7434, 6558, 8732, 8874, 7020, 4274, 3693, 5800, 4413, 6257, 5397, 5643, 5853, 6213, 6573, 6933, 7293, 7653, 7435, 6559, 8733, 8875, 7021, 4275, 3694, 5801, 4414, 6258, 5398, 5644, 5854, 6214, 6574, 6934, 7294, 7654, 7436, 6560, 8734, 8876, 7022, 4276, 3695, 5802, 4415, 6259, 5399, 5645, 5855, 6215, 6575, 6935, 7295, 7655, 7437, 6561, 8735, 8877, 7023, 4277, 3696, 5803, 4416, 6260, 5400, 5646, 5856, 6216, 6576, 6936, 7296, 7656, 7438, 6562, 8736, 8878, 7024, 4278, 3697, 5804, 4417, 6261, 5137, 5647, 5857, 6217, 6577, 6937, 7297, 7657, 7439, 6563, 8737, 8879, 7025, 4279, 3698, 5805, 4418, 6262, 5138, 5648, 5858, 6218, 6578, 6938, 7298, 7658, 7440, 6564, 8738, 8880, 7026, 4280, 3699, 5806, 4419, 6263, 5139, 5649, 5859, 6219, 6579, 6939, 7299, 7659, 7441, 6565, 8739, 8881, 7027, 4281, 3700, 5807, 4420, 6264, 5140, 5650, 5860, 6220, 6580, 6940, 7300, 7660, 7442, 6566, 8740, 8882, 7028, 4282, 3701, 5808, 4421, 6265, 5141, 5651, 5861, 6221, 6581, 6941, 7301, 7661, 7443, 6567, 8741, 8883, 7029, 4283, 3702, 5809, 4422, 6266, 5142, 5652, 5862, 6222, 6582, 6942, 7302, 7662, 7444, 6568, 8742, 8884, 7030, 4284, 3703, 5810, 4423, 6267, 5143, 5653, 5863, 6223, 6583, 6943, 7303, 7663, 7445, 6569, 8743, 8885, 7031, 4285, 3704, 5811, 4424, 6268, 5144, 5654, 5864, 6224, 6584, 6944, 7304, 7664, 7446, 6570, 8744, 8886, 7032, 4286, 3705, 5812, 4425, 6269, 5145, 5655, 5865, 6225, 6585, 6945, 7305, 7665, 7447, 6571, 8745, 8887, 7033, 4287, 3706, 5813, 4426, 6270, 5146, 5656, 5866, 6226, 6586, 6946, 7306, 7666, 7448, 6572, 8746, 8888, 7034, 4288, 3707, 5814, 4427, 6271, 5147, 5657, 5867, 6227, 6587, 6947, 7307, 7667, 7449, 6573, 8747, 8889, 7035, 4289, 3708, 5815, 4428, 6272, 5148, 5658, 5868, 6228, 6588, 6948, 7308, 7668, 7450, 6574, 8748, 8890, 7036, 4290, 3709, 5816, 4429, 6273, 5149, 5659, 5869, 6229, 6589, 6949, 7309, 7669, 7451, 6575, 8749, 8891, 7037, 4291, 3710, 5817, 4430, 6274, 5150, 5660, 5870, 6230, 6590, 6950, 7310, 7670, 7452, 6576, 8750, 8892, 7038, 4292, 3711, 5818, 4431, 6275, 5151, 5661, 5871, 6231, 6591, 6951, 7311, 7671, 7453, 6577, 8751, 8893, 7039, 4293, 3712, 5819, 4432, 6276, 5152, 5662, 5872, 6232, 6592, 6952, 7312, 7672, 7454, 6578, 8752, 8894, 7040, 4294, 3713, 5820, 4433, 6277, 5153, 5663, 5873, 6233, 6593, 6953, 7313, 7673, 7455, 6579, 8753, 8895, 7041, 4295, 3714, 5821, 4434, 6278, 5154, 5664, 5874, 6234, 6594, 6954, 7314, 7674, 7456, 6580, 8754, 8896, 7042, 4296, 3715, 5822, 4435, 6279, 5155, 5665, 5875, 6235, 6595, 6955, 7315, 7675, 7457, 6581, 8755, 8897, 7043, 4297, 3716, 5823, 4436, 6280, 5156, 5666, 5876, 6236, 6596, 6956, 7316, 7676, 7458, 6582, 8756, 8898, 7044, 4298, 3717, 5824, 4437, 6281, 5157, 5667, 5877, 6237, 6597, 6957, 7317, 7677, 7459, 6583, 8757, 8899, 7045, 4299, 3718, 5825, 4438, 6282, 5158, 5668, 5878, 6238, 6598, 6958, 7318, 7678, 7460, 6584, 8758, 8900, 7046, 4300, 3719, 5826, 4439, 6283, 5159, 5669, 5879, 6239, 6599, 6959, 7319, 7679, 7461, 6585, 8759, 8901, 7047, 4301, 3720, 5827, 4440, 6284, 5160, 5670, 5880, 6240, 6600, 6960, 7320, 7680, 7462, 6586, 8760, 8902, 7048, 4302, 3721, 5828, 4441, 6285, 5161, 5671, 5881, 6241, 6601, 6961, 7321, 7681, 7463, 6587, 8761, 8903, 7049, 4303, 3722, 5829, 4442, 6286, 5162, 5672, 5882, 6242, 6602, 6962, 7322, 7682, 7464, 6588, 8762, 8904, 7050, 4304, 3723, 5830, 4443, 6287, 5163, 5673, 5883, 6243, 6603, 6963, 7323, 7683, 7465, 6589, 8763, 8905, 7051, 4305, 3724, 5831, 4444, 6288, 5164, 5674, 5884, 6244, 6604, 6964, 7324, 7684, 7466, 6590, 8764, 8906, 7052, 4306, 3725, 5832, 4445, 6289, 5165, 5675, 5885, 6245, 6605, 6965, 7325, 7685, 7467, 6591, 8765, 8907, 7053, 4307, 3726, 5833, 4446, 6290, 5166, 5676, 5886, 6246, 6606, 6966, 7326, 7686, 7468, 6592, 8766, 8908, 7054, 4308, 3727, 5834, 4447, 6291, 5167, 5677, 5887, 6247, 6607, 6967, 7327, 7687, 7469, 6593, 8767, 8909, 7055, 4309, 3728, 5835, 4448, 6292, 5168, 5678, 5888, 6248, 6608, 6968, 7328, 7688, 7470, 6594, 8768, 8910, 7056, 4310, 3729, 5836, 4449, 6293, 5169, 5679, 5889, 6249, 6609, 6969, 7329, 7689, 7471, 6595, 8769, 8911, 7057, 4311, 3730, 5837, 4450, 6294, 5170, 5680, 5890, 6250, 6610, 6970, 7330, 7690, 7472, 6596, 8770, 8912, 7058, 4312, 3731, 5838, 4451, 6295, 5171, 5681, 5891, 6251, 6611, 6971, 7331, 7691, 7473, 6597, 8771, 8913, 7059, 4313, 3732, 5839, 4452, 6296, 5172, 5682, 5892, 6252, 6612, 6972, 7332, 7692, 7474, 6598, 8772, 8914, 7060, 4314, 3733, 5840, 4453, 6297, 5173, 5683, 5893, 6253, 6613, 6973, 7333, 7693, 7475, 6599, 8773, 8915, 7061, 4315, 3734, 5841, 4454, 6298, 5174, 5684, 5894, 6254, 6614, 6974, 7334, 7694, 7476, 6600, 8774, 8916, 7062, 4316, 3735, 5842, 4455, 6299, 5175, 5685, 5895, 6255, 6615, 6975, 7335, 7695, 7477, 6601, 8775, 8917, 7063, 4317, 3736, 5843, 4456, 6300, 5176, 5686, 5896, 6256, 6616, 6976, 7336, 7696, 7478, 6602, 8776, 8918, 7064, 4318, 3737, 5844, 4457, 6301, 5177, 5687, 5897, 6257, 6617, 6977, 7337, 7697, 7479, 6603, 8777, 8919, 7065, 4319, 3738, 5845, 4458, 6302, 5178, 5688, 5898, 6258, 6618, 6978, 7338, 7698, 7480, 6604, 8778, 8920, 7066, 4320, 3739, 5846, 4459, 6303, 5179, 5689, 5899, 6259, 6619, 6979, 7339, 7699, 7481, 6605, 8779, 8921, 7067, 3961, 3740, 5847, 4460, 6304, 5180, 5690, 5900, 6260, 6620, 6980, 7340, 7700, 7482, 6606, 8780, 8922, 7068, 3962, 3741, 5848, 4461, 6305, 5181, 5691, 5901, 6261, 6621, 6981, 7341, 7701, 7483, 6607, 8781, 8923, 7069, 3963, 3742, 5849, 4462, 6306, 5182, 5692, 5902, 6262, 6622, 6982, 7342, 7702, 7484, 6608, 8782, 8924, 7070, 3964, 3743, 5850, 4463, 6307, 5183, 5693, 5903, 6263, 6623, 6983, 7343, 7703, 7485, 6609, 8783, 8925, 7071, 3965, 3744, 5851, 4464, 6308, 5184, 5694, 5904, 6264, 6624, 6984, 7344, 7704, 7486, 6610, 8784, 8926, 7072, 3966, 3745, 5852, 4465, 6309, 5185, 5695, 5905, 6265, 6625, 6985, 7345, 7705, 7487, 6611, 8785, 8927, 7073, 3967, 3746, 5853, 4466, 6310, 5186, 5696, 5906, 6266, 6626, 6986, 7346, 7706, 7488, 6612, 8786, 8928, 7074, 3968, 3747, 5854, 4467, 6311, 5187, 5697, 5907, 6267, 6627, 6987, 7347, 7707, 7489, 6613, 8787, 8929, 7075, 3969, 3748, 5855, 4468, 6312, 5188, 5698, 5908, 6268, 6628, 6988, 7348, 7708, 7490, 6614, 8788, 8930, 7076, 3970, 3749, 5856, 4469, 6313, 5189, 5699, 5909, 6269, 6629, 6989, 7349, 7709, 7491, 6615, 8789, 8931, 7077, 3971, 3750, 5857, 4470, 6314, 5190, 5700, 5910, 6270, 6630, 6990, 7350, 7710, 7492, 6616, 8790, 8932, 7078, 3972, 3751, 5858, 4471, 6315, 5191, 5701, 5911, 6271, 6631, 6991, 7351, 7711, 7493, 6617, 8791, 8933, 7079, 3973, 3752, 5859, 4472, 6316, 5192, 5702, 5912, 6272, 6632, 6992, 7352, 7712, 7494, 6618, 8792, 8934, 7080, 3974, 3753, 5860, 4473, 6317, 5193, 5703, 5913, 6273, 6633, 6993, 7353, 7713, 7495, 6619, 8793, 8935, 7081, 3975, 3754, 5861, 4474, 6318, 5194, 5704, 5914, 6274, 6634, 6994, 7354, 7714, 7496, 6620, 8794, 8936, 7082, 3976, 3755, 5862, 4475, 6319, 5195, 5705, 5915, 6275, 6635, 6995, 7355, 7715, 7497, 6621, 8795, 8937, 7083, 3977, 3756, 5863, 4476, 6320, 5196, 5706, 5916, 6276, 6636, 6996, 7356, 7716, 7498, 6622, 8796, 8938, 7084, 3978, 3757, 5864, 4477, 6321, 5197, 5707, 5917, 6277, 6637, 6997, 7357, 7717, 7499, 6623, 8797, 8939, 7085, 3979, 3758, 5865, 4478, 6322, 5198, 5708, 5918, 6278, 6638, 6998, 7358, 7718, 7500, 6624, 8798, 8940, 7086, 3980, 3759, 5866, 4479, 6323, 5199, 5709, 5919, 6279, 6639, 6999, 7359, 7719, 7501, 6625, 8799, 8941, 7087, 3981, 3760, 5867, 4480, 6324, 5200, 5710, 5920, 6280, 6640, 7000, 7360, 7720, 7502, 6626, 8800, 8942, 7088, 3982, 3761, 5868, 4481, 6325, 5201, 5711, 5921, 6281, 6641, 7001, 7361, 7721, 7503, 6627, 8801, 8943, 7089, 3983, 3762, 5869, 4482, 6326, 5202, 5712, 5922, 6282, 6642, 7002, 7362, 7722, 7504, 6628, 8802, 8944, 7090, 3984, 3763, 5870, 4483, 6327, 5203, 5713, 5923, 6283, 6643, 7003, 7363, 7723, 7505, 6629, 8803, 8945, 7091, 3985, 3764, 5871, 4484, 6328, 5204, 5714, 5924, 6284, 6644, 7004, 7364, 7724, 7506, 6630, 8804, 8946, 7092, 3986, 3765, 5872, 4485, 6329, 5205, 5715, 5925, 6285, 6645, 7005, 7365, 7725, 7507, 6631, 8805, 8947, 7093, 3987, 3766, 5873, 4486, 6330, 5206, 5716, 5926, 6286, 6646, 7006, 7366, 7726, 7508, 6632, 8806, 8948, 7094, 3988, 3767, 5874, 4487, 6331, 5207, 5717, 5927, 6287, 6647, 7007, 7367, 7727, 7509, 6633, 8807, 8949, 7095, 3989, 3768, 5875, 4488, 6332, 5208, 5718, 5928, 6288, 6648, 7008, 7368, 7728, 7510, 6634, 8808, 8950, 7096, 3990, 3769, 5876, 4489, 6333, 5209, 5719, 5929, 6289, 6649, 7009, 7369, 7729, 7511, 6635, 8809, 8951, 7097, 3991, 3770, 5877, 4490, 6334, 5210, 5720, 5930, 6290, 6650, 7010, 7370, 7730, 7512, 6636, 8810, 8952, 7098, 3992, 3771, 5878, 4491, 6335, 5211, 5721, 5931, 6291, 6651, 7011, 7371, 7731, 7513, 6637, 8811, 8953, 7099, 3993, 3772, 5879, 4492, 6336, 5212, 5722, 5932, 6292, 6652, 7012, 7372, 7732, 7514, 6638, 8812, 8954, 7100, 3994, 3773, 5880, 4493, 6337, 5213, 5723, 5933, 6293, 6653, 7013, 7373, 7733, 7515, 6639, 8813, 8955, 7101, 3995, 3774, 5881, 4494, 6338, 5214, 5724, 5934, 6294, 6654, 7014, 7374, 7734, 7516, 6640, 8814, 8956, 7102, 3996, 3775, 5882, 4495, 6339, 5215, 5725, 5935, 6295, 6655, 7015, 7375, 7735, 7517, 6641, 8815, 8957, 7103, 3997, 3776, 5883, 4496, 6340, 5216, 5726, 5936, 6296, 6656, 7016, 7376, 7736, 7518, 6642, 8816, 8958, 7104, 3998, 3777, 5884, 4497, 6341, 5217, 5727, 5937, 6297, 6657, 7017, 7377, 7737, 7519, 6643, 8817, 8959, 7105, 3999, 3778, 5885, 4498, 6342, 5218, 5728, 5938, 6298, 6658, 7018, 7378, 7738, 7520, 6644, 8818, 8960, 7106, 4000, 3779, 5886, 4499, 6343, 5219, 5729, 5939, 6299, 6659, 7019, 7379, 7739, 7521, 6645, 8819, 8961, 7107, 4001, 3780, 5887, 4500, 6344, 5220, 5730, 5940, 6300, 6660, 7020, 7380, 7740, 7522, 6646, 8820, 8962, 7108, 4002, 3781, 5888, 4501, 6345, 5221, 5731, 5941, 6301, 6661, 7021, 7381, 7741, 7523, 6647, 8821, 8963, 7109, 4003, 3782, 5889, 4502, 6346, 5222, 5732, 5942, 6302, 6662, 7022, 7382, 7742, 7524, 6648, 8822, 8964, 7110, 4004, 3783, 5890, 4503, 6347, 5223, 5733, 5943, 6303, 6663, 7023, 7383, 7743, 7525, 6649, 8823, 8965, 7111, 4005, 3784, 5891, 4504, 6348, 5224, 5734, 5944, 6304, 6664, 7024, 7384, 7744, 7526, 6650, 8824, 8966, 7112, 4006, 3785, 5892, 4505, 6349, 5225, 5735, 5945, 6305, 6665, 7025, 7385, 7745, 7527, 6651, 8825, 8967, 7113, 4007, 3786, 5893, 4506, 6350, 5226, 5736, 5946, 6306, 6666, 7026, 7386, 7746, 7528, 6652, 8826, 8968, 7114, 4008, 3787, 5894, 4507, 6351, 5227, 5737, 5947, 6307, 6667, 7027, 7387, 7747, 7529, 6653, 8827, 8969, 7115, 4009, 3788, 5895, 4508, 6352, 5228, 5738, 5948, 6308, 6668, 7028, 7388, 7748, 7530, 6654, 8828, 8970, 7116, 4010, 3789, 5896, 4509, 6353, 5229, 5739, 5949, 6309, 6669, 7029, 7389, 7749, 7531, 6655, 8829, 8971, 7117, 4011, 3790, 5897, 4510, 6354, 5230, 5740, 5950, 6310, 6670, 7030, 7390, 7750, 7532, 6656, 8830, 8972, 7118, 4012, 3791, 5898, 4511, 6355, 5231, 5741, 5951, 6311, 6671, 7031, 7391, 7751, 7533, 6657, 8831, 8973, 7119, 4013, 3792, 5899, 4512, 6356, 5232, 5742, 5952, 6312, 6672, 7032, 7392, 7752, 7534, 6658, 8832, 8974, 7120, 4014, 3793, 5900, 4513, 6357, 5233, 5743, 5953, 6313, 6673, 7033, 7393, 7753, 7535, 6659, 8833, 8975, 7121, 4015, 3794, 5901, 4514, 6358, 5234, 5744, 5954, 6314, 6674, 7034, 7394, 7754, 7536, 6660, 8834, 8976, 7122, 4016, 3795, 5902, 4515, 6359, 5235, 5745, 5955, 6315, 6675, 7035, 7395, 7755, 7537, 6661, 8835, 8977, 7123, 4017, 3796, 5903, 4516, 6360, 5236, 5746, 5956, 6316, 6676, 7036, 7396, 7756, 7538, 6662, 8836, 8978, 7124, 4018, 3797, 5904, 4517, 6361, 5237, 5747, 5957, 6317, 6677, 7037, 7397, 7757, 7539, 6663, 8837, 8979, 7125, 4019, 3798, 5905, 4518, 6362, 5238, 5748, 5958, 6318, 6678, 7038, 7398, 7758, 7540, 6664, 8838, 8980, 7126, 4020, 3799, 5906, 4519, 6363, 5239, 5749, 5959, 6319, 6679, 7039, 7399, 7759, 7541, 6665, 8839, 8981, 7127, 4021, 3800, 5907, 4520, 6364, 5240, 5750, 5960, 6320, 6680, 7040, 7400, 7760, 7542, 6666, 8840, 8982, 7128, 4022, 3801, 5908, 4521, 6365, 5241, 5751, 5961, 6321, 6681, 7041, 7401, 7761, 7543, 6667, 8841, 8983, 7129, 4023, 3802, 5909, 4522, 6366, 5242, 5752, 5962, 6322, 6682, 7042, 7402, 7762, 7544, 6668, 8842, 8984, 7130, 4024, 3803, 5910, 4523, 6367, 5243, 5753, 5963, 6323, 6683, 7043, 7403, 7763, 7545, 6669, 8843, 8985, 7131, 4025, 3804, 5911, 4524, 6368, 5244, 5754, 5964, 6324, 6684, 7044, 7404, 7764, 7546, 6670, 8844, 8986, 7132, 4026, 3805, 5912, 4525, 6369, 5245, 5755, 5965, 6325, 6685, 7045, 7405, 7765, 7547, 6671, 8845, 8987, 7133, 4027, 3806, 5913, 4526, 6370, 5246, 5756, 5966, 6326, 6686, 7046, 7406, 7766, 7548, 6672, 8846, 8988, 7134, 4028, 3807, 5914, 4527, 6371, 5247, 5757, 5967, 6327, 6687, 7047, 7407, 7767, 7549, 6673, 8847, 8989, 7135, 4029, 3808, 5915, 4528, 6372, 5248, 5758, 5968, 6328, 6688, 7048, 7408, 7768, 7550, 6674, 8848, 8990, 7136, 4030, 3809, 5916, 4529, 6373, 5249, 5759, 5969, 6329, 6689, 7049, 7409, 7769, 7551, 6675, 8849, 8991, 7137, 4031, 3810, 5917, 4530, 6374, 5250, 5760, 5970, 6330, 6690, 7050, 7410, 7770, 7552, 6676, 8850, 8992, 7138, 4032, 3811, 5918, 4531, 6375, 5251, 5611, 5971, 6331, 6691, 7051, 7411, 7771, 7553, 6677, 8851, 8993, 7139, 4033, 3812, 5919, 4532, 6376, 5252, 5612, 5972, 6332, 6692, 7052, 7412, 7772, 7554, 6678, 8852, 8994, 7140, 4034, 3813, 5920, 4533, 6377, 5253, 5613, 5973, 6333, 6693, 7053, 7413, 7773, 7555, 6679, 8853, 8995, 7141, 4035, 3814, 5921, 4534, 6378, 5254, 5614, 5974, 6334, 6694, 7054, 7414, 7774, 7556, 6680, 8854, 8996, 7142, 4036, 3815, 5922, 4535, 6379, 5255, 5615, 5975, 6335, 6695, 7055, 7415, 7775, 7557, 6681, 8855, 8997, 7143, 4037, 3816, 5923, 4536, 6380, 5256, 5616, 5976, 6336, 6696, 7056, 7416, 7776, 7558, 6682, 8856, 8998, 7144, 4038, 3817, 5924, 4537, 6381, 5257, 5617, 5977, 6337, 6697, 7057, 7417, 7777, 7559, 6683, 8857, 8999, 7145, 4039, 3818, 5925, 4538, 6382, 5258, 5618, 5978, 6338, 6698, 7058, 7418, 7778, 7560, 6684, 8858, 9000, 7146, 4040, 3819, 5926, 4539, 6383, 5259, 5619, 5979, 6339, 6699, 7059, 7419, 7779, 7201, 6685, 8859, 8641, 7147, 4041, 3820, 5927, 4540, 6384, 5260, 5620, 5980, 6340, 6700, 7060, 7420, 7780, 7202, 6686, 8860, 8642, 7148, 4042, 3821, 5928, 4541, 6385, 5261, 5621, 5981, 6341, 6701, 7061, 7421, 7781, 7203, 6687, 8861, 8643, 7149, 4043, 3822, 5929, 4542, 6386, 5262, 5622, 5982, 6342, 6702, 7062, 7422, 7782, 7204, 6688, 8862, 8644, 7150, 4044, 3823, 5930, 4543, 6387, 5263, 5623, 5983, 6343, 6703, 7063, 7423, 7783, 7205, 6689, 8863, 8645, 7151, 4045, 3824, 5931, 4544, 6388, 5264, 5624, 5984, 6344, 6704, 7064, 7424, 7784, 7206, 6690, 8864, 8646, 7152, 4046, 3825, 5932, 4545, 6389, 5265, 5625, 5985, 6345, 6705, 7065, 7425, 7785, 7207, 6691, 8865, 8647, 7153, 4047, 3826, 5933, 4546, 6390, 5266, 5626, 5986, 6346, 6706, 7066, 7426, 7786, 7208, 6692, 8866, 8648, 7154, 4048, 3827, 5934, 4547, 6391, 5267, 5627, 5987, 6347, 6707, 7067, 7427, 7787, 7209, 6693, 8867, 8649, 7155, 4049, 3828, 5935, 4548, 6392, 5268, 5628, 5988, 6348, 6708, 7068, 7428, 7788, 7210, 6694, 8868, 8650, 7156, 4050, 3829, 5936, 4549, 6393, 5269, 5629, 5989, 6349, 6709, 7069, 7429, 7789, 7211, 6695, 8869, 8651, 7157, 4051, 3830, 5937, 4550, 6394, 5270, 5630, 5990, 6350, 6710, 7070, 7430, 7790, 7212, 6696, 8870, 8652, 7158, 4052, 3831, 5938, 4551, 6395, 5271, 5631, 5991, 6351, 6711, 7071, 7431, 7791, 7213, 6697, 8871, 8653, 7159, 4053, 3832, 5939, 4552, 6396, 5272, 5632, 5992, 6352, 6712, 7072, 7432, 7792, 7214, 6698, 8872, 8654, 7160, 4054, 3833, 5940, 4553, 6397, 5273, 5633, 5993, 6353, 6713, 7073, 7433, 7793, 7215, 6699, 8873, 8655, 7161, 4055, 3834, 5941, 4554, 6398, 5274, 5634, 5994, 6354, 6714, 7074, 7434, 7794, 7216, 6700, 8874, 8656, 7162, 4056, 3835, 5942, 4555, 6399, 5275, 5635, 5995, 6355, 6715, 7075, 7435, 7795, 7217, 6701, 8875, 8657, 7163, 4057, 3836, 5943, 4556, 6400, 5276, 5636, 5996, 6356, 6716, 7076, 7436, 7796, 7218, 6702, 8876, 8658, 7164, 4058, 3837, 5944, 4557, 6401, 5277, 5637, 5997, 6357, 6717, 7077, 7437, 7797, 7219, 6703, 8877, 8659, 7165, 4059, 3838, 5945, 4558, 6402, 5278, 5638, 5998, 6358, 6718, 7078, 7438, 7798, 7220, 6704, 8878, 8660, 7166, 4060, 3839, 5946, 4559, 6403, 5279, 5639, 5999, 6359, 6719, 7079, 7439, 7799, 7221, 6705, 8879, 8661, 7167, 4061, 3840, 5947, 4560, 6404, 5280, 5640, 6000, 6360, 6720, 7080, 7440, 7800, 7222, 6706, 8880, 8662, 7168, 4062, 3841, 5948, 4561, 6405, 5281, 5641, 6001, 6361, 6721, 7081, 7441, 7801, 7223, 6707, 8881, 8663, 7169, 4063, 3842, 5949, 4562, 6406, 5282, 5642, 6002, 6362, 6722, 7082, 7442, 7802, 7224, 6708, 8882, 8664, 7170, 4064, 3843, 5950, 4563, 6407, 5283, 5643, 6003, 6363, 6723, 7083, 7443, 7803, 7225, 6709, 8883, 8665, 7171, 4065, 3844, 5951, 4564, 6408, 5284, 5644, 6004, 6364, 6724, 7084, 7444, 7804, 7226, 6710, 8884, 8666, 7172, 4066, 3845, 5952, 4565, 6409, 5285, 5645, 6005, 6365, 6725, 7085, 7445, 7805, 7227, 6711, 8885, 8667, 7173, 4067, 3846, 5953, 4566, 6410, 5286, 5646, 6006, 6366, 6726, 7086, 7446, 7806, 7228, 6712, 8886, 8668, 7174, 4068, 3847, 5954, 4567, 6411, 5287, 5647, 6007, 6367, 6727, 7087, 7447, 7807, 7229, 6713, 8887, 8669, 7175, 4069, 3848, 5955, 4568, 6412, 5288, 5648, 6008, 6368, 6728, 7088, 7448, 7808, 7230, 6714, 8888, 8670, 7176, 4070, 3849, 5956, 4569, 6413, 5289, 5649, 6009, 6369, 6729, 7089, 7449, 7809, 7231, 6715, 8889, 8671, 7177, 4071, 3850, 5957, 4570, 6414, 5290, 5650, 6010, 6370, 6730, 7090, 7450, 7810, 7232, 6716, 8890, 8672, 7178, 4072, 3851, 5958, 4571, 6415, 5291, 5651, 6011, 6371, 6731, 7091, 7451, 7811, 7233, 6717, 8891, 8673, 7179, 4073, 3852, 5959, 4572, 6416, 5292, 5652, 6012, 6372, 6732, 7092, 7452, 7812, 7234, 6718, 8892, 8674, 7180, 4074, 3853, 5960, 4573, 6417, 5293, 5653, 6013, 6373, 6733, 7093, 7453, 7813, 7235, 6719, 8893, 8675, 7181, 4075, 3854, 5961, 4574, 6418, 5294, 5654, 6014, 6374, 6734, 7094, 7454, 7814, 7236, 6720, 8894, 8676, 7182, 4076, 3855, 5962, 4575, 6419, 5295, 5655, 6015, 6375, 6735, 7095, 7455, 7815, 7237, 6721, 8895, 8677, 7183, 4077, 3856, 5963, 4576, 6420, 5296, 5656, 6016, 6376, 6736, 7096, 7456, 7816, 7238, 6722, 8896, 8678, 7184, 4078, 3857, 5964, 4577, 6421, 5297, 5657, 6017, 6377, 6737, 7097, 7457, 7817, 7239, 6723, 8897, 8679, 7185, 4079, 3858, 5965, 4578, 6422, 5298, 5658, 6018, 6378, 6738, 7098, 7458, 7818, 7240, 6724, 8898, 8680, 7186, 4080, 3859, 5966, 4579, 6423, 5299, 5659, 6019, 6379, 6739, 7099, 7459, 7819, 7241, 6725, 8899, 8681, 7187, 4081, 3860, 5967, 4580, 6424, 5300, 5660, 6020, 6380, 6740, 7100, 7460, 7820, 7242, 6726, 8900, 8682, 7188, 4082, 3861, 5968, 4581, 6425, 5301, 5661, 6021, 6381, 6741, 7101, 7461, 7821, 7243, 6727, 8901, 8683, 7189, 4083, 3862, 5969, 4582, 6426, 5302, 5662, 6022, 6382, 6742, 7102, 7462, 7822, 7244, 6728, 8902, 8684, 7190, 4084, 3863, 5970, 4583, 6427, 5303, 5663, 6023, 6383, 6743, 7103, 7463, 7823, 7245, 6729, 8903, 8685, 7191, 4085, 3864, 5971, 4584, 6428, 5304, 5664, 6024, 6384, 6744, 7104, 7464, 7824, 7246, 6730, 8904, 8686, 7192, 4086, 3865, 5972, 4585, 6429, 5305, 5665, 6025, 6385, 6745, 7105, 7201, 7825, 7247, 6731, 8905, 8687, 7193, 4087, 3866, 5973, 4586, 6430, 5306, 5666, 6026, 6386, 6746, 7106, 7202, 7826, 7248, 6732, 8906, 8688, 7194, 4088, 3867, 5974, 4587, 6431, 5307, 5667, 6027, 6387, 6747, 7107, 7203, 7827, 7249, 6733, 8907, 8689, 7195, 4089, 3868, 5975, 4588, 6432, 5308, 5668, 6028, 6388, 6748, 7108, 7204, 7828, 7250, 6734, 8908, 8690, 7196, 4090, 3869, 5976, 4589, 6433, 5309, 5669, 6029, 6389, 6749, 7109, 7205, 7829, 7251, 6735, 8909, 8691, 7197, 4091, 3870, 5977, 4590, 6434, 5310, 5670, 6030, 6390, 6750, 7110, 7206, 7830, 7252, 6736, 8910, 8692, 7198, 4092, 3871, 5978, 4591, 6435, 5311, 5671, 6031, 6391, 6751, 7111, 7207, 7831, 7253, 6737, 8911, 8693, 7199, 4093, 3872, 5979, 4592, 6436, 5312, 5672, 6032, 6392, 6752, 7112, 7208, 7832, 7254, 6738, 8912, 8694, 7200, 4094, 3873, 5980, 4593, 6437, 5313, 5673, 6033, 6393, 6753, 7113, 7209, 7833, 7255, 6739, 8913, 8695, 6841, 4095, 3874, 5981, 4594, 6438, 5314, 5674, 6034, 6394, 6754, 7114, 7210, 7834, 7256, 6740, 8914, 8696, 6842, 4096, 3875, 5982, 4595, 6439, 5315, 5675, 6035, 6395, 6755, 7115, 7211, 7835, 7257, 6741, 8915, 8697, 6843, 4097, 3876, 5983, 4596, 6440, 5316, 5676, 6036, 6396, 6756, 7116, 7212, 7836, 7258, 6742, 8916, 8698, 6844, 4098, 3877, 5984, 4597, 6441, 5317, 5677, 6037, 6397, 6757, 7117, 7213, 7837, 7259, 6743, 8917, 8699, 6845, 4099, 3878, 5985, 4598, 6442, 5318, 5678, 6038, 6398, 6758, 7118, 7214, 7838, 7260, 6744, 8918, 8700, 6846, 4100, 3879, 5986, 4599, 6443, 5319, 5679, 6039, 6399, 6759, 7119, 7215, 7839, 7261, 6745, 8919, 8701, 6847, 4101, 3880, 5987, 4600, 6444, 5320, 5680, 6040, 6400, 6760, 7120, 7216, 7840, 7262, 6746, 8920, 8702, 6848, 4102, 3881, 5988, 4601, 6445, 5321, 5681, 6041, 6401, 6761, 7121, 7217, 7841, 7263, 6747, 8921, 8703, 6849, 4103, 3882, 5989, 4602, 6446, 5322, 5682, 6042, 6402, 6762, 7122, 7218, 7842, 7264, 6748, 8922, 8704, 6850, 4104, 3883, 5990, 4603, 6447, 5323, 5683, 6043, 6403, 6763, 7123, 7219, 7843, 7265, 6749, 8923, 8705, 6851, 4105, 3884, 5991, 4604, 6448, 5324, 5684, 6044, 6404, 6764, 7124, 7220, 7844, 7266, 6750, 8924, 8706, 6852, 4106, 3885, 5992, 4605, 6449, 5325, 5685, 6045, 6405, 6765, 7125, 7221, 7845, 7267, 6751, 8925, 8707, 6853, 4107, 3886, 5993, 4606, 6450, 5326, 5686, 6046, 6406, 6766, 7126, 7222, 7846, 7268, 6752, 8926, 8708, 6854, 4108, 3887, 5994, 4607, 6451, 5327, 5687, 6047, 6407, 6767, 7127, 7223, 7847, 7269, 6753, 8927, 8709, 6855, 4109, 3888, 5995, 4608, 6452, 5328, 5688, 6048, 6408, 6768, 7128, 7224, 7848, 7270, 6754, 8928, 8710, 6856, 4110, 3889, 5996, 4609, 6453, 5329, 5689, 6049, 6409, 6769, 7129, 7225, 7849, 7271, 6755, 8929, 8711, 6857, 4111, 3890, 5997, 4610, 6454, 5330, 5690, 6050, 6410, 6770, 7130, 7226, 7850, 7272, 6756, 8930, 8712, 6858, 4112, 3891, 5998, 4611, 6455, 5331, 5691, 6051, 6411, 6771, 7131, 7227, 7851, 7273, 6757, 8931, 8713, 6859, 4113, 3892, 5999, 4612, 6456, 5332, 5692, 6052, 6412, 6772, 7132, 7228, 7852, 7274, 6758, 8932, 8714, 6860, 4114, 3893, 6000, 4613, 6457, 5333, 5693, 6053, 6413, 6773, 7133, 7229, 7853, 7275, 6759, 8933, 8715, 6861, 4115, 3894, 6001, 4614, 6458, 5334, 5694, 6054, 6414, 6774, 7134, 7230, 7854, 7276, 6760, 8934, 8716, 6862, 4116, 3895, 6002, 4615, 6459, 5335, 5695, 6055, 6415, 6775, 7135, 7231, 7855, 7277, 6761, 8935, 8717, 6863, 4117, 3896, 6003, 4616, 6460, 5336, 5696, 6056, 6416, 6776, 7136, 7232, 7856, 7278, 6762, 8936, 8718, 6864, 4118, 3897, 6004, 4617, 6461, 5337, 5697, 6057, 6417, 6777, 7137, 7233, 7857, 7279, 6763, 8937, 8719, 6865, 4119, 3898, 6005, 4618, 6462, 5338, 5698, 6058, 6418, 6778, 7138, 7234, 7858, 7280, 6764, 8938, 8720, 6866, 4120, 3899, 6006, 4619, 6463, 5339, 5699, 6059, 6419, 6779, 7139, 7235, 7859, 7281, 6765, 8939, 8721, 6867, 4121, 3900, 6007, 4620, 6464, 5340, 5700, 6060, 6420, 6780, 7140, 7236, 7860, 7282, 6766, 8940, 8722, 6868, 4122, 3901, 6008, 4621, 6465, 5341, 5701, 6061, 6421, 6781, 7141, 7237, 7861, 7283, 6767, 8941, 8723, 6869, 4123, 3902, 6009, 4622, 6466, 5342, 5702, 6062, 6422, 6782, 7142, 7238, 7862, 7284, 6768, 8942, 8724, 6870, 4124, 3903, 6010, 4623, 6467, 5343, 5703, 6063, 6423, 6783, 7143, 7239, 7863, 7285, 6769, 8943, 8725, 6871, 4125, 3904, 6011, 4624, 6468, 5344, 5704, 6064, 6424, 6784, 7144, 7240, 7864, 7286, 6770, 8944, 8726, 6872, 4126, 3905, 6012, 4625, 6469, 5345, 5705, 6065, 6425, 6785, 7145, 7241, 7865, 7287, 6771, 8945, 8727, 6873, 4127, 3906, 6013, 4626, 6470, 5346, 5706, 6066, 6426, 6786, 7146, 7242, 7866, 7288, 6772, 8946, 8728, 6874, 4128, 3907, 6014, 4627, 6471, 5347, 5707, 6067, 6427, 6787, 7147, 7243, 7867, 7289, 6773, 8947, 8729, 6875, 4129, 3908, 6015, 4628, 6472, 5348, 5708, 6068, 6428, 6788, 7148, 7244, 7868, 7290, 6774, 8948, 8730, 6876, 4130, 3909, 6016, 4629, 6473, 5349, 5709, 6069, 6429, 6789, 7149, 7245, 7869, 7291, 6775, 8949, 8731, 6877, 4131, 3910, 6017, 4630, 6474, 5350, 5710, 6070, 6430, 6790, 7150, 7246, 7870, 7292, 6776, 8950, 8732, 6878, 4132, 3911, 6018, 4631, 6475, 5351, 5711, 6071, 6431, 6791, 7151, 7247, 7871, 7293, 6777, 8951, 8733, 6879, 4133, 3912, 6019, 4632, 6476, 5352, 5712, 6072, 6432, 6792, 7152, 7248, 7872, 7294, 6778, 8952, 8734, 6880, 4134, 3913, 6020, 4633, 6477, 5353, 5713, 6073, 6433, 6793, 7153, 7249, 7873, 7295, 6779, 8953, 8735, 6881, 4135, 3914, 6021, 4634, 6478, 5354, 5714, 6074, 6434, 6794, 7154, 7250, 7874, 7296, 6780, 8954, 8736, 6882, 4136, 3915, 6022, 4635, 6479, 5355, 5715, 6075, 6435, 6795, 7155, 7251, 7875, 7297, 6781, 8955, 8737, 6883, 4137, 3916, 6023, 4636, 6480, 5356, 5716, 6076, 6436, 6796, 7156, 7252, 7876, 7298, 6782, 8956, 8738, 6884, 4138, 3917, 6024, 4637, 6121, 5357, 5717, 6077, 6437, 6797, 7157, 7253, 7877, 7299, 6783, 8957, 8739, 6885, 4139, 3918, 6025, 4638, 6122, 5358, 5718, 6078, 6438, 6798, 7158, 7254, 7878, 7300, 6784, 8958, 8740, 6886, 4140, 3919, 6026, 4639, 6123, 5359, 5719, 6079, 6439, 6799, 7159, 7255, 7879, 7301, 6785, 8959, 8741, 6887, 4141, 3920, 6027, 4640, 6124, 5360, 5720, 6080, 6440, 6800, 7160, 7256, 7880, 7302, 6786, 8960, 8742, 6888, 4142, 3921, 6028, 4641, 6125, 5361, 5721, 6081, 6441, 6801, 7161, 7257, 7881, 7303, 6787, 8961, 8743, 6889, 4143, 3922, 6029, 4642, 6126, 5362, 5722, 6082, 6442, 6802, 7162, 7258, 7882, 7304, 6788, 8962, 8744, 6890, 4144, 3923, 6030, 4643, 6127, 5363, 5723, 6083, 6443, 6803, 7163, 7259, 7883, 7305, 6789, 8963, 8745, 6891, 4145, 3924, 6031, 4644, 6128, 5364, 5724, 6084, 6444, 6804, 7164, 7260, 7884, 7306, 6790, 8964, 8746, 6892, 4146, 3925, 6032, 4645, 6129, 5365, 5725, 6085, 6445, 6805, 7165, 7261, 7885, 7307, 6791, 8965, 8747, 6893, 4147, 3926, 6033, 4646, 6130, 5366, 5726, 6086, 6446, 6806, 7166, 7262, 7886, 7308, 6792, 8966, 8748, 6894, 4148, 3927, 6034, 4647, 6131, 5367, 5727, 6087, 6447, 6807, 7167, 7263, 7887, 7309, 6793, 8967, 8749, 6895, 4149, 3928, 6035, 4648, 6132, 5368, 5728, 6088, 6448, 6808, 7168, 7264, 7888, 7310, 6794, 8968, 8750, 6896, 4150, 3929, 6036, 4649, 6133, 5369, 5729, 6089, 6449, 6809, 7169, 7265, 7889, 7311, 6795, 8969, 8751, 6897, 4151, 3930, 6037, 4650, 6134, 5370, 5730, 6090, 6450, 6810, 7170, 7266, 7890, 7312, 6796, 8970, 8752, 6898, 4152, 3931, 6038, 4651, 6135, 5371, 5731, 6091, 6451, 6811, 7171, 7267, 7891, 7313, 6797, 8971, 8753, 6899, 4153, 3932, 6039, 4652, 6136, 5372, 5732, 6092, 6452, 6812, 7172, 7268, 7892, 7314, 6798, 8972, 8754, 6900, 4154, 3933, 6040, 4653, 6137, 5373, 5733, 6093, 6453, 6813, 7173, 7269, 7893, 7315, 6799, 8973, 8755, 6901, 4155, 3934, 6041, 4654, 6138, 5374, 5734, 6094, 6454, 6814, 7174, 7270, 7894, 7316, 6800, 8974, 8756, 6902, 4156, 3935, 6042, 4655, 6139, 5375, 5735, 6095, 6455, 6815, 7175, 7271, 7895, 7317, 6801, 8975, 8757, 6903, 4157, 3936, 6043, 4656, 6140, 5376, 5736, 6096, 6456, 6816, 7176, 7272, 7896, 7318, 6802, 8976, 8758, 6904, 4158, 3937, 6044, 4657, 6141, 5377, 5737, 6097, 6457, 6817, 7177, 7273, 7897, 7319, 6803, 8977, 8759, 6905, 4159, 3938, 6045, 4658, 6142, 5378, 5738, 6098, 6458, 6818, 7178, 7274, 7898, 7320, 6804, 8978, 8760, 6906, 4160, 3939, 6046, 4659, 6143, 5379, 5739, 6099, 6459, 6819, 7179, 7275, 7899, 7321, 6805, 8979, 8761, 6907, 4161, 3940, 6047, 4660, 6144, 5380, 5740, 6100, 6460, 6820, 7180, 7276, 7900, 7322, 6806, 8980, 8762, 6908, 4162, 3941, 6048, 4661, 6145, 5381, 5741, 6101, 6461, 6821, 7181, 7277, 7901, 7323, 6807, 8981, 8763, 6909, 4163, 3942, 6049, 4662, 6146, 5382, 5742, 6102, 6462, 6822, 7182, 7278, 7902, 7324, 6808, 8982, 8764, 6910, 4164, 3943, 6050, 4663, 6147, 5383, 5743, 6103, 6463, 6823, 7183, 7279, 7903, 7325, 6809, 8983, 8765, 6911, 4165, 3944, 6051, 4664, 6148, 5384, 5744, 6104, 6464, 6824, 7184, 7280, 7904, 7326, 6810, 8984, 8766, 6912, 4166, 3945, 6052, 4665, 6149, 5385, 5745, 6105, 6465, 6825, 7185, 7281, 7905, 7327, 6811, 8985, 8767, 6913, 4167, 3946, 6053, 4666, 6150, 5386, 5746, 6106, 6466, 6826, 7186, 7282, 7906, 7328, 6812, 8986, 8768, 6914, 4168, 3947, 6054, 4667, 6151, 5387, 5747, 6107, 6467, 6827, 7187, 7283, 7907, 7329, 6813, 8987, 8769, 6915, 4169, 3948, 6055, 4668, 6152, 5388, 5748, 6108, 6468, 6828, 7188, 7284, 7908, 7330, 6814, 8988, 8770, 6916, 4170, 3949, 6056, 4669, 6153, 5389, 5749, 6109, 6469, 6829, 7189, 7285, 7909, 7331, 6815, 8989, 8771, 6917, 4171, 3950, 6057, 4670, 6154, 5390, 5750, 6110, 6470, 6830, 7190, 7286, 7910, 7332, 6816, 8990, 8772, 6918, 4172, 3951, 6058, 4671, 6155, 5391, 5751, 6111, 6471, 6831, 7191, 7287, 7911, 7333, 6817, 8991, 8773, 6919, 4173, 3952, 6059, 4672, 6156, 5392, 5752, 6112, 6472, 6832, 7192, 7288, 7912, 7334, 6818, 8992, 8774, 6920, 4174, 3953, 6060, 4673, 6157, 5393, 5753, 6113, 6473, 6833, 7193, 7289, 7913, 7335, 6819, 8993, 8775, 6921, 4175, 3954, 6061, 4674, 6158, 5394, 5754, 6114, 6474, 6834, 7194, 7290, 7914, 7336, 6820, 8994, 8776, 6922, 4176, 3955, 6062, 4675, 6159, 5395, 5755, 6115, 6475, 6835, 7195, 7291, 7915, 7337, 6821, 8995, 8777, 6923, 4177, 3956, 6063, 4676, 6160, 5396, 5756, 6116, 6476, 6836, 7196, 7292, 7916, 7338, 6822, 8996, 8778, 6924, 4178, 3957, 6064, 4677, 6161, 5397, 5757, 6117, 6477, 6837, 7197, 7293, 7917, 7339, 6823, 8997, 8779, 6925, 4179, 3958, 6065, 4678, 6162, 5398, 5758, 6118, 6478, 6838, 7198, 7294, 7918, 7340, 6824, 8998, 8780, 6926, 4180, 3959, 6066, 4679, 6163, 5399, 5759, 6119, 6479, 6839, 7199, 7295, 7919, 7341, 6825, 8999, 8781, 6927, 4181, 3960, 6067, 4680, 6164, 5400, 5760, 6120, 6480, 6840, 7200, 7296, 7920, 7342, 6826, 9000, 8782, 6928, 6570, 9489, 9108, 8047, 8813, 7760, 8352, 7021, 7722, 8380, 8139, 7297, 9449, 7921, 8281, 9078, 9001, 9361, 6571, 9490, 9109, 8048, 8814, 7761, 8353, 7022, 7723, 8381, 8140, 7298, 9450, 7922, 8282, 9079, 9002, 9362, 6572, 9491, 9110, 8049, 8815, 7762, 8354, 7023, 7724, 8382, 8141, 7299, 9451, 7923, 8283, 9080, 9003, 9363, 6573, 9492, 9111, 8050, 8816, 7763, 8355, 7024, 7725, 8383, 8142, 7300, 9452, 7924, 8284, 9081, 9004, 9364, 6574, 9493, 9112, 8051, 8817, 7764, 8356, 7025, 7726, 8384, 8143, 7301, 9453, 7925, 8285, 9082, 9005, 9365, 6575, 9494, 9113, 8052, 8818, 7765, 8357, 7026, 7727, 8385, 8144, 7302, 9454, 7926, 8286, 9083, 9006, 9366, 6576, 9495, 9114, 8053, 8819, 7766, 8358, 7027, 7728, 8386, 8145, 7303, 9455, 7927, 8287, 9084, 9007, 9367, 6577, 9496, 9115, 8054, 8820, 7767, 8359, 7028, 7729, 8387, 8146, 7304, 9456, 7928, 8288, 9085, 9008, 9368, 6578, 9497, 9116, 8055, 8821, 7768, 8360, 7029, 7730, 8388, 8147, 7305, 9457, 7929, 8289, 9086, 9009, 9369, 6579, 9498, 9117, 8056, 8822, 7769, 8361, 7030, 7731, 8389, 8148, 7306, 9458, 7930, 8290, 9087, 9010, 9370, 6580, 9499, 9118, 8057, 8823, 7770, 8362, 7031, 7732, 8390, 8149, 7307, 9459, 7931, 8291, 9088, 9011, 9371, 6581, 9500, 9119, 8058, 8824, 7771, 8363, 7032, 7733, 8391, 8150, 7308, 9460, 7932, 8292, 9089, 9012, 9372, 6582, 9501, 9120, 8059, 8825, 7772, 8364, 7033, 7734, 8392, 8151, 7309, 9461, 7933, 8293, 9090, 9013, 9373, 6583, 9502, 9121, 8060, 8826, 7773, 8365, 7034, 7735, 8393, 8152, 7310, 9462, 7934, 8294, 9091, 9014, 9374, 6584, 9503, 9122, 8061, 8827, 7774, 8366, 7035, 7736, 8394, 8153, 7311, 9463, 7935, 8295, 9092, 9015, 9375, 6585, 9504, 9123, 8062, 8828, 7775, 8367, 7036, 7737, 8395, 8154, 7312, 9464, 7936, 8296, 9093, 9016, 9376, 6586, 9505, 9124, 8063, 8829, 7776, 8368, 7037, 7738, 8396, 8155, 7313, 9465, 7937, 8297, 9094, 9017, 9377, 6587, 9506, 9125, 8064, 8830, 7777, 8369, 7038, 7739, 8397, 8156, 7314, 9466, 7938, 8298, 9095, 9018, 9378, 6588, 9507, 9126, 8065, 8831, 7778, 8370, 7039, 7740, 8398, 8157, 7315, 9467, 7939, 8299, 9096, 9019, 9379, 6589, 9508, 9127, 8066, 8832, 7779, 8371, 7040, 7741, 8399, 8158, 7316, 9468, 7940, 8300, 9097, 9020, 9380, 6590, 9509, 9128, 8067, 8833, 7780, 8372, 7041, 7742, 8400, 8159, 7317, 9469, 7941, 8301, 9098, 9021, 9381, 6591, 9510, 9129, 8068, 8834, 7781, 8373, 7042, 7743, 8401, 8160, 7318, 9470, 7942, 8302, 9099, 9022, 9382, 6592, 9511, 9130, 8069, 8835, 7782, 8374, 7043, 7744, 8402, 8161, 7319, 9471, 7943, 8303, 9100, 9023, 9383, 6593, 9512, 9131, 8070, 8836, 7783, 8375, 7044, 7745, 8403, 8162, 7320, 9472, 7944, 8304, 9101, 9024, 9384, 6594, 9513, 9132, 8071, 8837, 7784, 8376, 7045, 7746, 8404, 8163, 7321, 9473, 7945, 8305, 9102, 9025, 9385, 6595, 9514, 9133, 8072, 8838, 7785, 8377, 7046, 7747, 8405, 8164, 7322, 9474, 7946, 8306, 9103, 9026, 9386, 6596, 9515, 9134, 8073, 8839, 7786, 8378, 7047, 7748, 8406, 8165, 7323, 9475, 7947, 8307, 9104, 9027, 9387, 6597, 9516, 9135, 8074, 8840, 7787, 8379, 7048, 7749, 8407, 8166, 7324, 9476, 7948, 8308, 9105, 9028, 9388, 6598, 9517, 9136, 8075, 8841, 7788, 8380, 7049, 7750, 8408, 8167, 7325, 9477, 7949, 8309, 9106, 9029, 9389, 6599, 9518, 9137, 8076, 8842, 7789, 8381, 7050, 7751, 8409, 8168, 7326, 9478, 7950, 8310, 9107, 9030, 9390, 6600, 9519, 9138, 8077, 8843, 7790, 8382, 7051, 7752, 8410, 8169, 7327, 9479, 7951, 8311, 9108, 9031, 9391, 6601, 9520, 9139, 8078, 8844, 7791, 8383, 7052, 7753, 8411, 8170, 7328, 9480, 7952, 8312, 9109, 9032, 9392, 6602, 9521, 9140, 8079, 8845, 7792, 8384, 7053, 7754, 8412, 8171, 7329, 9481, 7953, 8313, 9110, 9033, 9393, 6603, 9522, 9141, 8080, 8846, 7793, 8385, 7054, 7755, 8413, 8172, 7330, 9482, 7954, 8314, 9111, 9034, 9394, 6604, 9523, 9142, 8081, 8847, 7794, 8386, 7055, 7756, 8414, 8173, 7331, 9483, 7955, 8315, 9112, 9035, 9395, 6605, 9524, 9143, 8082, 8848, 7795, 8387, 7056, 7757, 8415, 8174, 7332, 9484, 7956, 8316, 9113, 9036, 9396, 6606, 9525, 9144, 8083, 8849, 7796, 8388, 7057, 7758, 8416, 8175, 7333, 9485, 7957, 8317, 9114, 9037, 9397, 6607, 9526, 9145, 8084, 8850, 7797, 8389, 7058, 7759, 8417, 8176, 7334, 9486, 7958, 8318, 9115, 9038, 9398, 6608, 9527, 9146, 8085, 8851, 7798, 8390, 7059, 7760, 8418, 8177, 7335, 9487, 7959, 8319, 9116, 9039, 9399, 6609, 9528, 9147, 8086, 8852, 7799, 8391, 7060, 7761, 8419, 8178, 7336, 9488, 7960, 8320, 9117, 9040, 9400, 6610, 9529, 9148, 8087, 8853, 7800, 8392, 7061, 7762, 8420, 8179, 7337, 9489, 7961, 8321, 9118, 9041, 9401, 6611, 9530, 9149, 8088, 8854, 7801, 8393, 7062, 7763, 8421, 8180, 7338, 9490, 7962, 8322, 9119, 9042, 9402, 6612, 9531, 9150, 8089, 8855, 7802, 8394, 7063, 7764, 8422, 8181, 7339, 9491, 7963, 8323, 9120, 9043, 9403, 6613, 9532, 9151, 8090, 8856, 7803, 8395, 7064, 7765, 8423, 8182, 7340, 9492, 7964, 8324, 9121, 9044, 9404, 6614, 9533, 9152, 8091, 8857, 7804, 8396, 7065, 7766, 8424, 8183, 7341, 9493, 7965, 8325, 9122, 9045, 9405, 6615, 9534, 9153, 8092, 8858, 7805, 8397, 7066, 7767, 8425, 8184, 7342, 9494, 7966, 8326, 9123, 9046, 9406, 6616, 9535, 9154, 8093, 8859, 7806, 8398, 7067, 7768, 8426, 8185, 7343, 9495, 7967, 8327, 9124, 9047, 9407, 6617, 9536, 9155, 8094, 8860, 7807, 8399, 7068, 7769, 8427, 8186, 7344, 9496, 7968, 8328, 9125, 9048, 9408, 6618, 9537, 9156, 8095, 8861, 7808, 8400, 7069, 7770, 8428, 8187, 7345, 9497, 7969, 8329, 9126, 9049, 9409, 6619, 9538, 9157, 8096, 8862, 7809, 8401, 7070, 7771, 8429, 8188, 7346, 9498, 7970, 8330, 9127, 9050, 9410, 6620, 9539, 9158, 8097, 8863, 7810, 8402, 7071, 7772, 8430, 8189, 7347, 9499, 7971, 8331, 9128, 9051, 9411, 6621, 9540, 9159, 8098, 8864, 7811, 8403, 7072, 7773, 8431, 8190, 7348, 9500, 7972, 8332, 9129, 9052, 9412, 6622, 9541, 9160, 8099, 8865, 7812, 8404, 7073, 7774, 8432, 8191, 7349, 9501, 7973, 8333, 9130, 9053, 9413, 6623, 9542, 9161, 8100, 8866, 7813, 8405, 7074, 7775, 8433, 8192, 7350, 9502, 7974, 8334, 9131, 9054, 9414, 6624, 9543, 9162, 8101, 8867, 7814, 8406, 7075, 7776, 8434, 8193, 7351, 9503, 7975, 8335, 9132, 9055, 9415, 6625, 9544, 9163, 8102, 8868, 7815, 8407, 7076, 7777, 8435, 8194, 7352, 9504, 7976, 8336, 9133, 9056, 9416, 6626, 9545, 9164, 8103, 8869, 7816, 8408, 7077, 7778, 8436, 8195, 7353, 9505, 7977, 8337, 9134, 9057, 9417, 6627, 9546, 9165, 8104, 8870, 7817, 8409, 7078, 7779, 8437, 8196, 7354, 9506, 7978, 8338, 9135, 9058, 9418, 6628, 9547, 9166, 8105, 8871, 7818, 8410, 7079, 7780, 8438, 8197, 7355, 9507, 7979, 8339, 9136, 9059, 9419, 6629, 9548, 9167, 8106, 8872, 7819, 8411, 7080, 7781, 8439, 8198, 7356, 9508, 7980, 8340, 9137, 9060, 9420, 6630, 9549, 9168, 8107, 8873, 7820, 8412, 7081, 7782, 8440, 8199, 7357, 9509, 7981, 8341, 9138, 9061, 9421, 6631, 9550, 9169, 8108, 8874, 7821, 8413, 7082, 7783, 8441, 8200, 7358, 9510, 7982, 8342, 9139, 9062, 9422, 6632, 9551, 9170, 8109, 8875, 7822, 8414, 7083, 7784, 8442, 8201, 7359, 9511, 7983, 8343, 9140, 9063, 9423, 6633, 9552, 9171, 8110, 8876, 7823, 8415, 7084, 7785, 8443, 8202, 7360, 9512, 7984, 8344, 9141, 9064, 9424, 6634, 9553, 9172, 8111, 8877, 7824, 8416, 7085, 7786, 8444, 8203, 7361, 9513, 7985, 8345, 9142, 9065, 9425, 6635, 9554, 9173, 8112, 8878, 7825, 8417, 7086, 7787, 8445, 8204, 7362, 9514, 7986, 8346, 9143, 9066, 9426, 6636, 9555, 9174, 8113, 8879, 7826, 8418, 7087, 7788, 8446, 8205, 7363, 9515, 7987, 8347, 9144, 9067, 9427, 6637, 9556, 9175, 8114, 8880, 7827, 8419, 7088, 7789, 8447, 8206, 7364, 9516, 7988, 8348, 9145, 9068, 9428, 6638, 9557, 9176, 8115, 8881, 7828, 8420, 7089, 7790, 8448, 8207, 7365, 9517, 7989, 8349, 9146, 9069, 9429, 6639, 9558, 9177, 8116, 8882, 7829, 8421, 7090, 7791, 8449, 8208, 7366, 9518, 7990, 8350, 9147, 9070, 9430, 6640, 9559, 9178, 8117, 8883, 7830, 8422, 7091, 7792, 8450, 8209, 7367, 9519, 7991, 8351, 9148, 9071, 9431, 6641, 9560, 9179, 8118, 8884, 7831, 8423, 7092, 7793, 8451, 8210, 7368, 9520, 7992, 8352, 9149, 9072, 9432, 6642, 9561, 9180, 8119, 8885, 7832, 8424, 7093, 7794, 8452, 8211, 7369, 9521, 7993, 8353, 9150, 9073, 9433, 6643, 9562, 9181, 8120, 8886, 7833, 8425, 7094, 7795, 8453, 8212, 7370, 9522, 7994, 8354, 9151, 9074, 9434, 6644, 9563, 9182, 8121, 8887, 7834, 8426, 7095, 7796, 8454, 8213, 7371, 9523, 7995, 8355, 9152, 9075, 9435, 6645, 9564, 9183, 8122, 8888, 7835, 8427, 7096, 7797, 8455, 8214, 7372, 9524, 7996, 8356, 9153, 9076, 9436, 6646, 9565, 9184, 8123, 8889, 7836, 8428, 7097, 7798, 8456, 8215, 7373, 9525, 7997, 8357, 9154, 9077, 9437, 6647, 9566, 9185, 8124, 8890, 7837, 8429, 7098, 7799, 8457, 8216, 7374, 9526, 7998, 8358, 9155, 9078, 9438, 6648, 9567, 9186, 8125, 8891, 7838, 8430, 7099, 7800, 8458, 8217, 7375, 9527, 7999, 8359, 9156, 9079, 9439, 6649, 9568, 9187, 8126, 8892, 7839, 8431, 7100, 7801, 8459, 8218, 7376, 9528, 8000, 8360, 9157, 9080, 9440, 6650, 9569, 9188, 8127, 8893, 7840, 8432, 7101, 7802, 8460, 8219, 7377, 9529, 8001, 8361, 9158, 9081, 9441, 6651, 9570, 9189, 8128, 8894, 7841, 8433, 7102, 7803, 8461, 8220, 7378, 9530, 8002, 8362, 9159, 9082, 9442, 6652, 9571, 9190, 8129, 8895, 7842, 8434, 7103, 7804, 8462, 8221, 7379, 9531, 8003, 8363, 9160, 9083, 9443, 6653, 9572, 9191, 8130, 8896, 7843, 8435, 7104, 7805, 8463, 8222, 7380, 9532, 8004, 8364, 9161, 9084, 9444, 6654, 9573, 9192, 8131, 8897, 7844, 8436, 7105, 7806, 8464, 8223, 7381, 9533, 8005, 8365, 9162, 9085, 9445, 6655, 9574, 9193, 8132, 8898, 7845, 8437, 7106, 7807, 8465, 8224, 7382, 9534, 8006, 8366, 9163, 9086, 9446, 6656, 9575, 9194, 8133, 8899, 7846, 8438, 7107, 7808, 8466, 8225, 7383, 9535, 8007, 8367, 9164, 9087, 9447, 6657, 9576, 9195, 8134, 8900, 7847, 8439, 7108, 7809, 8467, 8226, 7384, 9536, 8008, 8368, 9165, 9088, 9448, 6658, 9577, 9196, 8135, 8901, 7848, 8440, 7109, 7810, 8468, 8227, 7385, 9537, 8009, 8369, 9166, 9089, 9449, 6659, 9578, 9197, 8136, 8902, 7849, 8441, 7110, 7811, 8469, 8228, 7386, 9538, 8010, 8370, 9167, 9090, 9450, 6660, 9579, 9198, 8137, 8903, 7850, 8442, 7111, 7812, 8470, 8229, 7387, 9539, 8011, 8371, 9168, 9091, 9451, 6661, 9580, 9199, 8138, 8904, 7851, 8443, 7112, 7813, 8471, 8230, 7388, 9540, 8012, 8372, 9169, 9092, 9452, 6662, 9581, 9200, 8139, 8905, 7852, 8444, 7113, 7814, 8472, 8231, 7389, 9541, 8013, 8373, 9170, 9093, 9453, 6663, 9582, 9201, 8140, 8906, 7853, 8445, 7114, 7815, 8473, 8232, 7390, 9542, 8014, 8374, 9171, 9094, 9454, 6664, 9583, 9202, 8141, 8907, 7854, 8446, 7115, 7816, 8474, 8233, 7391, 9543, 8015, 8375, 9172, 9095, 9455, 6665, 9584, 9203, 8142, 8908, 7855, 8447, 7116, 7817, 8475, 8234, 7392, 9544, 8016, 8376, 9173, 9096, 9456, 6666, 9585, 9204, 8143, 8909, 7856, 8448, 7117, 7818, 8476, 8235, 7393, 9545, 8017, 8377, 9174, 9097, 9457, 6667, 9586, 9205, 8144, 8910, 7857, 8449, 7118, 7819, 8477, 8236, 7394, 9546, 8018, 8378, 9175, 9098, 9458, 6668, 9587, 9206, 8145, 8911, 7858, 8450, 7119, 7820, 8478, 8237, 7395, 9547, 8019, 8379, 9176, 9099, 9459, 6669, 9588, 9207, 8146, 8912, 7859, 8451, 7120, 7821, 8479, 8238, 7396, 9548, 8020, 8380, 9177, 9100, 9460, 6670, 9589, 9208, 8147, 8913, 7860, 8452, 7121, 7822, 8480, 8239, 7397, 9549, 8021, 8381, 9178, 9101, 9461, 6671, 9590, 9209, 8148, 8914, 7861, 8453, 7122, 7823, 8481, 8240, 7398, 9550, 8022, 8382, 9179, 9102, 9462, 6672, 9591, 9210, 8149, 8915, 7862, 8454, 7123, 7824, 8482, 8241, 7399, 9551, 8023, 8383, 9180, 9103, 9463, 6673, 9592, 9211, 8150, 8916, 7863, 8455, 7124, 7825, 8483, 8242, 7400, 9552, 8024, 8384, 9181, 9104, 9464, 6674, 9593, 9212, 8151, 8917, 7864, 8456, 7125, 7826, 8484, 8243, 7401, 9553, 8025, 8385, 9182, 9105, 9465, 6675, 9594, 9213, 8152, 8918, 7865, 8457, 7126, 7827, 8485, 8244, 7402, 9554, 8026, 8386, 9183, 9106, 9466, 6676, 9595, 9214, 8153, 8919, 7866, 8458, 7127, 7828, 8486, 8245, 7403, 9555, 8027, 8387, 9184, 9107, 9467, 6677, 9596, 9215, 8154, 8920, 7867, 8459, 7128, 7829, 8487, 8246, 7404, 9556, 8028, 8388, 9185, 9108, 9468, 6678, 9597, 9216, 8155, 8921, 7868, 8460, 7129, 7830, 8488, 8247, 7405, 9557, 8029, 8389, 9186, 9109, 9469, 6679, 9598, 9217, 8156, 8922, 7869, 8461, 7130, 7831, 8489, 8248, 7406, 9558, 8030, 8390, 9187, 9110, 9470, 6680, 9599, 9218, 8157, 8923, 7870, 8462, 7131, 7832, 8490, 8249, 7407, 9559, 8031, 8391, 9188, 9111, 9471, 6681, 9600, 9219, 8158, 8924, 7871, 8463, 7132, 7833, 8491, 8250, 7408, 9560, 8032, 8392, 9189, 9112, 9472, 6682, 9601, 9220, 8159, 8925, 7872, 8464, 7133, 7834, 8492, 8251, 7409, 9561, 8033, 8393, 9190, 9113, 9473, 6683, 9602, 9221, 8160, 8926, 7873, 8465, 7134, 7835, 8493, 8252, 7410, 9562, 8034, 8394, 9191, 9114, 9474, 6684, 9603, 9222, 8161, 8927, 7874, 8466, 7135, 7836, 8494, 8253, 7411, 9563, 8035, 8395, 9192, 9115, 9475, 6685, 9604, 9223, 8162, 8928, 7875, 8467, 7136, 7837, 8495, 8254, 7412, 9564, 8036, 8396, 9193, 9116, 9476, 6686, 9605, 9224, 8163, 8929, 7876, 8468, 7137, 7838, 8496, 8255, 7413, 9565, 8037, 8397, 9194, 9117, 9477, 6687, 9606, 9225, 8164, 8930, 7877, 8469, 7138, 7839, 8497, 8256, 7414, 9566, 8038, 8398, 9195, 9118, 9478, 6688, 9607, 9226, 8165, 8931, 7878, 8470, 7139, 7840, 8498, 8257, 7415, 9567, 8039, 8399, 9196, 9119, 9479, 6689, 9608, 9227, 8166, 8932, 7879, 8471, 7140, 7841, 8499, 8258, 7416, 9568, 8040, 8400, 9197, 9120, 9480, 6690, 9609, 9228, 8167, 8933, 7880, 8472, 7141, 7842, 8500, 8259, 7417, 9569, 8041, 8401, 9198, 9121, 9481, 6691, 9610, 9229, 8168, 8934, 7881, 8473, 7142, 7843, 8501, 8260, 7418, 9570, 8042, 8402, 9199, 9122, 9482, 6692, 9611, 9230, 8169, 8935, 7882, 8474, 7143, 7844, 8502, 8261, 7419, 9571, 8043, 8403, 9200, 9123, 9483, 6693, 9612, 9231, 8170, 8936, 7883, 8475, 7144, 7845, 8503, 8262, 7420, 9572, 8044, 8404, 9201, 9124, 9484, 6694, 9613, 9232, 8171, 8937, 7884, 8476, 7145, 7846, 8504, 8263, 7421, 9573, 8045, 8405, 9202, 9125, 9485, 6695, 9614, 9233, 8172, 8938, 7885, 8477, 7146, 7847, 8505, 8264, 7422, 9574, 8046, 8406, 9203, 9126, 9486, 6696, 9615, 9234, 8173, 8939, 7886, 8478, 7147, 7848, 8506, 8265, 7423, 9575, 8047, 8407, 9204, 9127, 9487, 6697, 9616, 9235, 8174, 8940, 7887, 8479, 7148, 7849, 8507, 8266, 7424, 9576, 8048, 8408, 9205, 9128, 9488, 6698, 9617, 9236, 8175, 8941, 7888, 8480, 7149, 7850, 8508, 8267, 7425, 9577, 8049, 8409, 9206, 9129, 9489, 6699, 9618, 9237, 8176, 8942, 7889, 8481, 7150, 7851, 8509, 8268, 7426, 9578, 8050, 8410, 9207, 9130, 9490, 6700, 9619, 9238, 8177, 8943, 7890, 8482, 7151, 7852, 8510, 8269, 7427, 9579, 8051, 8411, 9208, 9131, 9491, 6701, 9620, 9239, 8178, 8944, 7891, 8483, 7152, 7853, 8511, 8270, 7428, 9580, 8052, 8412, 9209, 9132, 9492, 6702, 9621, 9240, 8179, 8945, 7892, 8484, 7153, 7854, 8512, 8271, 7429, 9581, 8053, 8413, 9210, 9133, 9493, 6703, 9622, 9241, 8180, 8946, 7893, 8485, 7154, 7855, 8513, 8272, 7430, 9582, 8054, 8414, 9211, 9134, 9494, 6704, 9623, 9242, 8181, 8947, 7894, 8486, 7155, 7856, 8514, 8273, 7431, 9583, 8055, 8415, 9212, 9135, 9495, 6705, 9624, 9243, 8182, 8948, 7895, 8487, 7156, 7857, 8515, 8274, 7432, 9584, 8056, 8416, 9213, 9136, 9496, 6706, 9625, 9244, 8183, 8949, 7896, 8488, 7157, 7858, 8516, 8275, 7433, 9585, 8057, 8417, 9214, 9137, 9497, 6707, 9626, 9245, 8184, 8950, 7897, 8489, 7158, 7859, 8517, 8276, 7434, 9586, 8058, 8418, 9215, 9138, 9498, 6708, 9627, 9246, 8185, 8951, 7898, 8490, 7159, 7860, 8518, 8277, 7435, 9587, 8059, 8419, 9216, 9139, 9499, 6709, 9628, 9247, 8186, 8952, 7899, 8491, 7160, 7861, 8519, 8278, 7436, 9588, 8060, 8420, 9217, 9140, 9500, 6710, 9629, 9248, 8187, 8953, 7900, 8492, 7161, 7862, 8520, 8279, 7437, 9589, 8061, 8421, 9218, 9141, 9501, 6711, 9630, 9249, 8188, 8954, 7901, 8493, 7162, 7863, 8521, 8280, 7438, 9590, 8062, 8422, 9219, 9142, 9502, 6712, 9631, 9250, 8189, 8955, 7902, 8494, 7163, 7864, 8522, 7921, 7439, 9591, 8063, 8423, 9220, 9143, 9503, 6713, 9632, 9251, 8190, 8956, 7903, 8495, 7164, 7865, 8523, 7922, 7440, 9592, 8064, 8424, 9221, 9144, 9504, 6714, 9633, 9252, 8191, 8957, 7904, 8496, 7165, 7866, 8524, 7923, 7441, 9593, 8065, 8425, 9222, 9145, 9505, 6715, 9634, 9253, 8192, 8958, 7905, 8497, 7166, 7867, 8525, 7924, 7442, 9594, 8066, 8426, 9223, 9146, 9506, 6716, 9635, 9254, 8193, 8959, 7906, 8498, 7167, 7868, 8526, 7925, 7443, 9595, 8067, 8427, 9224, 9147, 9507, 6717, 9636, 9255, 8194, 8960, 7907, 8499, 7168, 7869, 8527, 7926, 7444, 9596, 8068, 8428, 9225, 9148, 9508, 6718, 9637, 9256, 8195, 8961, 7908, 8500, 7169, 7870, 8528, 7927, 7445, 9597, 8069, 8429, 9226, 9149, 9509, 6719, 9638, 9257, 8196, 8962, 7909, 8501, 7170, 7871, 8529, 7928, 7446, 9598, 8070, 8430, 9227, 9150, 9510, 6720, 9639, 9258, 8197, 8963, 7910, 8502, 7171, 7872, 8530, 7929, 7447, 9599, 8071, 8431, 9228, 9151, 9511, 6721, 9640, 9259, 8198, 8964, 7911, 8503, 7172, 7873, 8531, 7930, 7448, 9600, 8072, 8432, 9229, 9152, 9512, 6722, 9641, 9260, 8199, 8965, 7912, 8504, 7173, 7874, 8532, 7931, 7449, 9601, 8073, 8433, 9230, 9153, 9513, 6723, 9642, 9261, 8200, 8966, 7913, 8505, 7174, 7875, 8533, 7932, 7450, 9602, 8074, 8434, 9231, 9154, 9514, 6724, 9643, 9262, 8201, 8967, 7914, 8506, 7175, 7876, 8534, 7933, 7451, 9603, 8075, 8435, 9232, 9155, 9515, 6725, 9644, 9263, 8202, 8968, 7915, 8507, 7176, 7877, 8535, 7934, 7452, 9604, 8076, 8436, 9233, 9156, 9516, 6726, 9645, 9264, 8203, 8969, 7916, 8508, 7177, 7878, 8536, 7935, 7453, 9605, 8077, 8437, 9234, 9157, 9517, 6727, 9646, 9265, 8204, 8970, 7917, 8509, 7178, 7879, 8537, 7936, 7454, 9606, 8078, 8438, 9235, 9158, 9518, 6728, 9647, 9266, 8205, 8971, 7918, 8510, 7179, 7880, 8538, 7937, 7455, 9607, 8079, 8439, 9236, 9159, 9519, 6729, 9648, 9267, 8206, 8972, 7919, 8511, 7180, 7881, 8539, 7938, 7456, 9608, 8080, 8440, 9237, 9160, 9520, 6730, 9649, 9268, 8207, 8973, 7920, 8512, 7181, 7882, 8540, 7939, 7457, 9609, 8081, 8441, 9238, 9161, 9521, 6731, 9650, 9269, 8208, 8974, 7561, 8513, 7182, 7883, 8541, 7940, 7458, 9610, 8082, 8442, 9239, 9162, 9522, 6732, 9651, 9270, 8209, 8975, 7562, 8514, 7183, 7884, 8542, 7941, 7459, 9611, 8083, 8443, 9240, 9163, 9523, 6733, 9652, 9271, 8210, 8976, 7563, 8515, 7184, 7885, 8543, 7942, 7460, 9612, 8084, 8444, 9241, 9164, 9524, 6734, 9653, 9272, 8211, 8977, 7564, 8516, 7185, 7886, 8544, 7943, 7461, 9613, 8085, 8445, 9242, 9165, 9525, 6735, 9654, 9273, 8212, 8978, 7565, 8517, 7186, 7887, 8545, 7944, 7462, 9614, 8086, 8446, 9243, 9166, 9526, 6736, 9655, 9274, 8213, 8979, 7566, 8518, 7187, 7888, 8546, 7945, 7463, 9615, 8087, 8447, 9244, 9167, 9527, 6737, 9656, 9275, 8214, 8980, 7567, 8519, 7188, 7889, 8547, 7946, 7464, 9616, 8088, 8448, 9245, 9168, 9528, 6738, 9657, 9276, 8215, 8981, 7568, 8520, 7189, 7890, 8548, 7947, 7465, 9617, 8089, 8449, 9246, 9169, 9529, 6739, 9658, 9277, 8216, 8982, 7569, 8521, 7190, 7891, 8549, 7948, 7466, 9618, 8090, 8450, 9247, 9170, 9530, 6740, 9659, 9278, 8217, 8983, 7570, 8522, 7191, 7892, 8550, 7949, 7467, 9619, 8091, 8451, 9248, 9171, 9531, 6741, 9660, 9279, 8218, 8984, 7571, 8523, 7192, 7893, 8551, 7950, 7468, 9620, 8092, 8452, 9249, 9172, 9532, 6742, 9661, 9280, 8219, 8985, 7572, 8524, 7193, 7894, 8552, 7951, 7469, 9621, 8093, 8453, 9250, 9173, 9533, 6743, 9662, 9281, 8220, 8986, 7573, 8525, 7194, 7895, 8553, 7952, 7470, 9622, 8094, 8454, 9251, 9174, 9534, 6744, 9663, 9282, 8221, 8987, 7574, 8526, 7195, 7896, 8554, 7953, 7471, 9623, 8095, 8455, 9252, 9175, 9535, 6745, 9664, 9283, 8222, 8988, 7575, 8527, 7196, 7897, 8555, 7954, 7472, 9624, 8096, 8456, 9253, 9176, 9536, 6746, 9665, 9284, 8223, 8989, 7576, 8528, 7197, 7898, 8556, 7955, 7473, 9625, 8097, 8457, 9254, 9177, 9537, 6747, 9666, 9285, 8224, 8990, 7577, 8529, 7198, 7899, 8557, 7956, 7474, 9626, 8098, 8458, 9255, 9178, 9538, 6748, 9667, 9286, 8225, 8991, 7578, 8530, 7199, 7900, 8558, 7957, 7475, 9627, 8099, 8459, 9256, 9179, 9539, 6749, 9668, 9287, 8226, 8992, 7579, 8531, 7200, 7901, 8559, 7958, 7476, 9628, 8100, 8460, 9257, 9180, 9540, 6750, 9669, 9288, 8227, 8993, 7580, 8532, 6841, 7902, 8560, 7959, 7477, 9629, 8101, 8461, 9258, 9181, 9541, 6751, 9670, 9289, 8228, 8994, 7581, 8533, 6842, 7903, 8561, 7960, 7478, 9630, 8102, 8462, 9259, 9182, 9542, 6752, 9671, 9290, 8229, 8995, 7582, 8534, 6843, 7904, 8562, 7961, 7479, 9631, 8103, 8463, 9260, 9183, 9543, 6753, 9672, 9291, 8230, 8996, 7583, 8535, 6844, 7905, 8563, 7962, 7480, 9632, 8104, 8464, 9261, 9184, 9544, 6754, 9673, 9292, 8231, 8997, 7584, 8536, 6845, 7906, 8564, 7963, 7481, 9633, 8105, 8465, 9262, 9185, 9545, 6755, 9674, 9293, 8232, 8998, 7585, 8537, 6846, 7907, 8565, 7964, 7482, 9634, 8106, 8466, 9263, 9186, 9546, 6756, 9675, 9294, 8233, 8999, 7586, 8538, 6847, 7908, 8566, 7965, 7483, 9635, 8107, 8467, 9264, 9187, 9547, 6757, 9676, 9295, 8234, 9000, 7587, 8539, 6848, 7909, 8567, 7966, 7484, 9636, 8108, 8468, 9265, 9188, 9548, 6758, 9677, 9296, 8235, 8641, 7588, 8540, 6849, 7910, 8568, 7967, 7485, 9637, 8109, 8469, 9266, 9189, 9549, 6759, 9678, 9297, 8236, 8642, 7589, 8541, 6850, 7911, 8569, 7968, 7486, 9638, 8110, 8470, 9267, 9190, 9550, 6760, 9679, 9298, 8237, 8643, 7590, 8542, 6851, 7912, 8570, 7969, 7487, 9639, 8111, 8471, 9268, 9191, 9551, 6761, 9680, 9299, 8238, 8644, 7591, 8543, 6852, 7913, 8571, 7970, 7488, 9640, 8112, 8472, 9269, 9192, 9552, 6762, 9681, 9300, 8239, 8645, 7592, 8544, 6853, 7914, 8572, 7971, 7489, 9641, 8113, 8473, 9270, 9193, 9553, 6763, 9682, 9301, 8240, 8646, 7593, 8545, 6854, 7915, 8573, 7972, 7490, 9642, 8114, 8474, 9271, 9194, 9554, 6764, 9683, 9302, 8241, 8647, 7594, 8546, 6855, 7916, 8574, 7973, 7491, 9643, 8115, 8475, 9272, 9195, 9555, 6765, 9684, 9303, 8242, 8648, 7595, 8547, 6856, 7917, 8575, 7974, 7492, 9644, 8116, 8476, 9273, 9196, 9556, 6766, 9685, 9304, 8243, 8649, 7596, 8548, 6857, 7918, 8576, 7975, 7493, 9645, 8117, 8477, 9274, 9197, 9557, 6767, 9686, 9305, 8244, 8650, 7597, 8549, 6858, 7919, 8577, 7976, 7494, 9646, 8118, 8478, 9275, 9198, 9558, 6768, 9687, 9306, 8245, 8651, 7598, 8550, 6859, 7920, 8578, 7977, 7495, 9647, 8119, 8479, 9276, 9199, 9559, 6769, 9688, 9307, 8246, 8652, 7599, 8551, 6860, 7561, 8579, 7978, 7496, 9648, 8120, 8480, 9277, 9200, 9560, 6770, 9689, 9308, 8247, 8653, 7600, 8552, 6861, 7562, 8580, 7979, 7497, 9649, 8121, 8481, 9278, 9201, 9561, 6771, 9690, 9309, 8248, 8654, 7601, 8553, 6862, 7563, 8581, 7980, 7498, 9650, 8122, 8482, 9279, 9202, 9562, 6772, 9691, 9310, 8249, 8655, 7602, 8554, 6863, 7564, 8582, 7981, 7499, 9651, 8123, 8483, 9280, 9203, 9563, 6773, 9692, 9311, 8250, 8656, 7603, 8555, 6864, 7565, 8583, 7982, 7500, 9652, 8124, 8484, 9281, 9204, 9564, 6774, 9693, 9312, 8251, 8657, 7604, 8556, 6865, 7566, 8584, 7983, 7501, 9653, 8125, 8485, 9282, 9205, 9565, 6775, 9694, 9313, 8252, 8658, 7605, 8557, 6866, 7567, 8585, 7984, 7502, 9654, 8126, 8486, 9283, 9206, 9566, 6776, 9695, 9314, 8253, 8659, 7606, 8558, 6867, 7568, 8586, 7985, 7503, 9655, 8127, 8487, 9284, 9207, 9567, 6777, 9696, 9315, 8254, 8660, 7607, 8559, 6868, 7569, 8587, 7986, 7504, 9656, 8128, 8488, 9285, 9208, 9568, 6778, 9697, 9316, 8255, 8661, 7608, 8560, 6869, 7570, 8588, 7987, 7505, 9657, 8129, 8489, 9286, 9209, 9569, 6779, 9698, 9317, 8256, 8662, 7609, 8561, 6870, 7571, 8589, 7988, 7506, 9658, 8130, 8490, 9287, 9210, 9570, 6780, 9699, 9318, 8257, 8663, 7610, 8562, 6871, 7572, 8590, 7989, 7507, 9659, 8131, 8491, 9288, 9211, 9571, 6781, 9700, 9319, 8258, 8664, 7611, 8563, 6872, 7573, 8591, 7990, 7508, 9660, 8132, 8492, 9289, 9212, 9572, 6782, 9701, 9320, 8259, 8665, 7612, 8564, 6873, 7574, 8592, 7991, 7509, 9661, 8133, 8493, 9290, 9213, 9573, 6783, 9702, 9321, 8260, 8666, 7613, 8565, 6874, 7575, 8593, 7992, 7510, 9662, 8134, 8494, 9291, 9214, 9574, 6784, 9703, 9322, 8261, 8667, 7614, 8566, 6875, 7576, 8594, 7993, 7511, 9663, 8135, 8495, 9292, 9215, 9575, 6785, 9704, 9323, 8262, 8668, 7615, 8567, 6876, 7577, 8595, 7994, 7512, 9664, 8136, 8496, 9293, 9216, 9576, 6786, 9705, 9324, 8263, 8669, 7616, 8568, 6877, 7578, 8596, 7995, 7513, 9665, 8137, 8497, 9294, 9217, 9577, 6787, 9706, 9325, 8264, 8670, 7617, 8569, 6878, 7579, 8597, 7996, 7514, 9666, 8138, 8498, 9295, 9218, 9578, 6788, 9707, 9326, 8265, 8671, 7618, 8570, 6879, 7580, 8598, 7997, 7515, 9667, 8139, 8499, 9296, 9219, 9579, 6789, 9708, 9327, 8266, 8672, 7619, 8571, 6880, 7581, 8599, 7998, 7516, 9668, 8140, 8500, 9297, 9220, 9580, 6790, 9709, 9328, 8267, 8673, 7620, 8572, 6881, 7582, 8600, 7999, 7517, 9669, 8141, 8501, 9298, 9221, 9581, 6791, 9710, 9329, 8268, 8674, 7621, 8573, 6882, 7583, 8601, 8000, 7518, 9670, 8142, 8502, 9299, 9222, 9582, 6792, 9711, 9330, 8269, 8675, 7622, 8574, 6883, 7584, 8602, 8001, 7519, 9671, 8143, 8503, 9300, 9223, 9583, 6793, 9712, 9331, 8270, 8676, 7623, 8575, 6884, 7585, 8603, 8002, 7520, 9672, 8144, 8504, 9301, 9224, 9584, 6794, 9713, 9332, 8271, 8677, 7624, 8576, 6885, 7586, 8604, 8003, 7521, 9673, 8145, 8505, 9302, 9225, 9585, 6795, 9714, 9333, 8272, 8678, 7625, 8577, 6886, 7587, 8605, 8004, 7522, 9674, 8146, 8506, 9303, 9226, 9586, 6796, 9715, 9334, 8273, 8679, 7626, 8578, 6887, 7588, 8606, 8005, 7523, 9675, 8147, 8507, 9304, 9227, 9587, 6797, 9716, 9335, 8274, 8680, 7627, 8579, 6888, 7589, 8607, 8006, 7524, 9676, 8148, 8508, 9305, 9228, 9588, 6798, 9717, 9336, 8275, 8681, 7628, 8580, 6889, 7590, 8608, 8007, 7525, 9677, 8149, 8509, 9306, 9229, 9589, 6799, 9718, 9337, 8276, 8682, 7629, 8581, 6890, 7591, 8609, 8008, 7526, 9678, 8150, 8510, 9307, 9230, 9590, 6800, 9719, 9338, 8277, 8683, 7630, 8582, 6891, 7592, 8610, 8009, 7527, 9679, 8151, 8511, 9308, 9231, 9591, 6801, 9720, 9339, 8278, 8684, 7631, 8583, 6892, 7593, 8611, 8010, 7528, 9680, 8152, 8512, 9309, 9232, 9592, 6802, 9361, 9340, 8279, 8685, 7632, 8584, 6893, 7594, 8612, 8011, 7529, 9681, 8153, 8513, 9310, 9233, 9593, 6803, 9362, 9341, 8280, 8686, 7633, 8585, 6894, 7595, 8613, 8012, 7530, 9682, 8154, 8514, 9311, 9234, 9594, 6804, 9363, 9342, 7921, 8687, 7634, 8586, 6895, 7596, 8614, 8013, 7531, 9683, 8155, 8515, 9312, 9235, 9595, 6805, 9364, 9343, 7922, 8688, 7635, 8587, 6896, 7597, 8615, 8014, 7532, 9684, 8156, 8516, 9313, 9236, 9596, 6806, 9365, 9344, 7923, 8689, 7636, 8588, 6897, 7598, 8616, 8015, 7533, 9685, 8157, 8517, 9314, 9237, 9597, 6807, 9366, 9345, 7924, 8690, 7637, 8589, 6898, 7599, 8617, 8016, 7534, 9686, 8158, 8518, 9315, 9238, 9598, 6808, 9367, 9346, 7925, 8691, 7638, 8590, 6899, 7600, 8618, 8017, 7535, 9687, 8159, 8519, 9316, 9239, 9599, 6809, 9368, 9347, 7926, 8692, 7639, 8591, 6900, 7601, 8619, 8018, 7536, 9688, 8160, 8520, 9317, 9240, 9600, 6810, 9369, 9348, 7927, 8693, 7640, 8592, 6901, 7602, 8620, 8019, 7537, 9689, 8161, 8521, 9318, 9241, 9601, 6811, 9370, 9349, 7928, 8694, 7641, 8593, 6902, 7603, 8621, 8020, 7538, 9690, 8162, 8522, 9319, 9242, 9602, 6812, 9371, 9350, 7929, 8695, 7642, 8594, 6903, 7604, 8622, 8021, 7539, 9691, 8163, 8523, 9320, 9243, 9603, 6813, 9372, 9351, 7930, 8696, 7643, 8595, 6904, 7605, 8623, 8022, 7540, 9692, 8164, 8524, 9321, 9244, 9604, 6814, 9373, 9352, 7931, 8697, 7644, 8596, 6905, 7606, 8624, 8023, 7541, 9693, 8165, 8525, 9322, 9245, 9605, 6815, 9374, 9353, 7932, 8698, 7645, 8597, 6906, 7607, 8625, 8024, 7542, 9694, 8166, 8526, 9323, 9246, 9606, 6816, 9375, 9354, 7933, 8699, 7646, 8598, 6907, 7608, 8626, 8025, 7543, 9695, 8167, 8527, 9324, 9247, 9607, 6817, 9376, 9355, 7934, 8700, 7647, 8599, 6908, 7609, 8627, 8026, 7544, 9696, 8168, 8528, 9325, 9248, 9608, 6818, 9377, 9356, 7935, 8701, 7648, 8600, 6909, 7610, 8628, 8027, 7545, 9697, 8169, 8529, 9326, 9249, 9609, 6819, 9378, 9357, 7936, 8702, 7649, 8601, 6910, 7611, 8629, 8028, 7546, 9698, 8170, 8530, 9327, 9250, 9610, 6820, 9379, 9358, 7937, 8703, 7650, 8602, 6911, 7612, 8630, 8029, 7547, 9699, 8171, 8531, 9328, 9251, 9611, 6821, 9380, 9359, 7938, 8704, 7651, 8603, 6912, 7613, 8631, 8030, 7548, 9700, 8172, 8532, 9329, 9252, 9612, 6822, 9381, 9360, 7939, 8705, 7652, 8604, 6913, 7614, 8632, 8031, 7549, 9701, 8173, 8533, 9330, 9253, 9613, 6823, 9382, 9001, 7940, 8706, 7653, 8605, 6914, 7615, 8633, 8032, 7550, 9702, 8174, 8534, 9331, 9254, 9614, 6824, 9383, 9002, 7941, 8707, 7654, 8606, 6915, 7616, 8634, 8033, 7551, 9703, 8175, 8535, 9332, 9255, 9615, 6825, 9384, 9003, 7942, 8708, 7655, 8607, 6916, 7617, 8635, 8034, 7552, 9704, 8176, 8536, 9333, 9256, 9616, 6826, 9385, 9004, 7943, 8709, 7656, 8608, 6917, 7618, 8636, 8035, 7553, 9705, 8177, 8537, 9334, 9257, 9617, 6827, 9386, 9005, 7944, 8710, 7657, 8609, 6918, 7619, 8637, 8036, 7554, 9706, 8178, 8538, 9335, 9258, 9618, 6828, 9387, 9006, 7945, 8711, 7658, 8610, 6919, 7620, 8638, 8037, 7555, 9707, 8179, 8539, 9336, 9259, 9619, 6829, 9388, 9007, 7946, 8712, 7659, 8611, 6920, 7621, 8639, 8038, 7556, 9708, 8180, 8540, 9337, 9260, 9620, 6830, 9389, 9008, 7947, 8713, 7660, 8612, 6921, 7622, 8640, 8039, 7557, 9709, 8181, 8541, 9338, 9261, 9621, 6831, 9390, 9009, 7948, 8714, 7661, 8613, 6922, 7623, 8281, 8040, 7558, 9710, 8182, 8542, 9339, 9262, 9622, 6832, 9391, 9010, 7949, 8715, 7662, 8614, 6923, 7624, 8282, 8041, 7559, 9711, 8183, 8543, 9340, 9263, 9623, 6833, 9392, 9011, 7950, 8716, 7663, 8615, 6924, 7625, 8283, 8042, 7560, 9712, 8184, 8544, 9341, 9264, 9624, 6834, 9393, 9012, 7951, 8717, 7664, 8616, 6925, 7626, 8284, 8043, 7465, 9713, 8185, 8545, 9342, 9265, 9625, 6835, 9394, 9013, 7952, 8718, 7665, 8617, 6926, 7627, 8285, 8044, 7466, 9714, 8186, 8546, 9343, 9266, 9626, 6836, 9395, 9014, 7953, 8719, 7666, 8618, 6927, 7628, 8286, 8045, 7467, 9715, 8187, 8547, 9344, 9267, 9627, 6837, 9396, 9015, 7954, 8720, 7667, 8619, 6928, 7629, 8287, 8046, 7468, 9716, 8188, 8548, 9345, 9268, 9628, 6838, 9397, 9016, 7955, 8721, 7668, 8620, 6929, 7630, 8288, 8047, 7469, 9717, 8189, 8549, 9346, 9269, 9629, 6839, 9398, 9017, 7956, 8722, 7669, 8621, 6930, 7631, 8289, 8048, 7470, 9718, 8190, 8550, 9347, 9270, 9630, 6840, 9399, 9018, 7957, 8723, 7670, 8622, 6931, 7632, 8290, 8049, 7471, 9719, 8191, 8551, 9348, 9271, 9631, 6481, 9400, 9019, 7958, 8724, 7671, 8623, 6932, 7633, 8291, 8050, 7472, 9720, 8192, 8552, 9349, 9272, 9632, 6482, 9401, 9020, 7959, 8725, 7672, 8624, 6933, 7634, 8292, 8051, 7473, 9361, 8193, 8553, 9350, 9273, 9633, 6483, 9402, 9021, 7960, 8726, 7673, 8625, 6934, 7635, 8293, 8052, 7474, 9362, 8194, 8554, 9351, 9274, 9634, 6484, 9403, 9022, 7961, 8727, 7674, 8626, 6935, 7636, 8294, 8053, 7475, 9363, 8195, 8555, 9352, 9275, 9635, 6485, 9404, 9023, 7962, 8728, 7675, 8627, 6936, 7637, 8295, 8054, 7476, 9364, 8196, 8556, 9353, 9276, 9636, 6486, 9405, 9024, 7963, 8729, 7676, 8628, 6937, 7638, 8296, 8055, 7477, 9365, 8197, 8557, 9354, 9277, 9637, 6487, 9406, 9025, 7964, 8730, 7677, 8629, 6938, 7639, 8297, 8056, 7478, 9366, 8198, 8558, 9355, 9278, 9638, 6488, 9407, 9026, 7965, 8731, 7678, 8630, 6939, 7640, 8298, 8057, 7479, 9367, 8199, 8559, 9356, 9279, 9639, 6489, 9408, 9027, 7966, 8732, 7679, 8631, 6940, 7641, 8299, 8058, 7480, 9368, 8200, 8560, 9357, 9280, 9640, 6490, 9409, 9028, 7967, 8733, 7680, 8632, 6941, 7642, 8300, 8059, 7481, 9369, 8201, 8561, 9358, 9281, 9641, 6491, 9410, 9029, 7968, 8734, 7681, 8633, 6942, 7643, 8301, 8060, 7482, 9370, 8202, 8562, 9359, 9282, 9642, 6492, 9411, 9030, 7969, 8735, 7682, 8634, 6943, 7644, 8302, 8061, 7483, 9371, 8203, 8563, 9360, 9283, 9643, 6493, 9412, 9031, 7970, 8736, 7683, 8635, 6944, 7645, 8303, 8062, 7484, 9372, 8204, 8564, 9001, 9284, 9644, 6494, 9413, 9032, 7971, 8737, 7684, 8636, 6945, 7646, 8304, 8063, 7485, 9373, 8205, 8565, 9002, 9285, 9645, 6495, 9414, 9033, 7972, 8738, 7685, 8637, 6946, 7647, 8305, 8064, 7486, 9374, 8206, 8566, 9003, 9286, 9646, 6496, 9415, 9034, 7973, 8739, 7686, 8638, 6947, 7648, 8306, 8065, 7487, 9375, 8207, 8567, 9004, 9287, 9647, 6497, 9416, 9035, 7974, 8740, 7687, 8639, 6948, 7649, 8307, 8066, 7488, 9376, 8208, 8568, 9005, 9288, 9648, 6498, 9417, 9036, 7975, 8741, 7688, 8640, 6949, 7650, 8308, 8067, 7489, 9377, 8209, 8569, 9006, 9289, 9649, 6499, 9418, 9037, 7976, 8742, 7689, 8281, 6950, 7651, 8309, 8068, 7490, 9378, 8210, 8570, 9007, 9290, 9650, 6500, 9419, 9038, 7977, 8743, 7690, 8282, 6951, 7652, 8310, 8069, 7491, 9379, 8211, 8571, 9008, 9291, 9651, 6501, 9420, 9039, 7978, 8744, 7691, 8283, 6952, 7653, 8311, 8070, 7492, 9380, 8212, 8572, 9009, 9292, 9652, 6502, 9421, 9040, 7979, 8745, 7692, 8284, 6953, 7654, 8312, 8071, 7493, 9381, 8213, 8573, 9010, 9293, 9653, 6503, 9422, 9041, 7980, 8746, 7693, 8285, 6954, 7655, 8313, 8072, 7494, 9382, 8214, 8574, 9011, 9294, 9654, 6504, 9423, 9042, 7981, 8747, 7694, 8286, 6955, 7656, 8314, 8073, 7495, 9383, 8215, 8575, 9012, 9295, 9655, 6505, 9424, 9043, 7982, 8748, 7695, 8287, 6956, 7657, 8315, 8074, 7496, 9384, 8216, 8576, 9013, 9296, 9656, 6506, 9425, 9044, 7983, 8749, 7696, 8288, 6957, 7658, 8316, 8075, 7497, 9385, 8217, 8577, 9014, 9297, 9657, 6507, 9426, 9045, 7984, 8750, 7697, 8289, 6958, 7659, 8317, 8076, 7498, 9386, 8218, 8578, 9015, 9298, 9658, 6508, 9427, 9046, 7985, 8751, 7698, 8290, 6959, 7660, 8318, 8077, 7499, 9387, 8219, 8579, 9016, 9299, 9659, 6509, 9428, 9047, 7986, 8752, 7699, 8291, 6960, 7661, 8319, 8078, 7500, 9388, 8220, 8580, 9017, 9300, 9660, 6510, 9429, 9048, 7987, 8753, 7700, 8292, 6961, 7662, 8320, 8079, 7501, 9389, 8221, 8581, 9018, 9301, 9661, 6511, 9430, 9049, 7988, 8754, 7701, 8293, 6962, 7663, 8321, 8080, 7502, 9390, 8222, 8582, 9019, 9302, 9662, 6512, 9431, 9050, 7989, 8755, 7702, 8294, 6963, 7664, 8322, 8081, 7503, 9391, 8223, 8583, 9020, 9303, 9663, 6513, 9432, 9051, 7990, 8756, 7703, 8295, 6964, 7665, 8323, 8082, 7504, 9392, 8224, 8584, 9021, 9304, 9664, 6514, 9433, 9052, 7991, 8757, 7704, 8296, 6965, 7666, 8324, 8083, 7505, 9393, 8225, 8585, 9022, 9305, 9665, 6515, 9434, 9053, 7992, 8758, 7705, 8297, 6966, 7667, 8325, 8084, 7506, 9394, 8226, 8586, 9023, 9306, 9666, 6516, 9435, 9054, 7993, 8759, 7706, 8298, 6967, 7668, 8326, 8085, 7507, 9395, 8227, 8587, 9024, 9307, 9667, 6517, 9436, 9055, 7994, 8760, 7707, 8299, 6968, 7669, 8327, 8086, 7508, 9396, 8228, 8588, 9025, 9308, 9668, 6518, 9437, 9056, 7995, 8761, 7708, 8300, 6969, 7670, 8328, 8087, 7509, 9397, 8229, 8589, 9026, 9309, 9669, 6519, 9438, 9057, 7996, 8762, 7709, 8301, 6970, 7671, 8329, 8088, 7510, 9398, 8230, 8590, 9027, 9310, 9670, 6520, 9439, 9058, 7997, 8763, 7710, 8302, 6971, 7672, 8330, 8089, 7511, 9399, 8231, 8591, 9028, 9311, 9671, 6521, 9440, 9059, 7998, 8764, 7711, 8303, 6972, 7673, 8331, 8090, 7512, 9400, 8232, 8592, 9029, 9312, 9672, 6522, 9441, 9060, 7999, 8765, 7712, 8304, 6973, 7674, 8332, 8091, 7513, 9401, 8233, 8593, 9030, 9313, 9673, 6523, 9442, 9061, 8000, 8766, 7713, 8305, 6974, 7675, 8333, 8092, 7514, 9402, 8234, 8594, 9031, 9314, 9674, 6524, 9443, 9062, 8001, 8767, 7714, 8306, 6975, 7676, 8334, 8093, 7515, 9403, 8235, 8595, 9032, 9315, 9675, 6525, 9444, 9063, 8002, 8768, 7715, 8307, 6976, 7677, 8335, 8094, 7516, 9404, 8236, 8596, 9033, 9316, 9676, 6526, 9445, 9064, 8003, 8769, 7716, 8308, 6977, 7678, 8336, 8095, 7517, 9405, 8237, 8597, 9034, 9317, 9677, 6527, 9446, 9065, 8004, 8770, 7717, 8309, 6978, 7679, 8337, 8096, 7518, 9406, 8238, 8598, 9035, 9318, 9678, 6528, 9447, 9066, 8005, 8771, 7718, 8310, 6979, 7680, 8338, 8097, 7519, 9407, 8239, 8599, 9036, 9319, 9679, 6529, 9448, 9067, 8006, 8772, 7719, 8311, 6980, 7681, 8339, 8098, 7520, 9408, 8240, 8600, 9037, 9320, 9680, 6530, 9449, 9068, 8007, 8773, 7720, 8312, 6981, 7682, 8340, 8099, 7521, 9409, 8241, 8601, 9038, 9321, 9681, 6531, 9450, 9069, 8008, 8774, 7721, 8313, 6982, 7683, 8341, 8100, 7522, 9410, 8242, 8602, 9039, 9322, 9682, 6532, 9451, 9070, 8009, 8775, 7722, 8314, 6983, 7684, 8342, 8101, 7523, 9411, 8243, 8603, 9040, 9323, 9683, 6533, 9452, 9071, 8010, 8776, 7723, 8315, 6984, 7685, 8343, 8102, 7524, 9412, 8244, 8604, 9041, 9324, 9684, 6534, 9453, 9072, 8011, 8777, 7724, 8316, 6985, 7686, 8344, 8103, 7525, 9413, 8245, 8605, 9042, 9325, 9685, 6535, 9454, 9073, 8012, 8778, 7725, 8317, 6986, 7687, 8345, 8104, 7526, 9414, 8246, 8606, 9043, 9326, 9686, 6536, 9455, 9074, 8013, 8779, 7726, 8318, 6987, 7688, 8346, 8105, 7527, 9415, 8247, 8607, 9044, 9327, 9687, 6537, 9456, 9075, 8014, 8780, 7727, 8319, 6988, 7689, 8347, 8106, 7528, 9416, 8248, 8608, 9045, 9328, 9688, 6538, 9457, 9076, 8015, 8781, 7728, 8320, 6989, 7690, 8348, 8107, 7529, 9417, 8249, 8609, 9046, 9329, 9689, 6539, 9458, 9077, 8016, 8782, 7729, 8321, 6990, 7691, 8349, 8108, 7530, 9418, 8250, 8610, 9047, 9330, 9690, 6540, 9459, 9078, 8017, 8783, 7730, 8322, 6991, 7692, 8350, 8109, 7531, 9419, 8251, 8611, 9048, 9331, 9691, 6541, 9460, 9079, 8018, 8784, 7731, 8323, 6992, 7693, 8351, 8110, 7532, 9420, 8252, 8612, 9049, 9332, 9692, 6542, 9461, 9080, 8019, 8785, 7732, 8324, 6993, 7694, 8352, 8111, 7533, 9421, 8253, 8613, 9050, 9333, 9693, 6543, 9462, 9081, 8020, 8786, 7733, 8325, 6994, 7695, 8353, 8112, 7534, 9422, 8254, 8614, 9051, 9334, 9694, 6544, 9463, 9082, 8021, 8787, 7734, 8326, 6995, 7696, 8354, 8113, 7535, 9423, 8255, 8615, 9052, 9335, 9695, 6545, 9464, 9083, 8022, 8788, 7735, 8327, 6996, 7697, 8355, 8114, 7536, 9424, 8256, 8616, 9053, 9336, 9696, 6546, 9465, 9084, 8023, 8789, 7736, 8328, 6997, 7698, 8356, 8115, 7537, 9425, 8257, 8617, 9054, 9337, 9697, 6547, 9466, 9085, 8024, 8790, 7737, 8329, 6998, 7699, 8357, 8116, 7538, 9426, 8258, 8618, 9055, 9338, 9698, 6548, 9467, 9086, 8025, 8791, 7738, 8330, 6999, 7700, 8358, 8117, 7539, 9427, 8259, 8619, 9056, 9339, 9699, 6549, 9468, 9087, 8026, 8792, 7739, 8331, 7000, 7701, 8359, 8118, 7540, 9428, 8260, 8620, 9057, 9340, 9700, 6550, 9469, 9088, 8027, 8793, 7740, 8332, 7001, 7702, 8360, 8119, 7541, 9429, 8261, 8621, 9058, 9341, 9701, 6551, 9470, 9089, 8028, 8794, 7741, 8333, 7002, 7703, 8361, 8120, 7542, 9430, 8262, 8622, 9059, 9342, 9702, 6552, 9471, 9090, 8029, 8795, 7742, 8334, 7003, 7704, 8362, 8121, 7543, 9431, 8263, 8623, 9060, 9343, 9703, 6553, 9472, 9091, 8030, 8796, 7743, 8335, 7004, 7705, 8363, 8122, 7544, 9432, 8264, 8624, 9061, 9344, 9704, 6554, 9473, 9092, 8031, 8797, 7744, 8336, 7005, 7706, 8364, 8123, 7545, 9433, 8265, 8625, 9062, 9345, 9705, 6555, 9474, 9093, 8032, 8798, 7745, 8337, 7006, 7707, 8365, 8124, 7546, 9434, 8266, 8626, 9063, 9346, 9706, 6556, 9475, 9094, 8033, 8799, 7746, 8338, 7007, 7708, 8366, 8125, 7547, 9435, 8267, 8627, 9064, 9347, 9707, 6557, 9476, 9095, 8034, 8800, 7747, 8339, 7008, 7709, 8367, 8126, 7548, 9436, 8268, 8628, 9065, 9348, 9708, 6558, 9477, 9096, 8035, 8801, 7748, 8340, 7009, 7710, 8368, 8127, 7549, 9437, 8269, 8629, 9066, 9349, 9709, 6559, 9478, 9097, 8036, 8802, 7749, 8341, 7010, 7711, 8369, 8128, 7550, 9438, 8270, 8630, 9067, 9350, 9710, 6560, 9479, 9098, 8037, 8803, 7750, 8342, 7011, 7712, 8370, 8129, 7551, 9439, 8271, 8631, 9068, 9351, 9711, 6561, 9480, 9099, 8038, 8804, 7751, 8343, 7012, 7713, 8371, 8130, 7552, 9440, 8272, 8632, 9069, 9352, 9712, 6562, 9481, 9100, 8039, 8805, 7752, 8344, 7013, 7714, 8372, 8131, 7553, 9441, 8273, 8633, 9070, 9353, 9713, 6563, 9482, 9101, 8040, 8806, 7753, 8345, 7014, 7715, 8373, 8132, 7554, 9442, 8274, 8634, 9071, 9354, 9714, 6564, 9483, 9102, 8041, 8807, 7754, 8346, 7015, 7716, 8374, 8133, 7555, 9443, 8275, 8635, 9072, 9355, 9715, 6565, 9484, 9103, 8042, 8808, 7755, 8347, 7016, 7717, 8375, 8134, 7556, 9444, 8276, 8636, 9073, 9356, 9716, 6566, 9485, 9104, 8043, 8809, 7756, 8348, 7017, 7718, 8376, 8135, 7557, 9445, 8277, 8637, 9074, 9357, 9717, 6567, 9486, 9105, 8044, 8810, 7757, 8349, 7018, 7719, 8377, 8136, 7558, 9446, 8278, 8638, 9075, 9358, 9718, 6568, 9487, 9106, 8045, 8811, 7758, 8350, 7019, 7720, 8378, 8137, 7559, 9447, 8279, 8639, 9076, 9359, 9719, 6569, 9488, 9107, 8046, 8812, 7759, 8351, 7020, 7721, 8379, 8138, 7560, 9448, 8280, 8640, 9077, 9360, 9720 +}; + +const uint16_t H_16200_9720_H_cols[] = { +2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; diff --git a/src/H_16200_9720.h b/src/H_16200_9720.h new file mode 100644 index 0000000..72f6181 --- /dev/null +++ b/src/H_16200_9720.h @@ -0,0 +1,16 @@ +/* + FILE....: H_16200_9720.h + + Static arrays for LDPC codec H_16200_9720, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_16200_9720_NUMBERPARITYBITS 6480 +#define H_16200_9720_MAX_ROW_WEIGHT 9 +#define H_16200_9720_CODELENGTH 16200 +#define H_16200_9720_NUMBERROWSHCOLS 9720 +#define H_16200_9720_MAX_COL_WEIGHT 12 +#define H_16200_9720_DEC_TYPE 0 +#define H_16200_9720_MAX_ITER 100 + +extern const uint16_t H_16200_9720_H_rows[]; +extern const uint16_t H_16200_9720_H_cols[]; diff --git a/src/H_2064_516_sparse.c b/src/H_2064_516_sparse.c new file mode 100644 index 0000000..06cedc8 --- /dev/null +++ b/src/H_2064_516_sparse.c @@ -0,0 +1,34 @@ +/* + FILE....: ../src/H_2064_516_sparse.c + + Static arrays for CML LDPC codec, generated + by test_ldpc_fsk.m:simple_ut(). + +*/ + +#define NUMBERPARITYBITS 516 +#define MAX_ROW_WEIGHT 12 +#define CODELENGTH 2580 +#define NUMBERROWSHCOLS 2064 +#define MAX_COL_WEIGHT 3 +#define DEC_TYPE 0 +#define MAX_ITER 10 + +#include +#include "H_2064_516_sparse.h" + +const uint16_t H_2064_516_sparse_H_rows[] = { +870, 276, 110, 54, 226, 85, 59, 153, 31, 60, 46, 75, 139, 239, 56, 13, 30, 45, 63, 34, 54, 21, 77, 204, 441, 11, 297, 126, 148, 104, 269, 57, 369, 213, 117, 479, 53, 124, 405, 97, 42, 132, 67, 103, 389, 156, 237, 105, 418, 11, 60, 12, 195, 32, 11, 21, 10, 191, 176, 237, 140, 376, 115, 9, 149, 304, 129, 308, 234, 129, 453, 215, 176, 213, 151, 169, 41, 106, 421, 103, 83, 62, 124, 3, 574, 39, 31, 472, 69, 8, 40, 352, 62, 275, 74, 121, 125, 35, 83, 52, 21, 422, 229, 233, 62, 125, 181, 175, 28, 43, 113, 340, 71, 4, 40, 249, 134, 168, 97, 15, 26, 135, 104, 80, 206, 108, 307, 494, 358, 82, 159, 137, 19, 210, 6, 19, 65, 285, 45, 154, 276, 14, 137, 79, 241, 235, 116, 129, 84, 3, 122, 370, 132, 451, 77, 89, 262, 79, 170, 469, 24, 163, 128, 18, 120, 244, 8, 153, 151, 441, 95, 327, 284, 96, 84, 35, 61, 286, 20, 22, 68, 131, 106, 30, 280, 343, 99, 124, 262, 208, 277, 44, 349, 41, 10, 761, 39, 445, 165, 81, 393, 194, 18, 250, 589, 70, 307, 1, 365, 47, 4, 9, 283, 133, 90, 601, 117, 228, 212, 58, 420, 230, 142, 25, 57, 518, 88, 180, 24, 122, 379, 143, 33, 30, 140, 68, 150, 320, 55, 33, 132, 2, 22, 16, 272, 44, 264, 49, 174, 234, 86, 39, 10, 278, 177, 178, 20, 126, 18, 90, 6, 184, 158, 111, 246, 229, 221, 48, 267, 6, 172, 49, 291, 185, 67, 50, 157, 66, 32, 525, 257, 196, 260, 92, 72, 163, 144, 329, 134, 156, 47, 82, 49, 391, 26, 1, 88, 52, 56, 8, 111, 138, 219, 57, 447, 182, 263, 38, 98, 75, 36, 83, 245, 5, 419, 63, 12, 287, 603, 58, 507, 37, 2, 214, 539, 55, 53, 81, 186, 73, 85, 97, 91, 332, 123, 66, 188, 591, 158, 324, 88, 53, 214, 84, 389, 104, 271, 211, 7, 393, 281, 242, 119, 848, 705, 428, 50, 28, 52, 15, 5, 2, 230, 38, 76, 295, 217, 1, 56, 170, 145, 5, 72, 460, 203, 145, 211, 121, 68, 538, 44, 133, 87, 494, 325, 161, 781, 370, 51, 115, 262, 106, 614, 29, 220, 189, 224, 165, 17, 72, 46, 17, 64, 19, 447, 13, 9, 270, 4, 91, 471, 35, 23, 407, 34, 38, 82, 321, 112, 195, 651, 7, 43, 431, 249, 171, 196, 311, 15, 66, 16, 633, 37, 94, 102, 23, 3, 214, 252, 256, 173, 316, 125, 96, 341, 71, 73, 338, 256, 165, 140, 108, 471, 434, 137, 642, 172, 51, 113, 67, 172, 93, 23, 318, 514, 50, 118, 245, 169, 14, 64, 40, 859, 95, 308, 65, 93, 42, 339, 46, 7, 96, 142, 36, 131, 60, 13, 12, 25, 31, 183, 94, 43, 241, 162, 26, 232, 120, 128, 118, 89, 164, 51, 29, 127, 177, 180, 95, 332, 284, 32, 802, 452, 25, 382, 187, 892, 432, 162, 126, 587, 342, 205, 170, 255, 73, 605, 579, 398, 305, 58, 110, 178, 244, 306, 178, 166, 28, 368, 224, 582, 135, 420, 618, 264, 234, 346, 223, 439, 399, 150, 655, 242, 248, 750, 199, 242, 277, 112, 163, 545, 359, 487, 322, 570, 64, 402, 412, 252, 116, 147, 109, 27, 197, 204, 251, 282, 455, 118, 390, 225, 382, 215, 373, 554, 371, 568, 289, 225, 405, 160, 414, 290, 109, 524, 406, 344, 188, 385, 33, 791, 261, 171, 475, 100, 183, 156, 564, 78, 395, 144, 497, 334, 45, 167, 79, 27, 520, 239, 449, 138, 347, 667, 572, 61, 278, 136, 375, 231, 320, 167, 304, 389, 185, 171, 109, 468, 243, 206, 210, 305, 160, 682, 514, 433, 152, 375, 1064, 48, 522, 139, 98, 191, 557, 127, 189, 372, 54, 515, 406, 370, 950, 549, 352, 319, 27, 489, 440, 636, 941, 153, 102, 268, 120, 190, 719, 451, 175, 539, 477, 279, 474, 17, 232, 221, 476, 174, 415, 545, 357, 368, 149, 94, 409, 218, 76, 87, 136, 114, 245, 596, 408, 335, 246, 511, 560, 438, 298, 351, 91, 22, 813, 108, 546, 248, 218, 629, 212, 223, 569, 611, 93, 399, 185, 427, 260, 20, 111, 354, 187, 150, 702, 316, 666, 541, 227, 558, 486, 207, 450, 224, 568, 222, 341, 81, 222, 386, 441, 484, 159, 289, 142, 372, 534, 157, 78, 337, 522, 70, 293, 318, 161, 325, 74, 194, 797, 130, 128, 70, 386, 657, 611, 105, 456, 230, 100, 61, 274, 358, 135, 249, 236, 247, 264, 279, 123, 345, 59, 397, 645, 448, 80, 192, 149, 190, 564, 292, 508, 359, 202, 152, 459, 200, 446, 293, 512, 103, 154, 229, 492, 145, 256, 828, 55, 296, 133, 147, 314, 220, 190, 481, 208, 290, 198, 146, 100, 202, 259, 295, 16, 505, 251, 86, 375, 618, 266, 891, 166, 159, 269, 850, 127, 397, 759, 494, 141, 567, 339, 119, 336, 162, 98, 265, 770, 423, 380, 346, 116, 402, 101, 628, 623, 286, 309, 107, 453, 406, 496, 200, 865, 720, 429, 187, 107, 609, 439, 90, 48, 330, 59, 87, 632, 323, 219, 101, 865, 203, 14, 74, 466, 462, 160, 448, 168, 474, 980, 396, 148, 244, 904, 438, 198, 982, 601, 199, 119, 300, 240, 702, 241, 258, 192, 291, 227, 34, 698, 78, 107, 123, 89, 704, 114, 274, 461, 151, 115, 576, 323, 201, 468, 271, 231, 92, 592, 220, 909, 829, 243, 480, 466, 345, 763, 404, 356, 86, 110, 210, 688, 353, 271, 740, 226, 352, 247, 288, 758, 338, 426, 235, 405, 625, 155, 146, 475, 491, 189, 177, 216, 962, 503, 216, 726, 381, 219, 183, 102, 332, 113, 155, 440, 922, 450, 379, 294, 301, 36, 80, 75, 875, 462, 547, 69, 330, 186, 527, 92, 138, 157, 169, 69, 143, 401, 24, 283, 41, 37, 472, 309, 117, 747, 342, 251, 300, 182, 216, 202, 266, 192, 217, 302, 660, 360, 663, 130, 355, 367, 47, 1103, 519, 811, 586, 488, 983, 652, 303, 201, 759, 860, 416, 585, 268, 428, 928, 819, 821, 379, 340, 493, 260, 752, 599, 314, 182, 444, 612, 369, 692, 311, 523, 622, 335, 259, 499, 225, 526, 409, 188, 709, 356, 606, 777, 222, 541, 327, 201, 176, 551, 544, 1008, 372, 628, 181, 523, 549, 476, 464, 240, 593, 181, 254, 223, 305, 285, 595, 217, 887, 550, 552, 278, 381, 621, 517, 953, 538, 265, 581, 313, 540, 366, 626, 647, 511, 467, 508, 890, 63, 976, 275, 312, 885, 598, 254, 180, 687, 196, 398, 146, 675, 380, 101, 443, 122, 85, 531, 347, 463, 167, 536, 724, 710, 288, 351, 232, 387, 424, 650, 363, 544, 540, 248, 279, 121, 479, 267, 218, 445, 485, 240, 737, 692, 1017, 331, 716, 1130, 207, 602, 274, 750, 261, 572, 131, 435, 672, 253, 729, 542, 739, 1062, 731, 619, 328, 65, 769, 502, 898, 966, 158, 211, 289, 193, 314, 784, 533, 396, 567, 497, 280, 696, 348, 290, 383, 636, 526, 470, 622, 541, 411, 286, 378, 561, 374, 194, 349, 166, 143, 390, 697, 533, 570, 304, 615, 709, 476, 679, 454, 287, 114, 904, 535, 786, 270, 308, 828, 302, 506, 732, 626, 533, 584, 186, 456, 495, 350, 317, 672, 343, 315, 919, 367, 820, 548, 296, 614, 635, 209, 543, 350, 733, 239, 376, 287, 344, 470, 563, 607, 319, 323, 473, 428, 677, 212, 263, 386, 567, 435, 328, 616, 255, 729, 147, 320, 855, 267, 426, 261, 458, 977, 670, 173, 478, 366, 112, 71, 419, 968, 139, 606, 292, 275, 463, 344, 671, 810, 77, 465, 755, 579, 179, 353, 357, 442, 599, 354, 805, 453, 407, 193, 510, 285, 513, 583, 645, 325, 173, 621, 573, 423, 479, 912, 130, 300, 227, 184, 391, 293, 204, 673, 282, 371, 324, 313, 228, 334, 343, 655, 42, 532, 559, 658, 484, 921, 373, 944, 329, 184, 302, 861, 205, 414, 771, 606, 312, 652, 503, 413, 415, 238, 449, 781, 874, 586, 544, 402, 468, 525, 155, 845, 714, 295, 564, 197, 509, 863, 640, 209, 986, 808, 691, 317, 355, 789, 779, 281, 141, 594, 336, 105, 682, 360, 299, 559, 876, 608, 315, 401, 632, 480, 161, 577, 284, 657, 1012, 481, 330, 388, 1011, 524, 423, 1019, 812, 416, 168, 322, 258, 710, 703, 1027, 195, 447, 259, 633, 990, 710, 215, 410, 458, 760, 174, 312, 605, 269, 206, 617, 534, 554, 497, 296, 393, 236, 784, 483, 1189, 892, 602, 788, 709, 382, 831, 537, 695, 99, 563, 424, 759, 432, 281, 795, 319, 422, 684, 331, 866, 377, 638, 247, 501, 711, 463, 475, 631, 507, 310, 298, 252, 1059, 757, 364, 785, 410, 233, 411, 236, 487, 339, 341, 473, 1022, 527, 515, 700, 380, 388, 414, 253, 913, 466, 773, 238, 638, 335, 896, 298, 310, 658, 461, 207, 205, 550, 29, 425, 141, 76, 649, 442, 322, 832, 730, 307, 385, 401, 268, 301, 311, 306, 291, 364, 864, 560, 840, 199, 358, 385, 179, 1142, 520, 986, 600, 712, 1018, 661, 365, 237, 769, 953, 517, 605, 396, 459, 991, 867, 899, 415, 700, 556, 324, 788, 639, 778, 226, 743, 685, 706, 883, 362, 970, 785, 387, 376, 734, 392, 730, 448, 250, 731, 387, 665, 1015, 243, 812, 391, 795, 346, 588, 737, 1077, 874, 933, 412, 817, 585, 550, 491, 273, 640, 208, 542, 338, 436, 895, 694, 257, 899, 583, 629, 327, 815, 744, 573, 1226, 727, 272, 607, 331, 1050, 594, 754, 716, 515, 524, 695, 1086, 297, 1177, 400, 678, 1004, 648, 294, 555, 780, 316, 486, 689, 679, 430, 136, 717, 233, 400, 646, 383, 530, 263, 574, 749, 790, 336, 377, 409, 609, 499, 686, 518, 595, 601, 334, 531, 197, 485, 348, 424, 701, 579, 500, 1147, 797, 1085, 404, 738, 1200, 253, 714, 427, 756, 303, 610, 313, 1399, 770, 455, 732, 796, 824, 1230, 927, 929, 397, 276, 794, 741, 957, 1052, 1002, 213, 392, 566, 461, 832, 798, 433, 590, 723, 718, 755, 878, 446, 615, 669, 776, 608, 659, 565, 443, 457, 407, 577, 631, 255, 365, 399, 152, 766, 814, 556, 640, 1137, 1000, 767, 745, 733, 1194, 529, 238, 1034, 789, 1314, 436, 493, 853, 492, 654, 809, 885, 636, 596, 270, 848, 774, 364, 512, 832, 411, 516, 927, 700, 857, 588, 703, 756, 758, 315, 574, 810, 885, 416, 600, 690, 417, 501, 626, 707, 581, 377, 916, 660, 808, 587, 265, 395, 613, 906, 381, 661, 310, 799, 148, 632, 941, 750, 578, 277, 1065, 1242, 1018, 326, 551, 459, 134, 99, 510, 1097, 198, 673, 531, 450, 697, 394, 749, 948, 193, 664, 965, 818, 454, 419, 556, 721, 742, 473, 886, 647, 694, 209, 906, 433, 674, 620, 666, 464, 446, 634, 728, 430, 630, 990, 435, 371, 534, 394, 467, 928, 326, 723, 490, 816, 699, 490, 530, 384, 361, 772, 374, 554, 619, 672, 613, 924, 677, 1079, 404, 367, 337, 898, 228, 418, 844, 766, 317, 680, 690, 566, 680, 333, 726, 960, 942, 637, 607, 452, 664, 698, 235, 942, 736, 368, 584, 362, 650, 871, 683, 328, 1141, 988, 715, 915, 495, 1084, 919, 613, 179, 888, 355, 144, 1243, 655, 551, 582, 993, 730, 340, 548, 774, 643, 469, 651, 392, 843, 1196, 590, 573, 545, 1211, 593, 439, 1027, 869, 586, 442, 762, 502, 758, 822, 1048, 254, 628, 417, 683, 996, 752, 384, 725, 676, 842, 360, 374, 688, 353, 549, 661, 648, 584, 624, 348, 530, 250, 1135, 667, 1298, 1033, 623, 1102, 715, 594, 888, 871, 833, 321, 634, 491, 766, 505, 297, 1024, 388, 460, 707, 735, 1023, 444, 1098, 629, 505, 807, 581, 543, 687, 598, 337, 434, 806, 1111, 761, 521, 826, 547, 257, 434, 412, 688, 577, 363, 839, 1187, 1306, 648, 808, 504, 760, 429, 309, 916, 503, 777, 403, 1076, 512, 1127, 592, 351, 692, 711, 474, 587, 558, 487, 498, 326, 164, 902, 456, 471, 836, 748, 469, 480, 537, 553, 507, 347, 490, 498, 420, 1010, 598, 1022, 283, 362, 958, 553, 1156, 712, 1108, 718, 753, 1067, 681, 398, 483, 903, 956, 698, 612, 578, 489, 1294, 990, 920, 592, 1113, 862, 464, 1435, 835, 788, 280, 957, 795, 743, 1108, 425, 1026, 879, 488, 701, 931, 610, 741, 1061, 282, 830, 413, 983, 1159, 1067, 1071, 437, 843, 506, 610, 890, 1133, 1034, 954, 452, 925, 785, 836, 620, 597, 722, 258, 858, 342, 455, 927, 706, 299, 1104, 660, 811, 333, 1173, 878, 858, 1336, 816, 457, 948, 563, 1054, 678, 764, 733, 565, 555, 873, 1150, 485, 1303, 496, 796, 1218, 823, 634, 624, 878, 686, 684, 879, 1100, 454, 154, 1002, 357, 822, 676, 740, 578, 350, 1124, 834, 876, 500, 486, 426, 663, 529, 947, 656, 621, 823, 361, 615, 421, 585, 417, 538, 707, 656, 861, 1236, 831, 1087, 508, 768, 1269, 292, 786, 478, 1043, 593, 765, 408, 1439, 806, 528, 801, 912, 882, 1348, 1050, 1077, 528, 349, 996, 799, 976, 1265, 1100, 674, 470, 617, 540, 847, 862, 457, 757, 841, 973, 921, 969, 539, 646, 699, 959, 654, 670, 787, 872, 559, 744, 1276, 666, 273, 569, 833, 191, 775, 896, 576, 935, 1231, 1046, 923, 804, 949, 1201, 572, 303, 1162, 827, 1346, 897, 612, 937, 599, 675, 992, 930, 644, 1151, 301, 1103, 1086, 482, 831, 1130, 472, 753, 1007, 852, 1054, 635, 705, 955, 823, 425, 596, 962, 908, 445, 880, 867, 478, 509, 653, 775, 591, 510, 1055, 798, 1021, 740, 294, 427, 679, 973, 484, 686, 369, 836, 410, 802, 1245, 883, 649, 431, 1102, 1267, 1262, 557, 1092, 837, 164, 881, 726, 1120, 273, 697, 1097, 609, 708, 663, 838, 985, 552, 968, 1042, 1044, 483, 520, 691, 736, 756, 521, 895, 779, 914, 266, 1356, 548, 742, 964, 888, 481, 877, 685, 791, 437, 696, 991, 825, 643, 708, 969, 683, 1080, 1001, 1012, 617, 1030, 734, 792, 1069, 504, 394, 864, 595, 676, 782, 695, 837, 1154, 819, 1104, 437, 413, 383, 913, 627, 624, 987, 1394, 449, 839, 825, 1054, 1180, 378, 1211, 1090, 1114, 804, 897, 558, 1032, 746, 246, 1051, 870, 958, 725, 536, 702, 1035, 971, 356, 1195, 1061, 827, 1090, 526, 1092, 1250, 1025, 231, 947, 659, 272, 1284, 802, 826, 902, 1040, 870, 345, 658, 822, 715, 1012, 872, 575, 945, 1232, 805, 720, 580, 1215, 854, 603, 1074, 1056, 991, 528, 1218, 642, 1060, 1010, 1203, 288, 978, 884, 762, 1118, 763, 430, 786, 922, 928, 886, 529, 706, 403, 1104, 693, 868, 815, 670, 366, 546, 378, 1151, 901, 1522, 1107, 671, 1333, 745, 724, 1230, 1073, 911, 429, 646, 611, 889, 746, 403, 1032, 616, 637, 1382, 767, 1083, 451, 1212, 803, 1318, 849, 662, 955, 712, 971, 571, 496, 977, 1145, 1160, 931, 830, 580, 359, 805, 668, 770, 771, 390, 882, 1329, 1572, 851, 829, 535, 944, 535, 373, 930, 669, 828, 565, 1219, 620, 1308, 793, 361, 938, 859, 482, 946, 1186, 742, 591, 846, 221, 906, 641, 631, 1068, 780, 536, 517, 844, 652, 721, 552, 523, 627, 525, 1186, 944, 1039, 794, 498, 1076, 654, 1167, 856, 1264, 890, 768, 1225, 691, 729, 543, 936, 1016, 1210, 656, 604, 608, 1324, 1035, 1095, 639, 1311, 1281, 877, 1519, 923, 974, 431, 1057, 903, 809, 1137, 569, 1243, 1118, 880, 720, 1102, 1168, 821, 1193, 432, 999, 555, 1013, 1375, 1200, 1080, 495, 982, 519, 630, 1066, 1164, 1091, 1006, 1039, 943, 1195, 1103, 665, 894, 908, 329, 1081, 951, 641, 1060, 793, 719, 1232, 713, 847, 395, 1213, 1038, 1041, 1587, 984, 752, 1125, 929, 1095, 988, 940, 845, 603, 623, 875, 1158, 772, 1503, 506, 816, 1500, 1007, 638, 633, 936, 703, 704, 1173, 1171, 724, 175, 1051, 604, 1174, 682, 819, 854, 384, 1196, 1249, 1029, 509, 504, 537, 722, 571, 1121, 739, 838, 1027, 363, 743, 570, 818, 546, 721, 736, 842, 905, 1372, 932, 1178, 863, 840, 1334, 299, 855, 499, 1293, 1202, 1061, 689, 1516, 866, 614, 862, 955, 981, 1511, 1153, 1256, 768, 501, 1044, 1282, 985, 1455, 1235, 711, 1001, 627, 641, 889, 914, 644, 877, 913, 1149, 1138, 1188, 557, 871, 787, 1015, 727, 731, 868, 892, 560, 778, 1331, 1025, 318, 619, 864, 203, 911, 1052, 705, 1079, 1461, 1090, 994, 1023, 1050, 1535, 625, 999, 1344, 933, 1498, 1045, 939, 1249, 650, 910, 1294, 951, 649, 1163, 418, 1133, 1089, 493, 1116, 1309, 561, 857, 1073, 1112, 1223, 909, 807, 989, 1053, 997, 813, 976, 1074, 527, 1070, 966, 775, 511, 1004, 800, 717, 933, 1120, 900, 1389, 922, 684, 440, 704, 1106, 668, 767, 757, 847, 936, 835, 1293, 893, 895, 647, 1269, 1480, 1304, 782, 1166, 952, 566, 1124, 846, 1203, 354, 893, 1200, 952, 792, 667, 1164, 1003, 718, 1002, 1139, 1163, 1096, 685, 769, 1003, 977, 532, 1128, 905, 926, 443, 1405, 576, 835, 1116, 1145, 562, 1063, 737, 883, 639, 790, 1021, 967, 772, 995, 1165, 754, 1422, 1583, 1075, 997, 1082, 748, 827, 1197, 516, 465, 1451, 645, 879, 809, 739, 855, 1155, 948, 1117, 460, 465, 791, 1098, 693, 673, 1087, 1400, 532, 910, 829, 1171, 1214, 400, 1221, 1603, 1323, 834, 965, 787, 1045, 918, 589, 1074, 1171, 1116, 744, 905, 931, 1176, 1005, 589, 1238, 1107, 972, 1115, 600, 1181, 1609, 1105, 521, 1158, 1049, 306, 1389, 804, 963, 971, 1199, 917, 716, 668, 973, 998, 1174, 903, 590, 1130, 1472, 841, 811, 597, 1399, 956, 719, 1301, 1083, 1044, 622, 1446, 1097, 1206, 1119, 1345, 604, 1324, 920, 1129, 1340, 798, 444, 980, 997, 1232, 1087, 884, 1093, 422, 1135, 909, 1026, 1055, 824, 462, 678, 945, 1234, 1149, 1542, 1177, 675, 1421, 779, 1013, 1486, 1388, 1191, 514, 1219, 760, 974, 773, 477, 1190, 784, 674, 1428, 778, 1257, 477, 1252, 901, 1352, 1037, 1224, 970, 813, 1009, 1162, 519, 1088, 1157, 1409, 1182, 1089, 755, 438, 1076, 725, 869, 900, 436, 1148, 1421, 1588, 956, 978, 749, 950, 932, 516, 1046, 814, 865, 588, 1303, 713, 1614, 1024, 421, 959, 897, 518, 987, 1275, 765, 887, 893, 333, 925, 732, 635, 1169, 910, 1434, 575, 959, 653, 850, 728, 583, 1093, 542, 1316, 1031, 1059, 1122, 642, 1121, 891, 1209, 925, 1299, 896, 932, 1288, 934, 984, 580, 1113, 1413, 1224, 964, 643, 773, 1337, 1663, 1341, 657, 1357, 1473, 1292, 1551, 970, 1209, 792, 1339, 1141, 1140, 1320, 616, 1383, 1126, 980, 1014, 1146, 1245, 859, 1298, 513, 1182, 662, 1014, 1562, 1297, 1151, 502, 1139, 874, 1259, 1645, 1169, 1242, 1072, 1412, 1115, 1275, 1466, 1239, 1038, 1184, 458, 1094, 1440, 810, 1352, 1339, 830, 1354, 801, 848, 671, 1300, 1147, 1047, 1625, 1117, 1046, 1327, 1047, 1237, 1101, 1018, 1016, 745, 1066, 1132, 1221, 841, 1512, 522, 853, 1535, 1248, 975, 694, 1143, 824, 1009, 1185, 1288, 908, 200, 1308, 904, 1665, 687, 843, 943, 1199, 1198, 1379, 1168, 571, 789, 630, 846, 602, 1342, 1350, 995, 1114, 408, 1043, 1304, 945, 751, 793, 741, 1072, 1006, 1401, 1331, 1296, 1152, 856, 1337, 321, 881, 937, 1318, 1535, 1560, 806, 1696, 924, 625, 994, 1058, 996, 1649, 1183, 1442, 1118, 901, 1094, 1408, 1016, 1653, 1259, 800, 1317, 677, 815, 894, 1017, 1278, 957, 1109, 1284, 1321, 1220, 947, 1383, 860, 1220, 783, 873, 979, 1025, 1228, 1007, 1417, 1231, 735, 783, 872, 492, 1028, 1244, 852, 1144, 1645, 1172, 1088, 1110, 1204, 1622, 738, 1146, 1513, 1106, 1564, 1079, 1021, 1436, 776, 917, 1467, 1051, 814, 1217, 812, 1174, 1271, 863, 1187, 1461, 644, 1308, 1154, 1263, 1225, 1121, 867, 1110, 1157, 1139, 989, 1033, 1270, 1163, 1170, 1037, 880, 803, 1098, 807, 968, 1446, 1235, 1064, 1547, 979, 842, 500, 838, 1398, 939, 916, 953, 920, 946, 851, 1428, 1210, 960, 762, 1456, 1519, 1384, 898, 1361, 995, 1100, 1508, 856, 1284, 553, 1330, 1249, 1258, 1020, 764, 1165, 1179, 1047, 1056, 1285, 1266, 1286, 853, 1397, 1515, 987, 547, 1296, 1215, 965, 489, 1444, 800, 849, 1300, 1242, 662, 1085, 818, 918, 748, 954, 1024, 1022, 954, 1109, 1218, 821, 1431, 1587, 1315, 1081, 1140, 754, 943, 1371, 1003, 840, 1475, 722, 1081, 1033, 1216, 1254, 1175, 1122, 1203, 728, 488, 1189, 1377, 1136, 907, 1267, 1416, 751, 1169, 1101, 1289, 1241, 597, 1322, 1625, 1332, 961, 985, 915, 1128, 1069, 764, 1175, 1177, 1156, 889, 1075, 1088, 1251, 1031, 738, 1523, 1229, 994, 1489, 637, 1185, 1651, 1112, 680, 1608, 1197, 513, 1538, 978, 1040, 1000, 1432, 1030, 887, 833, 1057, 1094, 1565, 1190, 696, 1178, 1556, 1045, 1307, 1294, 1436, 1096, 747, 1485, 1128, 1430, 664, 1653, 1180, 1597, 1167, 1452, 776, 1341, 1305, 1142, 1418, 849, 562, 1247, 998, 1391, 1161, 941, 1387, 912, 1149, 1078, 1029, 1141, 1197, 582, 701, 961, 1423, 1195, 1674, 1205, 964, 1633, 929, 1127, 1571, 1581, 1291, 681, 1272, 781, 981, 783, 765, 1295, 974, 1015, 1516, 873, 1324, 482, 1262, 1371, 1648, 1101, 1240, 1115, 837, 1048, 1301, 763, 1260, 1229, 1426, 1316, 1208, 963, 1083, 1125, 992, 882, 1034, 467, 1176, 1429, 1610, 1452, 1376, 753, 1184, 1239, 777, 1291, 1264, 1223, 659, 1378, 797, 1632, 1071, 575, 1099, 926, 801, 1042, 1322, 1111, 1234, 1112, 979, 962, 993, 713, 1271, 1008, 1533, 653, 999, 746, 876, 751, 1123, 1319, 693, 1354, 1209, 1207, 1159, 1250, 1192, 1385, 1350, 952, 1543, 1020, 1067, 1632, 1119, 1635, 1165, 1161, 1483, 1347, 983, 669, 796, 1412, 1684, 1374, 886, 1468, 1479, 1594, 1781, 1113, 1274, 969, 1343, 1403, 1261, 1440, 681, 1424, 1216, 1207, 1210, 1172, 1325, 935, 1414, 1123, 1287, 1158, 1032, 1589, 1554, 1326, 562, 1313, 949, 1296, 1760, 1260, 1552, 1129, 1422, 1258, 1542, 1525, 1253, 1089, 1255, 1131, 1220, 1652, 869, 1410, 1351, 1266, 1518, 868, 884, 1302, 1486, 1362, 1185, 1652, 1172, 1205, 1388, 1479, 1270, 1224, 1297, 1138, 817, 1170, 1214, 1240, 1153, 1551, 817, 915, 1553, 1319, 1496, 717, 1194, 850, 1091, 1256, 1541, 1039, 561, 1358, 938, 1707, 1557, 1368, 1160, 1342, 1404, 1515, 1435, 727, 790, 1396, 854, 891, 1783, 1365, 1271, 1183, 1400, 1205, 1367, 1068, 794, 1006, 803, 1485, 1164, 1422, 1502, 1334, 1359, 1215, 1698, 1042, 1204, 1028, 1458, 1550, 1600, 1111, 1700, 1132, 992, 1134, 1430, 1049, 1731, 1323, 1555, 1228, 1456, 1099, 1545, 1091, 1685, 1445, 857, 1612, 735, 1126, 946, 1168, 1399, 1222, 1192, 1373, 1575, 1317, 1073, 1506, 1143, 1440, 1438, 1263, 1105, 1327, 1256, 1126, 1619, 1265, 924, 961, 1023, 866, 1070, 1437, 1132, 1487, 1675, 1333, 1423, 1182, 1295, 1683, 939, 1154, 1617, 1212, 1665, 1414, 1107, 1534, 1282, 1402, 1485, 1096, 1059, 1495, 981, 1235, 1381, 1017, 1240, 1534, 875, 1561, 1279, 1354, 1353, 1396, 1243, 1547, 1356, 1166, 1181, 1343, 1285, 1247, 1255, 1357, 975, 919, 1318, 988, 1477, 1521, 1358, 1206, 1549, 1146, 1117, 1305, 1019, 1406, 982, 942, 1014, 1075, 1004, 860, 1512, 1241, 1053, 858, 1620, 1527, 1415, 1251, 1497, 1108, 1166, 1667, 967, 1434, 665, 1335, 1313, 1406, 1283, 902, 1362, 1358, 1501, 1222, 1427, 1280, 1309, 984, 1647, 1573, 1449, 618, 1328, 1310, 1120, 844, 1739, 1424, 1246, 1474, 1561, 699, 1277, 826, 1386, 1257, 1227, 1056, 1189, 975, 1125, 1329, 917, 1464, 1784, 1405, 1152, 1153, 935, 1092, 1464, 1040, 907, 1592, 1428, 1136, 1063, 1420, 1390, 1251, 1217, 1268, 1143, 708, 1603, 1407, 1160, 1207, 1340, 1488, 998, 1315, 1344, 1300, 1365, 1134, 1401, 1629, 1366, 1008, 1013, 1211, 1179, 1188, 825, 1262, 1393, 1469, 1173, 1077, 1248, 1417, 1095, 907, 1654, 1320, 1065, 1598, 799, 1601, 1656, 1190, 714, 1754, 1595, 651, 1647, 1063, 1397, 1157, 1481, 1237, 1060, 1482, 1287, 1192, 1618, 1394, 1259, 1558, 1635, 1162, 1377, 1803, 1492, 1476, 774, 1626, 1420, 1504, 689, 1687, 1372, 1616, 1199, 1471, 934, 1342, 1351, 1261, 1442, 923, 723, 1361, 1084, 1450, 1233, 1011, 1389, 1338, 1186, 1340, 1110, 1327, 1225, 690, 1483, 1064, 1443, 1258, 1697, 1213, 966, 1687, 1161, 1314, 1605, 1877, 1477, 747, 1280, 1028, 1138, 820, 782, 1560, 1038, 1592, 1517, 894, 1586, 568, 1276, 1379, 1753, 1230, 1749, 1122, 1458, 1080, 1526, 1411, 1309, 1332, 1430, 1381, 1255, 1648, 1248, 1267, 1459, 914, 1085, 1184, 1180, 1459, 1629, 1463, 1378, 845, 1343, 1415, 1037, 1292, 1336, 1431, 734, 1426, 1193, 1688, 1279, 940, 1313, 1036, 1155, 1099, 1406, 1490, 1326, 1556, 1069, 1005, 1142, 1010, 1273, 1312, 1546, 761, 1624, 1065, 921, 1055, 1134, 1518, 839, 1435, 1234, 1244, 1238, 1297, 1254, 1494, 1484, 1145, 1604, 1404, 1289, 1645, 1131, 1658, 1198, 1392, 1557, 1667, 1082, 972, 918, 1432, 1701, 1637, 1312, 1579, 1680, 1864, 1825, 1194, 1457, 1370, 1411, 1479, 1398, 1510, 1049, 1447, 1576, 1252, 1290, 1360, 1679, 1070, 1506, 1699, 1359, 1204, 1222, 1818, 1596, 1363, 834, 1383, 1513, 1499, 1766, 1646, 1629, 1328, 1423, 1460, 1640, 1923, 1302, 1216, 1364, 1369, 1233, 1739, 1031, 1624, 1505, 1434, 1630, 1451, 1196, 1548, 1527, 1454, 1520, 1707, 1407, 1467, 1561, 1604, 1319, 1543, 1456, 1374, 881, 1453, 1323, 1735, 1246, 1660, 1381, 1188, 1709, 1391, 1532, 771, 1264, 851, 1219, 1322, 1639, 1144, 960, 1615, 1136, 1732, 1690, 1371, 1433, 1377, 1459, 1571, 1447, 1058, 1245, 1451, 1053, 949, 1894, 1531, 1305, 1253, 1493, 1303, 1380, 1581, 1330, 1082, 1036, 1541, 1520, 1437, 1585, 1359, 1425, 1410, 1857, 1465, 1239, 1208, 1585, 1642, 1807, 1743, 1710, 1167, 1135, 1465, 1513, 1175, 1759, 1524, 1655, 1348, 1471, 1150, 1581, 1917, 1694, 1545, 911, 1622, 852, 1348, 1191, 1261, 1410, 1491, 1237, 1401, 1822, 1325, 1457, 1668, 1236, 1449, 1698, 1270, 1392, 1418, 1486, 1133, 1797, 1503, 1041, 1198, 1392, 1041, 1632, 1621, 1311, 1638, 1832, 1364, 1452, 1499, 1472, 1913, 1295, 1208, 1766, 1369, 1780, 1541, 1462, 1545, 1336, 1569, 1693, 1385, 1276, 1547, 1266, 1338, 1505, 1029, 1493, 1670, 958, 1572, 1607, 1446, 1634, 1530, 1414, 1704, 1552, 1441, 1653, 1480, 1310, 1712, 1347, 1403, 1408, 951, 1360, 1213, 1562, 1710, 1419, 1528, 1589, 1443, 1345, 1636, 1071, 1637, 1026, 1644, 1030, 1638, 1221, 1119, 1570, 1712, 1253, 989, 1742, 1790, 1537, 1619, 1508, 1150, 1326, 1926, 1470, 1702, 940, 1733, 1362, 1429, 1299, 938, 1606, 1453, 1568, 1335, 1738, 1564, 1312, 1275, 1718, 1575, 1528, 937, 1491, 1415, 1179, 900, 1843, 1471, 1345, 1536, 1573, 930, 1301, 1020, 1482, 1412, 1274, 1105, 1347, 1344, 1764, 1729, 1062, 1563, 1843, 1532, 1228, 1302, 1273, 1397, 1591, 1391, 1052, 1662, 1470, 1181, 1425, 1427, 1578, 1263, 1395, 1292, 1317, 899, 1808, 1539, 1650, 1231, 1376, 1515, 1001, 1330, 1603, 1331, 1419, 1369, 1444, 1709, 1374, 1068, 1019, 1306, 1298, 1293, 1011, 1831, 1502, 1590, 1238, 1148, 1269, 1555, 1114, 1036, 1740, 1325, 1405, 1670, 1062, 1773, 1688, 1335, 1476, 1827, 1723, 820, 1748, 1072, 1536, 1398, 1732, 1587, 1400, 1529, 1355, 1304, 1651, 1722, 1268, 1673, 1800, 1178, 1503, 1847, 1656, 1497, 1595, 1689, 1576, 1740, 963, 1822, 1393, 1743, 1246, 1499, 1106, 1356, 1387, 1367, 1745, 1009, 780, 1458, 1206, 1673, 1250, 1662, 1611, 1555, 1193, 1353, 1597, 1559, 1445, 1187, 1677, 1155, 1464, 1497, 1713, 1357, 1450, 1696, 1257, 1339, 1685, 1894, 1615, 1733, 1315, 1364, 1363, 1418, 1123, 1738, 1445, 1620, 1660, 1156, 1599, 926, 1507, 1640, 1763, 1289, 1791, 1648, 1601, 1321, 1544, 1577, 1683, 1376, 1543, 1540, 1361, 1666, 1273, 1433, 1504, 993, 1265, 1288, 1454, 1482, 1736, 1481, 1439, 1286, 1467, 1461, 1474, 1510, 1489, 1681, 934, 1643, 1606, 1791, 1491, 1341, 1429, 1127, 1227, 1299, 1600, 1904, 1395, 1588, 1084, 1057, 1183, 1252, 1283, 1478, 1611, 1320, 1851, 1355, 1223, 1147, 1403, 1576, 1035, 1460, 1260, 1641, 1538, 1368, 1475, 1511, 1672, 1329, 1764, 1426, 1353, 1691, 1214, 1915, 1247, 1538, 1658, 1716, 1689, 1000, 986, 1884, 1975, 1730, 1899, 1623, 1834, 1981, 1952, 1473, 1490, 1529, 1557, 1748, 1544, 1617, 1720, 1690, 1667, 1630, 1641, 1678, 1750, 1367, 1525, 1786, 1447, 1395, 1390, 1826, 1598, 1427, 861, 1582, 1658, 1878, 1768, 1651, 1699, 1532, 1498, 1529, 1765, 1939, 1384, 1723, 1872, 1758, 1438, 1742, 1093, 1657, 1759, 1650, 1634, 1519, 1290, 1569, 1573, 1591, 1643, 1928, 1411, 1786, 1582, 1661, 1521, 1657, 1609, 1633, 972, 1468, 1644, 1776, 1388, 1692, 1409, 1278, 1812, 1631, 1873, 1310, 1272, 1109, 1333, 1522, 1722, 1612, 1048, 1741, 1674, 1755, 1711, 1568, 1437, 1484, 1567, 1746, 1583, 1148, 1307, 1570, 1314, 950, 1906, 1654, 1379, 1494, 1518, 1455, 1393, 1703, 1390, 1606, 1226, 1669, 1580, 1692, 1719, 1366, 1438, 1433, 1982, 1514, 1676, 1609, 1742, 1690, 1819, 1763, 1730, 1321, 1566, 2031, 1680, 1741, 1839, 1762, 1925, 1536, 1524, 1283, 1723, 1924, 1706, 1558, 1375, 1758, 1417, 1691, 1350, 1727, 1475, 1537, 1457, 1506, 1917, 1386, 1695, 1753, 1355, 1756, 1775, 1613, 1563, 1425, 1488, 1176, 1827, 1556, 1131, 1349, 1448, 1281, 1749, 1664, 1572, 1744, 1860, 1813, 1762, 1642, 1689, 1928, 1570, 1878, 1890, 1739, 1809, 1799, 1663, 1591, 1495, 1695, 1762, 1580, 1306, 1879, 1462, 1413, 1637, 1078, 1567, 1785, 1078, 1659, 1801, 1530, 1769, 1579, 1549, 1747, 1682, 1796, 1668, 1727, 1822, 1836, 1378, 1551, 1501, 1810, 1478, 1278, 1574, 1764, 1533, 1627, 1714, 1489, 1480, 1726, 1584, 1643, 1387, 1655, 1058, 1720, 1370, 1595, 1795, 1832, 1843, 1212, 1871, 1840, 1886, 1831, 1720, 1272, 1765, 1956, 1496, 1855, 1144, 1830, 1404, 1593, 1507, 967, 1768, 1671, 1842, 1469, 1829, 1593, 1621, 1516, 1763, 1612, 1982, 1124, 1613, 1715, 1375, 1311, 1844, 1509, 1448, 1542, 1660, 1005, 1490, 1408, 1620, 1707, 1277, 1568, 1373, 1887, 1827, 1778, 1510, 1782, 1886, 1537, 1424, 1402, 1282, 1496, 1681, 1649, 1286, 1858, 1566, 1622, 1972, 1562, 1868, 1316, 1754, 1725, 1559, 1086, 1873, 1594, 1792, 1351, 1579, 1889, 1043, 1380, 1789, 1588, 1481, 1487, 1650, 1717, 1602, 1413, 1226, 1370, 1368, 1346, 1493, 1902, 1554, 1713, 1564, 1244, 1432, 1597, 1328, 1285, 1828, 1484, 1466, 1719, 1550, 1909, 1854, 1582, 1596, 1903, 1751, 1530, 1905, 1227, 1771, 1605, 1807, 1777, 1738, 1592, 1460, 1507, 1708, 1745, 1385, 1686, 1869, 1277, 1517, 1867, 1776, 1846, 1809, 1803, 1674, 1748, 1191, 1837, 1420, 1754, 1274, 1644, 1201, 1366, 1450, 1402, 1757, 1140, 1500, 1465, 1509, 1793, 1352, 1804, 1702, 1560, 1431, 1549, 1679, 1769, 1615, 1229, 1740, 1775, 1534, 1498, 1757, 1416, 1567, 1711, 1360, 1472, 1705, 1923, 1782, 1746, 1767, 1575, 1531, 1628, 1772, 1868, 1771, 1628, 1719, 1287, 1623, 1900, 1709, 1703, 1840, 1382, 1841, 1808, 1860, 1788, 1652, 1687, 1810, 1488, 1661, 1867, 1476, 1785, 1646, 1468, 1611, 1159, 1492, 1291, 1463, 1716, 1778, 1669, 1448, 1539, 1633, 1511, 1523, 1672, 1821, 1718, 1349, 1875, 1659, 1835, 1558, 1520, 1670, 1639, 1540, 1885, 1779, 1972, 1531, 1874, 1627, 1202, 1639, 1553, 1540, 1539, 1646, 1439, 1856, 1444, 1279, 1241, 1952, 1701, 1280, 1616, 1332, 1692, 1664, 1373, 1781, 1733, 1995, 1571, 1777, 1593, 1578, 1869, 1233, 1916, 1504, 1849, 1704, 1729, 1896, 1953, 1449, 1899, 2007, 1744, 2003, 1875, 1935, 2016, 1993, 1527, 1788, 1734, 1726, 1823, 1636, 1619, 1734, 1755, 1829, 1773, 1799, 1700, 1947, 1938, 1647, 1789, 1550, 1396, 1590, 1964, 1951, 1634, 1066, 1856, 1717, 1988, 1791, 1664, 1977, 1544, 1715, 1563, 1801, 1988, 1725, 1815, 1921, 1897, 1442, 1831, 1217, 1752, 1866, 1861, 1659, 1706, 1724, 1678, 1714, 1724, 1958, 2036, 1487, 1978, 1657, 1997, 1800, 1895, 1708, 1811, 1678, 1705, 1962, 1927, 1699, 1694, 1625, 1501, 1844, 1686, 1958, 1614, 1307, 1129, 1407, 1683, 1835, 1800, 1152, 1793, 1879, 1820, 1747, 1598, 1922, 1553, 1768, 1811, 1838, 1290, 1953, 1781, 1610, 1626, 1936, 1751, 1665, 1584, 1823, 1816, 1758, 1932, 1454, 1793, 1436, 1817, 1675, 1697, 1927, 1655, 1546, 1677, 2003, 1666, 1735, 1811, 1808, 1813, 1834, 1850, 1821, 1565, 1975, 2045, 1816, 1809, 1951, 1862, 2048, 1911, 1686, 1441, 1878, 1976, 1865, 1906, 1608, 1871, 1469, 1803, 1932, 1798, 1862, 1881, 1577, 1802, 1979, 1455, 1977, 1820, 1495, 1816, 1907, 1784, 1774, 1789, 1743, 1533, 1830, 1684, 1201, 1548, 1566, 1334, 1776, 1724, 1752, 1880, 1908, 1863, 1898, 1925, 1693, 2033, 1799, 1910, 1893, 1928, 1833, 1841, 1706, 1801, 1599, 1737, 1934, 1688, 2035, 1885, 1796, 1807, 1881, 1419, 1901, 1948, 1137, 1685, 1848, 1624, 1829, 1868, 1630, 1819, 1772, 1946, 1787, 1805, 1941, 1854, 1554, 1722, 1729, 1877, 1863, 1736, 1626, 1918, 1631, 1628, 1986, 1616, 1679, 1820, 1869, 1756, 1662, 1876, 1380, 1815, 1914, 1680, 1956, 1870, 1947, 1421, 1886, 1936, 1911, 1918, 1728, 1346, 1769, 2021, 1601, 1912, 1548, 1835, 1502, 1605, 1927, 1372, 1865, 1673, 1891, 1494, 1882, 1779, 1814, 1940, 1806, 1759, 2011, 1441, 1623, 1846, 1514, 1663, 2033, 1552, 1819, 1574, 1850, 1671, 1702, 1757, 1756, 1836, 1384, 1980, 1640, 2038, 2006, 1794, 1805, 1785, 1955, 1580, 1930, 1583, 1526, 1523, 1833, 1725, 1462, 1883, 1682, 1794, 1995, 1892, 1874, 1349, 1818, 1730, 1604, 1170, 1890, 1777, 1806, 1701, 1589, 1911, 1254, 1526, 1942, 1825, 1514, 1966, 1780, 1864, 1671, 1817, 1677, 1443, 1855, 1569, 1922, 1934, 1712, 1931, 1765, 1888, 1463, 1627, 1505, 1492, 1870, 1590, 1565, 1922, 1698, 1956, 1985, 2006, 1635, 1931, 1899, 1600, 1973, 1268, 1823, 1710, 1867, 1916, 1804, 1642, 1466, 1767, 1832, 1996, 1672, 1824, 1921, 1924, 1838, 1904, 1908, 1861, 1960, 1998, 1728, 1760, 1394, 1993, 1546, 1974, 1525, 1847, 1202, 1613, 1453, 1602, 1826, 1875, 1594, 1596, 1753, 1970, 1478, 2055, 1853, 1713, 1474, 1797, 1682, 1943, 1745, 1830, 1814, 1897, 1621, 1817, 1802, 1617, 1649, 1978, 1500, 1483, 1804, 2040, 1983, 1775, 1893, 1636, 1896, 1774, 1784, 1903, 1782, 1783, 1852, 1894, 1770, 1924, 2020, 1926, 1929, 1714, 2009, 1989, 1865, 1898, 1737, 1945, 1847, 1696, 1767, 1907, 1715, 1849, 1967, 1694, 1747, 1337, 1608, 1363, 1676, 1734, 1859, 1755, 1470, 1584, 1957, 1919, 1528, 1788, 1900, 1741, 1508, 1971, 1749, 1937, 1970, 1941, 1794, 1693, 1721, 1991, 1915, 1997, 1824, 1942, 1996, 1236, 1669, 1887, 1654, 1982, 1898, 1761, 1883, 1700, 1521, 1681, 2011, 1751, 1281, 1684, 1607, 1845, 1860, 1524, 1844, 1901, 1999, 1760, 1940, 1705, 1736, 1987, 1721, 2033, 2024, 1990, 2047, 1965, 2018, 2044, 1473, 1920, 2030, 1968, 2045, 2025, 1995, 2054, 2017, 1559, 1876, 1891, 1871, 2013, 1949, 1821, 1892, 1834, 1946, 1778, 1880, 1864, 2042, 2016, 2026, 1945, 2031, 1574, 1853, 1980, 2034, 2056, 2012, 1912, 1812, 2031, 1836, 1992, 2058, 1941, 1814, 2007, 2051, 2048, 2044, 1880, 1926, 2047, 1761, 1839, 1365, 1772, 1986, 1985, 1905, 2060, 1909, 1857, 1944, 1826, 2000, 2050, 2023, 2020, 1931, 2023, 2043, 2005, 1967, 1872, 1907, 1944, 1981, 1965, 1999, 1711, 1916, 1517, 1958, 1954, 2023, 1961, 2064, 1798, 1577, 1930, 1896, 1859, 1382, 1987, 2039, 2037, 1787, 1666, 1984, 1602, 1933, 2008, 2057, 1338, 1976, 2038, 1971, 1950, 1954, 1991, 1828, 1695, 1845, 1873, 1889, 2037, 1641, 1961, 1731, 1884, 1881, 1914, 1978, 1783, 1925, 1882, 2010, 2062, 1846, 1921, 2029, 2046, 1910, 2026, 1953, 1607, 2063, 2059, 2000, 1884, 2008, 2014, 2052, 2015, 1848, 1716, 2003, 2036, 2006, 1932, 1973, 1976, 1522, 2028, 2059, 1917, 1947, 2027, 1954, 1964, 2059, 2035, 1999, 1910, 1893, 1877, 1933, 1934, 2019, 1858, 1990, 2037, 1876, 1903, 1792, 1966, 2025, 1509, 1853, 1908, 1837, 2044, 1914, 1938, 1913, 2004, 1824, 2047, 1856, 1938, 2032, 2022, 1870, 1912, 1779, 2039, 2049, 1761, 1983, 1950, 2054, 2002, 1959, 1848, 1919, 1790, 1993, 1967, 1900, 1718, 1897, 2019, 2051, 2053, 1838, 1930, 1918, 2015, 2036, 1904, 1962, 1890, 1852, 1845, 2009, 2050, 2004, 2032, 1883, 2057, 2028, 2040, 2056, 1851, 1737, 1939, 1872, 1939, 1975, 1988, 1676, 1919, 1994, 2019, 1984, 1885, 2005, 1812, 2008, 2040, 1957, 2028, 1842, 2032, 2039, 2062, 1828, 1992, 1746, 1841, 1980, 1940, 1994, 1416, 1937, 1866, 1996, 1866, 1929, 2013, 1815, 2064, 1959, 2012, 2022, 1735, 1727, 1950, 1981, 1991, 2043, 1929, 1920, 1578, 1859, 1960, 1949, 1852, 1955, 1966, 2018, 2063, 1656, 2055, 2041, 1969, 2046, 1905, 2017, 1726, 1943, 1717, 2009, 1802, 2062, 1750, 1675, 1990, 1963, 1795, 2061, 1998, 2042, 1770, 2049, 1862, 1668, 2056, 2000, 1987, 2002, 1797, 1882, 1963, 1512, 1708, 1949, 1901, 1935, 1997, 1971, 2017, 2054, 1920, 1691, 1585, 2001, 2005, 1963, 2015, 1933, 2026, 1909, 1913, 1704, 1798, 1962, 1610, 2024, 1969, 1810, 1994, 1703, 2055, 2021, 2030, 2024, 1986, 1906, 1825, 2002, 1770, 1855, 1837, 2014, 2010, 1849, 1697, 1661, 1863, 1935, 2052, 1957, 2058, 1937, 2061, 2035, 2045, 1984, 1888, 1965, 2058, 1854, 2007, 1842, 2060, 1888, 1989, 1599, 2014, 1638, 2027, 1731, 2012, 1891, 1936, 1614, 1618, 1806, 2030, 1586, 2057, 1968, 1974, 1477, 1959, 1840, 1973, 1970, 1955, 1951, 1998, 1985, 1892, 1818, 1874, 1961, 2046, 1989, 1960, 2041, 2049, 2001, 1948, 2048, 1983, 1944, 1790, 2042, 2051, 1992, 1923, 2041, 1952, 1972, 1945, 2029, 1948, 1974, 1943, 2038, 2050, 1942, 1968, 1805, 1977, 2004, 1752, 1787, 1915, 1732, 2063, 2021, 1766, 1946, 1618, 1858, 2025, 1857, 1773, 1895, 1833, 1887, 1744, 1979, 2010, 1850, 2061, 2016, 1780, 1586, 2027, 1969, 2034, 1979, 2018, 1813, 1839, 1902, 2013, 2011, 2052, 1851, 2029, 2064, 1386, 1750, 1902, 1771, 2034, 2001, 1795, 2053, 1792, 1631, 1964, 2053, 1796, 1409, 1774, 1721, 1889, 1879, 1728, 2020, 2043, 2060, 1895, 2022, 1861, 1786 +}; + +const uint16_t H_2064_516_sparse_H_cols[] = { +208, 242, 84, 114, 314, 135, 349, 90, 64, 57, 26, 52, 16, 142, 120, 244, 167, 164, 133, 179, 22, 180, 413, 161, 224, 121, 57, 22, 394, 17, 9, 54, 84, 20, 98, 311, 322, 308, 86, 91, 77, 41, 110, 192, 18, 11, 210, 133, 248, 276, 389, 100, 37, 4, 239, 15, 32, 15, 7, 10, 109, 82, 19, 50, 137, 278, 43, 181, 89, 206, 113, 285, 10, 95, 12, 180, 23, 93, 100, 124, 200, 130, 81, 149, 6, 251, 181, 227, 156, 215, 194, 284, 206, 177, 171, 174, 40, 136, 187, 89, 98, 156, 44, 30, 48, 78, 349, 126, 56, 3, 212, 43, 111, 183, 63, 54, 35, 63, 333, 158, 96, 100, 270, 38, 97, 4, 139, 163, 67, 251, 139, 42, 214, 117, 26, 98, 132, 105, 13, 61, 330, 223, 183, 95, 295, 95, 55, 29, 65, 35, 75, 130, 8, 98, 344, 46, 239, 155, 131, 75, 246, 3, 44, 260, 199, 21, 99, 118, 76, 8, 87, 271, 257, 171, 98, 44, 255, 17, 276, 91, 50, 21, 90, 262, 118, 208, 214, 35, 140, 159, 58, 277, 158, 180, 53, 93, 58, 264, 40, 98, 4, 284, 183, 24, 7, 123, 133, 57, 223, 124, 156, 202, 34, 324, 67, 452, 63, 123, 303, 303, 169, 40, 32, 24, 32, 5, 220, 218, 103, 222, 113, 111, 100, 30, 146, 266, 4, 195, 14, 55, 145, 37, 40, 18, 184, 188, 267, 38, 116, 35, 60, 53, 133, 58, 9, 296, 63, 57, 30, 17, 86, 157, 105, 29, 73, 285, 122, 9, 31, 199, 347, 73, 55, 135, 86, 2, 42, 67, 119, 21, 351, 35, 213, 173, 61, 176, 194, 109, 72, 77, 273, 133, 244, 90, 313, 220, 27, 192, 63, 299, 208, 202, 3, 66, 14, 19, 127, 68, 348, 246, 26, 87, 75, 20, 215, 93, 212, 180, 149, 114, 133, 48, 235, 17, 247, 257, 42, 149, 57, 363, 75, 334, 67, 97, 29, 109, 241, 59, 332, 15, 228, 6, 186, 81, 271, 31, 103, 122, 150, 105, 110, 92, 277, 213, 358, 37, 100, 129, 46, 367, 118, 26, 115, 211, 3, 77, 217, 23, 24, 145, 70, 48, 68, 179, 112, 30, 110, 177, 14, 97, 68, 66, 103, 105, 83, 231, 29, 383, 45, 64, 42, 32, 201, 269, 67, 9, 149, 3, 34, 86, 373, 51, 409, 130, 39, 80, 177, 118, 34, 248, 175, 50, 37, 76, 14, 7, 122, 49, 262, 27, 79, 102, 295, 113, 26, 111, 135, 10, 356, 97, 21, 2, 129, 451, 140, 60, 42, 191, 33, 152, 25, 279, 99, 22, 124, 168, 305, 34, 104, 224, 154, 50, 71, 97, 60, 209, 73, 57, 10, 322, 159, 375, 104, 17, 273, 374, 81, 121, 160, 157, 411, 88, 236, 166, 88, 53, 164, 135, 36, 375, 291, 211, 4, 233, 84, 94, 47, 29, 10, 306, 54, 183, 16, 128, 42, 86, 96, 488, 31, 109, 150, 42, 332, 110, 315, 44, 321, 82, 109, 235, 80, 212, 35, 128, 80, 215, 7, 115, 44, 102, 281, 86, 27, 79, 280, 33, 227, 142, 113, 104, 102, 281, 161, 238, 197, 106, 111, 72, 163, 76, 41, 58, 4, 46, 45, 122, 281, 219, 52, 53, 45, 66, 264, 69, 37, 16, 138, 221, 176, 176, 98, 42, 75, 92, 80, 158, 163, 71, 26, 49, 109, 108, 70, 85, 378, 186, 178, 9, 12, 4, 74, 25, 65, 207, 8, 339, 5, 45, 205, 163, 234, 14, 56, 77, 62, 185, 55, 89, 19, 228, 117, 113, 80, 9, 8, 38, 74, 10, 112, 32, 205, 8, 242, 142, 119, 26, 158, 28, 148, 54, 69, 28, 81, 91, 142, 78, 158, 49, 66, 45, 179, 249, 91, 90, 219, 153, 339, 90, 14, 56, 60, 392, 9, 162, 274, 102, 79, 89, 206, 114, 365, 2, 232, 172, 36, 8, 14, 317, 173, 65, 2, 37, 112, 273, 38, 179, 107, 244, 9, 173, 67, 141, 265, 156, 96, 102, 158, 77, 96, 331, 2, 102, 302, 94, 23, 93, 92, 408, 95, 229, 2, 25, 326, 62, 82, 166, 185, 7, 170, 15, 30, 216, 93, 94, 186, 24, 124, 268, 36, 108, 156, 448, 65, 134, 356, 79, 91, 165, 63, 30, 123, 56, 164, 97, 348, 262, 72, 294, 3, 33, 36, 143, 79, 31, 158, 124, 46, 131, 115, 103, 33, 280, 22, 69, 80, 343, 386, 295, 107, 39, 122, 18, 215, 78, 166, 136, 163, 222, 5, 405, 196, 253, 401, 78, 138, 184, 190, 131, 5, 141, 91, 84, 10, 210, 184, 171, 39, 20, 283, 92, 337, 257, 172, 160, 28, 134, 170, 18, 110, 108, 85, 21, 62, 122, 23, 10, 128, 161, 152, 156, 65, 249, 124, 191, 282, 139, 220, 238, 24, 60, 66, 41, 196, 185, 68, 72, 51, 121, 12, 218, 13, 101, 89, 93, 298, 293, 197, 201, 332, 36, 128, 160, 182, 42, 19, 53, 259, 116, 331, 131, 84, 125, 43, 285, 79, 112, 66, 66, 288, 93, 93, 158, 87, 104, 134, 131, 156, 58, 33, 6, 42, 16, 130, 182, 354, 141, 12, 65, 60, 1, 169, 175, 82, 44, 82, 108, 17, 69, 28, 29, 80, 145, 25, 66, 88, 14, 64, 290, 160, 46, 113, 1, 251, 55, 61, 185, 199, 153, 13, 237, 150, 269, 5, 100, 126, 243, 312, 56, 219, 203, 156, 144, 164, 161, 87, 236, 203, 10, 216, 13, 166, 239, 19, 141, 51, 284, 61, 11, 75, 205, 31, 128, 49, 2, 33, 5, 135, 100, 194, 78, 154, 245, 51, 321, 121, 160, 114, 74, 44, 113, 59, 259, 6, 49, 144, 6, 22, 214, 171, 98, 181, 225, 368, 8, 274, 154, 262, 234, 21, 19, 352, 9, 165, 20, 90, 85, 255, 367, 174, 29, 145, 43, 1, 3, 153, 10, 280, 77, 221, 12, 11, 142, 370, 143, 116, 145, 223, 330, 36, 9, 157, 99, 271, 88, 291, 49, 89, 47, 94, 394, 344, 305, 38, 30, 39, 6, 129, 1, 242, 268, 200, 298, 182, 297, 175, 27, 117, 135, 108, 246, 60, 38, 225, 48, 12, 124, 229, 55, 50, 311, 70, 133, 119, 151, 199, 73, 70, 98, 26, 76, 99, 154, 112, 76, 236, 273, 22, 109, 206, 61, 34, 146, 292, 132, 254, 42, 1, 121, 310, 33, 41, 49, 168, 226, 247, 459, 47, 211, 187, 41, 58, 8, 388, 359, 129, 83, 129, 190, 55, 189, 48, 258, 60, 58, 13, 205, 263, 232, 151, 96, 77, 31, 53, 64, 174, 197, 200, 25, 93, 191, 139, 217, 5, 117, 51, 212, 72, 28, 2, 236, 114, 320, 35, 106, 74, 28, 425, 282, 49, 132, 2, 82, 47, 143, 142, 100, 25, 79, 43, 24, 23, 399, 92, 97, 290, 31, 69, 109, 165, 83, 41, 98, 84, 195, 319, 347, 222, 37, 39, 104, 5, 196, 207, 47, 4, 223, 141, 32, 47, 81, 96, 31, 68, 101, 145, 177, 85, 129, 271, 334, 224, 36, 117, 56, 70, 410, 212, 87, 298, 361, 160, 164, 34, 19, 52, 66, 310, 4, 105, 40, 180, 137, 263, 37, 73, 237, 29, 135, 20, 7, 336, 197, 68, 2, 131, 28, 60, 88, 94, 58, 83, 38, 218, 7, 1, 71, 296, 149, 355, 146, 179, 64, 2, 418, 155, 127, 76, 348, 54, 83, 251, 48, 27, 185, 32, 84, 4, 89, 107, 360, 257, 29, 54, 318, 56, 95, 295, 51, 45, 47, 24, 256, 173, 92, 154, 63, 255, 321, 132, 76, 116, 92, 308, 20, 52, 178, 292, 87, 216, 275, 16, 152, 151, 165, 226, 276, 36, 1, 333, 30, 428, 17, 136, 11, 192, 45, 40, 34, 268, 68, 292, 54, 85, 120, 116, 206, 92, 99, 213, 91, 15, 14, 43, 112, 305, 319, 157, 136, 76, 25, 141, 95, 82, 11, 32, 41, 74, 49, 301, 122, 128, 338, 94, 129, 265, 71, 11, 109, 22, 328, 13, 105, 22, 196, 240, 198, 7, 146, 181, 115, 62, 61, 218, 64, 170, 222, 15, 99, 36, 31, 258, 69, 41, 56, 60, 129, 33, 103, 57, 21, 103, 127, 165, 13, 39, 328, 105, 228, 107, 120, 86, 98, 27, 54, 205, 167, 244, 74, 238, 38, 89, 5, 120, 329, 37, 37, 278, 24, 140, 118, 127, 203, 23, 106, 286, 243, 72, 152, 86, 61, 22, 11, 6, 34, 256, 269, 158, 175, 211, 317, 253, 50, 50, 27, 130, 454, 41, 250, 267, 144, 303, 11, 104, 63, 18, 124, 104, 58, 140, 25, 151, 58, 239, 286, 155, 217, 27, 182, 10, 398, 65, 190, 81, 69, 119, 78, 20, 136, 106, 51, 188, 200, 350, 303, 133, 53, 73, 15, 158, 262, 150, 192, 10, 289, 162, 362, 234, 232, 16, 225, 334, 294, 6, 105, 125, 68, 72, 176, 239, 20, 163, 353, 118, 117, 170, 90, 258, 50, 45, 88, 87, 128, 85, 4, 62, 34, 268, 258, 183, 25, 146, 85, 44, 133, 107, 140, 87, 64, 18, 70, 76, 95, 309, 147, 34, 308, 19, 237, 21, 217, 115, 49, 177, 201, 88, 149, 163, 5, 325, 455, 96, 52, 77, 24, 152, 130, 207, 67, 220, 36, 18, 48, 88, 40, 148, 179, 6, 155, 19, 138, 74, 39, 51, 198, 141, 142, 106, 103, 67, 111, 107, 186, 68, 37, 166, 28, 94, 289, 15, 126, 121, 43, 108, 117, 128, 406, 71, 333, 39, 38, 69, 313, 267, 17, 249, 40, 351, 40, 202, 138, 262, 105, 324, 75, 267, 123, 141, 156, 78, 112, 408, 97, 173, 91, 99, 239, 25, 376, 25, 254, 185, 157, 15, 61, 71, 113, 237, 237, 48, 29, 89, 1, 79, 41, 3, 24, 13, 187, 96, 52, 30, 137, 70, 82, 1, 47, 34, 444, 146, 63, 47, 59, 154, 115, 129, 298, 61, 3, 64, 85, 75, 244, 12, 47, 101, 103, 7, 169, 125, 213, 271, 378, 271, 100, 126, 134, 131, 31, 32, 16, 310, 222, 95, 12, 154, 89, 391, 205, 8, 27, 1, 85, 192, 85, 117, 140, 127, 132, 35, 31, 12, 263, 121, 6, 81, 65, 71, 78, 88, 140, 85, 227, 347, 68, 50, 7, 44, 215, 128, 26, 2, 96, 55, 66, 54, 22, 161, 258, 7, 13, 124, 101, 265, 21, 83, 233, 203, 274, 59, 354, 99, 59, 139, 13, 377, 107, 102, 23, 184, 32, 115, 61, 169, 320, 27, 171, 293, 57, 62, 46, 58, 147, 139, 235, 52, 46, 375, 46, 218, 319, 368, 61, 29, 174, 172, 83, 325, 29, 200, 198, 18, 303, 114, 173, 213, 35, 102, 20, 35, 211, 46, 180, 99, 301, 250, 208, 178, 93, 30, 76, 52, 165, 159, 372, 225, 278, 138, 136, 145, 231, 79, 44, 137, 50, 55, 119, 125, 39, 138, 101, 25, 166, 23, 192, 18, 39, 178, 116, 28, 178, 59, 188, 198, 16, 96, 46, 186, 108, 59, 255, 199, 258, 252, 88, 118, 134, 383, 150, 5, 139, 239, 228, 38, 227, 263, 43, 67, 175, 97, 188, 63, 147, 189, 17, 154, 62, 370, 219, 1, 198, 22, 56, 90, 318, 15, 20, 171, 45, 100, 30, 126, 131, 234, 11, 207, 254, 299, 349, 120, 196, 21, 26, 170, 114, 77, 8, 57, 190, 11, 214, 212, 345, 179, 225, 64, 114, 80, 185, 66, 138, 149, 43, 190, 127, 3, 3, 153, 222, 210, 11, 56, 104, 53, 153, 130, 56, 83, 71, 274, 95, 74, 121, 106, 173, 16, 114, 270, 33, 53, 267, 49, 332, 306, 68, 35, 28, 32, 213, 24, 113, 40, 18, 9, 89, 294, 250, 256, 70, 208, 291, 91, 82, 314, 39, 7, 181, 78, 13, 301, 405, 112, 316, 156, 393, 12, 110, 48, 73, 166, 39, 17, 132, 204, 104, 63, 62, 1, 45, 393, 5, 115, 47, 18, 248, 16, 272, 75, 317, 84, 70, 342, 207, 14, 191, 77, 154, 12, 107, 230, 132, 280, 42, 23, 147, 149, 17, 18, 8, 174, 73, 261, 197, 72, 4, 15, 34, 163, 159, 136, 12, 36, 196, 3, 40, 167, 71, 101, 111, 100, 237, 300, 32, 76, 9, 14, 137, 6, 53, 202, 71, 52, 148, 219, 17, 299, 41, 108, 48, 143, 65, 316, 133, 142, 92, 296, 323, 150, 211, 361, 261, 422, 167, 212, 195, 50, 317, 406, 372, 360, 314, 399, 203, 136, 211, 56, 195, 436, 229, 489, 295, 101, 109, 487, 184, 87, 279, 233, 399, 176, 470, 433, 364, 197, 115, 194, 314, 423, 246, 98, 401, 291, 268, 272, 357, 458, 298, 327, 21, 298, 299, 225, 220, 272, 51, 177, 93, 84, 403, 150, 336, 275, 236, 476, 243, 261, 373, 330, 248, 310, 365, 155, 240, 144, 276, 229, 292, 99, 175, 101, 317, 365, 297, 404, 260, 333, 417, 462, 434, 474, 444, 119, 309, 261, 260, 344, 435, 80, 123, 257, 183, 358, 197, 78, 16, 264, 260, 459, 195, 390, 147, 217, 467, 353, 165, 120, 151, 335, 83, 106, 28, 326, 252, 70, 298, 182, 153, 300, 260, 122, 111, 143, 302, 135, 235, 362, 236, 232, 287, 371, 309, 248, 248, 176, 215, 169, 183, 155, 140, 446, 91, 277, 263, 234, 126, 376, 335, 162, 490, 398, 182, 105, 378, 469, 159, 119, 457, 292, 249, 108, 59, 451, 20, 362, 228, 57, 306, 459, 301, 208, 329, 357, 82, 396, 279, 137, 396, 272, 202, 396, 282, 120, 308, 389, 287, 43, 311, 371, 59, 326, 125, 223, 190, 285, 134, 348, 219, 74, 343, 72, 455, 367, 179, 368, 395, 267, 227, 59, 225, 65, 21, 300, 310, 266, 259, 362, 168, 104, 69, 344, 417, 47, 335, 103, 126, 394, 41, 122, 166, 313, 265, 438, 118, 265, 204, 316, 439, 142, 90, 180, 440, 281, 392, 312, 210, 137, 189, 240, 247, 240, 320, 251, 157, 324, 208, 415, 245, 180, 262, 94, 141, 191, 110, 165, 165, 361, 61, 488, 378, 138, 178, 229, 396, 157, 168, 397, 266, 289, 240, 347, 299, 84, 451, 133, 391, 469, 324, 137, 116, 60, 365, 207, 200, 472, 450, 428, 330, 139, 159, 223, 217, 330, 245, 234, 238, 418, 391, 367, 308, 291, 304, 67, 244, 288, 382, 130, 461, 335, 118, 187, 334, 324, 441, 462, 112, 445, 59, 214, 230, 372, 44, 106, 167, 181, 211, 193, 148, 409, 264, 364, 353, 174, 263, 283, 406, 312, 349, 118, 455, 181, 259, 323, 175, 33, 152, 299, 141, 320, 314, 131, 62, 235, 335, 231, 340, 244, 425, 169, 311, 497, 241, 37, 436, 117, 184, 294, 157, 350, 301, 94, 162, 273, 13, 182, 101, 486, 341, 434, 322, 74, 144, 284, 139, 111, 403, 214, 52, 323, 327, 172, 227, 230, 208, 277, 221, 120, 409, 339, 123, 223, 252, 209, 237, 429, 295, 253, 35, 162, 454, 243, 199, 295, 385, 360, 241, 170, 390, 175, 402, 198, 288, 397, 275, 330, 267, 161, 341, 283, 193, 62, 258, 162, 254, 259, 374, 408, 415, 268, 54, 312, 424, 302, 342, 376, 172, 453, 214, 281, 379, 447, 170, 434, 230, 121, 423, 305, 441, 276, 244, 121, 110, 461, 323, 151, 309, 431, 202, 200, 329, 210, 352, 164, 503, 113, 126, 231, 152, 454, 311, 433, 86, 449, 130, 231, 262, 189, 290, 288, 429, 143, 311, 70, 226, 451, 277, 362, 134, 51, 81, 343, 171, 466, 149, 194, 310, 119, 315, 186, 300, 469, 349, 427, 123, 168, 117, 174, 144, 224, 116, 173, 198, 457, 287, 147, 65, 258, 272, 499, 315, 81, 186, 168, 341, 316, 190, 178, 291, 232, 280, 174, 260, 242, 226, 181, 120, 113, 138, 294, 106, 481, 287, 377, 104, 125, 383, 234, 369, 289, 348, 52, 389, 239, 219, 344, 378, 338, 418, 137, 363, 116, 207, 335, 449, 202, 358, 216, 134, 319, 100, 11, 265, 233, 172, 267, 45, 256, 23, 318, 221, 169, 245, 306, 281, 181, 289, 116, 173, 346, 327, 194, 205, 326, 345, 201, 111, 448, 366, 399, 293, 222, 170, 358, 442, 19, 187, 159, 456, 299, 206, 290, 169, 253, 412, 252, 202, 377, 331, 497, 203, 313, 115, 255, 373, 364, 237, 245, 291, 269, 342, 54, 218, 269, 373, 170, 256, 270, 213, 305, 288, 203, 315, 238, 87, 192, 334, 26, 127, 352, 240, 277, 114, 102, 432, 139, 332, 278, 128, 411, 91, 317, 296, 265, 343, 291, 217, 124, 350, 220, 242, 220, 62, 233, 300, 190, 393, 445, 513, 478, 346, 375, 131, 99, 272, 160, 355, 279, 112, 305, 107, 403, 336, 109, 322, 143, 371, 147, 204, 192, 308, 180, 279, 127, 194, 145, 239, 124, 288, 24, 177, 191, 433, 429, 308, 270, 136, 330, 73, 469, 302, 274, 221, 246, 393, 328, 431, 454, 391, 426, 269, 434, 329, 245, 149, 151, 338, 328, 299, 433, 374, 230, 202, 472, 177, 360, 402, 387, 316, 181, 418, 52, 198, 174, 20, 197, 110, 294, 268, 123, 151, 43, 87, 250, 237, 247, 233, 143, 367, 231, 339, 381, 141, 233, 355, 204, 225, 382, 208, 224, 206, 159, 87, 80, 275, 103, 365, 33, 374, 117, 145, 332, 368, 309, 297, 421, 63, 212, 213, 373, 107, 249, 247, 318, 242, 464, 312, 164, 240, 103, 328, 345, 262, 160, 209, 401, 325, 249, 186, 201, 112, 250, 262, 215, 70, 473, 170, 126, 143, 211, 313, 370, 183, 220, 174, 388, 346, 351, 182, 173, 48, 214, 370, 163, 92, 95, 228, 134, 461, 251, 398, 205, 282, 372, 363, 348, 83, 321, 175, 265, 160, 252, 479, 340, 257, 64, 285, 419, 369, 23, 196, 283, 286, 327, 97, 411, 331, 184, 297, 325, 284, 341, 245, 302, 294, 231, 247, 319, 404, 190, 180, 491, 441, 147, 303, 148, 291, 350, 471, 197, 396, 187, 92, 201, 269, 200, 264, 250, 338, 104, 470, 379, 248, 168, 271, 113, 146, 205, 267, 71, 296, 221, 385, 153, 347, 482, 252, 339, 453, 390, 289, 284, 229, 269, 263, 167, 27, 369, 80, 243, 432, 230, 153, 280, 397, 239, 380, 208, 244, 8, 72, 271, 354, 328, 233, 224, 297, 297, 204, 461, 190, 259, 151, 306, 375, 195, 189, 304, 155, 279, 232, 352, 123, 177, 339, 401, 493, 384, 376, 340, 38, 171, 79, 161, 78, 340, 293, 238, 465, 191, 435, 179, 244, 387, 184, 211, 307, 352, 342, 316, 196, 351, 353, 445, 69, 97, 368, 180, 274, 136, 275, 342, 189, 75, 395, 145, 147, 205, 185, 222, 218, 413, 297, 374, 144, 453, 372, 138, 302, 316, 237, 356, 46, 40, 339, 343, 184, 242, 125, 216, 345, 305, 477, 148, 214, 199, 303, 306, 123, 440, 404, 292, 210, 328, 350, 210, 337, 94, 309, 408, 151, 76, 276, 266, 325, 482, 155, 332, 254, 209, 321, 297, 243, 355, 259, 164, 221, 453, 361, 15, 338, 357, 289, 240, 149, 249, 263, 219, 447, 434, 261, 300, 159, 479, 342, 93, 213, 57, 141, 177, 335, 410, 315, 188, 166, 223, 307, 354, 492, 170, 187, 453, 195, 127, 349, 410, 151, 207, 130, 147, 216, 417, 439, 369, 83, 461, 326, 406, 381, 227, 126, 270, 258, 394, 108, 331, 228, 333, 72, 95, 209, 319, 351, 346, 379, 284, 392, 315, 191, 147, 463, 95, 486, 415, 167, 324, 377, 390, 375, 410, 92, 354, 106, 364, 106, 370, 132, 193, 396, 321, 134, 119, 393, 327, 195, 506, 30, 341, 253, 233, 82, 283, 55, 207, 301, 430, 167, 248, 163, 475, 77, 218, 124, 367, 176, 415, 426, 188, 380, 58, 488, 209, 170, 164, 354, 134, 212, 334, 255, 220, 349, 110, 288, 227, 350, 201, 406, 319, 442, 117, 330, 228, 148, 424, 267, 155, 452, 161, 345, 217, 474, 179, 208, 328, 367, 254, 173, 210, 259, 458, 296, 277, 206, 296, 162, 480, 430, 183, 202, 268, 263, 274, 312, 374, 96, 445, 66, 463, 321, 250, 204, 194, 129, 78, 342, 485, 289, 387, 67, 119, 256, 241, 341, 110, 215, 276, 226, 186, 276, 266, 198, 331, 455, 167, 232, 89, 355, 166, 336, 147, 397, 167, 260, 175, 282, 465, 265, 178, 453, 189, 132, 273, 202, 132, 209, 62, 400, 397, 114, 225, 299, 288, 259, 228, 149, 319, 160, 327, 406, 411, 217, 374, 286, 229, 236, 129, 232, 403, 266, 432, 189, 115, 338, 120, 342, 197, 248, 310, 269, 298, 79, 156, 453, 325, 468, 116, 246, 210, 438, 43, 256, 378, 294, 398, 84, 366, 122, 311, 174, 346, 377, 320, 111, 309, 243, 162, 329, 165, 307, 229, 266, 305, 267, 94, 230, 454, 131, 72, 50, 209, 199, 283, 329, 178, 400, 236, 388, 423, 127, 190, 287, 175, 477, 274, 314, 465, 389, 410, 350, 131, 263, 108, 201, 127, 130, 468, 59, 223, 148, 341, 336, 414, 235, 36, 288, 171, 405, 111, 395, 271, 122, 154, 150, 164, 403, 460, 374, 213, 208, 464, 310, 143, 356, 204, 81, 273, 314, 287, 380, 16, 410, 313, 385, 410, 406, 23, 240, 370, 373, 416, 355, 204, 176, 187, 329, 357, 292, 282, 384, 212, 273, 202, 262, 385, 198, 191, 402, 230, 266, 179, 389, 210, 165, 375, 261, 287, 302, 471, 250, 144, 284, 279, 277, 382, 118, 65, 126, 235, 158, 354, 150, 53, 331, 68, 280, 51, 219, 432, 90, 236, 213, 137, 289, 256, 366, 469, 484, 125, 289, 454, 49, 155, 392, 221, 181, 238, 137, 85, 222, 105, 228, 351, 380, 22, 379, 322, 409, 215, 234, 174, 275, 356, 182, 212, 272, 203, 194, 426, 215, 279, 234, 279, 388, 164, 318, 219, 205, 152, 74, 304, 242, 136, 440, 304, 466, 238, 347, 201, 373, 275, 325, 364, 362, 393, 103, 394, 365, 359, 338, 332, 322, 369, 270, 216, 363, 135, 353, 460, 157, 282, 402, 414, 393, 196, 403, 178, 294, 276, 193, 282, 217, 86, 234, 351, 433, 337, 64, 236, 184, 423, 64, 362, 241, 210, 247, 483, 298, 122, 191, 243, 245, 46, 458, 278, 447, 311, 326, 360, 71, 224, 354, 148, 360, 74, 6, 215, 290, 374, 313, 200, 185, 116, 133, 28, 224, 467, 357, 291, 473, 379, 388, 188, 246, 340, 67, 240, 144, 475, 314, 193, 179, 215, 150, 423, 360, 192, 102, 159, 127, 204, 154, 168, 423, 373, 172, 48, 140, 327, 292, 358, 221, 426, 154, 101, 331, 337, 235, 102, 251, 409, 238, 283, 151, 307, 278, 357, 247, 484, 229, 152, 69, 311, 241, 225, 388, 230, 140, 146, 370, 429, 26, 134, 466, 240, 372, 197, 389, 145, 136, 176, 187, 400, 264, 221, 366, 446, 311, 364, 186, 404, 363, 101, 243, 400, 120, 146, 389, 203, 190, 278, 300, 260, 196, 430, 106, 260, 367, 436, 222, 359, 433, 417, 184, 371, 301, 275, 336, 111, 428, 129, 304, 303, 73, 224, 449, 175, 255, 446, 326, 123, 315, 315, 223, 327, 161, 194, 97, 201, 309, 383, 407, 302, 326, 209, 324, 198, 356, 107, 88, 189, 276, 247, 144, 339, 320, 221, 169, 140, 226, 118, 379, 333, 69, 300, 262, 218, 265, 257, 251, 310, 27, 265, 227, 369, 220, 146, 412, 265, 272, 286, 286, 229, 283, 395, 209, 372, 290, 488, 293, 184, 360, 342, 194, 132, 313, 290, 448, 385, 162, 232, 31, 270, 271, 383, 318, 242, 251, 157, 79, 119, 421, 401, 178, 231, 152, 207, 55, 163, 274, 313, 125, 251, 256, 468, 385, 329, 227, 272, 317, 196, 427, 466, 96, 216, 449, 14, 441, 333, 484, 363, 383, 303, 155, 172, 188, 348, 169, 256, 199, 193, 188, 455, 86, 161, 235, 247, 288, 135, 344, 427, 381, 148, 261, 128, 193, 287, 221, 347, 155, 172, 204, 334, 255, 380, 189, 241, 277, 226, 448, 413, 81, 441, 223, 162, 429, 292, 205, 146, 439, 110, 114, 304, 261, 378, 88, 278, 386, 123, 226, 329, 165, 83, 295, 213, 408, 355, 414, 336, 440, 366, 409, 142, 153, 168, 128, 470, 266, 82, 280, 428, 250, 360, 238, 99, 53, 424, 176, 285, 263, 212, 268, 316, 377, 335, 387, 168, 144, 428, 326, 132, 232, 252, 300, 51, 146, 308, 371, 486, 279, 275, 370, 223, 33, 304, 296, 217, 442, 360, 280, 75, 354, 182, 139, 397, 236, 442, 361, 45, 233, 193, 479, 206, 153, 121, 299, 201, 255, 426, 318, 286, 54, 143, 302, 57, 148, 320, 231, 218, 377, 498, 206, 359, 238, 235, 379, 160, 391, 381, 261, 297, 277, 368, 362, 437, 409, 372, 270, 481, 300, 407, 253, 55, 488, 487, 470, 429, 431, 402, 259, 404, 257, 101, 243, 463, 487, 514, 496, 150, 358, 504, 234, 490, 511, 240, 415, 412, 484, 490, 416, 252, 472, 489, 478, 493, 381, 139, 480, 511, 362, 293, 466, 503, 359, 342, 142, 326, 369, 304, 320, 364, 486, 261, 105, 316, 471, 476, 430, 460, 379, 484, 253, 446, 400, 447, 373, 472, 490, 272, 401, 158, 471, 328, 417, 312, 344, 331, 429, 383, 341, 501, 361, 410, 480, 477, 492, 508, 482, 332, 336, 429, 310, 369, 460, 291, 346, 365, 392, 402, 452, 120, 430, 301, 419, 462, 406, 410, 342, 493, 500, 390, 498, 378, 230, 403, 188, 443, 258, 505, 499, 148, 508, 485, 241, 382, 289, 264, 182, 455, 481, 264, 451, 489, 483, 485, 365, 376, 447, 301, 382, 278, 237, 409, 285, 168, 292, 463, 290, 482, 339, 323, 376, 386, 495, 286, 502, 450, 322, 115, 390, 483, 370, 426, 461, 441, 406, 162, 73, 506, 256, 511, 507, 107, 498, 491, 323, 274, 478, 516, 337, 450, 304, 183, 502, 285, 249, 420, 427, 349, 386, 508, 353, 413, 500, 375, 304, 485, 410, 484, 306, 353, 431, 377, 239, 156, 438, 402, 499, 503, 200, 458, 419, 490, 230, 203, 397, 73, 436, 398, 326, 293, 363, 416, 497, 458, 250, 443, 460, 60, 476, 227, 392, 494, 352, 422, 383, 468, 344, 443, 199, 425, 417, 496, 452, 472, 396, 246, 449, 458, 395, 398, 283, 253, 391, 307, 268, 337, 501, 269, 499, 409, 408, 434, 365, 264, 407, 267, 150, 253, 254, 269, 185, 434, 306, 508, 510, 287, 347, 318, 439, 235, 307, 503, 281, 303, 468, 366, 415, 434, 480, 368, 497, 500, 504, 195, 188, 125, 502, 496, 475, 492, 481, 501, 407, 309, 302, 372, 442, 357, 464, 436, 249, 429, 493, 412, 340, 385, 489, 172, 353, 322, 477, 439, 509, 490, 311, 478, 364, 450, 448, 479, 372, 463, 495, 312, 269, 425, 341, 501, 415, 193, 225, 481, 437, 433, 281, 509, 428, 278, 509, 458, 506, 481, 509, 463, 504, 209, 415, 510, 347, 246, 388, 307, 237, 472, 407, 318, 228, 441, 417, 467, 469, 457, 515, 324, 402, 510, 254, 112, 470, 345, 463, 302, 378, 416, 312, 241, 381, 327, 94, 207, 335, 498, 343, 476, 427, 444, 351, 414, 186, 178, 457, 459, 460, 333, 471, 334, 389, 398, 327, 315, 504, 481, 437, 386, 431, 488, 442, 241, 356, 471, 402, 424, 433, 287, 459, 298, 463, 322, 458, 386, 464, 232, 492, 285, 441, 227, 292, 405, 377, 336, 466, 441, 513, 350, 276, 142, 492, 176, 404, 286, 437, 483, 474, 446, 291, 323, 474, 463, 414, 496, 231, 493, 491, 464, 484, 448, 191, 441, 258, 296, 497, 381, 484, 419, 318, 125, 222, 487, 516, 285, 502, 449, 294, 211, 384, 358, 451, 414, 509, 135, 241, 444, 392, 474, 469, 444, 203, 500, 282, 350, 286, 231, 478, 365, 465, 467, 472, 497, 484, 513, 513, 455, 242, 502, 385, 504, 358, 479, 390, 407, 416, 266, 330, 206, 412, 471, 496, 498, 380, 325, 159, 219, 504, 447, 340, 383, 416, 475, 373, 410, 486, 368, 501, 511, 413, 91, 278, 257, 486, 369, 506, 214, 402, 430, 348, 476, 333, 331, 441, 204, 187, 450, 194, 382, 224, 497, 411, 462, 252, 275, 457, 446, 415, 502, 413, 121, 515, 485, 476, 353, 381, 488, 480, 385, 425, 314, 224, 383, 506, 280, 515, 388, 422, 386, 396, 408, 329, 340, 371, 359, 138, 431, 200, 361, 393, 189, 436, 411, 319, 316, 478, 293, 390, 422, 414, 445, 232, 503, 397, 443, 296, 493, 374, 432, 430, 493, 206, 437, 477, 295, 352, 492, 509, 375, 214, 314, 430, 283, 467, 491, 350, 421, 499, 499, 511, 367, 125, 379, 482, 476, 505, 411, 446, 507, 390, 264, 290, 419, 460, 474, 414, 422, 317, 327, 437, 422, 404, 320, 416, 242, 362, 429, 366, 399, 438, 293, 245, 448, 461, 390, 415, 356, 482, 504, 284, 428, 378, 268, 400, 308, 468, 416, 393, 394, 405, 355, 408, 438, 323, 424, 401, 483, 516, 493, 362, 424, 372, 234, 515, 386, 382, 500, 314, 402, 425, 460, 456, 172, 501, 247, 495, 173, 492, 226, 476, 439, 346, 293, 353, 317, 435, 152, 487, 119, 348, 424, 499, 494, 495, 469, 251, 501, 401, 516, 308, 457, 280, 454, 440, 432, 470, 497, 399, 451, 344, 487, 432, 439, 516, 278, 461, 462, 313, 475, 386, 233, 396, 475, 439, 424, 495, 431, 434, 433, 436, 456, 403, 341, 423, 359, 296, 324, 309, 480, 508, 435, 144, 478, 401, 358, 287, 484, 512, 443, 367, 459, 452, 445, 468, 316, 271, 514, 388, 448, 474, 413, 307, 86, 293, 320, 433, 302, 394, 222, 414, 344, 456, 356, 475, 468, 456, 426, 494, 428, 339, 288, 494, 448, 270, 504, 507, 381, 405, 379, 498, 469, 489, 247, 354, 445, 500, 467, 217, 277, 385, 318, 513, 218, 253, 483, 249, 325, 161, 351, 505, 475, 440, 229, 412, 461, 371, 427, 377, 439, 338, 473, 500, 292, 167, 315, 230, 261, 464, 294, 407, 226, 406, 488, 426, 432, 515, 511, 421, 489, 439, 282, 515, 483, 325, 323, 462, 443, 491, 377, 384, 349, 491, 353, 226, 420, 495, 428, 409, 473, 461, 357, 473, 371, 343, 360, 398, 500, 465, 401, 319, 513, 483, 216, 405, 424, 473, 455, 516, 235, 476, 308, 248, 281, 482, 244, 481, 407, 345, 309, 506, 417, 485, 363, 320, 192, 470, 231, 513, 246, 299, 447, 467, 163, 510, 498, 337, 417, 491, 457, 422, 340, 422, 298, 273, 301, 447, 449, 356, 374, 436, 299, 225, 452, 468, 490, 403, 432, 387, 38, 277, 340, 514, 485, 355, 253, 400, 389, 460, 492, 356, 300, 400, 404, 404, 498, 369, 330, 273, 311, 248, 491, 126, 216, 495, 449, 505, 407, 380, 425, 246, 437, 153, 211, 256, 387, 515, 297, 507, 440, 480, 361, 412, 395, 431, 412, 371, 506, 435, 421, 462, 504, 483, 472, 436, 507, 370, 183, 485, 330, 389, 381, 473, 272, 449, 364, 192, 345, 312, 252, 333, 501, 388, 491, 246, 507, 393, 355, 358, 367, 417, 499, 81, 516, 494, 490, 228, 480, 367, 427, 387, 349, 510, 349, 411, 321, 449, 315, 307, 458, 490, 462, 323, 406, 452, 456, 357, 153, 359, 503, 375, 352, 385, 392, 442, 485, 260, 445, 423, 512, 410, 361, 396, 421, 514, 300, 412, 487, 489, 19, 352, 447, 347, 321, 400, 394, 284, 510, 508, 502, 281, 459, 177, 483, 388, 399, 379, 180, 186, 209, 502, 418, 326, 214, 432, 274, 401, 413, 512, 322, 264, 513, 239, 501, 464, 419, 259, 418, 306, 307, 319, 484, 512, 453, 363, 508, 454, 424, 450, 275, 270, 301, 260, 512, 161, 494, 323, 346, 189, 348, 376, 345, 464, 421, 381, 342, 464, 359, 455, 492, 470, 359, 505, 465, 343, 420, 435, 428, 510, 478, 193, 419, 380, 414, 181, 394, 266, 396, 491, 395, 192, 421, 404, 507, 456, 512, 251, 384, 442, 421, 334, 384, 317, 320, 391, 477, 171, 336, 273, 500, 446, 414, 340, 484, 306, 453, 445, 327, 405, 406, 506, 236, 491, 371, 508, 471, 446, 501, 290, 366, 507, 250, 394, 403, 458, 266, 509, 351, 493, 252, 510, 456, 176, 440, 419, 378, 506, 399, 442, 319, 514, 462, 275, 459, 378, 350, 226, 494, 430, 494, 394, 486, 442, 381, 233, 500, 504, 504, 308, 494, 366, 353, 469, 439, 463, 516, 109, 473, 473, 343, 383, 435, 282, 509, 420, 514, 333, 450, 307, 477, 375, 398, 466, 382, 479, 452, 283, 285, 495, 482, 425, 430, 505, 322, 444, 503, 497, 449, 486, 338, 440, 355, 488, 413, 352, 513, 331, 333, 506, 423, 183, 361, 474, 461, 409, 425, 411, 481, 397, 470, 332, 395, 343, 298, 159, 476, 512, 398, 444, 516, 505, 499, 397, 421, 271, 130, 424, 456, 270, 463, 431, 334, 397, 399, 509, 335, 341, 443, 392, 509, 338, 284, 468, 382, 477, 443, 331, 455, 445, 169, 296, 511, 491, 408, 427, 408, 318, 405, 182, 392, 390, 488, 219, 368, 369, 384, 372, 336, 399, 502, 515, 356, 486, 325, 293, 504, 162, 451, 295, 339, 220, 471, 421, 351, 433, 334, 392, 465, 303, 418, 306, 316, 515, 317, 438, 482, 454, 475, 370, 459, 496, 505, 384, 185, 172, 497, 171, 281, 400, 418, 499, 436, 391, 108, 468, 280, 422, 313, 467, 398, 464, 167, 254, 168, 448, 465, 505, 471, 312, 467, 418, 403, 374, 470, 459, 347, 468, 395, 425, 19, 472, 510, 456, 428, 495, 75, 255, 467, 465, 425, 512, 387, 426, 335, 453, 474, 487, 480, 462, 344, 511, 207, 309, 419, 419, 395, 424, 272, 346, 382, 460, 352, 169, 442, 476, 404, 473, 511, 330, 196, 334, 329, 438, 438, 503, 255, 481, 500, 420, 472, 509, 394, 450, 255, 472, 373, 365, 488, 305, 496, 418, 193, 368, 305, 508, 495, 494, 199, 420, 514, 450, 201, 496, 238, 264, 411, 358, 229, 287, 493, 346, 409, 489, 102, 480, 413, 435, 290, 317, 303, 348, 376, 314, 422, 297, 343, 250, 513, 466, 290, 289, 431, 503, 451, 516, 328, 305, 427, 361, 307, 469, 341, 476, 371, 489, 328, 355, 310, 437, 515, 402, 386, 403, 412, 357, 440, 486, 448, 399, 337, 514, 426, 478, 506, 462, 360, 466, 496, 279, 397, 479, 428, 505, 421, 461, 257, 437, 418, 315, 440, 498, 337, 387, 490, 437, 466, 220, 500, 479, 470, 218, 380, 431, 243, 396, 492, 443, 507, 373, 477, 395, 188, 496, 366, 457, 422, 336, 376, 450, 391, 494, 245, 384, 77, 44, 478, 438, 454, 407, 285, 508, 198, 457, 261, 322, 492, 482, 338, 512, 405, 420, 312, 464, 416, 80, 412, 249, 501, 412, 452, 505, 426, 379, 451, 479, 387, 137, 340, 507, 483, 459, 203, 453, 420, 358, 84, 499, 503, 408, 443, 350, 515, 200, 295, 376, 442, 369, 423, 346, 420, 445, 456, 465, 337, 475, 438, 258, 506, 377, 364, 185, 321, 305, 282, 509, 301, 321, 398, 456, 511, 465, 281, 516, 450, 435, 286, 416, 475, 254, 393, 469, 414, 429, 460, 389, 478, 492, 503, 453, 444, 393, 467, 294, 420, 157, 279, 513, 497, 204, 444, 514, 348, 459, 454, 270, 413, 440, 494, 434, 465, 505, 429, 384, 514, 466, 486, 475, 510, 436, 437, 434, 457, 516, 454, 473, 332, 433, 479, 499, 405, 482, 497, 503, 411, 351, 199, 380, 216, 420, 387, 426, 450, 404, 370, 447, 386, 452, 135, 253, 482, 416, 276, 171, 419, 420, 288, 241, 474, 391, 368, 488, 365, 400, 363, 354, 274, 415, 345, 376, 467, 138, 479, 295, 391, 382, 483, 444, 446, 390, 304, 510, 507, 385, 452, 216, 457, 472, 498, 438, 408, 388, 368, 498, 464, 462, 466, 508, 515, 321, 375, 337, 448, 273, 455, 435, 380, 354, 254, 242, 324, 489, 477, 245, 427, 195, 508, 187, 210, 328, 498, 145, 485, 304, 493, 392, 507, 324, 400, 419, 430, 439, 513, 432, 417, 496, 364, 474, 511, 493, 435, 487, 366, 364, 455, 384, 359, 195, 329, 263, 349, 248, 486, 371, 166, 257, 471, 339, 380, 357, 437, 441, 191, 443, 268, 197, 444, 306, 363, 160, 346, 345, 376, 401, 479, 195, 243, 514, 481, 489, 445, 432, 451, 460, 252, 443, 332, 283, 416, 502, 140, 164, 415, 359, 470, 90, 411, 425, 422, 352, 344, 501, 386, 335, 458, 449, 478, 480, 477, 487, 413, 444, 244, 157, 451, 423, 480, 297, 284, 495, 431, 384, 418, 363, 325, 245, 447, 313, 485, 436, 391, 357, 512, 490, 487, 417, 512, 324, 496, 366, 152, 452, 343, 361, 389, 254, 446, 471, 502, 399, 485, 395, 345, 474, 337, 481, 249, 510, 458, 514, 90, 362, 463, 347, 477, 257, 489, 405, 143, 259, 286, 495, 382, 224, 177, 446, 260, 427, 438, 434, 511, 187, 383, 423, 193, 430, 427, 447, 435, 487, 502, 338, 407, 323, 407, 387, 166, 512, 473, 310, 457, 490 +}; + +const float H_2064_516_sparse_input[] = { +-2.8588758611049867, -11.692946618257562, -2.0931111592429659, 11.110696212718175, 6.6118168080332342, 5.5228669775147967, -10.351976177615544, -6.2055936928533972, 15.766842028131405, 10.150684036103069, -8.459063190320423, 3.5621047687812557, -3.4741612771047636, 3.324748317571744, 8.996614205792751, -11.020291727957101, 12.081427681651697, -8.8928631203159583, -3.3519010114052263, 7.7902118547439443, 9.6608001848411806, -7.1066822779231593, -18.837368573809297, 6.7301895647238608, 6.7933629603091008, 5.9697810424393483, 8.344011991064086, 12.19791145343228, 9.4167774696594435, 7.423418316685729, 9.0291842080564226, 12.492983259925982, 7.1203329881309401, 9.8776999539720336, 7.3657220051725565, 5.4066464900536131, -12.553405951140983, -8.4918025628237199, -11.352365915823617, 14.756685666538061, -8.0938336502539876, -2.7071697789206022, -2.4795849849319289, 14.778716053676311, -12.149933491676437, -8.5931326392610909, -5.4147618905983697, 1.7095221079392837, -12.75286957597447, -6.560818125727109, 5.5288804134600262, -16.774264848727494, -10.397477377823613, -14.47470382199227, -12.095199384731899, -0.68504635593676977, 2.6623689185177528, 13.264791388391092, -15.654931986196731, 6.1276196890542334, 4.5068190091793028, -13.394637229913476, -6.9231832293793651, -12.113429033794846, 1.2142140703098925, 8.9363539352870394, -12.687063373304539, -3.3458614784673091, -3.4123481785186587, 17.559631253372945, 13.470764559481434, 5.3912902961422002, 8.0737946505557545, -12.755710856932868, -3.569697890412812, -6.2613535644882905, 0.068556269783912271, 6.2629797657916875, -9.2663011036090968, -4.4829975567184634, -9.6136989537403004, -8.7663852688801143, -13.974856274599134, 11.407302219619563, -10.302223327202944, -8.9771589068473983, -6.1388609170833384, 4.2370800072671333, 1.7760515525196516, -12.120232639630231, -12.958157445638765, 5.2985241644932541, -16.484657731002855, -6.3532421360393387, -9.0395804464700298, -7.2671128749847744, -12.616882711750195, -4.9350723080331012, -6.6905936282318637, 18.568407538602393, 12.530577696234687, -9.7889565176657243, -15.214958325061282, 7.215674131215513, -7.5394667988733808, 9.0137713371297465, 6.2553392643094785, 9.1953246360263154, -11.131787953429392, -5.4020937991353657, -4.0642543197135739, -0.44036236539366824, 8.0650609441874703, 0.85520780385748785, 7.2621337620159085, 0.29865166967486761, -9.2011814546979203, -10.330862011400864, -7.3191138151867943, -9.4852558149271111, 14.762260259194324, -5.0853268103463423, -11.2925794883785, 13.026909781206733, 7.9504343630905412, 10.148928930852414, -8.9032450603232327, 7.0914762951954913, 10.89340681888671, -12.705821222595254, 13.126012326275292, 9.4442919029362749, 5.0277440210736879, 0.21756213342494518, 12.710361373031621, 5.6453651213768019, -13.49634180382726, 6.4754225359227204, 9.6275804629486004, 5.8125840672452975, 9.7028326962213836, 6.1260130958734562, 3.3623596073706641, 10.736024757333299, 4.6569987032041826, -8.5021099021622799, -2.5832378575026125, 17.984880998940056, -13.974611077713172, -7.8550941092339874, -2.6917314432377575, 10.825283872831294, 11.217940706150642, 1.8301222470027103, 6.2062091666111812, -12.440863506480019, -19.955292055354317, -3.6699151522797462, 2.2154324244303956, -3.7363628672311142, -10.271027034445964, -9.2862432349117547, 9.7847963699436011, -5.9471830363214551, 11.139859339322513, -9.2599913694963618, 5.0422863933763367, -7.1141487133220043, 4.2177963601947308, 10.657785123505857, -5.7952000401674324, -6.826355874510365, 8.7268751949597245, -8.5906649209875745, 2.2758857640658201, -6.1665377492933358, -7.3104026599884433, -3.2424605164178031, 16.796591996286164, 15.671215006757382, -7.8445348658392806, 12.2589312976831, -2.5670307012079139, -11.537316744819945, -2.4858301794672331, 5.0542510171190438, -6.6860957990782133, -7.2619018024969462, -6.7329842279273242, -7.3146812058251234, 8.0821157274412183, 2.4005920765968378, 9.3157871935284753, -12.908851857280949, 5.2927115546650425, 9.9926730185778059, 3.9229860372333749, -5.5126846245121035, 12.313688019948762, 7.9681453222519041, 17.181368769149195, -8.962498225939207, -11.548950041024865, 12.014544817430894, 11.485639169870186, 11.939774664713912, -14.36069895314143, -11.812874687185857, 12.249194120883461, 4.8839501930831242, -10.540165871108648, -14.829380396239381, -6.4665012687326051, 4.7430459960995295, -7.1378949876943016, -15.357105375923917, 7.3351294975306445, -9.6095153441695373, 4.381145332149095, -9.2910048695861427, 4.894239034759102, 7.864879034656453, -8.3265429253416077, 10.497214061711553, -0.39338042557070996, -4.4611306847986816, 0.76940119561902198, 2.3535542193708272, 10.459438806533345, 9.4938186880252005, -6.4805717587307994, -13.457392617761585, -10.487085219177404, -9.8506932711478576, 11.274019685851906, -12.3031017274995, 8.3324030035106826, -2.3013116280481358, 8.3664075310158825, -10.402109920341072, -5.2924293563600742, -12.008098192077149, 10.992304106359162, -5.5591947469243506, -12.838234842015352, 8.1682577157065577, -6.4919177172949487, 13.568876091933316, 8.0352162745849594, 8.7834139460450125, -11.335870474093099, -10.790767171281415, -2.8875937626970223, 14.64505222675956, 11.436743007190451, -2.9337339836825955, -12.707240342338084, 16.661129912274529, -19.171798326126961, 12.280144746488103, 6.5975965145696174, -13.019719338217644, -3.4328503704209457, 4.822535491209953, -8.1340577921572415, 11.549182216506546, 9.6431724916100059, 5.5547407614902173, 15.019668995173307, -1.6514898426907461, 16.110709054474917, -10.9397931999944, 12.04576668183285, -8.4818868311872198, -6.103248438757908, 8.2975079067215702, 2.5480181038085412, 18.799878298920927, 16.231939791740228, -18.011602750805633, 3.7139764502467689, 12.751595841360283, -7.8718015936255812, -0.40802815212428428, -15.47812599016518, 3.2584854200798588, 14.976391986507007, 9.1367378814346782, 3.4155780056910059, -13.292285487599507, -12.855991908912157, 14.013291588644732, 9.6911017234399335, -5.8910196575740752, -2.2280612655108047, -11.219438047247786, -2.5955623953948517, -3.4460676112793136, 3.5682986120247073, -11.70300520092221, 11.99455548751415, 7.319096625369828, 8.400961847094683, 12.142806695044221, -3.6775894169196279, 8.3797255658565142, -12.156985373281584, -17.475193610019677, -14.228116929396922, 10.726007504360073, 15.267119384103992, 12.781072511062279, 8.0326533999697229, -17.51207194760946, -7.554034280962183, 10.066411068992132, 14.13799652436988, -6.7247334837075705, -11.112518294834185, -5.7326833292155523, 3.6877552031425131, 8.7105204152043516, 9.3857694378580963, 19.127569440965896, -3.8614826162666089, 7.9404471399280068, 6.3807591097483005, -6.8888859894612535, 10.317928637508684, 2.1736529765433783, 10.953222318849482, -7.6682531128958038, 5.0318286636058982, -6.9463690764775503, -3.0184853792276383, 9.6041512562391542, -0.88225262267439808, 6.4852292067129724, -2.3181001351577644, -13.197351056460056, -6.8047677874499586, 5.3843074707174692, 5.1196343577870644, -17.820822197855577, -12.257015718775355, 5.1913937352654651, -5.0162460867599536, 9.9461758050913041, -9.7414598652248081, 8.1378256819797858, 12.564281794378495, -5.6365288176451322, -9.1029468332924104, -5.6355130288814301, -13.719331548944416, -5.8613058178495017, -9.2573519867695815, 6.0620773131346706, 5.8947778726542905, 11.265652594812099, -11.760986024368906, -7.7447348268870124, 19.076436411627338, 14.505720191829832, -9.0750817120358054, -5.2025480400034789, -3.1960162333402482, -11.659437264119374, -7.9842387274926709, 8.5980388295231229, 14.858752059828165, 6.8639263237417376, 6.0631638589074024, 2.7093921939507379, -4.9581002755473795, 4.4179924464321392, -11.144868427484562, 12.546476704938177, 13.606433000436612, 4.0208619807458295, 6.2408832155761376, 3.0941528835943455, -11.347668662075096, 1.9313877794966201, 11.65105372954261, -14.681336156121709, 7.2969958167198605, 11.59264621157577, -8.831465763669156, -12.759130509205734, -9.0714254556796128, 8.9948895559776467, -8.3736028555285831, -13.115027308542444, -0.21628815052066303, 7.7132708674061705, 14.055053470061472, 13.370601410874029, 3.3283307501026052, -11.9653642849229, -5.6440590777489144, -4.2508984635752549, 13.005398229132568, -11.5296140873405, 11.286858942494266, 9.8110403874583074, -13.263569122014866, -6.4297799553106456, 7.9672918799786396, 2.1515462864377719, -8.490571668881163, 7.5548103934198929, -13.121628447449439, -5.7901204816768361, 7.5171762671769704, -5.4216710822831979, -0.95140907859749113, -5.6992105242986471, -0.91737830538166343, -8.2053563541920571, -4.9100295191078036, -8.650093905400162, 10.400080220873763, 7.2829351923330092, 5.3481291290736603, -9.5017802399357425, -9.8687523002255393, 11.82329840938681, -3.1919281246249707, -10.124868011353035, 6.8360355157042028, -14.032171223888698, 18.148403140529073, -9.5731633683674744, 4.0453611070899935, -4.114147796015585, -8.4912512496909898, -7.9968991599686872, 12.922672789580542, -6.7315939113482681, -16.414580925551139, 10.417406116722118, -9.5795995211441394, -7.974905790034116, -13.727944328842275, -15.024522822723423, 4.9026741637309703, -10.662764572620276, -19.122555879539242, 9.217115643469544, -2.9661166430929642, 13.154514394206242, 9.8788596316167272, 4.2669291411005252, 10.239868792823961, 0.50928446540137651, -6.9544644508051245, 2.9807945285095245, -8.2689690969205181, 3.5499295458600972, 12.732733620631645, 11.61935741986054, 8.4137329217700945, -13.703811206903364, 8.5347899814747166, 13.941804015126218, 11.213731601489895, 11.550008187296406, -10.885532785062049, -6.0320756476152395, -7.945602926688589, 18.178022024827495, 4.2378890109434684, -8.419937978328889, 14.273513193884424, -8.1801725060827586, 13.690183625733544, -17.518387733265431, -8.6392702216784656, -13.927446312699148, -8.651607062718659, -12.712917239643309, 15.009792996204254, 0.15853783962329626, -10.462310302523948, -12.535567399778486, 8.8192610919401329, 13.066656030822525, 18.005415525102343, -16.007576967175243, 11.052574245331391, -1.1810954342450888, -12.762633127175347, -11.427571726679494, -1.8068233566411038, -3.8651597939182674, 6.9028603232990591, -9.9188843352819767, -13.607089316301986, 5.8989769757503172, -10.266998033319117, 12.946619994251195, -7.3433271276853551, 13.594756446262442, -1.4802835189751626, 2.9459432512420887, 9.0127453411993006, 12.34274116102957, -0.99056567004691576, -1.0211228826859517, 10.87969885601588, -15.669877762479704, 16.01192464298973, 10.789218207135569, 6.1523737440350752, 10.844976713696601, -18.796538678004055, -7.3982730413954201, -6.5213519941388851, -18.571369340190397, -9.6913300045155282, 1.0175474995943568, -8.0705533615168754, 14.251221745808563, -14.054781652173469, -10.906074448438877, 9.9932114606110058, 9.2204934537976815, -11.102967677965665, -15.06146952578059, 11.282374133246716, -3.4111780254645643, 7.3857075662336609, 10.330601600777463, 5.6502615537426548, -7.2776853004382911, -12.041052757776699, -11.046289906579057, -2.8519140526114701, -14.358095698121817, 4.6207960341417813, -12.368837238636017, -7.2377430770905917, -7.1306536664479809, -10.374815173234571, 7.5287331560402384, -5.4660620697715716, -13.441122458297521, -6.5962962593129824, -8.4930653390556969, -5.473757203858737, -16.42318744504734, -7.678902139771755, -6.1724752873292612, 17.227224731420481, 2.7992443468423089, -11.010643413583562, -6.0460973993600238, -11.514094016830022, 7.2250024006000091, -7.8426213114387204, 10.647716150585898, 5.7539405508617296, 9.727218535739766, -10.217949794886991, -10.197658817694322, 1.4534950594678713, 12.10682632749001, -0.51088307163622715, 17.710760548825679, -7.7470194812395397, -24.372971692573486, -6.6052580469808717, 8.826482956514015, -6.7872955696686779, 3.6389619856040674, 9.9237321927880782, 12.100520790781362, -6.8842633676573595, 2.8844843405481937, 13.672108533544661, -5.6338295492883859, -7.1944131155704678, 6.9746870716875398, -8.2312590639291852, -10.25205738032861, 3.9564297173352139, -11.16342115946062, -8.4103856915642865, -3.86058459788803, 6.7693385059336668, -5.5093604081945458, 9.9112156966838256, -11.829917793796264, 12.06350448472004, -9.8908904770778552, -17.725516485129567, 5.0710728367340741, 2.3733785626266992, -12.373813495428958, -8.2010211819107539, -12.301300323962623, 10.576063861117305, -2.4429576335852246, -9.8126936984062763, 10.720987427999063, 5.3468144210345949, -7.436093608771988, -12.085562323273949, 9.616133130427178, -7.2337117418265358, 6.590012489497771, -12.933819456719151, 9.0992320680750058, -4.7115096872358144, -12.444448996962361, -9.2431835291508904, 8.9400870181220906, -14.84487535501597, 6.9572855730306786, 8.679259378600257, -11.728117564638417, 11.57774167266283, -11.089244669418909, 4.4545841055164113, -10.471036138424958, -7.9268850048012363, 10.006310688982033, 7.3307629546995496, -0.70086411051328346, 3.4399790497959652, 7.5780305602750353, 15.952535940468001, 1.1236075069228646, -10.56946563987197, -16.455271371728593, 14.943737550316991, 15.270538328279843, 1.8246123975329285, -11.861267836196021, -12.897409417413272, -8.0295182717849976, 2.5085092290718261, -2.997769928368061, 7.7106512520538253, -9.7986312114017196, 3.8597867083890951, 14.715042117673541, 3.6286772784703238, 4.6804229784596041, 10.468442660987332, 6.0309605373905297, -7.2836222700763322, 7.3372979832476464, -9.125874340732242, 12.431154776537063, -12.652059501141041, 8.520614267493885, -14.669291764198016, -5.4369263583494511, -6.9272239504642288, 14.411503339302335, -6.5090359387453871, -3.8249288367587844, 6.226877964919483, 5.4872378813688707, -12.071286274848809, -14.839631376528764, 14.929556186968613, -13.550466083272015, -17.79040452965922, 5.2176515285150078, -8.4073909354978511, 13.152357868676932, 11.880434179671278, -15.154722117187848, 3.3578570344364098, 3.7992951070371852, 12.544849221875657, 4.4664223998223864, -16.02563218730095, -16.858694781271584, 5.8423687431569373, 14.717494305248145, -6.3014233972716296, 7.8246512200173655, 0.2490959399462627, 10.09774947224876, 8.2302536611399972, -2.0230125836350608, -10.877543890130998, -10.315299910440396, -17.814418691884743, -4.7984509876179366, -10.569732541659832, 12.468245506360125, -8.1994351150315588, -8.4938440033843783, -15.646554844352739, 11.104862652426069, 5.4254710709054565, -7.075912451839514, -13.038488980503107, 8.6283602505517099, -0.1897762834069755, -15.926221800862628, -9.4620561439869952, 11.028601034997564, 6.2202218101379954, 13.01838761394424, 3.8814455959068872, -10.571348353520641, 9.3930545668475638, -7.4486485829571807, -15.896920034679038, -7.6634637506716583, -13.744383772875613, -16.289316553121051, 4.2240572521775093, -5.9728476753105495, 1.4435980912356212, -9.482201269588181, -7.1075995048298424, -8.4496788887326719, 5.5233585701859731, 8.8295065675835449, -6.8321409197770491, 14.622652588625614, 8.1030077299922656, -5.0997213512339847, 10.535820013561885, -11.687469584683409, 3.0547169868379771, 8.210959869395893, 10.201179428221021, -11.658463276051274, -13.563724058479169, 11.01039677555352, -7.1382476676607203, 14.955134349802455, -13.750666848543476, 10.162311270235616, 5.7884645703783697, 7.3371242692507819, -9.6841606635170585, 5.466449250298048, 8.4163518309029381, -7.1508542487337046, -6.6797959016182888, -4.7449989886325188, 2.4393509869405792, 8.654752655597532, 10.070879973393719, -13.17581052395726, 8.5470611298539545, 6.660259185215466, -6.0653871786400737, -6.5193717691612134, -12.615899043092323, 6.700881216282939, -4.8478946577189745, 5.1988868211607864, -12.549358461765644, -10.045744010088018, -12.380860324318006, -3.8616068170109248, -14.465705737907983, 0.4164829268257374, -17.143567612135136, 9.487366827722223, 12.652721901108753, 0.7645899772346989, -11.920812995054151, 5.348021509175628, 8.3879926788022008, -4.6246359904401313, 11.089899173175201, -3.8332542947304775, -13.36196018971258, 8.2464982273107097, 14.657515986404208, 10.904966172392774, 11.533578255944192, -13.982006985588614, -11.973821478795168, -16.592644946389242, 9.2836692767439004, -12.678645783087854, 10.730932446196368, 9.5849200107862327, 8.4498461340685918, -8.6907116625889529, 14.156816081594213, -2.5856081507256512, -9.2993749691896994, -3.6239666126178607, -1.8399557052395836, -9.9970546829752251, -11.017332480853435, -11.692178962270885, 6.3025733321249016, -16.175906955071767, -14.423994620868056, -14.689511946206805, -7.2353003125032167, -9.3660212630661839, -13.858073820033896, 4.7709918994882639, -6.7026088232668739, -10.527782639004828, 16.58828557927492, 15.050247187970289, -4.0564185563228934, -10.640020339068798, 5.0431846567205971, 10.934348304548614, 0.75988821460881439, -10.291366703091549, -13.942020188031572, 14.135017480152827, 11.151498767692816, -11.537353350061172, 10.343082453782436, 7.976541387752091, -3.5774431227145778, 6.7912849734238856, 1.8417106851238594, 8.8764923317563689, -14.359256236175909, -5.6171451890921933, 5.9817930874266256, 3.2031461221092781, -3.5231009274983971, -14.863876345356418, 13.612377512426715, -8.9030335281364348, 5.1285813990983709, 4.8771312118802621, -3.1813763041012044, -8.1658030154444532, 9.2635478384894121, -11.938316318486482, -10.581389864174858, -9.041740376889754, -11.289532586451648, 9.8541909326330934, -10.813754378648875, -10.992626098956032, -4.2128060145436059, -13.803513190675977, -3.4047166821717285, -14.699309096179331, -12.322199151029571, 1.9847013546589598, 3.443351936013523, -7.7412573332668169, -9.4014738152531816, -6.0936722951459252, 11.249057062872248, 5.3612317349290048, -6.0934505412619844, -10.329491262921293, -8.3782268065652321, 10.610705115588038, -7.7383153101209938, 8.5683043797354852, 9.5214421313463742, 9.4646448974772674, -15.945188235432587, 13.571842719150663, 9.1766386061343823, 3.9788060864638335, -16.400242920289237, -12.152955170027367, -11.743525499640301, -10.778431692576483, -9.560949750398839, -11.274506489189537, -10.497378072608422, -11.313774108583567, -8.6889440492171826, -16.999837953521492, 2.8463220500405759, -9.3414733746083147, 14.505309388696032, 7.2740770646355823, -15.216612609375215, -7.7754295642857443, -7.9668693810493751, -11.838336074962589, 9.3302243430363134, -6.1546909317578038, -11.643770269023584, -7.3067290482575826, -7.6586644572207598, 4.1554355791738411, 5.5784827988725025, -6.6788226812914591, -10.099712087346221, -6.812608788772855, -8.6942723276748133, -9.1414982497263626, -5.5404435688554674, 13.782301424897506, 6.4913332097552408, -14.843570407301076, 9.1090159582398744, -11.810479272023766, 10.734632284091132, 12.106233609286406, 1.2074129428018001, 9.05135706765188, 7.0513320487712221, 5.7063731455704252, 17.827025603920255, 8.2204534825947988, 6.859838386896449, -17.066087459633668, -10.546186910811119, 12.544407506754297, -10.501953033608231, 11.631217929282226, -7.3247345033456455, -0.30451282566541621, -8.8097804299616289, 12.580754884209387, -2.4535950387210703, 9.2528280654920945, -6.6762373246501507, 8.5487856314147361, -9.8862934311079176, -7.405954429775278, 11.460818356885351, 9.4241123506707218, -6.0650535086957591, 11.749931801221361, 13.45158323366806, 8.509266618399371, 3.0990921451133864, -11.845686618745093, 4.6809017476948664, -9.0788995203187035, -14.154172714949322, 11.436663871420148, -11.686823110591192, -10.466322347645878, -1.8093094588126659, -8.2842513297508678, 6.998530934794041, -2.8130875381789773, -4.7458503858358174, 14.892214325455083, -13.297630549395505, 14.137398522674463, -5.1741407656371132, 10.811880263388231, 7.6909240450423546, 1.2020066622797796, 8.3882554040760446, -13.296889605096078, -14.12122762385526, -0.86913405214011996, -1.7012640446050573, 12.135944269100591, 13.696947616128121, -4.5178290393967648, 11.379039879071998, -17.142332699109016, -6.2502893853176538, 14.551005043468933, -15.922443449630226, 7.9749887358427554, 7.5006183839537428, -10.731307185445075, 11.828405368248815, -11.242740313773945, 8.6857287401789396, -2.3357416563180076, -9.2522949403141723, 10.057172114119057, 4.2142804964077794, -7.25445812349398, -4.7859211707096279, 12.212717205630641, -0.68060465039856421, 8.3585750011161384, 9.4355684709667997, 5.8736217498953929, -10.357680904873, -15.182609723791906, -10.528438249903205, -10.728845332160351, 4.4271186570969041, -9.5459159618972773, 7.698786708464044, -5.7616256574906473, -6.74427916594568, 5.0713712230747952, 4.9757324493057258, -7.5822193975454732, 2.1521506074067127, 11.702619296651129, 2.475868836880037, -8.5152128927626887, -8.8176272081621523, -6.7396490012107382, -7.1103087325178862, -12.249044472908748, 5.7223187192045835, 6.0785970538718885, 13.311388408274434, -5.1967232459428514, 10.616058764924363, 4.1131834199366937, 9.1157637550044708, 5.0981827919094043, 3.9623438215809581, -5.1277684895200872, 10.717366089367347, -9.6119167010571456, -17.671933631733026, -0.93466484572541053, 9.4511618566836688, 0.51145591409598801, -7.4842698912260595, -12.965780155817985, -11.049283246505306, -9.4204398537725336, 14.713331608978752, 6.1294522089617445, 12.762571544243462, 4.2519976479727246, 11.581799865407062, 4.0540310044195316, 6.7583036711124178, -8.4596629969850596, -11.555561625120337, -13.223361797635503, -11.022881346403601, 7.820188150462851, 10.050313550691401, -2.8748772822692796, -3.975284267526737, 10.165011610963463, 8.361153496598952, 10.23454765876409, 6.9861352278001991, -14.063066120834387, 5.5703634980353156, 4.5720288674742182, -10.208336872812145, -3.8841964569917136, 15.871358616035476, -10.375333061106602, -17.028934392886523, 9.6095097993772214, 2.8612197492337277, 7.3984151374847418, 12.882442279479097, -3.8593872267618985, -3.3505651418910092, 9.1400352361857795, 3.4607159608677991, -11.802758101252648, 16.131696084668302, 4.3485520924992915, 4.9299693363247012, 10.20608409504235, 11.350181288635312, 0.71079817132091727, 7.1011529322063716, -9.9921413971440192, -5.8089676277937103, 21.431868331238753, -7.0747060210352215, 12.069527047899687, -9.4828998378865119, 10.122263948520756, -13.538606127789073, 9.6375976702501429, -4.4100604567201094, -11.99790766311845, -5.976372779813337, -8.272146596627568, -8.9450436886845743, 1.9542103075796229, -2.5876227697187235, -14.368094001362385, -2.985471188013614, -2.478307267502168, 2.7456040916726456, 12.581031236480218, -11.4758779722525, -15.599590155208737, -12.992869206559288, 9.953747866291776, -11.025999481843595, 9.7008748889831633, 9.4677048052865693, 6.0665148799454283, -11.021027787278838, 4.1148665510329865, 9.9715457939675805, -4.524015231428284, 18.833454602793879, 7.5018420072802252, 6.536477074456216, 10.39532612887518, -7.7192567198190574, -5.8633746049064728, -9.4739325485451946, -12.966876834521914, -4.8932353347242916, -7.50082678824488, 7.9240662467055403, 15.473285728117284, -7.874821177550495, 3.9913525758800343, -20.203393732375613, 13.177667766939793, -11.905585671112627, 8.76829420558043, -6.6904194950549218, -2.0990812946584643, 16.352167450942488, -8.6839871579774304, 0.65535704062993771, -9.0914298192610481, 6.226432112620512, 14.414606788199343, 5.3327990949329722, -9.2825422873145076, 5.2444348695624967, -13.52476436519694, -10.565017103537128, -7.9458267805510605, 6.2385267794539532, -10.620897086888419, -14.02491825647715, -17.249193736529822, 21.822546537373011, -14.525572761291961, -9.6352912168501117, 7.7923236942745477, -0.43905931375127905, -1.1677511335028592, 7.9195608711842009, -1.7261157613467151, 0.81574419315180335, -6.6258630940789853, 11.446710993602048, 10.423767215464459, 10.131515821910522, -4.0813762630157786, 5.3099875815632895, 15.005238483277349, 3.9458100113193013, 12.997541564501073, -13.401349640520106, 6.0898523220056484, 8.5430795315739463, -6.727566986421512, -6.0976964106078926, -1.5514248251358895, -6.9251342133096534, -5.0010498589221326, 19.36294632958224, -10.995748094036278, 6.8230876895289425, -8.9816761374312737, 19.252689002798032, 15.018231032342973, 0.75032883111291693, -10.512852145797988, 15.952636394768637, -13.876019658000088, 7.4282002133627536, -15.007337649734009, -20.867628639436518, -12.864466413292632, 12.282886216105501, 5.6117260976193588, 7.7243055425354985, 0.74537471606410499, -8.3753274103443793, 8.7297402808334041, -3.8752359373415373, -7.8660891683218042, -8.8027160564205786, 7.7988010166838881, -7.8129632889899385, -5.8353090570942738, 11.438552747844, -9.8854956847581263, 6.193488211617348, 5.7060858140643864, -5.8417400083956581, -7.1659403388854175, 8.8621684734697617, -13.828395956746165, 11.58722476958626, -8.7757625064865632, 9.7638601085689327, -13.63897121774294, 10.692146632523938, 9.1954815513953641, -9.7262358263602646, -3.0742135000084518, -11.831625275045802, 10.346151064081882, 13.860225574621548, 5.3434462647847401, -12.667486708061194, -7.6071393527596891, 10.497824234551809, 9.1398524858692305, -4.8312688599490299, -9.6866353191391568, -14.936854315955886, -4.5645292398393735, 10.306087472805107, 16.435616799434957, 9.7618939189542857, 7.3359442918945499, 5.4777235052650965, 12.827631906540597, -9.3557044067803972, -8.6207571310957753, -6.9067986860795303, 9.4266173165645881, 8.2700014055707438, -14.396299560527304, -9.1945433850102294, -5.0742673058143186, 5.9363570201246212, 9.1825801770474449, -14.26016478123667, -8.9647881473585791, -10.999991358949853, -5.2643587807317358, 17.966460043223208, 4.5038323715849113, -7.3643627119764705, -8.0021495622334466, -5.5012765171131761, -8.6385795076142866, 10.642859565399243, 16.418157809689014, -12.558310319227193, -5.6944436186565675, -16.620579134203229, 5.2993074909249556, -9.5535858720998252, -6.194850562303122, 7.9283758132069577, -4.3938243314441445, -16.08461551423154, -6.1053020627578558, -7.8156662613007883, -4.2010902685294225, -11.260598796472106, -17.361798229363732, 10.523477968271544, -9.2997205134904561, 4.7239785905440819, -16.55663724338849, 7.336212674126954, -6.9284736037251049, -5.9733477242286268, 16.958437027673817, -9.3688626284447736, 12.335069283139083, 4.4003768017589344, -9.6375650205771759, 4.3025216992304607, 8.1709809734149754, 6.0840979096543046, -1.7791701081822009, -9.7212268065403915, -6.3728373407996992, 9.4709301635928664, -9.8099415495718265, 10.216669472304444, -7.9089613940445638, 9.0133309428613888, 15.233159549099527, 14.443197589960937, 12.315849008505751, 15.22683390790605, -12.204208274855294, 8.0545420942912056, 11.261686524342778, -10.088714704911705, -14.758394330397744, -8.3506925495196622, -5.7190575904160488, -10.474095362096637, 6.7558531383042801, 10.839875782803038, 9.6223187492013871, 4.0011315315627671, 5.3452889051100145, 0.29628684358052387, 10.260560792716758, 10.010269925150098, 12.309818259037518, 8.3443036587520112, -5.4014577244395916, -12.309450717768483, 6.227119823086781, -0.90098300040336077, -5.9574142236058796, -6.5290358544134426, -7.443075641870017, 9.5718761708906559, 5.9045525168917088, -14.09287394192167, 8.537557668616758, -14.160598968888243, 5.8051719496039951, -6.239975019204187, 7.4524259174698209, -7.4731349725176219, -8.5239733925114809, 16.110254200184002, -10.257968713373153, 9.5898379203607735, 3.4675905258102322, 8.1300367938993361, 4.7762632339122959, -5.8974433337845085, -9.3140122423426206, 3.5847848816848376, -9.5355250106758724, 8.6839175133173008, -6.6948323819511488, 6.7933016290691377, -6.3800902026507824, 0.76093699061175468, 2.6435457529778015, 7.4138748481937027, 6.0247308500592567, 5.9280863177297123, -3.8920878288506016, -8.4621386416944677, -18.750651564949948, -7.6188990491921116, -2.1334205811758622, 8.7540093304816082, -9.8600851053842149, 16.342033110995256, -10.800872299968921, -13.998298573757474, -3.2934871871896396, 14.06180118603365, -9.271874228911658, -11.048285130582032, 6.1595626190926716, 8.0570216147192557, 0.66340001966893403, 6.5132884000227351, -5.4201122315987309, -9.7412562635013984, -7.0486139617141514, 16.981384687745692, -8.7022380510622721, 14.647877845477861, -8.0820055541788722, 7.2226523022245761, 5.3790569210687584, 13.728807132743302, 8.5317048523035623, -2.7316549253863927, 5.3846139594020226, 5.4103146460176523, -6.694268736004001, 8.7300406717059573, -13.347383859719848, -8.335174873152722, -10.945696086225201, -10.4875598953527, -6.2891459907155456, -9.3671321709341981, -11.585498988590738, 6.512870728010193, 6.33239714027453, 8.7682544573530521, -6.7439993019333704, 9.5026784978124166, -7.0246760343330656, 6.4372813340255446, 8.1945894173399711, 10.262887249545706, -7.5060931723177706, -14.674750300787338, -13.287289997793177, -8.4928309129257595, 7.4563888548291644, -4.5195874938690226, 8.5442291590063935, 9.7115273312730501, 15.092119744113154, -6.4263051953856785, 0.12831365323535676, 8.7640439297438597, -6.1460218943241305, -10.889755958467752, 13.67769695151666, 6.312988951937812, -13.227320725213115, -11.784825668882982, -7.6748667604861192, 7.7787450544407344, -9.3711259762266828, 13.023365017019263, -7.0200584128511876, 13.494925467734497, 4.2227722997626005, -13.760223253172747, 6.1777636365323456, 12.067306433588751, -9.9155428829691132, -6.5766064428842856, -15.151662906193899, 9.6988065214723864, -10.152731302282174, -8.5735676931961322, -9.9418795299730185, -6.2260760507460198, 9.447544122507308, -8.1319644337468215, -4.145324424570318, -3.5485961822808565, -13.467769122062073, -5.7514070303621585, 4.2372927865136871, 10.111694661148967, -7.4186471554037379, 11.430760000153063, 12.312843067890855, -12.810688665750249, -1.4448074235360808, 7.986361807585828, -1.7676683131382003, -14.521209725348982, -4.352705664193615, 18.914853195668275, -1.5113121651615482, -3.6397864185997131, -8.6196558356553385, 4.1199321080626019, -8.4888399293551817, 0.57614759104880209, -3.8170562650576274, 6.5118953364681147, 4.0953213386352472, -5.3421050165325257, -12.272356482934088, -3.0358640779517354, 4.2481637384966975, -2.7752337082527849, -8.0160326885318369, 9.5768553793879043, -1.8524775210440534, -11.009861394679287, 8.9742068648070266, 12.471334080830026, 9.9992644688047552, 8.0039800551702207, -8.7981872925635614, 6.6433407975833738, 6.5480704488332835, 7.2841246634294423, -6.3252439319780178, -6.0513426125451124, -6.3988334931556485, -17.469331458693546, -4.580254889517116, 8.9993454898016569, 3.2238207283793323, -7.7799510625287303, -13.803751678166556, 9.7121916487763045, -8.1746700971358059, -8.8126126733994941, -4.8155492973679186, -10.804453969532291, 7.0086143651800121, 3.1481410707654631, -12.810183673768677, 2.3362046780839187, 5.744619950986845, 3.8643342874084374, -13.249939418679734, 11.415744222471059, 12.554737671029878, 9.8333778447831257, 5.0957400772063437, -3.9991407502674661, 9.8345770583999279, -9.7368996360840274, -19.449417624721992, -7.5133274868764675, 6.0619042605430966, 7.197156700662827, -7.0063836107615485, -19.263860108465263, 13.028208109141358, 7.1331219897936977, 5.4720228485501652, -7.3579311406347925, 7.1801636071660138, 14.640572831964421, -3.8340913302192701, -3.3062445113231744, 17.400159670258972, -7.1681505547822413, -4.3542281808553351, -8.4546164816007607, 13.421193429578857, -14.905121149794782, 8.3143744117862095, 4.9730046756217972, 8.3532232015837344, -7.5969825424753346, 12.3177910080973, 8.7607875220531426, 8.5127047792303561, 3.5774587189097899, -9.6494548210828786, 7.5331539937229897, -7.4747114284701679, -8.6591660587053916, 7.3468316363038637, -3.622337543593344, 0.47384090625185044, -6.0463560480716252, 8.0499483448215017, 9.7022755442800293, -10.776004671468062, 8.3543427603924503, -5.5360568466131905, 6.0186808121336659, -7.3543970398820848, 9.2806086183805689, -12.230546104506987, 7.4673092848302733, 10.975472812952574, 6.7926415721593818, 4.8749321283736755, 9.5323516120815874, -3.0280886662753885, 5.5571898549900514, 10.226559964818154, -5.8034190385368811, 6.5444311969384019, -9.130374827280793, 15.819448485436817, 5.5538576215556326, 2.8637826501217618, 4.0706674231610558, 6.4597011042272623, -8.3735378854139135, -9.5667300995851061, -13.845901714228189, 12.714093428899416, -8.3628461969588557, 7.5987675327409425, 5.9272125723131186, 4.6950385206484189, -4.8195825770873233, -7.908711363482686, -6.0290697566338824, -8.6859336035752293, -4.5193059923378351, -4.5940077637319696, -4.3311584091869832, 5.3536488354562275, 1.9921280360174241, -9.4633153479117045, -6.6570051760469031, 14.208357863252012, 9.4845107231608647, -7.1832992233853066, -8.8475487049318655, -13.630287949249563, -6.0719107719352952, -14.274798405390152, -11.162105305503859, 13.054901490270078, 12.995371746588807, -13.146715820058548, 12.945646134893682, 3.0460739976722446, -12.155229015360904, 2.7412678887489506, 11.780611735174173, -5.3341954653614927, -10.032480770112713, -5.8447538785525053, 0.52725472542845364, 13.379456926012971, 9.6135830134952744, -1.944448284069229, 9.0502993001659355, -11.346127451101133, 4.2434870682337369, -9.5043367843183457, -2.9775157830606012, 5.4193649803215109, 5.9212605221007886, 6.8739591477125153, -9.3618138585411454, -11.34734301929147, -2.8580136600449677, 9.7314938797272301, 10.716957084696832, 2.261487615173849, -11.936472547545375, -11.596497065616539, 8.1683014049841454, -1.9741314291525349, -3.8079032870338203, -18.998387033650793, 14.785213606318443, -2.4675987407306512, -12.092457768834166, 8.3055089082183038, -9.8880041321383381, -12.17693749962149, -5.6119106856770609, 9.3346742365750952, 5.9978824704833622, 0.13754021975113387, -14.894732183908136, 14.747292229007831, -9.7097733323647439, 7.1041665937562009, 8.747982309638612, -1.1124715705618149, -1.3453533016361534, -7.2336827315963976, -3.3065754079116902, 10.610359888132521, 6.439770888743964, 11.42420401634142, 6.5388842458764689, -10.853598132676623, -15.353822721495742, -8.0675862924724751, 14.459019981256141, -12.566396596207603, 3.4205186262164231, 5.630487549883056, -8.073684341188935, 0.82126057392054652, 13.882060246971731, -11.094144048902541, -11.389801550560342, -10.3187260289045, 2.991571648758196, -6.4911734708363165, -11.245496138683489, 10.9851776336762, -13.130504876870628, 3.7733165504957942, 8.4076079303113911, 7.5529546967120051, 9.1048736341912768, 2.7287083950923141, -6.4019633593747214, -6.7703960792021753, -7.6283872602484184, -7.6359394699956251, -11.153289601654617, 4.0727793884727168, 8.3062884746691932, 15.72392064712384, 0.9811577968163786, -11.722310671012934, -11.342923130703641, 4.6538782013854689, -7.3739066993524025, -5.8947067956510093, 11.486762613574625, 12.413880145399126, 10.786268654735865, -14.830950842039924, -12.718664091764236, 11.838893611398694, 16.960744319691706, -0.90885433404131177, 11.805632469674961, 8.787147329142396, 7.4670599584679005, 13.783711428147573, 2.6889832573487715, 9.8277282208337393, -12.621979239155044, 11.900463485129047, 7.3974913674936378, 7.9790082301381764, -18.460977129782226, 9.6868989422260476, -7.4849707679692381, 2.791279213037106, 5.9072811103444005, 10.027746084723706, 5.481378194108391, 0.94657543605496242, 3.1638084348680802, -11.565804912112132, 8.1295825065418228, 6.2454385368905463, -8.7244225637155086, 9.2949740971114814, -15.413745662976126, -9.2767171742637053, 20.883637553321279, 2.1729042705598971, 5.2123425513190229, 11.260222333457566, 5.4759025599371576, 8.1537344500122764, -12.294121929916995, 8.802476739158374, -20.703918322925325, -9.4123075195898913, 14.838015503157582, 8.1809389421993437, -7.6381202529000944, 5.0731354695422288, -9.7523696522120105, -13.519239387616903, 7.7323479369959101, 12.148583040284464, 5.4807070910189717, 4.8696229713233139, 5.0087903276064836, 6.4402113569592467, 13.277426855835845, 9.6524651881369721, 10.826902095836219, 16.183489895274345, -9.6318043844967534, -1.373132442179763, -11.219593888898418, -15.004319828107285, 18.258393722812315, 3.7354456310459385, 8.0651749744359105, -6.5164044554554748, -12.565266643553137, -12.030885912645394, -8.5404810535779507, 12.314165209697041, 7.2947873166397219, -10.819275536058335, -8.0129408622894012, -3.8121662128657552, -7.6091124585846721, -8.4798365873122474, -3.9868453977970675, 11.38629202057937, 3.5714802941824, 2.9518831049273677, 6.3322250488086071, 11.580034774188221, 13.479927163429085, 2.0786137569475098, 7.9330224326080057, -3.6943001859225055, -3.2256160391289095, -12.811450358156192, 13.541505165687818, 2.6411149013180362, -6.3489619114245244, 13.373338952003571, 12.628299743258562, 1.0027687748564038, 9.2077227922659706, -13.768254699816865, 6.8324600540916247, -14.524379303203943, 9.2715316925285709, 8.7678396133255916, -7.7000840765938703, -7.6752994649649313, -6.9178464084480851, -2.824297046557938, -10.067962153214038, 9.8382780470022801, 9.8343360207768367, -10.442346656794413, -11.531825845771756, -5.6955603852302623, 7.9952115376447042, 7.2796481632297372, -3.9815702225402285, -13.888827599999129, -8.7028698626538308, -6.0635186121417952, -1.0917426165389645, -7.5444189349932813, -13.502585170286313, 5.3738984196649149, 5.1002418292985094, -2.2415640749653791, 8.3993581378656117, 17.872303247028064, -5.7930453662663712, -9.5610560588597515, 8.0594903059030294, 5.9955468570765671, -8.4016643820784811, 16.017479926774133, 12.457791465479348, 14.251050296430238, 13.550966058757862, -8.762120073439311, -19.568799520529904, 14.473633275887034, 4.7150108398434316, 17.622896812791758, 8.5532109821391256, -7.8861564007563967, 2.8018084587073706, 11.238281768369326, 19.036214400042667, -12.627994340787289, -3.229926146308185, -6.2106083456766665, -12.029815325633603, -12.732678066605525, 16.114114027765005, -8.8878875737603433, -9.1952288940063198, 2.9514348736209386, -14.875969949421576, 7.426537438524826, 4.0988218779588257, 5.1048469008081083, 8.3561664083509974, -7.1680838371486972, 0.079559302266173665, 7.234447616829998, 9.2153180384359938, 11.380502523658766, 3.7813665464468564, 9.3571471630839476, -5.6198950965916659, -2.6112846832626295, -13.074922193350705, 7.1458325396315745, -6.8553238201936848, 14.037347515845747, 6.1114574644258219, 2.6233447927944442, -6.6962191818230385, -15.054560815064955, -3.8509653059595634, 5.6193134186600444, 8.4632418525580135, 9.06084843255511, 8.7155312766304451, 14.146656363113056, 9.4485647712524159, -11.894790263269002, 6.3630883640874796, 6.0659222594215532, 9.3423771994935656, -11.56898779218068, -12.569317170483185, -3.1542401369229229, -14.317618053977442, -16.07713062656423, -13.866270731830225, 8.9731628045127234, -2.7568654754219311, 10.650056946180007, -0.38554919912492391, -19.636918428478758, -7.261084813408365, 18.261599502237281, 4.365909470450525, 9.4604701736004575, 9.3379768195852684, -5.9721332777841125, 1.8392337494849149, 12.236588220433115, 10.729755869202716, -5.0163355160529157, 7.8745146479874295, -12.210717308250283, 9.9053843786672573, 4.3176048616878999, -7.1321033170654076, 9.8376099896153644, 13.994875675654404, -11.800822210877568, -12.467732532409068, -4.8096053846346782, -15.806886200214143, -16.011053902031289, 3.3108259217896991, 9.3708906824355758, 4.9387906035182194, -7.2811664484622529, -7.2283659694812323, -4.3994107454794076, 13.986557692605393, 16.267589496305209, -12.5211237853249, -8.6162733581098614, 11.875897506788261, -5.7924040049014529, 9.60395357854315, -13.371234187638548, 7.4044876769030976, -9.9169764629346115, -11.960026798255779, -5.6929530819152605, -14.080996179546117, -4.9741440758010285, -7.2894457453898616, 1.7385165163304241, 10.659988023147882, -1.4616437274123262, -10.074637029156758, -17.086127613435742, 12.235716666711239, -7.9575522168496349, 5.807625236075423, -9.2779276010226894, -16.480345338445041, 9.5297786981975108, -12.287759229285887, -5.793455825490601, 11.046928184816098, 12.263531584491689, -15.868613864191206, 6.1089590101381299, 7.7043039642206841, 6.7725058819006509, 0.19765926454723443, -10.92190123421037, -8.6903416862217444, -3.604954070470813, 10.780882529813848, 7.6342821794581255, 1.819027960022801, 8.9622472070627612, -3.7731185676641705, 2.6511830669363676, -5.936256145443763, -3.5065708446633179, -1.6756694810431396, -9.4457045728120921, 5.1176087336867671, 9.0843869892318665, -4.9165468247185249, 9.6190501542416023, 5.7720688303614107, -8.8665231351704143, -16.776765049597191, 5.1935200585542409, -7.0317717992679913, 8.5952975711448651, 15.701379400382201, -5.1747900955843287, 6.644409479106538, -12.294043736596755, -15.483394542555223, -6.9161043885800755, -16.902160692468406, 13.140408586007654, 7.9585367038084494, -0.60142488467217781, -10.583573691246794, 7.6570812407643905, 10.488467203766263, -12.229594163883426, -12.105180821633089, -10.100333917660924, 10.582889173673999, -4.3524138084056574, 4.1598294177868027, -7.7208623056787218, 9.8373959423124191, -9.843437056863948, 9.2758547221503864, 13.917929858415311, 9.6348606573169207, 6.1603576344825903, 7.2761550553448275, -5.6132644264075031, 16.925921888188984, 13.099232943399601, -12.169951256692608, 8.0341465714582103, 9.5080586839310293, -8.9153040306547862, -6.2778930359354987, 0.65702865949253608, 6.1455975831103666, 3.4956736733487177, -13.101966614043903, -8.4917541060921486, -7.7703858331616402, 2.9540207920840338, -2.8250454453694225, 16.471572201031012, -8.3401753077338174, 8.5209392200398799, -8.4562622463700912, 5.3451445327350049, 8.3227551961577149, 9.5505384761710648, -9.6168853444985132, 7.8088619634040271, -10.010194534199005, 10.407541359870157, -12.730901681260953, 10.062237956980878, -8.301093581147164, -11.221782089013969, 5.0699226682185836, 6.8670809315755763, 9.5183305660198574, -12.477293633009369, -3.0829984725185011, 14.251075736126907, -0.50381312202666373, 1.3945668674871461, 4.4380349292124333, -8.4792849992484687, 15.740298722260704, 6.4916661990457039, 9.8781328856963952, 14.524311425947424, 8.623227064986775, 1.82594923740208, 8.1658888991281113, 19.519909829772214, -0.71626812905103776, 1.7182300090879543, -8.0056305624195137, 8.8667806307632393, -6.8903486607996696, 5.3931378831660304, -14.284745953661838, 11.800779205285183, 11.828892295047666, 11.579327959504184, 5.9644626407280574, -10.637566489206868, -6.3308930175168046, 10.362896991246821, -13.136681551103671, -10.69114929291889, -8.2804076555200332, -8.7620956793565572, -8.3349590113674843, 6.0390086996968186, -0.92206940007654714, 16.688147291793179, -7.7396944231238889, -10.556885976235911, -5.5034713893873217, 10.684323799177031, 10.164740010619706, -18.644906837500962, 7.8255279920941758, 7.1184183927575999, -8.5879829996361785, 10.058536284915368, -3.9577147638427337, -9.4390455070755355, -10.813502747434075, 3.1725069430189179, 14.646645070268773, -6.6958720302719321, 7.1891012020482057, 2.776770380964142, -5.3045752723276198, 11.024688310314966, -8.8716706651748609, -6.2182144207648875, 7.2174155723591822, 9.2363647659736916, -0.13811663085025644, -6.5095852199241193, 2.7850661520962201, 5.7288466875807895, 3.8404238060339386, -11.979694823507765, -8.1566218452888641, 8.4872181623141802, 4.0684730663558621, 9.433119896225687, 17.452359798566942, -9.1852211978356539, 3.7813711040017632, 13.687886395835575, 8.3110503099043083, -12.263855365231695, -0.29265821325473718, -5.7786710506977288, 0.32000221107421295, -13.152220176187292, -6.5995903240006717, -13.649334703564579, -7.5516513340805105, -15.16406327996164, -6.7664832291371457, 9.9511431024063146, -11.833825853245724, -11.726480937964023, -4.6960938337568416, 3.6909792826776235, -5.7241654435325771, 0.84009221550172219, 3.981445765587416, 8.3193977689219309, -14.855487044550641, -12.13768399449228, 8.2575189786919658, -12.482209307351347, 12.288265749008579, 12.92588605732125, -0.89651953932604156, -17.178851924529209, 13.465060130471429, -0.66179931634497746, -4.7361380949519907, -8.5915497494217874, 9.8633923545024036, -11.075503948766817, -11.521258634171812, -16.937563321814299, -8.4089961555477153, 10.316744468138424, 11.068755254870558, -12.812559137681774, -11.716000182253042, -10.794814834414403, -14.695829972179469, -5.7734367211811755, 19.281663549262714, -7.7079679114509911, 18.982133221850518, 6.7278265135517552, 9.4200950070653935, -5.0327780626629206, -1.1472749532062567, 8.9655615288611052, -10.289968622568939, -4.5317886320427014, -5.0717832150149214, -12.403158065152988, 16.054879478569319, 11.910769204629043, 8.8721630995550154, 12.946670225247273, -20.040326823281728, 15.061437997065909, 12.371159663686912, -5.2434241432319393, -6.539600733678907, 8.9759004731301122, 10.399696431036546, -9.7820158235043255, -1.8655127741351087, -7.2564512028104291, -9.2402317505484497, -15.743596514833451, 8.0518221334585913, 8.064389141916843, -5.1750464722524647, -1.2577099412771857, 11.088648050953193, 14.734664098438651, -8.7257834129372487, -4.9071340910761805, -7.2288497019818241, 11.368753439780507, 11.259515603467754, -0.9190234527098583, 10.508309728639846, 5.5014236641516137, -1.0062376510942861, 3.9510038373896794, -3.3772476520373296, -12.298064413396816, 1.1518807046710942, 9.8347990668982277, -9.6697877164226895, -5.1708006319540161, 10.90534178699129, 9.0780310964231923, -11.06717326378323, -10.193153698637712, 1.6370922062264599, -1.599701860652494, 7.4493340597532782, 10.079750519485344, 5.9817167134058051, -6.1883642950981734, -8.7859917448021054, 7.6925693496530796, -11.726693947959594, 1.5292664230077266, -3.7640503328337047, -9.2026303785959076, 8.3703384923817321, 9.2968574133785165, -9.0282964165522213, 14.082662142896044, 7.0391904432891064, -8.1892402659133481, -8.494960679412987, -8.3171594195215324, -4.1204583607408765, -12.464929795412097, -8.2800259108270922, 5.0158695467591343, 2.90504266938304, 5.5802620759772603, 9.6053945607379294, 7.4665086294967553, 7.2836197716168538, -6.0797636096551519, 5.9192672325212143, 4.3197502963078556, -2.5794586298505413, -8.3804827856018385, -5.7616389244014083, 7.5165636982133597, -3.7871806468757891, 2.6957388838195038, -3.0339814791522679, 7.7390014359139343, 1.0179611498135317, 0.57428282151728316, 9.2486809887277968, 8.9851820183067517, -12.322228892543235, 2.1846637256927366, -6.9268224211182101, -5.6465263096341207, -9.8609073169739414, -8.0437109222330996, -2.5924823061626299, 10.799267368908426, 9.5532367964485942, 2.1510949897407339, 0.72813586085734983, -7.6316236927774765, -6.6634161974825536, -7.6995131312161114, -2.6469146283491312, -7.8927242011683072, 7.9686594739655217, -8.0858268153723696, -11.113628935027652, -4.2312391545249435, 7.400536752330261, -15.878877108958942, 5.267992480772417, 11.16296673206628, -17.540164979801386, -14.801126830818111, -11.385201143366997, -14.508310090705075, 14.464207778841862, 11.215905228606482, 8.9532196390944634, 3.1058203222772014, 8.0753828772231113, 10.559485384240654, -8.2414912742823354, -11.714805939566189, 4.7281042573450431, 12.657353257890819, -6.3043093049399248, 5.067000914225444, -14.714628033981958, -7.7444814248447615, -2.5025562382741042, 13.564851064978582, -9.4328409951276662, 10.04126088038934, -10.570084081595921, 2.3444801610493466, 7.1831276221853866, 7.404162681313343, 1.1684082688282307, -8.8884680285241533, 1.9400943416397112, -13.196562462363692, -4.5705203572273359, 11.003636571194738, 11.468673888105736, -10.534610194739036, 4.4477979444487845, 7.3667611650061362, -12.044187016767467, -11.396051178941862, 3.9462512050906744, -12.988661501036244, 10.545881026800801, -8.0309289513402735, 9.9370741830104734, 13.654579804016825, 7.0469488853837321, -10.938942295813185, 5.1800344871423132, 10.882232153707738, 1.2710853105543087, -6.5661242949766816, 9.7776412282696459, 13.321850745505881, -8.1153422577009291, -2.2941713421233958, -8.7097542589155221, 2.2618606797252978, 3.1810406025700315, 4.829995467844082, -8.8230523342209999, -7.8350849175265527, -9.1156429568037076, -11.442019665347123, 2.2127249998070249, 18.018245968154236, 6.7919203279388967, 10.818120665998064, 15.957114328595093, 9.436472994391762, -15.0724442489973, 10.177531220212931, 8.7382348206500033, -7.4439716572652967, -10.135340539629416, -1.5478693068716267, -6.2520881203409369, 21.51870984833112, 6.7814496888686202, -5.4629593689724354, -1.0810664038442734, 11.680093350196586, -1.1684404824410481, -8.8192804660387161, 11.947180907432026, -11.865540708697406, -12.073158010228243, -9.3168616660647103, -10.855717378744718, 12.832277402471462, -15.233827235544979, 3.719489187613028, 12.974696537296685, -8.75959465422536, -2.4475947054420195, 11.313184053568827, 6.9182165488811229, 12.123675956468196, 9.6442923820443145, 10.799907622549545, 1.3696427348286129, 12.109212710737127, 2.6404947713803306, 9.5435762973738267, -5.4268755145327745, 10.974370356637689, 11.459181655827159, 10.228613791177938, -2.0376202581586202, 8.5519223504193267, -15.144108617549279, 10.208111627929036, -16.074632706297336, 9.535346082793712, 12.968894012265515, 4.2926497043948793, -7.6447760416419124, 7.3591604897068219, -6.294066487171917, 8.6661482650382133, 4.3524844886549072, -9.6284187314739373, -16.389868048898698, 14.370574991274481, -8.2963813089615268, 16.504114329831857, -8.4564658970066731, -6.3969858495492078, -7.0522130158545027, 16.328014713505098, 4.0676774938327931, -8.8805902890220576, -5.6438005548253818, 10.887856323753418, -13.497382772819085, -17.229682704447541, 10.177341730428909, -10.959196430060141, -15.892999214486872, -0.39312548358593402, 17.548662000796629, 8.138747505659067, -11.081466337015, 9.3549081143588229, -5.2668052531909293, 0.59145215464277101, 13.865804154173629, -6.7446135707105945, 10.591472647241186, -6.8775928522394087, 0.79035105716724385, -0.83434363179526505, 13.426811179256797, 13.480253964577903, 7.9579945693584886, 7.8687287842784803, -1.2711852125721312, -6.5831626138029433, -10.255988526378117, -9.3721646222445631, -4.5483019698635951, 12.654546996958775, -2.2845772848784054, -13.395748226685187, 10.227730333720137, -8.9275038607977386, 9.2096733075692399, -9.1994549499155589, -4.5768838702423018, 7.4336970353205523, 6.1990136188764922, 5.392562974045604, 6.8615159418299543, -9.9148725697134683, 10.272013543022926, -6.541146389868957, 6.1996539988491746, -8.5702789915391175, 6.0710850780527128, 0.41216255793753664, -6.8452494187073416, -7.3698306482120808, -4.3788198137924814, 5.254192997316685, 7.0651978737141468, -8.3496697717376325, -15.541186410630397, -13.361062248182593, 11.869712905857645, 8.8858662456220436, 2.315280646740792, 9.1370562156627635, 10.612212040886574, 15.723923545841364, 9.3000796832012966, -12.203790919241875, 9.5229433645020229, -11.332560886601259, -11.799762316157022, 8.6718707861873146, 3.4390494326490342, 10.948206478975262, 10.351083327208633, -2.3551385999606347, 3.6593868571158006, -10.912461508095474, 6.3601915796808566, 12.644105697007012, 8.0987317607631102, 6.8425116090817673, -7.8614337809266139, -16.777952262404956, -15.092829035089149, -10.867283176676434, 9.7617585972043095, 7.0699740006630494, -0.80345056050581032, 7.2341098943011026, -2.7901743760803868, -14.023920253719963, -8.6493250885626658, 12.119156062865828, -12.565363519164727, -6.6257256922764087, 9.9530063133378111, 6.2285641482405287, 8.5890710113124502, 10.901661163934543, 1.7011000225296526, 9.2328185698429888, -2.5151197107048353, -0.78814118951465995, -6.3782804075339934, 0.77016194990540299, 4.7860592575330942, -18.091131028655795, 6.6618347947308489, -4.5537746303503699, 12.906362988375243, 6.6637236513957019, 5.4194732758517778, -5.626683563346548, 4.8295291548347352, -11.904932030289029, 9.9944164460741938, -11.027348899069844, -0.014743410131345848, -7.3410368137184197, -12.558702052466645, -9.2966083471503538, -2.8582301845790048, 16.122229949617235, 6.0332133243788979, 9.4423884847579131, -6.7953848219405604, -8.640997496023326, 11.564755524473357, 7.7370575077503672, 11.178600690994582, 9.6609341268345741, -5.0924071871300569, 2.9472182219982841, 11.322674214116185, 17.636604816170465, -8.112421382991716, 5.7980976514734257, 10.587871354585735, -10.207529594090163, -13.012906685255201, 1.6439826301840548, 4.7959168408892552, -9.1817793609379343, 15.910744159295755, 11.988413488939839, 10.225499838967904, -2.1100999951643771, 7.7773391391119979, 4.2070274590049737, 3.1789918079199362, 11.389698381773869, -5.6797986359782069, -4.7261529062162424, -6.1926650154600731, 9.5097255166801595, -4.4005426737892748, 4.8284348550831577, -7.4035564503513553, -10.371755556185054, -11.138214834764621, -11.479591917367713, 7.3492465579271542, -8.6401023000535666, 2.4737379805053212, -8.4391176745455763, -3.5699286239866383, -8.1254703716775829, 11.948227614312263, 7.880462510583679, 1.8623842706739999, 7.3888689386136646, -1.2896033177393418, -8.2116493851785464, -9.0121076446113531, 2.6038276518722672, 7.9944375021940459, -4.3649859784435145, 5.1704186172538593, 7.7846827735959723, -0.51775021699396251, -13.814395914977867, 11.155615752700793, -4.0116122940272048 +}; + +const char H_2064_516_sparse_detected_data[] = { +0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 +}; diff --git a/src/H_2064_516_sparse.h b/src/H_2064_516_sparse.h new file mode 100644 index 0000000..0c489ba --- /dev/null +++ b/src/H_2064_516_sparse.h @@ -0,0 +1,22 @@ +/* + FILE....: ../src/H_2064_516_sparse.h + + Static arrays for CML LDPC codec, generated + by test_ldpc_fsk.m:simple_ut(). + +*/ + +#include + +#define NUMBERPARITYBITS 516 +#define MAX_ROW_WEIGHT 12 +#define CODELENGTH 2580 +#define NUMBERROWSHCOLS 2064 +#define MAX_COL_WEIGHT 3 +#define DEC_TYPE 0 +#define MAX_ITER 10 + +extern const uint16_t H_2064_516_sparse_H_rows[]; +extern const uint16_t H_2064_516_sparse_H_cols[]; +extern const float H_2064_516_sparse_input[]; +extern const char H_2064_516_sparse_detected_data[]; diff --git a/src/H_212_158.c b/src/H_212_158.c new file mode 100644 index 0000000..c3c4f9b --- /dev/null +++ b/src/H_212_158.c @@ -0,0 +1,16 @@ +/* + FILE....: H_212_158.c + + Static arrays for LDPC codec H_212_158, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_212_158.h" + +const uint16_t H_212_158_H_rows[] = { +26, 3, 35, 2, 7, 22, 4, 1, 14, 11, 12, 13, 16, 6, 19, 22, 3, 6, 3, 19, 7, 4, 25, 27, 12, 3, 24, 11, 7, 2, 7, 16, 3, 40, 3, 28, 1, 22, 1, 19, 13, 44, 6, 5, 14, 25, 24, 39, 18, 8, 46, 12, 31, 22, 9, 2, 27, 23, 71, 5, 11, 56, 7, 8, 17, 34, 47, 55, 56, 61, 32, 25, 42, 36, 7, 21, 10, 23, 51, 77, 23, 5, 27, 15, 13, 22, 43, 21, 17, 61, 4, 30, 45, 33, 37, 22, 30, 54, 8, 9, 72, 53, 35, 46, 29, 27, 48, 66, 55, 27, 15, 10, 38, 32, 80, 13, 16, 66, 14, 31, 20, 49, 60, 57, 59, 73, 46, 31, 43, 62, 9, 26, 15, 27, 55, 86, 28, 11, 49, 33, 34, 44, 48, 27, 18, 67, 13, 38, 61, 35, 52, 63, 61, 84, 20, 10, 75, 112, 58, 60, 35, 50, 57, 67, 70, 29, 20, 17, 41, 65, 111, 53, 18, 118, 21, 33, 53, 61, 63, 74, 71, 78, 47, 39, 45, 67, 87, 36, 24, 58, 60, 88, 37, 25, 51, 38, 45, 60, 52, 32, 50, 69, 22, 65, 71, 41, 62, 76, 82, 89, 26, 22, 80, 118, 83, 93, 37, 54, 62, 71, 87, 34, 47, 29, 52, 92, 117, 75, 41, 121, 59, 34, 54, 80, 75, 100, 75, 104, 69, 50, 75, 74, 89, 40, 25, 69, 64, 105, 53, 44, 104, 39, 66, 68, 55, 70, 58, 91, 71, 75, 124, 55, 103, 83, 85, 109, 49, 28, 84, 125, 84, 95, 42, 55, 92, 73, 104, 78, 55, 115, 64, 99, 126, 92, 68, 130, 94, 40, 68, 89, 87, 103, 77, 107, 82, 57, 78, 82, 91, 55, 30, 81, 67, 114, 61, 70, 125, 71, 95, 73, 61, 83, 64, 98, 108, 91, 129, 59, 104, 123, 90, 120, 77, 36, 103, 133, 107, 103, 48, 56, 106, 101, 105, 98, 85, 126, 110, 102, 133, 104, 84, 131, 125, 43, 88, 94, 108, 110, 81, 110, 96, 99, 88, 86, 97, 73, 42, 100, 97, 117, 76, 81, 126, 72, 123, 79, 63, 108, 79, 106, 119, 93, 132, 96, 134, 152, 137, 124, 90, 94, 123, 146, 115, 119, 74, 65, 112, 103, 119, 133, 93, 127, 119, 109, 150, 114, 113, 132, 128, 44, 97, 96, 113, 131, 98, 111, 105, 124, 137, 109, 129, 113, 77, 135, 102, 136, 79, 86, 152, 105, 0, 85, 72, 131, 90, 114, 147, 130, 151, 109, 139, 0, 0, 136, 99, 100, 0, 155, 132, 120, 105, 107, 127, 136, 151, 134, 106, 139, 124, 123, 0, 120, 117, 153, 139, 51, 111, 102, 116, 0, 0, 122, 144, 140, 138, 128, 141, 148, 101, 137, 122, 156, 119, 103, 0, 138, 0, 105, 154, 138, 95, 118, 0, 0, 0, 116, 147, 0, 0, 143, 103, 122, 0, 156, 0, 141, 121, 139, 130, 142, 0, 149, 123, 155, 153, 0, 0, 121, 127, 0, 149, 76, 134, 131, 124, 0, 0, 123, 149, 142, 0, 140, 153, 0, 109, 141, 130, 0, 0, 132, 0, 0, 0, 129, 0, 143, 101, 139, 0, 0, 0, 135, 0, 0, 0, 147, 115, 144, 0, 0, 0, 0, 122, 146, 152, 144, 0, 154, 125, 0, 0, 0, 0, 128, 140, 0, 150, 101, 0, 0, 133, 0, 0, 141, 0, 0, 0, 151, 155, 0, 119, 142, 150, 0, 0, 0, 0, 0, 0, 146, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 148, 130, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 135, 145, 0, 0, 112, 0, 0, 139, 0, 0, 143, 0, 0, 0, 0, 0, 0, 131, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 154, 133, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const uint16_t H_212_158_H_cols[] = { +8, 4, 2, 7, 4, 14, 5, 8, 19, 21, 5, 11, 4, 7, 21, 5, 9, 5, 15, 9, 7, 6, 2, 21, 16, 1, 1, 25, 49, 21, 8, 2, 8, 8, 3, 18, 25, 1, 16, 8, 1, 17, 8, 8, 17, 15, 11, 31, 10, 16, 8, 1, 4, 9, 12, 6, 12, 22, 7, 11, 10, 18, 11, 1, 2, 6, 18, 5, 15, 26, 3, 28, 14, 12, 4, 8, 13, 14, 25, 3, 13, 15, 32, 5, 30, 18, 11, 9, 10, 33, 19, 2, 36, 7, 29, 10, 9, 13, 2, 12, 8, 2, 12, 4, 15, 34, 14, 11, 2, 1, 3, 8, 5, 4, 43, 11, 3, 6, 1, 4, 4, 14, 2, 1, 7, 3, 5, 4, 19, 6, 6, 6, 3, 9, 4, 24, 17, 17, 7, 5, 8, 16, 14, 15, 5, 30, 35, 20, 7, 3, 18, 27, 1, 31, 19, 14, 37, 30, 17, 22, 26, 18, 7, 43, 44, 44, 10, 25, 12, 9, 28, 13, 33, 33, 20, 43, 20, 16, 22, 27, 21, 20, 22, 36, 54, 36, 16, 15, 28, 10, 38, 20, 39, 28, 28, 20, 5, 21, 17, 26, 29, 48, 15, 49, 27, 33, 23, 31, 9, 42, 20, 13, 16, 33, 13, 23, 14, 39, 31, 23, 36, 29, 23, 9, 22, 32, 13, 31, 20, 18, 11, 25, 21, 17, 30, 10, 22, 18, 40, 42, 41, 24, 19, 17, 19, 41, 34, 4, 48, 10, 33, 15, 19, 34, 16, 22, 21, 10, 26, 14, 24, 51, 47, 32, 18, 12, 9, 46, 11, 24, 47, 33, 5, 34, 21, 42, 6, 23, 14, 11, 27, 27, 51, 7, 30, 23, 10, 26, 11, 39, 22, 42, 22, 28, 11, 16, 14, 22, 32, 44, 22, 46, 39, 42, 15, 7, 37, 40, 6, 42, 46, 24, 39, 56, 19, 35, 44, 43, 19, 50, 55, 56, 26, 52, 29, 45, 55, 32, 56, 49, 40, 55, 32, 30, 25, 47, 23, 43, 24, 44, 56, 41, 53, 32, 38, 29, 47, 44, 49, 36, 48, 34, 38, 49, 31, 30, 37, 51, 55, 51, 43, 50, 27, 39, 25, 50, 23, 50, 51, 47, 38, 30, 25, 51, 40, 33, 50, 52, 34, 30, 34, 53, 28, 45, 30, 49, 13, 40, 24, 54, 33, 45, 26, 41, 47, 45, 55, 26, 53, 24, 42, 43, 36, 51, 55, 44, 48, 38, 23, 54, 43, 44, 33, 23, 39, 27, 28, 55, 50, 35, 21, 14, 14, 51, 20, 34, 56, 38, 24, 46, 25, 48, 8, 44, 29, 16, 46, 56, 56, 18, 37, 36, 12, 37, 43, 54, 38, 52, 41, 32, 34, 18, 19, 52, 42, 52, 43, 50, 42, 49, 54, 23, 53, 51, 19, 54, 56, 46, 0, 0, 26, 0, 0, 0, 21, 0, 0, 0, 28, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 26, 0, 27, 0, 0, 0, 0, 0, 0, 54, 49, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 31, 0, 0, 0, 0, 48, 31, 0, 0, 0, 0, 0, 52, 0, 0, 0, 35, 0, 52, 0, 17, 0, 43, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 43, 33, 30, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 49, 49, 40, 37, 49, 0, 0, 0, 0, 43, 21, 47, 46, 0, 0, 0, 0, 0, 39, 0, 22, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 46, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 39, 49, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 45, 42, 55, 0, 0, 0, 0, 51, 32, 55, 54, 0, 0, 0, 0, 0, 50, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; diff --git a/src/H_212_158.h b/src/H_212_158.h new file mode 100644 index 0000000..b8aa036 --- /dev/null +++ b/src/H_212_158.h @@ -0,0 +1,16 @@ +/* + FILE....: H_212_158.h + + Static arrays for LDPC codec H_212_158, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_212_158_NUMBERPARITYBITS 56 +#define H_212_158_MAX_ROW_WEIGHT 14 +#define H_212_158_CODELENGTH 212 +#define H_212_158_NUMBERROWSHCOLS 156 +#define H_212_158_MAX_COL_WEIGHT 8 +#define H_212_158_DEC_TYPE 0 +#define H_212_158_MAX_ITER 100 + +extern const uint16_t H_212_158_H_rows[]; +extern const uint16_t H_212_158_H_cols[]; diff --git a/src/H_256_512_4.c b/src/H_256_512_4.c new file mode 100644 index 0000000..048f34e --- /dev/null +++ b/src/H_256_512_4.c @@ -0,0 +1,22 @@ +/* + FILE....: H_256_512_4.c + + Static arrays for LDPC codec H_256_512_4, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_256_512_4.h" + +const uint16_t H_256_512_4_H_rows[] = { +31, 4, 119, 30, 148, 50, 53, 47, 6, 1, 91, 82, 20, 91, 180, 41, 42, 48, 97, 129, 5, 8, 162, 5, 55, 10, 100, 18, 111, 9, 71, 130, 26, 77, 29, 14, 9, 3, 170, 176, 18, 35, 21, 73, 80, 41, 62, 34, 72, 45, 141, 39, 121, 12, 46, 16, 91, 24, 84, 57, 16, 21, 2, 65, 44, 14, 32, 39, 143, 106, 53, 23, 31, 100, 24, 75, 27, 25, 13, 67, 23, 81, 99, 101, 28, 7, 153, 13, 43, 38, 64, 97, 7, 76, 22, 34, 35, 8, 19, 31, 40, 54, 43, 11, 52, 40, 7, 123, 21, 46, 10, 18, 98, 63, 48, 37, 25, 58, 33, 58, 84, 41, 16, 47, 185, 65, 58, 41, 8, 12, 63, 93, 60, 47, 23, 92, 4, 28, 52, 6, 74, 57, 43, 17, 148, 1, 11, 52, 12, 10, 109, 19, 74, 40, 3, 49, 69, 30, 20, 64, 31, 6, 82, 71, 89, 36, 17, 68, 67, 56, 110, 20, 172, 54, 36, 15, 56, 4, 26, 24, 14, 45, 158, 69, 5, 6, 2, 19, 16, 8, 72, 58, 108, 57, 125, 38, 24, 105, 56, 27, 73, 82, 63, 25, 22, 112, 44, 19, 14, 133, 50, 55, 3, 18, 34, 17, 42, 21, 1, 7, 26, 128, 75, 95, 111, 51, 15, 5, 3, 78, 79, 32, 1, 48, 108, 11, 32, 29, 72, 66, 15, 2, 66, 4, 2, 87, 113, 80, 84, 13, 9, 104, 23, 69, 29, 101, 54, 20, 136, 61, 203, 52, 93, 75, 9, 168, 142, 102, 140, 110, 194, 139, 160, 83, 145, 132, 62, 50, 198, 46, 94, 60, 130, 72, 192, 60, 76, 131, 50, 155, 179, 163, 12, 113, 197, 183, 120, 118, 70, 103, 120, 83, 208, 96, 172, 56, 174, 124, 161, 68, 140, 51, 139, 186, 143, 95, 93, 92, 98, 85, 107, 25, 123, 44, 155, 121, 96, 106, 133, 103, 125, 78, 59, 83, 66, 159, 112, 90, 133, 224, 131, 51, 157, 32, 49, 134, 79, 216, 11, 81, 33, 53, 128, 26, 28, 68, 85, 162, 67, 87, 68, 92, 87, 133, 40, 144, 45, 80, 187, 118, 131, 114, 35, 91, 135, 172, 98, 195, 17, 76, 213, 70, 141, 48, 70, 105, 79, 96, 149, 88, 99, 111, 38, 147, 86, 45, 77, 118, 61, 42, 161, 61, 73, 71, 44, 63, 216, 53, 117, 71, 60, 55, 81, 49, 33, 139, 134, 28, 188, 171, 176, 121, 119, 89, 70, 164, 151, 29, 195, 157, 135, 43, 59, 47, 36, 78, 35, 59, 179, 88, 13, 69, 22, 101, 119, 150, 80, 116, 171, 159, 172, 86, 122, 107, 66, 46, 100, 169, 159, 163, 101, 149, 105, 27, 54, 154, 86, 165, 170, 132, 93, 115, 142, 65, 106, 39, 150, 136, 90, 198, 124, 132, 82, 22, 183, 103, 118, 37, 30, 112, 190, 83, 98, 30, 120, 97, 39, 36, 109, 88, 33, 111, 156, 97, 94, 62, 74, 130, 34, 77, 51, 109, 175, 94, 208, 115, 217, 107, 164, 180, 10, 229, 184, 155, 158, 152, 204, 142, 187, 130, 209, 185, 110, 75, 219, 151, 95, 116, 200, 226, 194, 89, 162, 157, 78, 181, 240, 178, 77, 150, 217, 202, 179, 136, 163, 126, 204, 100, 236, 99, 183, 137, 236, 188, 217, 107, 204, 115, 218, 204, 145, 162, 241, 183, 121, 117, 160, 148, 143, 152, 169, 221, 166, 149, 153, 223, 127, 122, 144, 125, 138, 191, 146, 177, 146, 245, 153, 129, 231, 169, 73, 165, 112, 240, 15, 88, 158, 64, 163, 126, 59, 114, 137, 171, 126, 125, 176, 108, 124, 221, 202, 184, 65, 108, 230, 174, 146, 134, 87, 144, 189, 186, 106, 199, 109, 86, 219, 191, 205, 64, 173, 234, 141, 239, 168, 90, 123, 137, 76, 182, 114, 85, 102, 219, 74, 242, 215, 156, 122, 177, 156, 168, 228, 131, 173, 81, 205, 67, 85, 94, 38, 196, 161, 89, 201, 226, 206, 170, 139, 153, 178, 166, 184, 49, 203, 215, 233, 102, 62, 140, 42, 184, 57, 116, 189, 99, 37, 154, 37, 138, 196, 197, 92, 147, 243, 178, 210, 140, 180, 114, 190, 120, 104, 194, 220, 203, 200, 205, 110, 182, 161, 181, 151, 178, 225, 157, 196, 230, 152, 128, 187, 115, 160, 174, 102, 220, 207, 240, 124, 27, 197, 127, 196, 222, 84, 148, 239, 104, 228, 145, 147, 169, 61, 223, 164, 143, 134, 128, 160, 190, 229, 188, 156, 132, 79, 90, 104, 242, 252, 145, 253, 193, 238, 150, 224, 211, 117, 251, 199, 180, 254, 208, 209, 250, 248, 232, 254, 232, 144, 177, 246, 167, 159, 141, 245, 231, 210, 113, 175, 182, 227, 234, 254, 217, 154, 176, 233, 226, 182, 213, 197, 135, 254, 127, 255, 198, 206, 255, 253, 208, 247, 113, 211, 216, 253, 210, 228, 165, 243, 212, 222, 256, 227, 232, 181, 248, 209, 238, 214, 229, 215, 250, 199, 126, 147, 195, 244, 251, 221, 256, 214, 250, 214, 213, 252, 234, 193, 175, 218, 241, 193, 198, 167, 146, 235, 233, 166, 249, 239, 185, 173, 192, 252, 226, 136, 222, 256, 186, 174, 240, 242, 235, 215, 167, 129, 236, 223, 199, 123, 218, 224, 177, 243, 235, 218, 245, 256, 249, 149, 246, 225, 155, 237, 190, 95, 231, 175, 166, 201, 220, 251, 250, 221, 248, 127, 202, 201, 191, 230, 245, 191, 246, 206, 135, 96, 251, 55, 224, 222, 116, 234, 252, 231, 187, 152, 154, 233, 239, 227, 189, 205, 232, 247, 122, 138, 209, 103, 211, 185, 236, 200, 181, 105, 214, 244, 164, 213, 202, 210, 206, 246, 235, 212, 167, 192, 151, 207, 158, 189, 207, 229, 212, 223, 238, 188, 200, 165, 249, 211, 247, 238, 171, 219, 248, 227, 137, 225, 119, 170, 255, 173, 237, 255, 243, 192, 138, 203, 142, 253, 249, 230, 195, 241, 129, 244, 216, 186, 228, 201, 242, 241, 237, 247, 212, 225, 194, 237, 207, 168, 179, 220, 117, 193, 244 +}; + +const uint16_t H_256_512_4_H_cols[] = { +10, 63, 38, 2, 21, 9, 86, 22, 9, 9, 93, 37, 79, 36, 93, 56, 123, 28, 99, 2, 43, 95, 72, 58, 66, 33, 77, 85, 35, 4, 1, 67, 95, 48, 42, 166, 116, 90, 52, 101, 16, 17, 89, 65, 50, 24, 8, 18, 89, 6, 56, 6, 7, 1, 25, 50, 60, 118, 77, 26, 4, 21, 114, 91, 64, 79, 80, 54, 157, 43, 31, 28, 44, 141, 8, 31, 34, 33, 91, 45, 82, 12, 18, 59, 64, 124, 104, 94, 30, 82, 11, 62, 7, 2, 25, 48, 19, 63, 48, 27, 84, 12, 44, 201, 130, 70, 6, 106, 123, 14, 29, 81, 30, 100, 4, 26, 9, 42, 3, 41, 53, 76, 67, 52, 75, 44, 46, 97, 20, 18, 32, 20, 73, 90, 44, 3, 50, 79, 16, 13, 26, 11, 59, 21, 2, 81, 77, 5, 72, 6, 24, 14, 73, 37, 12, 146, 32, 13, 25, 17, 53, 23, 36, 7, 60, 71, 24, 10, 69, 39, 102, 49, 103, 51, 1, 38, 22, 36, 35, 8, 34, 32, 40, 11, 20, 58, 17, 52, 119, 136, 80, 29, 4, 15, 78, 160, 39, 23, 11, 27, 141, 40, 5, 15, 127, 49, 199, 3, 15, 29, 8, 62, 42, 71, 73, 56, 5, 57, 23, 142, 70, 63, 74, 7, 133, 28, 33, 59, 10, 113, 28, 18, 39, 34, 97, 47, 135, 5, 101, 35, 61, 113, 61, 79, 27, 23, 53, 17, 100, 16, 10, 1, 3, 13, 47, 64, 146, 187, 155, 137, 24, 140, 93, 98, 30, 26, 104, 54, 88, 66, 176, 61, 144, 41, 152, 13, 62, 187, 81, 75, 78, 98, 200, 99, 172, 158, 73, 88, 119, 96, 97, 175, 185, 137, 68, 106, 46, 144, 103, 68, 111, 55, 124, 115, 156, 22, 86, 105, 71, 102, 156, 170, 142, 120, 99, 30, 143, 47, 131, 96, 111, 199, 103, 100, 184, 126, 148, 49, 89, 143, 22, 94, 37, 76, 131, 112, 94, 163, 46, 121, 101, 139, 107, 134, 162, 134, 14, 106, 61, 25, 60, 71, 92, 113, 83, 46, 188, 141, 74, 236, 185, 72, 54, 112, 151, 21, 136, 91, 38, 116, 56, 162, 64, 114, 167, 45, 63, 147, 108, 107, 78, 76, 75, 218, 86, 27, 85, 214, 83, 116, 119, 42, 101, 177, 57, 55, 51, 16, 67, 77, 19, 83, 138, 66, 131, 38, 171, 68, 85, 168, 34, 149, 87, 95, 80, 65, 145, 31, 43, 170, 90, 99, 95, 133, 88, 166, 164, 120, 129, 111, 31, 40, 82, 169, 41, 12, 67, 41, 49, 110, 102, 110, 113, 163, 172, 199, 126, 104, 89, 29, 122, 189, 43, 48, 75, 183, 149, 109, 173, 45, 155, 155, 202, 14, 19, 58, 55, 195, 86, 83, 115, 92, 36, 91, 125, 203, 81, 108, 119, 84, 213, 40, 65, 151, 72, 151, 87, 20, 98, 88, 114, 51, 224, 70, 132, 92, 92, 144, 125, 187, 84, 132, 175, 68, 130, 74, 80, 87, 51, 19, 50, 82, 219, 242, 213, 178, 185, 162, 107, 129, 37, 111, 147, 130, 185, 181, 227, 123, 167, 112, 188, 159, 109, 205, 135, 180, 117, 179, 208, 138, 238, 233, 100, 232, 159, 215, 117, 179, 187, 159, 220, 109, 122, 179, 143, 149, 140, 110, 134, 128, 158, 33, 226, 139, 96, 174, 159, 177, 181, 127, 177, 133, 146, 177, 150, 128, 126, 240, 156, 105, 186, 129, 154, 191, 147, 153, 76, 124, 141, 180, 231, 191, 154, 202, 78, 233, 140, 196, 117, 184, 165, 223, 57, 136, 132, 158, 137, 132, 240, 121, 135, 74, 205, 176, 179, 252, 198, 121, 65, 193, 243, 171, 225, 206, 54, 139, 216, 182, 153, 142, 189, 200, 70, 176, 121, 225, 104, 98, 147, 222, 117, 32, 115, 226, 108, 161, 156, 107, 136, 188, 160, 178, 127, 217, 69, 110, 59, 96, 192, 145, 133, 190, 198, 167, 87, 186, 69, 247, 174, 183, 194, 221, 161, 60, 97, 188, 209, 140, 116, 150, 202, 213, 193, 173, 153, 114, 90, 105, 124, 194, 183, 15, 184, 138, 62, 171, 125, 120, 166, 207, 183, 235, 150, 197, 93, 202, 173, 215, 190, 94, 120, 205, 163, 148, 204, 55, 173, 165, 225, 47, 69, 191, 180, 204, 125, 85, 145, 151, 39, 122, 142, 224, 108, 161, 205, 123, 219, 106, 171, 237, 203, 216, 138, 66, 169, 130, 126, 118, 244, 206, 170, 112, 235, 242, 193, 237, 128, 154, 212, 146, 210, 84, 143, 105, 57, 35, 222, 109, 233, 245, 229, 244, 228, 186, 220, 190, 251, 150, 236, 149, 250, 209, 241, 189, 216, 214, 208, 172, 218, 228, 253, 197, 204, 221, 228, 162, 255, 238, 161, 237, 245, 253, 181, 242, 232, 196, 241, 154, 128, 217, 176, 207, 182, 200, 178, 234, 172, 211, 255, 148, 152, 209, 212, 199, 194, 192, 182, 155, 241, 250, 203, 160, 218, 243, 169, 168, 254, 169, 164, 239, 201, 251, 223, 137, 254, 230, 253, 248, 157, 227, 236, 249, 157, 211, 246, 244, 168, 254, 118, 191, 215, 249, 224, 157, 248, 237, 184, 201, 256, 223, 230, 255, 207, 219, 198, 235, 256, 207, 246, 234, 247, 198, 220, 192, 254, 231, 220, 239, 166, 197, 135, 227, 195, 103, 230, 246, 236, 252, 152, 252, 210, 245, 175, 222, 218, 228, 167, 196, 131, 230, 244, 118, 238, 115, 239, 234, 206, 221, 211, 217, 168, 210, 134, 251, 214, 200, 203, 247, 209, 102, 204, 243, 212, 170, 196, 251, 240, 221, 214, 195, 223, 222, 139, 165, 148, 212, 252, 197, 210, 208, 229, 180, 181, 239, 219, 250, 201, 248, 153, 227, 255, 248, 234, 231, 229, 224, 122, 208, 241, 190, 229, 58, 206, 192, 250, 52, 178, 195, 211, 246, 189, 186, 174, 238, 53, 127, 215, 253, 145, 232, 242, 160, 247, 164, 217, 240, 249, 233, 165, 174, 175, 163, 194, 182, 249, 213, 235, 226, 243, 256, 226, 256, 152, 193, 245, 216, 232, 144, 158, 164, 231, 45, 225, 129 +}; +const float H_256_512_4_input[] = { +0.51757034789149192, 3.6747768327751107, 7.7236521981742676, -4.7107278911943427, 7.7122230429603542, -14.946266731679888, -9.5567730710166714, -7.5877780009775071, -8.3629835471455127, 8.4844922006171419, 9.4734932311757394, -6.8841383473145763, -4.6284234216637214, -7.8669368046418358, 12.226645532420404, -7.3774603770015981, 7.7649435759022252, -12.127076055381709, 7.4012504229333951, 6.5535650029238361, -12.318540215486564, -15.835684442673877, 10.779009024429017, 11.841953278425423, 7.1804756215244456, 2.8408801132499808, -11.09563707808943, 7.1789245659484093, 10.24316438845271, 6.4838781564425041, 15.604657058526026, 17.695904359387381, 6.4313440196217382, 4.9488783865887793, 9.9527088015343548, -2.7205772402494488, 12.156344173793103, -11.205004871994769, -12.211802140176635, -5.4465825069640195, -10.152012956739171, -1.1179875067929763, -10.479027227263707, -8.5090340518598531, -7.5030586007744553, -4.9370617561264698, -0.78486455084153151, -9.9902064527523908, -7.1974696423785023, 15.904653930974046, -3.2958890233801612, 6.9052860853356819, -15.446573781345712, 8.2911853913447402, 0.40395028984397091, -1.5672283593714793, 11.262818645299314, 7.1710703603039994, 4.1597725238676002, -11.382339164684311, 14.132112287584638, 3.2925942129085506, -6.1011528087958027, 7.8516182070629279, 5.9768136552516342, 2.699484726705069, 5.2066829520768056, -0.7207484827070334, -8.2386610240355651, 6.0717182827619967, -8.5076501195080585, -13.703946410299512, 9.2623574093742604, -6.9682747118380446, -4.9023588860381846, 9.3084136203033694, 11.148851565040838, 9.1302433636417319, -6.9420186741739887, 7.9337725600954645, 15.582342768204805, 10.766162729242598, -4.9576813210420525, 6.6727325567460882, -12.196894026695226, 11.022208518924467, 1.6977876257198246, -8.9073010297491386, -3.4873714683714097, 10.267082736130799, -6.2704199741458089, -6.7409188535835654, 7.0799113259507331, 4.2517449421654421, 10.988809910933929, 8.3098010378717788, 0.65053609686067293, -9.8680908214463745, -0.13210703660490827, 10.569960823465198, 5.631834756326584, -17.599792146333385, -7.4505114988199814, 2.0876055933892643, -11.848744235597531, -6.370769553578242, 10.349368965148454, -11.054250547489133, 4.9685950633439182, 16.26542564640426, 8.9946743875150297, -6.9695225550874884, -12.491901775385568, 5.221170286398829, -14.57146740285134, -11.185574766943571, -1.4528792719442074, 16.807973653612009, -2.14773040667668, -6.5893455221648924, -10.366321204598048, 11.545810725289135, 11.526831005704754, 3.8156547809267578, -14.793195556950453, 10.727608736368884, 4.245416988419259, -14.823682249573251, -0.055849778718978338, 0.12268898147135411, -5.3423951302536539, 8.9810197259759086, 13.968989424307708, 10.292317467705674, 10.814835776145282, 7.8639985326787416, -15.489411581463163, -5.3160377506090404, 9.6739321724911669, 7.3738788431938094, -7.2089426352102386, 3.2896767517308105, 11.134312631894316, 6.8196648270250888, 11.696870111795384, 11.33636158982544, 7.6883282280715841, -8.5354168089995976, 5.5939282378823458, -9.6804348667718987, 10.27449691588806, -4.601540486911178, 11.476772689524227, 13.587705068864731, -5.4206086888829965, -8.2565155897262077, 11.240961601590284, 13.474564188433188, 2.9546569324344847, 6.7205439189069738, -13.857561305882877, -16.669935196013508, 7.7992349867934445, -9.1054167276310629, 13.234970834427072, 3.8904964584199755, -0.007103062296974271, -7.5226178742319778, 11.799567862083773, 10.306340656379247, -9.6031596648762214, 4.7873593091676456, -8.7508487803331807, -11.418105573040524, -8.9917029259865018, -4.8764541287524565, -13.141445425385772, 10.478907923003296, -15.62610293315559, 12.174935599981024, 14.110425042238267, -5.3351060433143189, -10.448529758835216, 7.1555832021079713, -3.7581044977756339, 4.9877839461702953, 6.4352605191478229, 6.2681705969506636, 1.0591230129022271, 4.6014572060908856, 3.630881166938468, 5.2610118858162744, -4.0406336475456959, 6.7089084012087339, -12.399263098594448, -8.6885785210631923, 10.200283753268543, -9.6711128555761476, 7.9523636179902066, -1.6194893091097409, 7.8100926558018475, 4.7308921409583666, 4.2870845092503842, -5.5113211353649589, 4.6632369877554547, 13.580052366571808, -13.989676528031513, 7.4788332322884292, -7.9055834172669863, -5.4521774799559077, -2.3832875853818489, 12.500172468473709, 4.4257047233124993, 8.6185463356078564, 1.6503341929121846, 9.3817571992318136, 14.707911493485314, -8.8168554234237906, 16.686275657629849, 8.0726217002484866, -5.7336803150162323, 11.199173436763308, 2.9624772806565214, 6.084008649398772, 13.651210034355321, -5.3568028597546125, -8.1131526120118433, 20.586630811135656, 3.2537667200472802, 2.4661860405319476, -12.302300974267494, 10.14496212813636, 12.013406576337029, 12.48076525937795, -7.7705021913306842, 4.4923244656818495, 3.9070226775151733, 5.2441749708856884, 5.3679526862494482, 13.94196173641695, 4.5296297811057684, -7.1127741954540973, -14.014901825754492, -5.4003616016916451, 11.30329597194279, 13.212639183152664, -6.7394206827710148, -9.3081209755867338, -2.8134083772289786, 12.362737057742141, -7.5816771419304487, -6.4823236067192118, 6.4368678007326325, 4.2139501741847152, -1.3015955505891499, -7.0693979078400888, 5.1567879937036976, -14.29429720815733, 7.0965274119499995, 14.335090253318402, -1.1060086481123688, 12.280127372295182, 15.355627698217484, 7.1118230503395736, 0.080951481678914361, 4.5275811277845772, -12.807880002244142, -7.9315604470260013, -10.460706930669154, -8.6438350740702976, -5.0714513528336349, 4.1875900660492, 8.7133453013769007, -9.8239011192052565, 6.2390365458120005, -8.4029965191052352, 4.984656567448889, -11.441087746951402, -2.8554666393879051, 8.7117720128765459, -10.315850818433494, 8.7178427912116181, 4.5674735423087416, 5.059245742630825, -6.9741413761506754, 6.8923077141725289, -7.3195029505868936, 7.0150611857028995, -13.57329609597363, 2.4003974632430873, -12.79534048621632, 14.073423100856756, 13.050627886243262, -9.9719834315477431, -8.9255382467931454, 6.4498466627026518, 7.9947952448158626, 7.2030719578630773, -13.912680862467084, 8.6608429906142881, 8.3632503895529862, 5.9305710042005879, -2.9130898919754795, -11.254118896275536, -13.798108618024084, 13.07950958186338, 14.355477267752258, 3.222947027333253, 5.9042659378475841, -8.1324540511219237, 7.1175191808602341, -6.585103539549686, -9.2836832446594695, -15.365446897780474, -10.994019011437626, 4.0590717801675913, 9.5109814268426955, -4.3279461184809049, -15.720038357484848, 11.951856945935143, 12.682014968828179, 16.336475563256471, 7.6649931256123782, 5.3001533728428951, 14.811865942579626, -7.1591674243249166, 6.9641361242422413, 2.2887071087144921, -7.4283680060564725, 9.8045942879168955, -6.4177702207017902, 10.47585866871807, -7.6078593665950418, 8.6728241961706676, -2.3844019549449365, -12.333348889567585, -8.0410508790992044, -15.319448351686553, 4.1439520121183158, 10.124921135545005, -2.719059876565721, -7.15172555283569, -13.928003800487966, 5.0190908596544332, -10.550763525222086, -9.6902455518808601, 3.4656033167131572, 5.7434253113056117, 2.2353462963087205, 8.2800699204033581, -9.5917816492257746, 6.604246872114893, 5.7926392372814988, -13.95249621884361, -6.3255003024458976, -9.0958782067905091, 6.6894074274331334, -16.305393183977255, -14.754831506925347, 9.9598275167453405, -2.2953313029712268, -9.9770589384486907, -1.2849873707603492, -11.674107434694577, 4.2308935045924834, -15.986216502652635, -12.496143349107586, -6.961301171448163, 7.173141034418097, -16.747323708994283, -6.1459334756956441, -7.6817564340549813, -2.9759502920998209, 4.4290936044370053, 15.85792699420073, 3.8733475037532075, 13.282888674545026, -8.8075790389214674, 15.756528771444074, -0.9172738378747668, -5.8878468427817152, 5.3239983067421415, 7.0650495320494038, 10.266937497463937, -6.4024274906880185, 5.7532733339731017, -16.811716029564213, -8.4435829388264345, -14.547150170272406, -8.5663296440687802, 7.9505572216380145, 6.6923964384181422, 5.1145018718318767, 6.7546204865730397, -5.7136099383940193, 6.5164149727652187, 8.5399580765014118, 11.118659305825421, -5.11256462073184, -7.4204131176081027, 2.4372467698010158, -11.332205684329931, -2.300944450055125, -7.5761485315412722, 7.9239226824179134, 15.148232300109672, -8.2866195088681511, -12.500886819111757, 5.8898233180615511, 6.0191326161618939, -9.571768060299096, 8.2993401574423782, 13.192810814495525, 9.2287810197171662, -6.3446655091317981, 4.6194007533037533, -12.299288931968976, -11.301088930234318, -12.748142414710747, -11.089177834341021, -11.952684158007653, -12.201173925517882, -7.8885413991638051, 6.162990209842949, 10.074139560291529, 0.33052151002636837, -13.233240567315669, 8.5041479968410876, -3.877731464378761, -8.4152150964636405, -4.416934778774996, -2.7605197724504817, 8.4248907474003509, 9.6866360704229582, -6.7860748062114764, 5.350251139963115, 8.0461693937601364, 5.4866837755943072, 8.2170770706027305, -4.9303099776579087, 0.19594956934783084, -3.0366818211786448, -0.89771548197359008, -9.2559494368024176, 13.057529669212126, 1.3182610405525714, -5.379813192370591, 7.0595292864637926, -8.0652416728279732, -10.017709623333209, -19.043167085088943, 4.2036836072934642, 7.2607959496260142, -20.579086044233659, -10.955745136261804, 2.8075247300020623, 6.158819317084113, -4.1432994280765003, -8.4759687111809825, -7.4063800738713441, -11.809011583528154, 3.7455788861378996, 11.055125561517878, -11.050002999845985, -12.641967828832232, 9.7182304238773387, -9.6040255370844871, 8.5406323003146039, 5.5370300264242678, 9.6390471518242808, -4.5175089872689815, 11.211130149275418, -7.0619345213828808, 9.0284753188655795, 6.5193504139524956, 5.9080653530360792, -6.9270802426346494, -7.5939041868540862, 11.483724465414687, -6.4198704940922147, 11.594197774773704, 9.8177782003472842, 7.8573132285189722, -14.764671284444628, 10.836352484846104, -5.1661833245215307, -2.2845730141844491, 1.4521554038891078, 14.07531661629624, 14.874495505085839, -10.926627051439677, 1.0207490010126001, -1.9216020879305911, 14.405401350119591, 11.010298478850032, 3.7506698273138919, -11.982303137905003, -6.2083663060173526, 6.2522765425768316, 7.7069832341275522, -18.065137191023226, 6.792106322469885, -0.93798035245625377, 7.8641939572750079, 10.30225964497456, -7.0018228039310735, -7.0742108654561564, 4.1031586655458723, 2.3748564555251002, -4.3322313906258154, 9.6230244300270638, 19.666940225626419 +}; +const char H_256_512_4_detected_data[] = { +1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 +}; diff --git a/src/H_256_512_4.h b/src/H_256_512_4.h new file mode 100644 index 0000000..c872ebe --- /dev/null +++ b/src/H_256_512_4.h @@ -0,0 +1,19 @@ +/* + FILE....: H_256_512_4.h + + Static arrays for LDPC codec H_256_512_4, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_256_512_4_NUMBERPARITYBITS 256 +#define H_256_512_4_MAX_ROW_WEIGHT 4 +#define H_256_512_4_CODELENGTH 512 +#define H_256_512_4_NUMBERROWSHCOLS 256 +#define H_256_512_4_MAX_COL_WEIGHT 4 +#define H_256_512_4_DEC_TYPE 0 +#define H_256_512_4_MAX_ITER 100 + +extern const uint16_t H_256_512_4_H_rows[]; +extern const uint16_t H_256_512_4_H_cols[]; +extern const float H_256_512_4_input[]; +extern const char H_256_512_4_detected_data[]; + diff --git a/src/H_256_768_22.c b/src/H_256_768_22.c new file mode 100644 index 0000000..5f3a3b9 --- /dev/null +++ b/src/H_256_768_22.c @@ -0,0 +1,22 @@ +/* + FILE....: H_256_768_22.c + + Static arrays for LDPC codec H_256_768_22, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_256_768_22.h" + +const uint16_t H_256_768_22_H_rows[] = { +35, 7, 24, 203, 138, 29, 39, 28, 114, 79, 49, 43, 218, 92, 70, 192, 59, 1, 194, 129, 15, 5, 25, 62, 50, 28, 23, 119, 191, 112, 195, 18, 164, 117, 148, 82, 25, 120, 41, 100, 61, 4, 31, 7, 13, 135, 108, 128, 48, 45, 96, 201, 67, 17, 143, 42, 91, 44, 168, 49, 26, 38, 83, 169, 16, 86, 22, 25, 69, 42, 122, 94, 226, 145, 121, 242, 131, 165, 55, 81, 74, 5, 58, 46, 59, 32, 115, 139, 180, 6, 78, 20, 7, 135, 78, 88, 49, 28, 77, 158, 94, 125, 21, 152, 23, 7, 123, 160, 53, 11, 85, 82, 32, 60, 74, 65, 3, 13, 111, 143, 121, 46, 68, 121, 72, 177, 54, 166, 20, 130, 30, 139, 34, 151, 97, 47, 126, 1, 76, 72, 64, 32, 9, 125, 54, 114, 17, 82, 2, 30, 102, 29, 137, 2, 16, 206, 2, 27, 3, 13, 199, 123, 226, 20, 60, 221, 15, 53, 35, 93, 9, 124, 1, 109, 103, 73, 190, 51, 140, 90, 130, 57, 52, 225, 8, 47, 177, 66, 8, 112, 110, 62, 64, 104, 156, 33, 101, 26, 107, 60, 26, 196, 39, 34, 14, 54, 68, 17, 66, 5, 33, 104, 3, 214, 200, 35, 170, 51, 90, 113, 122, 8, 70, 65, 42, 80, 134, 157, 88, 19, 3, 98, 112, 19, 60, 119, 76, 18, 43, 232, 141, 175, 154, 118, 187, 182, 113, 37, 95, 169, 36, 17, 36, 64, 191, 51, 63, 24, 36, 21, 223, 27, 94, 142, 18, 22, 53, 45, 161, 81, 80, 68, 22, 169, 52, 109, 180, 61, 33, 121, 98, 118, 26, 96, 156, 101, 100, 73, 31, 87, 71, 20, 93, 132, 173, 1, 39, 151, 166, 106, 67, 87, 116, 196, 173, 56, 102, 120, 147, 30, 69, 137, 108, 21, 88, 84, 81, 48, 37, 102, 10, 86, 158, 78, 162, 39, 14, 144, 9, 91, 106, 96, 55, 6, 127, 135, 87, 163, 5, 25, 42, 56, 171, 225, 213, 99, 46, 133, 12, 194, 234, 159, 59, 55, 84, 10, 24, 40, 130, 228, 181, 186, 163, 72, 35, 115, 4, 149, 106, 19, 16, 67, 11, 8, 100, 144, 154, 27, 62, 37, 164, 2, 226, 11, 183, 48, 10, 176, 171, 197, 216, 155, 198, 44, 52, 75, 70, 74, 138, 184, 10, 96, 4, 99, 79, 208, 18, 62, 113, 167, 41, 38, 48, 40, 144, 97, 57, 134, 159, 211, 21, 146, 9, 83, 58, 51, 116, 32, 15, 50, 100, 6, 74, 31, 12, 19, 58, 78, 197, 162, 50, 11, 43, 89, 188, 132, 85, 94, 50, 65, 99, 66, 105, 69, 40, 157, 16, 97, 22, 63, 207, 72, 59, 142, 29, 76, 55, 206, 54, 136, 45, 40, 46, 41, 185, 6, 231, 13, 107, 208, 23, 173, 92, 145, 88, 144, 111, 119, 151, 68, 14, 129, 108, 89, 23, 36, 44, 47, 210, 4, 146, 89, 132, 111, 69, 57, 90, 117, 31, 14, 234, 183, 116, 214, 84, 249, 179, 209, 238, 47, 248, 227, 161, 125, 237, 220, 223, 237, 63, 200, 213, 240, 161, 212, 252, 250, 81, 214, 34, 159, 217, 184, 222, 240, 204, 147, 210, 211, 229, 133, 162, 185, 153, 249, 65, 15, 119, 204, 122, 161, 133, 138, 103, 204, 248, 38, 201, 173, 98, 181, 255, 73, 186, 73, 150, 189, 176, 128, 184, 101, 230, 56, 186, 160, 234, 205, 168, 243, 212, 205, 80, 147, 82, 93, 120, 214, 189, 195, 205, 141, 183, 152, 133, 255, 128, 174, 215, 229, 86, 160, 122, 206, 188, 165, 83, 246, 170, 85, 182, 219, 158, 118, 253, 104, 231, 220, 136, 191, 179, 79, 178, 166, 239, 116, 108, 167, 207, 221, 210, 207, 30, 158, 239, 209, 224, 199, 203, 142, 172, 67, 227, 75, 231, 34, 254, 145, 222, 240, 207, 107, 98, 168, 154, 233, 238, 33, 227, 236, 208, 241, 103, 141, 245, 190, 242, 128, 103, 232, 28, 159, 70, 197, 29, 155, 185, 218, 111, 188, 224, 252, 219, 164, 236, 163, 149, 241, 172, 219, 238, 216, 12, 156, 232, 217, 118, 136, 157, 247, 123, 230, 245, 202, 235, 217, 235, 64, 77, 95, 110, 140, 211, 254, 251, 235, 149, 253, 248, 226, 222, 256, 196, 170, 235, 152, 124, 168, 157, 127, 169, 184, 170, 71, 45, 247, 146, 120, 179, 176, 129, 249, 106, 251, 165, 199, 251, 220, 201, 224, 229, 194, 148, 220, 164, 193, 57, 183, 250, 52, 172, 180, 242, 175, 250, 91, 155, 187, 131, 61, 139, 252, 174, 107, 99, 77, 176, 179, 126, 192, 182, 125, 71, 124, 175, 202, 66, 178, 233, 105, 145, 140, 243, 135, 232, 85, 248, 153, 244, 115, 77, 216, 187, 139, 79, 171, 253, 204, 212, 156, 150, 218, 186, 86, 83, 198, 192, 151, 101, 127, 192, 58, 97, 208, 87, 188, 209, 137, 247, 136, 221, 154, 37, 199, 165, 126, 105, 12, 246, 187, 196, 242, 236, 256, 131, 213, 217, 230, 233, 105, 155, 198, 178, 203, 243, 228, 134, 123, 182, 49, 178, 222, 254, 244, 195, 225, 223, 193, 163, 141, 194, 252, 146, 237, 129, 76, 231, 92, 203, 177, 221, 117, 75, 197, 243, 27, 253, 92, 202, 215, 174, 228, 193, 254, 230, 239, 218, 80, 63, 223, 167, 109, 189, 228, 38, 149, 131, 210, 115, 241, 89, 193, 138, 250, 150, 171, 162, 113, 215, 185, 143, 172, 206, 245, 41, 209, 213, 216, 247, 148, 124, 44, 142, 117, 132, 127, 198, 255, 126, 110, 71, 177, 200, 175, 91, 152, 112, 212, 239, 249, 234, 140, 245, 167, 181, 104, 256, 241, 189, 244, 61, 200, 43, 148, 219, 143, 95, 174, 130, 114, 84, 244, 181, 137, 229, 95, 160, 215, 205, 24, 246, 53, 109, 251, 190, 236, 134, 153, 190, 150, 180, 227, 211, 237, 238, 153, 147, 93, 195, 201, 246, 166, 256, 56, 233, 114, 240, 202, 102, 75, 191, 225, 90, 110, 255, 224 +}; + +const uint16_t H_256_768_22_H_cols[] = { +18, 149, 117, 42, 22, 90, 2, 185, 143, 321, 110, 189, 45, 205, 21, 65, 54, 32, 230, 92, 103, 67, 27, 3, 23, 61, 158, 8, 6, 129, 43, 86, 154, 27, 1, 251, 248, 54, 7, 358, 39, 56, 12, 58, 50, 84, 8, 49, 11, 25, 178, 183, 109, 127, 79, 70, 182, 83, 17, 114, 41, 24, 17, 141, 43, 188, 53, 123, 69, 15, 230, 125, 60, 81, 140, 139, 99, 91, 10, 79, 25, 36, 63, 3, 106, 66, 290, 96, 407, 180, 57, 14, 82, 72, 206, 51, 135, 57, 271, 40, 68, 151, 51, 112, 286, 239, 148, 47, 174, 191, 119, 30, 220, 9, 87, 1, 34, 110, 28, 38, 75, 47, 107, 172, 12, 137, 226, 48, 20, 130, 77, 294, 38, 227, 46, 115, 153, 5, 88, 179, 88, 136, 55, 328, 74, 233, 34, 35, 183, 63, 134, 90, 41, 151, 172, 190, 195, 100, 28, 72, 11, 39, 182, 33, 78, 120, 124, 59, 64, 105, 302, 137, 56, 94, 242, 65, 126, 119, 5, 89, 58, 107, 89, 30, 40, 61, 245, 101, 64, 162, 29, 16, 252, 19, 31, 202, 170, 312, 134, 18, 52, 200, 4, 33, 74, 100, 125, 157, 6, 35, 36, 22, 19, 2, 95, 188, 29, 13, 108, 14, 126, 31, 15, 133, 184, 73, 10, 352, 37, 69, 113, 166, 152, 73, 201, 156, 13, 7, 121, 20, 158, 76, 76, 295, 161, 104, 196, 9, 4, 24, 211, 23, 111, 143, 59, 218, 138, 154, 159, 367, 82, 334, 44, 189, 171, 356, 373, 334, 118, 327, 44, 155, 147, 238, 234, 129, 260, 266, 105, 258, 37, 198, 262, 26, 152, 131, 289, 113, 196, 133, 169, 253, 319, 62, 203, 414, 411, 70, 239, 394, 231, 122, 136, 318, 60, 430, 218, 256, 168, 145, 333, 306, 253, 318, 85, 165, 266, 192, 257, 193, 116, 209, 138, 207, 311, 169, 279, 140, 62, 115, 379, 237, 205, 95, 118, 226, 80, 81, 103, 316, 111, 97, 302, 229, 444, 219, 262, 374, 170, 101, 249, 284, 319, 149, 346, 287, 197, 307, 159, 194, 333, 300, 199, 123, 276, 207, 175, 190, 247, 146, 296, 122, 378, 193, 45, 83, 121, 71, 162, 223, 102, 275, 316, 66, 237, 181, 265, 431, 49, 353, 94, 194, 312, 50, 132, 208, 160, 264, 120, 376, 144, 369, 80, 249, 213, 307, 298, 104, 294, 243, 263, 195, 225, 109, 168, 98, 21, 325, 338, 180, 102, 128, 397, 75, 227, 217, 343, 185, 295, 269, 260, 236, 187, 284, 117, 258, 361, 246, 254, 67, 173, 71, 264, 176, 85, 177, 116, 276, 364, 248, 86, 219, 380, 348, 161, 215, 55, 282, 135, 46, 78, 156, 128, 320, 132, 127, 209, 77, 342, 26, 386, 298, 192, 174, 179, 114, 166, 145, 261, 177, 344, 163, 139, 360, 96, 198, 141, 191, 285, 351, 203, 181, 16, 153, 131, 32, 184, 163, 289, 360, 199, 335, 232, 53, 42, 255, 240, 178, 214, 210, 92, 340, 173, 157, 213, 403, 210, 432, 93, 222, 329, 387, 384, 349, 160, 491, 167, 371, 208, 265, 370, 164, 314, 273, 481, 357, 68, 201, 378, 98, 171, 150, 434, 142, 211, 142, 216, 259, 329, 401, 297, 455, 421, 225, 443, 428, 268, 347, 186, 386, 97, 441, 256, 275, 267, 206, 354, 342, 417, 425, 353, 200, 278, 379, 395, 204, 224, 283, 301, 272, 454, 223, 291, 364, 176, 398, 396, 372, 272, 324, 301, 271, 270, 112, 311, 355, 292, 310, 321, 315, 494, 507, 330, 384, 293, 263, 463, 332, 416, 232, 404, 375, 286, 320, 165, 212, 346, 331, 270, 313, 398, 436, 487, 233, 409, 466, 366, 303, 430, 244, 236, 234, 124, 99, 197, 280, 144, 332, 335, 93, 371, 359, 341, 446, 91, 418, 290, 326, 324, 399, 267, 288, 241, 429, 417, 415, 287, 422, 309, 426, 368, 411, 314, 222, 484, 328, 347, 285, 228, 130, 352, 108, 48, 413, 363, 251, 241, 299, 410, 150, 250, 220, 389, 257, 305, 387, 281, 273, 376, 349, 235, 277, 451, 277, 385, 228, 416, 309, 299, 322, 399, 481, 255, 313, 389, 350, 361, 304, 390, 393, 242, 439, 245, 385, 350, 52, 87, 419, 147, 406, 323, 404, 420, 305, 345, 84, 415, 391, 202, 308, 186, 244, 327, 217, 363, 246, 362, 216, 155, 388, 247, 344, 373, 240, 345, 447, 212, 339, 370, 187, 392, 146, 406, 259, 351, 456, 420, 477, 325, 215, 238, 261, 243, 268, 303, 359, 434, 453, 296, 382, 231, 500, 339, 476, 106, 374, 423, 401, 442, 435, 478, 510, 429, 457, 252, 407, 436, 292, 421, 459, 495, 476, 340, 283, 382, 167, 465, 310, 509, 428, 279, 204, 365, 496, 380, 412, 326, 472, 474, 341, 459, 497, 471, 473, 498, 413, 356, 449, 426, 395, 478, 469, 467, 500, 506, 437, 463, 235, 457, 408, 460, 254, 450, 452, 372, 490, 505, 397, 437, 462, 288, 433, 506, 466, 297, 438, 405, 394, 317, 148, 424, 467, 447, 322, 337, 485, 502, 509, 441, 483, 494, 448, 472, 402, 458, 281, 451, 431, 315, 505, 175, 452, 453, 369, 479, 493, 479, 510, 504, 443, 414, 502, 405, 427, 508, 282, 488, 308, 280, 221, 354, 427, 278, 435, 432, 164, 492, 465, 403, 503, 348, 483, 336, 470, 470, 409, 300, 448, 366, 464, 462, 486, 484, 501, 493, 460, 402, 486, 489, 442, 492, 377, 392, 306, 456, 323, 419, 473, 269, 440, 365, 381, 331, 498, 450, 224, 274, 229, 412, 418, 482, 464, 440, 388, 438, 357, 274, 487, 469, 355, 512, 400, 475, 362, 336, 445, 455, 485, 507, 317, 408, 367, 495, 337, 439, 433, 330, 458, 496, 504, 375, 304, 475, 468, 461, 480, 422, 499, 489, 444, 423, 214, 474, 424, 343, 393, 461, 250, 377, 358, 396, 512, 508, 383, 488, 400, 471, 391, 477, 291, 501, 511, 221, 482, 490, 491, 445, 503, 454, 338, 381, 468, 449, 497, 425, 293, 446, 410, 480, 368, 383, 390, 511, 499 +}; +const float H_256_768_22_input[] = { +8.9323881489912722, -14.346922710565353, 7.9693390759559781, -5.575983146144643, -11.430007344507024, -11.797433382704103, -7.6498596597609545, -7.881023325143766, 4.7029642025464975, 5.490489593506263, 1.4577054829853482, 7.2204914066015347, -6.4495501165249394, 11.025143103007442, -9.6136273661905971, -1.6292633004367878, 20.082835454091001, -15.940623976141929, -2.9320120314706735, -4.3372895006030534, 5.8549869318024657, -7.8135927951559925, 4.4717025005955255, -7.1804626225242245, 8.8281745058367793, 3.457866082712139, -11.660964767047432, 15.344085170249253, -14.466810773633428, -10.293997562512834, -6.5294617860841004, 2.6337196833307024, -11.070543876657444, 5.7359108096272164, 9.0013294714941843, -9.1923366442599423, 8.3397116927192272, -7.3466443766727068, -7.0208885950279667, -9.8833064990274835, -11.070411858783441, 16.189201249627562, -6.6872549284064142, -11.752890503765991, 8.888774213749782, 6.0968391171951497, 4.6589995649358533, -13.575988817182116, 11.224485296177397, -10.220694397171258, -5.4572791361037458, 3.0379566142247696, -10.350052412180393, 10.682941155969285, -4.9736564167026174, 11.948298747287996, -9.0750233401887872, 8.9486285395989267, -8.0970017828965126, -6.5844009128903371, 8.5356201812866281, 6.8576026698255736, 3.5824292008949179, 6.386672876216724, -15.44333294899913, -14.723335707927411, -7.1535041654585925, 10.057507199075706, -6.9304518083413749, -13.454196499566493, -4.138927837975757, -9.8229530349333984, -4.7378733928678765, 9.7370721449903357, -11.850883212615898, 5.8425014756304456, -6.9027200123108363, 8.7507430345166597, -2.8432533600339798, 7.1365746925349614, -6.098608401582597, 10.486813349939659, -8.8989094853818393, 7.6668852841834365, 6.3748984557020911, -5.4320648642184377, 12.959555816131948, 6.6472990487222825, -4.5586715631096242, -10.121473995028611, 13.889214737960058, 7.8618812777297702, 0.65114006436468486, 5.6488480073158049, 5.572561535915213, 2.4203295039424271, 5.3724413783839795, 10.445189341740317, -15.231581540217265, 11.189031424930562, 13.490253048718506, -7.5847033262880901, 8.1341785315194368, 4.667483152501207, 10.057012188688605, -12.532915718955612, 17.831016306467532, -7.0233337748720057, -8.1477498232874108, 6.5993887776727203, -6.605350841986966, -7.0309413757967123, -0.87776810176011932, -7.9287494770117224, 5.1536577951126938, 0.56224938859050333, 7.7410604756629082, -10.567376193912894, -2.4437814999269047, -1.2455732716974919, -8.9878404597781163, -10.226284826932922, 4.5715929705982656, -1.3060897521729748, 9.6931031456180285, 6.3549868823010955, -7.6817147139176463, 8.4268904957327955, 0.72594931178019784, -4.9826196594501706, 8.5326984912532176, 2.0637319625971493, -4.2933223803232075, 8.0239298244286879, 1.7951957372413565, 0.084600427180267501, 9.4399601205840362, 10.396717221311645, 12.856923054222854, 3.3295462715836468, -7.6253580712992282, 4.4434471213207374, 6.3733997531278987, 5.4209913860102539, -5.9866755286453737, -7.0287078896424156, -9.2179437166191374, -11.790731307180192, 8.455859639343128, -8.3117274581248051, 13.838681948013669, 7.5475760198641648, -10.086023553300919, -11.224918245135393, -3.3058930832202531, -6.8195757099451129, 11.709166727746231, 11.710100491323546, -11.077873187765078, -10.227016885555694, -4.2941243793572408, 8.1424248467837987, 9.7722584940844754, 7.1104245309154912, 9.3804477382031415, -7.106685163129332, -7.2437598314289575, 11.947702093459393, -1.057260209023416, -6.765299028699161, 3.3425539547981304, 13.328906459054352, 4.4101064786390305, 1.8051901230395977, 11.535802590105595, 0.81386101415425482, -8.165348209826135, -8.5774987728328416, -6.0775939508580219, 2.5963421619843943, 6.3292406903055642, -8.4458269581431491, 8.7662642361276717, -5.819334215801403, -13.610981269704446, 5.0765800356900179, 8.6249353046138477, -4.9634433316247675, -3.9950013700332065, -7.6929117100191453, -6.3633253856519749, 0.83722518023775461, 10.425061034991041, 10.934194165601433, 10.580235622153944, -17.515337920449952, -1.537113005053216, 10.026745250979713, 18.991835102357538, -9.10384082546339, -13.768910919694958, 5.4796127108483343, -8.9244398152912101, -11.548649423930978, 15.611931291120561, -8.908049321272264, -11.715023369923955, -8.5067714993118528, 8.669606218924919, 8.6186685199527773, -0.30417248355831389, -14.992242521244618, -11.237143275747075, 15.47971006097473, 7.0259516978639338, 10.065037137491313, 7.8868287877920169, -12.78707872542274, 7.4550220422461217, -16.404346129675449, 13.30456637678888, 9.9512518647161254, 7.5942461140693247, 3.7624642178418926, 9.8925251212558027, 14.146774666880505, -6.8718384088583475, -3.9981741290451276, 9.4511470096099846, 11.953465594032014, -11.215529849347973, 15.45129835369298, -7.3274909872161418, -4.9654010419320853, 7.7259448497328904, 9.8641694370073871, 1.1150439872404596, -10.084099868296887, 12.049728969177872, 13.071957031320016, 6.9097309932538309, -0.39659296549442785, -2.9217410655323537, -9.5561149122145306, 4.3607269616443673, -7.3795521023764916, -11.702904880630188, -1.5433424172046679, 15.057989444533467, -1.2565455630730749, 8.9880357276703204, 6.1129770246307693, 11.328910534091127, -2.9309511311565144, 11.207912500256919, -5.7404867114420988, 5.9950024570017471, -5.7910643096127341, 5.4208744627397838, -4.5716714958282108, 8.1298949011896831, -11.711123662713085, -12.017719365072217, -9.7122748441533471, -6.6047630492267668, -14.567681472229127, 7.7859507737798745, -13.177213209080305, 1.409111307587259, -1.5011399595588764, 12.057098493693852, 6.4171185080762427, -11.634125892968456, 11.044794834453159, -14.65558507132892, 13.72196292983746, 11.040226522930523, 6.2584434572994629, 10.730689310638432, -4.618515034465152, -1.2143032307321182, -7.4189186448958875, -7.669206125358758, -9.1157167366336314, 4.9339345930796563, 8.3824960985509129, 9.5126664524245168, -4.4260649375190164, 3.6144449441325635, -10.893425304008998, 8.3182825177379076, 13.628768431834336, 7.1730917891722781, 10.087828497729179, -10.489116618742848, 3.8856613599836791, -15.602509765497121, 7.2487646720202497, 12.218582462579505, 0.49211467796430364, -0.066484718374747426, -8.4329617736870581, -3.0127430939186324, 5.8144883342823128, 8.6729115102941527, 6.121491141792947, 12.360054236262307, 13.543171514998027, 12.1058948920289, -12.808248849582228, 7.3365859144200227, 2.0678328559134647, -1.7234260199225477, -13.299836520520724, -14.789707963127125, 6.6006452928112296, -11.956138068501044, -8.8455623029732315, -2.9088913906661178, -9.2132364101435229, -5.8435384831621802, 5.8547803901805464, 8.8126231169253515, 5.5222906262970843, -10.39753464755324, -12.211638565038697, 17.292580458421533, -8.5876470036423616, 4.7678649428994673, -8.4226853315054129, 8.700249181036531, 12.952510035514349, -7.6833594373108234, -3.0202355585479235, 8.7526883579126586, 11.663176352140155, 11.981232949878732, 11.031377901823634, -9.9501241218952927, -15.089187715856323, -10.601089041749843, -6.388179627159027, -4.6793834219078603, 3.9045854726147744, 9.8861746042718845, 0.042855319175376341, 14.3414643477855, -10.407450105082846, 3.0336086321363265, 13.793872516546351, 8.0501940947932038, 4.5991785638040428, -7.9303874601996593, 14.049591025574657, 17.380262133125449, -7.8459793004203222, 8.705024309261562, 6.6262770303011473, -10.086319438204431, 11.047015628809582, -7.3582609209654937, 8.2545626149113698, -11.989564968227834, 2.5193529800955838, -13.244337020280915, 4.8502499826361731, 14.474602979942233, 6.9452935547158612, -7.0450024656821544, -10.212713949627561, 13.849620674538945, 9.6833988531870752, -5.9081325241866898, -10.018382284344064, -6.6229672412657683, 13.879028902842597, -14.33382686638503, 1.9643288191802857, 0.16885137143821174, 4.2277292060928415, 10.805548194765471, -2.4964830143581742, -13.101405042095365, -13.302619999785827, -5.9241726080344108, 14.467933324092012, -8.4591055199339298, -10.184465268318146, -19.503434376811896, -15.229997219469618, 4.8345001979789908, 8.0104662922364813, 4.4017092080658031, -10.231395640484859, 3.9727378370282236, 14.2026231360392, -8.4599285310056196, -12.215460236402727, 5.394330835754074, -7.3356861012337502, -3.6795675270857404, 8.0787223556775896, -9.3271996634056915, -7.4552893328088974, 6.4828043001554736, -5.9782833623900453, -1.9874116057406432, -7.5397619196439196, 6.0283880381663453, 7.1105241207440057, 10.966410901409223, -12.375355422502105, -13.997023100211885, 7.7681673568373251, 6.0215105845435861, -0.44409932549081066, 5.2745451861685329, -7.2390124351491778, 9.8045113653170404, -3.5483006663908347, 8.4455042050030151, 6.750717907091107, -9.4719350776568856, -10.118021370720959, 2.7210293880017544, 8.2387439951112835, -8.6980762983904132, -11.317194860133458, 14.906902369795306, 8.5196626788523204, -5.7269320734414473, -6.4873691363023527, 11.118139263369434, -5.131366585591298, -5.1884527453006095, 2.1617883533714988, -3.2189908119713868, 9.1103687701917888, 6.1325191653578388, 2.411217194453199, -3.9050656149976706, -7.7536941054127926, -11.37779012533324, 2.2663187424687767, -14.954242385161651, -11.78196073144464, -5.9162280171814157, -14.78759715146799, 4.6557410991557671, -5.9735521657583144, 6.6275285823558434, 3.1024480512797177, 10.06871404793227, -10.543486892529438, -4.7522704594310561, -0.61601641164246079, -7.6838548304456449, 15.87411724597454, -11.665450977940896, -4.4365872375343205, 3.8247335268174831, 6.5326004536991329, 12.435275476860919, 8.2570494940406931, -3.3808435906687064, -4.7552502897093776, 4.5050634114776189, 10.672688962977514, 12.075918776794476, 1.7986308060137437, 4.1923629883751303, 11.752733569678064, -10.339474897439999, -16.186126637379726, -10.796197122972746, -9.214305404692233, 13.497270712719919, -9.4453197440185637, -15.69391834232802, 12.700707467329744, 4.7024717561391816, -10.327031105585643, 3.8477541445369963, -5.4896217736139521, 8.0519776507030638, 5.0341370218785944, 6.0456145072449026, -10.710449576292405, -8.6533964520637863, -12.257979327405108, -12.078971121036197, -10.881473761466781, 14.147239535310518, -2.6328735032346162, -15.716779182806999, -9.4242407781207191, 8.1426142269915331, 8.1611227842517025, -3.6252335542783207, -9.8025397455364676, 12.763568770750853, -9.5331346940178729, 4.9974585644427902, 5.9879812547323237, -6.2951737225996656, -3.9498007698755808, 10.122100576790197, 6.6618355586974447, 4.6997313218613739, 8.1707413233409465, 12.216703169693357, -12.426888921432578, -11.146002828849364, 6.3741370321379085, 7.6566213756894941, 2.2128160251661328, -5.4585144064775051, 11.139007406371906, -0.057747253315553991, -5.7619887506088023, 11.559333388163129, -7.7967134901859065, 1.5414474492709742, 10.25242202166922, -2.4376317695445988, 2.4485328874029482, -5.2527291639016829, 6.6966144242231938, 10.1056403723797, 9.6715660466767641, 12.199837902638398, -9.9779918730035462, 7.0398600566727509, 13.235714186918685, 6.2264247221125624, 0.49429650260801106, 11.011555724458017, -10.232864614422217, 1.0779763774514628, 2.3155686395401807, 13.340589994791694, -1.4927270737348184, -6.3253956772331872, 11.17892183418669, 4.6804642104000935, 9.9681133942788716, -15.354347685766472, 12.132973558045073, 16.863099386593074, -16.254027114251262, 8.9259599464113109, 4.4137266569998239, 13.238368561676072, 7.7024856954025447, -14.55028063381018, 2.9997759568600673, 5.9324435315675945, 8.9709392409618971, 9.9626050864742304, 6.0433161763769014, -11.094500816935717, 5.0773121433888173, 8.8653918721034444, 13.358789208346618, -3.3614825528284049, -13.508375784100188, -9.738962524121586, -6.8429863842661831, 9.3377608423949319, 9.1681044258536648, 2.6799203842673007, -8.1054023029408491, 3.7516032358089029, -8.7628704110935036, -11.00085544248971, -5.7755226059613731, -0.22395652308977335, -6.5936781093194714, -10.208015637116542, -13.848721312194234, 9.876782398829647, 9.437177021184711, 13.967144290195598, -1.5603470410313784, -12.959548633651529, -13.772706675904137, 9.4983989705496406, 4.8575506841930132, -13.426339798518415, -6.8882549582242767, 10.020963852018646, 10.738289970141997, -3.5322181002015958, 8.9790411088584392, -4.3462795772567171, 18.871182150839772, 6.1273012327332719, -6.5695645965276261, -8.2641966395439947, 0.85103670621664851, -16.902729440065183, 8.2697379486332849, -13.872113727992556, 13.619190901125434, -12.016737280921415, 1.639362596352592, 7.9267314843757219, 9.5913300412571747, -7.091648374422606, 5.8969231337131776, -6.4726579518981842, -4.3486881710817249, -9.3821085024104374, 10.917473221565318, 2.0279974118340656, 11.063658410060127, 6.9102623370057179, 6.2072533209374354, 11.520596314303049, -1.5151713191609242, -6.5680763433887153, 16.444160798635387, -5.3791474454897958, -2.2789027240044306, -11.56354929134242, 12.427791285408714, 8.610090315178283, -4.0511067764443416, 7.8692225359304206, -6.7079554414922891, 5.3999766490636549, -8.3179099730168247, 3.6976737002905016, -17.552301172297032, 6.1364424779438496, -9.7751306565781455, 6.1931141049267051, 16.865997593208082, 3.7361395596034965, 3.8267814056050402, 10.269712544637359, -12.797853578296257, -11.480255281563355, -10.876303582685193, -5.4324292010775084, -6.498689183845423, -3.8053637987749771, 13.525521072484571, -9.0129342094166027, 12.475202758118572, 0.35156955969912357, -13.374269540997016, -10.783210983288953, 10.807251662994091, -12.38126506382245, -5.8440304046740765, 6.1261248782561006, 10.426389918103478, -10.251207974472264, 5.7090742604182871, -7.3918232768010466, 14.40018609866692, 10.516336495878081, 5.0907717527746268, -10.790845519857502, -10.344691466108914, -0.81606960094075376, 5.8009330688061373, -6.4523871686156467, -13.804096639962156, -3.8036780326942807, 4.4403995451427036, -6.0454707691007998, -4.457208611267375, -9.3857200039694799, -4.2448642066932596, 11.390356801037848, -11.880538676942361, 16.20974462472968, -8.1065692722381755, 0.10605368805162664, -4.0113679201569177, -3.6764938206674111, 7.1589548870717845, -14.894945704589089, 19.416913935254374, 10.455230095243721, 19.094980784068856, 12.749384013660427, -10.507945794429656, -8.6068528180875727, 6.4779699897920597, -7.4688822584989687, 11.422119526982375, 12.683635758259111, 6.9141103733570297, -3.4807019716082186, -1.0659446865294615, -5.5303642351312705, -8.4756723068747828, 6.5495058918879581, 17.01132173619504, -8.6901951713633352, 0.73205096704640338, 12.18517096248061, 9.6207253649723565, -0.11293013857241167, 14.416380598864535, -3.4842485223978721, 8.538043021108594, 7.9853181927735468, -0.17854963422944989, 15.297082129948347, -8.6558345268403372, -8.8359118745350518, 6.8797931777949346, -13.579058234606006, 5.6056971276091021, -4.7325737401807606, -10.043277228766703, -8.496193000774646, 13.208604057890039, -2.6125003977921626, -9.0028742948434246, -8.3466406676435714, 4.0100931584168364, 8.607156558507457, -9.0376712732526396, 11.431914424287775, -0.65772909230851129, 9.5881935247089132, 14.183768387632979, 1.0198498160186804, 12.12574599778624, -8.8946934403733184, 17.588496278735882, -1.8672309187831959, -10.261023592868218, -10.98895162511046, -2.7839860694432046, 8.6202133936627021, -2.9996428552260639, 12.935041261170362, 10.751931118319499, 9.6367189688985686, 10.40091951562113, -9.8677128130479659, -0.85076949696133808, -8.7094472775564959, -2.7363773372569646, -10.036127502962517, -3.494015934190208, -4.2404950010667983, 4.590562970442905, -11.458041901958747, 9.3378179645353931, 12.328201773184455, 4.9840870074452948, 12.800873263637309, -12.800832354798168, -8.3806105857214561, -7.1573424713736697, -3.454056906476644, -10.568266292992009, -3.1957929098569293, -12.197503600264985, 14.897621213566064, 4.3558337641415363 +}; +const char H_256_768_22_detected_data[] = { +0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 +}; diff --git a/src/H_256_768_22.h b/src/H_256_768_22.h new file mode 100644 index 0000000..a92ce5c --- /dev/null +++ b/src/H_256_768_22.h @@ -0,0 +1,19 @@ +/* + FILE....: H_256_768_22.h + + Static arrays for LDPC codec H_256_768_22, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_256_768_22_NUMBERPARITYBITS 512 +#define H_256_768_22_MAX_ROW_WEIGHT 2 +#define H_256_768_22_CODELENGTH 768 +#define H_256_768_22_NUMBERROWSHCOLS 256 +#define H_256_768_22_MAX_COL_WEIGHT 4 +#define H_256_768_22_DEC_TYPE 0 +#define H_256_768_22_MAX_ITER 100 + +extern const uint16_t H_256_768_22_H_rows[]; +extern const uint16_t H_256_768_22_H_cols[]; +extern const float H_256_768_22_input[]; +extern const char H_256_768_22_detected_data[]; + diff --git a/src/H_4096_8192_3d.c b/src/H_4096_8192_3d.c new file mode 100644 index 0000000..fcd0f19 --- /dev/null +++ b/src/H_4096_8192_3d.c @@ -0,0 +1,22 @@ +/* + FILE....: H_4096_8192_3d.c + + Static arrays for LDPC codec H_4096_8192_3d, generated by ldpc_gen_c_h_file.m. +*/ + +#include +#include "H_4096_8192_3d.h" + +const uint16_t H_4096_8192_3d_H_rows[] = { +68, 31, 76, 127, 68, 376, 36, 1118, 15, 68, 436, 58, 375, 32, 320, 150, 266, 2, 436, 191, 79, 52, 2109, 249, 340, 288, 258, 462, 2891, 21, 255, 24, 79, 167, 96, 86, 94, 16, 377, 163, 101, 477, 246, 60, 337, 217, 474, 53, 54, 16, 5, 1591, 124, 1740, 214, 1309, 427, 171, 23, 477, 202, 484, 185, 57, 33, 109, 1326, 392, 1507, 81, 415, 93, 810, 317, 52, 162, 425, 416, 146, 319, 110, 273, 170, 254, 119, 242, 147, 126, 413, 154, 287, 499, 91, 72, 1502, 104, 189, 235, 263, 312, 124, 71, 141, 769, 887, 132, 101, 390, 466, 641, 382, 393, 515, 139, 281, 157, 229, 266, 64, 112, 60, 280, 966, 1296, 248, 331, 56, 267, 50, 155, 982, 492, 906, 326, 78, 227, 374, 21, 429, 113, 491, 237, 252, 451, 101, 440, 7, 147, 373, 96, 678, 186, 311, 29, 448, 2335, 114, 212, 352, 367, 147, 82, 320, 300, 370, 132, 235, 255, 487, 101, 533, 379, 29, 352, 82, 41, 78, 181, 174, 1629, 104, 319, 23, 86, 187, 440, 571, 999, 114, 596, 587, 838, 333, 389, 139, 1006, 454, 699, 65, 309, 1187, 377, 31, 173, 189, 310, 536, 250, 4, 1516, 6, 41, 14, 49, 319, 378, 118, 3108, 175, 150, 107, 286, 167, 61, 594, 294, 13, 477, 2038, 124, 204, 1027, 245, 819, 159, 84, 153, 71, 38, 419, 574, 211, 290, 6, 886, 1, 1248, 183, 272, 470, 312, 115, 6, 264, 242, 2054, 7, 609, 74, 690, 2641, 434, 137, 265, 996, 9, 417, 192, 102, 22, 20, 1021, 299, 246, 207, 1678, 827, 357, 9, 169, 37, 153, 433, 51, 5, 44, 416, 406, 117, 165, 36, 178, 2887, 238, 2369, 98, 311, 1348, 855, 215, 1469, 605, 135, 987, 88, 244, 580, 2043, 164, 415, 372, 126, 237, 116, 236, 181, 99, 224, 154, 1191, 317, 2031, 835, 306, 200, 8, 15, 195, 176, 1658, 1072, 161, 341, 412, 291, 104, 2812, 180, 1587, 161, 147, 368, 411, 21, 1246, 457, 335, 24, 1258, 342, 1453, 136, 84, 104, 191, 152, 144, 333, 165, 6, 130, 370, 57, 54, 1302, 277, 53, 80, 18, 230, 122, 217, 21, 424, 184, 296, 1880, 827, 859, 2275, 42, 313, 1443, 354, 170, 110, 724, 264, 206, 17, 57, 354, 97, 43, 354, 321, 70, 471, 74, 1124, 425, 21, 35, 56, 382, 126, 168, 382, 132, 16, 152, 218, 483, 20, 3, 45, 503, 283, 357, 68, 495, 41, 124, 13, 14, 18, 285, 364, 291, 20, 92, 141, 349, 35, 354, 5, 222, 1080, 390, 113, 136, 181, 77, 235, 61, 2, 209, 73, 17, 10, 75, 10, 95, 99, 131, 468, 369, 94, 11, 278, 381, 228, 62, 106, 62, 79, 171, 35, 369, 3, 131, 222, 315, 336, 92, 49, 390, 2159, 1724, 80, 110, 27, 132, 3428, 328, 199, 112, 1267, 2731, 478, 776, 275, 60, 147, 1193, 388, 49, 25, 208, 1583, 364, 41, 192, 202, 100, 631, 210, 946, 35, 226, 159, 120, 866, 28, 149, 143, 2881, 171, 369, 66, 88, 1476, 290, 425, 950, 1200, 2139, 229, 272, 112, 324, 108, 892, 122, 105, 190, 52, 7, 239, 84, 179, 2273, 99, 20, 352, 322, 264, 288, 4, 232, 127, 231, 361, 446, 230, 247, 243, 17, 146, 1115, 31, 410, 111, 55, 380, 157, 355, 90, 358, 343, 1062, 251, 145, 219, 497, 263, 400, 1533, 72, 763, 1297, 2, 461, 163, 301, 276, 352, 434, 251, 205, 44, 39, 336, 610, 65, 165, 401, 444, 73, 373, 224, 109, 254, 452, 184, 177, 40, 221, 2, 92, 333, 1285, 76, 210, 59, 250, 3155, 291, 185, 271, 1009, 265, 216, 19, 34, 135, 216, 2352, 10, 1498, 228, 418, 2332, 11, 1639, 623, 20, 691, 1838, 140, 159, 280, 149, 36, 326, 1983, 32, 453, 261, 287, 202, 486, 57, 873, 182, 821, 17, 181, 385, 99, 3134, 47, 86, 282, 106, 63, 548, 226, 98, 283, 169, 306, 95, 87, 305, 367, 324, 2118, 75, 179, 164, 410, 81, 313, 37, 263, 337, 3044, 3043, 486, 206, 743, 348, 2588, 2127, 1666, 90, 183, 52, 302, 193, 52, 315, 191, 123, 14, 20, 479, 197, 2, 98, 2074, 144, 140, 129, 1064, 348, 203, 379, 293, 56, 317, 468, 413, 458, 305, 19, 85, 427, 272, 181, 324, 1120, 179, 137, 11, 54, 1473, 246, 566, 457, 46, 126, 38, 3204, 805, 80, 1693, 8, 2971, 1140, 69, 680, 254, 15, 163, 234, 28, 212, 349, 65, 133, 1199, 276, 2756, 64, 157, 21, 145, 125, 100, 792, 2192, 95, 611, 262, 32, 64, 76, 314, 58, 106, 127, 45, 1214, 603, 14, 546, 265, 414, 79, 2488, 2165, 16, 179, 47, 302, 45, 261, 153, 106, 460, 204, 174, 100, 260, 2071, 391, 338, 94, 654, 415, 692, 216, 161, 42, 369, 334, 91, 48, 43, 142, 441, 356, 22, 464, 208, 18, 205, 430, 124, 56, 731, 254, 459, 346, 1900, 160, 96, 73, 41, 360, 138, 314, 523, 9, 129, 466, 434, 184, 143, 100, 935, 86, 2755, 37, 2737, 165, 2371, 242, 202, 780, 288, 2690, 37, 28, 568, 275, 278, 89, 146, 449, 113, 721, 464, 300, 19, 541, 84, 291, 157, 145, 141, 494, 661, 2455, 66, 42, 370, 2187, 119, 248, 443, 81, 88, 175, 436, 320, 410, 234, 14, 106, 277, 170, 99, 379, 281, 8, 141, 51, 174, 367, 72, 251, 102, 1008, 335, 49, 407, 299, 307, 290, 614, 108, 406, 186, 978, 1511, 169, 64, 423, 1737, 384, 200, 42, 89, 301, 386, 34, 2076, 266, 4, 426, 630, 371, 277, 59, 5, 28, 190, 1999, 542, 316, 5, 141, 399, 178, 87, 214, 402, 2179, 58, 1961, 37, 322, 1681, 11, 223, 52, 131, 414, 129, 252, 37, 365, 76, 450, 651, 76, 363, 169, 43, 351, 307, 214, 42, 291, 149, 1970, 77, 48, 209, 286, 1664, 749, 1750, 55, 339, 2340, 231, 8, 1674, 356, 54, 115, 328, 124, 162, 66, 154, 123, 41, 143, 8, 179, 261, 293, 125, 422, 401, 10, 98, 193, 143, 125, 16, 30, 1399, 174, 276, 213, 2314, 147, 308, 198, 90, 71, 567, 185, 128, 487, 300, 548, 256, 163, 2087, 565, 111, 529, 393, 270, 172, 136, 292, 2158, 206, 83, 456, 121, 57, 4, 106, 50, 203, 996, 219, 77, 99, 69, 2711, 197, 43, 2206, 60, 33, 3799, 224, 96, 517, 307, 394, 1547, 229, 8, 1549, 492, 107, 809, 193, 225, 483, 1487, 1523, 2095, 18, 119, 76, 31, 1716, 88, 77, 301, 479, 187, 1289, 97, 19, 51, 366, 523, 99, 234, 355, 252, 176, 38, 403, 105, 12, 456, 1651, 3161, 374, 383, 225, 13, 394, 492, 82, 781, 1, 224, 98, 40, 58, 147, 9, 432, 75, 425, 100, 74, 8, 69, 88, 1251, 1606, 282, 289, 193, 338, 131, 211, 51, 7, 373, 2615, 938, 2, 38, 195, 13, 14, 341, 168, 85, 213, 432, 33, 153, 147, 2876, 13, 1016, 38, 213, 52, 194, 281, 2275, 279, 107, 117, 637, 312, 436, 1051, 16, 4, 181, 239, 266, 1874, 1568, 300, 1116, 27, 65, 8, 143, 197, 92, 223, 112, 121, 19, 70, 103, 366, 136, 1162, 683, 19, 1396, 24, 598, 206, 59, 343, 381, 96, 217, 381, 1049, 134, 372, 407, 21, 145, 58, 70, 92, 155, 776, 18, 323, 66, 752, 103, 202, 473, 612, 6, 455, 52, 648, 70, 123, 10, 9, 48, 25, 265, 306, 258, 229, 3, 1798, 308, 165, 1, 207, 945, 213, 12, 112, 491, 845, 117, 147, 645, 1359, 191, 97, 14, 1043, 7, 21, 141, 70, 340, 204, 406, 314, 2625, 26, 420, 90, 244, 262, 85, 3219, 38, 279, 222, 4, 115, 484, 71, 285, 228, 35, 734, 1307, 109, 178, 252, 120, 135, 499, 131, 51, 128, 380, 256, 784, 270, 306, 251, 397, 812, 22, 43, 40, 1351, 286, 79, 215, 57, 34, 1110, 951, 129, 150, 286, 243, 138, 63, 2306, 426, 285, 2206, 207, 1313, 2023, 197, 230, 1564, 128, 182, 350, 19, 66, 201, 17, 493, 94, 67, 64, 176, 435, 1861, 206, 701, 748, 77, 386, 96, 83, 476, 134, 1204, 365, 1010, 1972, 514, 2015, 210, 266, 167, 166, 117, 9, 176, 26, 1887, 59, 469, 71, 432, 194, 455, 243, 1498, 41, 1551, 156, 2340, 128, 1395, 201, 114, 99, 384, 31, 144, 168, 33, 75, 365, 302, 420, 168, 317, 61, 107, 211, 1282, 101, 376, 1281, 405, 179, 2145, 175, 142, 718, 12, 1091, 50, 170, 116, 160, 1669, 48, 178, 371, 464, 376, 1244, 2357, 295, 103, 15, 2401, 47, 408, 246, 2583, 292, 444, 1117, 1057, 399, 424, 280, 95, 869, 30, 350, 316, 186, 63, 323, 143, 432, 221, 48, 346, 107, 76, 106, 311, 64, 404, 2101, 1063, 88, 232, 427, 42, 49, 145, 109, 163, 78, 1974, 82, 45, 434, 18, 13, 404, 774, 857, 126, 297, 809, 187, 109, 1315, 277, 280, 245, 115, 205, 171, 1012, 24, 83, 446, 52, 1575, 144, 67, 72, 832, 144, 1086, 4, 432, 50, 860, 2999, 56, 140, 201, 17, 55, 112, 77, 275, 55, 460, 498, 371, 138, 494, 20, 390, 357, 2000, 353, 262, 115, 118, 164, 61, 461, 564, 187, 84, 472, 627, 461, 215, 1058, 342, 208, 1170, 131, 173, 20, 12, 150, 337, 118, 46, 407, 207, 306, 33, 138, 482, 188, 153, 53, 172, 72, 10, 369, 87, 818, 111, 2183, 175, 482, 123, 15, 19, 177, 50, 383, 362, 2492, 23, 967, 311, 254, 146, 25, 268, 22, 120, 7, 202, 54, 33, 257, 499, 3615, 379, 78, 430, 1811, 1206, 198, 80, 34, 55, 2265, 396, 144, 613, 92, 421, 267, 2173, 936, 166, 60, 2396, 9, 117, 83, 134, 906, 37, 142, 2164, 441, 149, 727, 1733, 133, 1727, 135, 237, 61, 12, 208, 45, 154, 287, 238, 259, 221, 102, 1837, 273, 456, 488, 674, 93, 2572, 182, 153, 22, 510, 158, 420, 12, 896, 698, 2057, 1698, 298, 152, 907, 149, 480, 115, 496, 766, 660, 160, 146, 359, 159, 211, 178, 197, 16, 182, 226, 260, 1227, 266, 1377, 113, 138, 35, 157, 3023, 1145, 389, 248, 353, 3411, 249, 70, 255, 2302, 1083, 229, 23, 1207, 41, 316, 765, 126, 2232, 1769, 315, 2182, 478, 433, 380, 58, 1119, 71, 100, 16, 175, 43, 3467, 146, 439, 79, 90, 2310, 377, 184, 353, 963, 1435, 18, 21, 51, 1466, 105, 71, 68, 27, 115, 334, 497, 166, 83, 278, 175, 139, 93, 77, 93, 59, 213, 100, 1038, 411, 495, 290, 279, 201, 182, 46, 257, 476, 33, 212, 263, 1473, 90, 33, 202, 772, 68, 490, 103, 152, 534, 136, 26, 101, 1129, 704, 1733, 104, 279, 482, 316, 82, 232, 361, 330, 162, 16, 336, 171, 2490, 14, 449, 24, 41, 2507, 196, 4, 771, 357, 111, 10, 370, 3087, 238, 140, 1906, 1379, 146, 1255, 116, 25, 331, 20, 130, 57, 308, 161, 64, 259, 475, 82, 51, 363, 221, 123, 424, 161, 191, 243, 82, 818, 306, 274, 1273, 2366, 340, 77, 544, 2445, 545, 337, 405, 32, 302, 114, 13, 134, 81, 59, 423, 392, 78, 118, 209, 398, 282, 163, 56, 156, 82, 465, 1318, 470, 795, 168, 271, 247, 730, 336, 401, 251, 267, 1259, 132, 2256, 84, 253, 160, 115, 384, 49, 72, 434, 17, 134, 133, 128, 209, 19, 262, 220, 259, 712, 155, 99, 31, 720, 3, 237, 62, 42, 1345, 453, 186, 195, 751, 202, 177, 49, 1591, 2409, 298, 4, 50, 346, 311, 13, 21, 39, 903, 146, 262, 147, 138, 30, 312, 45, 1199, 244, 1055, 2862, 1228, 440, 9, 236, 39, 18, 216, 396, 98, 1654, 32, 172, 1, 3126, 88, 495, 81, 1745, 284, 349, 70, 3072, 214, 131, 495, 1718, 558, 74, 35, 126, 125, 240, 59, 333, 826, 107, 241, 267, 431, 118, 26, 520, 388, 642, 118, 27, 119, 121, 32, 54, 224, 807, 360, 389, 1440, 233, 80, 171, 236, 43, 3133, 69, 1500, 137, 206, 149, 91, 236, 222, 1926, 1738, 447, 34, 276, 387, 457, 2558, 135, 410, 97, 331, 1815, 13, 302, 228, 15, 176, 54, 773, 2167, 158, 166, 167, 438, 78, 63, 2345, 24, 74, 364, 1047, 426, 178, 6, 216, 85, 507, 1594, 189, 179, 439, 47, 65, 371, 44, 130, 1062, 12, 795, 527, 745, 15, 17, 158, 208, 1001, 223, 922, 250, 23, 1477, 366, 347, 258, 819, 307, 169, 418, 312, 119, 22, 24, 42, 55, 803, 127, 190, 208, 7, 488, 427, 1173, 212, 32, 63, 255, 120, 71, 93, 130, 720, 143, 72, 2043, 204, 51, 1202, 1436, 40, 797, 699, 2823, 181, 357, 478, 407, 83, 186, 322, 122, 111, 5, 661, 27, 2500, 108, 35, 492, 201, 139, 508, 1141, 2216, 37, 321, 54, 1807, 467, 246, 1195, 57, 133, 1696, 125, 104, 220, 279, 1363, 564, 86, 171, 30, 166, 1521, 842, 1390, 420, 439, 197, 148, 322, 27, 1085, 1708, 294, 353, 194, 225, 812, 220, 95, 10, 408, 61, 25, 205, 2584, 248, 71, 6, 53, 429, 5, 214, 267, 67, 63, 90, 379, 184, 163, 28, 1357, 337, 339, 306, 360, 2898, 1620, 26, 180, 67, 193, 238, 152, 366, 190, 208, 169, 211, 200, 191, 960, 236, 204, 479, 174, 595, 86, 256, 15, 69, 441, 274, 489, 3194, 22, 1070, 11, 87, 811, 647, 213, 2751, 310, 854, 2167, 438, 1327, 59, 130, 173, 138, 140, 243, 7, 301, 205, 103, 293, 283, 89, 325, 339, 447, 268, 154, 485, 6, 281, 1009, 80, 1139, 118, 873, 47, 59, 339, 76, 132, 315, 25, 57, 1153, 284, 49, 29, 274, 2, 133, 381, 316, 22, 1175, 1189, 74, 23, 126, 42, 1, 24, 365, 1260, 137, 464, 638, 336, 449, 452, 231, 121, 259, 1421, 72, 191, 133, 34, 15, 49, 1176, 447, 24, 50, 333, 1046, 175, 2344, 193, 225, 102, 85, 395, 299, 533, 124, 62, 169, 450, 899, 11, 138, 200, 251, 42, 229, 61, 194, 2177, 16, 344, 226, 114, 465, 2723, 65, 16, 20, 350, 93, 196, 197, 1639, 241, 23, 57, 1700, 2291, 65, 279, 234, 307, 95, 75, 10, 106, 302, 443, 108, 105, 1337, 800, 18, 220, 288, 150, 76, 40, 151, 78, 475, 74, 113, 196, 150, 73, 117, 1039, 325, 2, 707, 176, 69, 20, 306, 175, 48, 249, 377, 44, 227, 597, 32, 150, 3, 247, 413, 1488, 192, 271, 335, 1004, 258, 66, 32, 24, 302, 11, 30, 321, 252, 84, 329, 171, 418, 384, 171, 297, 2787, 2109, 853, 84, 11, 417, 429, 86, 40, 2484, 36, 103, 40, 2833, 259, 38, 110, 680, 417, 191, 329, 137, 193, 2, 2942, 289, 145, 444, 460, 196, 1015, 95, 327, 445, 259, 440, 236, 79, 125, 28, 37, 141, 37, 9, 200, 40, 7, 12, 95, 142, 319, 321, 193, 303, 331, 198, 220, 97, 321, 364, 468, 18, 241, 1286, 59, 2066, 226, 391, 2581, 580, 334, 267, 68, 1032, 73, 70, 257, 151, 81, 170, 261, 391, 48, 82, 514, 15, 46, 305, 965, 213, 75, 403, 233, 373, 1352, 220, 262, 386, 399, 341, 82, 276, 112, 245, 116, 168, 246, 1612, 160, 88, 157, 199, 73, 79, 3, 18, 246, 39, 1034, 104, 1664, 114, 336, 316, 139, 93, 50, 145, 55, 30, 180, 139, 201, 71, 263, 1378, 176, 269, 39, 145, 272, 111, 499, 49, 196, 530, 743, 308, 42, 1157, 349, 121, 258, 64, 46, 433, 31, 573, 28, 300, 82, 1881, 2689, 160, 53, 109, 325, 50, 286, 123, 142, 36, 15, 28, 2022, 35, 912, 112, 368, 393, 441, 12, 130, 19, 108, 69, 1311, 74, 921, 408, 68, 860, 249, 120, 50, 180, 190, 252, 733, 315, 127, 7, 297, 116, 157, 179, 41, 148, 110, 329, 400, 86, 63, 192, 301, 175, 31, 242, 30, 3, 123, 189, 44, 115, 174, 39, 488, 155, 494, 769, 307, 101, 3, 3129, 26, 403, 66, 1212, 35, 1711, 444, 1824, 231, 20, 188, 215, 84, 2247, 95, 1347, 43, 2646, 79, 2255, 2533, 864, 787, 85, 290, 39, 183, 149, 1997, 187, 484, 419, 986, 3577, 421, 437, 175, 117, 96, 41, 234, 241, 485, 646, 447, 5, 174, 167, 129, 250, 355, 102, 8, 75, 29, 2246, 1574, 2318, 53, 23, 19, 173, 67, 58, 342, 297, 389, 44, 195, 335, 381, 163, 412, 348, 235, 877, 231, 929, 406, 6, 371, 282, 121, 39, 1208, 86, 105, 336, 46, 186, 1827, 390, 181, 145, 22, 240, 419, 89, 178, 327, 136, 2943, 26, 184, 189, 48, 792, 93, 207, 119, 392, 1605, 96, 62, 45, 367, 589, 274, 45, 1344, 36, 762, 214, 252, 198, 261, 67, 198, 1942, 50, 1403, 105, 138, 2309, 933, 320, 295, 101, 1147, 74, 361, 325, 301, 161, 491, 470, 447, 1767, 144, 305, 1350, 128, 430, 164, 243, 465, 451, 221, 128, 233, 144, 294, 11, 19, 111, 253, 77, 198, 196, 248, 395, 257, 58, 332, 166, 129, 256, 53, 93, 185, 261, 319, 1780, 97, 130, 13, 1430, 131, 133, 139, 282, 502, 302, 947, 256, 143, 55, 56, 3, 1457, 133, 162, 512, 170, 29, 6, 118, 556, 151, 426, 4, 76, 83, 116, 58, 55, 724, 64, 186, 323, 1656, 619, 68, 195, 3178, 80, 36, 420, 31, 227, 173, 368, 122, 174, 168, 49, 108, 60, 239, 258, 280, 8, 1688, 177, 208, 308, 143, 1126, 494, 412, 232, 739, 46, 155, 129, 57, 198, 254, 223, 1442, 111, 258, 230, 228, 255, 269, 404, 236, 1227, 1, 35, 1372, 207, 271, 257, 362, 1697, 16, 311, 384, 26, 245, 340, 611, 81, 659, 210, 67, 398, 107, 825, 178, 116, 346, 65, 151, 463, 485, 214, 90, 51, 47, 233, 48, 30, 33, 485, 451, 396, 244, 423, 351, 85, 226, 56, 231, 75, 47, 1959, 291, 3, 363, 103, 155, 87, 424, 1414, 400, 336, 345, 493, 203, 109, 444, 1456, 5, 2138, 1737, 252, 189, 278, 348, 64, 2736, 823, 171, 409, 204, 1371, 579, 1707, 214, 154, 38, 150, 124, 113, 132, 239, 86, 242, 61, 254, 516, 1464, 393, 242, 167, 18, 177, 221, 62, 302, 1175, 347, 1953, 94, 351, 312, 648, 815, 118, 170, 50, 61, 295, 1386, 210, 313, 149, 71, 238, 95, 1210, 531, 65, 34, 111, 1076, 94, 217, 49, 66, 44, 25, 150, 11, 2487, 26, 43, 283, 177, 155, 83, 1022, 149, 266, 158, 134, 898, 94, 205, 700, 172, 1897, 247, 168, 480, 338, 425, 260, 55, 235, 29, 33, 28, 95, 1260, 360, 529, 98, 2793, 326, 176, 290, 478, 387, 93, 435, 296, 474, 481, 38, 1018, 116, 794, 1538, 281, 1078, 274, 357, 205, 180, 383, 27, 266, 264, 67, 8, 62, 30, 58, 109, 297, 263, 1013, 16, 198, 33, 343, 674, 212, 60, 500, 2263, 129, 284, 480, 172, 52, 88, 148, 442, 31, 1561, 682, 210, 320, 210, 1042, 398, 189, 138, 375, 76, 183, 165, 239, 74, 407, 237, 484, 473, 468, 38, 294, 1412, 325, 6, 191, 238, 133, 1218, 25, 643, 328, 182, 451, 854, 169, 209, 217, 337, 2360, 1527, 197, 298, 490, 187, 27, 80, 528, 410, 49, 126, 144, 496, 129, 1341, 482, 2042, 210, 187, 788, 174, 192, 380, 472, 462, 1414, 162, 127, 237, 140, 146, 153, 551, 235, 574, 142, 2004, 1579, 147, 1891, 1034, 372, 102, 15, 58, 341, 228, 108, 91, 10, 1814, 400, 81, 124, 72, 125, 442, 391, 261, 1193, 50, 79, 48, 28, 171, 103, 828, 161, 164, 513, 147, 154, 196, 888, 17, 54, 441, 369, 3, 1424, 102, 1683, 468, 1221, 185, 14, 55, 159, 90, 122, 323, 286, 263, 15, 253, 110, 123, 2489, 109, 346, 363, 89, 6, 126, 75, 21, 28, 443, 172, 293, 294, 299, 1787, 94, 177, 94, 377, 161, 64, 104, 1631, 225, 12, 1205, 1454, 997, 229, 1972, 35, 258, 339, 178, 81, 334, 46, 345, 283, 165, 39, 339, 90, 61, 958, 44, 97, 232, 149, 349, 360, 598, 193, 53, 313, 5, 51, 201, 277, 55, 250, 268, 399, 264, 1305, 116, 497, 67, 374, 56, 464, 502, 25, 325, 745, 445, 11, 298, 1089, 1126, 2482, 3187, 448, 253, 344, 470, 51, 104, 439, 89, 38, 32, 2004, 271, 183, 29, 846, 64, 120, 316, 124, 45, 378, 119, 51, 121, 120, 791, 12, 1165, 376, 214, 1105, 77, 310, 34, 63, 207, 54, 2, 481, 247, 94, 1841, 2890, 349, 24, 2398, 2665, 56, 8, 825, 303, 403, 234, 261, 1735, 152, 463, 87, 32, 870, 115, 347, 44, 4, 258, 134, 110, 118, 483, 135, 48, 227, 105, 289, 171, 69, 93, 115, 2837, 618, 402, 230, 186, 27, 395, 45, 287, 120, 474, 326, 198, 420, 185, 136, 1402, 194, 1048, 245, 269, 127, 169, 156, 657, 44, 393, 799, 84, 1081, 9, 898, 327, 317, 1089, 340, 362, 214, 153, 246, 2124, 437, 69, 822, 59, 200, 323, 189, 122, 215, 419, 44, 114, 77, 361, 44, 101, 798, 36, 222, 259, 2254, 25, 380, 2687, 899, 5, 31, 175, 259, 60, 344, 148, 140, 190, 45, 2476, 375, 188, 526, 68, 96, 151, 143, 22, 63, 112, 96, 273, 9, 107, 160, 2366, 301, 220, 423, 1803, 3, 352, 1418, 1703, 31, 230, 6, 348, 246, 9, 72, 105, 46, 67, 68, 152, 300, 362, 1502, 253, 753, 39, 379, 223, 2454, 264, 1999, 350, 145, 324, 195, 92, 439, 337, 53, 121, 187, 117, 1006, 54, 280, 276, 454, 26, 416, 1634, 32, 1288, 20, 149, 377, 255, 131, 434, 1554, 75, 411, 489, 258, 69, 84, 3596, 211, 231, 91, 200, 238, 62, 266, 919, 413, 154, 97, 453, 27, 1439, 341, 218, 338, 123, 240, 405, 323, 330, 327, 123, 162, 411, 240, 217, 337, 146, 358, 53, 97, 575, 233, 253, 221, 437, 327, 2114, 3, 469, 1395, 3251, 13, 33, 162, 3013, 2132, 1870, 122, 836, 40, 60, 24, 477, 292, 326, 9, 44, 186, 352, 25, 284, 593, 1085, 201, 34, 1050, 297, 460, 288, 453, 179, 900, 128, 221, 117, 139, 204, 249, 413, 1640, 335, 421, 76, 122, 1417, 200, 534, 19, 135, 101, 426, 223, 746, 1094, 490, 177, 890, 240, 664, 58, 12, 172, 270, 113, 81, 13, 1044, 2216, 78, 294, 155, 17, 167, 288, 1757, 2, 39, 1238, 498, 208, 1221, 390, 288, 193, 98, 178, 42, 259, 148, 122, 28, 10, 231, 213, 11, 29, 58, 29, 1997, 407, 225, 265, 236, 189, 57, 191, 82, 342, 22, 1390, 143, 2321, 47, 60, 7, 14, 30, 102, 215, 5, 204, 85, 265, 31, 223, 2316, 153, 62, 347, 1584, 107, 98, 185, 174, 452, 1784, 181, 1081, 952, 705, 82, 444, 342, 11, 114, 40, 367, 1954, 7, 192, 164, 33, 116, 209, 62, 246, 384, 1621, 500, 303, 170, 156, 863, 26, 1264, 189, 334, 304, 422, 294, 440, 1343, 57, 104, 156, 102, 2620, 106, 323, 377, 1592, 1675, 460, 30, 172, 110, 80, 36, 291, 10, 391, 51, 160, 227, 81, 2244, 271, 778, 41, 757, 29, 118, 91, 140, 21, 46, 442, 355, 27, 35, 1684, 100, 199, 2284, 88, 209, 101, 125, 140, 163, 93, 913, 213, 180, 62, 375, 156, 92, 205, 137, 1335, 376, 125, 32, 103, 310, 230, 29, 194, 4, 299, 256, 147, 36, 431, 371, 283, 22, 7, 385, 18, 90, 207, 112, 71, 599, 24, 1103, 445, 2, 413, 17, 12, 60, 1, 1250, 157, 487, 1714, 713, 148, 187, 148, 196, 432, 979, 332, 108, 295, 108, 104, 93, 1574, 10, 496, 107, 53, 5, 499, 321, 48, 670, 802, 156, 1832, 14, 96, 78, 410, 85, 1417, 2657, 280, 245, 284, 148, 189, 2, 52, 54, 384, 127, 1037, 140, 119, 73, 410, 1690, 322, 148, 396, 1988, 248, 4, 264, 375, 98, 153, 283, 345, 8, 402, 879, 159, 3552, 283, 26, 186, 295, 92, 110, 453, 361, 107, 1937, 202, 1653, 314, 363, 14, 419, 271, 1000, 558, 86, 23, 1, 195, 878, 421, 2020, 46, 73, 228, 400, 68, 389, 34, 442, 273, 337, 1373, 408, 238, 2511, 127, 440, 521, 105, 40, 171, 1125, 257, 244, 410, 37, 160, 52, 359, 1460, 40, 400, 3423, 408, 357, 473, 230, 141, 415, 237, 55, 293, 34, 305, 346, 205, 155, 642, 294, 173, 166, 306, 25, 358, 251, 381, 46, 34, 452, 179, 1302, 118, 247, 2665, 575, 108, 804, 788, 333, 154, 283, 327, 1528, 3318, 87, 431, 173, 3183, 128, 2880, 457, 63, 408, 347, 891, 376, 306, 41, 493, 460, 588, 212, 2597, 2526, 846, 1253, 975, 1391, 2911, 1416, 714, 114, 149, 182, 155, 1248, 330, 343, 952, 3005, 402, 1128, 314, 123, 973, 1968, 2265, 358, 192, 358, 159, 2557, 465, 1863, 427, 3469, 443, 219, 105, 843, 365, 523, 553, 2143, 362, 496, 1334, 412, 2254, 1135, 1523, 448, 1076, 971, 148, 1640, 858, 2303, 318, 475, 192, 310, 1771, 501, 206, 1153, 470, 367, 467, 1621, 337, 874, 200, 125, 2952, 188, 411, 1887, 367, 2146, 256, 548, 245, 2576, 1794, 385, 980, 2757, 1931, 1531, 459, 1108, 1425, 617, 400, 757, 255, 305, 158, 2370, 328, 3181, 1138, 1901, 505, 1267, 281, 386, 1177, 192, 1165, 2945, 1327, 345, 1234, 402, 388, 2009, 2119, 380, 1965, 485, 3092, 1122, 257, 731, 989, 194, 2365, 459, 1265, 324, 1077, 412, 643, 2877, 1834, 307, 397, 372, 2087, 318, 2276, 362, 2710, 304, 436, 308, 1632, 307, 2019, 490, 313, 442, 911, 166, 358, 418, 199, 1819, 105, 1024, 617, 711, 269, 1785, 2107, 1691, 138, 2662, 1212, 2010, 388, 428, 344, 1709, 2451, 1135, 280, 423, 1458, 977, 328, 428, 805, 2078, 2848, 434, 602, 2234, 2798, 389, 496, 353, 413, 468, 240, 3365, 264, 625, 2641, 2643, 257, 248, 1143, 732, 427, 498, 2988, 2462, 215, 1525, 687, 1814, 188, 168, 750, 3797, 81, 2736, 995, 1491, 2140, 2951, 3726, 500, 1379, 315, 459, 1955, 331, 244, 96, 1411, 557, 2204, 151, 1736, 269, 1766, 3451, 1205, 1783, 1897, 1453, 567, 781, 287, 196, 65, 141, 2742, 360, 372, 450, 1978, 1817, 414, 299, 1791, 215, 270, 913, 903, 184, 83, 762, 2185, 120, 1780, 249, 362, 3840, 279, 2897, 240, 2032, 3508, 2181, 454, 2528, 1872, 261, 2271, 161, 262, 1271, 2407, 206, 735, 718, 289, 456, 482, 284, 1087, 148, 227, 1730, 1868, 1982, 3057, 2713, 2632, 2203, 250, 116, 563, 251, 1925, 3121, 1585, 1865, 1873, 431, 199, 3163, 242, 1625, 304, 2137, 922, 1213, 3547, 2251, 2934, 487, 105, 3311, 1567, 1545, 270, 358, 269, 1010, 2878, 378, 487, 2105, 1939, 284, 1790, 89, 212, 1434, 927, 103, 1910, 185, 3422, 1822, 280, 439, 463, 1280, 434, 2316, 3724, 1581, 2947, 1095, 492, 1880, 959, 232, 278, 3335, 1960, 223, 304, 140, 920, 127, 121, 386, 1880, 499, 851, 253, 1945, 629, 981, 372, 292, 591, 127, 924, 619, 2070, 38, 213, 459, 1693, 73, 37, 287, 2374, 359, 1591, 238, 778, 894, 186, 156, 351, 23, 460, 486, 3248, 539, 242, 174, 1235, 91, 483, 38, 432, 2510, 601, 2825, 622, 310, 605, 1975, 344, 17, 272, 162, 774, 153, 224, 385, 176, 511, 751, 1099, 1024, 905, 36, 1062, 1083, 235, 333, 1154, 227, 125, 186, 376, 392, 1616, 233, 573, 3513, 678, 703, 397, 494, 2998, 2252, 1846, 155, 43, 1274, 3925, 430, 256, 474, 1587, 2865, 620, 1459, 396, 281, 298, 2733, 459, 309, 294, 302, 2307, 973, 2012, 1241, 2158, 290, 836, 338, 2082, 223, 1450, 324, 329, 1181, 45, 299, 267, 3075, 1291, 1252, 242, 1143, 1861, 445, 986, 2767, 2555, 3371, 280, 1388, 374, 1830, 458, 932, 693, 158, 438, 178, 487, 247, 173, 486, 3590, 124, 181, 2368, 379, 694, 474, 977, 651, 1082, 466, 366, 815, 465, 702, 359, 403, 170, 2127, 371, 2281, 1230, 1112, 438, 569, 555, 194, 1019, 2190, 2566, 282, 352, 670, 951, 295, 491, 1854, 673, 2132, 2787, 224, 1261, 1427, 3572, 388, 491, 493, 1863, 250, 137, 264, 349, 3137, 417, 496, 434, 2034, 243, 1099, 309, 137, 278, 782, 1659, 1858, 182, 923, 21, 208, 364, 1924, 265, 334, 466, 880, 3439, 315, 290, 2259, 3364, 358, 440, 264, 392, 1588, 730, 3473, 144, 1694, 313, 3738, 3312, 113, 3192, 2694, 395, 2196, 2245, 2222, 329, 2413, 397, 177, 465, 3080, 158, 1570, 334, 688, 216, 1434, 78, 2847, 208, 2021, 384, 450, 709, 262, 3920, 292, 354, 1485, 2334, 373, 2210, 1572, 1282, 592, 2098, 676, 199, 89, 2271, 492, 2085, 2172, 384, 364, 459, 1184, 499, 929, 47, 305, 466, 3165, 3121, 2059, 303, 1147, 979, 3144, 3190, 2067, 169, 310, 401, 916, 354, 1963, 3143, 477, 719, 283, 152, 640, 1760, 422, 296, 3069, 1104, 141, 369, 1795, 1521, 233, 757, 1858, 122, 3882, 476, 1217, 2217, 315, 2564, 126, 510, 448, 954, 570, 1338, 571, 457, 83, 217, 1973, 489, 1829, 2223, 56, 438, 544, 3491, 1080, 1170, 2056, 180, 3206, 1933, 332, 898, 886, 2384, 320, 1608, 334, 232, 543, 566, 261, 2759, 817, 3324, 422, 170, 983, 158, 392, 275, 948, 2686, 1726, 692, 844, 2897, 279, 178, 461, 223, 222, 262, 381, 1529, 928, 1801, 1447, 354, 1041, 86, 2596, 2436, 525, 713, 260, 1404, 219, 1102, 203, 393, 907, 313, 330, 490, 2180, 2828, 1279, 666, 196, 1547, 2442, 3565, 308, 2817, 157, 1156, 2821, 220, 232, 500, 313, 1036, 636, 449, 1201, 469, 389, 2274, 2048, 463, 3091, 3573, 1107, 1618, 993, 3098, 225, 183, 300, 931, 665, 156, 661, 537, 268, 1512, 2705, 463, 312, 239, 240, 992, 1367, 2872, 1984, 4015, 284, 3403, 909, 457, 2342, 1792, 2954, 443, 112, 595, 716, 621, 139, 222, 967, 303, 1297, 969, 766, 127, 1152, 89, 1584, 217, 1545, 374, 572, 2780, 3024, 216, 135, 405, 2404, 2637, 440, 519, 107, 143, 407, 2223, 458, 492, 528, 145, 480, 2834, 206, 368, 635, 1485, 400, 671, 167, 293, 976, 239, 1096, 132, 2675, 462, 213, 883, 2719, 2408, 518, 1650, 203, 1442, 1595, 2290, 2091, 1656, 375, 1449, 2208, 420, 244, 2060, 480, 808, 2707, 103, 2425, 344, 309, 1799, 2296, 375, 1972, 369, 161, 88, 1635, 2008, 1670, 865, 732, 396, 1000, 1269, 185, 1603, 471, 2873, 209, 2593, 473, 325, 2959, 188, 227, 168, 289, 424, 1824, 857, 327, 456, 180, 1304, 1023, 228, 402, 211, 46, 1645, 513, 2025, 149, 314, 445, 3019, 145, 243, 394, 1834, 2150, 1235, 3398, 357, 2364, 3430, 738, 86, 2850, 1721, 266, 1537, 1462, 792, 618, 1776, 260, 637, 188, 144, 87, 2643, 2248, 314, 868, 437, 585, 206, 232, 203, 159, 1602, 339, 89, 2116, 941, 380, 230, 2846, 521, 2336, 363, 492, 2638, 891, 405, 214, 733, 856, 1869, 417, 198, 3132, 1876, 335, 1700, 499, 1220, 439, 160, 841, 3529, 300, 422, 1026, 122, 341, 136, 142, 289, 405, 1460, 434, 446, 493, 1599, 2778, 498, 94, 2765, 164, 54, 4029, 1943, 389, 613, 428, 1348, 2079, 378, 247, 2585, 764, 2644, 2436, 240, 448, 1957, 1948, 2006, 2281, 47, 489, 368, 91, 1752, 160, 174, 1675, 1172, 2322, 2085, 98, 215, 482, 901, 3542, 1765, 373, 1035, 423, 1044, 409, 1345, 353, 193, 2019, 3035, 3463, 394, 2135, 588, 188, 1240, 1983, 210, 803, 3636, 2311, 99, 66, 250, 1093, 1301, 999, 338, 964, 196, 153, 13, 1501, 910, 1523, 2884, 1145, 1672, 420, 498, 1386, 1488, 78, 1555, 1162, 3026, 3085, 368, 142, 229, 17, 816, 1680, 1947, 91, 756, 1768, 1116, 210, 437, 3114, 70, 3659, 602, 2218, 63, 1465, 374, 2324, 468, 151, 249, 2543, 468, 467, 2523, 36, 61, 211, 392, 611, 3077, 2006, 464, 3367, 383, 526, 471, 268, 335, 229, 262, 460, 2702, 937, 237, 1860, 2062, 3231, 2949, 2913, 114, 3156, 332, 1847, 222, 353, 355, 990, 235, 1483, 1792, 1843, 480, 582, 3258, 98, 159, 253, 1410, 761, 370, 852, 62, 995, 128, 1587, 170, 507, 1731, 1173, 2576, 878, 1826, 2385, 1166, 228, 164, 442, 217, 151, 428, 674, 340, 2014, 201, 2006, 472, 222, 162, 477, 3163, 489, 23, 130, 969, 1188, 1832, 338, 1758, 1933, 1207, 932, 113, 1760, 133, 207, 411, 304, 753, 205, 462, 2087, 3483, 87, 1595, 151, 358, 2276, 1431, 3447, 2025, 361, 226, 98, 375, 942, 173, 392, 243, 387, 988, 2574, 790, 1160, 1097, 267, 942, 2351, 177, 204, 272, 460, 1103, 1075, 376, 483, 388, 1365, 1634, 1257, 354, 510, 3017, 2323, 142, 799, 338, 479, 3114, 1547, 204, 219, 387, 392, 371, 416, 3772, 1746, 2150, 2920, 397, 1554, 2064, 2972, 1856, 3120, 190, 281, 444, 493, 167, 321, 263, 1243, 414, 236, 448, 485, 2412, 2591, 342, 780, 793, 437, 1351, 104, 272, 1152, 290, 1952, 570, 1867, 2484, 3285, 2860, 1213, 349, 436, 478, 221, 358, 458, 1606, 3655, 2835, 1657, 158, 638, 242, 2696, 313, 3098, 1581, 3270, 263, 3014, 399, 2708, 285, 2385, 4030, 2487, 1224, 2568, 265, 211, 1254, 465, 1996, 782, 400, 442, 289, 274, 2253, 3381, 709, 1398, 1650, 1016, 556, 2320, 196, 1481, 1440, 561, 1261, 67, 275, 304, 590, 1952, 66, 1362, 2545, 1442, 686, 2531, 2756, 324, 120, 1272, 2461, 2533, 503, 2319, 3249, 398, 1845, 1452, 1666, 1596, 1797, 323, 371, 1629, 77, 432, 461, 453, 331, 334, 164, 473, 3457, 97, 3416, 530, 1890, 241, 2376, 156, 1358, 2701, 2111, 397, 3357, 3569, 445, 278, 322, 450, 201, 459, 2806, 136, 80, 3283, 287, 125, 1036, 2876, 1226, 214, 418, 2128, 847, 122, 2352, 442, 2572, 340, 394, 742, 453, 1737, 264, 216, 1987, 534, 2619, 271, 316, 446, 3242, 1043, 2075, 23, 1210, 111, 933, 3054, 1139, 2613, 2010, 251, 1354, 364, 237, 839, 336, 3130, 990, 388, 178, 1284, 404, 2268, 495, 3545, 402, 1641, 236, 233, 1254, 312, 3086, 2313, 345, 183, 2532, 934, 775, 2811, 1936, 884, 2285, 1197, 1024, 277, 135, 292, 245, 350, 410, 385, 729, 3236, 649, 1084, 155, 925, 667, 201, 84, 1711, 1663, 364, 1539, 209, 3401, 172, 2394, 330, 1056, 673, 30, 126, 259, 129, 504, 1393, 2520, 1349, 3202, 391, 267, 1957, 43, 342, 366, 505, 116, 1035, 2148, 213, 1033, 580, 3711, 2582, 281, 1544, 2663, 3030, 328, 239, 206, 233, 2341, 423, 232, 998, 121, 2337, 417, 2358, 1521, 294, 78, 3158, 27, 152, 2507, 468, 3138, 670, 785, 3337, 560, 2942, 890, 1808, 872, 2273, 356, 1028, 80, 66, 359, 470, 426, 1306, 407, 3472, 409, 1417, 2022, 346, 974, 1151, 1844, 1710, 3194, 954, 176, 152, 1984, 1067, 967, 332, 2462, 3460, 2305, 2308, 561, 2039, 2691, 242, 1908, 243, 993, 3125, 3693, 765, 518, 1802, 395, 1923, 767, 488, 30, 377, 391, 1006, 1853, 1226, 1754, 195, 1060, 203, 864, 3095, 1358, 759, 251, 1005, 3454, 1155, 338, 2315, 2582, 3102, 405, 1804, 1215, 111, 1441, 3296, 273, 3979, 2953, 392, 2554, 1607, 457, 3149, 75, 1907, 3309, 137, 83, 2356, 703, 3618, 239, 1612, 94, 320, 2955, 2126, 639, 761, 1178, 1455, 233, 113, 95, 1786, 425, 817, 151, 1267, 218, 419, 1045, 406, 137, 2357, 1137, 475, 445, 314, 1528, 129, 473, 1054, 1883, 476, 1691, 1556, 408, 1205, 202, 100, 2502, 679, 59, 3766, 307, 1636, 289, 633, 211, 3658, 538, 979, 330, 304, 1074, 195, 356, 1381, 2525, 2225, 1877, 218, 1017, 532, 2721, 135, 694, 1779, 347, 331, 333, 383, 190, 3340, 1245, 1725, 531, 451, 3062, 2862, 2368, 1143, 397, 364, 324, 408, 3358, 1037, 144, 2537, 1513, 438, 1736, 218, 104, 346, 1058, 180, 224, 614, 395, 241, 320, 616, 373, 96, 1719, 297, 303, 2009, 223, 199, 2496, 2306, 2602, 624, 1527, 2974, 2393, 1141, 604, 1177, 2548, 1954, 387, 480, 136, 2138, 984, 366, 194, 944, 853, 1169, 3202, 191, 458, 2520, 404, 1875, 1180, 377, 249, 211, 809, 1706, 2369, 1778, 1711, 345, 1645, 1192, 343, 770, 2098, 1904, 2190, 213, 2746, 307, 291, 444, 199, 474, 187, 247, 2061, 3022, 258, 411, 292, 244, 25, 1541, 273, 1561, 1469, 397, 522, 138, 848, 2232, 254, 385, 1526, 2508, 635, 2102, 337, 1447, 1744, 1400, 421, 1616, 2580, 335, 42, 81, 1292, 356, 2005, 229, 419, 1182, 461, 1810, 362, 247, 1868, 327, 445, 1745, 272, 1149, 2940, 1614, 1954, 234, 415, 160, 454, 606, 2666, 343, 3395, 156, 445, 43, 3361, 322, 1466, 801, 2629, 1629, 716, 146, 3444, 3040, 141, 1741, 1901, 2090, 506, 820, 137, 189, 779, 68, 843, 844, 467, 388, 1128, 1190, 789, 1781, 911, 439, 821, 123, 1554, 247, 454, 233, 340, 405, 3421, 669, 1457, 1876, 249, 244, 389, 1194, 243, 3552, 449, 3222, 185, 2027, 3257, 154, 1003, 1813, 1950, 2249, 1198, 229, 312, 1669, 1926, 2869, 199, 465, 1731, 655, 2684, 228, 420, 385, 26, 2033, 1519, 1063, 2891, 165, 417, 1053, 2754, 406, 246, 3252, 150, 1699, 2038, 2990, 549, 461, 2149, 1517, 158, 644, 1966, 419, 182, 3799, 52, 657, 1582, 430, 490, 1269, 673, 2763, 671, 2597, 355, 500, 172, 461, 1692, 320, 1011, 307, 311, 1717, 520, 370, 1490, 1998, 344, 477, 2930, 400, 226, 1342, 415, 332, 331, 2249, 499, 1354, 313, 1932, 1171, 1446, 2524, 385, 67, 163, 466, 318, 134, 218, 350, 1583, 432, 129, 2752, 388, 889, 1283, 2422, 120, 1077, 3458, 3183, 430, 456, 664, 1589, 295, 487, 804, 162, 569, 313, 904, 156, 3105, 2312, 462, 1159, 1730, 2503, 1470, 1295, 3540, 114, 500, 99, 2029, 1684, 463, 2909, 113, 319, 1993, 310, 370, 466, 296, 3518, 2254, 226, 297, 161, 351, 1549, 1013, 2296, 1311, 460, 485, 265, 327, 28, 1611, 2831, 425, 433, 1374, 322, 1039, 2147, 1565, 326, 851, 276, 309, 473, 2732, 422, 909, 22, 217, 488, 111, 369, 289, 79, 254, 334, 705, 1676, 1019, 47, 2859, 402, 377, 2824, 606, 3935, 2603, 92, 319, 269, 408, 373, 218, 911, 1631, 309, 1287, 421, 1538, 939, 3797, 376, 1158, 733, 840, 1501, 151, 1845, 275, 1941, 1770, 343, 657, 3545, 108, 1379, 398, 281, 1504, 983, 504, 3228, 351, 2151, 3223, 2013, 1914, 553, 411, 215, 323, 454, 831, 36, 422, 1613, 251, 953, 387, 3214, 479, 2034, 476, 2289, 379, 498, 128, 2923, 1654, 315, 1855, 198, 1890, 238, 394, 1974, 209, 418, 1248, 1890, 1423, 3351, 869, 557, 406, 355, 130, 220, 486, 325, 2435, 1291, 1756, 216, 75, 380, 459, 23, 394, 875, 3291, 331, 1517, 3120, 562, 3534, 1212, 994, 369, 293, 3086, 188, 915, 948, 62, 340, 71, 2635, 1543, 177, 1731, 438, 2190, 317, 2864, 885, 390, 367, 212, 446, 478, 3401, 180, 163, 382, 1182, 1790, 114, 401, 915, 2178, 140, 230, 303, 1770, 2432, 259, 866, 277, 1548, 961, 2964, 1510, 72, 467, 925, 962, 297, 366, 2135, 2116, 296, 1148, 2722, 2346, 131, 1539, 457, 1649, 2870, 268, 793, 165, 773, 1203, 188, 320, 1796, 1518, 205, 464, 309, 397, 394, 1515, 692, 497, 1328, 2193, 204, 472, 491, 1182, 1185, 2376, 2214, 491, 2449, 930, 452, 92, 819, 304, 247, 1923, 418, 1857, 1276, 660, 99, 428, 1040, 2592, 431, 2359, 339, 2786, 360, 1247, 1598, 2464, 194, 238, 1960, 195, 39, 1286, 816, 285, 497, 328, 631, 2365, 204, 367, 3280, 3173, 1228, 355, 1550, 2230, 1734, 468, 235, 3793, 80, 371, 234, 2963, 260, 266, 117, 1389, 769, 419, 1586, 195, 1751, 650, 3070, 304, 472, 492, 1609, 252, 2287, 134, 390, 508, 363, 1272, 1722, 278, 917, 167, 2495, 478, 43, 100, 458, 417, 1915, 219, 131, 165, 567, 695, 1303, 535, 547, 517, 710, 814, 1572, 374, 473, 89, 469, 3313, 180, 2562, 240, 1264, 2809, 2746, 1328, 402, 192, 1433, 212, 91, 326, 285, 159, 290, 353, 2569, 168, 365, 3854, 237, 279, 424, 1649, 397, 156, 410, 1741, 636, 1850, 301, 328, 659, 1557, 994, 2901, 577, 206, 267, 144, 239, 327, 1874, 197, 286, 279, 387, 422, 1069, 29, 435, 579, 94, 2384, 203, 2894, 133, 422, 1863, 228, 1117, 74, 359, 455, 130, 682, 155, 1576, 349, 1651, 2213, 2083, 1924, 103, 227, 295, 1215, 3221, 253, 412, 1273, 1382, 1398, 413, 1749, 2790, 199, 2061, 2191, 327, 2648, 150, 1725, 158, 667, 395, 2116, 3432, 177, 298, 173, 759, 1298, 301, 1315, 274, 931, 777, 477, 2803, 292, 1012, 317, 1492, 1499, 2402, 399, 391, 724, 1436, 103, 1683, 328, 1892, 2060, 164, 1220, 299, 893, 353, 289, 838, 566, 1787, 646, 375, 393, 2626, 457, 219, 422, 154, 304, 281, 1678, 1875, 225, 298, 1937, 467, 217, 199, 1370, 447, 287, 314, 298, 114, 481, 455, 1197, 1273, 351, 1324, 2912, 663, 572, 45, 3446, 361, 1717, 91, 3577, 2047, 2835, 1344, 2685, 249, 191, 1167, 736, 585, 3776, 112, 1888, 207, 3050, 164, 3778, 2551, 3749, 1505, 207, 332, 3291, 908, 654, 2651, 301, 1492, 555, 1084, 3959, 441, 3221, 238, 162, 330, 2220, 668, 306, 1590, 2486, 604, 157, 288, 2425, 216, 431, 423, 278, 128, 112, 271, 3112, 2856, 2716, 106, 78, 65, 221, 2729, 2508, 744, 1232, 1950, 95, 421, 368, 389, 1986, 448, 1615, 629, 1893, 1138, 1894, 416, 237, 2264, 351, 134, 414, 3066, 528, 225, 1031, 1749, 214, 3584, 1753, 779, 475, 235, 345, 472, 92, 293, 597, 165, 3288, 277, 786, 433, 704, 3196, 122, 354, 203, 1785, 2430, 314, 108, 74, 433, 2262, 715, 1911, 1408, 2712, 1873, 265, 1444, 462, 1839, 346, 403, 2433, 121, 1646, 141, 1470, 2382, 1490, 409, 361, 359, 1382, 478, 746, 478, 329, 206, 1519, 563, 3402, 3247, 1288, 333, 2408, 677, 456, 467, 498, 796, 1007, 324, 225, 352, 550, 787, 315, 361, 245, 1154, 207, 429, 270, 250, 964, 989, 204, 463, 224, 318, 2420, 1072, 395, 1387, 317, 494, 2265, 1462, 828, 61, 2280, 228, 357, 1741, 385, 1412, 970, 1178, 2886, 1054, 1183, 85, 612, 2600, 185, 260, 1049, 364, 452, 48, 2179, 3127, 275, 1744, 133, 129, 109, 461, 188, 907, 881, 326, 543, 398, 1858, 2004, 1675, 248, 3372, 982, 1190, 948, 2300, 286, 414, 1831, 167, 308, 352, 955, 765, 299, 409, 1627, 1688, 201, 2644, 288, 998, 1320, 427, 2780, 536, 1763, 475, 2460, 386, 2501, 634, 2095, 305, 270, 330, 2783, 568, 330, 428, 400, 425, 2749, 462, 1405, 1551, 379, 472, 1407, 311, 2957, 363, 2878, 3168, 219, 1411, 487, 3590, 260, 1295, 2659, 250, 912, 473, 203, 807, 134, 2306, 194, 230, 1054, 1844, 241, 540, 1743, 296, 941, 272, 132, 313, 304, 117, 40, 960, 452, 718, 461, 452, 440, 113, 386, 91, 492, 632, 209, 3329, 459, 755, 439, 165, 2381, 414, 905, 3756, 622, 1771, 748, 587, 479, 2705, 1125, 3496, 14, 3092, 2157, 1476, 300, 479, 432, 350, 3039, 933, 471, 649, 400, 1893, 3269, 2836, 3634, 1294, 289, 310, 182, 1092, 450, 1913, 110, 398, 1060, 381, 1308, 1534, 2407, 270, 382, 63, 188, 236, 2091, 352, 1333, 415, 2101, 312, 438, 2271, 2717, 2692, 332, 226, 597, 2580, 368, 1720, 256, 405, 1956, 166, 1762, 439, 1272, 1251, 70, 233, 120, 2469, 456, 1109, 125, 341, 1339, 29, 457, 158, 3314, 61, 1866, 3688, 451, 184, 1118, 2117, 282, 2765, 2584, 450, 2370, 102, 481, 3239, 484, 2315, 836, 360, 497, 1917, 1211, 1030, 97, 373, 37, 486, 76, 2924, 3712, 430, 2038, 2383, 3478, 1116, 1828, 1076, 1799, 576, 319, 2294, 1223, 2203, 1152, 228, 1699, 348, 833, 1945, 527, 3297, 1142, 656, 1010, 316, 586, 562, 2118, 477, 185, 74, 293, 344, 362, 127, 382, 469, 2141, 318, 241, 1311, 624, 2982, 2819, 292, 3480, 2710, 161, 475, 940, 350, 231, 3065, 215, 669, 70, 1718, 2334, 484, 378, 1106, 1298, 2166, 202, 245, 647, 166, 461, 363, 621, 140, 785, 966, 2239, 506, 2766, 292, 2373, 1872, 1886, 92, 212, 416, 301, 2298, 356, 3398, 2223, 1639, 1118, 1683, 255, 1705, 2216, 2603, 2706, 2690, 2157, 1095, 635, 1114, 403, 385, 1734, 1130, 273, 402, 166, 2467, 372, 1713, 2419, 3466, 369, 188, 926, 261, 342, 1486, 1271, 783, 1803, 921, 304, 1356, 270, 381, 1979, 591, 1643, 857, 176, 2347, 2444, 1714, 2481, 1254, 1146, 1384, 59, 135, 399, 616, 638, 218, 321, 3153, 650, 218, 248, 80, 212, 1029, 1777, 393, 1303, 1055, 88, 308, 367, 1064, 383, 1320, 3073, 183, 2102, 398, 167, 440, 2928, 368, 431, 2270, 1448, 195, 3146, 312, 2151, 1328, 1775, 425, 225, 1740, 409, 1615, 473, 3262, 1571, 723, 273, 254, 1384, 139, 2558, 286, 1889, 1606, 383, 70, 3212, 87, 174, 1183, 2447, 476, 1018, 1210, 952, 2079, 463, 480, 296, 1126, 272, 109, 2743, 3011, 1140, 349, 2904, 2588, 1467, 250, 2332, 293, 471, 2708, 238, 141, 1382, 1268, 473, 1252, 417, 110, 1192, 1100, 756, 1383, 85, 278, 422, 708, 1697, 1791, 1862, 481, 241, 370, 79, 70, 296, 365, 102, 326, 1739, 695, 500, 3203, 397, 2369, 73, 1238, 90, 1136, 1872, 1866, 1194, 976, 1746, 433, 402, 2001, 1847, 3968, 3243, 1608, 289, 1601, 1484, 190, 483, 1807, 453, 1283, 311, 2227, 1732, 800, 113, 1047, 329, 789, 406, 390, 89, 424, 229, 262, 839, 1146, 820, 295, 1265, 536, 298, 1255, 401, 341, 219, 211, 786, 66, 471, 696, 2126, 199, 1919, 2893, 415, 124, 2701, 3161, 447, 2209, 1083, 1308, 741, 1721, 1903, 3237, 696, 1558, 244, 1975, 1537, 433, 950, 217, 348, 2232, 1306, 164, 139, 1333, 287, 682, 343, 381, 474, 184, 73, 175, 1796, 3039, 1211, 436, 252, 901, 106, 401, 56, 546, 135, 734, 373, 1021, 545, 851, 313, 1940, 310, 1635, 578, 639, 430, 366, 157, 1029, 278, 1375, 2575, 1208, 1484, 339, 2907, 1658, 2049, 2240, 793, 1071, 816, 290, 443, 2525, 476, 339, 908, 1022, 387, 483, 224, 1817, 315, 972, 151, 1172, 232, 1577, 653, 207, 1453, 97, 904, 455, 2386, 139, 1840, 3109, 2948, 134, 2301, 356, 1592, 559, 1461, 539, 152, 469, 632, 3290, 610, 356, 1293, 220, 179, 806, 226, 398, 87, 222, 363, 1188, 64, 401, 2414, 3687, 1661, 1256, 1319, 2742, 326, 1413, 1627, 3199, 330, 297, 121, 365, 823, 437, 858, 374, 332, 469, 190, 276, 372, 1097, 2258, 551, 2046, 130, 2472, 415, 3823, 344, 2851, 1486, 236, 662, 2089, 449, 633, 1340, 132, 2355, 387, 274, 1690, 1623, 758, 2349, 2396, 232, 525, 2667, 65, 1425, 235, 177, 1733, 1541, 300, 3336, 1634, 132, 414, 604, 370, 111, 203, 3705, 242, 251, 1216, 208, 1703, 1655, 666, 3154, 785, 882, 275, 2703, 467, 2296, 461, 470, 2197, 181, 272, 2197, 970, 609, 2996, 210, 2255, 1576, 577, 1070, 1404, 2167, 737, 274, 302, 939, 876, 309, 267, 455, 680, 2932, 119, 1884, 1588, 3776, 239, 56, 322, 3279, 2495, 2103, 239, 2592, 406, 205, 142, 837, 388, 1996, 1204, 1289, 1765, 1393, 396, 493, 817, 1121, 455, 88, 1198, 1825, 2331, 640, 564, 215, 1028, 288, 425, 244, 170, 405, 285, 1148, 2506, 896, 702, 437, 221, 1767, 1470, 3053, 274, 2640, 1290, 1069, 429, 1862, 1161, 735, 380, 1130, 409, 1416, 348, 275, 1793, 1422, 318, 109, 350, 2033, 2471, 89, 340, 1217, 67, 1347, 2652, 1853, 2014, 323, 3003, 1029, 267, 2688, 1869, 322, 1190, 1017, 401, 102, 482, 183, 492, 72, 423, 1244, 405, 426, 312, 116, 159, 3373, 2345, 2581, 450, 355, 917, 1335, 949, 1445, 1653, 91, 1617, 146, 2416, 72, 253, 27, 3231, 47, 351, 268, 39, 229, 1370, 2479, 1429, 275, 3268, 490, 926, 418, 1927, 627, 376, 362, 1779, 1628, 3319, 265, 1270, 3140, 1218, 87, 2074, 1618, 233, 230, 60, 368, 2166, 484, 277, 248, 256, 420, 468, 2871, 1677, 751, 2585, 1556, 361, 428, 503, 1498, 34, 3330, 321, 965, 480, 644, 1200, 1307, 3135, 184, 746, 939, 256, 3486, 465, 1307, 442, 2784, 2562, 470, 142, 833, 237, 176, 136, 1793, 47, 3040, 750, 2396, 963, 1665, 3245, 2159, 908, 308, 3179, 216, 356, 278, 1851, 123, 77, 1339, 383, 218, 1326, 2750, 401, 404, 2857, 173, 417, 132, 170, 336, 386, 162, 1716, 297, 1518, 110, 2867, 1021, 383, 2072, 343, 1528, 887, 900, 73, 332, 962, 439, 295, 450, 169, 474, 262, 205, 894, 520, 2813, 1694, 443, 273, 1028, 2266, 215, 1887, 368, 73, 2504, 69, 1701, 953, 53, 761, 311, 2417, 294, 75, 2025, 399, 1631, 2680, 3327, 748, 495, 219, 1877, 802, 1015, 1477, 829, 316, 231, 304, 309, 3030, 99, 1031, 190, 488, 1258, 1119, 823, 335, 1622, 3113, 285, 2228, 136, 182, 491, 998, 1700, 1579, 3539, 482, 256, 947, 168, 2208, 1706, 1377, 460, 1927, 181, 1175, 267, 333, 1848, 605, 3180, 491, 276, 2054, 2493, 805, 226, 519, 453, 396, 1924, 335, 1981, 85, 708, 1647, 462, 3613, 372, 2156, 309, 438, 466, 130, 493, 762, 697, 1984, 987, 2113, 601, 3210, 180, 479, 1419, 1087, 672, 137, 3237, 83, 1684, 1986, 478, 2111, 153, 1144, 1420, 1337, 314, 2231, 53, 2462, 2202, 371, 3546, 594, 426, 2996, 729, 1529, 1257, 191, 546, 337, 3743, 416, 316, 499, 428, 1285, 192, 2655, 1763, 498, 1538, 3516, 1652, 375, 1759, 302, 222, 2813, 852, 512, 517, 272, 388, 485, 685, 2420, 2021, 1582, 218, 1949, 347, 128, 513, 310, 653, 486, 297, 1269, 344, 2802, 197, 330, 3412, 3035, 2177, 810, 1892, 464, 476, 371, 3678, 3995, 3752, 318, 620, 723, 3699, 241, 2994, 1983, 255, 1357, 446, 1513, 1899, 1324, 429, 1985, 1119, 2185, 690, 3992, 3759, 2409, 1539, 1001, 1980, 3223, 2776, 2465, 1871, 224, 1612, 446, 4093, 466, 349, 970, 3834, 978, 1708, 953, 2438, 2375, 2514, 2918, 1569, 2003, 922, 455, 3703, 614, 3695, 709, 3872, 490, 719, 212, 3416, 487, 2110, 628, 2450, 1508, 861, 3597, 467, 3329, 1155, 1836, 474, 1859, 2174, 1090, 1701, 2581, 3606, 2535, 1660, 469, 374, 2447, 744, 329, 1854, 2309, 401, 1319, 3144, 1808, 1432, 2723, 440, 3668, 223, 431, 3042, 390, 2539, 427, 2403, 283, 3137, 1943, 492, 1237, 3778, 3184, 2480, 1804, 1493, 3472, 2906, 2794, 2675, 578, 2378, 467, 2907, 477, 3355, 1228, 2184, 1468, 1625, 522, 399, 2236, 341, 3911, 3852, 2490, 1986, 2852, 419, 892, 3756, 2212, 909, 2483, 741, 3592, 1330, 1561, 4078, 2529, 441, 3139, 2613, 3310, 591, 1728, 443, 2255, 3454, 3015, 499, 794, 2022, 2436, 2550, 2947, 374, 3464, 463, 1262, 2964, 3149, 1718, 2284, 2656, 385, 1762, 3193, 305, 486, 745, 301, 3014, 1057, 2316, 1125, 1691, 2189, 2950, 3761, 3459, 249, 3052, 3201, 2518, 419, 1186, 2305, 3394, 3138, 2596, 2522, 3314, 2093, 3200, 2385, 1431, 1268, 2469, 3024, 835, 1358, 2465, 2849, 393, 927, 858, 2262, 1253, 273, 3512, 2515, 1816, 2784, 3561, 586, 437, 3961, 1406, 1191, 2211, 3936, 2813, 255, 2299, 3877, 2570, 1961, 245, 2312, 4053, 259, 3640, 1310, 2294, 3670, 3205, 3736, 1381, 3037, 2406, 871, 3261, 396, 269, 134, 2233, 711, 3760, 1506, 2405, 394, 3685, 3860, 3095, 3757, 1915, 1664, 2374, 2412, 1355, 1058, 311, 786, 3829, 758, 403, 500, 2360, 3876, 788, 3068, 3763, 583, 540, 2624, 1795, 210, 254, 1295, 3243, 783, 2341, 322, 378, 3889, 1072, 3109, 365, 2313, 4048, 3330, 628, 3663, 3529, 863, 2397, 471, 376, 3777, 2623, 2351, 1931, 2060, 352, 889, 957, 300, 1428, 387, 359, 2269, 2516, 3216, 3612, 3246, 3349, 2736, 2634, 458, 2309, 467, 3254, 3792, 1705, 2435, 3356, 2199, 293, 3229, 295, 2050, 364, 2505, 1898, 1557, 3747, 3868, 3021, 2230, 428, 3784, 2439, 1971, 1420, 3171, 290, 1455, 3064, 442, 1131, 2208, 3566, 896, 2948, 367, 274, 2449, 1179, 1225, 2677, 2205, 3783, 3589, 1104, 2261, 2137, 1848, 1440, 2380, 4041, 3489, 3986, 3088, 2090, 3557, 2973, 526, 1023, 3524, 3675, 355, 2337, 3118, 2308, 2017, 282, 871, 2654, 594, 1686, 345, 2622, 1057, 2075, 453, 1132, 4054, 1468, 2033, 860, 3078, 1287, 260, 887, 3621, 105, 115, 841, 3420, 656, 2280, 1451, 1001, 1525, 389, 616, 3585, 365, 480, 2121, 3391, 1113, 2530, 257, 1962, 431, 849, 69, 2330, 3346, 2731, 3774, 1091, 429, 3711, 2881, 1884, 345, 1157, 268, 3558, 2250, 1026, 2239, 319, 1977, 2494, 3383, 1736, 1543, 364, 1739, 3806, 499, 1671, 3849, 524, 502, 232, 2179, 475, 3665, 1449, 3721, 3680, 2643, 2051, 1225, 2053, 3872, 2854, 2136, 516, 130, 1573, 4084, 1463, 1316, 834, 2061, 3771, 1426, 2764, 659, 329, 2015, 3512, 1366, 435, 361, 2578, 3365, 1368, 3763, 3739, 3185, 331, 1155, 449, 4004, 641, 2429, 360, 2863, 1955, 84, 1159, 285, 3253, 2077, 3579, 346, 2421, 3101, 446, 2325, 3090, 3665, 3706, 760, 3734, 2272, 3139, 651, 2546, 2251, 343, 1852, 643, 1765, 456, 699, 2073, 4043, 486, 456, 3587, 395, 2851, 1142, 2272, 1286, 2172, 1396, 837, 2036, 1146, 1120, 1446, 1271, 576, 2954, 424, 2586, 2790, 2550, 554, 3005, 2181, 2678, 3692, 2212, 3627, 1168, 370, 3960, 2235, 382, 2156, 3255, 1688, 3931, 3379, 2509, 1560, 2649, 3927, 391, 584, 1317, 4028, 299, 157, 327, 717, 3471, 474, 1727, 771, 2703, 2561, 2529, 2547, 198, 1974, 1529, 3786, 3461, 199, 1745, 198, 294, 2175, 2861, 325, 684, 1482, 1136, 3965, 1847, 752, 2486, 4061, 1158, 2674, 382, 2750, 2708, 1667, 3932, 2403, 3853, 431, 3835, 3684, 117, 3489, 3174, 1195, 3544, 2744, 2460, 2056, 3476, 2697, 408, 3156, 3131, 3070, 2633, 1263, 2586, 273, 3689, 173, 3971, 1207, 3871, 412, 872, 3056, 303, 4095, 1484, 714, 1522, 2451, 916, 4053, 2443, 3053, 910, 2213, 3197, 292, 195, 4029, 915, 3018, 2753, 577, 2952, 652, 1229, 1938, 1349, 186, 2448, 2515, 3259, 3893, 2211, 2860, 3894, 1389, 4077, 3241, 2445, 316, 345, 3335, 996, 2161, 3798, 3598, 721, 1032, 1068, 401, 707, 3094, 1318, 1185, 4094, 1474, 685, 609, 4036, 3263, 303, 3209, 2857, 246, 4075, 1593, 1673, 3024, 740, 3175, 1902, 529, 2300, 1352, 1636, 3929, 3480, 652, 287, 461, 3212, 708, 3122, 2377, 319, 1563, 1059, 3918, 2952, 2222, 3355, 197, 3802, 3333, 711, 3882, 1595, 2676, 1940, 2791, 1320, 350, 3408, 1792, 600, 3471, 1042, 3938, 772, 3465, 1553, 284, 1176, 1441, 2129, 3265, 1859, 2543, 1451, 3293, 1511, 622, 589, 448, 314, 269, 2332, 1586, 1276, 2858, 3514, 2718, 3879, 404, 2661, 3884, 2834, 1309, 317, 3477, 296, 2324, 469, 2782, 2577, 451, 2036, 625, 2573, 3690, 2124, 2329, 489, 3555, 3344, 3595, 784, 2986, 359, 1181, 3273, 444, 367, 2124, 2455, 2401, 2714, 886, 1979, 648, 451, 3000, 2783, 633, 3341, 3778, 2692, 2524, 1661, 3201, 1229, 272, 1810, 1149, 1133, 406, 1409, 1671, 552, 1654, 3186, 2122, 2845, 869, 435, 3432, 2083, 3623, 2599, 4021, 296, 3639, 2879, 1579, 3645, 3044, 3190, 1215, 3570, 2608, 721, 2170, 161, 356, 1999, 354, 4027, 1391, 1827, 211, 2186, 298, 2622, 482, 2935, 1123, 862, 2943, 3198, 241, 279, 1107, 2559, 3157, 463, 2320, 1888, 1461, 3537, 2545, 1402, 889, 3151, 2204, 1454, 2917, 407, 1340, 770, 1570, 505, 1061, 280, 2189, 2695, 1219, 1543, 3452, 3179, 1323, 396, 1474, 3244, 2497, 890, 2264, 3671, 3317, 2134, 3040, 3428, 2705, 2077, 1544, 3033, 1662, 407, 2706, 2820, 2444, 3167, 985, 3673, 571, 1195, 2505, 2494, 535, 3772, 391, 167, 202, 3650, 3256, 2201, 1256, 2256, 430, 1428, 3336, 1762, 1859, 631, 3095, 297, 2984, 1243, 2735, 3347, 336, 363, 1065, 350, 2304, 2800, 3946, 550, 2509, 258, 1343, 3313, 474, 582, 329, 286, 1689, 972, 2841, 320, 408, 2161, 3184, 165, 1002, 429, 2146, 3091, 1486, 3836, 538, 3237, 3453, 1044, 317, 3333, 1896, 286, 2883, 1747, 3077, 1000, 2774, 319, 2718, 244, 346, 1369, 2699, 2620, 321, 2118, 470, 681, 477, 565, 320, 558, 2214, 589, 219, 3866, 2777, 2654, 2526, 3775, 1805, 2923, 986, 961, 3527, 2668, 3363, 393, 1025, 1730, 2773, 1823, 1321, 3699, 2970, 3153, 2288, 2989, 2227, 1808, 263, 1918, 3753, 437, 448, 2637, 334, 2619, 189, 223, 324, 650, 2150, 488, 3185, 3003, 1687, 3021, 501, 341, 4064, 494, 101, 4093, 2045, 675, 767, 447, 2732, 3556, 1452, 1233, 3366, 1917, 2755, 4058, 2278, 1129, 1976, 2704, 2344, 2840, 293, 495, 701, 1016, 2242, 279, 342, 2066, 1342, 2477, 2447, 2248, 378, 701, 1192, 3811, 2196, 376, 3162, 1825, 3677, 2472, 2600, 368, 355, 2832, 3978, 3668, 1871, 2466, 1491, 491, 1245, 2377, 309, 3941, 3851, 3511, 131, 119, 364, 1389, 2055, 1997, 1931, 2081, 260, 305, 324, 1852, 1200, 3487, 3893, 1944, 2237, 2322, 675, 1800, 2683, 85, 2730, 1695, 3808, 3563, 655, 299, 454, 137, 2618, 3820, 3083, 202, 961, 2656, 3901, 552, 2716, 3659, 397, 4014, 1882, 2649, 278, 3585, 1005, 3648, 1427, 1712, 3561, 3424, 671, 914, 2972, 65, 119, 306, 1722, 883, 3478, 2864, 2415, 3418, 438, 1325, 2339, 437, 390, 336, 1067, 584, 3412, 1383, 366, 3007, 2685, 3656, 3177, 3803, 903, 3535, 1780, 3922, 1318, 3259, 1603, 2148, 245, 1630, 3259, 2367, 1810, 2088, 3424, 241, 339, 483, 1478, 2766, 2162, 4042, 162, 1172, 343, 4034, 755, 2805, 1963, 1589, 2912, 3054, 3053, 3303, 2949, 446, 418, 905, 992, 227, 1052, 685, 557, 2297, 253, 3487, 1432, 484, 169, 2195, 4022, 932, 152, 370, 1433, 3983, 3369, 361, 2069, 1941, 1682, 2082, 403, 1873, 512, 776, 930, 2065, 1312, 231, 1051, 2507, 3567, 2273, 2413, 173, 1909, 3019, 2841, 3794, 3189, 1626, 975, 774, 1087, 2220, 610, 452, 262, 853, 4076, 2674, 2040, 1478, 1302, 321, 1848, 2981, 845, 353, 308, 1235, 3069, 3370, 1222, 2056, 3441, 3360, 3742, 3045, 358, 2599, 3943, 2786, 902, 3641, 971, 859, 4014, 1787, 479, 443, 2279, 1408, 3263, 1929, 3944, 2146, 2601, 3200, 463, 3781, 3155, 3523, 2193, 3256, 274, 2083, 3304, 2260, 1782, 698, 1495, 2610, 2420, 309, 3282, 1337, 2435, 2768, 493, 842, 2575, 3361, 1712, 371, 294, 1353, 1867, 2599, 603, 3582, 3312, 3320, 3171, 1841, 1329, 2325, 2997, 3352, 1282, 599, 1719, 3953, 2958, 2467, 216, 1564, 1259, 3765, 471, 3115, 3482, 3360, 3978, 3575, 1851, 3204, 1322, 2717, 4050, 3018, 1685, 2594, 1465, 1007, 2601, 1517, 2627, 3140, 2398, 664, 488, 416, 2653, 4012, 1620, 2703, 3218, 1388, 1835, 3157, 456, 1748, 2706, 1713, 2225, 200, 1114, 1922, 3435, 3105, 602, 2367, 3886, 1704, 3898, 3962, 2931, 2417, 957, 1964, 3642, 3714, 1794, 2931, 3621, 420, 2488, 3810, 2328, 2626, 3348, 3266, 1916, 3575, 166, 632, 2105, 950, 997, 563, 1252, 1522, 4065, 288, 3425, 3230, 2847, 312, 3654, 179, 2698, 2909, 2554, 623, 3810, 3883, 2615, 341, 810, 1805, 373, 2244, 4084, 200, 184, 3627, 459, 296, 3172, 3869, 3717, 239, 1750, 2257, 1943, 1332, 4057, 1450, 3545, 365, 756, 1287, 1142, 3749, 337, 382, 2391, 2992, 3619, 2113, 470, 1822, 3469, 2879, 3241, 115, 1964, 118, 3530, 3885, 1412, 3443, 3700, 3695, 1681, 2094, 1031, 1530, 356, 3383, 2634, 1387, 2355, 2921, 791, 2750, 676, 3641, 991, 2541, 447, 3434, 1763, 418, 3474, 2948, 532, 415, 3649, 2544, 1764, 3434, 3676, 1361, 2775, 1797, 1314, 2625, 286, 487, 372, 2522, 2840, 429, 1392, 3418, 3536, 1911, 1662, 2045, 845, 1059, 139, 3953, 3647, 877, 1624, 398, 3566, 433, 2715, 1321, 2362, 3555, 180, 218, 2399, 131, 1163, 2868, 3142, 2235, 3256, 875, 1163, 3299, 433, 885, 381, 2853, 1134, 3669, 2671, 2100, 2442, 1284, 3806, 3103, 485, 3717, 3035, 4040, 608, 354, 462, 1151, 3619, 623, 463, 3713, 196, 3359, 462, 3182, 2454, 488, 357, 3217, 172, 271, 3699, 1759, 3788, 768, 3441, 3494, 1263, 3332, 2168, 3841, 1644, 2901, 484, 1368, 246, 117, 2233, 850, 440, 3475, 487, 3844, 717, 3247, 3870, 702, 1238, 1643, 1951, 1830, 3758, 1088, 221, 362, 3840, 1298, 2681, 1431, 2917, 3741, 3165, 2983, 2625, 2140, 2929, 413, 3298, 2403, 2378, 3584, 3837, 1753, 1534, 2713, 897, 2305, 1134, 883, 258, 393, 2903, 3272, 3255, 1544, 4020, 307, 2231, 2114, 1012, 3666, 3172, 1255, 1325, 2789, 3744, 3973, 348, 3152, 2656, 3615, 754, 3072, 2761, 248, 2317, 3934, 287, 4091, 3773, 695, 4036, 3878, 771, 3704, 181, 2331, 3963, 295, 102, 3406, 2590, 4054, 323, 2535, 176, 946, 3235, 2768, 811, 1346, 2868, 3682, 763, 143, 429, 2112, 469, 2026, 1322, 2888, 541, 422, 2143, 452, 227, 2492, 2789, 2491, 479, 2097, 1633, 1281, 1604, 1232, 3856, 2525, 2266, 1715, 1866, 3666, 416, 268, 2699, 893, 69, 4005, 728, 2635, 686, 1424, 253, 3951, 1112, 3538, 530, 1956, 2120, 452, 2875, 3029, 4096, 3723, 2048, 1243, 1185, 2099, 3999, 282, 2673, 2481, 833, 1037, 418, 1830, 394, 3788, 1820, 1913, 3160, 1682, 3116, 3417, 3236, 2310, 1213, 378, 416, 1647, 3414, 1333, 291, 3453, 3719, 475, 3301, 256, 681, 2013, 2612, 348, 2884, 1443, 3132, 282, 1436, 2054, 2114, 409, 2492, 321, 454, 2846, 257, 716, 3322, 2414, 3849, 1930, 3117, 3038, 2858, 2734, 2481, 3886, 3386, 2730, 1174, 3816, 1181, 2908, 1173, 587, 427, 1738, 1138, 1303, 3448, 653, 2288, 3251, 1081, 2519, 2468, 481, 1471, 359, 2165, 2489, 2687, 3493, 2680, 354, 3163, 1438, 411, 3103, 2133, 3913, 2350, 254, 3777, 314, 320, 645, 254, 981, 382, 413, 2888, 3100, 485, 1812, 1509, 1239, 231, 1838, 395, 1798, 1618, 441, 665, 1323, 2307, 2349, 669, 402, 2648, 3806, 2030, 2277, 588, 3974, 2454, 1766, 737, 2555, 2798, 755, 1562, 303, 2411, 383, 3205, 2542, 3058, 4092, 770, 2175, 3023, 263, 3449, 1889, 1278, 3880, 411, 1367, 2993, 3935, 2363, 277, 440, 260, 640, 2640, 3350, 379, 3604, 1052, 521, 300, 3407, 344, 1649, 1356, 2759, 3006, 2537, 1953, 3863, 3644, 172, 3143, 3319, 3815, 1911, 3220, 1108, 885, 2439, 100, 1300, 3833, 2833, 457, 2831, 1755, 1920, 2318, 3123, 1580, 3275, 3991, 2453, 703, 693, 481, 694, 415, 3915, 1174, 1930, 2360, 1893, 1124, 1224, 2526, 2973, 3761, 592, 3921, 310, 4008, 3951, 434, 2092, 2073, 2872, 3941, 2277, 424, 455, 2243, 2192, 2956, 1231, 3437, 2238, 3099, 3597, 482, 1438, 1014, 1041, 2563, 3467, 2018, 3816, 197, 993, 1262, 2842, 1857, 277, 3519, 1572, 2727, 2288, 3511, 2676, 2724, 2375, 2592, 1082, 2476, 4072, 1380, 3906, 3819, 109, 3475, 1988, 1662, 1939, 2485, 929, 3683, 1496, 2695, 483, 1761, 234, 621, 2024, 2761, 3964, 1829, 2546, 3283, 550, 380, 1913, 2725, 454, 794, 3673, 2410, 276, 2614, 1294, 2841, 426, 2553, 813, 2959, 2106, 2050, 1535, 2553, 2896, 1316, 2902, 187, 1462, 822, 2531, 408, 414, 2257, 962, 481, 3230, 749, 3311, 3276, 3812, 142, 3967, 3737, 3436, 1395, 1616, 3146, 1806, 357, 1312, 3262, 760, 3514, 1611, 2573, 1906, 4071, 3782, 4040, 3485, 2513, 2875, 1723, 3564, 3752, 160, 584, 931, 2327, 2082, 590, 4090, 158, 489, 3804, 2545, 1078, 923, 1410, 3980, 3754, 234, 1557, 190, 768, 1621, 4053, 3119, 1508, 498, 2522, 478, 1685, 2120, 4017, 3052, 2848, 469, 1491, 439, 1069, 2639, 1633, 338, 1515, 715, 453, 666, 4049, 3796, 1092, 472, 3438, 1354, 807, 1394, 737, 168, 1174, 1063, 2229, 2960, 2981, 380, 3698, 1735, 412, 3033, 728, 4056, 3979, 398, 325, 552, 419, 1902, 726, 3548, 2002, 400, 3464, 3574, 3331, 1559, 3963, 412, 1274, 951, 988, 2071, 683, 2074, 287, 4048, 3146, 374, 1306, 3792, 3067, 1508, 410, 476, 2368, 3739, 549, 3696, 2240, 3267, 3488, 2191, 3914, 859, 655, 332, 482, 1340, 2745, 276, 1581, 2104, 386, 2626, 1171, 3773, 710, 3786, 1244, 3396, 1975, 1648, 2192, 3548, 2709, 1275, 2796, 276, 4010, 305, 3333, 2459, 842, 1742, 3719, 2531, 1800, 3694, 3171, 2453, 1633, 1478, 227, 423, 2001, 403, 3496, 1531, 2499, 1769, 209, 449, 2473, 87, 4048, 3233, 3379, 449, 3923, 3658, 815, 3547, 1900, 1177, 1754, 626, 3212, 318, 1088, 1403, 2122, 1011, 164, 2738, 2877, 920, 2130, 2169, 3470, 448, 3821, 2985, 935, 2281, 242, 3049, 707, 3873, 2399, 1301, 451, 3206, 3820, 484, 1256, 3039, 3477, 855, 955, 2133, 2249, 2502, 347, 1098, 2758, 4037, 1378, 4092, 2631, 150, 2428, 1216, 2844, 438, 947, 2611, 3672, 574, 2799, 2914, 2663, 2536, 3094, 539, 3667, 2913, 281, 2886, 194, 1677, 2086, 974, 1073, 2386, 1980, 1716, 480, 414, 803, 782, 3008, 741, 1362, 2682, 3071, 270, 495, 1326, 2971, 2647, 3282, 3252, 732, 3308, 1251, 910, 260, 1764, 434, 935, 2057, 1592, 3862, 1362, 2584, 210, 1905, 1991, 3229, 1624, 2715, 983, 2889, 411, 1687, 2125, 2471, 248, 284, 2515, 224, 97, 2722, 1020, 484, 2120, 1206, 1135, 3396, 247, 1209, 3291, 3419, 1457, 2690, 3456, 2810, 3762, 2080, 324, 3870, 83, 691, 327, 3038, 282, 1115, 183, 2693, 827, 1784, 1666, 3129, 3399, 1369, 3375, 2544, 554, 808, 2185, 2217, 2370, 2310, 1709, 806, 1495, 2641, 2051, 1826, 3112, 308, 2916, 1180, 340, 981, 2393, 467, 3376, 333, 179, 240, 3420, 2638, 2733, 2867, 1085, 760, 1245, 1090, 1617, 3003, 1969, 146, 498, 3501, 1124, 3701, 372, 3919, 3387, 2778, 1454, 1261, 2660, 3780, 1003, 107, 1111, 417, 375, 596, 509, 3076, 1802, 420, 4033, 489, 387, 987, 3693, 442, 303, 3225, 3110, 1994, 2093, 325, 383, 2218, 2077, 2236, 4043, 779, 273, 1909, 543, 318, 2364, 3393, 368, 391, 479, 1535, 3581, 1277, 270, 1002, 835, 133, 3591, 406, 3380, 2057, 1506, 2751, 231, 3216, 1445, 1434, 2796, 1020, 3788, 481, 2480, 388, 3620, 3148, 3193, 2541, 672, 418, 777, 3910, 3451, 1921, 2779, 2323, 3433, 3468, 493, 3819, 3090, 2323, 3341, 2981, 453, 3292, 347, 2097, 280, 3427, 2400, 3482, 3539, 185, 876, 288, 1105, 2011, 1114, 2433, 2924, 1050, 2441, 480, 3793, 348, 2788, 1638, 2556, 2623, 3861, 1710, 3566, 2919, 2390, 2501, 2589, 2103, 3662, 2552, 172, 3750, 2709, 1003, 1050, 798, 2429, 3494, 2983, 1202, 2712, 1137, 3380, 752, 340, 991, 169, 863, 726, 2160, 2408, 345, 457, 2085, 2482, 252, 334, 3622, 1334, 802, 1490, 959, 203, 2815, 880, 3348, 2608, 380, 1558, 3876, 1642, 1692, 235, 3517, 386, 2267, 291, 3828, 2873, 3655, 2392, 2843, 447, 662, 2445, 1642, 1007, 3942, 216, 3396, 1270, 3546, 423, 4078, 3605, 4055, 2743, 1229, 353, 3890, 2319, 1926, 2858, 2047, 2229, 855, 4068, 3989, 1088, 3406, 476, 277, 457, 2348, 1161, 2996, 1726, 3547, 1694, 636, 497, 2930, 3034, 1040, 1249, 318, 325, 865, 1369, 3637, 3348, 3437, 798, 397, 1402, 426, 2764, 3684, 2609, 2574, 3515, 1459, 1432, 1445, 464, 2191, 2946, 2456, 2496, 3116, 2938, 2889, 2139, 839, 3902, 424, 183, 451, 3087, 2343, 436, 1065, 2279, 2020, 3629, 3720, 1355, 504, 284, 360, 1150, 271, 705, 2112, 318, 3626, 305, 2434, 1524, 1098, 3322, 1903, 2532, 322, 2538, 4007, 348, 200, 221, 1577, 4024, 1131, 2354, 3061, 3001, 4011, 1194, 1729, 949, 1938, 1102, 1351, 3650, 220, 3639, 255, 1715, 3505, 3191, 416, 401, 710, 2821, 1070, 3580, 2387, 389, 241, 1976, 1995, 3445, 3415, 2939, 814, 4080, 722, 3388, 1221, 1341, 994, 3702, 474, 263, 1845, 749, 1156, 378, 1106, 451, 2602, 2183, 2381, 2698, 445, 3440, 3130, 338, 832, 284, 360, 2898, 2326, 407, 1803, 412, 1566, 3463, 2058, 1739, 1433, 2557, 426, 465, 3363, 2194, 2796, 2602, 3588, 3858, 1219, 2099, 458, 984, 3935, 224, 840, 2818, 868, 1184, 442, 3390, 3456, 486, 2670, 924, 428, 2168, 1236, 1695, 3028, 1151, 824, 612, 1981, 3442, 3881, 1676, 275, 3991, 3041, 1223, 2604, 2726, 722, 438, 2511, 396, 452, 2292, 3630, 1463, 1427, 471, 3068, 2755, 1053, 2786, 305, 1904, 2566, 2922, 3288, 870, 3898, 2542, 2552, 1004, 2519, 1239, 2856, 1541, 1507, 1448, 3297, 844, 409, 463, 2196, 1752, 3295, 2401, 1489, 1757, 381, 1285, 2399, 1197, 3394, 3722, 4086, 3514, 2773, 2252, 489, 3949, 645, 4011, 3565, 277, 1394, 2485, 329, 2677, 1336, 3584, 934, 1041, 2574, 2338, 425, 840, 2993, 985, 1196, 1123, 852, 344, 376, 342, 63, 1008, 928, 2804, 1094, 1977, 2000, 193, 409, 151, 1413, 1708, 435, 3373, 925, 1184, 813, 391, 2382, 734, 1096, 3969, 934, 1942, 2373, 864, 1973, 3012, 1222, 3613, 226, 3494, 2788, 2236, 352, 1447, 2961, 3681, 4009, 3750, 2873, 1603, 2037, 2658, 3378, 3208, 3988, 1479, 966, 1059, 2397, 3922, 464, 2285, 1101, 2205, 3272, 1319, 2704, 2286, 3833, 1148, 2944, 270, 404, 1438, 2976, 818, 2480, 2361, 3703, 1331, 1107, 3799, 3577, 2900, 347, 1849, 2423, 3347, 429, 3428, 607, 494, 2103, 378, 1904, 1749, 4013, 1481, 292, 1799, 444, 3536, 1451, 2036, 374, 357, 2019, 101, 1928, 1466, 3610, 90, 2072, 3728, 717, 245, 1361, 3276, 3982, 2920, 4077, 519, 2693, 106, 750, 3706, 489, 3949, 1689, 383, 2662, 3550, 2754, 2379, 108, 630, 142, 1685, 2295, 3441, 3890, 1590, 2895, 2766, 3839, 1821, 3162, 2088, 2334, 1854, 341, 2301, 1755, 2864, 1774, 3618, 3210, 2012, 1413, 2571, 1159, 3317, 2770, 1920, 1209, 2915, 1623, 2016, 2446, 1300, 323, 106, 849, 491, 1625, 390, 462, 2978, 3797, 399, 373, 3362, 1345, 3294, 2824, 406, 3661, 3777, 467, 1846, 2136, 2590, 243, 3174, 393, 2499, 192, 3405, 3138, 944, 744, 2115, 3404, 2363, 372, 2497, 1585, 306, 1885, 575, 791, 1015, 1610, 1614, 2448, 1991, 2995, 615, 2575, 4062, 1932, 315, 355, 1870, 396, 4085, 606, 4078, 3340, 3687, 1536, 3362, 945, 1743, 2464, 3079, 3225, 3338, 2819, 1673, 2520, 1690, 697, 1419, 2166, 2941, 3657, 829, 2389, 3034, 378, 3838, 3205, 3858, 2180, 1162, 1220, 465, 2143, 3363, 2263, 1925, 3775, 2474, 2250, 2918, 361, 629, 3933, 1233, 1967, 2614, 900, 3509, 3845, 2958, 2781, 2312, 1902, 2333, 328, 183, 1127, 3760, 868, 293, 407, 4059, 3316, 219, 2578, 311, 2570, 1925, 3266, 547, 3707, 4032, 2513, 434, 1834, 2182, 872, 1672, 3722, 432, 2141, 2975, 359, 630, 3896, 824, 3050, 3240, 2663, 2042, 3240, 847, 2374, 2078, 1965, 1144, 2506, 3045, 421, 2091, 3326, 3466, 1950, 1196, 547, 377, 2928, 236, 2655, 365, 2283, 3055, 396, 79, 3720, 2459, 646, 2867, 3178, 497, 2969, 2564, 1217, 2188, 1614, 515, 497, 2620, 455, 182, 2853, 3845, 3813, 2132, 2916, 2782, 1929, 1316, 3944, 1313, 1583, 3491, 494, 234, 2018, 1535, 1375, 2745, 450, 1775, 1292, 3947, 2617, 1530, 2639, 2326, 2125, 1401, 2774, 2017, 2395, 1079, 797, 1578, 403, 318, 773, 483, 1895, 1193, 3047, 3513, 1665, 3647, 446, 3233, 222, 2337, 834, 3268, 3753, 2304, 2596, 2450, 2816, 1499, 446, 3453, 2248, 3972, 3317, 2165, 600, 3232, 1742, 700, 675, 1811, 1137, 1907, 2686, 2719, 2134, 829, 495, 3865, 2129, 2126, 432, 4070, 119, 2609, 768, 333, 958, 1768, 2801, 422, 3027, 2217, 2228, 2080, 1068, 481, 291, 225, 1386, 121, 1150, 2159, 2631, 237, 2291, 3770, 2505, 444, 3715, 3875, 778, 3060, 3125, 2362, 2154, 2726, 2275, 3957, 740, 2760, 1404, 2893, 1622, 1280, 2633, 338, 693, 2627, 3007, 2389, 249, 3022, 292, 1540, 1833, 426, 1134, 362, 187, 424, 2032, 3209, 1400, 485, 416, 2933, 132, 482, 318, 569, 1363, 1630, 1020, 1236, 3544, 1357, 706, 3743, 1100, 2433, 1355, 2819, 1392, 374, 897, 1935, 1278, 2607, 3081, 2253, 1918, 1113, 4075, 2569, 2437, 2340, 3081, 1359, 1795, 723, 507, 3583, 3409, 1674, 3758, 2259, 1332, 3032, 1230, 3724, 3080, 2476, 553, 1398, 255, 2226, 2695, 436, 2894, 924, 1232, 1758, 3010, 1849, 2758, 3148, 3222, 154, 2362, 435, 1964, 1497, 2197, 3058, 478, 3690, 3052, 3868, 1503, 460, 3779, 1970, 663, 2770, 298, 2053, 1045, 407, 2449, 1657, 135, 484, 2803, 4069, 2378, 1373, 2163, 3417, 339, 1820, 3950, 3838, 446, 372, 882, 1071, 2775, 1322, 1909, 433, 936, 1122, 212, 454, 1837, 2026, 3412, 1406, 2730, 382, 3843, 1033, 3891, 475, 3174, 2039, 344, 2478, 2152, 1515, 895, 3226, 481, 3387, 940, 373, 3537, 2771, 1128, 3407, 3560, 2063, 2763, 3602, 1165, 2758, 414, 1464, 1928, 3705, 980, 3846, 3632, 1353, 697, 831, 1127, 409, 250, 3791, 1428, 369, 3378, 488, 3525, 1822, 1751, 4002, 2163, 2741, 370, 3368, 497, 3574, 1383, 1180, 2911, 1942, 384, 2891, 1167, 1310, 3219, 331, 2679, 3232, 2283, 3385, 2156, 3051, 3362, 1264, 498, 3978, 1782, 366, 914, 1396, 2616, 3671, 1368, 2968, 1958, 3938, 317, 120, 392, 3385, 2632, 2303, 1818, 3973, 1380, 261, 148, 2219, 656, 2404, 3105, 1771, 3544, 2180, 2936, 1476, 1376, 3465, 677, 255, 2342, 1977, 2776, 2642, 2032, 326, 2149, 1562, 1226, 1218, 490, 462, 542, 1520, 3612, 1668, 2532, 1179, 291, 1828, 1646, 4012, 392, 3585, 1729, 2106, 831, 2653, 3099, 1102, 388, 2427, 1976, 1446, 1093, 1869, 2113, 2681, 1133, 2406, 1263, 2095, 2982, 1099, 437, 2729, 406, 4083, 2738, 3817, 2470, 1511, 4050, 1571, 332, 3248, 2210, 329, 1249, 2579, 704, 2002, 1605, 328, 1360, 200, 3250, 2011, 471, 1376, 476, 175, 533, 3985, 3624, 2772, 542, 1299, 1169, 1575, 1349, 2598, 3086, 316, 2358, 286, 2696, 100, 489, 183, 3953, 230, 668, 2538, 60, 2335, 2147, 3021, 2198, 1661, 3731, 1274, 2144, 1257, 2885, 1353, 945, 1782, 2781, 2647, 3405, 581, 1781, 3386, 2049, 436, 2567, 1990, 330, 266, 148, 2258, 3762, 1951, 300, 471, 335, 476, 1367, 3451, 2018, 1761, 2588, 2892, 1071, 578, 1823, 1947, 283, 3408, 3501, 2894, 654, 2041, 1437, 1494, 4041, 275, 1219, 2209, 261, 3686, 1553, 2411, 572, 3351, 2960, 968, 1270, 3097, 259, 268, 2059, 3177, 163, 3634, 1679, 2410, 1706, 1721, 3419, 2852, 2024, 2621, 3614, 2967, 727, 1360, 2001, 250, 269, 2697, 1390, 1814, 1364, 3423, 976, 485, 3461, 1750, 1426, 556, 1121, 500, 1066, 435, 3300, 639, 2270, 266, 3733, 2659, 1169, 2866, 618, 1565, 3275, 3928, 1774, 747, 1839, 2870, 340, 454, 225, 968, 419, 353, 2012, 764, 3220, 3115, 775, 997, 2145, 2463, 958, 3231, 1552, 321, 2825, 309, 2506, 1596, 201, 3150, 464, 2509, 799, 119, 3516, 433, 2444, 2835, 3546, 3422, 1709, 743, 2783, 913, 2693, 3046, 1201, 2551, 3905, 427, 375, 3390, 404, 1036, 448, 938, 2938, 2865, 1570, 1604, 1864, 3300, 450, 2242, 2640, 1857, 586, 1277, 3622, 3669, 3850, 2105, 264, 1672, 739, 2815, 2237, 2226, 1109, 2234, 351, 4071, 1160, 1208, 2220, 3615, 4086, 1503, 477, 2890, 3783, 3520, 496, 2885, 2171, 412, 3809, 470, 3059, 430, 3509, 1686, 496, 3661, 393, 2410, 495, 3897, 561, 1104, 689, 1760, 1260, 2887, 2645, 3286, 2169, 3734, 856, 2665, 3216, 1189, 1048, 369, 3257, 302, 2882, 3005, 828, 2926, 1844, 2135, 2892, 2463, 1644, 2878, 240, 2834, 3102, 1650, 3824, 1066, 1804, 3678, 3240, 2548, 2849, 474, 3692, 358, 3765, 2073, 1772, 2871, 902, 2021, 249, 2869, 2601, 2527, 2203, 3968, 2468, 381, 2371, 1158, 398, 3903, 943, 1558, 3554, 1816, 2760, 1241, 1500, 3312, 3605, 1916, 322, 2437, 1504, 138, 1008, 1914, 1643, 873, 468, 1325, 359, 3696, 244, 2313, 3668, 3981, 3106, 2088, 3244, 607, 490, 1626, 0, 0, 3835, 334, 736, 2684, 0, 3779, 3425, 3389, 349, 3384, 2052, 2589, 4007, 2760, 559, 3175, 3028, 0, 1046, 0, 0, 2990, 0, 3278, 3211, 0, 0, 0, 3063, 3243, 2427, 2194, 0, 848, 642, 3832, 0, 3011, 2670, 2826, 2649, 3378, 3278, 3161, 2921, 3822, 3903, 877, 0, 1281, 0, 2934, 0, 1860, 1091, 459, 0, 1495, 3293, 4033, 2740, 3757, 1164, 0, 570, 0, 3759, 2475, 767, 0, 2400, 1843, 2777, 0, 0, 2793, 2975, 1305, 1231, 3372, 2451, 615, 2871, 3874, 1899, 1435, 3263, 1877, 3228, 3273, 3525, 0, 471, 458, 0, 1080, 2816, 2741, 0, 938, 0, 0, 496, 3208, 4072, 0, 0, 3632, 2014, 0, 3765, 3186, 2930, 1789, 3455, 1597, 0, 1608, 0, 0, 0, 2392, 3940, 2514, 1111, 4044, 1338, 0, 0, 0, 2807, 0, 1372, 2068, 3775, 2563, 2253, 0, 1552, 0, 3690, 2685, 0, 3383, 1660, 3906, 3275, 0, 2838, 2483, 1103, 2538, 0, 3611, 3559, 811, 2027, 0, 3338, 3648, 435, 0, 627, 1746, 3250, 0, 2184, 0, 0, 1617, 3554, 0, 490, 1559, 2740, 415, 0, 1586, 3301, 1594, 3895, 3436, 3588, 0, 0, 1638, 0, 0, 0, 2979, 2523, 2461, 0, 0, 0, 2877, 3748, 0, 3533, 2791, 2354, 2510, 2682, 0, 1896, 1944, 0, 2968, 1948, 2108, 2785, 3353, 1624, 508, 0, 2767, 1946, 3694, 0, 1463, 551, 0, 2339, 2058, 2424, 0, 3345, 456, 0, 0, 0, 1995, 248, 3958, 0, 276, 0, 0, 3501, 4019, 0, 0, 3814, 0, 3234, 1004, 3807, 1090, 2937, 384, 0, 3972, 0, 3540, 0, 920, 0, 0, 3625, 0, 3402, 0, 2589, 3496, 2241, 1674, 379, 1905, 0, 2497, 1969, 2394, 0, 0, 1203, 3950, 0, 2457, 988, 3867, 3988, 343, 884, 1839, 0, 2833, 3402, 500, 1971, 0, 3055, 0, 1597, 0, 0, 0, 888, 0, 0, 3098, 0, 472, 490, 0, 0, 0, 2324, 3904, 649, 3784, 1053, 3025, 2205, 1777, 2084, 2287, 0, 0, 0, 0, 0, 0, 3344, 549, 2976, 1038, 0, 0, 3739, 3480, 3358, 3371, 1048, 0, 345, 0, 458, 2609, 3691, 2825, 0, 0, 3569, 3466, 441, 0, 3506, 0, 3224, 3458, 298, 2311, 0, 714, 1492, 3409, 3849, 3218, 3754, 894, 394, 0, 1299, 2218, 3295, 3937, 0, 4018, 3397, 2294, 3481, 2381, 2804, 0, 0, 0, 0, 0, 2712, 0, 0, 1509, 1308, 0, 3744, 2954, 2945, 3330, 0, 2744, 525, 1009, 3268, 706, 0, 464, 0, 2348, 2499, 1046, 1136, 0, 2188, 3004, 2227, 3897, 4025, 379, 2045, 0, 390, 871, 3076, 0, 789, 0, 3421, 2514, 0, 1548, 956, 4000, 445, 1921, 2272, 4019, 3476, 2892, 1501, 3616, 495, 2241, 3073, 0, 0, 2910, 3936, 3909, 466, 0, 3770, 2798, 830, 1577, 917, 3659, 3017, 3769, 3571, 641, 2792, 2830, 3892, 0, 2583, 3328, 3502, 0, 956, 3413, 3996, 603, 1527, 1105, 3030, 2937, 0, 1793, 3967, 0, 3027, 2066, 3104, 2827, 0, 0, 3957, 1429, 1421, 1979, 0, 2628, 3878, 2115, 0, 0, 3663, 0, 2788, 2153, 2567, 0, 1738, 599, 1788, 3984, 0, 3426, 0, 0, 0, 2519, 0, 879, 0, 1919, 0, 412, 3789, 0, 234, 1546, 3425, 0, 0, 3728, 441, 4046, 0, 1140, 4083, 0, 0, 0, 1108, 0, 3533, 4069, 3578, 0, 3924, 1393, 2071, 1785, 2204, 2372, 2488, 2134, 0, 1883, 3042, 0, 1802, 3065, 2994, 3399, 2914, 2652, 2349, 1209, 3397, 1719, 3059, 2577, 1284, 2387, 0, 444, 0, 0, 0, 2587, 3486, 2594, 0, 3834, 3599, 0, 1416, 466, 0, 3555, 1678, 0, 0, 2889, 0, 0, 3078, 3780, 3151, 3960, 596, 2941, 2037, 0, 416, 257, 466, 2634, 0, 3654, 2503, 3589, 3491, 4035, 2925, 3426, 742, 2953, 2593, 0, 0, 243, 3299, 280, 2855, 2556, 0, 600, 3843, 1994, 3731, 0, 2395, 2050, 3534, 0, 2317, 3398, 689, 2882, 3601, 0, 0, 2773, 0, 442, 3892, 0, 184, 0, 0, 1430, 0, 0, 3500, 4021, 3798, 3270, 496, 0, 0, 4049, 0, 1480, 3732, 435, 3962, 1336, 0, 3029, 0, 1497, 2899, 0, 423, 0, 1922, 1516, 4027, 2987, 1460, 0, 3617, 3959, 1953, 3109, 0, 895, 1525, 0, 954, 3610, 0, 1889, 3463, 2491, 2176, 2162, 0, 347, 3528, 3675, 0, 0, 2298, 3449, 0, 0, 0, 0, 0, 581, 486, 4052, 1545, 3332, 3977, 3704, 1522, 2595, 2800, 435, 1610, 0, 2330, 3842, 0, 3438, 3294, 3551, 0, 3907, 1831, 4009, 4089, 493, 0, 3593, 2764, 3586, 2887, 0, 3790, 3622, 3229, 0, 1973, 0, 0, 1767, 1945, 1421, 0, 2262, 0, 0, 3527, 2070, 3519, 0, 0, 3197, 0, 354, 0, 0, 3459, 0, 2846, 2946, 3374, 3462, 1717, 537, 3987, 2164, 2543, 0, 2107, 0, 2008, 3647, 1611, 353, 1636, 1505, 0, 0, 3043, 0, 3527, 3542, 1720, 2225, 3353, 613, 2443, 347, 2508, 0, 0, 3373, 0, 2778, 0, 509, 0, 0, 0, 1373, 901, 3859, 424, 0, 787, 3693, 0, 1458, 2692, 985, 2943, 0, 4096, 3276, 1092, 0, 0, 0, 2215, 3483, 3181, 2686, 0, 579, 2055, 2304, 2623, 2683, 3653, 1885, 3681, 1826, 978, 3124, 4061, 1168, 3380, 0, 2859, 2528, 4057, 0, 2540, 355, 2421, 1821, 0, 758, 2395, 0, 937, 3364, 3851, 3650, 3819, 3458, 2517, 0, 4032, 0, 0, 0, 1936, 0, 3414, 2997, 0, 3122, 0, 1682, 3609, 0, 2787, 2671, 163, 1480, 2694, 383, 0, 3342, 4070, 319, 0, 303, 3382, 496, 0, 1439, 3354, 0, 0, 1385, 691, 1455, 0, 0, 895, 2475, 2094, 2839, 3592, 3643, 2390, 1123, 3660, 3149, 3074, 3316, 1233, 3490, 0, 2775, 2188, 1910, 1693, 2823, 3335, 1778, 2335, 3673, 0, 2769, 410, 0, 3662, 3332, 2286, 0, 0, 0, 3726, 0, 0, 4089, 2988, 3177, 0, 3930, 626, 3970, 3032, 2997, 3351, 1117, 0, 1042, 2101, 2987, 0, 3006, 3793, 438, 1546, 220, 3745, 0, 0, 2147, 3377, 1879, 0, 3627, 3913, 3536, 1689, 0, 325, 0, 1806, 3439, 0, 447, 478, 1145, 363, 3583, 3160, 4073, 764, 2903, 494, 3137, 0, 1074, 804, 1164, 608, 0, 2277, 3968, 524, 3115, 2379, 0, 289, 2089, 1555, 3531, 0, 0, 0, 1855, 3260, 0, 2840, 3264, 0, 2713, 404, 0, 2031, 3839, 0, 3288, 497, 3258, 362, 531, 1668, 3025, 3885, 399, 3718, 2044, 3318, 1562, 2616, 433, 583, 3519, 797, 1023, 0, 0, 3557, 3025, 0, 3795, 3616, 1052, 2540, 3831, 0, 3391, 957, 1698, 1871, 0, 2561, 2456, 0, 0, 3525, 0, 3421, 3244, 1831, 287, 0, 0, 483, 2059, 0, 560, 2875, 2219, 881, 1720, 1668, 0, 1474, 3529, 3328, 3961, 0, 3210, 1637, 0, 832, 358, 0, 0, 1399, 0, 532, 0, 0, 1816, 1406, 0, 3000, 0, 0, 2598, 1623, 2517, 0, 0, 0, 403, 1401, 3543, 1018, 0, 2970, 1878, 2431, 3918, 0, 0, 2999, 2377, 2278, 2995, 0, 3760, 1648, 0, 2452, 0, 0, 4056, 2461, 949, 3873, 0, 0, 2423, 3976, 2261, 696, 1296, 2564, 2769, 0, 0, 3682, 150, 1026, 725, 3188, 0, 2669, 3019, 3801, 1540, 1956, 2765, 2963, 3541, 0, 0, 2680, 2636, 3966, 918, 3128, 0, 537, 3762, 3286, 0, 0, 1458, 413, 501, 265, 3644, 3919, 3853, 336, 3347, 3227, 3924, 2688, 3535, 0, 443, 0, 2698, 3660, 848, 0, 2081, 0, 2363, 2096, 3923, 0, 2200, 964, 0, 100, 1732, 3651, 1824, 3424, 0, 0, 2797, 0, 2040, 2485, 3883, 2512, 398, 712, 2011, 3393, 0, 3124, 2240, 3261, 3160, 0, 0, 0, 1064, 0, 1915, 0, 2558, 3917, 2884, 2170, 688, 2908, 3905, 0, 2556, 3366, 0, 436, 1075, 484, 3072, 0, 2844, 0, 846, 2614, 608, 0, 2176, 3179, 2009, 0, 0, 3136, 0, 0, 2980, 453, 2478, 1669, 2322, 1939, 4068, 3921, 2428, 3292, 2256, 0, 1740, 999, 342, 3899, 0, 946, 194, 1414, 3176, 0, 0, 944, 0, 0, 3455, 3334, 540, 0, 2367, 943, 1481, 3715, 2336, 1927, 2534, 3884, 0, 2503, 3977, 264, 2043, 3246, 3631, 0, 3631, 1998, 1692, 2939, 1756, 3322, 2576, 3608, 363, 2795, 0, 0, 2946, 3863, 3689, 350, 3825, 4008, 2422, 2637, 341, 1632, 0, 0, 1594, 3100, 4067, 0, 0, 3446, 830, 2895, 0, 3576, 3822, 3789, 1356, 3672, 0, 0, 1514, 455, 3346, 3267, 3375, 3992, 0, 3141, 2888, 0, 626, 0, 0, 0, 2321, 0, 1160, 2720, 4037, 0, 1882, 2639, 2326, 3562, 3948, 1912, 3654, 3602, 2929, 0, 2985, 0, 0, 3841, 2037, 3562, 2463, 1992, 2814, 0, 2991, 0, 0, 0, 0, 2346, 2257, 0, 3185, 3733, 1600, 3774, 3306, 0, 3879, 3374, 3144, 2738, 2748, 0, 1894, 0, 3672, 0, 0, 0, 2224, 0, 1888, 3325, 0, 3646, 0, 0, 4000, 1628, 3782, 2960, 3156, 3159, 2424, 1168, 1464, 677, 3580, 0, 1921, 3918, 0, 3558, 0, 0, 1637, 3679, 0, 3199, 0, 271, 3180, 3716, 0, 0, 1038, 3746, 4044, 3857, 0, 0, 0, 3894, 2518, 2784, 0, 0, 3498, 0, 0, 2195, 0, 0, 0, 3341, 3732, 3339, 2863, 0, 182, 3484, 2815, 2252, 0, 1777, 2432, 2035, 0, 350, 0, 3628, 4030, 443, 0, 1865, 0, 0, 0, 2804, 0, 0, 2984, 720, 1726, 2924, 2926, 2985, 0, 2170, 360, 0, 2089, 1061, 0, 0, 0, 307, 2674, 0, 3769, 2065, 0, 3568, 3789, 470, 2176, 3618, 1253, 0, 359, 516, 2573, 0, 0, 3934, 527, 3504, 0, 3358, 0, 184, 3175, 492, 0, 0, 2202, 3714, 0, 3795, 2123, 2466, 2359, 3506, 1437, 3738, 2739, 1885, 2809, 3258, 1990, 3516, 1170, 0, 1560, 3999, 972, 3740, 3591, 3452, 0, 0, 2737, 2341, 3867, 0, 2570, 0, 0, 3245, 4027, 0, 2380, 3199, 429, 1204, 1423, 3181, 0, 1330, 2270, 3901, 3916, 3813, 2484, 2547, 0, 1914, 347, 4000, 0, 1371, 2162, 1186, 0, 1101, 0, 1615, 3671, 3805, 1293, 298, 2899, 145, 3371, 3207, 0, 3697, 0, 3242, 3706, 3880, 689, 1467, 499, 3431, 3764, 0, 2896, 2739, 3791, 2718, 0, 0, 2046, 0, 0, 0, 1833, 2963, 2209, 2658, 0, 1422, 2181, 0, 303, 3533, 470, 0, 0, 1022, 2646, 0, 681, 2086, 0, 3955, 0, 1727, 0, 0, 1903, 0, 0, 0, 3817, 0, 850, 2375, 1227, 283, 2605, 1407, 1242, 0, 2921, 0, 2568, 3845, 0, 3617, 2945, 3524, 0, 3818, 0, 2093, 405, 428, 0, 1835, 3448, 0, 0, 0, 0, 0, 2986, 3124, 0, 1030, 3468, 3309, 3814, 0, 0, 3652, 0, 2726, 4015, 0, 3020, 2659, 1552, 1494, 3433, 4086, 0, 2949, 0, 338, 3080, 2511, 3215, 0, 0, 2405, 2402, 3801, 0, 0, 1324, 3590, 0, 0, 1461, 0, 0, 421, 3431, 0, 955, 0, 0, 3831, 0, 0, 3235, 0, 263, 0, 0, 2450, 319, 0, 3701, 0, 3097, 3478, 351, 1735, 0, 0, 2966, 1818, 0, 0, 2811, 1250, 436, 0, 2347, 3404, 2094, 3782, 719, 3614, 3843, 1487, 1960, 3324, 3429, 2836, 2260, 3721, 3543, 0, 3104, 4074, 0, 3134, 2669, 2530, 2866, 3727, 2289, 311, 3027, 3497, 197, 0, 1100, 0, 1899, 3803, 1687, 0, 3937, 3768, 2752, 3260, 0, 820, 3445, 3411, 0, 0, 0, 3919, 1832, 0, 0, 1900, 0, 3083, 3041, 2500, 960, 2366, 1531, 0, 3587, 3635, 3679, 2086, 0, 3829, 0, 0, 1807, 2339, 3067, 2263, 0, 3621, 1361, 0, 0, 491, 0, 1329, 1301, 3939, 2850, 2899, 3306, 2380, 3183, 2351, 1657, 3770, 2198, 747, 0, 342, 1183, 3977, 426, 1906, 3839, 3629, 0, 2600, 3753, 0, 0, 0, 3853, 0, 0, 0, 1994, 0, 3807, 3337, 2148, 3688, 1840, 4045, 2971, 2829, 0, 2597, 2914, 3324, 1512, 3015, 3168, 3063, 3432, 2586, 3462, 0, 3284, 0, 0, 2977, 0, 0, 524, 3415, 2897, 0, 0, 269, 0, 679, 486, 2247, 2994, 1112, 1111, 1056, 3091, 3271, 1996, 2371, 3861, 1537, 282, 2017, 2139, 2062, 0, 1499, 3435, 2388, 0, 3447, 700, 1299, 3046, 0, 3251, 2342, 1374, 0, 3907, 2754, 854, 0, 0, 1437, 2414, 431, 2512, 790, 0, 3810, 3900, 0, 1479, 3830, 3180, 2117, 0, 2397, 1289, 0, 483, 0, 0, 0, 3553, 725, 1025, 447, 1702, 3224, 3558, 386, 0, 3139, 3045, 475, 0, 590, 3837, 2174, 0, 0, 3280, 2701, 0, 0, 219, 0, 0, 0, 3664, 3964, 2297, 1471, 0, 458, 3136, 0, 2974, 1540, 4080, 2587, 1988, 2536, 0, 2466, 0, 4057, 2667, 1722, 1240, 790, 1982, 1459, 0, 2075, 2795, 0, 1967, 1993, 1429, 0, 3061, 0, 1415, 0, 445, 0, 3957, 1477, 3497, 3485, 0, 0, 0, 940, 2154, 3646, 3002, 0, 1773, 3535, 3756, 3387, 0, 2516, 3983, 1620, 3082, 0, 4031, 0, 0, 260, 2044, 0, 3685, 2440, 834, 0, 2358, 2969, 3774, 0, 2714, 3812, 3269, 3751, 1989, 0, 0, 1467, 4069, 0, 560, 3847, 2373, 1761, 3278, 0, 2235, 0, 0, 0, 617, 1837, 2801, 1141, 0, 3029, 0, 3406, 3781, 0, 0, 684, 2097, 0, 923, 2966, 0, 3877, 282, 3717, 3011, 3972, 1568, 0, 1032, 3865, 3444, 3234, 4066, 3709, 0, 1607, 3274, 235, 3287, 2572, 2700, 1179, 593, 0, 2100, 740, 0, 2039, 0, 0, 0, 203, 0, 0, 0, 1449, 2664, 3709, 2610, 2587, 0, 0, 1493, 3686, 3203, 0, 2142, 0, 3940, 0, 0, 3063, 3572, 0, 0, 0, 1937, 1420, 1198, 0, 0, 2756, 0, 345, 2458, 0, 3340, 1247, 2031, 2068, 0, 0, 308, 1841, 296, 2007, 0, 0, 0, 1513, 725, 3454, 2552, 3571, 4059, 0, 0, 3198, 2426, 3741, 1030, 0, 0, 2174, 1014, 0, 3941, 1381, 1283, 0, 0, 2534, 2419, 0, 2689, 2200, 2153, 1344, 234, 1482, 2182, 3302, 3751, 0, 465, 0, 2136, 1985, 3409, 3730, 0, 0, 427, 384, 849, 2824, 2430, 3727, 0, 4087, 687, 3710, 3638, 0, 3060, 0, 435, 1441, 3697, 3170, 0, 2870, 0, 430, 0, 0, 882, 1860, 0, 3629, 0, 487, 506, 0, 0, 2384, 0, 2967, 0, 0, 2807, 0, 3192, 1094, 2829, 1039, 3107, 3106, 356, 1801, 2415, 3141, 3667, 3089, 0, 1820, 0, 3522, 3906, 2347, 1713, 3145, 0, 0, 1578, 0, 326, 0, 1079, 3664, 3925, 2210, 1922, 4029, 3058, 2070, 0, 0, 3895, 2400, 3606, 386, 429, 2224, 469, 3661, 0, 0, 2055, 299, 2207, 3808, 157, 0, 3284, 0, 3008, 3973, 0, 2452, 4066, 2717, 0, 2258, 2133, 0, 377, 2837, 1878, 3745, 1898, 1065, 0, 3249, 1696, 3864, 3127, 0, 489, 0, 0, 2123, 2856, 497, 3184, 4028, 0, 2606, 2221, 1304, 3988, 0, 2797, 1309, 0, 3518, 1418, 1411, 2155, 3709, 0, 356, 1156, 0, 0, 1681, 0, 3167, 190, 3334, 1360, 3791, 2293, 963, 0, 3854, 1670, 3642, 0, 0, 3437, 3523, 1702, 4016, 0, 405, 3993, 824, 3808, 0, 2847, 1607, 0, 0, 2728, 3195, 573, 2412, 1095, 0, 2962, 1833, 3366, 0, 367, 1331, 1371, 3507, 0, 0, 3490, 2711, 0, 2475, 2555, 2383, 3164, 1819, 1231, 3878, 2707, 0, 0, 0, 365, 3827, 2612, 0, 3596, 0, 3203, 0, 518, 0, 4085, 3950, 343, 335, 3090, 601, 218, 0, 4036, 1131, 4012, 1574, 3737, 4083, 285, 2657, 0, 0, 0, 3117, 0, 3262, 0, 3301, 402, 0, 110, 1998, 408, 0, 421, 2836, 352, 0, 1343, 2041, 2548, 3796, 3771, 1566, 0, 3007, 1563, 2795, 2261, 2749, 0, 2421, 2957, 3326, 2357, 2957, 2800, 3303, 3483, 1313, 3727, 1652, 1952, 1086, 3489, 620, 3520, 2128, 472, 285, 3871, 3073, 3036, 0, 2536, 3020, 2184, 1422, 2956, 0, 0, 346, 1966, 0, 2571, 0, 1377, 3987, 0, 0, 2585, 3723, 2827, 0, 1196, 265, 3014, 2880, 414, 3226, 2647, 3475, 2812, 730, 0, 593, 497, 2668, 0, 862, 2448, 3970, 3391, 2127, 0, 576, 421, 2438, 3936, 3101, 4064, 2541, 468, 2752, 1397, 366, 2446, 0, 382, 465, 1176, 2510, 4046, 3282, 2664, 1479, 2276, 449, 0, 801, 0, 3044, 3752, 2802, 270, 3357, 2278, 3308, 3532, 2554, 3848, 1388, 3022, 2137, 0, 0, 3548, 3767, 3036, 686, 1659, 0, 0, 2603, 2859, 0, 0, 4051, 784, 0, 3910, 2644, 4034, 0, 1865, 3846, 509, 0, 1556, 3983, 3123, 0, 0, 273, 1855, 370, 3223, 3522, 3092, 0, 3511, 1055, 3786, 754, 0, 391, 0, 2230, 3302, 0, 3913, 3459, 3873, 4052, 2724, 4038, 0, 2446, 0, 2747, 290, 0, 3604, 4052, 3645, 1971, 3700, 0, 0, 1907, 3815, 3457, 4016, 3093, 1127, 1980, 2299, 1334, 2811, 3188, 3611, 897, 989, 3855, 3423, 269, 477, 3840, 1947, 2267, 3530, 2392, 227, 3728, 1132, 3390, 3628, 411, 2818, 0, 3562, 3343, 310, 0, 1598, 3113, 328, 0, 0, 0, 3431, 0, 1385, 1849, 3636, 2610, 3835, 0, 731, 0, 1512, 0, 460, 0, 0, 0, 0, 3284, 1350, 0, 2560, 3556, 0, 3281, 0, 1627, 0, 0, 1187, 3559, 838, 404, 1908, 2496, 2772, 3126, 3121, 0, 2745, 1115, 2153, 3209, 3573, 1532, 2978, 1161, 2243, 1370, 2933, 0, 0, 0, 965, 583, 1856, 1079, 4042, 4056, 2987, 0, 3623, 1673, 3517, 3193, 1426, 0, 3591, 3505, 2793, 0, 3507, 0, 2199, 1567, 0, 971, 411, 495, 0, 3104, 445, 3172, 3089, 2473, 0, 3934, 1641, 1034, 1827, 672, 1569, 2100, 2955, 3837, 330, 0, 1747, 2806, 2425, 3933, 0, 3986, 2624, 476, 3047, 0, 902, 1056, 1602, 3346, 0, 1266, 4068, 0, 3108, 0, 1489, 1934, 1352, 2844, 1480, 2096, 0, 800, 0, 421, 3787, 0, 0, 500, 1266, 2843, 0, 3037, 3683, 2606, 412, 268, 3880, 0, 3949, 0, 3869, 2681, 0, 0, 3769, 1912, 3075, 2104, 3738, 1769, 977, 2661, 1962, 3265, 3134, 3264, 2817, 3832, 3947, 3825, 2799, 3122, 3997, 3369, 366, 875, 333, 3996, 3684, 3194, 1660, 2314, 1958, 3493, 0, 0, 2566, 1560, 0, 475, 488, 3704, 3472, 0, 0, 0, 4026, 0, 2516, 1017, 1397, 0, 279, 1400, 0, 3257, 3607, 754, 3625, 0, 1532, 3823, 1206, 919, 3965, 3085, 2944, 3499, 0, 2084, 1806, 2215, 0, 0, 2131, 874, 0, 4079, 0, 3077, 2812, 1293, 559, 3126, 619, 1949, 2618, 0, 3410, 1626, 1280, 3997, 3805, 1347, 0, 891, 0, 3283, 3056, 0, 1239, 0, 0, 0, 1599, 3264, 2848, 3004, 1759, 1881, 2291, 0, 3785, 1856, 3747, 3164, 3046, 3586, 2799, 0, 0, 2295, 3605, 0, 2904, 4013, 3736, 0, 0, 3927, 2767, 1002, 0, 2152, 0, 0, 3990, 0, 3502, 581, 2989, 2007, 0, 2186, 2578, 3729, 0, 634, 1766, 0, 3570, 2092, 3182, 1133, 472, 1773, 480, 2645, 2141, 3448, 0, 1524, 2642, 2042, 209, 658, 257, 2372, 3304, 1149, 0, 3443, 0, 2595, 1110, 2456, 2164, 2243, 0, 3277, 3862, 3783, 3828, 2991, 0, 1940, 0, 430, 0, 0, 2260, 2177, 2830, 3538, 3723, 0, 0, 3023, 3790, 3017, 0, 0, 0, 0, 3415, 2938, 3886, 2861, 0, 688, 3191, 3037, 2549, 3394, 2452, 0, 0, 0, 0, 3474, 1526, 1157, 2995, 3505, 2295, 0, 3912, 0, 1728, 1435, 0, 0, 0, 1978, 2389, 2732, 0, 493, 0, 813, 3187, 2364, 1060, 3713, 0, 0, 0, 414, 3931, 973, 0, 2638, 0, 775, 428, 4039, 1905, 2048, 2826, 0, 660, 0, 0, 3912, 3930, 0, 0, 4006, 0, 0, 1584, 0, 136, 2199, 0, 1949, 0, 0, 522, 3226, 0, 3239, 3508, 3111, 2874, 281, 2239, 2794, 3795, 0, 2000, 0, 3427, 0, 2282, 3669, 2682, 3740, 4005, 927, 3313, 2579, 3640, 3581, 4031, 0, 2744, 0, 0, 3852, 0, 2880, 3360, 2779, 3217, 4096, 3397, 3071, 2523, 538, 159, 937, 2567, 1679, 403, 3215, 3894, 0, 1290, 943, 0, 3711, 0, 2966, 1609, 3761, 0, 1568, 3951, 2882, 3725, 399, 0, 2231, 3755, 335, 0, 0, 1366, 3920, 3307, 0, 3151, 1019, 2942, 2404, 1910, 3513, 1559, 2734, 2269, 4067, 0, 3056, 3189, 3150, 942, 0, 0, 2119, 491, 425, 2416, 3470, 0, 2941, 0, 3848, 0, 3436, 0, 1645, 3563, 3318, 4091, 0, 0, 3033, 3159, 0, 3592, 1725, 2907, 0, 3826, 0, 3681, 2630, 0, 3218, 0, 0, 0, 2391, 1166, 0, 1472, 2472, 0, 0, 3515, 0, 2986, 3042, 3875, 607, 2328, 0, 0, 2658, 0, 1665, 0, 0, 3856, 0, 0, 3306, 3896, 2201, 1364, 1520, 0, 2753, 2155, 1297, 0, 3493, 2221, 3856, 1852, 3153, 3847, 0, 1781, 0, 0, 3609, 822, 2161, 3273, 2284, 0, 0, 2443, 0, 4058, 1365, 2468, 0, 3107, 0, 0, 3981, 3081, 0, 1794, 0, 3074, 0, 2928, 3069, 3517, 2517, 3925, 3403, 3549, 3002, 1815, 841, 392, 0, 652, 0, 3923, 2845, 0, 451, 124, 4060, 3214, 2331, 3352, 3610, 515, 4014, 3131, 3159, 0, 2898, 1288, 1291, 2774, 722, 801, 3323, 0, 0, 3349, 0, 0, 0, 3559, 0, 2428, 2128, 0, 1955, 2131, 0, 3534, 3271, 0, 663, 1789, 1667, 0, 0, 0, 2722, 2560, 2298, 2893, 3686, 3096, 0, 2829, 1728, 2940, 1715, 379, 2111, 667, 3173, 1290, 0, 3722, 1896, 0, 1596, 3542, 431, 0, 2084, 0, 0, 3481, 3759, 0, 0, 2455, 1526, 0, 0, 0, 0, 3048, 2479, 0, 3395, 1211, 3820, 2346, 2361, 2865, 3002, 0, 2413, 991, 511, 0, 3196, 2493, 726, 0, 269, 0, 1864, 1338, 0, 3305, 0, 428, 0, 2293, 3369, 0, 1748, 2215, 1443, 1084, 4084, 152, 1842, 0, 2707, 251, 0, 0, 3931, 1748, 0, 0, 2319, 0, 0, 2932, 3595, 0, 0, 0, 1278, 2979, 1593, 3509, 0, 3800, 2790, 479, 3901, 0, 3716, 2418, 738, 0, 3716, 3740, 0, 568, 2338, 427, 1536, 514, 2376, 0, 0, 830, 2493, 3150, 268, 1640, 884, 3834, 2178, 3337, 2618, 3565, 3553, 1842, 1992, 0, 3730, 0, 0, 0, 1518, 427, 2605, 0, 2440, 3232, 0, 3414, 0, 1702, 0, 3847, 4085, 0, 3858, 2816, 0, 941, 2041, 0, 3911, 1933, 0, 3376, 1415, 3235, 2144, 3981, 3389, 2805, 888, 3298, 3388, 4020, 3524, 713, 0, 2563, 1409, 2152, 0, 3321, 3869, 0, 0, 2955, 2521, 595, 1985, 1542, 4051, 4010, 488, 0, 0, 0, 2759, 487, 0, 3049, 3866, 0, 301, 2202, 2740, 2287, 2802, 2422, 154, 878, 3772, 0, 3637, 0, 0, 0, 647, 0, 0, 0, 995, 452, 1242, 1941, 3191, 3700, 2809, 1214, 2810, 1241, 2814, 469, 3692, 3696, 0, 3377, 0, 2224, 4025, 2245, 0, 772, 0, 3670, 2607, 0, 2292, 1686, 2913, 3708, 1805, 3633, 1846, 2064, 0, 3601, 1744, 3794, 3859, 2489, 3066, 0, 2502, 0, 0, 2067, 2621, 3955, 1707, 0, 0, 0, 3379, 1891, 3170, 443, 444, 0, 1520, 3285, 0, 1276, 0, 2820, 0, 0, 0, 0, 3287, 4051, 3315, 0, 1514, 1697, 3468, 3372, 431, 0, 3386, 0, 0, 1045, 4072, 3271, 0, 3757, 3593, 3844, 0, 1680, 930, 0, 2660, 2962, 2594, 3407, 3188, 0, 2145, 3169, 0, 0, 1886, 441, 1655, 0, 0, 0, 3154, 0, 2219, 2245, 295, 2657, 1510, 0, 3503, 0, 0, 3626, 3310, 2591, 0, 0, 2416, 644, 0, 3864, 0, 2792, 2386, 351, 0, 2027, 2980, 2211, 1663, 2047, 919, 2426, 0, 4002, 0, 2110, 418, 0, 1878, 0, 3016, 3730, 3707, 0, 1242, 0, 0, 3712, 1372, 0, 4031, 0, 0, 3927, 3296, 2694, 4042, 2762, 3158, 0, 0, 1506, 1246, 3832, 1075, 0, 2753, 0, 3846, 2976, 0, 3515, 3863, 0, 3995, 676, 3994, 0, 866, 3206, 3227, 348, 3443, 222, 3507, 2700, 1653, 1598, 2121, 455, 2794, 0, 3914, 3099, 1346, 1671, 3567, 0, 1850, 0, 4060, 324, 0, 2544, 0, 252, 1331, 2028, 0, 912, 2937, 2679, 66, 2353, 0, 0, 0, 2246, 0, 1505, 3750, 2968, 0, 2186, 1851, 2549, 0, 3702, 0, 1791, 0, 0, 0, 1027, 0, 2896, 1247, 385, 285, 4020, 0, 2338, 481, 1588, 439, 2518, 2720, 3694, 3433, 0, 0, 0, 2379, 687, 2151, 0, 409, 0, 3741, 4016, 2872, 3319, 3169, 0, 0, 3572, 4074, 0, 441, 0, 4017, 3729, 3084, 0, 0, 1961, 2318, 0, 395, 1658, 2424, 3286, 2551, 4087, 3940, 2915, 3207, 0, 0, 3009, 0, 2716, 0, 3603, 1130, 3986, 2565, 317, 420, 0, 1439, 2725, 3954, 0, 0, 1061, 0, 1987, 3320, 1067, 3076, 2302, 2709, 679, 0, 1504, 3211, 317, 0, 3031, 3036, 3238, 1189, 0, 3498, 3975, 3830, 2415, 3564, 4093, 658, 1339, 483, 1214, 2290, 2350, 2789, 3550, 0, 0, 956, 1380, 3928, 3602, 1514, 3274, 2154, 351, 0, 331, 0, 2961, 1035, 3952, 1496, 3897, 2863, 432, 0, 968, 3998, 0, 0, 3993, 2356, 2417, 3857, 0, 0, 3113, 1475, 3809, 3917, 449, 2044, 0, 880, 1488, 783, 1236, 3250, 2910, 2144, 2343, 0, 0, 850, 0, 0, 2122, 1279, 2106, 0, 0, 0, 2965, 1641, 2950, 1049, 3749, 0, 2283, 1842, 2622, 496, 0, 3861, 2763, 3800, 4062, 0, 1747, 1139, 3598, 0, 3735, 2757, 3157, 3657, 780, 3999, 582, 3929, 1991, 3881, 0, 1222, 0, 2168, 3859, 545, 0, 921, 2016, 1199, 1938, 1363, 0, 2861, 0, 3456, 4095, 2112, 2702, 4075, 0, 0, 2002, 3718, 346, 4004, 0, 2950, 0, 2650, 3192, 3656, 3010, 2697, 3272, 385, 3903, 4062, 3345, 0, 1599, 3444, 0, 3803, 3140, 0, 1610, 3974, 3050, 0, 3726, 2052, 4005, 2052, 2645, 253, 2874, 0, 3253, 3821, 0, 2874, 466, 0, 1573, 2172, 3964, 1758, 2866, 3713, 2268, 3349, 1705, 3118, 0, 0, 0, 2579, 3552, 1604, 252, 2805, 2490, 1895, 1732, 498, 0, 489, 0, 1043, 2650, 0, 0, 3521, 0, 0, 1266, 1106, 2725, 0, 0, 0, 454, 2528, 3083, 0, 0, 0, 0, 446, 0, 3594, 0, 0, 0, 1336, 0, 0, 0, 3166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3450, 3826, 2429, 0, 1934, 2533, 0, 0, 4087, 0, 3538, 0, 0, 0, 0, 0, 0, 0, 2028, 0, 1314, 0, 0, 0, 1935, 3780, 485, 0, 2560, 0, 0, 0, 0, 2394, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 0, 0, 3600, 0, 0, 2430, 0, 0, 3111, 0, 3479, 3838, 0, 867, 2131, 0, 1502, 0, 3392, 0, 1743, 0, 0, 974, 0, 0, 0, 0, 3781, 0, 0, 0, 4089, 0, 2241, 3945, 2013, 0, 2028, 0, 0, 0, 0, 0, 0, 2142, 0, 3311, 0, 0, 0, 3136, 0, 2735, 3526, 0, 0, 0, 0, 3079, 0, 0, 0, 0, 0, 3132, 0, 0, 0, 3135, 0, 1472, 0, 0, 0, 0, 0, 0, 0, 3532, 0, 1493, 0, 0, 0, 0, 0, 0, 0, 0, 2869, 3608, 0, 808, 2838, 3992, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4026, 0, 0, 0, 3481, 2534, 2683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3269, 0, 0, 0, 2029, 2457, 3198, 3881, 0, 1646, 0, 0, 0, 0, 0, 2771, 742, 0, 0, 0, 3032, 0, 0, 0, 0, 0, 0, 2615, 395, 0, 0, 2299, 0, 0, 0, 0, 0, 0, 3945, 0, 3677, 1078, 0, 3904, 0, 1014, 0, 0, 0, 0, 0, 1516, 0, 0, 0, 0, 0, 0, 0, 0, 2439, 3213, 2650, 3128, 0, 4080, 2770, 0, 0, 0, 4003, 0, 0, 3745, 1630, 0, 0, 2099, 3062, 0, 0, 3254, 0, 1590, 2078, 0, 3893, 0, 2418, 0, 0, 0, 1132, 0, 0, 0, 0, 1647, 1550, 0, 0, 0, 0, 0, 0, 0, 2010, 0, 0, 1995, 2115, 0, 0, 0, 0, 0, 0, 0, 3912, 1163, 0, 1714, 0, 0, 0, 0, 0, 3958, 1315, 0, 511, 0, 1268, 0, 0, 0, 0, 0, 0, 4026, 1366, 0, 0, 0, 0, 0, 2157, 0, 0, 2973, 0, 0, 0, 3345, 0, 1005, 1120, 0, 0, 3926, 0, 0, 0, 0, 0, 2521, 0, 0, 2970, 0, 0, 0, 0, 0, 3512, 0, 0, 2402, 2301, 0, 0, 4063, 0, 0, 0, 3763, 795, 0, 0, 4046, 0, 1394, 0, 0, 0, 1259, 3195, 0, 2983, 0, 0, 0, 0, 494, 0, 0, 2266, 3297, 0, 0, 2631, 0, 3833, 0, 0, 2670, 2881, 0, 447, 2479, 0, 0, 0, 2902, 2608, 0, 2280, 3506, 3915, 0, 0, 0, 0, 0, 2571, 0, 0, 0, 1275, 2279, 2246, 0, 3321, 0, 0, 1576, 0, 0, 0, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 3532, 2333, 0, 3309, 0, 1958, 0, 0, 0, 0, 3660, 0, 0, 0, 0, 1948, 1473, 0, 0, 3652, 4047, 3568, 0, 0, 0, 0, 3926, 3315, 3449, 0, 1770, 1487, 1978, 4070, 0, 0, 0, 0, 0, 3708, 0, 0, 0, 0, 0, 899, 0, 0, 500, 1813, 3939, 0, 0, 0, 482, 0, 0, 1359, 0, 0, 0, 0, 2925, 0, 0, 0, 0, 0, 0, 1809, 0, 3836, 0, 2843, 0, 0, 0, 2827, 3321, 0, 1970, 0, 0, 0, 0, 0, 2627, 3384, 0, 3142, 0, 2776, 1569, 3766, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3747, 735, 0, 0, 1876, 0, 0, 0, 0, 0, 3339, 0, 0, 0, 1350, 3224, 2630, 0, 459, 455, 3510, 0, 0, 0, 3960, 3961, 0, 0, 0, 0, 3377, 3214, 0, 0, 0, 288, 0, 2267, 3233, 0, 0, 637, 0, 2714, 0, 0, 2780, 2406, 0, 0, 0, 0, 3467, 0, 0, 0, 0, 2883, 0, 3010, 0, 0, 3130, 0, 0, 1772, 0, 0, 0, 0, 0, 0, 2469, 0, 0, 0, 0, 0, 0, 456, 0, 1542, 0, 3945, 0, 3359, 3461, 0, 2700, 0, 0, 0, 0, 0, 3898, 0, 0, 0, 0, 0, 0, 3089, 0, 0, 3331, 0, 0, 3767, 3735, 2582, 0, 3094, 0, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 3100, 0, 0, 3611, 0, 0, 0, 0, 3679, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3111, 0, 0, 3435, 0, 3967, 0, 0, 3855, 0, 0, 0, 3751, 0, 0, 0, 0, 3103, 3382, 2498, 0, 0, 0, 0, 3785, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 2636, 1234, 0, 0, 2962, 0, 0, 0, 3120, 0, 0, 458, 0, 2853, 0, 0, 0, 0, 0, 0, 3339, 0, 0, 1277, 2956, 1415, 0, 0, 0, 0, 0, 0, 0, 1423, 0, 0, 0, 0, 1292, 0, 625, 0, 1098, 0, 0, 1850, 3698, 1452, 0, 0, 0, 0, 1186, 0, 0, 0, 0, 0, 0, 0, 0, 2947, 3068, 0, 2785, 0, 0, 2314, 0, 3959, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2687, 417, 0, 0, 0, 3907, 0, 0, 2140, 0, 0, 3862, 0, 3603, 0, 0, 0, 0, 0, 0, 3609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 3477, 0, 598, 0, 0, 0, 2108, 0, 1323, 0, 867, 0, 3638, 0, 0, 0, 1821, 3553, 2779, 0, 0, 1171, 0, 2289, 3368, 0, 0, 0, 3016, 0, 3598, 0, 0, 2838, 0, 0, 0, 3323, 0, 3249, 0, 0, 3683, 0, 0, 0, 0, 1734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3503, 0, 0, 0, 2189, 0, 4018, 0, 0, 1419, 0, 1835, 2557, 0, 0, 0, 0, 1314, 0, 698, 0, 0, 0, 0, 0, 2193, 0, 0, 4088, 0, 2967, 0, 449, 0, 3987, 3442, 0, 984, 479, 0, 2925, 0, 0, 0, 2274, 3266, 759, 0, 0, 1444, 2810, 2715, 1279, 0, 0, 0, 1753, 3201, 0, 0, 3916, 3942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3307, 0, 0, 2329, 0, 0, 0, 0, 0, 1472, 0, 413, 2062, 3154, 0, 0, 847, 0, 3178, 0, 0, 3882, 449, 1635, 0, 3721, 2704, 0, 0, 3663, 3561, 0, 0, 0, 2365, 3148, 0, 0, 3670, 1262, 0, 0, 0, 3267, 0, 0, 0, 0, 0, 0, 0, 3361, 378, 0, 0, 1836, 2065, 0, 3714, 0, 3850, 3597, 1800, 2917, 0, 4082, 0, 0, 0, 0, 3920, 2007, 0, 3009, 1783, 0, 0, 0, 0, 1375, 0, 0, 0, 0, 0, 0, 0, 0, 3543, 2441, 0, 0, 0, 0, 473, 0, 0, 3734, 0, 3887, 2604, 0, 0, 0, 0, 3922, 3643, 3645, 0, 0, 0, 2527, 0, 0, 0, 0, 0, 3165, 1025, 0, 0, 0, 0, 0, 0, 2440, 0, 0, 3166, 0, 0, 0, 274, 3426, 3093, 0, 0, 0, 3648, 0, 3389, 2068, 3152, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 3413, 0, 0, 0, 0, 3633, 3682, 1699, 423, 0, 0, 0, 380, 0, 0, 0, 4019, 0, 0, 592, 0, 0, 0, 0, 0, 3773, 0, 0, 0, 0, 0, 2677, 3457, 0, 421, 3476, 3804, 0, 0, 0, 0, 3993, 0, 4007, 0, 0, 3729, 409, 1990, 0, 3826, 0, 0, 3575, 0, 0, 0, 0, 0, 2723, 0, 3735, 0, 0, 0, 3043, 0, 1797, 0, 0, 0, 0, 0, 0, 554, 1147, 1652, 0, 0, 3596, 0, 2580, 0, 2628, 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 1485, 0, 2500, 0, 1968, 0, 0, 2482, 0, 2710, 0, 2751, 1710, 399, 0, 0, 3526, 378, 2742, 0, 0, 0, 969, 0, 0, 0, 0, 690, 0, 3238, 3400, 3975, 0, 0, 2465, 2879, 0, 0, 0, 0, 2183, 2785, 0, 0, 0, 0, 0, 3084, 3350, 3937, 0, 2951, 4088, 1097, 3802, 0, 0, 0, 0, 0, 1096, 0, 0, 2944, 2885, 394, 0, 0, 0, 2757, 0, 0, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 4033, 0, 0, 1917, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055, 0, 0, 3110, 0, 3742, 0, 0, 3419, 0, 0, 0, 0, 0, 2669, 0, 3865, 0, 0, 0, 0, 0, 0, 0, 3462, 0, 0, 4015, 3989, 0, 0, 0, 0, 0, 3375, 0, 2842, 0, 3633, 0, 0, 0, 0, 0, 3510, 0, 0, 0, 0, 0, 0, 0, 0, 3827, 0, 0, 0, 0, 2820, 1424, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3495, 0, 0, 0, 0, 1403, 3281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 3354, 0, 192, 0, 3579, 0, 0, 0, 3106, 2854, 0, 796, 0, 0, 0, 1401, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 1329, 0, 2990, 3400, 3966, 0, 2739, 2214, 0, 2290, 1542, 0, 0, 0, 1801, 0, 0, 0, 3796, 0, 0, 0, 2562, 2540, 0, 1969, 0, 0, 2198, 0, 0, 0, 4060, 1546, 0, 0, 0, 0, 2034, 0, 1384, 0, 0, 0, 0, 0, 0, 0, 2611, 2678, 0, 1884, 0, 0, 3680, 2977, 0, 2671, 0, 2904, 0, 0, 0, 3868, 0, 0, 3963, 0, 0, 0, 2619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 2895, 3128, 0, 0, 2828, 0, 0, 0, 0, 0, 0, 0, 2345, 3169, 0, 0, 3954, 0, 1300, 0, 1392, 0, 2459, 0, 0, 2906, 395, 0, 323, 0, 0, 0, 0, 0, 3607, 0, 0, 1304, 0, 500, 0, 0, 0, 0, 3344, 0, 0, 0, 0, 2336, 0, 0, 0, 2072, 3254, 2922, 4023, 0, 0, 3408, 0, 415, 0, 490, 0, 0, 1202, 3327, 0, 2464, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1073, 0, 1510, 1883, 0, 2606, 1891, 0, 3438, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 2119, 3666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4091, 1667, 0, 0, 0, 0, 0, 3497, 0, 0, 0, 0, 0, 0, 4088, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 856, 0, 0, 2233, 0, 0, 0, 0, 0, 4018, 0, 1234, 0, 0, 2822, 3066, 0, 0, 0, 3725, 0, 1178, 3260, 0, 0, 0, 0, 0, 0, 0, 1946, 2282, 0, 2527, 0, 3982, 0, 3909, 4009, 0, 2029, 2761, 0, 0, 0, 3643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 0, 2611, 683, 0, 0, 1619, 0, 2064, 0, 0, 0, 3504, 0, 0, 0, 3576, 3526, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3325, 0, 0, 3492, 2583, 2675, 2651, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 2711, 0, 0, 0, 0, 1536, 0, 0, 1077, 0, 2791, 0, 0, 0, 3817, 3790, 0, 0, 2418, 0, 0, 3678, 2104, 0, 1929, 1868, 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3241, 0, 0, 0, 0, 4055, 2876, 0, 0, 0, 0, 3173, 0, 0, 3395, 0, 0, 3213, 3850, 2747, 0, 0, 0, 0, 0, 3576, 0, 0, 3652, 0, 0, 0, 0, 387, 0, 3299, 3485, 0, 3416, 1756, 1819, 1609, 0, 0, 2187, 3096, 0, 0, 796, 0, 2842, 0, 0, 2989, 0, 2908, 0, 0, 0, 2457, 0, 0, 0, 0, 3822, 0, 0, 0, 1408, 0, 0, 3665, 3067, 3087, 0, 980, 0, 0, 3962, 0, 2030, 0, 0, 2315, 0, 0, 3855, 0, 4095, 0, 0, 0, 0, 1093, 1696, 1566, 3308, 0, 0, 2238, 0, 3818, 3695, 1405, 0, 2247, 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 2529, 0, 0, 982, 0, 0, 0, 3848, 0, 0, 0, 0, 0, 3982, 0, 0, 0, 3725, 1246, 2676, 3357, 2020, 0, 0, 0, 0, 3062, 2234, 0, 0, 0, 0, 3541, 0, 488, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 2559, 0, 0, 0, 2213, 0, 0, 0, 0, 0, 0, 0, 3984, 0, 0, 0, 0, 727, 3991, 0, 0, 0, 1840, 0, 3674, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0, 3158, 0, 0, 3870, 0, 0, 0, 0, 0, 0, 1966, 3974, 3220, 2808, 0, 3744, 0, 0, 0, 0, 0, 879, 0, 0, 3057, 3492, 0, 0, 332, 0, 3247, 0, 1784, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3656, 268, 3612, 0, 4030, 0, 874, 0, 2442, 3889, 0, 2274, 0, 0, 0, 1310, 0, 0, 0, 0, 0, 0, 0, 3994, 0, 0, 3554, 0, 3465, 0, 3430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3018, 0, 1385, 0, 0, 0, 0, 349, 3114, 0, 0, 3187, 2629, 3606, 0, 0, 387, 0, 1040, 2901, 0, 0, 0, 0, 1788, 3675, 3904, 0, 0, 0, 0, 0, 3642, 0, 1348, 0, 0, 0, 3447, 0, 4045, 2353, 3771, 0, 0, 0, 2607, 0, 2814, 0, 2438, 2317, 299, 0, 0, 0, 0, 0, 541, 0, 4004, 2591, 0, 0, 0, 0, 3102, 1853, 1789, 3492, 3305, 0, 0, 0, 1965, 0, 3930, 0, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 1335, 0, 0, 1489, 0, 0, 0, 0, 881, 2354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 3567, 1796, 3307, 0, 615, 2393, 0, 3531, 0, 0, 0, 2372, 0, 3689, 0, 3253, 0, 3556, 0, 0, 0, 0, 1027, 0, 1729, 3813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598, 0, 975, 1503, 2537, 2530, 0, 0, 0, 2221, 1992, 3588, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 1465, 0, 0, 1698, 0, 3499, 0, 565, 0, 0, 2689, 3732, 2169, 3510, 4067, 0, 0, 2434, 3135, 0, 0, 2886, 2998, 0, 0, 0, 1724, 3293, 0, 0, 436, 0, 0, 0, 0, 0, 0, 1305, 0, 0, 0, 2927, 2237, 0, 0, 4073, 0, 0, 0, 4017, 0, 3900, 0, 0, 430, 0, 3624, 0, 0, 4050, 3766, 0, 0, 3867, 3320, 1593, 2691, 2984, 0, 0, 3238, 0, 0, 493, 3110, 4023, 0, 0, 0, 0, 2746, 0, 0, 3703, 2980, 0, 3006, 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 3955, 0, 0, 0, 2427, 0, 0, 0, 2125, 386, 0, 2121, 240, 0, 0, 1456, 0, 3004, 0, 0, 339, 3582, 0, 0, 0, 0, 0, 0, 0, 3731, 441, 0, 126, 3164, 837, 0, 1580, 4063, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3842, 3998, 0, 0, 0, 0, 3860, 0, 0, 0, 0, 0, 0, 2546, 0, 1809, 3646, 2550, 3687, 1642, 0, 3001, 1879, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 2679, 0, 3804, 0, 1567, 0, 0, 0, 0, 0, 2905, 0, 2919, 870, 3430, 0, 1237, 0, 3842, 0, 4022, 3034, 0, 2026, 1275, 0, 0, 0, 2922, 0, 0, 0, 0, 3255, 1223, 0, 0, 0, 0, 0, 2250, 2977, 0, 1962, 3718, 0, 384, 678, 1564, 0, 0, 0, 0, 0, 0, 1047, 0, 2918, 0, 4047, 3892, 0, 1882, 0, 0, 3900, 0, 2926, 0, 1659, 0, 0, 0, 0, 0, 0, 3473, 916, 0, 0, 0, 0, 3384, 0, 0, 0, 2964, 0, 0, 2974, 0, 0, 2929, 0, 1628, 0, 3787, 0, 0, 0, 0, 665, 2905, 1656, 0, 0, 0, 0, 0, 0, 0, 2939, 0, 1677, 0, 3891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3041, 0, 0, 0, 0, 3074, 0, 0, 0, 0, 0, 3801, 0, 0, 2426, 3342, 0, 1364, 3064, 0, 0, 2171, 2297, 0, 0, 284, 2972, 0, 2684, 2330, 0, 3061, 1203, 4055, 3896, 0, 0, 777, 0, 0, 0, 0, 375, 0, 2437, 0, 1469, 0, 0, 0, 0, 0, 2251, 0, 0, 0, 0, 0, 1494, 0, 1928, 0, 1409, 0, 0, 0, 0, 3607, 1875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1524, 0, 1450, 1613, 2405, 0, 0, 3794, 0, 0, 0, 1707, 3381, 0, 0, 1946, 3370, 2076, 2487, 3889, 3952, 0, 0, 0, 0, 2108, 1879, 1703, 0, 0, 0, 0, 0, 3088, 0, 4032, 2654, 0, 0, 0, 0, 0, 0, 0, 2748, 1754, 0, 3123, 494, 3455, 0, 0, 0, 0, 0, 3088, 0, 0, 0, 3958, 3984, 2090, 0, 2808, 3289, 0, 658, 0, 2005, 0, 2837, 0, 0, 0, 3617, 1376, 0, 0, 1772, 1704, 3484, 0, 0, 0, 0, 0, 0, 0, 2661, 0, 3651, 0, 2178, 0, 0, 1475, 0, 555, 0, 0, 0, 1153, 4045, 0, 0, 3279, 0, 0, 2327, 285, 0, 0, 0, 0, 0, 3888, 0, 0, 0, 2483, 0, 0, 0, 2081, 1751, 3392, 0, 0, 3583, 4038, 3112, 0, 0, 0, 0, 4047, 0, 0, 2501, 2855, 357, 0, 0, 0, 0, 0, 3296, 0, 0, 0, 0, 3342, 0, 812, 826, 0, 0, 0, 0, 0, 0, 0, 0, 2242, 0, 0, 2769, 0, 0, 3658, 0, 2839, 0, 0, 1936, 0, 0, 2201, 0, 3595, 0, 0, 0, 2458, 0, 3370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1509, 3200, 0, 3353, 2049, 2672, 0, 0, 0, 2382, 0, 0, 0, 0, 3719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3096, 1959, 0, 0, 0, 2696, 4066, 0, 3300, 0, 0, 0, 0, 3186, 3809, 0, 3625, 0, 0, 0, 0, 0, 0, 2030, 0, 3942, 0, 0, 4001, 0, 3779, 0, 0, 4064, 0, 3909, 2958, 0, 0, 2772, 0, 0, 0, 0, 0, 2069, 867, 2477, 862, 2668, 0, 3888, 0, 2076, 0, 3549, 257, 1110, 271, 3097, 0, 2282, 0, 0, 0, 3830, 2458, 0, 3905, 0, 0, 0, 0, 0, 0, 3720, 0, 0, 0, 1425, 0, 0, 0, 2699, 3168, 0, 3933, 0, 0, 3281, 0, 3908, 0, 0, 0, 0, 0, 3784, 0, 3767, 0, 2460, 0, 0, 0, 0, 2900, 0, 0, 0, 0, 3812, 1752, 2226, 3427, 0, 0, 0, 0, 0, 1912, 2900, 0, 0, 0, 3225, 2478, 0, 0, 3252, 0, 2175, 3450, 0, 3131, 0, 0, 0, 0, 473, 0, 1216, 0, 3915, 0, 1341, 443, 0, 2434, 3364, 3667, 0, 2782, 0, 0, 4065, 3948, 0, 0, 0, 0, 0, 1836, 0, 382, 0, 0, 3613, 0, 0, 1968, 3490, 0, 0, 0, 3857, 3119, 1619, 3528, 3401, 0, 0, 3792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, 1870, 1530, 4094, 1932, 2975, 3828, 3994, 0, 1934, 2672, 0, 0, 0, 0, 1704, 0, 0, 1798, 0, 0, 0, 544, 0, 3064, 0, 404, 0, 0, 1391, 0, 0, 0, 0, 4008, 0, 0, 2749, 3736, 3724, 0, 3768, 0, 0, 0, 0, 0, 3196, 0, 0, 0, 496, 2035, 0, 3599, 0, 0, 0, 0, 0, 0, 0, 2565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3980, 3570, 0, 0, 0, 0, 3908, 0, 4002, 0, 0, 0, 2868, 0, 0, 1701, 2822, 0, 0, 0, 0, 0, 3274, 0, 3176, 0, 0, 0, 0, 0, 3990, 0, 0, 0, 0, 0, 0, 0, 3551, 0, 0, 0, 0, 0, 2285, 0, 0, 2806, 0, 0, 0, 0, 0, 1918, 0, 0, 3676, 2024, 2539, 0, 4039, 0, 0, 2624, 0, 0, 1582, 2830, 0, 0, 0, 0, 0, 3641, 0, 1823, 0, 0, 0, 3976, 3287, 0, 2822, 0, 0, 0, 0, 0, 1121, 417, 0, 1828, 0, 0, 0, 0, 1237, 217, 0, 0, 0, 0, 0, 3816, 0, 0, 0, 0, 0, 0, 3503, 0, 2906, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2453, 3108, 0, 3277, 0, 0, 0, 0, 0, 3285, 2688, 0, 0, 0, 0, 0, 3758, 0, 0, 0, 0, 0, 3707, 4024, 3680, 1723, 481, 2473, 1166, 3245, 3365, 0, 0, 2149, 0, 4034, 0, 1812, 0, 4081, 0, 0, 0, 0, 0, 0, 3586, 3292, 0, 0, 0, 0, 0, 0, 0, 0, 3755, 0, 0, 4065, 0, 0, 0, 0, 0, 1963, 0, 0, 0, 763, 0, 458, 0, 2927, 2173, 0, 0, 0, 3818, 0, 0, 0, 0, 4001, 3929, 2264, 2325, 0, 1374, 0, 0, 0, 3016, 0, 0, 0, 3975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3518, 0, 0, 0, 0, 3875, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 826, 0, 2666, 3966, 628, 0, 0, 0, 1122, 2768, 0, 1224, 3057, 1895, 0, 3712, 0, 0, 0, 0, 0, 3581, 0, 0, 0, 0, 0, 3013, 437, 0, 0, 0, 0, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 0, 1779, 3614, 0, 4079, 0, 0, 0, 3129, 3289, 2633, 0, 0, 0, 1144, 0, 4035, 0, 0, 1619, 0, 3599, 0, 2672, 0, 3908, 0, 0, 0, 3302, 0, 2828, 0, 0, 0, 0, 1164, 0, 0, 0, 0, 728, 0, 4022, 0, 0, 494, 0, 0, 2513, 4028, 0, 166, 3486, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 0, 3298, 2470, 1405, 3508, 0, 4006, 0, 0, 3891, 0, 3539, 739, 0, 0, 0, 0, 0, 3280, 0, 0, 0, 2673, 0, 0, 2912, 0, 0, 0, 0, 0, 2409, 0, 2542, 2195, 0, 0, 0, 0, 0, 3207, 0, 0, 2965, 0, 0, 3636, 0, 0, 3653, 0, 0, 0, 3635, 0, 4076, 495, 2015, 0, 0, 3854, 0, 3746, 0, 0, 0, 0, 0, 0, 4094, 0, 0, 0, 3000, 1776, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3118, 2320, 0, 0, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 2212, 3343, 2398, 0, 0, 0, 3952, 0, 0, 2361, 450, 0, 1551, 0, 0, 0, 0, 0, 3701, 0, 0, 0, 0, 1901, 0, 0, 0, 0, 0, 715, 0, 2803, 3946, 3289, 2569, 2388, 1818, 0, 0, 0, 0, 2155, 712, 0, 0, 0, 3638, 0, 0, 0, 3521, 0, 0, 0, 3442, 0, 0, 0, 0, 0, 0, 0, 0, 3093, 3560, 0, 0, 3764, 1296, 0, 2821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632, 0, 0, 0, 3634, 3305, 451, 0, 1874, 4092, 0, 1695, 3147, 2731, 2961, 2857, 0, 0, 0, 4073, 2110, 0, 0, 0, 0, 0, 3082, 0, 3261, 0, 1068, 4024, 3954, 0, 1600, 0, 0, 187, 3411, 0, 0, 0, 2352, 0, 0, 0, 0, 0, 0, 3049, 0, 0, 0, 0, 1812, 0, 0, 0, 1321, 0, 0, 3504, 747, 448, 0, 0, 0, 1317, 2771, 1074, 4038, 0, 0, 0, 0, 0, 0, 2539, 1775, 0, 0, 454, 0, 0, 0, 3805, 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 2621, 0, 3051, 1663, 3715, 0, 3217, 0, 0, 0, 0, 0, 0, 0, 0, 3841, 0, 3737, 0, 0, 0, 328, 1188, 0, 3182, 0, 0, 0, 0, 1496, 0, 2207, 0, 1550, 0, 2491, 0, 1957, 0, 0, 0, 1580, 0, 0, 3932, 0, 3755, 0, 0, 0, 0, 3422, 0, 0, 1327, 2832, 1240, 2593, 2292, 2748, 0, 0, 0, 0, 3075, 3008, 0, 0, 2702, 0, 2187, 1089, 0, 3213, 0, 0, 2158, 0, 3852, 0, 0, 1742, 0, 3874, 0, 0, 0, 0, 3537, 2903, 0, 0, 0, 0, 0, 0, 4076, 2016, 3814, 0, 2080, 0, 3623, 3829, 0, 0, 0, 3418, 0, 0, 861, 0, 0, 3413, 2628, 0, 0, 0, 0, 3911, 2721, 0, 0, 0, 0, 0, 3698, 0, 2721, 0, 0, 3580, 0, 0, 0, 2629, 2053, 0, 0, 0, 3573, 0, 0, 1013, 0, 936, 0, 2850, 0, 0, 3374, 0, 2286, 0, 753, 0, 1648, 4082, 1519, 0, 0, 0, 0, 0, 0, 0, 2423, 0, 0, 0, 0, 3802, 0, 1167, 0, 0, 3047, 0, 3921, 0, 0, 0, 4039, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2163, 0, 3460, 0, 0, 4090, 0, 3450, 0, 2008, 0, 0, 0, 0, 0, 0, 2432, 0, 1783, 3071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2728, 0, 3236, 275, 0, 0, 0, 0, 1548, 0, 1086, 0, 1051, 3222, 0, 0, 0, 0, 0, 0, 3568, 3315, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 1655, 0, 0, 0, 0, 0, 2206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4006, 0, 2992, 2613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3048, 0, 0, 0, 0, 0, 3807, 0, 2348, 0, 2931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 2431, 0, 0, 0, 0, 0, 2862, 0, 0, 3971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3630, 0, 0, 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2470, 0, 0, 0, 0, 0, 0, 0, 0, 3119, 0, 0, 1930, 4041, 0, 2388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3403, 0, 0, 0, 0, 0, 0, 4054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 3600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3219, 0, 0, 0, 0, 0, 1993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2737, 0, 0, 0, 0, 0, 3549, 2935, 0, 0, 0, 2630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3026, 3107, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 0, 1944, 0, 0, 0, 0, 0, 0, 3473, 0, 1113, 0, 2259, 0, 0, 0, 0, 0, 0, 0, 3211, 0, 0, 0, 0, 0, 3926, 0, 0, 4035, 0, 0, 0, 0, 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3316, 0, 0, 0, 0, 1600, 0, 0, 0, 3685, 0, 0, 0, 0, 0, 0, 0, 2512, 0, 0, 2667, 4061, 0, 0, 0, 0, 0, 0, 0, 3304, 0, 0, 918, 2934, 0, 0, 0, 0, 3038, 0, 2646, 0, 0, 0, 0, 0, 0, 0, 3331, 0, 0, 0, 1330, 0, 3932, 0, 0, 0, 0, 1601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3488, 0, 3452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3578, 2160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1500, 0, 0, 3393, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3890, 0, 0, 2616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2831, 0, 0, 0, 475, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3710, 0, 0, 0, 0, 315, 0, 2636, 3811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3329, 0, 0, 3702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2935, 0, 0, 0, 0, 0, 0, 464, 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3446, 0, 0, 0, 0, 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162, 3560, 0, 2653, 0, 0, 0, 0, 0, 1483, 0, 1448, 0, 0, 0, 0, 0, 3924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 990, 861, 0, 3020, 0, 0, 0, 0, 0, 1908, 0, 0, 2992, 0, 0, 0, 0, 0, 0, 2991, 3688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3708, 0, 0, 3152, 0, 0, 0, 0, 0, 2781, 0, 634, 3487, 0, 0, 0, 2561, 0, 3314, 0, 0, 0, 1724, 0, 0, 0, 3578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553, 0, 0, 2344, 0, 0, 0, 0, 0, 4023, 3078, 0, 0, 0, 0, 0, 0, 0, 0, 2927, 0, 3872, 0, 0, 0, 0, 0, 2419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 3787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3662, 0, 0, 0, 0, 0, 0, 3697, 0, 0, 0, 0, 0, 0, 2852, 0, 0, 3470, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 3434, 2303, 4043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 1332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3059, 4010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 2801, 0, 0, 0, 0, 3603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222, 0, 0, 0, 0, 0, 0, 1755, 2978, 2063, 0, 0, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2854, 0, 0, 0, 3996, 0, 0, 0, 0, 3710, 0, 0, 2651, 3170, 0, 0, 0, 892, 3031, 0, 0, 0, 0, 0, 0, 0, 0, 1483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3404, 0, 0, 0, 0, 0, 0, 2353, 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883, 0, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3155, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 1613, 0, 0, 0, 2890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2808, 2662, 0, 0, 3495, 0, 0, 0, 1959, 0, 0, 0, 0, 0, 0, 0, 2936, 0, 0, 0, 0, 0, 2932, 0, 0, 0, 0, 2200, 0, 0, 0, 0, 3368, 0, 3051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3464, 2988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3541, 0, 0, 0, 0, 3054, 0, 3279, 0, 0, 0, 0, 0, 435, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 3471, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3883, 0, 0, 0, 0, 0, 424, 0, 1768, 0, 0, 2486, 0, 0, 0, 2817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2387, 0, 1533, 2660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2411, 0, 0, 0, 0, 0, 3956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2855, 0, 0, 0, 3691, 0, 0, 0, 0, 0, 2207, 0, 0, 0, 0, 0, 0, 0, 0, 2268, 3367, 0, 2719, 0, 0, 0, 0, 0, 0, 2504, 3910, 0, 0, 0, 4044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 2664, 0, 0, 0, 0, 0, 3589, 0, 0, 0, 0, 0, 0, 2734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3569, 0, 0, 0, 0, 2244, 0, 0, 3593, 0, 3303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3101, 0, 2109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3676, 0, 3970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 3971, 0, 0, 0, 0, 2521, 0, 0, 0, 0, 0, 0, 3484, 0, 3239, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2160, 3651, 2933, 0, 0, 0, 3969, 0, 0, 0, 3521, 0, 3938, 0, 0, 0, 0, 0, 0, 0, 0, 1082, 0, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3653, 0, 3400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, 0, 0, 0, 3640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 3147, 0, 0, 0, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1982, 4081, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 1250, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4049, 0, 0, 0, 3979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 1774, 0, 0, 0, 0, 0, 0, 0, 3125, 0, 0, 4079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3995, 0, 0, 3392, 0, 0, 0, 0, 1815, 3631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 0, 0, 3825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2832, 2005, 0, 3943, 0, 0, 0, 0, 0, 3836, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2729, 0, 0, 0, 0, 2678, 0, 0, 0, 0, 0, 0, 3887, 0, 0, 0, 0, 2910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3980, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3657, 0, 0, 0, 0, 0, 0, 1571, 0, 0, 0, 0, 0, 0, 0, 2535, 0, 0, 0, 3147, 1444, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1897, 0, 331, 0, 0, 0, 0, 0, 2471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3334, 0, 0, 0, 0, 0, 0, 0, 4058, 2390, 1712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1864, 0, 0, 2302, 0, 0, 0, 0, 0, 0, 3228, 3831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3649, 0, 0, 0, 0, 0, 2902, 0, 0, 2923, 0, 0, 404, 2936, 3202, 0, 0, 0, 0, 0, 0, 1867, 0, 3619, 0, 0, 0, 0, 2549, 0, 0, 0, 0, 0, 0, 2666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3479, 0, 0, 0, 0, 0, 3499, 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 3439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3917, 0, 0, 0, 0, 0, 0, 3733, 0, 0, 0, 1829, 0, 0, 0, 0, 0, 0, 1892, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 2079, 0, 3133, 0, 3557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3748, 0, 0, 0, 0, 0, 0, 3815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3550, 926, 3637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733, 0, 3564, 0, 0, 3914, 0, 2058, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 2003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3013, 0, 914, 0, 0, 0, 1533, 0, 0, 0, 0, 0, 0, 3620, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440, 2920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3015, 0, 535, 0, 0, 0, 0, 0, 3410, 0, 0, 0, 0, 0, 0, 3632, 2407, 0, 0, 0, 0, 0, 0, 0, 0, 2728, 0, 0, 4040, 0, 0, 0, 0, 3350, 0, 0, 2612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3359, 0, 3530, 2229, 0, 0, 0, 0, 3874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3876, 0, 1365, 3871, 0, 0, 0, 0, 0, 0, 462, 2969, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2228, 2845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3624, 0, 0, 3594, 0, 4013, 0, 0, 0, 0, 662, 0, 2547, 0, 0, 0, 0, 1898, 0, 0, 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2321, 0, 0, 0, 3001, 3989, 0, 0, 2307, 0, 0, 0, 0, 0, 0, 0, 0, 3405, 0, 0, 0, 1602, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1346, 2142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3635, 0, 0, 2953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3343, 0, 0, 0, 0, 0, 0, 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 1605, 814, 0, 0, 0, 0, 0, 3844, 0, 0, 0, 0, 0, 0, 4071, 0, 0, 1575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 865, 0, 2383, 0, 0, 0, 0, 0, 0, 0, 0, 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3864, 0, 0, 0, 2495, 0, 1387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3460, 0, 0, 0, 0, 0, 0, 0, 3990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3628, 0, 2839, 0, 3195, 0, 0, 0, 0, 0, 0, 3528, 3956, 1967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785, 0, 0, 0, 0, 1923, 0, 0, 0, 0, 2023, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 1776, 3885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3336, 0, 0, 0, 0, 0, 0, 0, 0, 3582, 2818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2849, 0, 0, 3947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4003, 0, 0, 0, 3866, 0, 3888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350, 3354, 2909, 0, 0, 0, 0, 0, 0, 3429, 2356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3290, 0, 0, 0, 0, 0, 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3902, 0, 0, 0, 3948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3290, 0, 3479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2916, 0, 0, 0, 0, 0, 3325, 0, 2604, 0, 0, 3474, 0, 3399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3277, 0, 2051, 0, 0, 0, 3215, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3594, 1861, 1786, 0, 0, 0, 1597, 3410, 4059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, 2467, 0, 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 3208, 0, 0, 0, 0, 0, 3976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727, 3084, 3587, 0, 3644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565, 0, 0, 0, 0, 3117, 0, 0, 0, 0, 3604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2915, 0, 0, 0, 0, 0, 0, 0, 2905, 0, 0, 0, 0, 0, 0, 2102, 0, 1549, 0, 3664, 0, 0, 0, 0, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 3824, 0, 0, 0, 0, 0, 0, 2673, 0, 0, 0, 0, 0, 0, 2965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3649, 0, 0, 472, 0, 0, 0, 0, 1638, 0, 3190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2590, 0, 0, 0, 0, 0, 0, 4090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3798, 0, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1680, 0, 0, 0, 0, 0, 0, 0, 0, 2807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1679, 1573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3916, 0, 0, 0, 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4063, 0, 0, 0, 0, 0, 0, 0, 0, 3166, 0, 1817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987, 0, 0, 0, 0, 0, 1073, 0, 3764, 0, 0, 0, 0, 0, 2911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 0, 3388, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3385, 0, 0, 0, 2568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3522, 0, 0, 0, 0, 0, 0, 3748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, 3142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, 3327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3065, 0, 0, 0, 0, 0, 0, 0, 0, 2300, 0, 3189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1066, 0, 0, 0, 0, 0, 2595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1191, 0, 0, 0, 0, 0, 0, 0, 3601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117, 0, 394, 0, 0, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293, 0, 0, 3227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3943, 0, 0, 0, 0, 0, 2494, 0, 0, 0, 0, 0, 0, 0, 0, 2311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3997, 0, 0, 0, 3167, 0, 0, 0, 0, 0, 0, 0, 3502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3531, 0, 2860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1916, 0, 0, 0, 0, 0, 0, 0, 992, 0, 2355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3082, 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 0, 0, 0, 0, 0, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826, 0, 0, 0, 3939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2851, 0, 0, 0, 0, 0, 0, 3579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, 3823, 0, 3338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2823, 0, 1589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3376, 0, 1249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3677, 0, 0, 0, 0, 0, 0, 0, 3746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const uint16_t H_4096_8192_3d_H_cols[] = { +246, 18, 415, 209, 51, 211, 147, 326, 266, 450, 459, 1119, 227, 213, 9, 38, 390, 369, 624, 271, 30, 270, 59, 32, 498, 1286, 482, 514, 154, 1027, 2, 14, 65, 625, 403, 7, 281, 239, 592, 607, 18, 381, 394, 286, 416, 742, 662, 820, 214, 129, 284, 22, 48, 49, 564, 127, 64, 12, 615, 44, 224, 463, 12, 119, 199, 520, 1358, 1, 436, 397, 102, 94, 414, 259, 451, 3, 443, 135, 21, 368, 70, 162, 286, 236, 728, 36, 5, 305, 363, 568, 93, 431, 72, 37, 453, 35, 393, 296, 317, 505, 41, 269, 367, 96, 59, 464, 221, 532, 66, 81, 563, 120, 140, 32, 252, 314, 289, 217, 85, 289, 394, 371, 44, 53, 94, 88, 4, 9, 715, 361, 455, 106, 762, 253, 303, 352, 263, 189, 114, 391, 103, 822, 516, 357, 573, 79, 87, 75, 33, 16, 257, 356, 237, 90, 35, 424, 116, 119, 51, 838, 305, 76, 40, 309, 290, 176, 34, 236, 280, 83, 58, 1052, 7, 179, 219, 329, 606, 292, 541, 338, 178, 34, 248, 285, 63, 152, 185, 96, 97, 536, 20, 49, 701, 148, 328, 269, 709, 602, 179, 93, 1257, 61, 718, 231, 590, 85, 275, 499, 447, 285, 242, 22, 411, 55, 231, 623, 46, 412, 58, 819, 608, 437, 96, 33, 838, 510, 136, 462, 117, 370, 552, 385, 471, 514, 98, 315, 142, 294, 539, 217, 9, 86, 557, 252, 103, 43, 539, 125, 24, 208, 329, 143, 399, 84, 12, 101, 145, 27, 239, 411, 303, 306, 99, 219, 264, 17, 128, 448, 185, 282, 620, 249, 82, 364, 492, 239, 366, 386, 294, 122, 115, 394, 1, 315, 427, 222, 91, 26, 312, 243, 335, 404, 336, 226, 338, 376, 962, 354, 273, 164, 179, 499, 660, 166, 118, 17, 158, 168, 200, 82, 153, 100, 173, 43, 248, 697, 74, 5, 80, 15, 396, 291, 1236, 152, 613, 134, 2, 121, 85, 37, 126, 752, 193, 5, 347, 474, 45, 507, 998, 25, 130, 350, 38, 195, 134, 520, 14, 693, 12, 759, 425, 159, 214, 384, 389, 824, 278, 48, 318, 273, 498, 65, 968, 340, 61, 553, 88, 342, 457, 165, 1, 160, 149, 82, 13, 6, 39, 216, 172, 140, 461, 111, 873, 253, 106, 128, 317, 137, 194, 99, 586, 68, 112, 259, 236, 251, 159, 1201, 128, 115, 88, 41, 274, 791, 889, 288, 896, 13, 1116, 562, 97, 68, 89, 278, 71, 78, 267, 178, 136, 933, 1188, 710, 200, 374, 77, 943, 55, 194, 18, 485, 6, 437, 283, 208, 164, 11, 224, 536, 373, 94, 148, 174, 57, 561, 426, 12, 426, 72, 507, 236, 144, 604, 403, 5, 51, 231, 11, 97, 59, 20, 583, 28, 166, 399, 53, 37, 68, 216, 81, 87, 5, 305, 964, 47, 80, 723, 42, 490, 708, 427, 1878, 314, 413, 62, 59, 177, 61, 1066, 739, 57, 141, 106, 19, 411, 421, 66, 575, 228, 92, 246, 84, 466, 417, 1593, 125, 1979, 1240, 217, 791, 729, 338, 1277, 984, 1376, 113, 481, 1079, 922, 893, 1993, 1033, 127, 62, 465, 394, 385, 1515, 900, 729, 1470, 1013, 1080, 171, 1512, 945, 207, 759, 997, 430, 282, 878, 952, 760, 744, 1860, 788, 2493, 102, 327, 974, 224, 846, 63, 565, 567, 1423, 255, 1024, 18, 1059, 1428, 2308, 328, 1550, 1022, 740, 266, 867, 566, 68, 187, 884, 472, 241, 3179, 559, 679, 117, 819, 307, 697, 980, 281, 587, 1020, 223, 191, 21, 780, 1433, 152, 670, 2111, 225, 867, 190, 2412, 873, 497, 613, 439, 209, 465, 1857, 302, 1958, 3060, 982, 258, 594, 775, 1242, 781, 53, 85, 424, 114, 1008, 408, 6, 869, 441, 636, 1459, 220, 934, 166, 63, 401, 944, 506, 1460, 831, 1012, 906, 824, 613, 1390, 1743, 708, 110, 38, 155, 2058, 1271, 2638, 2243, 827, 312, 1064, 532, 681, 1872, 811, 1159, 418, 2064, 2773, 492, 1685, 844, 2682, 2669, 1414, 842, 809, 1575, 1012, 1919, 574, 909, 2577, 579, 1254, 1078, 672, 1416, 151, 1778, 753, 1020, 2569, 1212, 614, 714, 1439, 233, 650, 624, 22, 638, 775, 534, 547, 1724, 1126, 3212, 949, 198, 1919, 1097, 556, 475, 1796, 2200, 397, 708, 739, 55, 2264, 184, 1202, 795, 31, 2185, 868, 593, 311, 58, 1482, 704, 2824, 7, 387, 1135, 2216, 1643, 1781, 1569, 627, 146, 226, 1041, 1303, 310, 6, 1929, 1000, 2924, 726, 142, 224, 692, 84, 178, 2813, 1842, 1365, 995, 237, 455, 619, 1281, 1715, 1239, 1167, 116, 273, 976, 528, 1232, 287, 580, 974, 1686, 876, 72, 1638, 104, 906, 597, 766, 2040, 449, 1555, 491, 2579, 421, 1983, 862, 267, 604, 289, 814, 1639, 271, 800, 278, 418, 1305, 1539, 772, 1365, 159, 394, 1468, 1026, 2634, 1328, 2382, 1968, 2658, 1130, 980, 205, 685, 2003, 176, 1088, 73, 159, 1321, 2097, 2496, 554, 1163, 764, 1583, 234, 1792, 656, 2108, 3017, 2376, 1603, 1986, 277, 2857, 3217, 446, 2256, 1074, 1805, 487, 208, 506, 553, 192, 1532, 2228, 416, 1364, 60, 776, 1268, 25, 1017, 37, 435, 1647, 398, 1234, 1302, 1929, 299, 1042, 973, 77, 379, 408, 66, 884, 303, 1703, 953, 513, 96, 1018, 851, 2514, 249, 658, 654, 92, 1598, 2603, 51, 1244, 507, 616, 1062, 2235, 919, 286, 1602, 245, 105, 300, 313, 922, 15, 137, 707, 363, 673, 361, 1689, 753, 511, 3242, 796, 1327, 284, 962, 458, 133, 802, 2699, 140, 670, 175, 2615, 283, 1186, 676, 666, 448, 426, 2884, 259, 2627, 50, 608, 407, 1574, 2755, 213, 68, 684, 1279, 841, 533, 1523, 1554, 853, 1629, 846, 103, 2223, 2024, 1029, 1298, 1278, 1270, 1263, 508, 2362, 772, 1119, 525, 575, 39, 43, 676, 1721, 424, 314, 3349, 384, 1807, 1036, 2113, 1745, 1140, 2527, 123, 872, 3849, 875, 39, 74, 984, 45, 106, 27, 912, 202, 41, 693, 107, 402, 131, 768, 967, 805, 524, 304, 282, 147, 967, 1543, 853, 836, 2311, 241, 265, 1463, 1624, 188, 956, 27, 991, 2019, 249, 363, 196, 1408, 916, 395, 355, 1792, 1508, 2166, 253, 2469, 1098, 1799, 1098, 569, 2431, 272, 1630, 386, 182, 1041, 451, 232, 1648, 3263, 1680, 1531, 705, 1609, 2557, 1113, 823, 1806, 329, 2180, 2163, 790, 764, 1276, 1000, 1757, 22, 2052, 336, 1224, 2610, 1187, 1035, 314, 1768, 1950, 1587, 181, 269, 744, 1701, 909, 460, 1477, 716, 969, 2197, 1203, 706, 2180, 2239, 3501, 294, 968, 979, 1229, 73, 153, 249, 2277, 99, 1875, 551, 461, 1572, 2174, 1519, 316, 1666, 3383, 75, 58, 810, 1136, 2252, 381, 914, 1301, 800, 456, 1781, 1584, 799, 154, 372, 467, 2836, 834, 112, 3073, 1331, 128, 564, 338, 1431, 560, 1169, 939, 8, 20, 364, 3300, 144, 883, 400, 183, 2920, 2643, 42, 1090, 3215, 358, 300, 842, 1605, 70, 404, 1761, 123, 1525, 523, 1856, 548, 225, 3291, 969, 555, 692, 2366, 841, 2769, 1620, 878, 86, 464, 70, 817, 447, 622, 515, 1306, 2713, 1156, 327, 66, 131, 1247, 2683, 572, 1870, 747, 892, 1103, 1242, 1861, 2295, 770, 129, 1739, 366, 1877, 513, 1940, 1845, 682, 711, 194, 201, 1268, 2296, 1990, 227, 1109, 495, 2010, 637, 2513, 1560, 2023, 763, 526, 591, 1630, 278, 1372, 262, 1616, 655, 2757, 553, 1521, 3102, 191, 343, 785, 865, 2359, 724, 3195, 913, 1051, 2826, 1317, 2535, 1405, 367, 1495, 1649, 123, 682, 563, 82, 1768, 904, 135, 433, 2886, 107, 1661, 1908, 1127, 503, 1653, 964, 1440, 1127, 345, 2156, 36, 2449, 1748, 1146, 519, 26, 1409, 1706, 953, 1322, 349, 403, 2304, 583, 167, 649, 2506, 151, 2790, 126, 205, 957, 2689, 307, 1444, 1854, 483, 446, 786, 781, 1947, 808, 375, 53, 669, 2118, 558, 612, 550, 410, 2821, 1105, 3149, 518, 796, 1589, 828, 287, 124, 581, 1670, 366, 1582, 1137, 365, 1870, 977, 81, 1654, 1304, 386, 56, 241, 2168, 1281, 1344, 53, 336, 486, 588, 710, 89, 758, 1045, 1401, 879, 17, 1198, 67, 133, 2391, 1379, 144, 2394, 1173, 1824, 67, 2232, 18, 1360, 130, 3076, 905, 2827, 1103, 977, 2196, 1117, 1744, 2688, 298, 684, 586, 1325, 731, 1370, 1529, 268, 1329, 13, 209, 523, 2359, 1558, 1436, 2159, 2646, 1320, 348, 854, 501, 1014, 2656, 1580, 136, 795, 1925, 1080, 2782, 1699, 82, 247, 2060, 246, 2585, 1206, 1522, 887, 1152, 1536, 529, 693, 2167, 28, 1569, 535, 399, 1400, 552, 1166, 1420, 426, 1928, 1096, 898, 1430, 797, 1964, 226, 236, 1336, 844, 1231, 254, 1525, 2988, 1266, 783, 30, 1658, 2345, 939, 352, 482, 1622, 791, 1414, 113, 490, 584, 316, 481, 637, 204, 92, 1267, 365, 89, 1839, 1533, 1888, 883, 376, 771, 925, 383, 979, 2565, 557, 788, 881, 471, 510, 420, 805, 265, 902, 355, 2432, 2005, 201, 491, 666, 895, 1006, 223, 1415, 1178, 1750, 1602, 125, 301, 2142, 1879, 154, 482, 713, 1162, 522, 2018, 1231, 1941, 649, 1279, 327, 879, 662, 664, 995, 497, 1153, 2235, 2085, 242, 358, 112, 1694, 61, 2071, 657, 630, 1914, 511, 432, 95, 2291, 2242, 771, 257, 69, 65, 385, 1649, 778, 847, 15, 1333, 2184, 210, 1410, 2382, 2039, 3252, 717, 664, 71, 2707, 232, 1921, 466, 3, 604, 1532, 110, 798, 578, 561, 2101, 1825, 1005, 2222, 26, 1141, 1910, 653, 458, 931, 351, 515, 811, 423, 1085, 306, 1396, 142, 768, 1344, 992, 1772, 343, 2667, 177, 583, 145, 1021, 743, 1348, 2182, 1956, 350, 1194, 48, 648, 2413, 668, 483, 2434, 1513, 453, 447, 1323, 861, 1994, 379, 2065, 500, 880, 332, 181, 339, 626, 1242, 291, 52, 2409, 723, 183, 754, 1454, 119, 2423, 1069, 399, 96, 1025, 959, 1767, 2784, 1147, 1726, 121, 1902, 708, 768, 34, 1468, 1952, 1586, 470, 173, 835, 1779, 1419, 90, 1334, 1090, 216, 126, 1, 2704, 1408, 180, 282, 2218, 169, 1765, 1321, 950, 732, 653, 189, 635, 76, 1544, 2484, 1662, 749, 983, 217, 305, 1112, 1967, 923, 1121, 1230, 3760, 847, 12, 929, 1388, 330, 605, 80, 836, 933, 1579, 265, 3242, 696, 627, 1014, 1250, 952, 463, 1149, 724, 269, 1102, 2161, 2377, 276, 590, 511, 966, 865, 2625, 2149, 1405, 398, 1069, 579, 960, 3211, 184, 1295, 413, 630, 1156, 1955, 2949, 1041, 1161, 1049, 76, 1957, 2734, 1438, 332, 1882, 2718, 42, 196, 1260, 1578, 1182, 1428, 329, 1772, 1099, 758, 170, 555, 778, 1003, 1191, 685, 479, 1812, 774, 596, 153, 2277, 319, 1241, 1189, 1644, 918, 1740, 258, 932, 496, 460, 54, 1976, 2281, 103, 1927, 608, 167, 1006, 1426, 2588, 996, 2461, 1099, 986, 1699, 1228, 1297, 749, 1271, 1636, 709, 2066, 174, 1547, 462, 538, 260, 735, 1168, 1723, 496, 83, 637, 1343, 2203, 3290, 1009, 317, 913, 1804, 290, 1992, 1353, 263, 2095, 186, 1718, 1332, 498, 117, 362, 280, 761, 471, 105, 284, 2254, 1221, 1258, 943, 1063, 787, 546, 2852, 111, 1033, 964, 1819, 91, 535, 840, 1615, 1906, 515, 234, 2033, 220, 277, 1744, 180, 1811, 841, 371, 1044, 972, 1114, 827, 876, 3116, 740, 531, 718, 1269, 1617, 157, 941, 71, 1659, 639, 287, 1867, 1378, 3424, 75, 1663, 1451, 480, 618, 375, 2682, 803, 1399, 536, 1697, 86, 997, 1347, 2046, 606, 73, 57, 522, 2691, 54, 2514, 333, 1773, 1371, 320, 1043, 3141, 32, 302, 334, 1193, 1876, 576, 91, 1101, 955, 377, 426, 1175, 543, 445, 825, 590, 98, 894, 679, 1471, 1653, 2627, 2007, 1393, 3364, 208, 264, 342, 16, 837, 124, 728, 1641, 1892, 271, 1826, 1730, 976, 1289, 368, 1572, 1358, 1812, 1576, 264, 1457, 1086, 1054, 509, 1991, 427, 662, 1690, 612, 330, 2021, 1282, 2689, 1338, 176, 109, 2100, 751, 37, 57, 858, 2145, 683, 360, 756, 1272, 2801, 105, 209, 400, 220, 1165, 212, 2906, 2021, 1663, 1372, 670, 1860, 250, 1142, 1091, 471, 1496, 388, 235, 433, 702, 1444, 141, 2059, 2007, 46, 274, 546, 292, 946, 732, 603, 444, 1091, 454, 276, 483, 28, 2449, 321, 11, 856, 19, 134, 962, 1991, 482, 1202, 2415, 1370, 259, 615, 235, 1411, 1138, 1294, 872, 1542, 2292, 2218, 49, 2894, 1937, 1093, 1072, 766, 138, 192, 1203, 502, 119, 112, 494, 3137, 393, 2040, 171, 2002, 656, 160, 1345, 2077, 985, 1752, 160, 51, 212, 1923, 322, 297, 407, 598, 1023, 554, 588, 229, 1678, 1197, 2458, 2984, 308, 1019, 412, 1613, 2677, 830, 2906, 339, 475, 14, 477, 256, 820, 641, 1675, 227, 690, 311, 488, 1013, 535, 1345, 1057, 475, 561, 137, 1271, 409, 536, 1617, 541, 712, 402, 940, 518, 206, 1082, 2446, 1140, 508, 854, 318, 677, 1634, 161, 1226, 991, 382, 928, 1095, 201, 894, 1094, 685, 1764, 671, 285, 1608, 942, 1924, 2626, 1842, 359, 2099, 187, 213, 23, 62, 1477, 1750, 1514, 1702, 318, 1028, 1944, 678, 139, 1791, 428, 849, 82, 808, 2423, 1742, 560, 1498, 772, 2324, 97, 580, 1891, 541, 1124, 480, 341, 179, 527, 243, 2979, 128, 64, 3512, 1424, 100, 953, 1220, 2055, 994, 2247, 2954, 493, 2025, 2347, 577, 354, 504, 478, 498, 701, 683, 3560, 761, 793, 3173, 2041, 1643, 2325, 869, 651, 551, 364, 74, 611, 682, 2349, 2344, 468, 806, 299, 1725, 1288, 124, 21, 878, 890, 406, 185, 570, 2249, 773, 955, 35, 1262, 638, 3536, 1510, 335, 1185, 952, 1525, 325, 256, 316, 18, 1739, 359, 1619, 667, 228, 139, 671, 1025, 814, 2144, 725, 367, 1061, 1298, 2297, 640, 741, 1399, 779, 3042, 408, 3041, 2200, 347, 1701, 1722, 254, 210, 575, 129, 1149, 1960, 452, 1207, 117, 1099, 2026, 1486, 639, 448, 1898, 1016, 2022, 450, 345, 479, 140, 69, 155, 954, 1379, 2312, 340, 1352, 373, 215, 1822, 923, 47, 414, 609, 1540, 319, 1569, 304, 428, 542, 829, 380, 163, 984, 1089, 447, 419, 562, 1749, 3306, 171, 1559, 922, 319, 1049, 894, 927, 2368, 2907, 2361, 242, 2942, 944, 1256, 690, 232, 730, 386, 1713, 78, 821, 195, 1339, 500, 392, 87, 1741, 355, 237, 297, 825, 1712, 182, 622, 1992, 1448, 893, 1347, 1104, 1326, 310, 524, 1355, 1625, 561, 809, 437, 1730, 633, 467, 665, 156, 1034, 390, 2967, 226, 999, 290, 862, 918, 1056, 1576, 1378, 1751, 59, 552, 1893, 309, 628, 1308, 204, 1537, 1734, 1441, 1628, 1288, 276, 3047, 1587, 1181, 998, 149, 1808, 1224, 545, 295, 120, 859, 539, 2065, 266, 45, 1473, 741, 118, 988, 377, 375, 2806, 2404, 755, 203, 2381, 559, 179, 3055, 898, 1511, 125, 1855, 66, 618, 1632, 304, 1413, 1591, 74, 823, 385, 102, 890, 258, 248, 308, 921, 25, 2090, 1694, 267, 642, 1850, 1195, 3193, 1442, 296, 1080, 1357, 521, 1311, 1123, 228, 940, 2177, 34, 1255, 35, 88, 97, 1465, 2608, 2337, 333, 161, 2673, 44, 268, 1126, 1090, 812, 668, 937, 696, 2545, 83, 686, 365, 64, 84, 1114, 1997, 1629, 822, 1045, 213, 2153, 1586, 640, 195, 230, 1369, 1633, 31, 1124, 1388, 1877, 206, 164, 2424, 1116, 2300, 1634, 71, 2058, 934, 1249, 427, 110, 1804, 1255, 141, 1375, 1198, 620, 1404, 540, 1882, 133, 681, 1595, 3403, 455, 2479, 1849, 273, 737, 402, 1250, 2624, 1777, 596, 1758, 341, 3292, 1284, 784, 582, 205, 1702, 411, 2140, 46, 219, 320, 852, 192, 505, 1595, 373, 199, 194, 835, 1770, 24, 1112, 6, 147, 431, 1440, 1553, 38, 194, 79, 1992, 1826, 155, 100, 838, 1544, 1938, 762, 1554, 897, 533, 601, 1859, 2563, 162, 2693, 2171, 1053, 1477, 526, 611, 52, 1217, 890, 61, 599, 1504, 139, 727, 3202, 571, 494, 1166, 2520, 234, 442, 1503, 806, 1304, 1365, 104, 557, 499, 3122, 1235, 77, 681, 458, 2188, 1085, 562, 565, 694, 15, 5, 1362, 2056, 604, 567, 705, 198, 23, 1089, 856, 1117, 1341, 1851, 2210, 1101, 651, 1652, 2191, 432, 341, 1356, 1530, 1833, 38, 1236, 235, 576, 1239, 1163, 1060, 1016, 3612, 400, 308, 283, 1285, 1454, 552, 485, 1969, 296, 418, 324, 648, 326, 839, 609, 891, 1037, 1354, 1958, 221, 2983, 222, 1087, 2978, 434, 2397, 1921, 44, 270, 1260, 551, 873, 396, 1230, 172, 2438, 1620, 1692, 1650, 792, 190, 1615, 1779, 3433, 1959, 414, 1038, 1138, 42, 869, 2907, 1803, 623, 116, 755, 368, 568, 2501, 1148, 1671, 206, 195, 7, 145, 773, 838, 1170, 2193, 864, 1053, 804, 2456, 636, 912, 1392, 643, 1175, 1015, 660, 1476, 1205, 598, 1027, 848, 935, 938, 626, 2272, 165, 1070, 382, 323, 615, 981, 1171, 1402, 789, 920, 1350, 1801, 2367, 93, 1133, 1, 1688, 2050, 2383, 2315, 1155, 439, 1081, 495, 1792, 136, 240, 285, 1390, 1488, 64, 101, 272, 2695, 393, 2256, 1895, 1880, 1391, 2468, 625, 1259, 1789, 678, 1928, 855, 765, 108, 2352, 763, 17, 1717, 2169, 2070, 491, 1073, 1232, 219, 1362, 917, 274, 223, 2713, 629, 1009, 907, 30, 76, 789, 889, 618, 1010, 801, 830, 221, 214, 1326, 581, 492, 1708, 563, 203, 454, 79, 115, 1302, 2274, 1195, 211, 2366, 706, 1202, 2562, 2613, 376, 1240, 1487, 134, 1488, 1537, 980, 1556, 337, 230, 1371, 1461, 100, 815, 2667, 3154, 936, 818, 1732, 911, 2207, 343, 43, 477, 807, 1870, 455, 586, 1120, 289, 794, 1387, 1762, 2316, 152, 895, 1000, 985, 1391, 539, 1233, 850, 754, 654, 207, 211, 1002, 547, 135, 771, 479, 610, 2331, 720, 787, 834, 691, 612, 103, 512, 1194, 489, 1773, 2492, 1594, 173, 2230, 86, 855, 961, 3105, 1060, 1172, 156, 356, 860, 10, 424, 625, 629, 1147, 1312, 2341, 293, 1341, 579, 1472, 29, 431, 3353, 2559, 1324, 1607, 295, 2209, 658, 3035, 1646, 431, 975, 1541, 2511, 114, 120, 1222, 1476, 439, 29, 1243, 1212, 550, 3135, 2479, 903, 47, 2240, 1342, 48, 1619, 1034, 1484, 528, 1485, 1072, 3280, 1361, 116, 61, 1510, 1956, 55, 292, 1504, 252, 2749, 1296, 1951, 587, 1642, 806, 1311, 132, 755, 163, 362, 1211, 186, 244, 95, 603, 389, 1741, 782, 2471, 1387, 966, 1410, 3014, 762, 1144, 168, 3608, 1743, 960, 211, 2050, 376, 750, 1187, 357, 1854, 80, 328, 1537, 1229, 193, 1247, 1310, 2500, 406, 963, 1363, 815, 665, 229, 1050, 25, 986, 37, 1323, 10, 1109, 2714, 861, 478, 810, 829, 2486, 2027, 1068, 407, 40, 945, 1208, 2305, 1074, 631, 41, 1415, 2802, 180, 157, 899, 450, 677, 989, 970, 346, 1904, 1704, 207, 315, 317, 474, 20, 655, 468, 1266, 228, 932, 2522, 1121, 2491, 247, 432, 2343, 927, 1805, 98, 689, 688, 1322, 1921, 2783, 51, 2333, 2690, 1522, 190, 669, 1244, 294, 659, 322, 1939, 556, 904, 2011, 286, 32, 356, 547, 1733, 1821, 279, 712, 647, 2392, 1231, 436, 902, 517, 416, 1007, 409, 142, 646, 3285, 2037, 7, 1295, 1158, 1549, 1823, 381, 673, 525, 832, 143, 1135, 683, 262, 1906, 1737, 303, 2032, 698, 522, 1714, 735, 476, 1434, 1465, 318, 218, 295, 1358, 91, 2477, 2674, 1172, 987, 769, 1853, 391, 173, 766, 331, 740, 1993, 829, 1684, 1965, 1474, 271, 2460, 634, 646, 148, 2012, 661, 152, 134, 104, 197, 149, 1412, 1040, 555, 703, 90, 2270, 2126, 2111, 1036, 169, 3186, 584, 1004, 1048, 1014, 617, 645, 891, 1632, 1412, 972, 47, 870, 337, 2405, 688, 22, 938, 1877, 1577, 1261, 353, 1493, 1872, 636, 19, 1267, 931, 1019, 916, 1431, 122, 1628, 8, 109, 504, 115, 2156, 1136, 1293, 695, 2807, 635, 175, 1665, 404, 2779, 672, 214, 1428, 202, 191, 1597, 2133, 745, 244, 750, 1594, 107, 719, 1071, 28, 738, 269, 603, 1703, 321, 1632, 361, 253, 1980, 2581, 2014, 29, 352, 2530, 2518, 1168, 92, 337, 1470, 1210, 3389, 610, 248, 1727, 1570, 998, 1277, 1911, 3283, 695, 1517, 33, 920, 1558, 323, 1658, 429, 910, 168, 1874, 2048, 517, 289, 578, 951, 2017, 1011, 688, 998, 250, 2130, 90, 1001, 773, 975, 1044, 396, 208, 643, 1904, 1696, 93, 2105, 150, 809, 3000, 27, 1584, 1971, 1431, 1359, 1490, 1883, 1376, 1156, 2107, 1009, 2771, 3541, 2304, 1256, 62, 714, 368, 1720, 415, 1681, 608, 2937, 182, 2200, 1246, 423, 2215, 1385, 1001, 1957, 469, 5, 130, 633, 978, 200, 1, 394, 925, 4, 1977, 1376, 450, 1298, 908, 765, 1402, 274, 1631, 306, 69, 299, 442, 701, 751, 1274, 387, 957, 1640, 162, 582, 1810, 832, 875, 2670, 326, 230, 438, 966, 1455, 324, 1296, 938, 285, 215, 884, 122, 334, 1479, 334, 657, 1320, 1052, 3151, 1039, 621, 218, 1085, 918, 895, 1269, 1316, 335, 83, 787, 756, 1337, 2447, 602, 45, 581, 832, 399, 736, 147, 13, 1162, 1859, 2032, 1017, 11, 2664, 429, 101, 514, 196, 1875, 2267, 372, 623, 549, 1278, 1583, 264, 217, 1301, 3158, 1734, 1965, 760, 359, 2853, 1709, 1205, 463, 860, 1890, 60, 1816, 1196, 1363, 417, 420, 370, 2653, 1184, 10, 501, 2598, 484, 1761, 999, 1604, 853, 1695, 1141, 721, 185, 2030, 713, 617, 820, 1319, 965, 1526, 1973, 1552, 783, 1292, 1671, 494, 33, 261, 469, 999, 156, 118, 2443, 1186, 353, 188, 1674, 606, 757, 680, 165, 767, 347, 624, 1681, 56, 1129, 594, 113, 336, 1549, 1654, 430, 797, 1193, 93, 333, 193, 1395, 815, 1460, 1897, 566, 1013, 467, 379, 905, 598, 1805, 1884, 1640, 1425, 267, 1700, 1447, 2325, 640, 242, 460, 930, 1516, 2746, 350, 2396, 298, 3243, 592, 1132, 218, 473, 788, 2739, 1540, 2672, 2159, 744, 340, 1964, 1301, 607, 387, 94, 137, 742, 686, 302, 1523, 993, 162, 202, 620, 1171, 959, 896, 43, 2601, 257, 1145, 777, 1089, 638, 1503, 2690, 344, 2217, 291, 2754, 715, 2012, 888, 174, 575, 1082, 383, 449, 158, 871, 222, 1356, 1158, 2143, 813, 360, 1285, 487, 346, 866, 253, 585, 833, 2221, 1207, 1326, 2676, 497, 519, 1417, 2551, 1374, 971, 1684, 425, 725, 545, 186, 371, 542, 1547, 143, 723, 14, 813, 1233, 67, 703, 570, 85, 626, 1360, 851, 1961, 2693, 78, 1598, 164, 858, 677, 157, 322, 3007, 1756, 1611, 433, 668, 1506, 1513, 2573, 413, 729, 855, 2376, 262, 2774, 571, 1470, 1850, 128, 1291, 111, 1159, 3024, 1812, 1131, 2728, 883, 859, 240, 1328, 1445, 897, 1163, 862, 1404, 767, 163, 1553, 849, 1190, 485, 824, 595, 1386, 1210, 2406, 1786, 449, 476, 2294, 920, 301, 1979, 470, 1668, 2261, 95, 1606, 243, 924, 1330, 915, 364, 388, 1557, 248, 2, 706, 473, 826, 1132, 913, 633, 260, 2132, 2483, 987, 652, 144, 342, 569, 801, 221, 54, 2245, 1119, 804, 8, 1527, 1735, 634, 52, 703, 3487, 527, 3266, 505, 2102, 602, 443, 3110, 1624, 1059, 1280, 1432, 1495, 1018, 1827, 2764, 472, 2947, 1796, 378, 1737, 245, 1774, 519, 1200, 2208, 616, 650, 1382, 529, 680, 245, 2122, 632, 332, 1546, 1674, 1321, 2934, 388, 281, 1436, 344, 200, 1508, 2630, 730, 4, 1055, 362, 3165, 138, 65, 1665, 24, 256, 187, 1155, 280, 970, 114, 559, 679, 1788, 451, 444, 489, 946, 1179, 440, 138, 2686, 307, 108, 9, 58, 111, 1409, 370, 313, 742, 605, 1101, 1637, 512, 728, 1609, 331, 946, 1292, 1033, 1500, 238, 338, 1076, 59, 1140, 750, 1212, 1190, 1588, 461, 57, 1157, 2943, 1452, 610, 2054, 1572, 246, 1978, 1862, 1645, 1664, 850, 1164, 736, 49, 2882, 949, 1309, 34, 1408, 2676, 272, 1942, 1037, 39, 420, 40, 4, 537, 1685, 94, 1007, 293, 1366, 711, 614, 1656, 1658, 2594, 2064, 1988, 360, 1061, 848, 132, 630, 2364, 726, 1769, 1438, 2867, 797, 261, 1907, 849, 1306, 2324, 1371, 1028, 283, 345, 1494, 1659, 656, 56, 1120, 87, 3235, 277, 233, 486, 790, 1600, 215, 722, 1199, 769, 1016, 1437, 1100, 2822, 293, 573, 2616, 456, 294, 692, 184, 2663, 409, 666, 136, 1939, 1169, 2075, 50, 251, 1223, 149, 717, 3020, 441, 1759, 131, 326, 958, 2250, 436, 644, 1218, 745, 1164, 661, 1254, 1106, 1183, 534, 484, 354, 585, 3656, 733, 933, 580, 448, 2778, 1514, 1952, 229, 369, 765, 516, 126, 1130, 991, 1325, 1339, 118, 973, 2839, 1357, 2819, 279, 1786, 2727, 1386, 1580, 1636, 1095, 480, 237, 669, 574, 225, 652, 1548, 1980, 617, 1150, 472, 985, 1960, 935, 106, 255, 1710, 1926, 1279, 1124, 702, 1121, 1722, 2159, 3284, 1753, 1268, 499, 631, 380, 760, 284, 1383, 2957, 1996, 23, 1195, 2128, 3, 464, 2804, 2466, 1544, 425, 97, 3220, 278, 508, 1780, 35, 16, 1310, 719, 1189, 2794, 1418, 2946, 1174, 857, 2372, 2174, 371, 243, 1699, 641, 1263, 1062, 2789, 410, 189, 664, 589, 675, 1403, 2039, 854, 63, 1238, 357, 716, 1351, 2624, 3076, 1616, 177, 1234, 542, 129, 1868, 397, 486, 298, 647, 1403, 2586, 699, 238, 224, 1866, 1117, 836, 1088, 2173, 1514, 415, 3189, 389, 1073, 1467, 2101, 1319, 1253, 531, 499, 2136, 108, 973, 1768, 722, 1303, 694, 146, 2214, 273, 1867, 1066, 524, 484, 2423, 1696, 41, 958, 115, 12, 1693, 1940, 36, 712, 661, 808, 1131, 446, 470, 549, 285, 244, 257, 749, 279, 452, 634, 1265, 424, 425, 327, 50, 446, 426, 727, 414, 138, 825, 183, 348, 1252, 1385, 1197, 758, 173, 1459, 203, 647, 1075, 939, 434, 291, 415, 410, 1939, 1134, 176, 816, 482, 591, 514, 982, 685, 991, 476, 1063, 910, 75, 367, 364, 997, 404, 363, 781, 947, 121, 445, 465, 666, 766, 270, 887, 1430, 5, 752, 1173, 238, 579, 448, 399, 679, 613, 990, 177, 33, 480, 239, 175, 736, 353, 1154, 184, 674, 521, 674, 697, 434, 475, 1664, 458, 673, 150, 1106, 669, 454, 771, 107, 915, 939, 181, 181, 665, 894, 924, 602, 386, 1048, 487, 440, 157, 415, 327, 634, 1522, 891, 512, 1059, 534, 705, 101, 466, 312, 393, 1040, 847, 482, 471, 166, 1277, 1225, 626, 441, 591, 843, 195, 640, 271, 1062, 851, 629, 769, 559, 148, 317, 515, 220, 1182, 411, 282, 319, 130, 843, 566, 535, 235, 1053, 332, 448, 584, 681, 359, 1381, 223, 407, 671, 385, 467, 1578, 204, 432, 896, 453, 644, 537, 680, 749, 316, 607, 698, 375, 369, 423, 1104, 235, 205, 950, 355, 81, 1023, 568, 674, 810, 749, 609, 336, 325, 1354, 504, 800, 803, 829, 309, 1262, 610, 962, 507, 877, 59, 918, 959, 281, 627, 372, 1590, 574, 949, 1382, 472, 389, 318, 1090, 668, 318, 631, 528, 555, 1000, 467, 718, 757, 167, 1358, 313, 420, 851, 296, 887, 255, 599, 306, 233, 274, 556, 224, 189, 326, 572, 973, 1230, 286, 31, 486, 223, 976, 1591, 796, 649, 660, 576, 254, 613, 118, 516, 846, 252, 352, 1430, 447, 217, 1133, 771, 586, 903, 460, 778, 199, 127, 572, 103, 361, 516, 982, 268, 548, 970, 354, 429, 662, 720, 498, 576, 711, 1497, 494, 279, 315, 585, 700, 691, 340, 176, 324, 170, 814, 497, 206, 270, 251, 382, 780, 473, 953, 321, 79, 182, 163, 1017, 546, 1456, 511, 962, 645, 592, 203, 493, 804, 251, 1215, 358, 614, 917, 593, 91, 809, 1026, 1255, 333, 1101, 285, 445, 338, 836, 685, 717, 38, 970, 983, 174, 769, 392, 567, 871, 419, 50, 418, 511, 553, 164, 970, 428, 296, 1109, 99, 905, 469, 362, 561, 274, 600, 137, 930, 16, 202, 292, 270, 565, 784, 405, 1124, 657, 173, 395, 1302, 193, 212, 108, 808, 469, 212, 364, 546, 492, 476, 1450, 956, 577, 597, 136, 558, 1004, 1039, 843, 904, 644, 1201, 682, 343, 154, 215, 790, 179, 287, 595, 632, 193, 1150, 1626, 766, 660, 561, 401, 1340, 57, 204, 139, 830, 97, 1138, 1023, 262, 497, 19, 1019, 565, 1052, 146, 348, 357, 154, 598, 523, 14, 967, 155, 825, 275, 803, 1300, 648, 197, 591, 313, 346, 327, 111, 427, 737, 917, 374, 651, 555, 109, 89, 456, 800, 250, 96, 1259, 1095, 72, 469, 1370, 60, 968, 968, 902, 2000, 520, 435, 1230, 142, 428, 169, 1415, 810, 172, 577, 132, 588, 477, 434, 106, 1010, 1071, 158, 275, 1071, 2864, 1447, 2244, 908, 2241, 2058, 2142, 2519, 1324, 454, 2875, 3276, 2523, 3315, 1510, 2494, 1687, 3091, 2083, 1963, 1915, 845, 986, 794, 1198, 2071, 2758, 1049, 1789, 1813, 1551, 2335, 1791, 2492, 2921, 845, 1787, 2371, 1275, 1755, 3704, 2543, 1858, 3478, 3473, 3265, 667, 2053, 2083, 3239, 1170, 2251, 1228, 2704, 2880, 1255, 1978, 2903, 1641, 1677, 3137, 1464, 2160, 1047, 761, 1038, 2933, 2132, 732, 734, 2670, 2385, 2365, 3657, 2534, 2540, 3484, 2555, 1610, 2960, 1226, 1024, 1204, 2685, 3136, 1866, 1125, 1026, 1966, 405, 1173, 2524, 397, 2229, 586, 2772, 1216, 1384, 762, 2428, 1175, 786, 2717, 443, 2208, 3236, 1237, 715, 1299, 1192, 2871, 1079, 923, 2257, 1840, 183, 3466, 2894, 490, 2076, 779, 1478, 1852, 798, 1343, 1554, 300, 2747, 3105, 960, 2989, 1784, 2927, 1923, 2532, 1011, 2307, 3485, 1957, 453, 1995, 537, 3691, 1898, 2716, 3176, 1246, 1571, 2462, 550, 735, 3520, 2700, 2032, 3133, 2236, 2986, 2536, 2412, 885, 3068, 3344, 2126, 1915, 2187, 2598, 2713, 2004, 1638, 1185, 2768, 1588, 1663, 1151, 1541, 2824, 474, 1896, 2456, 1633, 3168, 1776, 1563, 1254, 1783, 2219, 1221, 1601, 260, 888, 813, 1999, 1803, 2490, 3425, 3618, 1354, 540, 3095, 1108, 1660, 1735, 2778, 2771, 2197, 2334, 3353, 659, 2495, 255, 1913, 3521, 357, 2790, 1848, 1657, 1427, 705, 1917, 868, 2902, 3299, 2622, 1954, 2647, 2042, 2208, 1776, 1888, 833, 954, 2227, 2997, 573, 1592, 2196, 3301, 3577, 2114, 2389, 602, 2585, 2737, 2072, 3719, 3811, 3002, 2116, 3094, 1926, 1238, 3582, 2612, 1932, 1505, 719, 843, 1706, 2131, 1744, 2794, 1747, 1086, 1720, 1201, 1079, 2164, 2457, 1890, 1727, 1786, 2377, 1296, 3074, 1234, 2611, 3434, 2540, 1364, 1130, 1412, 3231, 1316, 3182, 2776, 2695, 3226, 1991, 1936, 3180, 1007, 2375, 2088, 1884, 1909, 2121, 2731, 3492, 2802, 2558, 3941, 2096, 2130, 746, 2472, 2194, 937, 1498, 1483, 1743, 2180, 2994, 2822, 2308, 2431, 1752, 1851, 2086, 1980, 1995, 3269, 3570, 2890, 2963, 2861, 378, 3273, 3399, 1323, 3619, 1517, 3128, 2047, 323, 3098, 2451, 2635, 2752, 2874, 1054, 2166, 520, 1986, 1311, 1235, 1499, 1177, 2213, 1652, 2184, 2974, 1869, 2247, 2345, 1718, 1495, 214, 1330, 1523, 968, 2528, 2646, 2694, 2726, 2351, 881, 2876, 1458, 2921, 395, 1645, 2276, 2111, 2303, 3140, 1580, 3555, 2084, 2663, 2240, 3568, 1192, 1558, 1982, 754, 412, 3280, 899, 1643, 1038, 533, 1778, 422, 892, 1673, 2650, 3092, 2340, 3698, 1109, 2785, 1213, 2134, 1250, 1637, 1679, 3508, 860, 1145, 1993, 2958, 3888, 2804, 2316, 700, 2477, 1151, 3631, 392, 3233, 342, 2087, 2883, 2359, 3226, 366, 786, 2069, 2402, 2147, 1264, 2807, 2964, 2330, 3574, 1206, 1158, 3657, 3160, 2972, 1309, 3150, 1868, 3202, 1264, 2866, 2317, 2797, 1462, 1332, 3318, 2261, 731, 2346, 462, 1040, 3410, 2660, 2224, 1167, 2360, 2362, 1186, 2731, 3026, 1597, 3907, 1267, 2865, 1329, 1545, 501, 1661, 1295, 3379, 549, 828, 1788, 1936, 1900, 1984, 2243, 1865, 939, 1035, 2526, 1303, 2651, 1220, 2644, 1251, 1683, 2538, 1236, 700, 3332, 2917, 1138, 1008, 421, 2554, 2513, 2422, 1179, 1696, 2685, 2979, 621, 1374, 2079, 1703, 3148, 2036, 3181, 1174, 2870, 3126, 2202, 2568, 3477, 3087, 978, 457, 1119, 1058, 2275, 3698, 3489, 2179, 2760, 2097, 3487, 2766, 1606, 1493, 1824, 1435, 2254, 2415, 2037, 941, 1518, 1115, 3550, 403, 2556, 3483, 2875, 2633, 1283, 1253, 2044, 2868, 2610, 1902, 401, 1557, 1576, 3034, 1492, 571, 2040, 1213, 2320, 3886, 1670, 3418, 2552, 2812, 3569, 331, 1647, 1791, 1316, 3071, 1828, 2156, 2734, 438, 3494, 1975, 1714, 2705, 2493, 2482, 1297, 2316, 3499, 251, 441, 2190, 1954, 2982, 2387, 1308, 1307, 2351, 600, 3347, 1776, 2799, 1315, 713, 2605, 3171, 889, 528, 3976, 2986, 1901, 1787, 430, 2607, 2454, 1196, 1452, 3086, 1730, 556, 3689, 3467, 899, 2008, 3006, 3323, 3252, 1989, 1795, 3723, 2432, 404, 2974, 1691, 198, 616, 2640, 1869, 2274, 751, 2076, 1507, 521, 3516, 1148, 3248, 1229, 3039, 1950, 3424, 1662, 1370, 2285, 2315, 506, 2351, 2588, 2226, 2139, 1349, 2724, 1211, 1593, 981, 3414, 3225, 3644, 831, 3770, 1541, 2101, 1236, 1865, 2004, 3046, 2321, 1858, 1745, 2110, 2480, 817, 2339, 2869, 2877, 1799, 810, 2252, 3553, 3896, 2899, 320, 1888, 3266, 2795, 942, 2972, 2664, 2147, 1948, 1145, 826, 2118, 2378, 1564, 1774, 2434, 1273, 3493, 2438, 3066, 3391, 2310, 1378, 3573, 1717, 3070, 3318, 3701, 2868, 2630, 3290, 3006, 2899, 2009, 476, 1698, 1697, 1952, 838, 2755, 2029, 2738, 1084, 759, 995, 3477, 2517, 3373, 2921, 1999, 3575, 3568, 1356, 2266, 1811, 1999, 2422, 247, 2723, 2163, 2402, 1465, 216, 1547, 1829, 2342, 3795, 1313, 1391, 3110, 1429, 1040, 1641, 3655, 1984, 2809, 488, 340, 2068, 3804, 558, 2474, 2584, 2226, 2273, 2411, 2552, 3442, 982, 2911, 1421, 1383, 2187, 1538, 2943, 2430, 1506, 3321, 1947, 3365, 2295, 1935, 2902, 2093, 2143, 1127, 874, 2606, 1920, 1985, 1831, 1307, 2491, 1601, 2357, 2236, 3837, 3036, 795, 2120, 2625, 2129, 2478, 947, 1501, 2104, 2488, 1217, 3035, 2918, 1586, 1753, 917, 1711, 1707, 2395, 2250, 2509, 1482, 446, 3049, 1500, 3046, 2646, 3771, 653, 2381, 733, 3873, 2255, 3074, 2092, 2457, 2679, 1922, 3191, 2914, 1081, 1596, 2697, 1367, 2533, 3617, 2098, 2765, 1968, 2204, 1475, 1272, 3756, 1825, 2390, 3474, 3251, 2977, 496, 1950, 1648, 2462, 2726, 2395, 2944, 3559, 2178, 3342, 3688, 2505, 2354, 1827, 3676, 1794, 2811, 3349, 3249, 2147, 3059, 2852, 1422, 1136, 3776, 875, 1584, 1594, 2195, 2124, 1214, 2543, 2586, 1028, 2874, 1472, 2733, 2317, 3444, 2940, 1084, 1652, 1929, 2691, 1265, 2346, 2864, 3128, 2999, 2013, 572, 3711, 2455, 3213, 2146, 737, 2496, 1565, 1784, 3008, 2743, 1181, 956, 2009, 2859, 1291, 1259, 2512, 652, 1746, 2119, 1932, 2035, 3637, 1427, 1719, 1438, 1836, 2426, 2742, 2102, 1926, 2931, 931, 1502, 776, 1083, 351, 2509, 889, 3007, 2441, 803, 2002, 1065, 1715, 2107, 485, 3037, 1407, 1967, 2060, 406, 1913, 2805, 1982, 1010, 738, 919, 2802, 3011, 2082, 1306, 2554, 871, 1426, 615, 1222, 3390, 907, 3229, 1092, 2418, 2795, 2659, 1125, 2617, 164, 2687, 1355, 3879, 3535, 1394, 2618, 2014, 1144, 99, 3542, 3889, 2695, 2561, 2091, 2168, 1907, 2356, 928, 1875, 1827, 3638, 2388, 259, 2056, 3486, 2817, 3624, 1629, 704, 1093, 2777, 422, 3041, 1853, 1765, 785, 3142, 1809, 2722, 1649, 1687, 2550, 3200, 1908, 3129, 1581, 1988, 2929, 1492, 914, 1614, 700, 948, 1082, 2353, 2165, 2443, 2941, 1693, 3562, 1997, 1155, 2597, 2162, 3443, 2223, 1543, 1912, 1933, 791, 1390, 3325, 2462, 2505, 2095, 558, 907, 3298, 2049, 591, 2729, 3325, 2571, 2788, 2273, 3244, 2453, 1395, 3278, 2112, 3091, 3176, 785, 488, 3666, 1592, 2715, 419, 3534, 2385, 1317, 926, 3370, 296, 2673, 2925, 1383, 453, 2787, 1219, 3957, 3308, 1385, 2104, 757, 2467, 3182, 2133, 1738, 2259, 3183, 2746, 1930, 2497, 1913, 3106, 2036, 2165, 3446, 3136, 1581, 339, 1294, 2912, 2595, 1458, 1222, 3327, 1314, 2182, 3607, 1024, 770, 1072, 2616, 2363, 3471, 2765, 2669, 3240, 1645, 1887, 2803, 1822, 2269, 2372, 1421, 1625, 2480, 3774, 1961, 3629, 2604, 1839, 3497, 2570, 148, 3558, 1573, 3702, 994, 3368, 1453, 1694, 1064, 1434, 2120, 845, 3273, 2740, 1002, 2895, 2201, 2614, 576, 3144, 1164, 1529, 1273, 3201, 3877, 2172, 3593, 1785, 2913, 983, 3600, 188, 2077, 748, 2717, 2887, 2154, 3354, 1676, 2050, 2367, 3227, 2371, 3565, 2786, 3203, 3860, 3023, 2175, 2471, 1664, 1885, 1367, 2269, 3245, 2805, 2383, 2082, 1977, 1385, 1063, 3439, 1998, 2142, 1023, 2596, 1483, 1638, 3049, 2796, 1042, 2031, 3398, 1797, 2445, 2205, 457, 1508, 1868, 2857, 1259, 2531, 3390, 2970, 2882, 1948, 1340, 2775, 3418, 2761, 1497, 2831, 2937, 1686, 2312, 1990, 1900, 2941, 3525, 2929, 1276, 2074, 958, 2922, 1555, 1111, 1928, 2820, 1627, 2297, 2234, 3001, 2785, 2029, 3124, 3345, 3554, 1464, 1884, 3503, 1215, 3265, 3658, 1075, 2458, 537, 1750, 2637, 2169, 2213, 1151, 3355, 863, 3728, 1447, 716, 2381, 1455, 1912, 3069, 1152, 1496, 1688, 3232, 1716, 1484, 2127, 2148, 1052, 2480, 1225, 1625, 3372, 1847, 3257, 2240, 1083, 881, 3674, 1901, 2264, 887, 1516, 3287, 1191, 3693, 1245, 2763, 3303, 2080, 1664, 1052, 1799, 2390, 993, 1423, 1056, 2074, 1910, 2798, 2047, 2162, 3479, 1224, 2967, 2231, 3159, 1216, 1309, 3055, 2533, 3798, 1144, 2212, 578, 2274, 2733, 2410, 720, 774, 1208, 1362, 3356, 589, 3408, 1474, 3082, 1374, 1845, 3727, 3193, 1042, 3189, 1276, 2546, 2649, 1047, 1797, 2317, 2487, 383, 2600, 1353, 1650, 1533, 1536, 3190, 1386, 1401, 1946, 2276, 3246, 2661, 2748, 2750, 3472, 1003, 2447, 2319, 88, 1802, 1977, 2215, 2780, 2917, 2414, 1848, 2638, 1681, 2542, 909, 1979, 2826, 2085, 2250, 1215, 2977, 1333, 3265, 1809, 3133, 1419, 1432, 2408, 2576, 3231, 2027, 3796, 3078, 1844, 1852, 310, 3144, 1272, 2796, 2413, 1557, 2652, 2798, 1252, 3006, 2233, 3001, 1077, 329, 736, 1748, 2657, 481, 3096, 2739, 2500, 1434, 1972, 1953, 513, 1790, 1600, 2853, 2930, 1759, 963, 2544, 1241, 1521, 2219, 2073, 3240, 1252, 1507, 989, 351, 1375, 738, 1487, 2268, 2817, 2983, 498, 826, 2382, 2892, 2001, 646, 1669, 2206, 2744, 1511, 2065, 839, 1539, 3185, 2298, 2008, 1861, 317, 1905, 2701, 2086, 951, 2984, 3383, 3753, 2785, 3243, 2291, 1194, 2164, 951, 1241, 314, 2606, 3127, 1832, 1256, 1377, 3947, 1910, 3340, 1120, 2762, 4053, 1659, 2042, 3269, 1293, 2524, 2016, 121, 1758, 1941, 1006, 3464, 2038, 1520, 1466, 804, 1367, 2051, 2116, 1305, 3504, 3223, 1289, 2043, 1077, 2393, 2702, 1797, 3498, 619, 2475, 4050, 3549, 1840, 1137, 748, 2408, 2775, 1057, 935, 1903, 1209, 1230, 1781, 1280, 1102, 696, 1142, 2602, 743, 807, 3082, 2020, 2231, 1519, 2724, 930, 292, 2671, 3417, 1179, 1274, 1350, 2890, 1105, 1814, 1046, 3117, 1491, 1978, 3044, 2019, 1666, 1530, 2928, 1182, 2085, 1343, 1800, 2113, 1476, 3276, 3062, 2259, 1461, 3717, 764, 877, 1844, 3709, 3362, 2772, 3728, 1841, 487, 2364, 2447, 1018, 1667, 2173, 2428, 2318, 1529, 821, 2425, 3403, 695, 2486, 1430, 3842, 2895, 3329, 2313, 926, 2363, 2205, 374, 1864, 1911, 846, 3148, 2135, 1757, 3794, 3664, 993, 2181, 1607, 3368, 1065, 3288, 3525, 2195, 3438, 3255, 3652, 3010, 1055, 3425, 1954, 988, 1233, 3632, 1640, 1881, 3214, 2248, 2885, 2332, 1220, 2650, 678, 1628, 1968, 1942, 1239, 3012, 2799, 961, 3224, 567, 2199, 1585, 170, 288, 2964, 1905, 908, 911, 1893, 2592, 2027, 1347, 2863, 1450, 1111, 3640, 1841, 2751, 1515, 2884, 3549, 3123, 538, 369, 1073, 2299, 932, 3435, 2280, 690, 570, 2029, 1489, 2892, 3204, 2468, 1176, 3676, 2712, 2337, 747, 897, 2292, 1429, 3519, 1051, 3416, 2703, 2444, 3164, 1918, 1651, 2008, 1596, 2538, 2362, 2031, 3107, 2246, 268, 2870, 2725, 1825, 3585, 2728, 1966, 1106, 2096, 2541, 534, 1462, 1417, 2160, 2692, 1257, 1498, 3580, 620, 1763, 1125, 739, 3157, 2753, 1621, 1771, 2658, 1748, 1718, 3283, 675, 530, 1286, 974, 1180, 1290, 1924, 1108, 1335, 434, 1094, 2990, 3650, 3272, 3031, 3037, 2469, 1873, 1775, 1491, 2931, 3592, 2514, 373, 3045, 2167, 1981, 3195, 239, 2161, 3121, 2517, 1142, 971, 1675, 1850, 1917, 1676, 328, 1818, 1132, 2137, 1550, 1032, 1944, 377, 1719, 2730, 2699, 1424, 3141, 1150, 2584, 799, 1380, 2850, 2148, 1453, 1004, 710, 3312, 784, 3249, 3118, 914, 1281, 1626, 3460, 1199, 1398, 1552, 1924, 2758, 1093, 2048, 2368, 2268, 401, 1918, 3668, 1310, 1501, 2186, 2241, 2987, 3678, 1760, 2049, 1531, 2006, 3394, 3437, 1953, 2545, 1035, 1855, 1277, 1817, 1883, 2469, 1906, 2264, 3002, 417, 1648, 2398, 1107, 1683, 3103, 1561, 2840, 2911, 3113, 2244, 1246, 3526, 1647, 1916, 3218, 2487, 1739, 2660, 2258, 275, 844, 3604, 1946, 3432, 2336, 2288, 1445, 1707, 629, 3176, 1706, 619, 2861, 2649, 1931, 3859, 1935, 1361, 1287, 1933, 2259, 3690, 3929, 1838, 2191, 2849, 840, 2119, 3056, 1413, 2720, 2643, 2421, 2358, 510, 2215, 1102, 2349, 2801, 2776, 1361, 793, 3498, 2195, 350, 2046, 2437, 1609, 782, 3244, 1859, 2626, 1105, 2529, 2401, 1732, 197, 2308, 2287, 1927, 886, 2746, 281, 2890, 2279, 2924, 1118, 1673, 3917, 2424, 210, 1530, 3219, 3279, 644, 3567, 2455, 3228, 2762, 2661, 893, 3515, 1104, 3055, 3388, 2571, 1857, 2653, 153, 1573, 2068, 1630, 2725, 792, 3304, 1810, 1762, 1760, 3468, 944, 3404, 2712, 921, 1133, 2296, 1806, 2845, 2349, 1286, 1819, 943, 3706, 1635, 1922, 975, 438, 2904, 1200, 3268, 127, 687, 2034, 1091, 1443, 1876, 1874, 1902, 1566, 1187, 1592, 1795, 1031, 1751, 301, 600, 1772, 2109, 2781, 1446, 1283, 1738, 2369, 1971, 2783, 3270, 1036, 2540, 2923, 775, 2464, 1437, 2081, 1574, 2459, 3033, 564, 3856, 2628, 2096, 1725, 1930, 1225, 942, 2028, 2025, 2699, 1017, 2504, 2038, 1128, 3870, 2857, 3143, 1406, 3497, 1555, 2503, 1665, 1511, 2738, 3188, 1243, 802, 2965, 3751, 1931, 2507, 1612, 1449, 2412, 2509, 650, 1990, 3331, 266, 1735, 2206, 2416, 963, 1406, 2203, 792, 1872, 2288, 1324, 1852, 1409, 2838, 2582, 2900, 1651, 2336, 3491, 867, 2737, 2127, 1775, 2415, 150, 2092, 1157, 1022, 1533, 2907, 1513, 3323, 3850, 880, 822, 2781, 1562, 2261, 1411, 1237, 2157, 588, 2356, 3672, 3448, 593, 1782, 758, 1058, 2490, 2181, 3715, 261, 3695, 474, 2590, 4012, 1631, 2519, 2018, 584, 4028, 1808, 839, 1417, 1030, 3304, 1168, 3679, 3021, 2956, 2511, 2795, 1489, 2368, 2125, 4017, 2570, 1997, 2526, 1369, 423, 1539, 3150, 3587, 1304, 916, 2000, 1185, 1531, 3648, 1885, 2822, 2391, 823, 2033, 1209, 817, 1883, 3345, 2330, 2442, 1679, 834, 3092, 872, 2072, 2934, 3873, 1475, 1777, 2109, 1972, 3918, 1420, 1092, 929, 1427, 2409, 1400, 2631, 1257, 1820, 2639, 1003, 824, 1585, 2730, 2310, 1011, 1751, 2393, 3970, 2430, 1213, 2054, 2086, 2901, 3830, 2870, 2735, 1860, 489, 2188, 2491, 1856, 965, 325, 857, 2321, 1535, 178, 154, 1266, 3326, 639, 2717, 2400, 2628, 2751, 2938, 1540, 2245, 2115, 3254, 2045, 1087, 1441, 1317, 3528, 1969, 3443, 1759, 3301, 3606, 724, 1143, 3113, 525, 1742, 1129, 3132, 3601, 2968, 1043, 3323, 1559, 557, 1029, 1070, 2583, 885, 3246, 3081, 2932, 1444, 822, 2420, 868, 2615, 1761, 2589, 757, 3495, 2747, 3108, 2005, 2567, 2341, 445, 2841, 972, 2075, 3552, 3556, 1478, 3515, 2776, 520, 2076, 2507, 2444, 1747, 2521, 3912, 2193, 2662, 3380, 1634, 2875, 3208, 1413, 2811, 3228, 1590, 2214, 440, 3079, 543, 1568, 2253, 3013, 1989, 2290, 1987, 903, 2678, 2454, 2777, 177, 2878, 1094, 1291, 1911, 2680, 2360, 3042, 1032, 1471, 2176, 3596, 1833, 3588, 1126, 1604, 1248, 1729, 2729, 3764, 1855, 2204, 1377, 3028, 1816, 1457, 2328, 3395, 3895, 3313, 1745, 2028, 2373, 3821, 2021, 2677, 4055, 1793, 1494, 199, 2948, 1283, 2516, 444, 3160, 1005, 1219, 3796, 2375, 726, 1754, 2420, 3429, 2041, 3825, 3429, 3522, 1564, 2103, 777, 2849, 1591, 3050, 2164, 2105, 1695, 2945, 2603, 1589, 3213, 1864, 2151, 2332, 976, 2668, 2373, 1873, 3859, 3330, 1064, 2558, 2513, 2831, 1538, 2529, 2271, 2609, 600, 2568, 2361, 3291, 1679, 2089, 1441, 3437, 2727, 346, 644, 2548, 469, 3026, 2612, 3359, 3196, 2463, 885, 2887, 390, 1305, 380, 1550, 1247, 3971, 1299, 680, 1723, 560, 2771, 2028, 2474, 2965, 1235, 2201, 3763, 2389, 1618, 2355, 3969, 2088, 2246, 3665, 2986, 1047, 1869, 1346, 384, 1987, 3145, 3044, 1886, 2723, 1773, 2404, 2202, 3153, 1676, 1481, 1486, 1677, 943, 930, 1914, 1484, 1373, 979, 1951, 548, 3043, 3646, 937, 2342, 1106, 1086, 2793, 3298, 2498, 2434, 566, 1970, 2464, 2388, 1729, 3526, 2093, 3005, 3486, 1398, 1876, 3427, 1325, 1404, 1139, 1691, 1070, 2571, 1943, 725, 1015, 1157, 1777, 2332, 1794, 1616, 2015, 936, 2207, 2721, 1615, 2577, 2812, 1854, 3016, 1974, 2629, 544, 774, 863, 1963, 2937, 3366, 769, 3545, 3282, 3653, 2175, 1245, 1524, 1355, 2919, 2087, 2283, 1188, 2223, 2660, 1815, 1878, 2647, 2152, 2757, 1933, 820, 1315, 1680, 3138, 1716, 2490, 2634, 2827, 2520, 1193, 582, 3205, 1701, 3492, 3068, 1165, 3846, 2025, 2314, 1934, 2740, 2262, 2427, 994, 2607, 2642, 709, 961, 2929, 2988, 837, 3720, 1318, 1842, 2211, 1612, 1767, 2136, 2256, 2255, 2793, 671, 2394, 718, 2728, 3943, 1331, 1394, 1815, 2442, 3655, 2167, 1348, 689, 863, 2599, 1206, 2211, 2714, 2325, 1152, 2672, 1534, 3063, 1046, 2673, 1770, 2338, 1244, 594, 1637, 531, 3805, 1340, 1595, 1472, 694, 2671, 2234, 2425, 2574, 901, 3469, 900, 1143, 3257, 3631, 1345, 1214, 1424, 2063, 3209, 1209, 1122, 1113, 1263, 2450, 1118, 879, 2356, 2949, 3665, 2228, 1377, 1705, 2440, 3163, 727, 2097, 1211, 2897, 1240, 1943, 816, 2973, 1837, 989, 1067, 848, 3061, 2648, 2163, 864, 3031, 2251, 2575, 2237, 2384, 3187, 747, 886, 1562, 1342, 837, 1871, 2419, 1400, 1937, 2339, 3605, 3023, 2720, 3126, 348, 2314, 1878, 2263, 3146, 2564, 3135, 1421, 1292, 2075, 2708, 3530, 2248, 587, 3054, 3100, 2517, 2245, 730, 2115, 3782, 3491, 2303, 1667, 1741, 1817, 3441, 2390, 3095, 3286, 1519, 1598, 288, 1051, 3364, 546, 2093, 1358, 1449, 3758, 1923, 2399, 2268, 330, 1697, 1348, 2876, 1227, 1218, 1740, 1208, 2444, 717, 2836, 2834, 1456, 1336, 3375, 2055, 749, 3342, 3034, 818, 3234, 1995, 2118, 3338, 46, 2812, 2439, 2702, 2398, 2082, 2303, 3344, 3855, 3292, 2774, 3511, 3691, 2439, 2594, 777, 2455, 1914, 2853, 2932, 3517, 1600, 3888, 1829, 2617, 1830, 1351, 3411, 1835, 2255, 2401, 1682, 151, 349, 1375, 2502, 1019, 493, 903, 3131, 1020, 3802, 2384, 544, 1849, 2671, 1760, 1802, 2472, 1779, 459, 631, 391, 676, 921, 1002, 2358, 699, 3567, 1864, 3207, 778, 2155, 1454, 2644, 3269, 812, 361, 1335, 1167, 2664, 3329, 1959, 2285, 1382, 780, 1457, 748, 1934, 2001, 1518, 1626, 1396, 1366, 3201, 2862, 847, 500, 1226, 1196, 1520, 2844, 2723, 527, 2897, 2991, 1388, 1389, 2485, 954, 3022, 2304, 2559, 1418, 880, 456, 553, 3651, 3644, 2507, 2825, 1141, 2879, 1039, 2235, 1204, 2946, 1961, 2436, 554, 996, 2461, 1485, 2335, 290, 859, 1752, 3167, 2080, 3603, 1623, 2207, 2909, 1794, 3580, 1154, 1823, 2820, 1469, 3406, 1570, 2440, 2489, 1050, 3901, 3877, 1192, 516, 601, 3043, 928, 3127, 2135, 1719, 1879, 2585, 1546, 1433, 2123, 2369, 1655, 965, 2830, 1639, 2893, 2992, 2099, 1793, 1322, 1918, 1871, 691, 3061, 2581, 915, 1826, 1709, 1273, 2880, 1467, 851, 752, 3423, 658, 1379, 1122, 1563, 2133, 3223, 1736, 2586, 1517, 2326, 763, 1656, 628, 3040, 2064, 642, 871, 1738, 2587, 734, 374, 1496, 1285, 1909, 2020, 3555, 1146, 1522, 635, 2399, 745, 2088, 2854, 2636, 1492, 2294, 1778, 3166, 2593, 1711, 2502, 2816, 3322, 1785, 2806, 435, 2749, 3103, 3445, 1399, 2052, 382, 3178, 2132, 3231, 3932, 2741, 2344, 1025, 2485, 3718, 2266, 1346, 1662, 1048, 1264, 776, 3107, 1055, 2659, 2260, 466, 530, 2309, 1214, 1571, 3600, 1788, 3576, 2144, 1577, 1110, 1097, 3478, 1542, 3936, 2309, 2271, 2984, 3101, 2120, 4001, 1953, 2131, 811, 2270, 1030, 1422, 2708, 3604, 1031, 1368, 3203, 2770, 2956, 1583, 2253, 1502, 1480, 2971, 452, 2141, 2721, 2547, 1398, 1789, 2706, 532, 1461, 2813, 3124, 2438, 2835, 2763, 1178, 2938, 1811, 2299, 597, 1712, 2557, 896, 1828, 3061, 2886, 2417, 1062, 901, 3194, 239, 2437, 3607, 1207, 2631, 2943, 2158, 2696, 174, 866, 3080, 701, 2107, 3096, 3504, 1714, 1034, 1660, 1736, 1621, 2815, 1449, 2656, 2739, 3058, 2879, 3554, 957, 2665, 2238, 1023, 1293, 2860, 1393, 3753, 3256, 2683, 2756, 2221, 2803, 2095, 1542, 2177, 1107, 1974, 1108, 2026, 1579, 1139, 2535, 950, 1955, 1686, 2000, 1359, 2106, 2105, 3216, 2307, 1172, 900, 3156, 1112, 490, 2278, 526, 1704, 2372, 1122, 3116, 1039, 1587, 1395, 940, 1660, 687, 1878, 1115, 1841, 1426, 1536, 3015, 1160, 2070, 2736, 403, 3354, 3199, 1866, 1307, 807, 1733, 3578, 1685, 2285, 1528, 3579, 1596, 2204, 1046, 2635, 2504, 2829, 2403, 1728, 3613, 1599, 3357, 1001, 2126, 1257, 1611, 3474, 3064, 1446, 3432, 3452, 1614, 2545, 2282, 3004, 1026, 3274, 2510, 3179, 1998, 926, 2216, 2662, 2966, 3482, 2446, 1455, 2650, 1098, 1215, 2947, 2435, 1534, 503, 3118, 2178, 1360, 3481, 1709, 950, 3309, 572, 1308, 2694, 3017, 2056, 2144, 1853, 2091, 3391, 2031, 263, 3351, 70, 1111, 2012, 2445, 393, 1605, 1392, 1780, 2576, 3181, 1499, 1840, 2187, 1339, 1723, 1384, 1032, 2952, 1895, 833, 2959, 583, 1344, 1754, 3002, 349, 2933, 2265, 2597, 1810, 1328, 1835, 2360, 2237, 2448, 2714, 1528, 2189, 2224, 642, 2062, 3447, 1708, 1302, 1784, 2154, 2913, 1611, 250, 2300, 3945, 1479, 759, 2119, 2278, 1683, 2639, 2041, 1834, 1962, 2062, 2340, 2328, 1327, 3586, 4038, 2257, 1204, 2414, 3003, 1816, 2994, 1724, 2838, 1986, 569, 632, 996, 1967, 3221, 1849, 1669, 1644, 2465, 1757, 3315, 3244, 3615, 3263, 2569, 464, 1879, 1131, 3130, 1165, 2523, 1947, 3245, 3104, 3223, 3604, 2471, 2619, 2410, 1973, 3400, 2098, 3546, 1553, 1545, 2821, 2066, 2489, 478, 2335, 2911, 3433, 2668, 2090, 1726, 1387, 1948, 2894, 753, 1480, 793, 1524, 1858, 2152, 2980, 2114, 2698, 3574, 632, 689, 1442, 414, 3249, 3929, 1439, 236, 2371, 1570, 2753, 4035, 311, 2997, 2061, 843, 3218, 1755, 2580, 3506, 3047, 1892, 2773, 2003, 990, 2643, 1103, 1798, 1071, 2014, 1216, 2306, 887, 2279, 367, 2950, 3899, 3419, 2221, 3069, 628, 3015, 1720, 2209, 440, 1297, 1966, 1832, 2137, 2022, 2686, 2293, 1603, 246, 3191, 3347, 3085, 2953, 2424, 2017, 3674, 1578, 3781, 2417, 1700, 2017, 335, 827, 585, 597, 1440, 1731, 2079, 2042, 1486, 723, 3385, 2015, 1880, 654, 2094, 2306, 2074, 3431, 3291, 1287, 1397, 2183, 2385, 3513, 1994, 2035, 2037, 1369, 2780, 964, 2339, 2706, 3242, 2043, 178, 2375, 3147, 2232, 1252, 2843, 3934, 1801, 1407, 2957, 3631, 2755, 2205, 3119, 3088, 1197, 2016, 1756, 2276, 2955, 2433, 3063, 1331, 1382, 2641, 2369, 936, 429, 3519, 698, 2521, 1620, 3358, 1563, 347, 874, 2334, 1076, 1471, 3125, 2742, 1330, 2591, 599, 1725, 2353, 2836, 3272, 2138, 378, 2735, 1143, 1437, 2185, 521, 2560, 2233, 2179, 2379, 3536, 2622, 667, 405, 2662, 2209, 1501, 2486, 3257, 3310, 621, 3983, 870, 2539, 3084, 2309, 2334, 2705, 2061, 876, 3322, 2059, 2365, 2691, 3496, 3620, 3081, 2692, 2898, 1989, 2153, 1960, 2436, 1487, 3195, 2948, 2218, 1300, 720, 2151, 1722, 2355, 1076, 3143, 1949, 1795, 1261, 582, 1257, 942, 436, 253, 538, 908, 846, 629, 736, 1428, 1126, 706, 755, 410, 449, 828, 877, 430, 344, 1322, 426, 1215, 1601, 1793, 1633, 866, 2288, 1589, 561, 777, 1169, 1330, 468, 459, 685, 436, 1956, 1324, 212, 888, 821, 2066, 784, 1568, 796, 1251, 497, 1430, 1108, 537, 1577, 737, 1529, 721, 391, 962, 1218, 493, 1189, 1235, 1177, 778, 595, 1009, 1515, 10, 1069, 1207, 1037, 913, 599, 1142, 1139, 779, 1067, 653, 466, 747, 683, 1129, 1057, 514, 1166, 663, 958, 895, 870, 1036, 819, 610, 1763, 810, 774, 253, 1274, 711, 543, 805, 145, 1658, 1208, 336, 348, 782, 1087, 2137, 1305, 481, 1522, 530, 634, 189, 1005, 1432, 1183, 1546, 1096, 1308, 1205, 721, 1011, 230, 770, 406, 406, 1237, 972, 1266, 970, 409, 1645, 1371, 888, 1053, 602, 1337, 870, 714, 432, 1160, 895, 713, 882, 871, 161, 2171, 643, 1133, 1252, 707, 450, 1010, 481, 1397, 591, 647, 511, 1100, 340, 1008, 756, 1074, 596, 1459, 910, 969, 697, 559, 518, 1584, 540, 804, 1425, 1115, 1311, 779, 734, 976, 442, 655, 839, 605, 619, 467, 1499, 967, 1061, 1349, 704, 130, 1089, 1178, 1161, 1141, 1071, 1035, 486, 934, 1401, 651, 924, 1282, 1282, 389, 1278, 655, 992, 614, 981, 158, 1031, 985, 300, 651, 737, 1755, 798, 1911, 1467, 782, 509, 451, 1125, 1295, 465, 979, 1083, 1031, 1282, 550, 1546, 900, 444, 1545, 1207, 1655, 913, 852, 1228, 338, 607, 934, 236, 721, 1084, 236, 291, 590, 589, 1114, 1257, 603, 117, 1044, 432, 1255, 1656, 806, 762, 776, 686, 388, 622, 941, 1308, 1200, 259, 1051, 1514, 529, 651, 1349, 868, 764, 946, 603, 888, 372, 493, 664, 418, 769, 1300, 993, 416, 607, 990, 505, 618, 673, 911, 610, 1442, 798, 1844, 879, 515, 840, 937, 797, 718, 390, 675, 672, 921, 1034, 601, 442, 297, 850, 631, 782, 607, 1461, 722, 162, 215, 756, 1308, 965, 1464, 531, 965, 2183, 974, 485, 512, 1586, 505, 1672, 463, 649, 1048, 967, 687, 1139, 1229, 1281, 1060, 1261, 535, 941, 399, 1013, 783, 1711, 433, 1308, 1739, 312, 1118, 395, 839, 1003, 997, 177, 557, 842, 1270, 292, 980, 459, 426, 1207, 160, 1097, 519, 573, 945, 311, 666, 164, 945, 306, 1694, 357, 411, 1030, 1220, 408, 1197, 679, 452, 938, 1335, 496, 423, 414, 947, 625, 801, 992, 637, 918, 643, 1582, 1017, 908, 699, 960, 1095, 1475, 1064, 925, 919, 987, 1657, 685, 1279, 334, 724, 971, 310, 590, 839, 1249, 240, 1287, 1718, 1019, 931, 798, 524, 1653, 101, 348, 442, 955, 335, 1168, 1584, 376, 651, 167, 1056, 743, 1738, 186, 520, 631, 865, 819, 988, 35, 1080, 730, 872, 658, 828, 1758, 1248, 300, 1244, 539, 735, 340, 150, 802, 780, 1283, 831, 826, 645, 442, 119, 723, 827, 1019, 305, 1553, 1241, 487, 590, 1770, 121, 1381, 1103, 936, 2114, 881, 1056, 1260, 1360, 541, 347, 1630, 1096, 176, 587, 382, 721, 884, 1096, 213, 1757, 1151, 397, 291, 1161, 3376, 3828, 2766, 1604, 3185, 3504, 2472, 2595, 1669, 3400, 4067, 4080, 3463, 3321, 3036, 4068, 2421, 3991, 3911, 4044, 3099, 1110, 1889, 3606, 3544, 3130, 3214, 3112, 2584, 3067, 1800, 3764, 3713, 2847, 3415, 1154, 3140, 3537, 2969, 2203, 3768, 2891, 3162, 4004, 4046, 3300, 1043, 2244, 2833, 3581, 2213, 3516, 2465, 2804, 3883, 2287, 4020, 3535, 2063, 4006, 3842, 2818, 3696, 2327, 2636, 2489, 3459, 3473, 1373, 941, 3846, 2596, 3241, 4091, 3119, 3650, 3827, 3022, 2508, 3803, 3995, 2732, 2146, 4079, 3964, 3003, 1925, 2789, 2150, 3239, 2013, 3688, 4039, 3533, 2518, 3056, 3356, 3922, 3388, 4014, 1435, 1373, 3619, 3983, 3196, 4095, 1617, 3645, 3542, 2956, 2891, 1624, 1836, 3187, 3253, 2073, 3896, 2905, 2484, 3180, 3000, 1622, 3152, 805, 2313, 3797, 3463, 3237, 3279, 2435, 3540, 3594, 2968, 3210, 2718, 1184, 3254, 3889, 3695, 509, 4074, 3197, 3835, 2954, 3312, 3562, 3052, 3019, 3258, 978, 3303, 4082, 3834, 2252, 3680, 3489, 3904, 2958, 3081, 2134, 3591, 3546, 3725, 2602, 3630, 3363, 3784, 3165, 3958, 2071, 4020, 2069, 3153, 3392, 3749, 3690, 2548, 3887, 3662, 1831, 3457, 2230, 2084, 4072, 2578, 3827, 3030, 4008, 1275, 2450, 2389, 3450, 2001, 3367, 3442, 4010, 1674, 2122, 3391, 1364, 3708, 1998, 3752, 3806, 3480, 2401, 3998, 1419, 2810, 752, 3710, 3936, 663, 3697, 1971, 3084, 2981, 1755, 2112, 874, 3324, 3503, 2889, 2169, 3404, 3868, 3543, 4042, 2522, 2687, 2400, 2637, 3475, 3721, 2684, 3654, 3454, 3972, 3442, 3438, 1506, 3939, 3170, 3379, 3840, 3901, 3937, 2833, 3858, 3823, 2642, 4004, 2878, 2993, 3348, 3866, 3602, 2605, 2494, 3927, 4009, 3404, 3911, 2909, 1684, 1691, 3408, 2668, 1941, 1818, 3587, 3362, 1494, 3914, 1278, 2666, 3864, 2765, 3993, 3697, 2387, 3952, 2587, 3632, 3422, 2834, 4094, 3403, 2000, 3412, 2779, 3500, 3128, 2070, 2828, 3358, 3522, 3930, 3399, 3325, 3959, 2386, 4093, 3989, 3547, 2961, 2466, 1881, 4093, 2242, 2860, 3060, 3309, 3053, 3502, 3688, 3045, 2405, 3412, 3166, 3508, 3956, 3281, 3436, 3459, 2457, 4026, 3944, 3467, 3718, 2846, 3851, 3374, 2555, 3675, 3679, 2709, 3410, 2969, 3300, 2280, 1985, 2933, 1575, 3401, 3287, 1917, 3142, 3960, 3479, 4066, 2441, 3201, 2704, 4016, 3241, 3572, 2251, 2630, 3960, 2977, 3829, 3003, 3361, 3752, 2975, 3254, 2286, 3446, 415, 3272, 4083, 2896, 2846, 3658, 2748, 4025, 3999, 3950, 2889, 3633, 1692, 3472, 2329, 825, 3898, 3516, 2117, 3723, 2916, 1265, 2632, 3910, 3594, 3707, 3488, 3496, 3530, 3899, 3469, 4052, 1940, 3524, 2998, 3830, 2888, 3864, 2190, 2403, 2217, 3783, 3941, 3660, 2343, 2578, 3770, 2091, 3704, 2323, 4006, 2079, 2157, 3523, 2992, 3794, 3120, 2980, 2750, 3656, 2610, 1274, 3017, 3000, 2407, 3995, 3142, 3953, 3841, 3598, 3503, 3187, 4066, 3169, 3798, 1740, 3971, 2900, 3772, 3448, 2227, 3805, 3925, 1666, 2908, 3914, 1443, 3918, 3093, 2979, 2354, 3902, 3860, 2843, 3833, 3183, 1671, 3933, 1270, 3644, 2754, 3515, 3070, 2379, 2290, 3878, 2831, 927, 3942, 3614, 2482, 2898, 2419, 2871, 2971, 2705, 4012, 2228, 2844, 1535, 3399, 2985, 2043, 2828, 3566, 1065, 3915, 3965, 1260, 4019, 2077, 2952, 2632, 2925, 1708, 3600, 2829, 4080, 2272, 3134, 2319, 2615, 3993, 2183, 3942, 1422, 3751, 3316, 3174, 3476, 3893, 3509, 1027, 1561, 1955, 1134, 3807, 3916, 3745, 3103, 3951, 2512, 3585, 3247, 3926, 3951, 3979, 1769, 2398, 2722, 2965, 3172, 4088, 3733, 3647, 2326, 3401, 4020, 3972, 3692, 4088, 1962, 2914, 2966, 3267, 2786, 1453, 1833, 3027, 3063, 3879, 2068, 2199, 3271, 2760, 4039, 3883, 3779, 3717, 3651, 3826, 2850, 2380, 3818, 3738, 3117, 2121, 3131, 3357, 746, 3804, 2057, 3436, 3421, 3689, 4086, 4019, 2707, 3921, 2496, 1429, 3029, 3726, 3720, 3209, 2998, 3579, 2778, 3735, 3482, 3032, 3721, 3924, 4007, 3417, 4096, 3050, 1981, 4034, 2995, 2515, 1900, 3495, 3211, 2718, 3115, 2564, 3200, 3955, 733, 3884, 3575, 2973, 2503, 4048, 3384, 3620, 3602, 2666, 3868, 2790, 2663, 3730, 3460, 2435, 3375, 3394, 2749, 3986, 3328, 2143, 3132, 1818, 4029, 1705, 3411, 2811, 3705, 2990, 4034, 2889, 3124, 2808, 2838, 1710, 2834, 3042, 4063, 3130, 3980, 3720, 3225, 1599, 3538, 3608, 3363, 4023, 1414, 3894, 1560, 2262, 3517, 2103, 2198, 3979, 2549, 2311, 2866, 3709, 3639, 1863, 2396, 3313, 2993, 2397, 1582, 2707, 3872, 4019, 3750, 2429, 3346, 3365, 3378, 2151, 3299, 2945, 3692, 4008, 3836, 3944, 2638, 2661, 3682, 3330, 2883, 1717, 3981, 3134, 3317, 3466, 2676, 1819, 3907, 2580, 3626, 3737, 3806, 3840, 3226, 3747, 4000, 3122, 3470, 1894, 3700, 2941, 2441, 2696, 3512, 2407, 3524, 3239, 1729, 1314, 3953, 3308, 3744, 2927, 3906, 4071, 3718, 1798, 3759, 2495, 3736, 3810, 2282, 3750, 3932, 3067, 3343, 1507, 3247, 3417, 3559, 4044, 3954, 1893, 4010, 2510, 2044, 3732, 3831, 3414, 4095, 1754, 3341, 4085, 3850, 3230, 3066, 2665, 3793, 2525, 3627, 3965, 3490, 3964, 3447, 1766, 1418, 3395, 1610, 4053, 2502, 2220, 3609, 3683, 3716, 3322, 3346, 3544, 3025, 2955, 3736, 3256, 3172, 3769, 3139, 2337, 4087, 3266, 2338, 3369, 3452, 3845, 3437, 2342, 3645, 3151, 2350, 3335, 1561, 2608, 3333, 3816, 1882, 3560, 3273, 3807, 3571, 1916, 2667, 4085, 3876, 3904, 3289, 1830, 1568, 3780, 3510, 3455, 2657, 3897, 2962, 4031, 3409, 3905, 3595, 3221, 2374, 3838, 2792, 3152, 3768, 3739, 2179, 3772, 2823, 2800, 2797, 3797, 2193, 3484, 3235, 3479, 1705, 3501, 3869, 3086, 2411, 4010, 3876, 3278, 3169, 3820, 3664, 2727, 3788, 3021, 3722, 4038, 3423, 3491, 3761, 3975, 2574, 2239, 3915, 2186, 3340, 3638, 3302, 2681, 3422, 3406, 2570, 2456, 3874, 3169, 3486, 3685, 2958, 3666, 3661, 2871, 3517, 1078, 3466, 3353, 3481, 2803, 3652, 3568, 3581, 2944, 2792, 3524, 2158, 2951, 3189, 3563, 3232, 3510, 3725, 3967, 3564, 4018, 4030, 2314, 3729, 2284, 3286, 3609, 3882, 2910, 3624, 3790, 3642, 1672, 2741, 2858, 2566, 3050, 2623, 3836, 3043, 3874, 2006, 2226, 2932, 3420, 2796, 3773, 3725, 3013, 3284, 2124, 2709, 3072, 1452, 3522, 3331, 1746, 3697, 2872, 1159, 2740, 4056, 3536, 2856, 2909, 3611, 2320, 3079, 3332, 3093, 2675, 3712, 2985, 3227, 1782, 1066, 3944, 3687, 3943, 2289, 3025, 2799, 3067, 2198, 1275, 3494, 1248, 3589, 1758, 3951, 2940, 2807, 2178, 2703, 2131, 3837, 2473, 3928, 3879, 3829, 3381, 4072, 2229, 3580, 3985, 4078, 3793, 3735, 2930, 2239, 2902, 3680, 3743, 2689, 2168, 3918, 3593, 663, 2306, 3890, 4008, 3705, 2165, 1466, 1146, 2982, 674, 3382, 3207, 3897, 4043, 3349, 2295, 2881, 2808, 3037, 3341, 3462, 3446, 4058, 2370, 3457, 3613, 3535, 2322, 1698, 882, 1515, 1332, 4084, 3995, 3883, 3680, 3920, 3844, 3616, 2393, 3825, 2537, 4067, 3179, 2858, 3167, 3699, 2465, 2549, 3897, 2854, 2752, 3158, 2769, 3956, 3745, 2497, 4063, 3949, 3771, 3649, 3519, 3359, 3967, 3891, 2258, 4075, 3336, 3796, 3786, 2459, 1238, 3817, 2127, 3111, 1930, 3847, 3444, 2059, 1287, 3925, 3816, 3761, 4039, 3783, 3389, 3162, 3019, 4078, 3754, 3307, 2380, 3387, 3155, 4045, 2174, 2546, 2710, 3320, 3295, 2125, 3776, 3809, 3521, 2210, 3824, 3958, 3601, 2417, 3144, 2910, 3564, 3801, 1970, 3475, 3934, 2350, 2288, 3616, 3483, 1782, 1425, 4084, 3199, 3706, 3970, 2684, 4082, 4032, 3202, 3712, 3999, 4006, 2527, 4037, 2573, 4060, 4013, 2272, 3670, 2893, 3553, 3853, 2579, 2851, 3791, 2066, 3853, 2559, 3861, 2459, 3346, 3707, 2026, 2365, 3769, 3971, 3209, 3507, 3848, 2895, 3822, 2648, 3858, 3655, 2354, 1814, 3288, 4024, 3107, 3999, 2422, 2915, 3098, 3984, 1771, 2670, 910, 3913, 3760, 2323, 3639, 2323, 3126, 3966, 3924, 3495, 3628, 3155, 4071, 3974, 3614, 2989, 3938, 2620, 2678, 2488, 3221, 3935, 3360, 3888, 2674, 3167, 1843, 3059, 3861, 2475, 3360, 2346, 3212, 2715, 1646, 3358, 3716, 2140, 2324, 4083, 3612, 3214, 3441, 1829, 3010, 2022, 3366, 3293, 2862, 3931, 3203, 3602, 1969, 3380, 3985, 3431, 3065, 3881, 3630, 3041, 2764, 2752, 3122, 2296, 3741, 4066, 4062, 4009, 3823, 3064, 4056, 2405, 3684, 2969, 3711, 3411, 2830, 2348, 3683, 4050, 2976, 3900, 3827, 3639, 3264, 3548, 3800, 2855, 3804, 3799, 4063, 3802, 2783, 3812, 3319, 3454, 3345, 2340, 3803, 1223, 3855, 3287, 3502, 3464, 1560, 3158, 3118, 2284, 2258, 2521, 3561, 4040, 3596, 2891, 3393, 1644, 3554, 1942, 3393, 3803, 2020, 3875, 3299, 4069, 3513, 3704, 2406, 3563, 3115, 3629, 3828, 2680, 3842, 2476, 2767, 3711, 2654, 1808, 2904, 3961, 3458, 3270, 1670, 3091, 3578, 3487, 3902, 3528, 3428, 3976, 3309, 4028, 2832, 3598, 3384, 3982, 3527, 3772, 3870, 3261, 3741, 3119, 2603, 2934, 3963, 2893, 959, 2236, 3811, 3719, 2562, 3958, 2593, 3377, 2556, 1945, 3748, 3673, 1123, 3376, 2794, 3757, 2697, 2006, 3940, 3712, 2733, 396, 2930, 2563, 1769, 3665, 3178, 3668, 3919, 2688, 3306, 2283, 3619, 4094, 3021, 2987, 4082, 3368, 3097, 3075, 1783, 2310, 3691, 3248, 3440, 3064, 3077, 2135, 3395, 2711, 3572, 3177, 2791, 3049, 3031, 4081, 2485, 4075, 3101, 3494, 3428, 3278, 2582, 2281, 3538, 3994, 3263, 2700, 3977, 3612, 3332, 2005, 1139, 3190, 3507, 3149, 3489, 2881, 4011, 4009, 2067, 3481, 3569, 3641, 1499, 1148, 3129, 2722, 3829, 1092, 4077, 3298, 3815, 2481, 3048, 3814, 3338, 3062, 3887, 3666, 2991, 2427, 3849, 2833, 3400, 3534, 3290, 2501, 3472, 3099, 2499, 3545, 2634, 3334, 3004, 2279, 3445, 3724, 3693, 3054, 3238, 2644, 3996, 2152, 1128, 4011, 3534, 4025, 3881, 3988, 2057, 3809, 3997, 3480, 2154, 2532, 2818, 3681, 3765, 2450, 3588, 3111, 3870, 4021, 3642, 3397, 2775, 1258, 2962, 4054, 1846, 1527, 3759, 3910, 2249, 3742, 3622, 4007, 3355, 3822, 3076, 4027, 4074, 2613, 3543, 3864, 3932, 3579, 3699, 3781, 2148, 2952, 2157, 3696, 3733, 2265, 3192, 3073, 3020, 3112, 3589, 2225, 3835, 3285, 2115, 3948, 1574, 3582, 3703, 3078, 3806, 2100, 3779, 4052, 3986, 3987, 2297, 1318, 2560, 2856, 3854, 2628, 2591, 1912, 3605, 3599, 1500, 2504, 3611, 2158, 2974, 2284, 2229, 3895, 4049, 3808, 2004, 2982, 2537, 3289, 3319, 3950, 2830, 2149, 2575, 3374, 2652, 2378, 1284, 4093, 3592, 2768, 3295, 2972, 2533, 1753, 3733, 2800, 2596, 1891, 2869, 2770, 3048, 3993, 3673, 2828, 3969, 3965, 2782, 2732, 2440, 3769, 4027, 4016, 4013, 3663, 3171, 2600, 3087, 3138, 3190, 2433, 3762, 3963, 2330, 3505, 3352, 3426, 2532, 3336, 3402, 3947, 3339, 3672, 2347, 3398, 4029, 3160, 2572, 3009, 2751, 1678, 3276, 3192, 3228, 3956, 3916, 1340, 3788, 1865, 3698, 1341, 3828, 3592, 2719, 3920, 3709, 4003, 3208, 3926, 3863, 2648, 3270, 1581, 4045, 2997, 3387, 3814, 3653, 4002, 4014, 1488, 3992, 4064, 3409, 2182, 3060, 1505, 4092, 3474, 2879, 3685, 1623, 3271, 2839, 2495, 2467, 3797, 3920, 3319, 934, 2326, 2744, 2270, 2392, 3008, 3599, 2936, 3643, 3790, 3094, 2194, 3250, 4036, 4058, 901, 3033, 1342, 3881, 3973, 3841, 3748, 3701, 3668, 2574, 2399, 3419, 3734, 3415, 2536, 3679, 3982, 3259, 1221, 3198, 3583, 1796, 3975, 3397, 3961, 2906, 2616, 4033, 3451, 1721, 3977, 2069, 3011, 3974, 3947, 3184, 3499, 435, 3961, 2998, 3862, 3677, 3791, 2686, 3384, 2348, 3234, 2681, 2951, 3493, 3526, 3648, 1895, 2112, 3813, 3509, 3011, 2467, 2789, 3230, 3420, 2855, 3917, 2674, 4069, 3181, 3890, 3051, 549, 1646, 2116, 3440, 2555, 2023, 2565, 2761, 2859, 2331, 3115, 3975, 3880, 3256, 4002, 3551, 2051, 2267, 3908, 3428, 3908, 3415, 3121, 3108, 3637, 2651, 3352, 2645, 2901, 3532, 3885, 3673, 3377, 1690, 2963, 3149, 3093, 2806, 2470, 2556, 3247, 4089, 2852, 3097, 3792, 2196, 3850, 3434, 3656, 3778, 1251, 2590, 1180, 3421, 3351, 2815, 3237, 1944, 2658, 3694, 3334, 3950, 3168, 3787, 1613, 3373, 3815, 1820, 3499, 1621, 3692, 3957, 2328, 3766, 3393, 3243, 2712, 3603, 3909, 1838, 3791, 3787, 2791, 3597, 3938, 2473, 3776, 2418, 3206, 3677, 3532, 3173, 3062, 2436, 3557, 1436, 2242, 3371, 3092, 4062, 2988, 3188, 3288, 2055, 3464, 1128, 3558, 3826, 1836, 2996, 2996, 3363, 2557, 1402, 3696, 2814, 3703, 3453, 2623, 3224, 2679, 2483, 1585, 3356, 3859, 3028, 3670, 2944, 2599, 2939, 2619, 1682, 3681, 2711, 3731, 3038, 2823, 3596, 4003, 3845, 2386, 3398, 3556, 3901, 3778, 3939, 3453, 3222, 4073, 2470, 3553, 4016, 3854, 2777, 3705, 3723, 3335, 2635, 2784, 3779, 4061, 3483, 3077, 2294, 1088, 4077, 2536, 1983, 3490, 2611, 2113, 3275, 3934, 2683, 3138, 3314, 3184, 3552, 3379, 665, 3035, 3335, 3586, 3381, 2996, 1920, 2995, 3311, 3030, 1445, 4035, 4031, 3204, 1282, 1994, 3872, 4060, 3071, 3742, 3734, 3584, 3362, 3233, 2402, 3541, 2976, 3591, 3789, 3046, 3246, 3385, 2826, 2448, 2959, 2716, 3080, 1451, 3605, 4081, 3885, 1843, 3988, 2547, 3672, 2747, 3175, 2057, 3165, 2136, 2926, 3608, 2141, 3922, 3430, 3924, 1815, 2736, 3929, 2550, 4041, 1935, 3551, 421, 2427, 2869, 3294, 3819, 2926, 3210, 3532, 2170, 3139, 2103, 3505, 2010, 4057, 835, 1981, 2293, 2283, 3708, 2693, 2190, 2421, 2493, 2292, 3785, 3826, 1505, 2576, 3598, 1184, 3777, 2155, 2478, 3070, 4043, 3799, 2482, 3945, 2924, 2102, 2568, 2403, 2617, 2859, 3304, 3786, 3351, 1044, 3848, 3523, 3317, 3921, 2918, 3808, 1657, 3702, 3262, 3129, 2108, 2134, 2966, 3492, 1299, 1053, 3260, 4076, 3057, 3767, 1713, 1806, 3090, 3824, 1880, 2128, 3824, 2625, 3161, 3687, 3675, 3907, 3660, 2994, 3378, 2072, 3773, 1372, 2872, 4056, 2865, 3205, 3757, 3488, 2814, 3590, 2665, 3407, 2684, 2363, 2881, 1526, 3241, 1481, 3662, 3348, 3476, 1552, 3843, 3865, 3977, 2618, 3275, 1677, 2641, 3451, 3964, 3985, 3218, 3426, 3749, 3512, 1535, 2321, 1149, 1312, 3072, 3350, 3962, 2474, 4045, 1015, 2915, 4053, 2690, 3801, 2594, 1176, 4089, 2701, 3740, 3719, 2743, 4055, 1713, 3968, 3240, 3893, 3658, 2832, 3100, 3284, 2553, 4090, 3461, 3607, 2978, 1771, 2882, 1607, 3525, 4054, 1497, 1807, 2053, 2961, 2320, 3785, 3935, 3729, 3117, 1153, 2657, 2680, 3396, 3529, 3747, 2601, 3207, 2386, 3053, 3942, 3729, 3520, 3778, 4032, 2841, 3012, 3759, 3432, 4017, 3635, 3036, 3005, 3206, 3426, 3337, 3886, 3157, 2400, 2793, 1688, 2053, 2418, 3865, 3052, 1610, 3397, 3820, 3978, 3350, 2355, 2623, 3875, 3439, 3904, 4076, 3737, 3582, 3762, 3056, 2768, 3180, 1450, 3016, 1551, 3740, 1608, 3550, 3633, 3561, 3871, 3127, 3343, 2508, 3030, 3909, 3177, 3877, 2562, 2542, 3740, 3102, 2913, 2150, 3990, 3609, 3542, 4070, 2078, 3731, 3981, 2735, 3089, 3186, 2951, 3468, 2873, 3547, 3817, 3767, 2950, 3354, 3570, 3694, 1095, 2508, 3134, 2920, 3800, 3331, 3940, 3847, 1289, 2915, 2439, 3010, 3910, 3448, 1830, 3695, 3114, 3764, 2466, 2864, 2710, 1931, 2939, 2475, 3412, 4087, 3699, 2981, 4080, 3259, 2249, 2770, 3572, 3574, 2647, 2901, 4065, 3576, 3973, 3501, 2837, 3577, 3485, 3629, 3738, 3294, 2123, 3154, 3922, 3812, 2511, 3533, 3357, 3279, 2175, 3905, 2452, 4035, 3935, 3023, 3465, 904, 3461, 1567, 2094, 2045, 2810, 2798, 3306, 1846, 2379, 2927, 4044, 3997, 4054, 3863, 3326, 1466, 2846, 2928, 3880, 2701, 2583, 2847, 4012, 1951, 3930, 3123, 3955, 4067, 3892, 3224, 4055, 3903, 4051, 3834, 3018, 4060, 2141, 1867, 2322, 4033, 1518, 3132, 517, 4024, 1334, 1835, 3991, 2867, 4011, 1903, 2750, 3987, 3643, 4030, 3445, 3833, 3112, 3809, 1891, 3320, 1834, 3053, 2539, 2541, 3939, 3330, 3986, 3324, 3496, 1916, 3670, 3955, 3640, 3590, 3594, 2367, 3978, 3749, 1673, 3235, 2622, 3089, 1655, 2919, 2544, 3109, 970, 4027, 3408, 3302, 2593, 2720, 1448, 3663, 3469, 427, 882, 3686, 3784, 3954, 2821, 3406, 3215, 3175, 2774, 3040, 1661, 2745, 819, 3530, 1698, 4026, 2291, 746, 3259, 864, 3531, 2497, 2946, 3245, 2098, 3848, 3925, 3659, 2452, 2587, 4061, 3154, 3867, 3795, 3316, 1100, 2396, 2655, 2011, 2590, 3277, 3743, 2542, 3147, 3443, 3700, 2592, 3734, 2637, 2387, 2329, 3233, 2737, 1564, 2961, 2052, 3004, 1512, 2970, 1899, 3186, 4041, 1381, 3361, 1524, 3638, 3145, 3396, 3744, 2928, 4025, 2406, 3452, 3915, 3863, 4031, 3327, 4002, 3671, 2515, 2845, 3714, 3020, 2145, 1290, 2494, 3789, 3455, 3018, 886, 1031, 2614, 3414, 2888, 2078, 3949, 3893, 3511, 3208, 3219, 4091, 3894, 3032, 2452, 3465, 3857, 2898, 3234, 1219, 2560, 3293, 3943, 4026, 3387, 3798, 4047, 3852, 3540, 3713, 1582, 3307, 3184, 3471, 3537, 3996, 3435, 2792, 2007, 2140, 3164, 3163, 3606, 2238, 2912, 3292, 2463, 4064, 1973, 3274, 3289, 3914, 3884, 2900, 1063, 3659, 3514, 3500, 3775, 1804, 3905, 2886, 3774, 2757, 2762, 2761, 2589, 1903, 3009, 3731, 2370, 1704, 3355, 3851, 1394, 3767, 1904, 2538, 4036, 1890, 2758, 3682, 4092, 3281, 3336, 3529, 2531, 3104, 2837, 3959, 2153, 3913, 2748, 3926, 4072, 3105, 2307, 2715, 2842, 2754, 1678, 3436, 2904, 2880, 1565, 3510, 2844, 3317, 1837, 2782, 2835, 3838, 1985, 977, 3168, 1962, 4043, 2260, 1627, 1976, 1389, 3871, 3286, 3761, 3529, 1728, 3927, 3173, 1712, 3262, 3674, 1450, 1411, 3991, 3732, 3318, 1813, 3433, 3116, 1887, 2936, 1675, 1129, 2808, 3013, 3836, 3620, 2286, 2760, 3364, 3588, 1521, 3236, 3855, 3314, 3866, 3984, 1566, 3874, 2123, 2333, 1381, 2942, 3386, 3662, 3185, 4086, 3570, 4029, 2742, 2850, 3463, 3402, 1711, 2176, 3565, 2903, 987, 2549, 3369, 2374, 3222, 3753, 3860, 3885, 3465, 4015, 3890, 3310, 3923, 3311, 3783, 4018, 3856, 3220, 3646, 3912, 3678, 4089, 2605, 1958, 3206, 3595, 3754, 2524, 2416, 2861, 3919, 3649, 3371, 2100, 3511, 4078, 4022, 3895, 3102, 4042, 1861, 3106, 3386, 4094, 3862, 1290, 2820, 3747, 2322, 3954, 3667, 3058, 4057, 1618, 2534, 1597, 4022, 1538, 1223, 1790, 3777, 3297, 1337, 2926, 3871, 3264, 2247, 3792, 3022, 1396, 3649, 4033, 3271, 3919, 3898, 3087, 3777, 2067, 3671, 3583, 3018, 2552, 2918, 2696, 3625, 4013, 3634, 2920, 3701, 3736, 2698, 3382, 2347, 3153, 2938, 3728, 3131, 3566, 1896, 3959, 2446, 3531, 2476, 2989, 3754, 3248, 3171, 2566, 1731, 3686, 2117, 4073, 3121, 3080, 3636, 3258, 3386, 3204, 3835, 3882, 3527, 2779, 3326, 1874, 3755, 3296, 3936, 1068, 2991, 3831, 2222, 1642, 2278, 2478, 912, 3615, 3475, 4086, 1456, 3198, 2591, 2858, 3669, 1608, 4037, 2788, 3057, 2729, 4070, 2878, 3847, 3313, 2905, 3669, 2301, 3075, 2564, 1823, 2903, 3133, 1965, 3654, 3229, 3078, 3365, 2391, 1749, 3635, 3416, 2892, 1593, 3641, 3765, 4000, 2463, 3509, 3581, 3626, 3618, 2641, 2719, 1056, 1534, 2583, 3671, 3805, 3597, 3518, 3514, 3949, 2531, 2832, 2546, 3034, 3390, 2688, 3137, 3197, 3762, 2002, 3108, 2819, 3296, 3172, 3802, 2708, 3661, 3831, 3506, 3817, 3787, 4090, 3963, 3493, 3025, 1899, 3561, 3957, 3862, 3166, 2003, 3937, 4059, 1227, 1469, 1134, 3113, 3059, 3677, 2515, 2679, 2601, 3822, 1556, 1915, 3200, 2730, 2192, 2604, 2843, 3109, 3722, 3756, 4040, 2819, 2672, 2183, 2980, 1945, 4052, 3821, 1548, 3383, 2170, 2756, 4014, 2640, 2122, 2620, 4047, 3880, 1881, 2855, 2220, 3689, 3297, 2039, 3640, 3521, 3194, 1601, 2863, 2577, 3760, 2520, 1189, 2344, 3114, 3738, 3156, 3377, 2600, 2477, 2787, 2139, 3843, 1258, 2248, 2483, 3100, 3337, 2214, 3258, 3009, 3177, 3007, 2019, 3898, 2888, 3577, 3832, 2959, 3682, 3810, 3044, 1532, 3758, 3569, 3998, 2333, 2609, 495, 3367, 2949, 3745, 4059, 3293, 3444, 2048, 3989, 4092, 2606, 2370, 3520, 3628, 1790, 1037, 3470, 1067, 2905, 2845, 2567, 1626, 3341, 2030, 3071, 3938, 3014, 3968, 2500, 2013, 3371, 1765, 3684, 2237, 4038, 2716, 2575, 3297, 3911, 3250, 4077, 3478, 4068, 1588, 2700, 2675, 1959, 3333, 3732, 1183, 2669, 3786, 3902, 3477, 2621, 3770, 4096, 1820, 3213, 2172, 3839, 3990, 3637, 1458, 1886, 3052, 1027, 4061, 3981, 3480, 3576, 3505, 2963, 3715, 3381, 3906, 2866, 1785, 2953, 2745, 3211, 3652, 3810, 3438, 3623, 2033, 3987, 3523, 697, 3601, 3917, 3867, 3931, 4074, 2289, 2877, 1300, 3268, 3314, 2649, 3706, 4001, 3866, 3983, 2350, 2781, 3125, 2558, 3470, 1824, 3966, 3952, 3766, 2945, 3685, 1490, 3459, 2763, 2908, 2241, 3616, 3597, 3857, 3618, 3611, 3558, 3714, 3372, 3123, 3285, 2366, 1763, 3908, 2633, 2481, 3369, 1180, 4076, 2801, 2797, 1889, 3614, 1473, 2678, 4030, 3992, 2876, 1174, 1176, 4001, 2627, 1030, 3997, 1932, 1774, 3079, 4090, 3967, 3589, 3663, 2364, 2089, 2049, 2170, 3268, 3301, 4041, 1813, 3359, 3217, 1746, 2813, 2849, 2045, 3843, 3557, 3083, 2266, 3539, 1934, 4046, 2527, 3821, 1963, 4087, 2227, 3976, 1635, 3571, 3686, 3801, 3048, 2862, 3623, 3095, 3716, 3595, 2348, 2220, 3152, 3721, 4068, 1526, 3854, 3456, 2092, 4022, 2916, 3310, 1764, 3367, 3015, 3513, 3161, 4049, 2479, 3083, 3845, 3715, 3792, 2331, 3892, 4015, 3989, 3178, 3867, 2829, 2243, 3457, 3832, 2254, 4048, 2078, 2318, 3627, 2935, 2725, 3973, 3794, 2201, 2561, 3376, 2160, 3896, 2999, 3651, 3508, 3378, 3253, 3156, 3814, 502, 3735, 4048, 2380, 3028, 3812, 2825, 3429, 2461, 3556, 2263, 2051, 3232, 3667, 3157, 2692, 3544, 2512, 2081, 2137, 3988, 3026, 3533, 2611, 2805, 2569, 1503, 3019, 3623, 3111, 2613, 3603, 3109, 2460, 3148, 702, 3051, 3982, 2640, 4021, 4042, 2503, 3834, 1922, 1863, 2377, 3994, 1938, 1110, 3040, 3328, 3948, 2732, 3315, 3741, 3413, 2588, 3392, 4058, 1925, 4084, 4047, 2840, 3215, 4079, 3146, 3953, 3900, 2525, 3737, 3038, 3473, 2685, 2299, 2772, 3565, 3114, 2656, 3865, 2519, 3584, 3653, 3327, 3742, 3497, 3198, 1851, 3968, 1415, 3928, 1857, 3625, 2652, 3260, 3940, 3500, 4003, 3678, 3980, 3001, 3746, 3693, 3401, 3625, 2383, 3541, 3528, 2448, 2978, 1074, 2621, 3933, 3449, 2975, 3978, 2408, 2106, 2817, 3998, 1022, 1619, 1284, 3555, 3027, 2327, 3627, 2726, 3110, 3586, 2561, 1147, 3147, 2287, 3280, 4005, 2922, 1262, 2566, 3450, 3710, 4065, 2171, 3946, 2267, 1927, 3527, 2964, 2589, 3969, 3084, 2619, 3766, 3072, 1571, 3946, 1420, 2506, 3170, 4028, 3029, 3305, 1169, 3295, 492, 3727, 3916, 3996, 3085, 3430, 3894, 3238, 2764, 2872, 2537, 1787, 3667, 3816, 3858, 2185, 2954, 2541, 3334, 655, 3700, 3599, 3714, 3097, 3564, 3159, 3927, 3782, 3876, 3613, 3471, 3441, 2766, 2706, 596, 1069, 1939, 2224, 4065, 2885, 3462, 2121, 4059, 2999, 2530, 1897, 3385, 3675, 4046, 3899, 3891, 1846, 3657, 2210, 3212, 4091, 3088, 2598, 2767, 3765, 3869, 2506, 3024, 3146, 3431, 2897, 1338, 3937, 3750, 3748, 2848, 2912, 4021, 3994, 1578, 3418, 3707, 3621, 4024, 4051, 3571, 2784, 3174, 3016, 3537, 3075, 3713, 3066, 3316, 1689, 3833, 3844, 1727, 1170, 3813, 857, 3545, 2395, 3780, 3584, 2867, 1559, 3552, 2282, 2109, 3724, 3267, 2523, 3370, 3518, 2431, 2710, 3819, 4032, 2873, 3838, 3730, 2539, 1763, 2809, 2551, 2842, 2302, 2188, 3744, 3635, 2632, 2166, 1736, 2694, 2736, 1996, 3277, 3818, 3774, 830, 4036, 2454, 2962, 3394, 2935, 3182, 2791, 3557, 3405, 3979, 3648, 3768, 3840, 4018, 3946, 3090, 3197, 3506, 2823, 3374, 4007, 3739, 3422, 3498, 3984, 3857, 1707, 929, 4050, 3205, 3758, 3903, 3634, 4015, 3136, 1964, 609, 1918, 1061, 948, 360, 1155, 1001, 1137, 1021, 967, 1564, 1143, 787, 1444, 794, 558, 1095, 1107, 544, 373, 1603, 1265, 1509, 1831, 1992, 1754, 949, 2553, 1693, 1098, 1863, 1408, 1619, 509, 644, 856, 744, 2429, 2120, 422, 935, 982, 2410, 798, 1776, 1095, 1435, 918, 1522, 1154, 699, 2192, 1004, 1533, 742, 653, 1135, 1387, 1074, 1415, 1920, 1338, 930, 761, 1134, 2105, 420, 1144, 1231, 1299, 1516, 840, 1979, 1409, 976, 1101, 1154, 791, 1489, 894, 1488, 1369, 540, 1291, 791, 1014, 949, 879, 1288, 1098, 1202, 1765, 1072, 1457, 839, 1468, 1022, 660, 852, 170, 1733, 1239, 354, 414, 801, 1182, 2238, 1484, 2449, 1584, 866, 873, 1213, 1297, 1605, 1269, 1567, 1134, 1443, 1625, 1059, 1248, 423, 1018, 728, 551, 1313, 1333, 1834, 1133, 483, 1906, 1636, 1309, 1061, 735, 1537, 1577, 1526, 714, 1327, 1013, 1013, 901, 1600, 341, 2646, 986, 1334, 1288, 1265, 800, 1653, 1233, 1474, 767, 769, 641, 1433, 815, 1235, 870, 1249, 858, 1630, 948, 1165, 929, 767, 1507, 1633, 653, 911, 1586, 1360, 1591, 957, 795, 1589, 544, 1350, 1552, 634, 958, 685, 1551, 1012, 1982, 1809, 1273, 268, 1119, 1265, 1700, 1425, 1201, 1045, 607, 1430, 1485, 861, 1023, 1312, 1506, 691, 1343, 827, 1582, 1129, 1153, 364, 1167, 1040, 1107, 814, 881, 1798, 1027, 2157, 1657, 871, 781, 582, 2179, 1695, 968, 1248, 1161, 1347, 1909, 759, 1620, 1112, 462, 1955, 1531, 1824, 1191, 1089, 1472, 431, 991, 1012, 1221, 739, 1887, 892, 1183, 616, 914, 1307, 1785, 754, 168, 1315, 591, 1693, 1839, 1010, 799, 783, 1053, 547, 789, 1004, 1599, 1602, 354, 1317, 1634, 730, 1660, 1416, 1431, 1030, 1502, 869, 1100, 528, 907, 1148, 670, 858, 1341, 1004, 650, 863, 1063, 523, 880, 1054, 1017, 1369, 1732, 858, 2162, 1590, 590, 876, 1102, 1411, 873, 1280, 686, 1190, 984, 1259, 942, 698, 1473, 1185, 684, 844, 618, 1515, 796, 2108, 453, 898, 1354, 1483, 1592, 677, 2212, 2275, 1946, 1006, 641, 1789, 1463, 2091, 611, 758, 1201, 1166, 1509, 1151, 2206, 1504, 1072, 1363, 570, 1966, 446, 1469, 1577, 1834, 593, 1351, 2164, 545, 1218, 435, 1113, 1533, 1541, 353, 816, 1489, 1294, 1012, 1035, 501, 975, 1209, 363, 1118, 715, 889, 1337, 403, 1112, 530, 1297, 468, 1742, 1053, 546, 1166, 1223, 576, 1593, 933, 659, 1367, 1861, 586, 828, 439, 1598, 770, 1040, 1081, 1590, 955, 1173, 1875, 1261, 1413, 707, 980, 1117, 1493, 1422, 1283, 934, 1447, 1842, 899, 1770, 511, 1012, 1357, 812, 1338, 1044, 1497, 1756, 1412, 1929, 1057, 1114, 971, 1140, 1847, 227, 1080, 992, 1614, 434, 1390, 1601, 588, 707, 897, 1171, 947, 1994, 623, 823, 1250, 893, 1351, 1481, 523, 1545, 781, 962, 977, 1814, 1792, 1462, 1161, 1334, 544, 741, 532, 249, 1204, 1461, 1619, 849, 875, 1410, 552, 329, 1181, 1388, 1504, 398, 2106, 1466, 548, 1762, 1778, 228, 1726, 1330, 1225, 2570, 1108, 1091, 1298, 1613, 543, 358, 1662, 1264, 306, 1126, 676, 1068, 976, 1541, 596, 2332, 1535, 462, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2301, 710, 2415, 1189, 954, 1243, 1277, 1014, 1250, 1249, 2240, 1650, 1162, 901, 1589, 1026, 657, 1235, 1206, 637, 402, 1668, 1520, 1813, 1909, 2037, 1997, 2173, 2727, 1945, 1405, 1962, 1572, 2024, 1302, 1188, 865, 1116, 2556, 2388, 502, 986, 1072, 2661, 1489, 2525, 1446, 1468, 1482, 1592, 1312, 702, 2603, 1075, 1620, 832, 1060, 1230, 1766, 1631, 1548, 2318, 1463, 1359, 1188, 1237, 2197, 1753, 1779, 1247, 1389, 1579, 2396, 2050, 1729, 979, 1366, 1486, 1327, 1618, 1868, 1802, 1510, 879, 2057, 854, 1286, 1100, 936, 1740, 1166, 1232, 2110, 1357, 1749, 1078, 2031, 1106, 905, 1141, 1075, 2331, 1443, 1368, 535, 902, 1416, 2379, 1500, 2455, 1718, 1204, 1275, 1402, 1505, 1830, 1382, 1873, 1189, 1604, 1999, 1500, 1588, 543, 1025, 743, 783, 1349, 1592, 2067, 1152, 915, 2153, 1867, 1563, 1210, 1162, 1573, 1762, 1825, 883, 1426, 1024, 1406, 990, 1687, 494, 3164, 988, 1565, 1753, 1634, 1142, 2018, 1573, 1879, 816, 1389, 1024, 1686, 870, 1261, 1045, 1465, 990, 1758, 1353, 1407, 981, 904, 1809, 1963, 1288, 1029, 1734, 1384, 1928, 1306, 1015, 1834, 658, 1459, 2455, 850, 1039, 926, 1901, 1126, 2060, 2098, 1848, 503, 1150, 1391, 1792, 1625, 1346, 1617, 673, 1488, 1527, 949, 1064, 1333, 2187, 904, 1570, 870, 1874, 1170, 1190, 759, 1176, 1496, 1328, 887, 1222, 1830, 1066, 2181, 1667, 1217, 968, 601, 2330, 2091, 1252, 1301, 1202, 2346, 2311, 820, 1747, 1954, 1221, 2010, 1648, 2215, 1496, 1983, 1838, 520, 1301, 1289, 1504, 1448, 1902, 1707, 1710, 1135, 1319, 2431, 1897, 834, 231, 1830, 1609, 1905, 1912, 1141, 1016, 1203, 1355, 592, 1162, 1192, 1627, 1776, 783, 2393, 1886, 839, 1721, 1853, 1532, 2025, 1562, 1177, 1181, 609, 1179, 1802, 706, 1970, 1401, 1326, 736, 1468, 1149, 619, 987, 1450, 1095, 1630, 2128, 1492, 2361, 1677, 920, 1042, 2258, 1864, 879, 1432, 726, 1254, 1080, 1313, 1129, 2015, 1598, 1472, 803, 987, 703, 1719, 1001, 2315, 742, 986, 1844, 1966, 1737, 732, 2264, 2429, 2172, 1617, 981, 1805, 1806, 2094, 1807, 818, 1932, 1202, 1566, 1270, 2265, 1856, 1164, 1558, 1219, 2087, 698, 1660, 1805, 2614, 760, 1460, 2246, 573, 1312, 663, 1119, 1647, 1631, 569, 1509, 2004, 1804, 1594, 1301, 611, 1373, 1603, 676, 1159, 817, 1233, 1368, 1226, 1156, 883, 2517, 1112, 1878, 1083, 719, 1314, 1603, 624, 1808, 1404, 1568, 1960, 1894, 1319, 1078, 477, 1695, 1191, 1050, 1123, 1689, 1622, 1320, 2211, 1399, 2090, 1020, 1543, 1275, 1539, 1667, 1758, 1227, 1773, 2808, 918, 1889, 657, 1160, 2111, 1552, 1416, 1627, 1548, 1939, 1450, 2221, 1756, 1162, 1455, 1751, 2053, 729, 1253, 1563, 2066, 631, 1460, 1727, 597, 852, 1186, 1200, 1197, 2062, 892, 1641, 1414, 1173, 1451, 1763, 554, 1956, 1057, 1023, 1484, 2338, 2310, 1507, 1845, 1392, 651, 861, 725, 412, 1314, 1549, 1627, 892, 1195, 1881, 573, 1186, 1185, 1751, 1515, 960, 2191, 1767, 595, 1828, 2241, 704, 2126, 1333, 1681, 2662, 1574, 1230, 1647, 1905, 652, 538, 1692, 2153, 805, 1267, 899, 1352, 1074, 1771, 644, 2390, 2169, 683, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2942, 1159, 2553, 1296, 2133, 2055, 1605, 1084, 1383, 1580, 2341, 1672, 1173, 1163, 2037, 1188, 1162, 1491, 1213, 707, 609, 2092, 1596, 2049, 2186, 2211, 2135, 2203, 2877, 2163, 1916, 2000, 1608, 2318, 1702, 2257, 964, 1160, 2577, 2447, 841, 1481, 1323, 2740, 1652, 2593, 2063, 2407, 1901, 1934, 1749, 969, 2731, 1607, 2095, 1525, 1329, 1729, 1779, 2910, 1649, 2337, 2047, 1474, 1198, 1353, 2213, 1787, 2013, 1280, 1731, 1902, 2513, 2297, 2298, 1097, 1459, 1613, 1739, 1649, 1934, 1841, 1635, 1552, 2332, 1001, 1582, 1145, 1027, 1783, 2018, 1625, 2360, 1739, 2182, 1221, 2429, 1133, 1068, 1188, 1419, 2724, 1789, 1798, 1118, 1062, 1470, 2623, 2063, 2647, 1820, 1266, 1700, 1865, 1520, 2543, 1634, 1991, 1998, 2108, 2312, 2131, 1845, 831, 1492, 1496, 877, 1399, 1766, 2111, 1311, 1894, 2291, 1905, 1647, 1488, 1732, 1701, 2141, 2255, 909, 1639, 1200, 1514, 1229, 1737, 1033, 3537, 1642, 2049, 2230, 1668, 1170, 2268, 1914, 1962, 881, 1670, 1229, 1898, 948, 1806, 1485, 1547, 1260, 2043, 1380, 1413, 1261, 1239, 2009, 1975, 1299, 1101, 1761, 1667, 2323, 1436, 1423, 2212, 731, 1666, 2699, 1489, 2015, 1462, 2106, 1575, 2660, 2163, 1872, 1459, 2214, 1867, 1925, 1816, 1692, 2275, 1848, 2222, 1576, 1166, 1702, 2116, 2259, 1021, 2689, 1559, 1908, 1378, 1408, 1780, 1264, 1974, 1556, 1389, 1251, 2110, 1334, 2291, 1844, 1260, 1062, 1077, 2650, 2161, 1759, 2034, 1256, 2935, 2563, 1022, 2000, 2075, 2106, 2019, 1919, 2277, 1618, 2429, 1988, 860, 1336, 1908, 1565, 1649, 1944, 1718, 1879, 2080, 1528, 2468, 2582, 1599, 1712, 2231, 1777, 2085, 2313, 1696, 2519, 1290, 1397, 624, 1253, 1379, 1892, 2106, 1894, 2553, 2420, 1313, 1911, 2235, 2232, 2091, 1954, 1482, 1294, 642, 1350, 1838, 1650, 2286, 2432, 1335, 1053, 2385, 1415, 922, 1825, 1564, 2261, 2176, 2579, 2158, 2438, 1932, 1160, 1056, 2534, 2035, 1625, 1790, 1142, 1318, 1496, 1836, 1358, 2155, 1776, 1548, 822, 1017, 726, 1801, 1414, 2544, 877, 1023, 2146, 2130, 2254, 1063, 2293, 2515, 2451, 2434, 1133, 2711, 1832, 2253, 1985, 1059, 2421, 1533, 1861, 1329, 2279, 2001, 1313, 1602, 1237, 2351, 1551, 1832, 2084, 2746, 1379, 1468, 2666, 587, 1543, 701, 1219, 1793, 1819, 622, 1651, 2208, 2673, 1668, 1843, 680, 1410, 1866, 820, 2547, 947, 1266, 1437, 1565, 1485, 1123, 2639, 1317, 2206, 1107, 906, 1728, 2292, 1510, 1936, 1900, 1920, 2260, 2026, 1536, 1592, 1201, 2506, 1300, 1694, 1127, 1837, 1959, 1343, 2240, 1454, 2219, 1890, 1920, 2293, 1875, 1715, 2046, 1569, 1822, 2911, 1567, 1906, 2206, 1680, 2385, 1625, 1775, 2043, 1807, 2060, 1671, 2453, 2189, 1622, 1625, 2176, 2095, 1480, 1668, 1568, 2124, 1934, 1466, 2177, 849, 1361, 1228, 1366, 1828, 2169, 1653, 1914, 1502, 1334, 1898, 1947, 1067, 2023, 1090, 1812, 2339, 2756, 2403, 1923, 1957, 2025, 975, 1727, 769, 496, 1534, 1555, 2138, 1343, 1438, 2030, 592, 1987, 1636, 2177, 1627, 1199, 2394, 2187, 979, 1840, 2266, 1021, 2171, 1763, 1862, 3094, 1587, 1318, 2341, 2170, 690, 1041, 2015, 2236, 1627, 1828, 1036, 1356, 1538, 1967, 881, 2433, 2269, 1050, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3931, 2290, 2658, 1520, 2194, 2191, 2100, 1143, 1633, 1821, 2428, 2069, 1492, 1275, 2073, 1693, 1355, 1747, 1352, 1539, 768, 2191, 1716, 2093, 2283, 2673, 2173, 2478, 3077, 2429, 2595, 2105, 1779, 3069, 1980, 2449, 974, 1175, 2664, 2451, 1012, 1921, 1601, 3076, 1947, 2761, 2203, 2521, 1929, 2324, 1842, 1177, 2850, 2001, 2567, 1878, 1835, 2736, 1869, 3155, 2185, 2786, 2106, 1838, 2064, 1435, 2735, 1984, 2233, 1711, 1752, 2114, 2551, 2392, 2374, 1471, 1531, 1631, 2197, 2008, 1968, 1850, 1733, 1577, 2696, 2161, 2241, 1478, 2263, 2199, 2514, 2211, 2564, 2556, 2373, 1368, 2496, 1228, 1111, 1732, 1794, 3093, 2260, 1831, 1751, 1472, 1987, 2786, 2604, 3032, 2132, 1530, 1748, 2145, 1545, 2642, 1650, 1996, 2091, 2120, 2590, 2780, 1996, 1007, 1982, 1590, 2097, 1907, 2114, 2252, 1561, 2281, 2317, 2109, 1802, 1792, 1759, 1916, 2563, 2345, 955, 2120, 1465, 1518, 1483, 1828, 1136, 3678, 1680, 2357, 2389, 1678, 1576, 2645, 2570, 2135, 1703, 2042, 1689, 1956, 1837, 2131, 1877, 2320, 2042, 2164, 2044, 1885, 2088, 1431, 2162, 2075, 1562, 2228, 2327, 1739, 2602, 1537, 1474, 2336, 1190, 1694, 2755, 1520, 2602, 1924, 2702, 2315, 2777, 2218, 2223, 2419, 2301, 2178, 2428, 2361, 1779, 2494, 1899, 2343, 1774, 1240, 2120, 2226, 2383, 1056, 2696, 1651, 2280, 2413, 1417, 2104, 1608, 2195, 2253, 1510, 2192, 2216, 1975, 2301, 2734, 1295, 1203, 1132, 2759, 2352, 2290, 2036, 1715, 2965, 2681, 1479, 2007, 2161, 2447, 2225, 2524, 2426, 1737, 2488, 2364, 1391, 1393, 1949, 2542, 2047, 1998, 2189, 2007, 2722, 1707, 2636, 2838, 1894, 2107, 2849, 1847, 2423, 2350, 1956, 2798, 1301, 1729, 1288, 1407, 1698, 1989, 2267, 2213, 2563, 2727, 1369, 2541, 2289, 2881, 2185, 2047, 1760, 1773, 910, 1613, 1876, 2262, 2426, 2437, 1563, 1491, 2604, 1783, 1371, 1897, 1907, 2313, 2834, 2809, 2163, 2641, 2603, 2197, 1195, 2607, 2377, 1845, 2406, 2277, 1571, 1700, 2161, 2186, 2246, 1936, 1946, 1393, 1284, 1724, 2293, 2327, 2724, 1010, 1740, 2430, 2172, 2892, 1143, 2399, 2890, 2471, 2535, 2433, 2773, 2032, 2697, 2325, 1464, 2426, 1808, 1925, 1700, 2419, 2319, 1482, 1844, 1889, 2975, 1886, 1935, 2350, 2785, 1971, 1566, 2754, 2455, 1708, 749, 2073, 1936, 2125, 1075, 1688, 2421, 2809, 1943, 2473, 1135, 1504, 2083, 912, 2617, 1581, 1822, 1457, 2505, 1841, 1179, 2671, 1420, 2315, 1265, 1612, 2084, 2743, 1901, 2535, 2212, 2036, 2290, 2161, 1988, 1706, 1540, 2520, 1336, 2618, 1313, 1911, 2905, 1478, 2892, 2537, 2649, 2342, 2205, 2530, 2547, 1862, 2288, 1655, 2110, 2934, 2030, 1949, 2225, 1894, 2517, 1955, 1821, 2444, 2089, 2214, 2035, 2535, 2258, 1870, 1846, 2937, 2734, 1867, 2414, 1749, 2232, 1990, 1521, 2594, 1066, 1590, 1380, 2708, 2045, 2179, 1953, 2234, 2528, 1472, 2466, 1963, 1248, 2266, 1359, 2013, 3030, 2829, 2877, 2186, 1999, 2567, 1058, 1988, 898, 590, 2169, 1941, 2797, 1623, 2306, 2203, 615, 2149, 2446, 2293, 1652, 1393, 2465, 2499, 1900, 1964, 2709, 1262, 2334, 2227, 2384, 3124, 1800, 1949, 2432, 2269, 698, 1564, 2101, 2327, 1788, 2395, 1086, 1363, 2667, 1976, 1683, 2525, 2501, 1310, 2074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4023, 2400, 2671, 1817, 2718, 2270, 2257, 1199, 1954, 2183, 2443, 2486, 1866, 1811, 2232, 1733, 1528, 1957, 1590, 1563, 1228, 2238, 2081, 2302, 3077, 2775, 3137, 2597, 3106, 2568, 2655, 2413, 1784, 3420, 2138, 2610, 1638, 1293, 2698, 2484, 1395, 1933, 1735, 3350, 2671, 2925, 2277, 2778, 2287, 2565, 2117, 1245, 3358, 2039, 2869, 2870, 2152, 2845, 1984, 3535, 2347, 3044, 2198, 2592, 2356, 1650, 2799, 2511, 2403, 1972, 2109, 2315, 3372, 2565, 2529, 2280, 1764, 1872, 2476, 2273, 2517, 1880, 1759, 1896, 2870, 2230, 2301, 1966, 2500, 2972, 2675, 2404, 2780, 3049, 2470, 1842, 2856, 1296, 1133, 1768, 2670, 3249, 2450, 2156, 2380, 2376, 2514, 2909, 2885, 3302, 2194, 2541, 2152, 2341, 1682, 2886, 2397, 2275, 2782, 2632, 2755, 2905, 2608, 2336, 2155, 1721, 2639, 2270, 2721, 2290, 1592, 2974, 2556, 2470, 2029, 1863, 1981, 1944, 2570, 3181, 1279, 2488, 1748, 1623, 1592, 1941, 1171, 3755, 2017, 2386, 2516, 1790, 1667, 3025, 2666, 2529, 2301, 2057, 2301, 2145, 1847, 2710, 2106, 2629, 2376, 2847, 2478, 2197, 2220, 2518, 2434, 2629, 2253, 2663, 2406, 2038, 2916, 1691, 2061, 2503, 1729, 1775, 3178, 1743, 2852, 2129, 3211, 2379, 3012, 2357, 2316, 2511, 2329, 2348, 2460, 2394, 2042, 2797, 2029, 2483, 2140, 1606, 2558, 2393, 3094, 1217, 2781, 2076, 2298, 2959, 1690, 2332, 1767, 2762, 2684, 1958, 2654, 2429, 2486, 2384, 2787, 2020, 1847, 1835, 2831, 2505, 2411, 2563, 1938, 3468, 2749, 1623, 2531, 2197, 2671, 2475, 2752, 2709, 2544, 2505, 2501, 1680, 1682, 2008, 2837, 2150, 2407, 2425, 2408, 2842, 1891, 2654, 3301, 1899, 2804, 2867, 2515, 2591, 2453, 2042, 2853, 1544, 1781, 1509, 2171, 2454, 2196, 2374, 2576, 2841, 2770, 1949, 2602, 2609, 2896, 2257, 2352, 2476, 1799, 1456, 2241, 1909, 3083, 2654, 2488, 2548, 1654, 2719, 2196, 1772, 2675, 2614, 2771, 3188, 3058, 2365, 2738, 2651, 2298, 1964, 2653, 2427, 1934, 2464, 2526, 1852, 1781, 2478, 2219, 2671, 2081, 2025, 2099, 1764, 2273, 2562, 2616, 2773, 1733, 1839, 2490, 2179, 3140, 1442, 2534, 3115, 2545, 2626, 2459, 2931, 2095, 2846, 2486, 1756, 2742, 1889, 2205, 1711, 2437, 2481, 2538, 2737, 1960, 3143, 2152, 2500, 2595, 3014, 2152, 2111, 2984, 2832, 1744, 789, 2289, 2257, 2128, 1289, 1880, 2500, 2813, 2948, 2947, 1530, 2303, 2217, 2331, 2742, 2195, 2084, 1536, 3174, 2215, 2235, 3176, 1439, 2409, 1820, 1960, 2203, 2942, 2338, 3099, 2436, 2104, 2426, 2262, 1994, 2005, 2330, 2548, 1724, 2640, 1505, 2333, 2981, 1819, 2961, 2620, 2936, 2809, 2447, 2674, 2710, 2002, 2558, 2127, 2184, 2986, 2240, 2252, 2583, 1902, 2756, 2002, 2751, 2457, 2281, 2458, 2168, 2707, 2551, 2291, 2024, 2968, 2860, 2102, 2884, 2193, 2374, 2417, 2113, 2777, 1490, 2225, 1749, 3487, 2249, 2994, 1955, 2447, 2878, 2378, 2679, 2015, 1511, 2322, 1975, 2299, 3091, 2837, 2906, 2593, 2087, 2663, 1120, 2027, 1384, 681, 2467, 2054, 2939, 2150, 2384, 2354, 687, 2358, 2499, 2501, 1883, 2911, 2487, 2959, 2830, 2391, 2782, 2088, 2480, 2264, 2612, 3357, 2034, 2073, 2703, 2715, 1590, 1655, 2193, 2524, 2067, 2400, 1128, 2393, 2755, 2394, 3191, 2719, 2827, 1603, 2146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2462, 2871, 1933, 3008, 2752, 2485, 2725, 2482, 2375, 2835, 2620, 1937, 3008, 2319, 1807, 1904, 2383, 1909, 1833, 1278, 2294, 2298, 2323, 3196, 2953, 3212, 2612, 3400, 2657, 2901, 2425, 2978, 3691, 2614, 2793, 2145, 2454, 2756, 2978, 1718, 2094, 1964, 3449, 2787, 3341, 2974, 2878, 2320, 2606, 2973, 1512, 3596, 2147, 2888, 2987, 2284, 2887, 2251, 3677, 2858, 3142, 2651, 2890, 2369, 2424, 2960, 2629, 2624, 2514, 2190, 2357, 3462, 2626, 2726, 2387, 1857, 2046, 2552, 2449, 2957, 2522, 2128, 2432, 2985, 2446, 2997, 2548, 2770, 3081, 2987, 2770, 2851, 3072, 2487, 2711, 3104, 1960, 1403, 1776, 2810, 3287, 2577, 2558, 2759, 2731, 2962, 3104, 3005, 3345, 2580, 2616, 2393, 2353, 1755, 2965, 2455, 2879, 3406, 3070, 2802, 3296, 2659, 3028, 2477, 1981, 3145, 2725, 2848, 2568, 1975, 3030, 2560, 2755, 3251, 2773, 2015, 2254, 2862, 3236, 1975, 2609, 2113, 1825, 2465, 1972, 1270, 3812, 2700, 2395, 2881, 2216, 3238, 3278, 2926, 3488, 2549, 2075, 2517, 2547, 2163, 2874, 2202, 2691, 2488, 3063, 2720, 2521, 2338, 2876, 2437, 3096, 2604, 2719, 2654, 2402, 3042, 2054, 2487, 2569, 2124, 2061, 3251, 2201, 2873, 2762, 3225, 2683, 3174, 2635, 2458, 2652, 2461, 2376, 2741, 2468, 2170, 2800, 2550, 2786, 2571, 1775, 2661, 2437, 3134, 1363, 2839, 2099, 2985, 3060, 1785, 2513, 1894, 2795, 3164, 2056, 3073, 3255, 2643, 2495, 2830, 3372, 2078, 2002, 3292, 2986, 2578, 2860, 2024, 3567, 2988, 1803, 2832, 2371, 2747, 2940, 3183, 3064, 2911, 2768, 2714, 2332, 1849, 2982, 2954, 2545, 2416, 2842, 2631, 2957, 2260, 2796, 3388, 1919, 2937, 3060, 2844, 2912, 2473, 2404, 3227, 1910, 1944, 3139, 2514, 3089, 2510, 2816, 2654, 2930, 2946, 2579, 3216, 2790, 3634, 2275, 2710, 2724, 2158, 1503, 2271, 2091, 3343, 2767, 2516, 2607, 1721, 2916, 2464, 2518, 2816, 3068, 3142, 3317, 3413, 2971, 3146, 2660, 2334, 2598, 2702, 2865, 2347, 2646, 2775, 2207, 1896, 2586, 2385, 3027, 2945, 2090, 2133, 1896, 2282, 3135, 2853, 2848, 2153, 1897, 2497, 2782, 3297, 1821, 2605, 3365, 2593, 2675, 2648, 2934, 2305, 3054, 2822, 2199, 3166, 2308, 3205, 2183, 3337, 2643, 3075, 2977, 2235, 3389, 2650, 2799, 3047, 3127, 2572, 2359, 3050, 2907, 2177, 873, 2442, 2350, 2847, 1323, 2566, 2768, 2836, 3144, 2994, 1580, 2413, 2362, 2393, 2904, 2312, 2156, 2065, 3220, 2532, 2498, 3542, 2225, 2413, 2835, 2200, 2299, 3035, 2547, 3136, 2547, 2863, 2536, 2525, 2116, 2009, 2471, 2614, 1871, 3038, 1809, 2599, 3194, 1914, 3033, 3149, 3000, 3418, 2510, 2800, 2939, 2374, 2751, 2851, 2214, 3019, 2530, 2421, 2745, 2417, 2903, 2093, 2808, 2484, 2409, 2704, 2522, 2741, 2561, 2691, 2526, 3093, 2882, 2211, 2935, 2291, 2825, 2722, 3014, 2788, 1903, 2554, 2350, 3506, 2325, 3065, 2474, 2619, 3165, 3075, 3006, 2472, 1516, 2657, 2327, 2305, 3344, 2980, 2980, 3394, 2255, 3324, 1425, 2371, 1873, 835, 2691, 2076, 2985, 2846, 2743, 2548, 848, 2484, 2541, 3147, 2818, 3018, 2769, 3068, 3123, 2766, 3315, 2612, 2812, 2549, 2977, 3361, 2254, 3363, 3096, 2970, 1897, 2129, 2665, 2952, 3210, 2817, 1522, 2587, 2854, 2756, 3219, 3100, 3642, 1610, 2808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3424, 2993, 2883, 3360, 2878, 2640, 2914, 3495, 3256, 3079, 3329, 2034, 3292, 2524, 2350, 2074, 2500, 2622, 2358, 1748, 2767, 2301, 2426, 3377, 3081, 3470, 3108, 3762, 2977, 3166, 3396, 3107, 3830, 2677, 2899, 2479, 3026, 3345, 3676, 1814, 2300, 2011, 3490, 2791, 3574, 2990, 2976, 2582, 2633, 3361, 2063, 3655, 3282, 3104, 3374, 2366, 3144, 2278, 3780, 3034, 3629, 2978, 3015, 2733, 2675, 3140, 2895, 3462, 3068, 2320, 3261, 3900, 2787, 2989, 2884, 2839, 2390, 2691, 2898, 3259, 2539, 2449, 2442, 3350, 2650, 3311, 3163, 3308, 3295, 3255, 3191, 3120, 3093, 2687, 2785, 3351, 3113, 1915, 1984, 3077, 3364, 2624, 3326, 2804, 3093, 3555, 3254, 3145, 3453, 2837, 2687, 2985, 2560, 1899, 3127, 2710, 3054, 3408, 3403, 3410, 3513, 3303, 3260, 3074, 2299, 3234, 2824, 2884, 2621, 2369, 3470, 2861, 2962, 3456, 3093, 2305, 2342, 3303, 3538, 2480, 3106, 2868, 2543, 2566, 2500, 1943, 3937, 3062, 2414, 2968, 3423, 3503, 3531, 2996, 3828, 2643, 2152, 3141, 2602, 2816, 3233, 2337, 2826, 2773, 3177, 2905, 2544, 2645, 3055, 3018, 3161, 2734, 2906, 2709, 2575, 3084, 2771, 2644, 2634, 2765, 3028, 3275, 2776, 3140, 2891, 3462, 2887, 3512, 3391, 2682, 3166, 2491, 2425, 2896, 2583, 2362, 2840, 2590, 3510, 2914, 1785, 2782, 2845, 3677, 1619, 2945, 2219, 2990, 3169, 1880, 3154, 2244, 2971, 3514, 2297, 3204, 3259, 2950, 2534, 3043, 3524, 2931, 2428, 3328, 3008, 2661, 2936, 2346, 3783, 3162, 2923, 2975, 2451, 2767, 3043, 3235, 3193, 3031, 3642, 2816, 2656, 2011, 3444, 3085, 2555, 2437, 2896, 2681, 3333, 2344, 3011, 3581, 2198, 3202, 3818, 2947, 2934, 3525, 2453, 3265, 1942, 2573, 3368, 2795, 3138, 2542, 3366, 2938, 3039, 2987, 2973, 3300, 3132, 3727, 2540, 2775, 3013, 2370, 2597, 2374, 2453, 3830, 2847, 2816, 2902, 2232, 3695, 2634, 2629, 2992, 3155, 3255, 3736, 3678, 3122, 3567, 3209, 2631, 3012, 2815, 3045, 2492, 2976, 2822, 2405, 2080, 2906, 3659, 3419, 2951, 3049, 2975, 2659, 2638, 3404, 3498, 3149, 2212, 2078, 3256, 3670, 3511, 2447, 2725, 3476, 2772, 3198, 2815, 3566, 2449, 3574, 2847, 2509, 3707, 2561, 3595, 2845, 3346, 2955, 3120, 3228, 2425, 3536, 2768, 2966, 3054, 3450, 2589, 3015, 3697, 3012, 2519, 1323, 2723, 3196, 2861, 1383, 2810, 2848, 3236, 3461, 3179, 1820, 2522, 2544, 2438, 3058, 3224, 2604, 2450, 3248, 3105, 3074, 3892, 2976, 3301, 3063, 2268, 2666, 3237, 3040, 3272, 2952, 3213, 2673, 2550, 2572, 2739, 2764, 2621, 2783, 3164, 2278, 2843, 3308, 2386, 3173, 3162, 3020, 3471, 3217, 3145, 3042, 3061, 3155, 3182, 2451, 3294, 3215, 2666, 2815, 2587, 2997, 3047, 3193, 2516, 2435, 2769, 2900, 2804, 2644, 2723, 2754, 3102, 3459, 2919, 3075, 2445, 3008, 3282, 3275, 3381, 2018, 2990, 2759, 3571, 2361, 3393, 2984, 2707, 3263, 3314, 3070, 2759, 2333, 2681, 2745, 2309, 3678, 3084, 2983, 3635, 3577, 3525, 1661, 2642, 1984, 1486, 3543, 2886, 3146, 2935, 3030, 2828, 2107, 2653, 3186, 3539, 3390, 3336, 2943, 3185, 3460, 2860, 3506, 2655, 2814, 3004, 3100, 3419, 3222, 3392, 3169, 2979, 2292, 2240, 2861, 3096, 3702, 3143, 2139, 3003, 2921, 3400, 3951, 3315, 3656, 2097, 3156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 3285, 3450, 3531, 3191, 3781, 3141, 3554, 3758, 3381, 3413, 2858, 3782, 2611, 2357, 3281, 2554, 2733, 2404, 1938, 3549, 2365, 3431, 3527, 3605, 3636, 3270, 3764, 3143, 3532, 3445, 3151, 4034, 2943, 3523, 2481, 3125, 3583, 3812, 2645, 2345, 2481, 3516, 3406, 3872, 3779, 3269, 2908, 2802, 3391, 3162, 3926, 3423, 3293, 3434, 2928, 3251, 2503, 3786, 3057, 3794, 3041, 3325, 2967, 3075, 3372, 3545, 3507, 3166, 2572, 3572, 3921, 2812, 3311, 3108, 3418, 2732, 3268, 3213, 3339, 2599, 2885, 2685, 3788, 2758, 3444, 3268, 3394, 3347, 3626, 3593, 3463, 3320, 2740, 3546, 3523, 3751, 2147, 2482, 3521, 3753, 2995, 3392, 3459, 3141, 3797, 3944, 3305, 3852, 2933, 2726, 3029, 2661, 2662, 3370, 2977, 3454, 3664, 3411, 3423, 3674, 3641, 3309, 3262, 2449, 3486, 2831, 2927, 2857, 2487, 3596, 2873, 3091, 3474, 3480, 2460, 2805, 3454, 3870, 2804, 3242, 2919, 2821, 2578, 3237, 3245, 3939, 3088, 2595, 2987, 3442, 3793, 3554, 3085, 3841, 2718, 2597, 3294, 3556, 3158, 3648, 2744, 3275, 2995, 3218, 3040, 2907, 3202, 3702, 3271, 3315, 2903, 3227, 3463, 3116, 3321, 2964, 3546, 3135, 3641, 3199, 3399, 3085, 3291, 3469, 3598, 3042, 3770, 3539, 3192, 3228, 2985, 2964, 3285, 2841, 2547, 2929, 2655, 3627, 3362, 1927, 2960, 3020, 3895, 2016, 3422, 2917, 3203, 3171, 2221, 3192, 2528, 3024, 3697, 2687, 3309, 3639, 3259, 2802, 3660, 3551, 3585, 2847, 3421, 3055, 2902, 3125, 3333, 3811, 3625, 3352, 3069, 2713, 3105, 3303, 3427, 3338, 3180, 3650, 2968, 3033, 2256, 3701, 3175, 3504, 3098, 3260, 3454, 3365, 3427, 3468, 3659, 2930, 3518, 3842, 2985, 3336, 3534, 2874, 3440, 2535, 2831, 3587, 3768, 3630, 3660, 3470, 3406, 3041, 3398, 3324, 3553, 3599, 3791, 3577, 2957, 3351, 2525, 2913, 2647, 2754, 3913, 3159, 3704, 3298, 2658, 3699, 3026, 2697, 3420, 3187, 3316, 3836, 3904, 3322, 3693, 3382, 2910, 3578, 3194, 3656, 2529, 3234, 2916, 2714, 2087, 2918, 3923, 3482, 3261, 3051, 3061, 2785, 2835, 3775, 3668, 3361, 2489, 2380, 3832, 3749, 3644, 2830, 2814, 3562, 3497, 3250, 2960, 3645, 2493, 3746, 3409, 2655, 3818, 2760, 3652, 3101, 3495, 3500, 3252, 3774, 3152, 3587, 3002, 3306, 3448, 3569, 3329, 3161, 3784, 3045, 2633, 1618, 3192, 3533, 3075, 3654, 3278, 3099, 3519, 3501, 3307, 2051, 3305, 2845, 2788, 3281, 3284, 3359, 2753, 3567, 3150, 3373, 3948, 3415, 3323, 3170, 2942, 3229, 3459, 3093, 3308, 3642, 3811, 2925, 3119, 3680, 2743, 3145, 2995, 3301, 3265, 2302, 2851, 3686, 2528, 3277, 3252, 3258, 3555, 3382, 3212, 3166, 3643, 3404, 3256, 2628, 3621, 3965, 2755, 2853, 3632, 3068, 3430, 3468, 3301, 2578, 3515, 3478, 3294, 3352, 2983, 2998, 3192, 3717, 3461, 3413, 2840, 3111, 3372, 3404, 3447, 2406, 3121, 3467, 3661, 2903, 3594, 3279, 3283, 3846, 3504, 3431, 2842, 3370, 2717, 3387, 2556, 3768, 3200, 3567, 3696, 3604, 3661, 2125, 2651, 2483, 1491, 3694, 2982, 3231, 2969, 3375, 2861, 2157, 2826, 3289, 3575, 3639, 3424, 2975, 3296, 3475, 2923, 3762, 3139, 3118, 3013, 3160, 3425, 3471, 3455, 3184, 3467, 2881, 2952, 3538, 3619, 3721, 3191, 2466, 3058, 3061, 3621, 3978, 3322, 3745, 2581, 3368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3926, 3562, 3906, 3786, 3309, 3815, 3435, 3571, 3856, 3761, 3727, 3668, 3962, 3250, 2950, 3738, 3041, 2836, 2682, 3312, 3775, 2732, 3678, 3686, 3830, 3781, 3313, 3867, 3783, 3566, 3608, 3669, 4069, 3335, 3854, 3106, 3187, 3743, 4046, 2712, 2587, 2689, 3520, 3472, 4028, 3783, 3457, 3074, 3056, 3409, 3975, 3953, 3601, 3364, 3472, 3771, 3726, 3250, 3812, 3081, 3821, 3421, 3402, 3068, 3423, 3575, 3576, 3621, 3309, 3063, 3757, 3982, 3141, 3617, 3177, 3518, 3735, 3309, 3261, 3731, 3773, 3086, 3493, 3966, 3032, 3550, 3691, 3406, 3374, 3775, 3894, 3887, 3322, 3065, 3552, 3634, 3798, 2413, 3779, 3716, 3784, 3272, 3840, 3573, 3470, 3952, 3946, 3325, 3891, 3070, 3551, 3400, 3517, 3447, 3763, 3599, 3868, 3931, 3474, 3568, 3710, 3647, 3405, 3884, 3217, 3978, 3699, 3158, 3583, 2860, 3617, 2883, 3452, 3554, 3854, 3896, 3175, 3527, 3885, 3339, 3678, 3548, 2833, 2766, 3653, 3277, 3972, 3353, 3027, 3516, 3538, 3994, 3633, 3737, 3893, 3488, 3079, 3764, 3859, 3274, 3670, 3856, 3453, 3179, 3554, 3278, 3099, 3487, 3827, 3461, 3728, 3881, 3312, 3533, 3242, 3611, 3338, 3697, 3890, 3803, 3325, 3755, 3461, 3479, 3684, 3786, 3225, 3832, 3576, 3772, 3816, 3357, 3482, 3592, 3279, 3208, 3150, 3427, 3712, 3690, 3174, 3004, 3703, 3909, 2541, 3521, 3627, 3820, 3224, 3421, 3262, 3760, 3416, 3785, 2721, 3449, 3875, 3420, 3545, 3700, 3757, 3718, 2873, 3767, 3548, 3458, 3253, 3408, 3903, 3759, 3518, 3658, 3339, 3240, 3590, 3852, 3628, 3668, 3724, 3150, 3039, 2827, 4050, 3484, 3570, 3426, 3817, 3704, 3622, 3625, 3779, 3780, 3035, 3613, 3908, 2987, 3451, 3754, 2954, 3677, 3409, 3147, 3970, 3789, 3811, 3746, 3785, 3485, 3236, 3863, 3642, 3915, 3655, 3839, 3603, 3363, 3490, 2549, 3602, 3106, 2863, 3995, 3687, 3812, 3305, 3456, 3740, 3388, 3117, 3710, 3456, 3335, 3930, 3945, 3362, 3889, 3416, 3318, 3614, 3548, 4023, 3437, 3834, 2929, 3177, 2372, 3269, 3948, 3902, 3396, 3287, 3359, 4014, 3191, 3945, 3871, 3472, 2854, 2808, 3921, 3985, 3743, 3591, 3190, 3681, 3646, 3755, 3402, 3810, 3647, 3901, 3981, 3340, 3957, 3001, 4037, 3449, 3507, 3736, 3419, 3809, 3458, 3590, 3342, 4023, 3795, 3726, 3354, 3589, 3921, 3563, 2697, 1886, 3769, 3543, 3133, 4047, 4055, 3111, 3826, 3579, 3552, 2498, 3363, 3487, 3270, 3813, 3625, 3620, 3912, 3578, 3476, 3487, 3992, 3798, 3612, 3220, 3361, 3528, 4061, 3146, 3874, 3823, 3916, 2986, 3510, 3722, 2815, 3405, 3264, 3670, 3491, 2387, 3471, 3987, 2732, 3549, 3367, 4031, 3752, 3467, 3360, 3879, 3703, 3676, 3551, 4039, 3724, 3983, 3618, 2922, 3705, 3610, 3585, 3606, 3344, 3710, 3908, 3819, 3708, 3413, 3560, 3407, 3291, 3761, 3487, 3827, 3058, 3486, 3642, 3931, 3573, 3269, 3533, 3521, 3709, 3050, 3818, 3837, 3669, 3873, 3621, 3622, 3380, 3382, 2819, 3812, 3593, 3905, 3308, 3801, 3992, 3830, 3690, 2825, 2711, 2870, 2300, 3849, 3178, 3703, 3320, 3928, 3227, 4006, 3158, 3820, 3577, 3849, 3760, 3230, 3342, 3907, 3159, 3819, 3679, 3538, 3449, 3321, 3596, 3754, 3511, 3555, 3879, 3107, 3543, 3627, 3780, 3793, 3964, 2988, 3687, 3338, 3938, 3990, 3371, 4057, 3955, 3825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3974, 3664, 3990, 3954, 3568, 3915, 3997, 3682, 3950, 3810, 3929, 3732, 4016, 3300, 3149, 3928, 3917, 3714, 3610, 3871, 3914, 4022, 3923, 4079, 4003, 3875, 3757, 3904, 3850, 3790, 3900, 3818, 4084, 3876, 3910, 4052, 3395, 3786, 4057, 3865, 3753, 3082, 3683, 3540, 4083, 3856, 3957, 3216, 3267, 3858, 4054, 4034, 3976, 4067, 3669, 3839, 3763, 3509, 3930, 3348, 3891, 3550, 3554, 3608, 3786, 3738, 4032, 3923, 3361, 3921, 3779, 4029, 3181, 3931, 3709, 3872, 3964, 3360, 3853, 3861, 3807, 4023, 3622, 3997, 4021, 3807, 3881, 3735, 3918, 3869, 4006, 3948, 3427, 3109, 3963, 3656, 3993, 3950, 3878, 3883, 3842, 3901, 3947, 4045, 3844, 4010, 4092, 3731, 4007, 3621, 3920, 3730, 3811, 3464, 3819, 3701, 4088, 3981, 3669, 3597, 3756, 3871, 3431, 3899, 3310, 4042, 4079, 3220, 4007, 3614, 3883, 3194, 3531, 3715, 3962, 4021, 4079, 3702, 3980, 4064, 3850, 3777, 3218, 3590, 3777, 3909, 3986, 3611, 3078, 3547, 3577, 4028, 4096, 4073, 3960, 3933, 3090, 4000, 4053, 3324, 3887, 3886, 3817, 3344, 4077, 3739, 3972, 3906, 3884, 4047, 3851, 4076, 3800, 3763, 3853, 3722, 3752, 4086, 4016, 3978, 3963, 3781, 3839, 3799, 4004, 3938, 3543, 3973, 3952, 4045, 4054, 3750, 3905, 4024, 3940, 4088, 3477, 3879, 3757, 3926, 4012, 3622, 3787, 4072, 2816, 3919, 3746, 3882, 3647, 3624, 3576, 3889, 3502, 3918, 3867, 3651, 4076, 3939, 3559, 3710, 4064, 3791, 3512, 3906, 3990, 3860, 4030, 3787, 4063, 3946, 3605, 3810, 3439, 3610, 3769, 4066, 4040, 3674, 4034, 3358, 3624, 3162, 4088, 3970, 3822, 4089, 3989, 4054, 3871, 4081, 4079, 4054, 3301, 3691, 3970, 4049, 3620, 3852, 3103, 3842, 3908, 3299, 3991, 3803, 3891, 3980, 3853, 3872, 3729, 4018, 4069, 4036, 3714, 4079, 3986, 3816, 3869, 2873, 3969, 3130, 3088, 4002, 3971, 3960, 3777, 3473, 3749, 3460, 3503, 3855, 3680, 4068, 4075, 4005, 3786, 4084, 3548, 3907, 3816, 3558, 4063, 3826, 3947, 4070, 4078, 2669, 3865, 4004, 4081, 3928, 3762, 3480, 4032, 3514, 4050, 3891, 3730, 3120, 3170, 3956, 4076, 3845, 3775, 3378, 3697, 3662, 3871, 3749, 4089, 3923, 3943, 4095, 3833, 3995, 3885, 4047, 3640, 3562, 3904, 3638, 3871, 3896, 4086, 3996, 4071, 4078, 3755, 3430, 3732, 3978, 3685, 3909, 2781, 3874, 3868, 4061, 4080, 4086, 3355, 4009, 3799, 4015, 2876, 3569, 3659, 3813, 3920, 4021, 3634, 4037, 4002, 3599, 3573, 4061, 3898, 3846, 3407, 3584, 3722, 4082, 3583, 3894, 3977, 4034, 3886, 3598, 4070, 4033, 3748, 3857, 3714, 4002, 2449, 3852, 3993, 3370, 4064, 3933, 4058, 3878, 3998, 3438, 3950, 3760, 3738, 3766, 4060, 3830, 4051, 3649, 3993, 3927, 3618, 4065, 4049, 3882, 3795, 4017, 3872, 4026, 3835, 3758, 3463, 3700, 4040, 3947, 4052, 3718, 3997, 3911, 3941, 3933, 3615, 3887, 3807, 3736, 4005, 3903, 4043, 3842, 4035, 3914, 3808, 3925, 3566, 3434, 3952, 3947, 3960, 3755, 4085, 4008, 3905, 3763, 3072, 3078, 3406, 2992, 3976, 3638, 4000, 3443, 4095, 3844, 4061, 3636, 4084, 3665, 3995, 3817, 4079, 4062, 4045, 3587, 4096, 3986, 4026, 4017, 3834, 3816, 3969, 3906, 3815, 4071, 4083, 3934, 3953, 4086, 4096, 3985, 3756, 4008, 3548, 4004, 4000, 3636, 4084, 4051, 3885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; +const float H_4096_8192_3d_input[] = { +11.852162234851706, 7.0103776711404908, 3.6619359861492673, 9.1155659337359651, 6.795951531382654, 8.6693010702449591, -8.23827897319795, 0.53165879290715867, 12.37912440997912, 6.8418050353375426, 10.802319289914337, 11.0638091710385, -7.7866481722334679, -4.8420100015139598, -6.8818670299223434, -8.2450578579286891, -7.2246894597896008, -13.815987133628951, 12.234902365241059, -6.9198331467931302, 15.160223910436569, -4.5765959155807234, 2.1484900276377519, -4.9196084573928518, -16.426663730230732, 5.8977022766980651, -16.030910288790917, -0.24586731175381885, 1.4726914953126813, 3.5871240318927358, 15.458510455388435, -10.98031892270658, 6.9279611100247118, -7.933561985282596, 4.3891940661748912, -13.812675339667404, 6.7914919672067642, -12.203132891070263, -12.317652041719844, -8.3021764626005385, -0.77739811052311958, -12.432640728863277, 14.289974286204039, -5.5150189346697038, 11.547145236606516, -5.1736147941182464, -13.447736295418046, 10.413127356393893, -2.6729465454008059, -10.729411552653465, 6.5555201942237238, -11.14433713195789, 13.458451742879602, 9.6447015865820465, -12.302090740163194, 9.8687463840475296, -10.637342777071272, 7.1778509359003975, 6.8268531761459119, 8.7068281158836012, -15.40339167220862, -9.8296506950508089, -15.280917762828489, 10.102496828664545, 10.037807270690561, 2.4867958468392133, 1.5319150444766332, 2.7112921117745921, 7.9889723896025524, 12.905833618771201, 11.00245683272405, -8.3107418252762226, 10.705033599923738, 11.912486445703268, -8.4081265077051892, -8.3025042540547016, -5.9142638277949331, 6.867038040093588, 3.1567085236762717, -14.534241677148046, -12.01689262177565, -3.8412916991891328, 6.3786080585444953, 9.4837369133142211, -11.075276289896468, -11.925721231361601, -5.4124139821564548, 8.2303728395014968, -13.750199366192035, -4.3314232665367056, -3.732456805346037, -17.295039854808323, -15.232902687351071, -7.5988314451312435, -9.5932544936015738, -7.3591078974534163, 8.6527118214619172, -10.608033142382668, -4.2032772324090244, -6.5085189200544926, 14.134044288331616, 4.4085632854650365, -4.5210532847247746, -8.4975231327737504, 12.277990534144504, 15.150130037398975, -10.227258018348129, 17.948861291429097, 7.4173114502152595, 12.362776847751627, 4.8547293037318235, 6.3837603116600432, 14.087489189989547, -1.9380985184061332, -7.9696678961374925, 4.6059836342656899, 6.8183217574223667, -6.8901903967415219, -14.325821680951959, -1.3621121662714455, -11.149847668005521, 5.6833891974043862, -17.398485016935354, 6.3370092934725513, -9.6926235420538767, -17.960802334972445, 13.547835590566937, -16.451894282762098, -7.5577889478681159, -1.0982925426375461, -5.7669050004987508, 11.375367155954425, -6.4107510452532788, -8.7207638586733562, -9.1539348930425479, -13.633137903872361, -7.0081337564945265, 5.4180605521415544, 2.9680844338645205, -6.5310659644000255, -8.2872761646593993, -11.760139277151676, 13.382166905042041, -6.0047682130962281, 3.2451347130941364, -2.0983582950687798, 8.0680309516812514, -12.377986061470123, -12.358162277163119, -5.2920128479525648, -9.202112202542164, -5.6654376221077563, -5.8110927985741485, -4.984676819547551, 6.3016022666512397, 10.38212336351639, 1.6487659492093847, -11.063498383826518, -9.3364733355871579, -13.426754544804615, 7.9359711669654969, 7.0591108612555526, 11.63486957350829, -9.0269661526237055, -8.6632957575356464, -7.0684291859722208, -6.9541491917610934, -8.5499008046873524, -11.95275094242079, -14.577751370567405, 7.92565420601432, 13.265770899061641, 6.5227249157502625, 12.649384608136366, -8.3035216691676741, -8.4837140909479327, -1.7621082901418452, 11.064948293934235, 9.8955732057806269, -5.2006112065475802, -16.609541870425645, -4.1563385545013416, 0.91112171860938895, -12.709318786199471, 6.9261739544913699, 15.622947349737608, -5.9748260335048391, -6.2084520599854978, 4.5326675370634977, -10.190200128059862, -9.0182739518530965, 7.7990243565929234, 11.016287638043895, 7.1274548793238948, -8.5088898394843291, -6.3753383395958672, 8.4458247674289417, 7.0899296466375441, 11.984742407457288, -8.6997143935860084, 6.617717259407943, -8.6211765783576588, 8.0571281026284201, 8.2215638031313709, -11.853165323809973, -11.220981285243187, -4.3770395500199921, 9.957777885767797, -1.5614058322047073, -9.56164241353585, 7.3792373063941277, 6.9920671675894948, 5.9799488599242361, 1.461883121442231, 11.700348102506707, -5.2194626192370359, -6.0603567908988003, -8.1431285255806856, 10.93990987379744, 9.5381901110903051, -11.466961877786789, -10.507751479156317, 14.428027308035865, -5.4370273484553913, -5.6747013525591967, -9.9762942471273934, 1.9692091719828315, -8.4206281749827721, 6.8899330422146594, -9.8324002842385241, 0.66168400552588214, 8.6516044033634287, 10.65559107155409, 9.7754600143798633, -8.8306105049263834, 6.1770006762428427, 14.456377606617053, 2.4403104433038201, -12.633954694196738, -12.024403140645889, -5.0527916191406135, -6.9352208566553832, 9.4384867856948844, -13.373923816314992, 8.7356124420999599, -9.5270461696321664, 10.480812629474718, -3.4687409495354067, -7.6636427108879923, -10.896129661276621, -16.064091728119134, 22.476534329946553, 12.460754581359602, 12.087618911587649, 0.51377717054611638, 5.5500395425073492, 4.9591318659994164, 5.5053463280191135, 9.0332303928329463, 7.937396425761964, 6.6491955641641933, 14.874164932122154, -11.391128249290208, 3.169135882092851, -1.8400528212873013, -4.0964252848802376, 9.4117328208476536, -12.593571458178959, -5.1728063343608373, -2.0242804594425396, -7.1426529934991043, 6.622101708069974, -16.392117821465206, 9.1077195568830138, -11.835790666635249, -15.065298034974141, -8.7710386430596365, -0.30877893122877215, -5.2306016562458142, -1.1863392825524115, -17.232954172250324, 4.4787746080943949, -4.081066098262939, -14.903892606586338, -0.51135806197439337, -9.974082856724543, 10.97578876027282, 15.2893043712315, -11.13092785115396, -1.9074874511930142, 3.2050565854522359, 13.289562124770748, -9.2824501805811419, -0.86689339429455436, -9.4077211103368672, -1.0128498072031238, -11.424484441892933, 13.505559237096781, -14.111275253120381, -10.426533281521948, 0.36688942851726047, -8.5830248103322884, 3.8345302704261743, 4.9414391940031317, 8.9432236478109655, 0.055208574238455675, -12.115262711332303, -4.068136420980486, -11.843343002389492, 10.583962363060127, 11.130757227942066, -7.3409476249301377, -13.416870788702695, 7.6236503465776373, 10.072515155349375, -6.2216809086788194, 9.8166429337719912, -5.3031299440036861, -6.6235012830395386, -13.764819271600768, 3.8557639548592864, -3.3181185983845203, -11.243059309352699, -12.611089376900733, -15.897667241135203, 8.8329589779154141, -9.135706506752193, -11.422564479033543, -11.642579626028745, 3.1132478747504968, -2.1434978144486383, -15.934518757357043, -10.557115149142858, 6.2308860438668718, -13.739105501743138, -4.3915587851524212, -10.419872652099752, 8.1112198553932267, -8.0273906192655193, 5.2239517391735335, 8.0434155203510045, 7.5842021180171599, 12.631932512287561, 2.4859951309492123, -5.4847073726029469, 2.908656446600995, -16.092641302221626, -4.1982700477429225, -6.178163729520965, -10.732042015347554, 8.2982728113062105, -6.8665949618133846, 13.57740270884686, -1.2643195110945262, 9.8022838676304502, -6.4233691609370105, 3.8242562234068851, -5.182967579044881, 7.0944436760142038, -12.324612229746279, 12.794879744676324, -4.0155602075996786, 12.511504532676657, -9.1320095199193183, 9.2556023858738161, 11.631662838014581, 17.216281625720601, 7.1659577752705221, 16.051548211691429, -8.7388242030409558, -3.4004503641521802, -1.9946663617003413, 12.023458388822098, 1.4700405113699626, -6.9181864133887903, 16.791392657544414, -8.6631176405187311, 4.5674127213503288, 10.664528010800908, 8.2944988052587405, 8.5825626385790077, -5.6427914562593999, 4.2779399881534923, -10.175893849281154, -7.2192065435357264, 3.140283780903613, 10.837060473203007, 6.4038543569395916, -15.819883190567426, 4.3940223675038643, -18.036559041052769, -7.8147548616524434, -2.6076616130875916, -6.4742631481878554, -3.7958217747998599, -7.2948016609161348, 6.6323878871482016, -2.255281573000754, 2.8842198986078764, 10.659970486702305, -15.569498144370991, 11.390070437002256, -2.9482405155022557, -13.376525755764128, 8.682108767499308, -4.9454187674641732, -9.6031277309502645, -10.196124831949369, -9.0217868605044558, -2.5107837667804862, -14.858770639972604, -8.141178103509489, -8.5471398578274389, -3.1869173504354151, 8.8957282181027519, 13.358898132254073, -4.9187666990055874, -10.228703540264316, -12.346941929546555, 11.554539081207805, 11.957225349009214, -11.472723315138442, -11.539223260247994, -9.694197741233495, -10.814894685262868, -13.686233988885167, 5.7377733456960787, -3.3230070437503634, 2.2490730563707366, 6.12847572055448, 2.3536601808115556, -9.6767432576922392, -10.954820690491808, 11.86814480279536, -9.3155290781984252, 14.141162451253175, -1.4111009040109763, 3.3702115944390596, -0.98701110295130623, -10.652104782446946, -5.6828295739196912, -4.0663135145926104, -10.095528767706245, -6.3121380563889229, 1.9120925466183012, 11.360542554317204, 21.042270964456723, -16.659873911031575, 11.603621003485147, -9.6777504121808953, 1.7207302252910317, -11.29409320247472, -11.180036360709401, -1.1247306222267544, 6.1904287248508867, 10.210101738234316, 7.0486975536873739, 16.031938158124891, -8.9308814719358764, -12.431649255706118, 16.692435840967139, 5.2357717202564009, 12.423164816444851, -11.250581960281878, 13.430914550376267, 15.343462914852701, 7.8079002483516744, -3.6709333275618681, -8.8629125797112316, -14.31120951941063, 4.3406926758242452, 10.463301680233609, 8.6489346124984543, 11.191263935935545, -5.0521803698731969, -10.333058606811804, -8.5400809112919642, -7.1779877442246081, -7.6103785194202018, -5.3417155702671248, -10.451403615154376, -12.172717561180237, -4.0679164951460942, 6.1506735164799053, -3.6440853392578565, 1.9433343296831092, -5.4755600582915411, -16.357475888743817, -16.517778074154876, -1.2039643247733316, 4.5018459122634571, -7.0744532694934668, 5.3770800058176924, 6.282466912156818, 8.3610249181869101, 4.8986050239506751, 5.3280071180523274, 6.1464146475343426, -6.0108406957887768, 12.755972489786537, -8.4578495576716968, 9.2571030183130549, -0.90434384520253952, -12.986580731138242, 9.9535150158240739, 10.827528804939245, 11.747515740760758, -15.16087284652537, -13.087386783252583, 10.629311095924464, -5.2148823797940365, -2.6329597953943216, -5.5467525289215098, -8.8404156607741093, -5.7853062363628798, -9.6115554463827682, -18.889969367477391, -4.2325934493849227, -10.285889677913188, 4.5969906810446215, 0.45378395656837561, -5.2343788566385898, 6.4724226890338548, 6.7928342375575088, 7.8077790568267371, -2.6568661465988948, 9.4096509466272025, 11.669118375894259, -9.9553406325655409, -6.3303387260871826, -0.34466246402459871, -13.691429091400373, -13.156577206028633, -6.1513694320309815, -7.901802513607203, 12.221162679427714, 6.649236864790371, 13.317311499241065, -5.7970159963996366, -17.357823517948706, 8.270939734241308, -6.195066527041619, -12.849459296555617, 11.652018884141436, -8.0449214444329744, -4.6951452329584145, 1.7769542408723182, -5.1632932513788541, 8.212354634679043, -14.191579158142765, 6.4303208307092943, -0.90871698965024839, 10.606516635015241, -8.1011311449339072, -10.243987353238843, 7.4591880910627006, -6.5152549231194605, 7.7121540392018115, -4.3569532486078533, 12.00591388282222, 2.4746766943454785, -20.087190886572834, -9.1172366408631582, -6.6238587915848806, 17.914330870398388, -1.6868311119764172, 8.0132561252788168, -4.0467870947940794, 2.3260501959545832, 8.1309552950795503, -2.8213887397473871, -8.8621258027825629, 6.8177161869910501, 7.8641580898949943, -9.1469397285483218, 9.0967720192620156, -9.3166140585545332, 9.4569551350765515, 7.1007118204232631, 8.3756462433046686, 4.6694993510050598, 7.1515263039687182, 2.8523595630594913, -3.4741239698997162, -0.10995521113142948, 3.9540238233698299, -9.1534225071490436, -17.923208439995076, -8.8636707688627148, 14.965752168216021, -10.23555118408442, 2.1282088388958402, 6.7125800223509948, -9.8693908028803428, -12.187767767487951, -5.8471084933737414, 9.6931543841647052, -13.672759143337181, 12.706659800260432, 1.4726006339350921, -7.3467125470221255, 0.60736645449389881, -1.9027817610980031, -8.6768604500952566, 5.1654956072697278, -7.8451284391906944, -4.957748036893582, -13.397215304447361, 7.0040349274753995, 4.641473004210444, 5.487007301223163, -9.6273581630058676, 16.374185605837095, -9.7342921955291786, -11.365160222452676, -14.203028207976782, -10.151383734547659, 13.628501908584022, 12.709075886891771, -6.6936152910684665, -6.2279802866864244, -5.3628359361071647, -2.6913495881673302, 7.1138952384277898, 4.5472848611830976, 10.538614146453622, 3.0027041674993393, -4.5129950162998655, 13.929432209869022, -14.334414792485857, -7.6430080791311292, 7.2113454856008135, -2.5473048779929162, -9.7982912586592725, 14.20003752638376, -11.43779305242056, -11.788928136757081, -9.2702732072107601, -7.4402405253529276, 2.2577745820483472, -4.0065489272257437, 17.327253826968342, 10.564656643482731, 4.9362649999299286, -9.6827658569722317, 8.5740726414795692, 13.972819550183335, 10.142649942755849, -7.5505089381177264, 6.696698382812559, 6.1350463920502829, 7.0980567064179256, -7.1739648051060803, -4.8241454156612136, 11.523185452716827, 5.15143919727939, 8.2887451440406092, 9.3194658667920365, 5.0752787775781885, -3.6974163215820433, 10.009475686455609, -5.0500616477503311, 8.0495440815500334, 6.9634210532733123, 0.74952844797906104, 9.2888896580566058, -8.9836598970543786, -11.976984601087814, 14.180425924043737, 9.5949237487536259, -6.9806176014976495, 15.203989667738226, 5.493621596505367, -7.6955098868525882, 9.5564647992545364, 10.079356604075551, -10.960076969559537, 7.2042424232206992, -14.531624249964095, 6.5286867902033308, -11.463904598934056, 6.3615813591453119, 11.416387712259898, 7.0427168358236125, 13.822852330215177, 7.2746500528888527, -8.3450266043795249, 12.806608348123776, -8.2535126123648936, 5.8510702559397432, -11.72864058021125, -13.525703617514484, -3.4673986791846629, 8.8257475497907567, 8.1617848896097982, -10.511226281526806, -6.5898403692543042, -3.2708944298983913, -8.2863826836910714, 4.3118003065244856, -8.739126028339717, -7.266249505524506, -12.722343971179958, 11.857858107459306, 12.911981733235436, -10.65461960338774, -8.4472396688027516, 6.6651405743509189, 11.580579384141151, -7.476951619445769, 9.2634695098381989, -9.1478306927597437, -7.8825061512029215, 12.660129998551898, 9.4635781422095882, 17.727946307041069, -10.471079620658342, 13.465213687900388, 7.3119927884332858, 11.463991072120113, 6.9772621837497031, 4.4282053470168625, -4.8042111521791862, -13.26622055962914, 13.184702932454989, 5.8920985561126233, 4.9607673707960149, -6.2145046667516981, 4.9892348599039815, 13.386955196389408, 11.050110269593503, -12.670345450307799, 6.8919385748089095, -6.995509703845781, -2.1490703014355343, 4.3577224727703934, -2.687681135653762, 9.6117562706775512, 11.440484820731625, 8.8717842123429058, 10.901792493383279, 9.9966531326723, -2.166562149137035, 10.759372446591094, -11.145782653874074, -13.643983964564196, -7.4947536090369651, 6.8729516444398113, 6.1255906136871214, 10.286427618569139, -3.8954533403572982, -15.009404348795689, 10.416272528141709, 10.773417627973688, 13.473131534196293, -12.269492414050813, -3.5818855637200442, -2.9078381779448681, -9.3090084191796318, -10.106912381860665, 9.8707437855810021, -13.277992270605163, 8.2476749947176113, -8.8274321958792843, -12.638876954450266, -11.37387078264226, 6.310839667953493, 12.505381714845957, 5.9770606555099137, 12.571542220434118, 9.9007684373602896, 10.053443429632159, 1.5818774444782795, -11.202245256178113, -6.3338053973968904, 10.273087000056226, 6.3747900737833705, 7.5548325974206021, -7.5617215418668815, -14.246992208284086, 3.6218243017485983, -8.5325540980340548, -2.3238622952828707, 14.565041102861516, 6.4324516848911006, -11.086714498316114, -7.5045302416397384, 5.2026398416795994, -6.853203104711123, 2.1843689141131324, 4.5710236867227421, -8.1096546261933575, 6.8516131596677754, 15.749131604121894, 4.8170171857120234, 12.738222513171431, 10.237566783706301, 8.4519598141169237, -12.480409549357107, 8.8391211926715538, 8.2890453802332456, -2.4407905630831244, 3.5387036940209624, -3.6252104368372637, -10.758160531341717, 15.757385534263314, 15.300017753661741, -6.4977207422761278, 14.316071119369459, -7.6509169554472871, -14.240089324876473, 17.946531936112731, 0.21891599627778507, -14.327642522308526, -10.198438570466465, -6.5254022288421698, -8.9170677031243279, -19.733600738139021, 9.8575790819227116, -13.439453971096134, -8.08549743821699, -7.0580010359915093, 8.309267780115082, 11.234207036389543, 6.0726783164608014, 15.587458237921769, -7.0535490866185722, -4.5092092976529417, -6.3389155754995201, 8.8389289188970324, -13.748748681697574, -10.541386063792364, 3.1701281296367463, -14.503520722624311, 11.450835790167169, -4.1646167487606398, -8.4877909951424595, 13.349350976255494, 6.805877878755318, -6.0136669492638335, -9.3639356707055494, 7.7593202577468361, 0.50113711390472682, -11.966738431991194, 12.724874408920027, 3.5582910322431047, 2.6950418641475302, 13.624278919557449, -14.882267598720199, -10.522071180638532, 10.177398998976383, -14.988145883986871, 12.749221128051207, 16.9417703024852, 10.798411089097906, -7.5603646872325196, -13.887620488443355, 6.795459150479954, 8.9187603996083489, -2.0975322825452452, -1.9757625488414245, 7.3999518935819824, 0.55507580729811956, -12.499441910415001, -17.623680811226599, 4.6027405025951635, -12.851870220608683, -7.3653468732952403, 11.972212571862007, 5.0650581632440161, 10.184194371691481, -7.4685323577351861, -13.91941422673203, -3.023728251254604, -7.5331742909246113, 6.884248527279258, 0.45905900344021811, 7.9221026748242638, -13.738522130398389, -7.192484909334925, -8.6492261161697765, 13.362572855468146, 11.756208490055306, -5.1379560916061688, 0.79142269505050344, -0.76803621547792877, 7.7549707855525991, -8.580692212271444, 12.55718276709921, 13.824515712934444, 4.6771582940006207, 7.5690824104994574, 8.9468688797966607, 15.149701027144566, -7.5543759673724367, -15.762504230620095, 6.0226666138366562, -14.441395804471442, 10.042802710491094, -10.413666974887784, 9.9977859314096555, 6.661089886374179, -15.232744712455945, -0.29385443370198283, -7.6550938684627798, 10.155100661839109, 12.382405486599948, -4.0908481515728976, 8.2741386936014951, -13.144677979369291, 14.828710495467698, 11.928398028195682, 8.6295134545955268, 8.27163552072793, -6.1797837465827472, -6.8523963227916527, 10.235531050029158, 6.3420892704922895, -18.986839986174921, -10.031153094491204, 9.8664552318103755, 9.0490519851328521, 5.8122608319082092, -9.9313476791104556, 8.9233711466623227, -11.063483670478442, -10.506601643910665, -7.8199885544402337, 10.624711496812944, 11.535453029335885, -11.086350278419017, 10.274989797342863, 14.174471922522534, 14.369396939115374, -8.8582757132378074, -7.8522922263977346, 9.1770638890238008, 4.404279119885941, -13.44742860575303, 7.1166789006321016, -5.4330041512079497, -15.427562347420725, -3.6868407799916638, 5.1866180381410762, 7.6709901568170613, 18.345854267912042, -4.9003530729536049, 10.468660952737869, 4.776982165598695, -5.6287843488915614, -9.3412091622328344, -13.912648151648625, -9.5237512831144624, 13.450520990138015, 13.396914326134098, -3.1904784969275046, 15.798741916285385, -10.810269144195532, 1.509656071998684, -13.878323717490971, -0.20820114068063908, -11.747048527427133, 7.3833991188681747, -0.87088303478322637, 7.9643245630936503, -4.4926178036020943, -1.254207052775153, 11.483542272294349, -13.148499319806293, -6.136615041458259, -13.927479206508691, 5.0953914081395162, 3.6709312625305595, 7.957426713199852, -3.3451767036242064, -10.759041525323852, -11.394330854721302, 10.015078374525395, 3.3832848670040567, -9.5028638140867212, -10.033492516835205, 7.3632139540821244, 12.599386844473557, 9.5584005725098873, 2.798264002893208, 16.990209741896582, 18.391755783844861, 1.4510639061574093, 9.2270278377989303, -5.0621183330469739, 10.261183127076439, 5.2327787155031551, 3.9453000986056503, -15.583642576320866, 8.6770041976506533, -17.128999463647837, -11.871728406502932, -10.394587892496528, 8.6180369341985319, 6.516417535746335, 5.2913995336538404, 4.8920041513719799, 3.8949061070604571, 13.054505805979804, -5.8996637983125462, 8.4678526015978157, 10.839440938044268, -6.5759334159049434, 11.749783919524603, -8.3008136710011637, -7.5878550938702638, 11.049012705452856, 4.3126061849927586, 5.3560587614804769, 10.023853466943383, 11.37326701911334, 8.8843983915607065, 1.540899479443554, -7.5465559519347849, 18.054805657697649, -2.0115237285322016, -12.814863310780851, 10.300533589310888, -6.3500042773701466, 14.22332127064872, 13.779487188987437, -3.7179509929171135, -5.520450741398685, 0.51276478894695843, 8.6235352232391911, -7.7774452311411801, 6.2272696577872706, -12.717758311029774, 6.713094215146894, -13.891940533941439, -8.4385045057010863, 3.6768186667920526, -4.942185960950189, 8.5164419735753558, 6.7067488901926673, 5.8779092097317802, 9.9041099161469006, 8.0396297371718521, -12.470612524570162, 4.2414224907458538, 14.417893166887747, -10.589000910389235, 2.3567319148834502, -4.6520348649684005, -6.8229956976610051, 4.7579072132700571, 6.6876842630205742, -9.5112615220330188, 9.3965638107074518, -12.652626449162325, -3.6137257652131685, 15.100829996189638, 8.0278764178809237, 12.47343748740065, 4.6779711419495627, 17.406972295614676, -12.638777832947442, -10.07196559889231, -16.201071966186017, 15.766943531676265, -2.5337629189273931, 11.037478731206264, 8.3935660687449261, -3.4843112856040341, 5.7667317959977229, -5.3151466193187202, 11.549579134132895, 9.5716752390853728, -12.665556642702606, -1.7511867802006553, 10.985055588271223, -10.741148932483979, 1.4019719168524369, -5.2045187620417268, 11.520370040656143, 3.4924841632665826, 8.6752981268622982, 11.018478120004746, 8.1489597222712415, 11.29111284603824, -9.6803162781143506, -0.69125945953762036, 4.8185876420223934, -5.1333637201042297, 6.5442549321761927, 3.2039724440150965, -6.2844002977197171, -13.943989648080665, -3.6481612704102528, 5.0868961274638762, 7.3942765422230146, 7.3315403748027332, -9.4483165283216302, -7.3124139257558314, -8.6128026626373195, 10.91457529531389, 1.733227719165531, 7.0515524594718402, 13.652369540451556, 10.898954365978197, 9.2234193891834249, -9.2875331260833853, -10.685830486589493, -9.0127297945144704, 11.035103945201103, -7.8322667143447484, 7.4267534186815451, -14.484459451128094, -12.892365226446056, 12.400895260681445, -1.3610327467613308, 9.3710008526675921, -7.9889220544643997, -14.066078429121703, -11.572131599185612, 9.4125317298352584, 3.9802853427821323, 13.552578451225509, 11.769160366424329, 3.7460148440107841, -8.3276216170574511, 10.275676549317508, -3.4534581690765345, -8.8116083610844402, 9.6112860243291927, 12.035762619746887, -10.750923241926531, -11.412270039830078, 12.675791970384855, 2.7681940494895843, -6.0352888595830061, 14.728012341239245, 11.069071903329069, -2.0294905334347346, 1.7881059261978625, -13.11079855945869, 2.0016203546328484, -11.03896297245949, 9.6728784225332927, -5.356139039572609, 14.758199485169646, -19.306747408930303, -9.747547631500602, -2.9278803393127815, 10.631512677428598, -11.505058349758947, 5.6196809164954686, -13.515125494634967, 6.3402475206937208, 8.7001279685380375, 6.7967971617036218, -0.61466117759236438, -9.6918272788876365, -5.7814172661505134, 9.7193625354241195, -16.906686969321548, -7.5235604086018659, -10.199947204902026, -9.7936604259492075, 10.01674666169402, -13.651634389305608, 11.544416297731889, -7.802468828816064, -0.47286071579940786, -10.284350842394733, 1.6609289836184331, -17.147457229744042, 13.226952440518131, -4.6840531754119121, 15.962355895657987, 15.585997744528594, 5.6171915212526669, 8.1922569110624757, -8.3396720427279387, 4.3655115127384114, 19.088815362267884, 11.244495022370169, 5.4582347037393157, -5.2064921575862328, 5.4611195524777605, 13.265834398774388, -6.6027106768866277, -8.3567593701557072, -5.2100995091538564, -8.872279835990085, 8.8511624708986645, -2.8415032528176893, -8.90721966561083, 8.6092509418838414, -12.794506748396167, 4.9154587769777436, -4.8718835188143297, 15.736412560032944, -8.1284028841157152, -9.0115555660864839, -11.572722456268854, -11.54267186253375, 6.3231823600864097, 13.698252471102595, 7.4397798943065991, -7.3874140559903809, 11.957330149348136, 16.578828659769322, -13.447758494504617, -8.3867453187310108, 12.858858544686701, -13.679184488254624, -17.989097393966127, 6.9729467845720619, 7.1557629738277102, -3.0150050427482507, -3.4241894478207389, 8.9891730143911452, 5.58684640242714, -2.4252419098432401, -2.3220109947144993, -10.153271947550676, -6.4440956220548893, 6.4637660777872128, -11.98185730058993, 4.679160341854538, 11.939393545528494, 5.673039776742324, -9.2794663394043297, 14.620894004671618, -15.198717126548939, -4.0577596386535824, 11.246729386246329, 9.248388521657537, -18.067138024674023, 12.088146785215971, 8.2659830137778165, -7.5472358634932197, -15.294952231861169, 5.6915318739840428, 7.7225018465581643, -13.5239318206515, -7.189678144592845, -7.1572966467678922, -5.1603147018447704, 4.5948288513931832, -6.6943032046232229, -3.4953462966606299, -12.323004086614523, 4.079938074910487, 9.0295814179780045, -17.116687230726722, 9.2253574210667679, 3.3356620718687418, -3.4843562000350015, 7.0034196772098234, 9.1169590232165749, -7.6022819833838513, -8.634002290186892, 15.757020023721649, 14.56916548664309, 9.8166793299488067, -14.012585858097601, -16.303460348540753, 6.328706318837547, 10.356673659537377, 12.957932809919667, -4.453315353345574, 13.89076036854844, 3.3562344300251992, 10.837065377652365, 11.946045527632085, -1.9666919744239404, 14.882311996893341, 0.87293515964638224, -7.3995595376333032, 12.740578972023727, -12.286008018201061, 1.4725257765501467, 11.51005572552633, 2.9456158607087239, 3.1894702453909649, 5.6935460538968989, -5.1304463471226711, -4.3501309014212834, -1.3570596265231303, 12.169493014791488, -4.8125938886484949, -11.812988590923077, 8.5953572216745684, 11.547929174117135, -3.8475647480475508, -6.0916817670803702, 4.3949441458543461, 10.708986715171134, -4.9176921083382519, 6.9845454201115134, 13.211641265878763, -8.0470742395724351, -3.0286311518396092, -8.1094174702539839, 6.0130079461473995, 15.048154145048182, -6.1061849982201561, -1.3184724514862096, 13.374931551593706, 8.2757038905352509, -11.896200834415041, 0.54178209264090349, -12.548924448766257, -8.9496731923140622, -0.18895807082266591, 15.161251263512716, -1.2114640022291989, -5.9797180926754736, -7.4864095919046978, -10.395424746434434, -6.2601439237082941, -0.78388481451542258, -8.3179201645007659, 6.6459706305820747, -12.923380447931299, 3.615294672750057, 11.552240701361072, -6.8065229429104148, 11.514049754206534, -6.951551124245662, 7.3756260828927998, -13.184709643806741, 10.708471747988494, -9.1265574178045057, 12.95334276157795, -5.9328741480790832, 8.5189835350582932, -9.6064834713593523, 14.569174263026152, 3.6101279644153479, -14.407362539728334, -9.6916542679832922, 9.1021824980895101, -7.7838634129812734, 4.6265281144994796, -12.811796997416144, 2.4737443327095394, -15.765944056522786, 13.810646962664299, -6.6826075126122557, -15.214618900142634, 12.384568606895954, -5.113057234728787, 5.4752854091274656, -6.4734766293881032, 5.3882128477325431, -6.2935902033018669, 15.281124782217196, 10.227168963872938, 2.4002256043101666, -15.970147775044056, 3.1440767271601184, 6.7732778748049984, -18.043555367127105, 6.2587742916927098, 5.073341261952673, 6.8434249233348678, -10.146405202190969, -7.761279649797781, 17.122835345190957, -16.71550688700729, -6.6392405644821197, -8.2855465718737928, -6.1015327408102618, 10.509447644247613, -6.196253145657459, 6.5915995178005184, 6.6493068177259573, -13.418767003702035, -11.838590849090032, -8.8536466551640238, 6.7441440259065617, -11.233560165332051, 6.2511143161814928, -12.561411951219709, 5.6917742570339165, 6.0195651949396973, 3.1302245727470228, 12.399852677999395, -6.1013696033368623, -4.560197760086167, -7.2970469952711241, 6.9434258713676744, 14.905481648178487, -7.803760764028655, -8.4000082243078698, 11.207158223790749, -14.044730651708779, -7.8313315132907579, -12.235152234029428, 11.136317582870022, 8.5021201344630768, 8.8357802624088837, 2.6404269486070744, -9.5531813349412591, 4.1309417669496149, 5.3565672754402778, -6.4993313376325643, 7.8618252498382928, 3.4036857519553001, 21.117270836562358, -1.0777031479727912, 13.213765666837727, 11.226925735994588, -7.434238253724879, -12.379361114192896, 8.1857356067213995, -17.721328914211902, 2.5994412397049405, 4.580182358706347, -6.1851110111017178, 9.5483993032200498, -3.388048302369135, -1.2434012601938385, -11.388179126452277, -5.2704296569704319, 13.836266257339551, 12.426177180866615, -3.712653671352121, -15.37192782267153, 11.115913266636323, -0.53084052425103223, -8.5531836317448757, -2.3960965742081477, -16.824415089461844, 8.528633555428943, 7.4291777654381193, 10.845205472942885, 4.7533091629320188, 8.706535518693503, 3.6415567084201865, -7.5311585622382724, 8.1385104057196145, -5.1846823294179556, -9.0411000335542351, -1.049797347380828, -2.8991299409155036, 7.6642968095550668, -7.8754005720659004, 11.234209101420854, -16.535698415852959, -7.0761628572882707, 9.5129669797652046, -9.0915131266390379, -11.338577074414022, 8.6917393354363597, -10.441358915674826, -16.799225321298831, 11.462376475765517, -11.381858065615928, -6.006466185089919, 1.4218953389200917, -6.3336533594667781, 8.4319232831859381, -9.717098034997294, 8.0892362419338664, -4.4241276845686519, 10.777993092031785, -7.9653063564165452, 7.0811172545915397, -19.055379407830856, 0.82018651615128857, 15.902418361919008, -6.6523234412747971, -3.5190833152978787, -5.5983997363422535, 5.961651908141202, -5.283895209877528, -9.485610542033621, 7.1197178523319673, -5.1431746838525134, 15.731219522549045, 12.204109650879342, 10.045284749059858, -12.453771419859859, 6.7070119235556298, -3.2495420061650209, -9.933597401656975, 12.613995392210095, 3.8923057163848043, -6.7265810636893635, 10.202198476222028, 14.937110700220286, 9.9291200265860464, 1.2182368642709354, -13.482511938916684, 9.7397502023428917, 12.060260344292528, -7.7164747300221821, 11.088723515650697, 13.59882585990256, 8.5875615550533464, -2.6728882082663308, 6.9742749868970142, 16.050061905406896, -17.287365682206858, 11.610268597397205, -0.478999021364924, -13.448866900059636, 10.268606140244966, 6.8488744118944309, -10.805803643054629, 13.09149051672107, 10.457994420705443, 11.115406559578915, 15.265860587040104, 10.387581370330105, 10.68015423177933, -6.9281895541132519, 12.382285456655122, -6.9998267808613601, 4.8278805410410719, 7.6728193873633206, 5.1894373221354657, 0.6047929092252613, 0.026281099406445813, -8.9353793037232094, 1.8370791762025767, 5.6045212635283859, -13.530818183808643, -5.2241143603891045, 5.6467000442691999, -8.3601900324819685, 15.580110340267103, 12.448550246324379, 9.244179471592302, -10.692642766748435, 11.265438569904388, 14.640272258473741, 12.278384955124491, 7.2107914118877598, -8.0054847671413807, -11.462142352840875, -6.0742575491542334, 17.641209829491661, 5.9871163254682926, 5.7469080116907181, -8.9032409472018124, 4.2429733292587901, -2.7389315233277163, -9.6446438947698532, 2.7967348472090148, -3.4148591201095875, 18.664051844743707, 3.4074255236556037, -12.249090420977334, -0.25565600080895073, 7.7782868604639885, 10.759195499220814, -13.06615516385078, -7.9312405028980937, -7.6092160358577825, 13.381488025999262, 9.2184027828119763, -13.065067924866678, -13.99595254716275, -10.354516863399754, 2.1159358415695975, 11.204524792614153, -0.17369963008825268, -6.9519798763711611, -12.165651540299224, -9.5886410200609475, 5.7958048555370052, -10.156424734101444, -8.2040790862411086, -0.77913730753640742, 9.4152589263397193, 13.79774413078886, 12.626464051252848, 9.7362475220497338, -0.31859196000836415, 12.303528001954142, 15.416856708857889, -11.722490916973536, 7.731294427210047, 3.5445750942898115, -8.79441010275605, -12.935601819474821, 8.6274816331847308, 11.670238397250388, 9.1781032773605471, -6.4700073767892583, -10.292119361114118, -10.587037840001271, -4.0477617895718492, -12.416666162915941, 6.0095694108892737, 7.872931310878359, 4.6504742175567486, 1.1795014476310262, 6.3971417145413039, -12.975806430284388, 17.687825846257336, 5.9023746681632208, -5.7648647495656196, 8.6501535760031896, -15.441651023525264, -12.967673304474536, 5.8390491924331789, -7.6707823630416101, 10.715516344169677, -1.3799039597705547, -16.268084813446897, -4.9478113643643731, -19.232343298357264, -7.0326206396257973, 6.4588825368707283, -4.3623514985780654, -7.2557172005271546, 3.1729293446071836, -9.2872454414091745, -6.7520172159004144, 9.360773462449437, 15.075065116807112, -5.8199102241339684, 12.16458546788604, 12.616259699040233, -2.359417488100592, 13.342880200649253, -17.433480070010553, -7.8139368511252307, -7.8860820755753132, 1.6757646091923626, -7.6150460064359988, -8.9520426221442673, 5.9388268589557187, 17.918089227380467, -8.385877295726786, -5.4547881664848665, -4.1678660755250947, -9.5640330099369688, 17.718522536663194, -11.00107119671582, 8.8235092010494931, -4.1431750124231623, 4.4570344747327901, 4.3192488744554591, -4.323283429375099, 6.6443095710230304, 4.2436320742463085, -10.123373133616772, -13.497355900222427, 11.635677517007872, -13.708283876943096, -11.789269125051952, -8.6790457755277313, -14.923708130768105, -10.779508566883559, 3.0111052311215132, 4.3318021997818779, 3.3921649422833013, -9.9200023970997044, -9.2241497004122408, 13.076316150405908, 12.198883314765592, -2.8893535664416445, -10.835252022034291, -4.1756971905060292, 9.3241907874911121, 11.74591818091446, -0.41468148061332066, 11.005099298412622, 12.90285739239734, -11.513483161241171, 5.8023997911506875, -19.842759325639776, -11.14220163145564, 2.6147400997630355, -8.1755408052785867, 5.8028711345469306, 11.338635411548497, 10.155470431507846, 5.866099295676543, -8.7506491853715254, -2.3529860236958013, 8.7192808354659412, 8.7800330321227875, 15.901590800621991, 9.8420059064360341, 6.2859911462142612, -15.94382946727076, 12.224223055827411, -11.151539703034198, 19.102240130806635, -13.231970466598606, -8.3674455522516791, -11.23620392166519, -3.8671242083470245, 9.4115981420869783, 8.9023690199977725, 11.763159643569763, -1.2487125207201661, 4.5613554682636828, 2.1083148435243353, 13.379705903979737, 4.6079544485210615, -10.991203960864372, 2.6393443559434173, 2.1598167243667206, -1.4650142251642544, 12.16038132227016, -10.087904284920654, -8.4087615854979418, -3.6752931249126499, -15.188245869039655, 1.3386374066104185, -9.4320191721678377, -0.9244876337558332, -8.9145540437636477, -15.598791129744665, 11.102711779607843, 6.0092996661745568, -4.1172604182707451, -17.822854113479544, -10.394956887778527, -0.24904841687850143, 3.5795278142231797, -13.409786698797731, 2.0004975694652498, -11.751978789676981, -10.796422076754126, -10.315435500557737, 3.8025558418979766, 5.6839981235115795, -8.9060443724010732, -4.5042034036314087, 7.3611600223165743, -9.775589724158948, 13.094252496096637, -1.2946847639753136, 10.124910678490659, 0.47009194946550542, 6.5102851671458319, 5.1911915662323223, -5.5275500609095527, -9.9009560970804795, 7.9394075081278572, -4.9412639244707943, 0.33209829728380935, -13.572261813403511, 1.278524345210186, -10.939477249738239, 10.343649119879172, -9.9166521419300313, 8.5963073901722815, -7.9136794766477481, -13.537752042685888, 5.7141114425726887, 2.7462370878405524, 9.6308203815918159, -10.242490205539937, -8.8448491700627834, -8.908163675313995, -3.1540167553652028, -8.3650677009656675, -7.8645559956153166, -3.3956135445690578, -15.092273022703647, 8.7386594845279628, -7.64168736254467, 8.3282894933552889, 7.1206055576658542, -11.636985714342019, 5.7482913245387248, 0.38557744560440499, -15.520924994182364, -3.4663093751692506, -10.220555313913019, -7.8767472306081743, 9.8049255589322808, -11.743691560905706, 10.90060458412287, 5.7027256343225048, 3.5634763258595932, -9.4332617402256993, -12.907158852613646, 7.3437710389871445, 6.4224264741445269, -11.780029658718391, -10.255599411481802, 9.824815940498997, 13.471325664316714, -7.897911026637928, 4.5225408816538781, -1.3648220792130474, -12.468016263957127, 2.7253296783542367, -14.144697784853903, -7.3029368517572957, -12.793492818023527, 3.8381063883952522, 15.317961843219877, -6.0052031603156522, -12.514763926468744, 15.877540929741453, 0.61088113778153852, -6.1592064839769307, 15.436051691131352, 15.196421844249166, -7.9524221743551156, 4.6960112554635582, 9.6643095751172776, -8.8061133127716236, -4.1569116006895435, -12.043869416407549, -9.8489712570407413, -4.416164149455037, -2.3751241162356029, -7.1076676202581659, 14.549835244818897, -7.0364463682543299, -9.57459467709824, -15.916210706030727, -10.343033482420225, 0.17583841065979969, 11.309889143213837, -9.1767631688394538, 5.4457002218235919, 7.6520636286137469, 17.875717882470106, 5.4607018998955494, 9.9730091695084049, -9.4063865838535321, 16.414865690105522, -5.4655831176518106, 3.4481799490511476, -13.857108102081813, 12.278404314793011, -10.997015991483092, -13.665206291325111, -3.8917982349406577, -12.944258946979291, 6.934355479472524, 3.5520742554878519, 5.8448212130702899, -7.9846728653530983, -10.442030179914655, 1.8116267084120916, 10.533180661886703, 5.9912045712019637, 10.181989692640384, 2.5294371945932075, 7.1601923369207086, 5.2245056838221275, -7.2085049059710506, 11.650748889886504, 2.2403555267004824, 4.1713007388495162, -9.810284186114254, -7.7862447167415034, 7.803360341551425, 10.681846395872466, -0.73514697807991591, -7.0616978292276977, -11.541252153508923, -12.651346646008676, -8.7083287483228418, 9.9926465847397861, 8.5725129943174547, 2.4734681347719825, -8.2705868397502957, 6.3175344994567419, -11.238482167456663, -12.423679267369664, 15.458102611704938, -4.2203576982288187, -4.8349099076163515, -15.253882372933196, 12.620734621886482, 5.554707029523148, 10.681606852240641, 12.740994817703543, -16.701739323271273, -10.357840015033499, -9.6347705928889376, -1.0197036461171523, -10.361500412092868, 14.588820454640596, -12.273911322922809, -7.1534525909864923, 2.4887106471203326, -6.9783794947522413, -16.914643018696669, -3.308021111542137, -9.7928817800813182, -2.7773545283755832, 10.664048278214972, 16.124421617806792, 13.332949981342887, -6.1883417525843925, -9.5671220386460742, -6.4034398019043417, 17.507113923905393, -15.799219971033381, -5.1244376222717847, 6.5499056322239113, -6.9274593074166644, -10.02522942311735, -6.4648383452943259, -8.0559734919978663, 5.8508591064884161, -13.663385449968544, -10.741130476266658, -15.586002390849039, 5.3228122736660346, -13.900742729895358, -8.1443955190869985, 6.0778168887439277, 8.4487327832373822, 16.179411336529803, -8.5478447352917346, -8.6117715505588688, 7.5233629399829578, 10.47395956494743, 4.1637262040087037, -12.577349862861306, 8.6631908916561802, -10.009156639118391, -7.790039469900405, -10.273618616553795, -11.626063505620669, 9.8843563429043968, -2.1648389561163901, 12.627488564910944, -11.92641792129942, 12.875207397558762, -5.689943606778634, -0.42627508263895625, -14.125378900701909, -11.787997582023536, -17.510830980261296, 11.900212157732458, 7.6031367772812537, 4.712889272608507, 2.8558923153710833, 8.3365282584230354, -3.6907189087896586, -7.9408079865486192, 9.4773464158001151, -6.669274508902296, 11.235370423403161, 5.7727456834268809, 8.0009050439562088, -8.8319573086661727, -5.5861440336532215, -2.2551132729490839, -14.882826705947069, -11.151230464595699, -10.507341312312601, 12.005985900789115, 6.5277714650756886, -8.7310816504769733, 3.349640268798256, 8.3943736573172512, 9.936895256657186, 6.4818064494301222, -16.067249160990343, 10.531768825793742, 3.9041863577623683, 9.9541300079607389, 11.579961939779807, -10.041774066770378, 8.9147724692237276, 8.0612344173860428, -2.5401314754838444, 6.3324737103316053, 9.4628096279015566, 7.3928636736144, -9.0404812662822138, 11.702316851730769, 3.0707190712028352, -15.634797015645539, 10.26301390639618, 6.0417147207582786, -5.3375369794136942, -10.042082014564309, -6.1393506916846396, 7.7589640398460613, -6.2464269532393484, 11.710227470417095, 4.0029908782806185, 14.536059420957649, -4.8965149541372188, -13.224962782852066, -2.5274991627098635, 13.874630408995118, 9.9091180042641973, -8.9402253514149912, -10.875826531577054, -2.6027034729150746, -4.4684662299295956, 12.129794078523673, 6.795964566892791, 7.8728803304179218, 7.7045296854806731, -5.9256395690174877, 17.418777047091638, 9.1174986094443522, 1.3699530901510981, -12.220020717113929, -11.712679953225253, 8.4029580408672562, -7.4075634699218975, 7.8720925855058281, -8.5979155978362662, -1.1945499226429255, -7.5751933544001329, -11.567418165223193, -8.4383645030315702, -5.5893567061119453, -3.8870110517155276, 7.3717991926841568, 9.867976643627161, 8.6802691916301828, 13.728961551696305, 11.192620661505453, 4.9023016881224066, 8.1579717447658044, -13.242924941434154, 9.5936591106736486, -3.8117214833622475, -6.3035862454812035, -7.7160226172300028, 9.9959514092206661, 11.756493464375927, 14.37762402384978, -4.115115883256518, -9.1792609532719478, -7.3145744647627016, -9.4766698599175569, 9.7751794282507731, 9.0272691314360465, -7.543155490691416, 0.27054546841006966, 13.742714660213156, -9.2554118867355744, 6.3732407840439169, 13.866382673947626, 8.8549907485502199, -4.0914428805898435, -5.4393097243094823, -5.1615932143538545, -13.820538462633627, -5.7587228301953131, -8.409032023934115, -7.866125354877803, -6.0574316740498331, 14.616371069847439, 4.4305070825394761, -12.655433084839949, 9.7152429270274467, 13.678358991988919, -16.681205684451857, -13.135523695577218, -0.43019347954747339, -7.213408710007255, 8.9722417258916511, -2.7579680144482261, 3.1605789086068588, -8.5917577712716593, 7.6483022386169299, 7.3620421778788163, -2.5144078967274948, -14.80097919002133, -10.378958057713316, -12.423609314434076, 6.3492577685520022, -13.755207583373789, -7.4628641049213433, -10.946311470854832, 8.3964857971528222, -14.353265947046399, -5.2195947812408026, -11.689219390654475, 5.1108881774677668, 11.122793692828452, -14.275545912449198, 12.238691955821688, -12.945127292644656, -7.7272732949939158, 11.776891843644615, -11.829453859935171, 18.818781543167866, -2.9742346133600628, -5.5609940173429013, -10.938020112020942, -6.4631228205345099, -5.5059276343325507, 5.9646255532259262, -1.0779705695272852, 3.8778210705267977, 4.5845326052873236, 11.5691050376736, 12.097228792912233, 5.9105157959693946, -11.166774213386226, -16.587325747347354, 12.440943703498279, -13.357466549299222, 15.891950718214515, 9.1781340592334928, -10.64096690701828, -5.2674529143387439, -5.2809357618830521, 7.3520830481341255, 13.586304026303599, -8.4832759332501464, 6.3739261163095362, 12.266590270675158, 3.828722886127899, 4.908685474284761, 3.6917937575859083, 15.641599228776847, 11.042885241301711, -4.1222572777803022, 10.108222902355037, -14.555747429456098, -7.5753220961957926, -10.506770331155707, -5.6575466212188648, -15.537936205846732, 5.0638903880388684, -13.193604766169555, 9.8591912260526282, 12.19045308257618, -10.27937514945609, -8.6859184760021417, 10.999805848781332, -12.503268671559189, -7.7523916905123187, 2.7511802565360792, 2.91428262440192, 4.9538110547032836, -6.0509214047198121, -5.8277258513800874, 10.806625396451087, 9.0978591937138908, -5.9198559325792637, 7.6981625486332463, -13.011979583721279, 8.5757048389994619, -9.7029712203457716, -7.9451177714223888, 6.7854513634350466, -8.807201439073868, -4.3828802329481231, 10.410648673501008, -8.1902920660382321, 11.842120761983574, -4.1527980583223405, -9.7988786310021805, -11.285180269216866, -13.018148864756428, 4.1186403754428751, 10.43001479524419, -7.0461109729085987, 8.5786032717719856, 15.504024777950846, 11.250457025887693, 6.4135256729456147, -5.7082075180607248, -9.5999004096756941, 9.6691960845162672, 9.8918269808574824, 8.9989618758512009, 4.9721805407110411, -15.483517468280615, 4.5089607195091403, 14.971146029994701, 7.4151288411862772, 10.333025179117493, 6.1087557040707443, 11.939158390088201, 9.4227302096150911, 3.0989377240380871, 14.393938803705243, 8.5357504357724636, 15.79171513099924, 6.1553084792525885, -2.0683513251200756, -2.0367062690856366, -1.8370657534990695, -5.6341637554510804, -10.718165392145542, -1.9577132182931185, 14.110414135064598, -10.923438151562504, 13.350105745198872, 4.7383841491474028, 2.6284704173289102, 8.3545884091939513, -17.705997089259448, -6.6618052906582346, -3.7094389338620899, 13.043407295210464, -12.090881144797782, -0.87424284072270309, -11.677251243575197, -9.4751367032352025, 7.979339147611288, 12.192501593634544, 2.4193720583478719, 11.727349419385401, -13.753140487033642, -9.8845978225030731, -14.58469090828075, 0.67132150664422219, 5.1992795194822943, 11.98911382060918, 5.197917631334116, -3.3682229692886492, -9.5973226052799809, -7.4042120531721123, 11.711164736502393, 15.329921988302832, 10.544637842781498, 12.707232330190807, -12.260791662759944, -6.002085995554963, -3.3564688110787517, -12.48230008552035, 12.742419947435556, 16.280707317322165, 1.797760980082328, 6.451075169749843, 9.2789684087299875, 7.8328635729252296, 11.319166296368785, 6.6366058426609582, -5.6821956093078789, 9.7505100479775848, 13.643278756372229, -5.8821087090272135, -10.840590644225463, -3.2877032684944933, -9.7530049929920288, -3.9588761306877696, -0.046283068270417858, 6.4114242454599584, -6.273247838007431, -7.0068926726779148, 4.5642607847928813, 5.5679681443306697, 11.011803422556758, -16.417859985503334, 7.3707964909192585, 3.4603305932723418, 7.3165044946497222, -9.7386092725447586, -11.054841772579875, -14.157989358873229, 3.3531121026862376, -9.0818111900906366, 7.9496874275799314, -9.7922025138451669, 10.892570063558015, 3.1925967027925428, 9.9288316965895511, -10.295865327908349, -10.749616464301408, 6.6541457023403892, 8.8843698521826973, -4.8260039438391669, 7.0098869680757296, -16.186198061926294, -6.3409635703000591, -11.862142531167313, 9.6735958918486578, -2.4892150310175158, -10.169290524477779, 6.6322096491333591, -2.305470093930718, -0.92641224293566915, -1.3010295726717143, -0.11437024806972292, -13.427505183685376, -11.30462950847023, 16.047768688138433, -14.215325469420904, 9.3351350662345745, -6.62593414805026, 1.8173348956009636, 9.6688678736026201, 15.434722843484117, 4.7741734648897634, 7.3832922534979426, -4.0637141564326127, -16.632389376826612, 10.935696435540672, -7.081299751733459, 0.22763411781244652, -10.55933337996192, -6.9479455795804341, 9.9512334143567251, -5.4446202104490693, -10.105751963329556, 9.1634336498698268, -4.2792605756754938, -9.2549481581422839, -5.2489925669533992, 19.990654802947347, 10.890656037663639, 12.487357089066776, 19.360197646812569, -7.3783790277563934, 9.5046824613475227, -13.591058244634368, 3.11317714742817, -10.723902307250402, -6.7339814905779498, 14.077111891404819, 16.803064214501958, -6.6876176657608646, -7.9006602931645018, -5.0764202236341491, 4.9841071290352268, 9.7814723530355394, 8.3971640792724891, 8.2735062132309363, -7.343717477237572, 10.704175450350458, 3.3376016525255663, 8.5376145056555295, 5.1183016398664902, 12.788877989306105, 4.823044753973603, 12.09038966734628, -4.8326440520127303, 10.836783759007622, 9.7445450759775536, -5.0643687009157787, 8.0020380362902461, -4.3544777923263842, -5.1443620768550948, -4.3841879140244435, -12.342919506685856, 4.6585657846115112, -8.9955353113214418, -3.9378324291350699, 18.76831940558948, 10.593515326959263, 13.755226684913398, 17.32223373585656, 7.5677818925004896, 9.9959949039426075, -13.467166175002891, -3.3233741030655093, 5.8397368478590215, 5.6554446774753817, 12.481137989151302, -3.4605381289188801, -12.936456484307767, 8.9588216682055783, -11.358027862440869, -14.535078014828125, 8.4036740098083111, 15.318980936170789, 10.181738404142989, -8.2458670275406121, 6.5273443907881292, 7.5693966824517709, -11.487789267309887, 4.6197821734713367, -8.5101700136982927, 10.347196972732212, 16.93143430452665, -13.651395878189438, -13.007370433839954, -7.4011539999326379, -12.282594263318641, 3.3436733608313731, -2.9447552589107668, -14.307488849249935, -2.7255444416103551, -8.7895841084542443, -12.266575557327084, -7.4131469273876203, 8.1019294731314577, -1.6653052256131047, -12.591122331046678, 11.735557144451287, -13.013584629306072, -7.6922705625835368, -13.284713947515424, -5.8184980008476366, -11.849770154209333, 16.688688325399426, 17.471854546822666, -11.645255906604998, -9.0885843959852775, -12.647963608466975, -3.8099543328197099, -10.880874758740418, -4.1473670259801008, -14.639569631570911, 8.7138093857824011, -13.822796058112012, -13.738345053963657, -11.393551563531128, -5.2322322565930559, -7.5536960558140018, -11.275837809446775, 7.0493120295662086, -11.495883157524871, -5.3506068206962345, 6.0863457261783367, 2.6024562610224224, -4.3910043242459986, 13.266082202531447, -10.633085069705819, 17.389083961901875, -7.2756101633830044, -13.763828056572528, 8.9856589118935606, -13.480273961235731, -3.4553497377554279, 9.7381726474873975, -6.369724810111709, -10.086391133229103, 6.4293949222961952, 5.9683952678802079, -4.0990824639168837, 1.7437098180891848, -7.7016012774880576, -8.4844600189760193, 9.1893202047690039, 8.6651007642966693, -11.829582408134147, 8.7826963578541868, -5.6119822216472128, -4.8323497850512211, 4.1293398189117854, -6.8453470802900247, -13.137052335003585, 14.1466368492529, -7.9020692253071836, -2.3198030355941053, -12.533244924167176, 12.687624857913404, 10.604333767857344, 13.081925807956365, -6.601747726974426, -7.7407580139728465, 7.7496708826984708, -8.0739640447604515, -3.3367864814164028, 3.0374065023865104, 8.0080286921171826, 10.711993271692345, 8.6119291624602106, 10.926957223041676, 0.29045126210502026, -8.1587846895130873, 8.0274389539045909, -2.9453365652242041, -6.5448805075983145, 6.0833041931893339, 9.0075953200278462, 3.1312146796530302, -6.8006849703358769, -17.775984097862878, -3.5369907505502827, -17.576852096236113, 10.520521116512336, 5.6330901972994001, -11.836467222517808, 6.512983517744197, 11.099469938581883, 4.8689021298621959, -2.4840163146975192, 8.0459475068645521, -12.445118938675833, 14.454596000855354, 18.749585441555716, -4.3142804847329792, -6.8140088104694048, 4.1938343604915413, -4.7390036585400539, -17.047960923737332, 10.043538248830409, 9.7312884784260216, -9.0825885775800721, -13.400536391049796, -14.633811808024046, -6.789844072222313, 16.459902474177767, -10.704285929525481, -4.143102220069526, -9.9729425722486944, -9.0733585329518576, -9.8252388847239356, -5.782652929259938, 3.2702429125204531, -8.96578492151286, 2.5738390571445646, -7.3003453665291635, -8.0675295362665729, -6.6523497704239851, -4.7114734355173855, 10.817370657802163, 13.229340132968971, 13.936824505696832, -5.1449108589254182, 5.094805455505635, 9.0851667046369275, 8.6935818878545188, -24.541887783667313, 10.200171777056864, 12.926037368839031, -8.3872175171792787, 8.1448038467622084, -7.8438775464753672, 4.6813748298043523, 10.472220550456475, 11.662260406917614, -3.6150086659137828, -11.822927586612508, -0.27115354452394252, 13.465234854471303, -3.7022629500638824, -17.032244486703604, -1.1420650868975353, 12.524864252729175, -8.5199248989400953, -11.953891355961096, -4.9768544809496795, -10.750856257473449, -10.338547847224065, -14.03803375517422, -9.7465993949364762, -8.333170323918182, 13.500209257233413, 14.975504278572, -5.26565375581092, -10.378505557727769, -3.378579617560292, -7.917681184663131, -12.088911879315894, 11.471471648036372, -10.467886695061511, -9.1538487102515216, -5.8725628436732009, -0.72700618400923545, -9.343116993033286, 14.132267328890361, -9.7492192743451049, 5.8447783636706321, -10.314022502884665, -5.0427078887372296, 3.1249540209824644, 6.665534608137536, 11.00125240321317, -7.645872535685398, 3.2994904672053322, 6.1087469276876813, -16.636017120578416, -6.7142903845325383, -3.0637836635521074, -5.987429177711582, 4.5867414144010388, 11.903338873262948, 5.546621915691226, 8.877828171790501, -9.5325826476356177, -17.925038057734707, -17.95754681311406, 8.7021632908222255, 2.3500014615901241, 3.9781454540883514, -8.2968266440677425, -11.584776302147445, -13.871114693191826, -13.808169957609348, -15.365811199934758, -11.722093398446583, 7.9065699610447933, -3.7867986204958983, -5.193748074992663, -7.0063567970532725, 16.155003698975008, 5.6285796526630731, 1.1008459538509225, -8.9404468905550942, -15.492315017914086, -1.2254804022379275, -17.53578378608163, 7.7334490937841336, -12.575066454491562, 6.3539397107869613, -5.1940384700204669, 15.478815908248222, 4.8153649025360403, 10.549527191598537, 5.7586154485672525, -9.1523285568131882, 8.2301933431081995, 11.076049644121628, 1.4048748346148339, 17.680992657656397, -17.156282141042357, 3.9405618842675247, -11.022968272456895, 4.7039306505329463, -8.1033152382041447, 9.9320461759506689, -8.6859035771239075, -10.416803628381452, -3.832332560855745, -5.499421495065147, 12.037089144233898, 9.0578434364707388, -3.7499073524213604, 12.145318983903506, 3.2868973900262204, 6.5146639369717629, -0.11912077698912106, 7.7687677759847649, -2.49234974854433, 3.2195262598332541, 13.864824607825108, 9.7585587656326886, 7.4620959132744549, 14.530253585432856, 4.1460655399977071, 17.133860547348835, -0.21658147838314543, -3.7441443662962248, -7.1864742485171842, 8.4883177394567841, 15.567779522064212, -9.3135632329246416, 11.773164978389989, 13.375249050157439, -15.096103139523713, 10.872541583022523, -8.728983764197352, -1.117019795319558, -7.1802026193677921, -8.0663754418938485, 12.138614601630454, -11.500707586920139, -10.339554937180493, -10.49665361370926, -6.6853747836305537, -1.9202095928289293, 6.8414250695767178, -15.668081706539194, 10.026696627862279, -13.046912685857212, 0.96073616083549684, -6.4951989518546682, 7.2727331875764252, 0.12275884589746414, 8.1031294499185762, 11.748755017674974, -15.961396688615034, -6.51983232314441, 8.3790045327367793, 19.882188000935049, -9.8802908125151241, -13.782260526035202, -11.711868137791965, 7.4910613330567655, 11.316626049730003, -9.1713170036896514, -1.3558918513179827, 6.7925213853142195, 6.6380651744740211, -6.8829192924386522, 0.87177461205081652, -8.0191184910356892, 6.3367390325000068, 8.8409368391837333, -2.9806062674634788, -3.5263764896228627, -10.133785537733756, -9.4693079587693259, -9.7921417244860152, 0.51861812019185616, 10.09230254347956, -12.971764905884083, -12.052273835705604, 18.583085064671192, -0.86204580890364102, -7.5798316728486936, -6.3042697708444289, -5.7839575127892955, -0.78031489164027179, -6.0756300205878695, 5.920047464233158, 15.90125420051865, -8.2561890220056036, -6.316730427890862, -17.112560781913842, -15.618378467966808, -15.605165881395044, 5.7827066200739683, -5.814448216322095, -5.6579673713480405, 7.858747062543558, -8.6800762584169533, -8.853084676252994, 6.5398358942397392, -4.0769566859583541, -10.070967930641229, -7.0444315327388098, 10.713537398853527, -8.1858054951247574, 9.8392166944600792, -13.273657253630088, -14.782824983527521, 9.9738045937556752, 8.0727677463103511, 14.051009379403297, 5.4554221310966806, -15.51431224767364, -18.95094561196472, 10.452335718661404, -14.373041203117644, 9.5424493026970065, 12.041271865149948, 17.745166603125458, -13.655476896313528, -9.5246702220468933, 8.7645428450818343, 11.009556926621658, 4.4129976820718504, -12.601276089992229, -9.5125587488883401, 10.369218466609645, 13.637847207772163, 9.7106767556102369, -9.5153697082252648, 10.617905798941301, -10.171392984479089, 4.9033786019499654, 10.785571756935216, 11.517977185627027, 11.995050011235344, -10.765606388919098, 9.7124115109741194, -9.4336423513088103, -7.0799866499499524, 9.5573396626749716, -3.7400406328277387, 3.9540016242832605, 7.994573528898858, -7.0926119932432652, 1.7747890555450034, 7.1277441127715875, 10.31968262463773, -9.7427242346209866, -4.9706229908463513, -4.054729205207865, 16.644700577232069, 12.446337049019133, -8.8266798630275254, 9.9533330349399822, 5.8985788824886667, 6.4254992407320772, -11.330274874165758, -13.621173112468961, 8.6583130537753785, -9.7467426564835247, 14.019625549829424, 4.1025672798571255, -6.5243455781343291, 8.1179973526810585, 5.2868657574152893, -11.404734998713046, 9.4001119862216314, -8.8837391303153623, 7.7029578094612781, 14.205110275793917, -14.157972838622758, -12.835297828097444, -11.381216873394536, 11.348319892129114, 11.774800999444416, 13.115060784080129, -14.714424435227102, 11.107448445172487, -10.261586453503945, 19.217080651953655, -14.700221149884923, 9.3055840164795267, -7.0684493200274821, -8.5129268466286465, 12.827336358015138, -13.690486404607888, -12.079784957188663, -8.4049758507179604, 10.196261124015754, 7.4495433623347793, 7.5202963684893351, 9.2973011113675526, -10.041509871827305, -6.9513248742528893, 6.7356155756655234, 13.909493816324378, -5.3404146005425579, 8.2096549934361089, -10.182158508949881, 7.6093153509572931, 7.5296889052686655, -12.394287160493166, -10.829602612631144, -7.3124772964041211, 5.1296451149748439, 5.7371649358467129, 14.147479898284733, 17.780386744613317, 14.149104045409134, 5.4181418627493398, 2.1898190479949791, -2.1708656743846504, 11.700068807022188, 8.0902996039934596, 11.56005684486502, 13.903452567230378, -5.2245020700173379, 6.7443105190558361, 6.1193142091528268, 8.8016313720455379, 8.0768030756167306, -12.839067800880638, -1.2830901294340233, -9.7878975688885284, 1.8645477064148943, -13.974692533580448, -14.857731412966432, 7.2303550022498513, 9.8062609888668142, 3.3278991029209983, 15.032376273333014, -0.49801478656576625, 10.077175027562221, -8.9735194962801099, -10.235221682526202, 4.5570596868834752, 15.726532933993642, 6.8757914496828327, -14.729377843192212, 12.167391329176921, 5.7539347969768624, 0.48952544285513888, 2.4543908592831225, 11.257709673973242, -8.9874216419784538, -12.852189526074815, -2.9421713884855847, -4.7431055851061448, 9.0271745594553234, 0.94219527722910723, 6.7616955013871047, -3.8898503941585982, 6.8294182031604, 10.167070228627409, 5.7844531203034171, 14.427801187107544, -4.4339900159707417, -6.3113030093534128, -5.2080910080771003, -8.2150554052359741, -3.4738142152033902, 19.811997586747694, -9.792139014132422, 4.2054775232685886, 1.1862726852927021, -8.9696414965465703, 17.03843493430967, 11.619001614802277, 11.495144908831962, -4.4987478490423758, 9.4848886845267248, -11.077080611002563, 4.2507486883943866, 3.9408293058220196, 4.8149498312429637, 12.808930733959476, 4.3710690282483187, -3.0499835755729792, 8.3933523380044619, -8.7347974807205393, -11.329742354216993, -7.3448458877833938, -9.3568981730694905, -13.564284597457476, 17.95771511316574, -13.828593117253744, 9.4721834503346507, 8.9318657174834524, 10.55666510138199, 7.8641845481086392, 8.7199534064833948, -12.387154026094619, -12.267566772355323, 11.495709953023843, -6.0056535952698926, 3.6624945771183075, 4.0383886124610404, -8.7930635410121187, 2.3941772032131632, -6.173478947867955, -1.8157670205797287, -10.032402438433051, 9.6184182552765449, -12.109808963645667, 7.486517747919498, -13.476166097704631, -5.0446331966972275, 10.776335775341987, -5.6846966203517937, 6.7152716615976056, 9.8681202923675819, -11.598779795710493, 13.508729060155845, -1.2440233508756258, -12.813026981689468, -2.0889856342157977, 2.9985539708264048, 4.5334945821026871, -6.4388481193702214, 8.5100323825881699, -11.680469594870019, -7.5127903668750857, -8.6224230687650287, 5.5911326330375433, -3.5923542399401915, -7.7762287341035901, 3.168850391514404, 12.408893643198397, -14.794116574724242, -7.0600184425157861, 6.6862419677158096, -4.6942430724053663, 5.8848234508115915, -9.3764550520798284, 8.6974679621831363, 11.149167498318171, 9.6316081265039113, 12.861435187502302, 8.2813864372376838, -6.5239712912096026, 8.0017129229235628, -8.3170860531825674, 9.8084833497484922, 9.4805867080525932, 17.910827544782947, -10.757043091274724, -17.314809948301299, -9.649280148187108, 13.759896753218332, -10.998439056183795, -11.186617615490665, 6.9991497087209762, -8.4727056349033241, 13.896627638754673, -13.329481761259695, -7.4445754132635464, 8.9771081657676088, 12.794499520786585, 18.176470074804723, 9.4507759160782268, 11.029010554066552, -14.710045020078885, -6.8851568829262328, 8.4640336972524359, 8.1748496328462945, 12.053805056421105, -7.4527756525909359, -11.579587394726165, 9.279460015245947, 9.4393155085720117, 7.7509113211927971, 14.315942571170485, 7.9883391993774806, -9.7307158194311896, 9.7270282543036615, -6.4400171852199373, -8.320396491967319, 17.027720003105944, 7.9088061318233498, -6.9662181381811319, 7.7440903291830248, 8.6835410865248903, -14.725951439993025, -13.65323995114823, 5.1915728226377169, 6.9332430729193453, 13.509622186196918, 0.58467227666761168, 1.3594487921408738, -9.5031391731053088, -10.293746605785483, 1.4609130729849051, -9.5213145461700357, 7.3522665777916991, 5.0984133233310844, -12.085784131269749, -13.047710820458079, -12.236720883437403, -7.2607844001656696, -6.7156109720545389, 12.974343871859906, 10.331032165775552, -14.595868922755482, -16.515482275597275, 5.1852148493667212, -2.2584173230432225, 2.7573407611881664, -5.7248712882073818, -8.4038204979667803, 5.2602206584373707, -16.786220270373605, -8.505222795605432, 8.0393368253871387, -3.0364416165074561, -8.0253326219695786, -10.244487348944496, 8.7677985282707862, -16.64905159819979, -6.9414375043461796, -13.792120018019242, -11.520571639337666, 15.997074750795631, 5.1571515901374614, 12.011480432844102, -0.66154822971732552, 0.6809223534568305, -11.149936722480716, 18.565726411489109, -13.687163769231971, -3.6279553797045336, 7.5040200498419987, 8.0177420186038937, -11.92371969976551, -10.494591034625103, 11.978188256211952, 4.8139792665278112, 2.0276526555698693, 3.4530936910505243, -2.5078901416589794, 4.2361215553760694, 8.8980252911718622, -6.1080037745454145, -5.8943982266039257, -5.8465806197454198, 5.2882382288489254, -9.9868601088835121, 3.3115848393233618, -6.1518947243701678, -8.5727172146207593, 0.86317951109219171, 8.4192432326959992, 8.4194420403586445, 16.523520926224748, 4.9460289842159337, 14.61523168882279, -6.2384946517242801, -4.4620883807322542, 7.7250368015542179, 14.500054051314601, 14.151224316305482, -6.1879519779248495, -2.7212295586905411, 6.5629586951270671, -10.482198394547403, -5.1702702177846724, -6.6638561248768227, -10.225374064472188, -3.5846676771508745, 2.5527508818121447, 3.6391349429527482, -8.9953388429520746, -9.2417485425484287, -9.12945807693891, 1.2090788910674934, -9.630853551157216, 5.1515793612794791, -10.011254323734802, -12.61349255708639, -13.927778119790645, 3.4056253326121246, 12.068250724813156, 9.1910784498640208, -12.709192819289633, -7.6486128967644529, 11.067689364867803, 8.9893153079547705, -1.6385475824288549, 8.9123970217632245, -12.883575420679991, -9.0371785390987576, -1.7686534068752013, -10.406335210290218, -9.2527616771795973, -4.0434190287293665, 10.983497522148708, 15.093053604538387, -1.5142378602151647, -3.2411399100271918, 10.944473334861055, -8.9394866509964857, 9.8641405898420818, 10.202973250156212, -2.4112327374440925, 15.169414332276546, -9.2420519730863706, -11.729059265309118, -7.0691394276780031, 17.896668657613908, -12.212623000578935, 9.7541379207938412, -10.261520630630978, -7.2137735752266341, -0.50093887089907907, 11.217935364062654, 11.758529327117524, -10.306983843668496, 7.6875480941091405, -7.2653149497928009, 14.26959242718582, 5.2602691866731286, 12.115786454898007, -7.7760266191642371, 8.6845952325756155, 14.451174760234439, -8.0271429445729154, -12.200958154973145, 9.6301740267921527, 6.4792620727287229, -1.2107082007701655, 7.1453868368230911, 10.372100346865585, -3.7046356710377353, 13.618489604283125, 14.774146173194307, -8.1296078621505359, -10.042457463069148, 8.9277404625167947, 13.941142486163608, -11.923804624178089, -12.287479094879695, -9.5607214095721051, 3.5134354546682105, -3.2118861602483855, 3.2586988712462297, 5.4377916681685745, 5.465685336701597, 7.3269299342768415, -6.8187112739529958, -15.457066482245729, -15.863114104760093, -11.392836030182616, -6.2231646336742177, -5.6946580732567078, -0.12054977865483564, 16.180926553252661, 11.378965473010075, 1.0172865269701592, -11.428245638293065, 5.8537661543134307, 7.4606083163453523, 15.806102204127907, 17.663486354735731, 13.393445073535254, -12.592653293633267, -7.8594023873229713, 8.2731824550410469, -7.7096227625427769, -3.797994187736756, 10.57439107200813, -6.1890944564964636, 13.848252215313867, 5.5608104876853286, 7.715450280896313, 12.485414668991902, -12.914020693523998, 1.7226826367869563, 8.1714019985439652, 10.986144634157721, -12.026111695925035, -5.8276979734574184, -4.1594376502380772, -5.9915197466054728, -20.790381542951796, 8.5473752794631732, -11.821961410088885, -6.2633191674745454, -13.324424499584351, 4.4359567001634943, 5.5901099262818423, -16.026794681392406, 11.146610731428918, -5.5799373239256003, 9.3586712605770401, -12.901383218171745, 16.924692493561125, 12.342403248858647, -9.7927013479707092, 9.3995592031531459, 20.564352508527435, 6.4084980960953377, -1.914969575882757, -13.062687976283243, -5.9672724071060284, 8.3619988063118242, -7.0327318931875604, 3.8820053402163275, -13.929507583511796, -12.070173527090596, -4.5562181866251237, 2.1500258946736981, 4.3411268486569279, -5.5508998861763938, 4.0867857187305887, -12.048371959047554, 7.7208884763159062, -0.28618439116313671, 4.7103454121649335, -7.2593849542605628, 5.9722728804203769, -9.7793294958592529, 15.055495847608924, -9.2621092349957301, 10.708264470470867, -19.295178071022541, -1.5429531530801917, -9.2957096175507239, 8.4504278351477389, -5.4815184480042749, 13.222096003137574, -16.61024243229717, 11.263931613306763, -11.480221960078653, 10.905274136169979, -15.048986352665642, 7.9101002611317055, 4.2031424891161224, 0.56894559008391909, 1.7204890572791447, -5.8203449132244787, 8.0918850963130478, 9.2487791997682773, 7.5605820317777743, 9.4865148321502062, 5.3245192801717023, -6.4731250578077741, -14.860399433417449, -6.9953105573889358, -6.8322984055784008, 15.860067151063904, -11.254002684644968, -10.564877989026145, 7.1711824335463366, 10.802265599100307, -6.485430837506045, 13.127502081458044, -9.0765346156370761, 6.4716596599652405, 10.786797223952554, -7.1498649862807593, -6.3155763335181359, -4.5977036331039978, 8.4663199773063447, 9.2713482496036939, -12.945417687672462, 13.368304866123649, 10.471163770684178, 9.1602792500133514, 3.2745118484936455, 13.67592225504449, -6.0110505545955375, 11.64645052721716, -9.0613792217970666, -6.0805752543147067, 17.424722272229776, -7.9367116097541714, -8.4155350011223256, -7.4653100054422028, 12.349168033297483, -6.8305278993599865, 11.598406799430336, 9.8206521920580947, 1.6301930576177086, -8.4162124281899668, 4.8582834807432453, -3.8450454854573501, 11.801494110400265, -9.2627975357438572, 3.5562729803965443, -3.8874539253246931, -6.1729954724127722, 9.5829128813391478, -12.291755258462466, 10.552669523928301, 9.923212359204836, 11.206000773742145, -4.0020915571456204, 5.6859671308645545, 13.363069495497923, -11.467056869226994, -5.9936294342163636, 1.9690754612055845, -15.62010741543013, 12.803917096070535, 14.389056553433326, -9.7502242992702239, 2.7524440556970875, -12.990040174838372, 2.1198661124081397, 12.255847203419847, 20.256703111621302, 14.985208893207879, 9.2135163379452116, 20.45261985950021, 10.557627664100822, 12.264203352611055, 9.7773986915854909, 2.8954438600292312, -8.2179048257810265, 8.1597406054123933, 13.047920937393751, 5.4709800769774564, 7.9398715593822899, -8.691252895531937, 16.14635896165839, -10.141845225867687, -9.1097800064036356, -16.007845954102521, 0.48695293010215607, 14.742398381852254, -13.906870710304331, 5.5651950654118147, 6.7979564186546204, -13.835394297869396, -7.4739339633812749, -22.175297887770014, -9.5064261221589206, 12.802550303472998, -11.0504308657042, -11.700140824989083, 16.737304324987711, -12.808634660095572, 1.1953293963554319, -15.273191964444301, -13.965760240654076, -8.3346572109927717, 9.0099924341840349, -8.9783896144930857, -11.606954480275437, 7.2533828116969712, 10.911607070936354, -11.991126193619641, 11.25900728802193, 12.966329743479223, 16.157352155830981, 11.148162086199683, -6.3267940998455634, -5.6484589346865013, 10.642656618886736, 9.3573367986259317, -10.901355997390375, -13.680427637102545, 10.565345460488684, 3.0228764258397089, 10.951589690880219, -9.0433075197572688, -12.406176320124878, -0.066524505159634262, 7.5260652915794841, -5.9032373349924878, -17.023974036311714, -7.1371762723391567, -5.4883456996402025, 3.8829428644305395, -10.012306328122195, 0.18605677744032958, 5.7586435846188353, 10.620093957741931, -7.1087775745866653, -12.560913762416449, -16.477297265407753, -8.9040127849196065, -14.589971709595272, -10.658294584730728, -8.8075097417950552, -7.1214824215853678, -12.539396910565111, 9.565864047385622, 12.844310399115948, -14.349669695022058, 10.27170291282148, -18.602342514141743, 8.5583634320554225, -4.9370326753189877, -2.1382722527216274, 8.2073659384963786, -7.3732813689060732, 2.403264814138947, -2.8005536063568806, -7.5845935705146426, -13.779475315057411, 10.981204046751332, -4.1731763035357679, 15.871386103925467, 10.917116574468329, 0.80707983804068206, 12.790445864327342, -3.116302572314094, 4.4957628462854533, 14.079577538787566, 7.1226099286799922, -7.8502869519323975, 13.933901453879173, -19.700422912615601, -14.243844584311592, 7.0725920309619212, 10.332585843706537, -10.845203407911576, 0.24231486603821201, -4.010036765106368, -12.998698334858497, 7.1339997379283391, -16.057450071172088, -5.1660849155794875, 15.518273493981818, 13.181443280533991, -14.320590440388848, 15.137001600853049, -13.187637858202674, 12.240158386179877, -11.210103216566063, -13.194037906486583, -8.0391954352747117, 15.317310842099767, -15.108473709579298, -14.253152712936174, -6.691756891954971, 13.66845665060522, -0.31309130846603073, 2.9234363919361646, -8.5151074390254919, -7.41413904586706, 11.28088164841861, 8.4122869650024406, 3.5256072654603212, -7.2527553003079994, -10.408109330313421, 9.9160539281727544, 13.090530793420285, 13.252806116246937, 8.809461873970303, 10.15538641054647, 6.3403228943364933, 9.959071627882782, 6.6996006552526728, 11.443622119547575, -13.950181644460212, -4.6587315033740442, 13.272647969577896, -0.52216790901174581, 6.0998404476526691, -9.6031992971915585, -13.780500603102247, 4.7874134131263686, -8.8596952931981772, 10.85639587760547, -12.534681927829213, -12.092645714051185, -8.6391701943844605, -4.8885656161138522, 9.660913373000982, -1.0379079296202014, -9.3565089146677742, 5.9411223993844029, 5.1576887564066709, 8.6467421625567198, 6.1854396092087365, -2.4087898054057382, 11.758245385312559, -5.8302756487886729, -16.761840510741479, 6.1253859174586323, -13.103426397686144, 11.514572465256583, -14.597527659154306, 9.4987085193677441, -2.2754109819414654, -10.39419192274306, -17.821637810038638, 9.5875357765851206, -10.355595326000792, 6.2790668381068189, 7.8149827894831558, -11.861156478717344, 9.5488287652000583, -10.552949593799564, -16.98950918002506, -10.835301066527878, -4.9896672258342694, -6.2191845439553486, -11.694221412742303, 8.1128454544927671, -7.1327951793530033, -12.389634386825444, -4.0686237683693713, 8.5194595893072087, 2.7623505271434041, 10.105013714636646, 11.118801729179557, -8.5972251554248107, 12.260440091179616, -14.295932934045686, 15.656949639011085, 8.3668325283479845, -10.909619736430511, -5.7058231812857594, -8.8792231004396225, -12.772901358327463, -10.173872828952089, 15.625530187647135, 9.8172850294445819, -14.666220409384927, -6.9229469558779426, 13.2357386324794, 16.416641100773294, -7.7106007484641959, 4.5769714931500189, 14.014974583064099, -9.3194159833794838, -13.619447262552601, -5.7549461460603641, 11.353782674327727, 5.3123797354937929, -6.2780291598741282, 10.283760630633777, 2.8416570220436186, -8.7924968028492412, -6.2145129268769326, -8.4587877594743066, 13.21973825364071, -8.3756195269621116, -14.249415522525007, -9.2323116721281888, 12.911316018767248, -9.277212873988562, 6.716305209767679, -4.9026416439016236, 8.5848515967203962, 6.3894308876341093, 4.3142065842571071, -12.53857451184637, -6.7276552671633283, -4.4357762680528854, -11.146937264504627, 5.2427117742275726, -5.4735275512258177, -3.5731654527606547, -1.7709635850453831, -10.860422946786615, 2.6061236810203359, -9.081063810087409, 17.410378564758602, -11.562271849072657, -15.109645098589235, -11.611926301280375, -1.2930095073260202, -13.062975531892999, -14.147243968457699, -17.161087985155845, 9.2826154476180776, -13.266400217353009, 8.653694537898172, 7.1765864914171047, -1.1801952981507955, -14.913000943431788, -8.360713646983216, -9.7487048234202938, 5.5607906117589812, -6.8847495555005649, 12.135286029289524, -6.5726420141275721, -6.2708900885105674, -3.9871226614456905, -1.7065449333662257, 9.2413980680159806, 5.6109535779264972, 10.777876030569464, 13.517695426098815, -1.4097374670893166, 6.8559516613831848, 15.778819010475557, 7.915591437510817, 5.2510986407594995, 17.28606471248229, 9.7631667539339002, -6.7645527303317934, -14.786188403271789, 10.613014385092955, -5.4286283498645256, 4.832380760520854, -9.7056418220859229, 2.5674523559575797, 5.6570084224339992, 7.7122248955885961, -7.6527439273655515, -12.134048817406615, -11.941614228572236, 6.2729422133737236, -14.442283251676416, 9.0248009672963878, -9.6470625626903299, 4.8059610080845125, -6.0434803225273335, 9.5585090511858297, -11.233511637096294, -4.7272838314756651, -7.7200282617113185, -7.9060890668787476, 6.1284868200977645, -13.169729390434615, 11.508050321996537, -6.7743354289640365, -7.139861200234014, 11.666341425041699, -11.740039036778199, -3.4764739755291716, 12.373141498019594, 4.5345952437902968, 11.31832376359478, -14.579887645456397, 3.1465160453936818, 8.4251430916775725, -4.752562912242789, 6.9415998674328367, -5.6167379887514626, 6.3561211582358341, 0.47321530932012074, 11.649692884500945, 13.388781200324246, 10.33961869502215, -7.5458338362989776, 13.615088497717474, 14.816185564321776, -0.54012490501556154, -4.4154331283717081, -5.7552713884915052, 9.9330120943453792, -0.83508107072409921, 5.5921318500621071, -7.766548964375648, 7.542532883751802, 6.4600363731145398, -7.4284231255591973, -10.057876793723317, 10.313265410781062, -10.16191281293359, -13.823600904064632, -8.0242560308031621, 9.5162645766365035, -6.4523072190544797, -6.5950575417916228, 8.1548439321874291, 4.7423131293413787, 17.951658376336923, -13.632282980910503, 14.90377954612218, 6.9734171710592294, -6.8104705083861701, 0.42653321155256052, -15.582049920923927, 10.065678352943644, -10.837777555324999, -1.6032427746573299, 11.353931098453048, 8.3048835250497373, 9.7678727021578275, 13.302700370215392, 6.6502142699217339, 7.3539178284520261, 3.7650419668838242, 16.069166542560598, -3.9062359013363892, 15.49968253336619, -11.93181100869136, 4.8725969871315318, -16.361950811590066, 8.8590621997714489, -11.618381589151797, -5.4456400777867211, 4.5022421401458406, 3.9805429554379104, 2.7721016049837304, 3.1025288134841538, 11.319142806637647, -3.7358641070056167, -12.649035101587346, -8.5398583799688517, -1.4954904734778918, 2.8243851001765097, 7.8276107140656057, -10.753812220727593, 10.018148172630438, 6.7707798322435906, 7.4561472033959815, 6.7346819233850157, 2.5155524403304175, 4.7270961717554743, -6.9262359054306355, 16.758386229619624, -12.476237927984346, 8.2481971895098347, -10.635029683876461, 5.2645197954934559, -3.6192776018869761, 11.498933466896935, 4.8409026284745957, -12.927282840847173, 12.37329456846536, -10.743604900032471, -8.23442355974435, -17.477812162148659, -8.8538798907705232, 14.867540311683406, 11.384561707857021, 13.580476507950065, 8.7732454274746843, -5.9443472039020646, -6.3416623252691879, -12.490426499978449, -3.5834570525460694, 13.605738035951063, 1.3320840297518255, -0.28501971350495253, -8.5250847103928926, -4.1564691677316246, -11.748106081586172, -7.2665790070827212, -14.034318247591797, 8.5019355400237355, -9.7290313992054624, 5.8293474172153505, -11.67832196230883, -3.6743845111367621, 2.9538037098482617, 4.5686747136089405, 11.580097199330536, 0.6609922956440013, 4.4079244164038656, -0.739867123394089, 10.072401965820758, 3.9113086507465464, -2.4793539902599937, -8.8591449946204861, 12.365719775495634, 5.0961647623646762, -10.374552313415913, -10.169113964300875, 7.7445033354447919, -0.17125566553424465, 14.777534889572108, -6.7190002046901665, 4.584757693699987, 9.7576507971790853, 4.9707592829127343, 4.7058369325599161, 9.8474915330435024, 13.454689772092728, 20.70986390718895, 12.37090558536995, 4.816207693438959, -5.4305901296079204, -10.807830342219793, 7.1507761813457842, 7.2910315590684833, 2.702844584947969, -8.0842533213856438, 10.806318481172813, -9.0612454464875931, 5.2022614246922556, -4.3721387144662955, 12.006216151780054, 0.91626416282621881, -6.281416327478448, -21.015726019497283, -12.441362130467233, 14.823681627972853, -5.9737733837951597, 5.2890983143890562, 12.453299560205791, 11.44357307505399, 12.792338207392973, -11.842251891471685, 12.628993456477263, 4.426428903833437, -10.357513998215616, 10.687506904818898, -7.3359369555237022, -12.130893191437801, -12.119373930539281, -8.8904465456031474, -3.9592431900029155, 3.4912699248569865, 10.021655886437408, 11.389852318070259, -8.2140054336137727, 12.916396512044814, 8.8707694269182404, -3.0146219794404625, 10.908940857387732, 7.2183407791594956, -11.273285688877968, 18.925065607086726, 9.4419637821611371, 5.1526960269597319, 10.278568754729992, 6.0868565632983582, 14.595941198851291, 2.9627540717985865, -11.664151201209767, -9.8451428180586156, -8.3297186886176906, -4.0965466054696327, 4.371301602399476, -6.6873268835396882, 7.6497678945883765, 10.142948210715518, 8.5549105706425888, 5.7372054620861492, 9.2261204501353831, -9.0052392161028063, -8.3173183046725825, 8.9418770860670342, -12.710146347496487, 15.504315947365392, 14.002910153900046, -8.6895015271525082, -2.365346192988262, -8.3209697962844338, 9.9739282375052944, 7.6450334231194983, 10.805316553794658, -8.0294321608432178, -5.2786779082757533, -10.907931831464452, 10.434947251589801, -10.178756757061942, -8.588918296756308, -16.008003412739821, -14.711476603033734, -11.131297491758239, 10.779696355668207, -14.218903652421291, -13.07747618174365, 3.0513738579016545, 9.0528751647383654, -9.988237355702049, 4.0855436023983245, -1.7271018037878672, 12.576648010345217, -8.2484699027070576, -9.8949664737691982, -2.9333072415924035, 7.6216888249631571, 11.416747027707636, -8.3411207267233163, 8.3472897818956664, 5.1773212671886935, -12.135391087757361, -7.9667189023640175, -11.399331069906735, 7.3378951214623065, 9.110413809684875, 9.5271199299692295, 9.0916501285599338, -13.651140846822798, -10.657679592594063, -14.760042009354954, 12.365971193057486, -8.5456941261815089, -17.385132524492416, 9.0477237505417865, 2.3980862318742111, -11.35168124684207, -8.3915288830926436, -5.6142527235712789, 2.9764984039323759, 7.5089204982023245, -6.1829145921758553, 6.9826006768764168, -6.5157940253555227, -8.1210656665448475, -7.668687646907709, 13.557807110499484, -0.47689062439860214, -5.8959077644906852, 8.2112998554058265, -7.6926854402799272, 7.8143300459928779, 7.6696047144055166, 17.390971400518151, -8.8551571933003235, 10.808600986091362, -9.3160059068340821, 14.597810052185789, -6.2784256458854255, 9.0317914209379424, -4.4387863093144295, -12.230661823448365, 6.4478010626096838, 11.637680855506359, -5.925634664568129, 15.567647360060445, -8.9655126923073496, 1.6378635408078031, -6.5571492457974827, 2.2459347250391324, -8.7278852724059224, 1.9522263544989593, -4.1269423175622251, -6.0511449443589953, -6.396706251064054, -4.524236272358432, 15.333972030957289, -11.138156751379457, 9.3483166773367063, 1.3650811650357257, 13.060319385372006, -15.9940004354346, -15.80828958854179, 3.675830033052947, -2.6024401814231979, 11.185151959519217, 11.640923470919059, -17.358112622331948, -7.8324230114019358, 12.230512366807387, -5.5457409217090934, -5.5418787969037417, 7.1279784938251423, 10.73660818676476, -9.0782728234751744, 4.281979189393577, 9.9192786036259584, 10.586491510155625, -6.3141222933478023, -2.1996754424320568, 7.5548136249454529, 4.4022445477889107, -9.4143548298198194, -10.201893755039519, 13.931201425442868, -2.2698384949545698, -10.579983047728001, 13.51127730879095, 10.565554932102074, 8.1647534689145935, 16.644366558417868, -13.119843912849221, 8.4055282143269601, 6.7340741588579336, 7.6330963805743126, -10.41437347372432, 9.476716000460863, -8.223064919562324, -5.6563409010634178, -9.6918549632136202, -15.210174436508188, 13.403836827339145, -15.061817940960925, -12.723458055571076, -7.9070917686436459, -6.5985018849503057, 10.69420199445106, -9.5230835036149664, -3.030178376547755, 10.314795728045368, -10.371212254338326, -15.298880437668403, 13.103627221980929, 1.7446184318650735, 12.837596466073093, -4.3212811233922679, 2.469475396736347, -2.4731315346686418, 10.375460669062887, -6.1731601586596536, -12.197629840761127, -12.546212804528841, -7.9114559541859588, -7.6376040212603602, -7.1813303845913303, 6.077508682821084, -10.602106244397396, 4.6913620956006259, 11.722654312575846, 7.8103118177270252, -7.8330447148903524, 2.4140293060940845, 7.8286851111362559, -14.292408958117155, -9.9668515042743682, 10.837884678824144, 13.551763280116345, -7.5792922479514875, 10.217841217450923, -10.506554793512848, 1.2173477926859024, -13.359553263436801, 2.2819782977613929, 0.36179344750487991, 13.324677982177514, -12.791944560799728, -15.326887424794496, -12.172088759146694, -11.712837669991464, 10.876790384940454, -14.6840911903316, -11.194104386500852, -17.06577027000257, 4.5212765662350414, 11.154517994439368, -10.635351699696184, 8.3363268533381945, 19.457634084088721, 7.1884872668499309, 8.2101471484760111, -5.8467729257860555, -8.2507979673788565, 5.6590233767335958, 5.9419912613075967, -10.350515607109967, -10.464713258197657, 14.243379436009276, -8.327667628536302, -7.418154499247092, 0.96836438649033885, 8.3303756589689275, 9.5641643330217647, -3.1940953992649317, -4.057742602145284, 10.340391662053941, -6.879331816797376, -12.852288647577636, 1.3115463364763715, -12.543598991149683, 17.395441160786131, 8.3269518047927615, 6.1059895946325566, -8.4277131199397619, -12.314302302807999, -7.1979553063364889, 14.211351316667047, 13.409938994856759, -15.105726701680716, 7.9394923034759763, -6.9818677198262353, -10.800652938712561, -3.7670249131981333, 4.9346480804151085, 3.5138980216813902, -4.4641141764462224, -21.055732903559026, 1.8466918969452111, 10.123309892032941, 5.0371299054365695, 8.5373871586148731, -7.8443868348219077, -10.905249355794272, 7.4929241203617929, -8.220133898014458, 8.976541798665048, 2.8178642475610309, 8.7977119103552521, -14.65607904062723, 6.2887216338623713, 6.3883586201269953, -3.4738839100100636, -7.4159592419013425, 3.2968043777303637, -17.320091265873646, -3.9006949060769531, -15.446480099240977, 9.3353819020082103, 11.096981317725822, -9.1428237016903271, 4.8194916094778364, 3.807216101304193, -15.900482395066971, 10.451055528314384, -4.2223942597505788, -9.024778897274274, -16.880767212590861, -11.025501807743925, 8.7326617059563176, -6.183936008286989, 5.9011640435584152, -5.9177854805632411, 14.878288799645901, 8.8183674666871745, -6.7508840299696908, -17.047751323059487, -16.149463219973399, -2.8735302640376843, 12.4186576274844, 6.6026407239510414, -8.5611102544238449, -9.6908404520509244, -6.8329976768053546, -10.339501891688746, 9.741806457268666, -5.7590976333778663, 12.722244333419306, -4.4465611521921984, 7.7012615798377535, 4.6680058171109424, 3.5846521894160586, 15.030602927696552, 8.8293573213169463, 9.7054397716787992, -4.0701668630148999, 1.9184729014981985, 14.651761060160453, -12.805800920882021, -7.2647057655566929, 4.1276583671685643, -1.631528541010119, -8.5633241535170743, -0.29247809033464373, 7.0984870073169049, -7.0386385280531174, 3.9525715901018907, 8.1913920501374431, -8.5074544652610591, 5.495575890510267, -12.430708117687118, 5.97276797167667, -5.0804661362259873, -6.4231252291136549, -5.0729442596835499, 12.124041417555082, 8.8499895815144178, -2.4437358139873533, -15.496150297312425, -12.655276658718305, 10.519788030397699, -9.2115779188684996, 3.3950389496073741, 0.32905702242372031, -14.410878771789454, 12.212348093285945, -8.7199237942570882, -8.6760456480297741, 5.2247403230045961, -5.0291643808982256, -10.761369331866735, -19.203770492652545, -13.263125077697193, 7.6266463198133891, 14.153458163923816, 7.1617913164760321, 7.1144889349290796, 1.345813906666453, -6.1874295250037141, -12.498973922694637, -10.82326193399736, 2.5660414233158177, 0.62968686165328625, -5.1908619356096493, -12.587621586720372, 5.3651510943332852, -11.242800406052355, 15.095985948996933, 9.928326280176714, 9.5883246830773263, -7.9859566049726824, -5.9976892857695372, -2.2959998603483931, -14.141721558480041, 3.6056535578269266, 12.926302725362218, -13.639902946440108, 14.875234618340132, -8.6448925055435382, 7.9831722329138577, 11.549891211989442, 11.461459085606565, 7.2857575981701714, -9.2270540378836614, 5.3067440069230649, -5.4862032296572849, -13.6655077858962, 15.174251668117495, -9.3087009876435296, -12.726065673856308, -6.1785093641362812, -12.890235921037734, 8.1087260074266663, -13.889065494101713, 9.0717802682418505, 7.6691475680995245, 12.445719346528879, -9.1119235411683217, 10.402303365724171, 8.3513068163152955, 9.651077177151393, -5.9853047767526171, -15.766675077606115, 14.392598082127982, -16.542441775591964, 6.6176414985718006, 1.1763718926824847, 12.953480602417816, 10.796382841159257, -4.093780496031445, -10.152825642659057, -8.9005024898234968, 0.30327613904854955, 11.390251643499608, -11.75711968512033, -9.5833217575382985, -6.4576917881922702, -15.414144806491558, 7.2439542659341942, -6.8998677787770157, 6.4607186078331971, -5.02639535643541, -16.089115261261789, 16.348400076141484, -13.83645520770431, 3.7481494945197129, 4.0497679674883855, -13.403170854742045, -3.2658758875600911, 15.628774351833318, 12.740734881887544, 10.303588286874485, -8.3367865164010961, -7.954139312420641, -15.819370546545009, -14.742738079502558, -14.079886777226065, 7.2254994683204918, 9.7125046955119299, 5.4490460888017331, 6.061905822509341, 12.617370169626561, 4.0431541884640083, -13.631515821779267, -7.1471186237044639, -4.5176441761627988, -10.94925956117711, -12.565959924548505, 3.3677480120876169, 6.1653584703748683, 11.489096690257293, 10.40210318675167, -15.14537117274776, 2.9537722181208022, -6.6027173882383812, -11.0054480305749, 7.3554833803130384, -0.8174751300427856, 5.6522100640590036, 3.8167044039104701, 6.7172289240850134, 7.028558852105772, -9.8320049598073389, 8.1835307340736172, -10.600978479173857, 7.5248398245621475, 8.1028253740583498, 9.1869660690769308, -8.6633294373089775, 4.862627532230297, -16.393472998261629, -6.5438161130230643, 5.0556454924094245, 3.8703781814319234, -3.6308128667781365, -11.46889345644729, 6.6372018623224704, -9.5794040059520658, -13.805097707279627, 10.114212654730773, 10.067130457147128, -11.901791906683718, 11.19726801446599, -3.8149351883366243, 13.081583529016925, 1.4480272776177645, -6.8162158126807242, 11.181577132194709, -12.714480848213737, 5.3658328127941148, -8.3699479507385064, -10.928108994254181, -6.8580906466257687, -6.9376987651615307, 16.605363795830041, 13.342459450520076, -19.246573429106455, -7.1589316353066641, 13.511443027553485, 7.588546943890953, -9.1724085985991746, -7.1723433683352731, 8.0051341635444775, -12.497826539673664, -8.8986924414821313, 12.1430742948708, -13.488942962670228, -6.7874643817677924, 7.5405544546934795, 7.0330509405247756, -7.3978694385714769, -2.5049913539592001, -16.113762442448408, 8.3461248783746829, -14.140230605875061, 19.817797227178563, -11.727868000372833, 10.536455543413602, -4.1646797322155589, 8.9643278483277911, 5.6997086235802952, -8.194167968474348, -9.4900557800548064, -10.203232798778842, -7.377645683512843, 11.114323708786344, -11.129413925075667, -13.662721026144926, -1.9593914968827952, 3.7651555436058097, 7.8968315315212338, -15.65802913412778, -12.555906061492522, -9.07183312013691, -11.817875487515439, -7.7841327705026186, 13.993369709253221, 12.841312748042256, 17.156455087414471, -16.051522915057898, 3.9786049235545669, -21.015196338966561, 8.7133705303298949, 9.5303853252585586, 10.367939566907191, 7.5160927391312846, 4.9709335199294173, -10.980707406721557, -10.35515831375006, 8.0001897687366093, 4.6646563363280098, -9.4126442740415897, 9.3084575075457714, 10.907637564502942, 14.357584443771001, -12.030960905696011, 6.7442831573909938, -5.6743335188573099, 9.3070095334049068, 20.090631228733358, -9.9182746112164928, 14.211919200276979, 15.008410036220484, -14.859390149365256, -9.8921367355538088, 8.0766461332372597, -7.7625926870490591, -0.75633574808206139, 6.9272468673207683, 12.032245097041196, 14.288418285112828, -7.7456922126886267, 4.8331804438952002, 3.0734583352340064, 3.5864699332256613, -10.370026281044771, 7.0203122786383902, -5.8886780898784483, -14.591739376395635, 19.866814875356418, 7.6929267908141474, -9.2738362896696991, -3.1835699346837907, -5.5513820709870076, -2.5503234375086077, -9.8248725997955297, 10.866645918635795, 13.82246152303998, -14.007190447545439, -2.5586305422062301, 4.026636003024624, -6.5981537981103093, -3.4628917483531261, -12.103573601608634, -7.8855749813245373, 10.963183034776939, -4.4175857409888364, 15.141910696531978, 7.8484691435905649, -10.8830582712206, -9.6305574772933102, -9.0060955910398057, -7.9385853675380273, -6.0883950116234429, -8.1690846784881934, -2.4101816365078941, 7.8648643951348447, 3.6970209436929808, -11.228409719118897, 16.916110739699427, 11.502363483900913, -7.0676447322037763, 15.378261789953561, 9.0105139836539738, 6.0752376646391912, 7.7089815057891542, 12.080838381285085, -10.439009426303196, 15.806810509866835, -8.7437797215916948, 4.2304953775751448, 12.996512499218092, -6.0201583751831595, 6.9365682895843994, -10.548128778209085, -15.742829644825152, 3.6998158879629113, -4.5074702831619868, -9.2552154506323223, -14.754719391156428, 13.758849266086925, -10.863216934147474, -9.9127382622775038, -5.0213654564249106, -15.188096154269765, 8.7245007344899115, 1.2389232398006267, 10.934230779569225, -6.4393708304202715, -6.9707954091416253, -7.3301631279841954, -10.66748552282853, -13.453090921601861, 5.0747818794194997, 8.8974423876857713, 8.8792692732490401, 4.7491945880491624, -11.095540184001166, -4.875603930846113, -8.3300531591574938, -3.0638156715373941, 10.88627584812868, -13.376680633112292, -1.8485091244969876, 14.744568729757839, 6.9066756707444226, -12.320675247555984, 9.3604823575671183, -15.029370620263002, 9.7099911652157047, 7.1718198828984816, -8.4994865580889698, 9.2278770819246905, -10.733545487204845, 10.08197932290223, 1.0713815708786152, -21.494987778292966, -6.7323064920575693, -13.414349901732432, -5.7897001067302565, 12.428527186496074, 1.5509990313172464, -5.7670067032907104, -7.7983603199626765, 5.3335463064093673, -12.190738573154626, 6.3390376704756557, 4.7693671045184454, 16.847048348864522, 4.4191695443961354, -9.3640799647682531, 9.258647726264293, 8.3288417601659468, -0.78367727886888505, 10.131531426995702, -10.412902009852315, 5.8228523774912331, 10.316964914370844, -9.9599099015297128, 4.8739975946167506, -13.714574994825467, 7.2201177386007513, 13.857521108343581, 5.5298435363069292, 9.4128292879404167, 17.050340872320767, 7.5013637742565509, 7.1817720431625078, 20.305121900719595, 8.7898782463512948, 9.4056715022306179, -4.2657243710526496, 9.3214320347269641, 4.4286015748992469, -9.1022450943510602, 7.1954776559592553, -13.253737961625049, 16.717357671317831, -9.884934809799784, -3.1110873357436266, -12.18631321105979, 17.551656649236996, 11.08724495323357, -11.967295990444581, 2.0905271800878444, 4.5701202355251258, 11.23060742868933, 7.9432986724359891, -7.1122776735906861, 15.284491815766254, 3.7490756610617257, 8.0892231418915017, -9.8352473170911257, 5.494233878288437, -23.088232741671852, 11.171550630803566, 12.747326461825349, -10.397856449865049, -14.291332560547424, -4.1653988793688619, -8.0842307351057023, 0.36519824348190477, 14.490243603824146, 11.648414371991864, -16.393779139153164, -6.0342527301237965, 7.775004041472994, 6.5293576672497888, -9.2826990813860846, -4.1652321280906737, 10.997044901921416, -9.7742304172999059, 7.8323286652840141, 10.47877960615117, -10.966088791957388, -8.5206814263866981, -11.353422842622162, 1.1067499539694665, 10.076021320382866, 3.3487383663741221, 15.906508156426158, 12.762425196368822, 9.6389629936392449, 4.105595056407128, 11.174561704580764, 10.339475433475101, -6.5396278423353751, 13.517179684529431, 11.619444305889109, -13.842774719767178, 7.9412677141437484, -8.7824419718098312, -2.718371555359111, 3.3908195743855933, 7.7751463350366183, 6.7011166463622729, -5.11658508259102, 7.992655050280721, 4.6572233317384342, -1.5522752962726871, -0.75028314131586116, -5.193423090690434, 2.0480871728864622, -9.9229041532819906, -10.660156855777927, -6.1084296872528618, 6.5939919856362623, 9.3421604318116955, 10.759874765456967, 9.4603190710786453, -9.2651685788797717, 9.6291171179553974, -9.0687653547970619, 9.5659495525882523, 8.867450098819031, 20.580956392766133, 11.16246991375187, 7.6676711997781632, 12.303655259508551, 11.61514542696194, -16.384840134875038, 7.5507331230791914, -8.9913207437506788, 6.6004868962959247, -8.6285623342474427, -6.0665322670278767, -5.7221075019294174, -7.0650923535060546, 6.410945674454136, -2.1916491819924357, 6.4980816064973483, -9.2978461505686312, 17.085450018375781, 10.43835468231384, -4.9520108636598064, -8.0268242198968434, -14.543949389330887, 13.188409663654349, -5.2283081808484377, 14.609411914336661, -14.753182491604827, -7.6893144702649368, 9.5004286904480058, -10.985432198356174, -8.8642905686503948, 5.6718211501411959, 16.342048556093328, -7.6289272114262268, -12.030225238292241, -9.6381102647731538, 15.77823202532602, 7.4703787538541997, -8.0450075949578892, -14.687546503969109, 7.1364573833147675, 14.846139359714277, -8.1887395819534721, 5.9210675896997236, 13.941404745139831, -6.887849167495129, 7.536343339596935, -2.3430546962671985, 7.7110292424607794, -14.99102970020966, 13.568855544259584, -12.024147334892504, -6.9930701274833043, 8.8530963243202194, 4.1819686905909661, -10.785809880858015, -12.423091249704473, 13.78453464176406, -5.0198517884755329, -2.4966269446427578, -10.814669080592378, -2.4006520332754411, -11.401718246099751, -12.100885963360183, 14.121484767911273, 12.709171910847632, 11.31480469211561, -2.4579101888912076, 7.2201392923650358, 11.820890175097428, -3.0619504320076878, 1.8521915915784701, -17.781126025821884, 15.760743275171484, 5.9369063798384998, -9.0648510234189352, 6.6033877490270125, 5.6320917546615767, -8.1425241167294811, -10.996675777574961, 9.8703862770356583, 7.2788707187552006, 12.741994809114846, 6.7154912002386258, -2.5406684592307225, -6.0010888435617087, 8.728474717846666, -0.21166257380549669, 10.893597158505248, 12.862430790722074, 5.1667782498414292, -11.819488793225467, -2.3712031380379504, -13.222711382467608, 6.5242831109372377, -3.263261041665277, -15.000938752945114, -1.6724084926642551, 9.7172423290600012, 1.1733058374466891, -5.8116717817273651, 18.816725804499924, -11.779150987896481, 13.857695603489177, 8.1557642585627725, 1.4888685099348598, 10.84477620455956, 16.221556560511846, 0.74647986990281157, 4.1512993618499525, -9.2987597333261061, 6.5049670662032923, 15.077486366016723, -12.769578981080461, 10.513358297288722, 7.7114523157501775, 4.3479698461565857, -10.429138576646958, -12.290795535161685, 8.747108697259053, 13.792878917025243, 1.8826218929454861, -6.4623107469723102, 10.502086711082809, 6.9357465361879393, 8.7750688501203857, 12.446665388997239, -2.8267588536660169, 3.2223279910615181, 9.5630128844704032, 3.9597052407582671, -3.8197131545274448, -13.444658882510057, -9.9182787412791136, 7.513070049552975, 10.340486266300775, 11.600431046370822, 5.0451845600566863, 12.74863336851493, 10.364662362220068, -2.4384235209453706, -2.6086234014196816, -10.185100016984862, -5.7981832553469568, -0.38450569435511861, 11.834031259960121, 8.9430905500898881, -6.4549491684852223, -10.505141795839775, -7.3615588314880913, 1.3372828216784016, -9.9318831675417272, -11.049103308701532, -5.626091031807011, 2.7803777342117204, 0.52503417246841178, -1.6806886763482836, 8.3170446234919329, 11.788315338716185, -7.0158325804072392, 11.857702971982228, -4.8488008569730674, 13.253773067157299, 8.20568258305242, -9.0389030015722049, 14.887610867231814, -1.0154383239487503, -6.8086594759283212, 14.887441534664491, -9.8622532802902629, -1.9687249977474892, 3.4266024369051147, 9.2675140027210112, 3.6181986230281087, -4.1340511878428954, -6.5843884284700609, -8.1765271158574695, -6.6959753637255535, 9.1330058007274904, -11.580628686763648, 10.412036890798372, -7.9852535908764803, -2.066028681155462, -10.756565036526728, -9.8133785064660888, 4.8114898712850085, -1.4958379149956031, -6.4667598569271991, 7.7184116648576424, -14.143983800278873, 12.36732920927196, -4.5964111816335791, 11.671988769413542, 7.01089754277249, -9.7847464601757004, 4.4476625882665486, 11.241171870736423, 6.9121362588472701, -18.546226320839764, -12.540231699471711, -8.6150767219004756, -0.092545964682283821, 10.8998139352605, 8.2795712101849883, -14.573994046100974, 3.3125027457401388, 9.0904337928529149, -10.902036425206635, -15.148823388838307, -8.7347152263289125, 7.7391065697158332, -7.919315463347389, 7.9592504585066974, 5.9648188917822162, -3.0106034285134666, -9.0938472573403057, -8.3364039693511334, -8.8986027900838245, -9.5851209160661206, -15.335543519783313, -9.1773884216004316, -10.011785811167911, 10.122745364098886, -8.633738252541125, 5.6251697697143577, 8.1908926997540767, -8.8131518267902802, -9.8786020040978677, 16.379951689509195, 15.466103575511026, 8.5125959576275196, -1.7023983504980822, -5.0160270923626538, 8.5542466792098555, 11.273426369135882, 13.829410869652042, -12.954649410138616, 7.0799135994674023, -14.959793004116543, -9.5643525089997823, 12.72453316249624, -10.77781601559705, -9.0053926092097178, 10.913493735165888, 13.257764256419453, 10.93721165226353, -9.7368734846652263, 12.99363281305792, -6.6567821019994895, 4.6536726929252223, 9.6439124219609287, -10.142082317274832, 5.8908605698429755, 8.9011495383446171, -15.881017409949878, -0.84678824947172149, 11.030375023503865, 12.699876172410905, -14.501436073518041, -6.3718745077042076, 8.7154172506189216, -8.5919297375605552, -6.5064908011803002, -9.8958136528636498, -9.5838858337467521, -4.8928250013172407, 2.7409361524707689, -7.6894330159685103, -11.363952695394833, -13.70607067963785, -5.3469266767749737, -23.3789788247995, 10.326347771315914, 12.689154787984338, 11.671864351277186, 4.8725115464611291, 16.376577944608385, -12.081594440873031, 15.659365725642424, 14.061507482319595, 2.8370432258418505, -8.4830856115755342, 10.144570163744154, 11.353444525450906, 14.458537113108267, 4.791206875640702, 8.8352129273228961, -11.664461988421746, 9.9940575173815489, -8.6630839607454035, -9.5673509344602135, -9.246591750822164, -7.3345027912797152, -12.095298763025212, -4.0184114995793552, -3.0210628120927234, -12.848224924090761, -6.6001975337837733, 19.33902694583438, -0.68210716517027581, 13.194243893359641, -4.0082360578050631, 5.1404823992836182, -10.003310793611988, -6.3394610018939677, 6.6723255926611023, 5.8759314259957414, 11.926921272680948, -8.580642143328733, 12.379442682929596, 9.9509920638225022, 8.0740136700440921, 7.2490974845377654, -6.3898648023378781, 9.2529383018887312, 3.6436181259242328, -4.8882896763052095, 10.23797565990545, -5.460880266974848, -10.639651353010095, -10.554526245203862, 6.4030951998046799, -11.755977980935455, 2.8411247602237655, -12.259188165948634, 9.0075707977810566, -4.7318328373201188, -7.2765223909636836, 6.3179397618510995, 2.6306066922179019, 9.630759721297121, -16.198841216114644, 5.165511353133458, -4.5830181629512055, 3.3750964260001117, 11.548015647303192, -0.50783202101455527, -3.3430631440796121, 10.676416137916966, 11.032319766738961, -13.211604095315202, -5.5770664141484891, -2.9653936980691067, -10.63874093233181, -9.7276984860278368, -5.8417169547552827, 0.94317100452253233, 13.400988632906433, -7.9624495791974548, -13.709842459323442, 12.553687701609002, -10.937940350186638, 15.755977699168517, 10.284565347521939, 9.7272205603442981, -6.6301607508816218, -10.068513769995134, 1.2408468920713884, -2.2009681520313884, -9.56401565076753, -2.5175193826520843, -10.398935686852829, 15.621955102193711, -12.569234547946492, 6.8291257431012857, -11.798025890317072, -12.476239993015655, 10.053724402954618, -12.445250842550683, 8.2396779351113434, 13.824134714657966, -5.2017126426219322, -9.102672620364217, 14.973696859918942, 3.2725609101646218, 13.568564891102868, -9.2433182890042875, -8.2713103750951298, -5.0147865248038705, -11.309600038830599, 9.2590048476162643, -4.0690646525538074, -5.1568273802219728, 6.660030654377203, -7.927437683210643, 11.189284087168199, 9.2168274865844761, -8.6499471634947103, -5.516662441462624, -8.1376904914916643, 8.892945556147982, 5.6785627029778087, 0.66768034018891653, -9.3798027259603636, 12.887278538074565, -9.2998086401665354, 7.3834409357521791, 10.380456754185703, -10.487869873972667, -12.906812701740503, 12.28572872271654, -13.1763395556542, -15.888870724017384, -2.469340653443445, 11.081100710703042, -10.467715813720705, -9.7389749121508782, -8.2681125773150548, 15.184079152116249, -6.9214487756633822, 7.0721797990868955, -12.64070192586945, -4.7062672334588953, -12.847633808878607, 8.5381112828162919, -5.3039544077537384, 10.020211784230248, -14.910200760977006, -10.053541389554871, -14.941875759965423, 8.6870838393152514, -8.6373342393783386, 10.730268540646634, 9.8601210063994316, 4.8780620924903682, -2.7115610821025689, 3.367923539748868, -11.312679258640989, 11.821375457455002, 10.410174103493345, 11.399906697384074, 6.926324572712458, -8.1371207041809956, -1.6110491092625596, -4.5910601692545576, -9.5153951339232528, 2.3329308802756268, -8.0750195984204094, -5.3886599270109077, -15.657204154119897, -9.1468718406440424, 11.231457963459656, 7.143788502590052, -1.0446379422622789, -13.751959805382818, -0.91849801044455281, -2.8453007697880612, -11.848232738399904, -5.9527103225739406, -11.76390486174334, -3.704608825630721, -15.558574645005072, -4.4980354132408271, 13.394440934883939, -7.1888152196346651, 3.1256174122904281, -11.421511054937122, -13.123551160306411, 0.28473636356439541, 9.5446270072766328, -4.7794426504031735, 9.6113726265797066, 6.3511751501222573, -9.9505275608424739, 12.18016045027511, -13.670434950599086, 13.537936862988031, -12.61835131762717, 10.271770155403473, -3.2553354515019612, -7.3509435380450183, 10.833255136758646, -7.7197971718014138, -0.72306396363408609, -11.465237834772823, 10.581790724509975, -6.0259420116213835, 11.591447385790643, -3.9265857523693195, 2.4198387554236693, -6.7703518545048338, -20.893767335428699, 19.580597405889041, 10.89114390131035, -7.9837304366895285, 6.9808666958992776, 14.080621928372013, -11.955871462857358, 7.1494059040079136, 15.008216955793108, -9.2423061655340426, 16.328585068217539, 7.3562653818568036, 2.7533625539782731, 11.89584977909254, -8.7835126179447069, 13.029987689249989, 10.129515440180452, -4.7509372163449077, 7.5564892687881171, 3.4689526152445627, -5.6741492148129966, 14.184505909652174, 9.7666178084443356, 5.250664467926816, -16.052283362837375, 9.8589958224650296, 2.0076120429754387, 5.7779072291833184, -10.862664796401271, -4.905494742783695, -8.77258404473233, -12.472655098663514, -10.107007631429786, -5.5274628133367534, 6.2207490633007057, 9.5720057731592423, -6.5249739929745001, -15.577672570807019, -16.194582605297995, 13.089243246399228, 1.3304335534782381, 0.056644287255924283, 1.5296115776582058, -7.489938472282585, 9.4643405904881472, -10.41195983931766, -3.2720761440648727, 17.091876912066706, -7.8753750173034529, 2.9084690450097175, 9.5977127026006652, -13.073081278860617, -9.3912861069398925, 2.8902317210057271, 12.169354141435969, -8.1160141482378343, 16.646694364960751, 9.3282856800443081, 11.069548409303584, 5.798461002057997, 10.259563884401397, 9.0788175722812241, -19.796494364196604, -7.3887430327020729, -5.8709278551344291, 5.5872333376686329, 10.821854873289302, -9.2117848091927552, 11.763462170656508, -2.6369334318903506, 10.141891947201049, 8.6191276538897057, 0.060308685313455589, 9.6030055714419014, -5.6959577523367066, -18.343108808786941, -7.6303400155026138, 9.3559490975863948, 12.357508694753873, 9.0088405984393027, -6.594815545935119, 12.373204997732341, 4.3032531419372111, 7.9583601073514458, -10.104429052647333, -8.5431279295203808, 6.0048846292362645, -13.118172786262546, -5.9034495169594692, -14.91821876129139, -5.6892017442809335, -5.0459958592321454, 3.1067745178551216, 9.1009009525656914, -9.2588666195830296, 11.310864612378349, -3.5769656266267416, -3.9410358089529032, -7.5267568189390301, -14.212705460947818, -0.95934492159774754, 4.1995059689812608, 8.1327371589701638, -1.2405721673007322, 9.9454506813696959, -10.795907496764855, -14.371296251661679, -6.145642067695924, 3.3537388396884693, 11.460026212007147, 10.060874444797005, 12.445997093239916, 13.563765242083305, -5.5683739229828557, 11.724930235207101, -24.92486229511022, -5.7363446021592779, -7.643311057943472, 1.9495072245230483, 12.444028344015855, 2.1982035913666835, -12.71186290477196, 5.9208843181710638, -6.2008222855571731, 12.997935822047708, 11.273961986631612, -12.977223299891167, -7.4067328110779176, -7.6433062825585703, -11.759754665070405, -4.5023084792766364, -3.1263587585303005, 11.967640076286415, 3.9394188894380844, -0.024459741792052098, 7.6821639766969483, -11.444676059901822, -2.5340473769901855, 14.596454875389364, 11.25633255621916, -13.268516358186741, 10.227635531884278, -10.329097618632543, -10.628285162557344, 10.458055468193511, 3.9399692202818888, -10.807338477574921, -6.5158216451492788, 11.233457946282265, -12.55364665911174, -4.3622614115872169, -6.4784001802861972, -7.1819953246727763, 11.216936663295916, -13.109092327339763, 3.6490816825095873, 7.4334190816175552, 10.989086529386073, -6.2835154318038802, 11.827149801252338, -8.7113852245559826, -12.17845318564053, -12.196351844509872, 5.029455990964018, -2.0032032011310723, 5.4992707477796037, 16.750637715891042, 7.5779066119432583, 6.5917946632592042, -16.483457770059836, -1.3750677320518387, 7.3653910133394671, -17.547851829050469, -0.91317384347254482, -14.449860367806366, -13.129943980980743, 7.0343812078810375, 12.93199550042285, -6.2658341174797947, 5.056809395680868, -8.4984099185233823, 13.527235870745638, 9.1700988933463528, 8.9518037238347272, 15.38239443386037, 9.2796059226143601, 9.8950393951872915, -8.2871941119309884, -5.8724797261630206, 10.312578271613047, 9.3850597794148367, -6.1283458817109357, 5.981963556094918, 0.19289616113519786, 11.070131006261589, 1.7848040167416142, -11.914566190360178, -6.5962433860207232, 4.3661436704478289, 11.668463502840444, -10.483625202117352, -12.57990946916861, -2.3351420125495639, 3.7379368821818617, -2.1708563817437607, 7.1479883890788543, -11.572903146508375, 12.466634758011518, 15.993442360723387, 15.551745070208922, 12.547618574592333, 5.9812704799618901, -9.5012134668775907, -8.7128302302143421, 11.068467107284492, 11.390106316921248, 1.8556097346524216, -19.027875255828462, 6.4920835939963748, -14.407744570520471, 5.2743591534222345, -7.8345818080386396, 10.251983670724487, -3.3770829861192131, 4.8495060651650359, 8.1134818713292596, 8.6673409612812904, 13.759404759509, 6.5608895337556126, -8.4504140736500304, 10.867734190135552, 4.5805961393548547, -8.4994872034112543, 8.0493700381300357, 10.379487480115118, -4.2681052765451586, 4.4230987827190242, 8.6680104760927392, -9.123851904128788, -6.2192996694508169, 9.7821588468812717, 5.9746876764071475, 7.150112919102277, 11.388505143270159, 6.8970384277549943, 12.899063155496266, -12.216129939999169, 1.3345357381732421, 15.843004829874642, 11.476757870058082, 0.84648778741628539, -11.010491353288907, -6.4243126221162346, 3.5243026819309637, -10.893862256899521, 10.545102216697073, -6.9407728223936473, 11.847353035062339, -12.518514281454504, 9.1491637350018262, -9.220178709737576, 12.420700201577754, 10.840693895790904, 15.889604842647676, -14.706291825675073, -5.2468963020460162, -9.8980538246403675, 9.4281290403753584, -7.8234571617167941, 14.490934356796954, -9.9565171841537516, -21.196395608707391, 10.777615449431181, -2.5274093338479298, 7.5639129272789285, 2.1634842199712145, 5.2538355816304483, 13.621706406804465, -10.199311691516732, -9.975495080010873, 4.0461123458139161, -8.7266540055545558, -7.5918775812631933, -13.093941708884659, 7.9860050041439834, -8.2647658391518277, 7.7693559227144124, 0.30326175943596811, -8.3718403260702559, 2.6965787636991316, -2.8285941502417455, 5.6932393967475372, -12.802637551045798, -15.921585982527628, 6.7598636895517092, 9.5739640036300777, 2.1437203215721659, 19.274557700888156, 14.186451685402922, 4.8156152875822373, 6.5941783547118851, -12.476683458489228, -4.0595815125258028, 13.289269406582722, -15.359341456844174, 9.1452295599634628, -0.36956416032003164, 10.164498232132253, 13.497907263581888, -12.574073174432012, -14.369910615653447, 14.595566395668738, 4.262123397101286, 9.2403420626304253, 13.020035787114878, 11.184821812638717, -12.689353805376726, 8.9898204662386938, -9.9395089409718906, 3.7477974066815571, -7.5478986094789002, 0.30827049287555108, -10.632731433094182, 8.6509936373629994, 14.203293048242141, 5.3123260446797627, 12.218946384575505, -3.4989049374701628, 13.154370720075143, -6.8453303019106402, 10.234110695682048, -12.498002583592742, 1.9328362267668107, -15.865771283796738, -8.500290210195363, -7.6416963325244183, -5.2090897088438375, 9.0278625698084234, 5.0077359916576762, 13.81591279250183, 6.8533945073005613, -5.2796443429282869, -4.2188625399546407, 4.9833358398413763, 6.5035974341877072, 15.401815020804325, 3.6498581342817098, -3.7092995442487431, -14.772103340972043, -3.8499989037028421, -11.899075874254772, 11.637001202076837, 9.1311542742963177, 6.8696967679037142, -1.4412808959383745, 13.260317151375006, -2.2477787979979231, 5.6509777566254549, 12.814344729793421, -7.6538958921747415, -7.7373815587184414, 5.7307723733012956, 13.865039371081226, -5.0976735258646944, -16.139774609330164, -6.3744397928476086, 8.2994000602719211, 5.7107072384600714, 9.3915892793489206, 5.9788732367412445, -10.165257260202708, 8.4706781129522462, 9.9680351544077013, 4.5752415131710409, 8.8460954809898915, 1.4084876068896433, 12.079715004253076, 8.167098634626921, 10.257528021659796, 12.7838726115424, 10.087718561167314, -4.9265588365205684, -5.71336958007499, -6.6200053140981341, -2.8632680909484205, -8.2056430247964105, 6.0795192489291496, -8.3739876682364169, 8.3506902431390362, 8.5827329794624028, 3.8229036278995974, 5.5306279900753728, 14.286490578386031, -5.242961643015942, -3.9320348537355119, 8.8537796722198152, 2.9578439436040003, -11.977220014657023, 8.0565192410534561, -14.586550468974357, 7.947736618315365, 8.4997819543644759, -9.9581751461658357, 4.8344561169862352, -7.9991693206089023, 8.0663494999380312, -9.1855747219664874, 8.4547398463833883, -12.555601727503381, 5.193398052185815, -11.534267701364611, -0.24826068304076013, -2.2659583767318465, -3.5297925676655053, -13.792757080178019, 0.020651899665136787, -10.82691497438269, 11.125750043275966, -11.202184595883416, -14.332514963681728, -13.007037963799233, -9.3663022611177045, 2.6454382633357936, -4.3767974250990314, -7.032067469363942, 3.9429717758049376, 9.1000417704767607, -2.5975223093612043, 3.3597553084067648, 11.728530617294055, -16.282013965882829, -13.735547969055839, 1.2223751114072647, 11.410173258664868, -6.2817759010550995, -15.456469171939647, 2.3309520640239345, 3.8234601538373285, -9.2207454962996245, -10.757324451790554, 12.658809152900984, -8.0010308818015901, 12.416923259313892, 8.8533496294497525, 17.644337319408891, 5.5377420229343146, 0.39968367447506781, 12.255322685467403, -0.82056449248738628, -0.89478577218300959, 15.766508326327928, 1.8656530144229491, -5.5734270545955784, 6.5783431783778994, 1.4574613731521846, -11.875855113444731, -14.74954132514952, 1.614691824491348, -2.2672179702236566, -12.350748814764398, -1.659191184165467, -11.97642497760312, 10.306954804165716, 10.288692183528191, -1.5666334589630291, -6.4276042820225223, -2.7235893732187142, -6.2890378417815374, -4.0396276312463426, 12.012542891452499, 11.305634920588719, 8.9046443134397961, 1.303553040931112, 0.25402772362193354, -4.9609521910981558, 13.642465650294374, 5.7586071884420171, 10.604057182726418, -12.796857528412364, 3.209714263569317, 8.0981529180609648, 11.786463780018897, -18.167094832662602, -10.173111477721411, 10.569677508981252, 15.737505994110974, 4.2408210503771544, 3.4415615237063268, -9.802723203041408, 7.9636830482111147, 8.53521478601062, -9.5789715754895486, 6.8653669135069118, -8.4288256716904559, -5.7725809971800013, 17.663452281719142, -16.145351742637505, 9.4012301361431376, -3.1946286936004382, 10.809895115399719, -6.6784478942339742, -14.434374181763573, 4.3120574029224361, 1.9879581074935853, 8.0812516047815635, -5.8884153146443996, -13.250854145402261, 3.5828297992860096, 10.730443164856686, 7.9954989855863587, -13.936790432680235, -14.084719983004398, 3.0969867857090643, 0.8468894360058542, -6.5190851690039811, 10.150950465166176, -3.7956467633964359, 19.77148993259355, 8.5716923621684646, -11.282284837192964, 3.2731205336493163, 8.5821306275759781, -8.1557789719108467, 9.4744702143802737, 7.7587621830356239, -10.699156778947703, 14.492273529600732, -10.683443826654308, -16.422731910618708, 3.015006591521733, -7.7243819285004029, -18.752567346765677, 12.760859128249985, -12.880073901966947, 1.3443214052879913, -12.669427285762106, -17.335979616763833, -8.4100051376722895, -4.8411803751856333, 12.767500785197029, -7.6321049719493841, -16.958146517022104, 11.267199267224086, 8.8615676635391214, -9.5094315816322492, -16.145023918917229, 12.676527895917543, 10.232042566826248, -10.648819446699044, -6.3564933801292511, -6.1186828258301489, 9.4800739994979448, 11.92813731799294, -8.9972565149173569, -12.041397573930874, 14.687724096661672, 7.1074061356686844, 4.6606803766717588, 12.305481779701218, 8.5996540355704294, -0.067960734434929809, -9.191807083254897, -9.052712478990566, 11.104517133229594, -8.8996676363846721, -9.2384645619773238, -9.4567395329014623, 7.1009655611453368, 2.8792183927778749, -9.2805448020053696, -7.372209230463417, -10.862605168622229, -12.593946519490427, -10.90304003042273, -17.590922187058876, 11.858016598612258, 5.0275254448191706, 1.2935087286449309, 7.1363510342023622, -15.164316286232856, -7.0872657562491437, -5.2098981686012449, -2.9494279085048367, -10.868858857812127, -7.8106126024436024, 13.143994970263892, 7.2701377013501309, -11.995400292171105, 10.913483151880431, -14.888482826701974, -9.6569452217443672, -10.779897050898533, -3.1580538915739793, -2.2169060636729889, 15.106021484900053, 9.0514038299308179, 0.2135309864887463, -0.65532990418859183, -6.0205440197800861, -9.2923645249593232, 7.9732684072889057, 0.5626864801868362, -9.2245916816445579, 7.239928874590988, -11.488509188849928, -6.2795614131052861, 3.4491690990480808, 10.850511312762027, 6.0765734817670944, 17.477582943673379, 1.7976153953750558, -12.365951575260052, -10.491771492501799, -9.3035812587710947, -7.7036052613088257, -14.677134616109955, 2.2225730258422631, -8.3078811115911986, -14.283066240218153, -8.2067309736350254, -12.484186491620973, 7.892512776667715, 8.2370605401935073, -1.0832695154723395, -3.807396275285889, 1.4020328352760474, -8.6452441436727288, 12.878158843556914, -1.3842967976222773, -9.5074499904947345, 14.858822782013151, 10.926383660595645, 14.768008383886619, 13.231038621220492, 10.366374144110637, -2.9888302546509204, -0.93227958874848049, 17.031411762828316, 5.7555798525432627, -8.0536924067883433, 13.061357063604698, 11.377969353532476, 10.894654970793198, -2.9767074883523952, -8.8377973946711919, -10.778944038949504, 10.647067525762411, -6.188764309615963, 13.347300400165818, -4.7270721657665087, -4.585380300639601, 5.3355943012099063, -17.15778496757736, 8.2106960918769047, -7.6659395419612464, 5.1702505999872379, -9.9416320512862875, -10.567100608036739, -6.6621754475203439, 10.737490600455919, 7.0642401408977893, 14.17535007708662, 11.921006764883527, -9.7296722042334842, 2.2774455540384966, 11.100299306781297, 13.379169512097267, 5.5438403185182228, -1.7038402586094779, -4.4438959711592307, -11.015732144621818, 6.353422936701925, -12.49811409528342, -8.7892635123435436, 7.4431993280251199, -11.851997290475913, 11.180195368120183, -9.4564999247374093, -8.0571277799672796, -10.168682889015153, 7.6865489416168051, 6.9537720654183168, 5.7547238970657499, 7.8132907544544787, -7.6758670509140217, -13.461429518026945, -10.21288294821395, -8.9098639059356817, 11.07076135706861, 11.62484900908216, -12.80595192629648, 8.1187644795461757, -11.015077271568005, -8.4774451076199036, -3.7096485345399364, 6.9589204466001604, -11.504810029744057, -10.826137748223829, 7.1007040765558553, 0.4600037552640116, 7.4392930631755414, -7.8921933421371309, 4.1688449003654826, 2.6934001642570053, -11.552349631762612, -9.1209688622927398, 7.7694234234253194, 9.8541491939831918, 4.7846984132130768, -12.01616573075494, -10.384957877116683, 2.1213555162396389, -1.2631465733111062, 7.2765963448974311, 11.702037814375164, -4.6419600934704146, 3.035465372956204, -12.665485915380279, 14.87611948425597, 6.3759617209222226, 15.416368328953348, 11.102568001802966, -2.2016521936524409, -5.7507417423155722, -9.7315904892549394, -8.4533661972365834, 6.6915869140653612, 1.2563325618563539, 3.6818170750750916, -10.259664812806617, -17.42001606587694, -9.8723329562376083, 16.722298258724223, 5.8040784034758586, 5.043607134265649, -6.0884200501280628, -12.46479120131055, 11.417428746168465, 8.6016774355254189, 6.3327612659413601, -4.9756593440796895, 11.629008498395986, -6.582432456627223, -10.213175795466436, -10.537627190552456, -9.7385382870935207, 4.3497930106733751, 11.46262376326475, 6.5885174585720812, 0.80127702445627158, -5.9415294686811571, -8.6848050853324796, -7.3296356415492445, -3.2092966109871042, -9.0362020696847036, 10.187380715001016, 3.7228244668059678, 14.264384934482761, -11.939066238066045, -6.6539140316404284, -3.423568905912433, 15.172211417184364, 5.8169136055759321, 12.933803177204824, 4.8346094455609157, 4.6986051929163697, 12.4369083741919, -6.6598620961966191, -7.7823160592086698, -9.3322714485992755, -10.024348687264132, -6.3620854849135808, 10.787347554796357, -10.33142787740011, 9.4500345698383548, 13.338004661729089, -4.5117170200486107, 5.2748841876325061, 0.65397841680353774, -5.8761113418485245, 13.212466762144471, -10.594227246502985, 12.112481630417129, 10.462985730443359, 7.9597277388679517, 11.168354220466401, 13.529660217502212, 6.5173434441594349, -4.5222832689981001, -9.3978450335701282, 7.1889266022608851, -14.447029209881949, -6.5235646091062192, -14.132016943844164, -8.0244107145546391, -11.606452161409562, 13.815542635639725, -3.8276831428638993, 4.2130923262199236, 13.828479540531756, -9.7289631886400425, -12.759138440911896, -8.7186212797923037, 5.2230635175818199, -11.345353990911796, -10.299784628268064, -10.79288996976482, 6.9682631644991639, 12.038605651601326, -6.4692420245604199, 11.717537423121463, -6.7001782186968626, -14.575297080856853, -1.5602359163616726, 5.9362855798012815, 0.053309261692154032, 13.727680199769171, -19.21601303076698, 9.9590436208956561, 8.4333811952899769, -12.018634733813567, 8.5363560304033648, 15.137481720632351, 6.062257135960758, -3.2889128605836442, 10.260771927717066, 2.4632555224341304, 8.4086305044090022, 11.711569740767839, 7.7204012579914778, 9.8119902891687243, 13.324844217197874, -4.2495385800474086, 14.368646300234614, 5.1645642781494425, -9.2471861571779659, 8.6630893038122512, -7.1887250035793606, -6.8602782891685674, 13.419107217610165, 3.4043006150275064, -6.7408661758971542, 16.4728982324621, 5.3908439557489158, -11.850071648780423, 6.6294164361592429, 3.5102842168909265, -7.7004658329293392, -9.0380414317908215, 7.2683287339235907, -10.90875887650364, -9.4671319965598677, 7.290246718106669, 10.194252235745626, -8.2970544751001114, 11.98884743157034, 9.2368156990094477, -6.4873227933783086, 5.5050009515327103, -11.673571357782851, -11.234442449958753, -14.282675949300783, -13.973379689925856, -9.8025955582936284, 10.068919032389493, -5.5194546219210849, -8.4363464834511248, -16.467089815648173, 8.2091648066291736, -5.2783999034357993, -6.8017497521044961, 12.303739925792215, -8.0359828918804457, 10.305533030109581, 11.59795817137849, 9.6806921783447883, 12.902365914945838, 12.670600223545529, 3.3950854128118233, -1.8139059111126397, 13.03804337638576, -7.5951176153867577, 5.9670540300451185, -7.8696197105134971, -9.7280763222251245, -9.8409744232972702, 15.044642043049675, 4.5460409379484377, 10.314735842137413, 13.503698127629693, -11.956176571233238, -8.7865839890228159, 1.5241949249285471, 11.55185376611958, -8.7901715775954923, -13.669017306605566, -8.5137964990716366, 10.098894897804108, 9.1581783387855236, 10.553747212142603, 4.9012418108031452, 10.804820430022708, 1.3546435398917904, -15.841568600599345, 9.3125819558595744, -7.7527041555622382, -9.6665818839437367, -13.059319393960703, -9.4240125295256476, 6.0729155369324035, 5.4145709073585344, -14.60360711132752, 15.682389792220297, -10.238640987180267, 5.0128647550420862, 10.231961772476289, -1.4687385091297409, 6.7096888494541664, 12.964085312575433, 3.1670249038373921, -12.969620112740943, -10.372929327871624, 5.3157927159894731, -1.2875702904651249, 4.8921463804033758, -10.625794605734429, -11.159438189661586, -13.733381751212868, 11.443685619260323, -8.8915178935260073, -20.346988345474948, 4.0335471465574733, -12.824806178403986, 3.6873678792332445, 10.546015218664492, -2.6370258420414205, -5.4554007063968504, -11.935828785231617, 7.993131878916377, 7.7987390596111625, 8.1278841095315979, -10.447696625826101, 10.09752487859515, -12.487899934172088, 9.052363585497714, 10.65488392739527, -13.01574361953946, -8.1912611142460179, -4.4315824475935521, -13.533957031398074, 10.001291063927491, 4.4956219078986237, -12.774086686298736, -3.033753462001179, 5.7830251511533559, 10.481630510937473, 12.104585725078877, 8.1274499689650295, -4.1862773784168548, -4.2128636240024706, -7.4142799842538878, 10.309963038524865, 9.310196199375584, 2.2194734138476999, -7.2146745741995719, -6.161847400892019, -9.4496219507699557, -9.5126556117631687, -15.483814832789088, 10.449722034346701, -8.2919390053547524, 6.3187706788239923, -8.8567684339790453, 8.7692762195028298, -10.065092529374217, 10.93620056130894, 2.2197263801830327, -10.352888199019365, -6.7050985429835368, -16.404539501045683, -0.86181186850133484, 9.759706664911489, 6.6007660627159872, -7.8968015885672562, 0.59988079160594709, -13.68647043497003, -11.672130998444938, 12.782322289287292, 10.209900139552792, -14.897584452195668, 6.3987648291500507, 8.3069552354442138, 9.1258435300278169, -5.9677138075482921, -9.769943670431676, 5.1300235319621867, 7.5748074516742934, 2.6157064588089916, -10.958766965322992, 8.7363901361174801, 9.4469516716909467, 9.4208641956986412, 8.862200224574968, -10.003433404845952, 8.6723469208433688, -5.0596204195500221, 9.7054781038224682, 3.225647012632646, -7.8283918766904019, -16.486460325582886, 4.0046986591730258, 10.973336019335751, -10.083763509953066, -6.8134244066090037, 13.663269808215247, 8.2967402354139121, -12.795459502216282, 7.942979947759917, 12.783610094437263, 7.6498621116418422, -11.61105873000175, -9.6482154954829458, 7.8615631199265277, -6.7110396380590602, -8.4485479306691271, -8.4591279895154941, 8.4458195564514984, -14.179773890407974, -9.374594265273883, 9.4877789539723558, -9.4281379458228773, 18.178525813472664, -8.0356775899078805, -9.9171761436246495, -1.3315078860166603, 2.9417408294576926, 4.896165963846026, 13.000697285165449, -4.2586076812979918, -7.0003945354068335, -14.301761484914877, 16.445959899038328, -7.6848364498717245, 14.181040270858116, -16.814223643694909, 15.774494834914851, -15.982703165401782, 9.776880368726971, 10.696066459594027, -13.754385184655046, -6.3340609450213599, 12.943079814101948, -7.7915856620928965, 9.0289706849684137, 2.4194211028414569, 14.937517511388124, -7.5685051051841805, -8.483112376317262, 13.660431422681251, 7.8254420439979571, 9.2327187414249412, 7.5356688487456855, -14.875031729014038, -5.5568642128541414, 9.5281074666604528, -13.155238033224853, -1.2964596583852588, -4.1700436510402623, 9.234118380926736, 14.833083715521987, -11.356381258100983, 6.8889669947554939, -10.432582532612269, -8.0747593399432667, -4.4510112946627407, -12.162236236643324, -2.1349362702487831, 12.849327908938594, 6.2443293976873981, 2.0614851716247737, -5.294782571195543, -3.0189962320104047, 5.6258016692948596, -10.119023790486994, -14.227025420558943, -0.64016438986307633, 10.830131260646207, 11.966006378392212, -13.106840410697478, 15.748441367406915, -12.718522372614043, -10.050278769151365, -5.6224258593627399, 12.178718542163715, 2.1101196808882583, -5.3037651992600665, 12.172135996737884, -13.373151494605489, 13.781174835824583, -15.005831328373574, -20.310893663227798, -4.2773819134422801, -12.562284168818776, 7.1701937998072314, -11.952948152910784, -4.1809790243362066, 13.035229254969643, 6.5740979902647592, 9.0476524101632894, 8.5414171236797678, -11.900086707080444, 5.8681875585876044, 10.08813208368691, -10.896117012959856, -9.2268609574562834, 0.00012179904393089082, 6.3011528642126535, 11.082558880935993, 7.7501126703341052, 7.7717625876404037, 4.5877674768326164, 10.108008655356745, -6.5583606447890279, -7.8084294771567917, 10.007255777798608, 11.010943853274455, -10.389889817204471, 12.93207784354629, -10.702367773568486, 1.5785104109292216, -8.0183281003022344, 4.8067645633925631, -6.4240232596040849, -14.847116119523358, 9.0931620218730274, 5.1193674541507637, -8.4657528358170424, -6.9354105814068827, -6.1975838002070907, 3.5661593177875992, 7.371377280974869, 4.6060546197169323, 13.542364806372001, 6.4566339759043192, 11.30736567495444, -7.3708290151623732, 13.404241573475678, 0.45340399080754967, -4.0282544713129242, -4.3552403051371726, 9.8939152437685429, 14.424260690928543, 13.305889294814065, -5.9338071015794291, 12.632273758711346, -5.3483639385659245, 6.9202470565060965, 0.35521477401275342, 9.5585192472779177, -8.3588001373466643, 6.4432925830046663, 12.692899206005086, -9.3260450565419912, 17.970512112186597, -11.642094085542254, 1.066350713959042, 9.8708030261666746, -6.1490457555507145, -9.010451161529625, -12.584372001827008, -5.6935370193849231, -12.153009418626528, 4.2440182351010609, -5.1992962978616797, 7.4133632394172206, 2.9416912687062799, -13.051931744453341, -4.622910695904225, -13.923817389740298, 7.0992949508164882, 6.5745333246775521, -12.661795446302476, -17.6337292535754, 11.455118665101697, 7.239558330535508, -5.8790741455188771, -2.7376088707744057, -10.660221646135241, 9.6276183569507801, 10.373026255278685, -3.0053375986759332, 9.0528373488525204, -5.9442824135447507, 13.642738234427142, 12.194322434991111, -11.149932076160269, 1.7037571410992967, 14.880097250814613, -7.8008430683859533, 4.3243063942597137, -10.223795606165496, 12.915193889436331, -12.152048146552264, 10.659226946366665, -7.9356265648658342, -8.3307716932546256, 16.673768474193082, 1.5653365436944993, 4.8455603065916764, -3.0899243786328423, -6.1051754560390492, -5.7705513295323296, -6.8852769128710598, 7.623164999687833, 7.8939155137164718, 10.765459642631717, 9.0210677456172679, -12.224995119408002, -14.150465933557312, 5.345651519941768, 13.841522794536196, -2.3000948174338163, -4.7845597979864705, -5.4351375866788922, 3.5245019574522667, 2.8386771818649672, 15.268104243557156, -9.7430277942233872, 15.811612740175535, -5.4515623294515514, -8.6572002917907867, -6.219673181988802, -0.89082305270793227, -8.2417318668768953, 6.9975040078322897, -6.7323255935971762, -7.3304533939475434, 4.7401807263860904, 5.5832271769294897, 6.6058089982366228, -3.1503394508619929, -21.460472844997067, 7.8852878774403807, 6.8939788257420389, 10.957685147046078, -15.625074848243537, -11.723592094918972, -15.798764631629782, -8.2060371876474854, 15.124469958355371, -7.3702221540864885, 14.838537979466452, 8.3093859386252849, 1.5784525900525741, 4.3747052902542656, 16.030788451943696, -8.9631984697985452, 7.3190431925150241, -9.756945072729291, -14.440714344139529, -6.9739174783516722, 6.8071561331354875, -2.2355445200087205, -6.2250786595685961, -5.8997288467987739, 5.5047242373373253, -10.356173792896181, 5.1435334830424244, -9.3653788049292839, 12.462285027688363, 12.377914817889968, 9.4213853579752094, -9.3455590861526687, 17.26727241131405, 7.3245528251114562, -6.2155462169180931, -12.137609705769792, 13.060557896488179, 19.238310206324147, -8.5685627346211657, 8.3551763945930269, 9.8196973732066706, 8.4823602209291344, 2.8049898098660888, 13.666768487510247, -9.7851073243969182, -8.9455268353087174, -2.8029418150655503, 14.782189986400054, 8.4667377266868993, -13.755929311816228, -8.0729370143454471, 10.805604109404412, 12.599814047825573, -17.135366471430803, 11.992116376132229, -13.042876582164091, 7.8861617083451607, -6.5794687495056721, -5.3930873541370534, -15.622499754201419, 5.9419050462504526, 13.804813765474663, 5.6395158003457579, -9.0897997637088714, -3.5776553470838923, 7.7610284903648434, -11.016645146589239, -10.874331190780543, 0.72147388952628144, 13.843587309587207, 9.9280047806148186, -16.170066037341662, 9.7022254213821402, -5.3933217351906055, 2.3517092424825323, 6.9870679849197135, 11.851520784501398, 10.510028176174309, -14.311343746445708, 3.3026680341318051, 4.4390021050862023, -7.7588835681572457, 3.6223844414911199, -11.392883009644892, 4.8263325419461847, -7.0772231218009019, 22.934531428839488, -9.0971943504307866, 16.694009911082297, 6.8967067321010127, 7.2611735295029289, -6.1876050526649653, 7.6539276420311149, -15.629995301594667, -22.73669213681206, 12.806472572315222, -13.602880032619632, 4.8079421474964272, 0.70951529321680884, -11.56763783292867, 13.896373123645859, 11.011258512420138, 3.4407824906450677, 11.879887345204146, 7.7757338364439814, 15.738146153816711, -0.41419103567747156, -2.4147541320834862, 14.987369948472574, -8.4743572404909084, -12.672499794220743, 12.497184056807704, -0.28001570199239545, -12.94992332785943, -7.6301713282575729, -2.2337484590278605, 11.415679406520967, -9.859159218067342, 9.1936659018278792, -8.9943101669652474, -8.5499699832361991, 6.7410389932048123, 9.2520173624572184, 10.227159413103134, 7.1425592927034662, -18.745554500440871, -17.775969642643719, 11.801682544507194, -7.7273473779921202, 7.1236464453325734, 9.7057719190583818, 13.727508285912711, -12.362641071943072, -5.1402983533682178, -14.170537521621373, 5.6895432488336324, -3.5191979245355194, -6.1045249711767653, 14.290504482992581, 12.308816547136075, -5.6938214774477149, -5.6008341501264587, 0.52212712464339661, -5.5362642349039284, 7.6660157545229879, -7.905382180848842, 9.810612009834534, -17.70809516106922, -1.2403496601772057, -0.15782160435460715, 4.2133602640322456, -10.476969606208971, 10.295486523727636, -7.0575322738844042, 7.7362494053033721, -6.0086321448039755, -1.4831550089545567, -8.6265711358744266, 11.360761705764855, 4.2063453526761281, 12.519646951127399, -13.336133743363282, -8.5272902525625458, 3.0551420237824538, 4.9850797587816889, 4.2373879358262148, 5.3635610202254798, -7.7527269354388633, 14.985488704950225, -4.1003720759692515, 12.065115491028516, -17.998495351452643, -16.357350954349631, -8.9589079155288349, 13.936041342572953, 7.8027559972324481, -12.282070003495111, -16.144531408950069, -9.4866664183547194, -11.727943374015606, 9.6630970145456185, 6.9048921290158711, -19.934166904009778, -11.734783532097213, -7.3573804987635745, 10.787048512449948, 1.8203855387085228, 6.9468911229683599, -6.8060936745270908, -4.0675525333779117, 12.619597822150968, -21.186471068237122, -12.083502013544569, 4.4663418289706298, -5.3789656375315742, -14.890316058246391, -1.316216404781305, 9.5406000026277162, 12.532017263054071, 9.4332244405976855, 6.7225013362098425, 11.834640960454053, -8.593891646368407, 10.556917035201668, 14.71791330562338, -13.276952011083337, -5.2089121161512768, -3.5936619210165119, 8.9003033594997092, 11.937206935501351, 11.056226117943536, 8.4803819209352689, 4.9292204037487464, -15.4894843762475, 7.8410390318769148, -6.502762516216654, -5.628969685451529, 5.5683372686771238, 8.5956169477608242, 4.472466013052478, 18.757542007188665, 7.9719147147337361, -5.5287206755327487, -9.3320448759453605, 15.34734052739287, 7.6828857696716151, -16.459798706354498, -16.841613702717492, 5.3562657808691876, 8.6483141202497151, 6.5470262041926519, -11.758310175669873, -13.71448361719005, -11.967662791630813, 14.019415949151576, 0.99768989610712699, -4.7405294585483704, 8.2686539059129966, 5.9924670797184021, -9.7057188735666351, 10.897854736806242, 8.6225617364240712, -4.6254881131065666, -19.799763308758489, 10.677967750816642, 14.67689507247813, 8.2131587707771487, 6.7567017394245097, -17.811631700831676, 1.3610916001536324, 7.2814560088894069, -9.1537527830940011, 2.5743196175751164, 8.1949937228689684, -15.847454456087357, -8.2348678641368931, -4.6092561926323699, 15.95837864535717, -16.246026149005907, -11.322113612304321, -10.247729706228281, 9.7881733796327133, -9.5255805136607208, -17.160321858540268, 12.806643453656026, 2.2906395553284815, -5.8389294206172666, -11.351664468462687, 15.745887439935712, 5.1275152933086918, 5.9522255564741897, 7.7738811806988144, 8.61082160389069, -9.3855791347890083, 2.5014849307967948, -4.2172595594011568, -3.0110339875413583, 14.204561493723595, -3.1852038907069082, -6.59988003522004, -0.17505945320512115, -11.433156799003305, 3.7025055912426708, 18.034317449567027, -2.7251025249102638, 9.4671609715304186, 7.1769944641650572, -11.396310961617562, -12.592840695224545, 12.026224240131368, 5.6957143367711769, 7.807121731548242, 3.270443736815237, -16.679716796878186, -4.6589191630942342, -11.148250366288135, 6.5055253990434201, -13.847068952373904, 7.9248346467136264, -13.586383530008991, -8.5101262931135508, -11.077321445278956, 7.6332915260329965, -8.579089530179516, -3.6424426068516773, -8.0663491127446605, -8.8174376218081427, -14.791858979245854, 10.034150100242613, 4.1684695809251009, -19.201350275958589, -4.6234537991384483, -7.7633367436425234, -5.4425737644220131, 17.084060252304933, 11.759495245512234, 4.6241551353967125, -0.80287380991582924, 1.9852059370167341, -8.8577936413585974, -10.668578698777646, 13.770343230351907, 7.8544289530123237, -5.906146447848811, -7.1070820548176536, -7.2021040833003989, -6.6751055119961658, -1.4835767915993865, -8.5188957712276672, 6.644056862816611, -0.23652820765960442, 4.845459195664124, 8.3584436935830908, 6.9840270972529952, -8.4756792799880483, 4.6255673586830426, -7.6496994258940427, -6.900506260644816, -4.5762513134810616, -6.4107151653342864, 8.7568199990470994, 10.688380154933624, -9.3272647156587709, -10.849469504466718, 2.8600596241588958, 13.419158843392887, 6.9116547193589399, 0.54100615712660804, -6.3079948291966561, 13.979407000058522, -9.9592168253966857, 9.1210143897798748, 13.76739384938506, -11.698421170166652, -11.210325207431763, -0.43878865611267875, -9.5267307360997435, -13.91603273796381, -7.6019597739674456, -14.787299906373772, 8.515353855339642, -7.9993484620749449, -6.5031571953255547, -10.564438266421821, -10.531656539716323, 8.3907769535673147, -10.200579878869272, 8.4067262551472268, -13.120429865483102, -9.9585614360850432, -4.8885839432667177, 12.236140609639621, 1.4006400472648162, -4.7117532472597325, 11.808206752798553, 9.4586915682783683, -11.821793626295042, 16.643803837386208, 5.6220113043274909, 8.792079118000915, 8.4798465777015082, 12.61789365506335, -8.438754197025828, 8.7752428370746856, 15.288077226376224, 4.2876022696475387, 10.147670162932087, 8.1398121820970371, 8.9633754494349347, 6.9072249690725727, 10.562749070811192, -10.272627788718927, 8.2592313293813469, -7.9850097881175808, -0.77775536093954867, -14.654038273436273, -3.090713736850645, -11.007111929551995, -12.143908051261743, 13.145067754028833, 17.014195080548721, -13.59295962221198, -6.0558196589843734, 10.690919110927839, 9.5939627348082759, -13.626523608590157, 2.7382196037839943, 6.2789031843755936, -11.950324014375081, 1.2890044547091108, -9.203655039058777, 9.7296284513826272, 12.616615916941006, 5.3147485845339419, -12.656051045459119, -5.5986635440919565, 9.3002076429347422, 3.3292279505682338, -4.9103514382931657, 13.222584899299941, 9.5144587067569262, 8.440118521265628, 9.4441265152637737, 18.529033902678044, 14.862696264490703, -5.8665961938352309, 13.872033632124255, -14.906419172392699, -11.551436113537365, 13.108661252054045, -8.2712840782120569, 7.7956086657436519, 9.6836685337831092, 9.1880246557516205, -0.35720244225408904, -8.5753236713258811, 9.6884666985614167, -14.078139760738791, -8.0567269702966779, 14.239050097870303, 11.180573010720785, -8.3438476973649784, -14.588404350831867, -10.806339389614816, 15.148980847475608, 10.836208389659197, -14.522225776219754, -7.7397343392337188, 11.832691570898515, 4.4086234295019064, 9.3809378478579415, -12.776911649129225, 12.752335969651673, -2.4193756721526625, 9.08709683132229, 3.717276243936952, -0.28602641626801117, -8.4165416877523285, 8.2724324937486831, -5.7101228345996704, 8.0194030781629397, 3.7247779864241277, -15.996389160401096, -6.6467534065125804, 7.8864006711869301, -10.643940035845176, 11.665222436201226, -6.6019801720611273, 12.318091635259712, 9.505211432023728, -6.3740213658786562, -12.643872523315254, 10.933363724548427, -4.6402401805190676, -7.9548575561227448, 18.615251024853279, -9.1327510274897623, -12.386332918020443, -9.6970271567877422, 10.360767067849318, 10.017239558854548, -5.7946809622471713, 10.24748680692058, 3.4663078263957696, -5.7127129001187793, 7.2854274512896708, 3.2942963972057817, -15.447448082666996, 9.4240943563912616, 4.2740494691676441, -2.8083506483212206, -11.306321543498909, -7.8598045521703677, -10.085092744793673, -9.3809770834528106, -8.1125987155174748, -7.0607164230981736, -17.84689520797702, 0.26017075111447463, 10.097398266363028, -7.6969520530928976, -11.846175967216304, -8.8291032095345621, -12.207788762284949, -0.85154969541207071, -9.4826356063043278, -10.806758203777139, 11.945254878769713, -15.802038222512115, 4.5363494878871542, 22.477445008753747, 7.7153212809717395, -8.7016885715837855, -10.007145298623586, -8.795354435120359, -5.2764732292246563, -18.514008734874949, 9.9312388777733691, -8.6578667710667112, 6.46688169377442, 6.9298690698896204, -4.2756570960415736, 8.4808841268697428, 7.7873527996353795, -8.2073426100958109, -8.4872576201416674, 8.2937560393098444, 7.5054131715887227, 8.2394651400881891, 7.8481348021152186, 11.479257590457429, -3.1673599551672513, 12.182950823831176, 11.788485703799161, 10.613525222212976, 3.8898478128694616, -2.1666985168099973, -18.063401350520685, -12.751117343050547, 14.550046910528055, 2.8273257047602933, -12.559761991203947, -5.1410541548272528, -12.454640798040879, -13.078940288941613, -12.828468511430206, -4.4879330219490843, -9.3996787168401461, -9.8258621369858332, -1.3135111381601494, 0.38819487278835541, 9.1421981585343204, 2.7612354102366319, -10.436298814581436, 7.8534234118293771, -9.8445919709569818, 5.97193447341464, -1.122699223283266, -0.35565779883507898, 8.6272393953323707, -2.6785629143030141, -4.2415840794457695, -3.6974364556373041, -11.162890147623219, -1.0549609581685737, 5.0308101352447876, 2.2952270979876421, -12.315318298211947, -10.695852212595735, 9.4196311784105813, 5.4565356992299696, -2.8633610173573181, 6.1651586785957386, 8.3636672225449065, 5.4793808824707169, -12.90333209146946, -2.917909411244644, -18.171572853055814, 5.5692562076095564, 9.4272302354981878, 22.37397145244622, -9.6263355853146226, 12.56665274255262, -8.4230789476868768, 14.292402246765404, 9.6755109502586905, 10.650146100250515, -14.501997245776215, 5.8382255030698671, 7.4369544152182838, 11.674980225393304, -11.786725006479465, -16.772831123624936, 3.8216491213794792, 15.77259758739986, -9.3479878856330032, 5.9950230722209144, 5.958729372581371, 7.2462686497735733, 10.332660701091482, -10.204140767232445, 7.9808905023820502, 8.2782586246593102, 6.8390222765844291, 7.0654728355247078, 7.6480295899519355, -3.9185027035687048, -0.4255074072498965, -3.6431994408263657, 11.140066389082302, -9.8098156821360636, -13.896130482467072, 5.7907261691618359, 17.222088493761053, -16.920381740703927, 7.9242825734996547, -2.688244813594495, -15.985663904040829, -12.754606213446827, 13.950582776791954, -5.353910870790374, 1.5595648567928815, 4.9908161576287231, -9.9205742817077969, 8.7860382238341703, 5.5146521334834713, -11.443914321477775, -12.875588137706325, 11.928543354774042, 9.7949495217437477, 3.0596159141130483, -17.110449287400556, 14.904415575765301, 6.3932641020011367, 11.703663252144132, 8.8510994551776303, -4.9488441381477051, 6.0141351951131101, -1.616597923995984, 10.958784259960206, 9.1227822179108102, 12.152585312821476, 10.379738123290229, -14.813934163937317, -8.0486858029122974, -10.468696961721317, -10.799428246081964, -18.131714651248306, 10.923313475297233, 8.9703208918471784, 15.96222270113857, -8.7661420666330141, 7.6020823206691786, 5.3308713164776842, 2.4841448628964948, 8.8418522933758332, -3.2565822141546716, 13.967329148190965, -13.883497137177436, -6.3211637919820207, -8.7551098627283537, 0.24851512254299432, -10.440516253836366, 11.747040525430812, 4.1482957738112507, 3.4063067929440405, 8.9044096742573302, -4.533883066117661, -10.060016037094814, 8.2165816247037746, 1.8593226609457101, -8.5265761308565295, 16.14419842265152, -4.003167438457524, 16.533944688013928, -21.327055302195756, 9.7008097133554756, -3.9906435398272566, -11.21150304966454, -2.7948474085927382, -9.364844542610351, -4.2756978804099237, 5.8141271039535711, -0.76694285700648002, -16.378244424874616, 10.914821034039642, 16.369755081163987, -7.7447057730452871, -8.1738488670482514, 5.0835789127951436, -11.318782974932084, 12.128049901454446, -9.9118013833855763, 5.8035693732582301, -16.725072628287645, 5.8582619856016809, 11.841875797644564, 18.792232468145812, -6.2998330510773926, 4.3652040812023083, 11.060526545644189, -13.359396837315156, -2.2695101549764649, 4.2878526546937348, 8.7944164914466629, -3.9990440871916042, -14.629067914849822, -15.681880762002669, -3.8670963304243546, 3.480137857328875, 5.5874406151862583, -3.1797062611049576, 7.3180755962823776, -10.128595726861276, -9.1174957700263022, -14.980244041683607, 16.109280291992576, 11.480512096977547, -10.311691598794816, 1.0011865103708153, 8.6924180410487768, 6.3189823445331479, 12.194923875359811, -5.2471028051769002, 4.4810642115580661, 3.5767787412932912, 8.1371206073826539, 11.009844998489241, 2.352372633790496, -11.785028325130343, -5.7430223971542294, -4.0330159172532749, -17.56714335153762, -0.69837806311042638, 10.071956177186964, -9.2379726328002221, -5.6954164560048781, 3.2282866389031661, 14.19966736952165, -11.173139672395717, 10.918018476892463, -16.209246908879869, 10.006757459930895, -10.685128505008947, -0.80813344465943648, -7.7725116132154568, 5.4694480818752123, -11.723461223559775, 4.3972758243309356, -2.746658870485382, -10.571105349066855, -8.4602973618932946, 11.668195823157037, -5.5560296820764581, 4.2868444031571951, -12.586104046837292, 11.116589306261053, 16.708751653338254, -4.1380749013481637, -5.304918777374966, -3.6321959214972299, 6.4836505223889134, -6.4898794312031054, 4.7755273510416201, 4.7059724502395577, -11.348341058700028, -2.3894998316920693, 7.7024164485972211, 7.474516689403738, -3.754442161175565, -9.2452925879999928, -12.22839364468452, 13.946576099794985, -16.64398659265704, 6.7770641097097508, 6.8518280519883517, 11.40188370673337, 4.9537315509978948, 7.1111193200908858, -6.7191754742225047, 4.5635294299740607, -10.262970411674237, -3.9845888680297481, -0.2324331749676018, -0.40356490082002627, 15.985289100858274, 9.3965056026374327, 3.4160795536131108, 13.621857670347838, 14.878550026106467, 2.4671248748490635, 1.2677903124668533, 10.971312030524174, -11.207046712100073, -11.640311189135987, -6.2777844536640313, 12.129463415385345, -3.2735634828650624, -16.99880285343048, 17.207987943726486, 13.880418691753789, 7.1345976935567039, -6.0921309113900426, -12.916783447286308, -0.37175928860132518, 5.3795595921617778, 11.474666767728971, 7.0272923425911724, -7.7992948111621532, 13.053545050163368, -11.125579161935159, -4.9734162038204666, 11.929760432601684, -16.353627702899804, 12.828965151459983, -6.7007792718721912, -13.362734444168062, 9.4783264667528435, 9.7261137035627598, 9.2099175046317381, -0.2719331694496081, 12.895782337004352, -5.1315028687660558, 9.241451823362242, -2.1662823373946867, -5.4023510845884939, 8.0145086312998544, -14.636845339016727, 4.6576194840142362, -4.0006553278703239, 8.3384948780835586, -6.3109591816404915, -14.523997573082733, -7.9786516212499015, 5.5706537175478106, -0.18481561801713964, -8.1249338573796681, 4.8293312255355296, -6.4878466660084699, -8.0428722880523242, 9.7154788568544816, -3.7634095596341886, -5.0816731470260024, -7.7916227681242267, 3.4940339692638638, -10.289437014508398, -15.219845494385298, 12.995575491261707, 4.9137445428624966, -7.9629573187705143, 11.219541958420926, 12.579169413573306, -5.5632263161877527, 4.3244956027533856, -5.4018763855163758, 9.3532602977578332, -15.574718543519731, -7.5391648176870891, -8.3898770516422605, 5.4643582959567576, 19.452032686663497, 6.1134164797347879, 12.523157246223509, 6.5452318210497289, -15.527032324278245, 9.8889627824321256, -9.8221837999669699, -9.5911766203792848, -9.7470711255260891, 1.1168169059934649, -8.2960509989484734, -13.169177510817329, -13.637864244280458, 12.833989630763297, 5.8431250479789956, -14.41459427937188, 11.436201429539272, -11.440704230308189, -4.6605177554561878, 6.0103734824551509, 8.8048544503260899, -14.722303045928138, 11.823402801942454, -7.8164585124822334, -8.232953902774744, -13.886365465665408, 8.840783671939624, 15.917335631836213, 11.733379827065031, 8.5863892262928321, -6.3502014878601392, 4.2519211099199783, 8.9575070499147049, 10.95856743167278, -9.332360115881098, -8.4440260122275443, -4.0611922369466953, 14.699231999887989, 11.501755848438288, -0.52251793181859396, -8.3240561791721746, -13.017699204188929, 13.862085343793936, 3.5246269674530311, -12.575260309305678, 8.8505292322744236, -16.160514751280466, -11.987606347753729, 7.7594652616640536, -5.6910847947056791, -11.982557604332538, -7.9943803194070249, -11.87513054558424, -5.9220296361607261, 5.3857386820956448, 1.3684074142164342, 7.8855235491385018, -7.2936109122376758, 12.973360400699073, 8.9378164601271202, 8.2183380628963967, -8.1258310489511292, -8.3418561682642896, 9.3140758124148313, 8.9364762225415717, -7.7593878229899724, 6.5113635006824149, 6.3101163907375719, -14.918246639214061, 13.656191397146385, 5.8145605023995133, 5.790589877095452, 11.042264699393407, -14.460089500394686, -8.5558978411383713, -11.890624991752267, 9.1525039554099816, 5.3913413701654322, 13.54219340877337, 7.1378985170394227, 13.827006140692903, 17.07127099715148, -5.416714667986021, -10.094832206832885, 6.8118702124201906, 9.6895115398714591, 8.7508693370687158, -8.9726099467869087, -6.3825788556224756, -1.2811892681142396, -7.9006554532473725, 11.991550041295781, -15.41868271279273, 10.399633667435214, 10.25224425186277, 2.0476462887020261, -6.2087210303134732, -13.850177857009358, 5.9216685138105953, -11.725632862109929, -5.6223675222282647, 2.5395243562790468, -5.006470643723187, 8.384941400951341, -13.676198969239875, -14.674173361213084, -3.6794433215855835, 14.47578115705271, 14.106661973176443, 6.3803571400630812, 6.3022752087290064, 9.6858881197789639, 8.46745889047234, 4.8235109347915737, 6.2970736529909601, 6.8398844271558676, 5.4355289101119171, -12.595917333745797, -16.10769796175218, -11.030056234295563, -19.383981644912097, 6.6153991326993182, -8.2620846218601045, -9.7372222168275044, -5.9754966524223843, 5.099067163869246, 10.579232537911697, 10.305783673284692, -5.9402938055717325, -3.5627778290193794, 3.7215761553797764, -10.814343838161236, 7.2071720573256535, 10.230481403156768, -6.0457170095637167, -4.0775725815462147, 7.9957387228148695, 16.218084726623868, 11.154854336413793, 3.6660505610321241, 4.5629032092296571, -3.7613295568483625, 15.715664674215235, -7.1900277802063224, 9.0957779002834975, 7.9878026138983254, 6.306124168959764, 8.8828525381624139, 8.721765253660628, -8.4786042032403302, -9.3481374713384362, -15.968539115654474, -12.371027164088257, 7.6395778685304663, 4.4001441528189096, 10.920171272031924, 6.6419684708410927, -12.778931766007094, -11.762446433381475, 7.6029684772295836, -5.7530563842838651, -9.278300564698263, -8.6364290246359179, 8.5380212522911432, -6.5156528288397819, 11.12605540978076, 5.5317523996230342, -6.371230734193678, 8.6110210931749993, -14.136763934565353, -3.325398350005996, -8.350684983762422, -10.304377774156745, -8.3940251671508275, -8.0763593520142454, -15.711255832370867, -1.3901134745614421, -9.9201181679174564, 3.6762776285891374, -3.027745253408118, 3.5951178436958218, -10.971642177404679, 8.2562901762736214, 8.3702239228132633, 8.0927467951588898, 9.1407003009808996, 10.141245463336926, -5.2674684020735612, 0.0038156237976130062, -3.7799349726831526, 7.4968099930271954, 14.604208551696219, -8.8259931271859369, -6.3243333569121711, 5.1119354064702609, -12.608102567241415, -0.15550817742430292, -7.9404349902684608, -6.9086361598432484, 5.7169315009538186, -5.7678559474164688, -9.9620966406213132, 11.827724138085108, -9.5612259870659759, 7.2643256707314112, -8.1336844275508628, 8.067406989564839, 3.1687667577463965, 8.3775004800894344, -5.277606415155379, 15.336501694310613, -4.7070349088479553, -7.2391458405315685, 5.2891447775935045, -14.240394433252353, -7.4683465049173909, 9.5098429100560775, 7.0524937265552987, -4.699596407944612, 7.1548196417129413, 3.7757352152588068, 13.613370907926351, 9.3633279061784691, -11.557527439640607, -14.012943624771856, 7.3474746726395423, 5.2883987850331868, 13.132951699082062, 8.9466349827348211, 13.267381623482532, -15.779073009326543, 8.032743244950252, -6.1729291332819773, -16.086736861451836, 9.8901824415489088, -11.522547874300223, -11.039678505808, -8.9536772557557835, -0.79142011376136789, 4.3166975282733917, 5.1393017176327902, -6.3197807372629278, 7.1773149312112974, -3.3356114786016748, -7.4632594293525276, 12.15740148209151, 17.021497031256764, 16.542438678045002, 4.7378203956000897, 14.845217323234882, -7.2756424294972062, -7.9547005492110463, 9.193618599704461, -7.5604327042012542, -8.1467060632587884, 6.3174795179981418, 0.7536321058409664, 7.6986470566040817, -3.3754253578426234, 2.6279128588755247, 10.051578061037993, 10.925533383954232, -8.9061476723656874, -20.506099007820808, 14.128311245160457, 9.7959616452139926, -12.43896437098876, -6.2641844155929478, -7.5029331980512666, -12.192807734526079, -7.5158451935031385, -11.210721435314145, 10.80351997655597, 3.2237621553055051, -11.493430158458887, 7.4759875079534561, 8.7887085190462386, -11.237257345761609, 4.9929877961788778, 6.6053051305972668, -11.960492486668706, -11.986237490124884, 5.1070170181504384, 4.5800543267651985, 5.4569228926003772, -12.014404000919589, -12.327689384525359, 2.3450763619185495, -9.1846545569217142, 4.8727425718388053, 7.2559899137243784, -10.074516945074379, -9.8222229064973803, 2.2863391276278286, -8.7400761928041675, -11.837723535940322, -4.4389959099922747, -3.5522064174916173, -3.9825563609640251, -8.3095611758915098, -5.4952116706131706, -6.7650687300300891, 11.535631654544098, -7.1952205595613057, 13.192400852916503, -5.228605287227996, -3.4756815197644064, 4.5448576750084744, -11.096523655162001, -8.0759285993896679, 6.8294188484826837, -8.1148457922426314, 2.8919333068042086, -1.8055807373910648, -9.1618657103163628, 18.95516137338171, 14.701615562276213, 10.576040902959432, 6.9472405004529243, 10.8509054756131, -4.2393321628034837, 7.3628769667854135, -15.942801597936789, -13.09791276409155, -8.1192986128006535, -2.4956021728557478, 4.4062225724764703, -12.705159555014562, 14.611257019811106, 5.4487889924037836, 4.6811247028870682, 7.8660698571613787, 4.6606439804949416, -13.056105688986326, -10.877807412860054, -9.5630044307484816, -8.336671584502314, -7.212332183373066, -6.0724287058013449, 5.6058632757502158, 9.3822916694775689, 2.42285945557725, 9.641242013817461, 10.674625497643289, -20.504761900048337, -7.3203307395360833, -17.782026379472534, -9.735986037460254, -5.2634387516032799, 6.799610895926369, -10.482358434473838, -9.9267338829086853, 1.8815547880166452, -5.7225605181727941, -10.32085956341931, -14.680546047832154, 1.3745157768279728, -9.0962042001843155, 17.819003862604216, -5.4500305924782211, -7.116020542837953, -4.277099520410796, -7.8010119492276786, 4.171818029192381, -1.3712297957577866, -6.6583249385161043, 14.600889530125094, 11.302441607798515, -3.9244391523237829, -11.875059302004088, 13.955038081840771, 7.9089371967792328, -7.0382148094414347, 10.339905992502993, -5.2543438374613363, 11.658450166023897, -12.260784693279277, -10.567202181764241, 7.7818871780187164, 11.469695204852945, 11.633486260660284, -7.9554988128763675, -11.353654384257666, 5.8142491989297058, 9.253802323894794, 12.252383629657103, 13.743458587742163, -4.5990699094437071, 8.1674889900765191, -10.405234290473693, -4.3503211424306096, -2.5352832982285238, -8.0329959531566715, -11.096227581298097, -11.635882729494188, 13.841735492761007, 7.9211223012103931, -7.8204116277296309, -11.400201996861236, -5.1390918588260295, -10.152632304102763, -9.2722777072893567, 12.630289521752468, -6.3311089827653779, 22.041405387767668, 10.030760738542526, -11.015029259590074, -10.750221260345983, 9.8774814664839088, 10.243600159868437, 10.47497065590202, 8.1475889932077727, 10.019493153334773, -7.8612573662283625, 9.3356880428997453, -6.5500876131080021, 9.6522744435849201, -8.9747623869991138, 17.924301874073105, -8.2996248260234431, 11.278399997043214, -6.4926958757794448, 3.7847950238685, 15.344497495538429, 4.9354655746844953, 12.198358538684232, -12.353439550559809, -4.290111282687775, 1.8013128339335276, 11.579132571580397, -14.978620927074862, 9.1640921689945465, -5.301934549004784, 5.3570590110206942, -12.575832581107141, -2.6075057032237736, 6.2802480360154735, 1.2819497158937185, 4.0370287893441716, 5.689180319581105, -11.659257077007823, -13.709675708045252, -7.2955461047029706, -7.9351310864161704, -1.9719236556382971, 11.636620978187096, 8.0623417904254051, 11.044122711313531, 9.0069951057714874, -5.9396329955529055, 6.5144624673546936, -6.6237325665461277, 5.7505943507059047, 6.4480568683630661, 16.1112369091577, 8.6016424590576257, 7.4714033965767532, -13.528592080057718, -8.4982760948147362, 9.7204545497931232, -6.4562558170458875, -14.150178377947556, 11.751616118553367, 6.0070165159337243, 6.9449626418548203, -15.126256210437514, -9.7431764764776236, -8.876463218361474, 9.0284399719220438, 15.073453876128392, 13.206659377846192, -3.4523853853115929, 9.7558870023124271, -12.058967118435369, -7.513853728934679, 14.964746497968617, 7.3467639146759316, -16.267222146617634, 10.457316186984949, -1.3736876992731295, -19.028624862193571, 6.2689422477285071, -7.2052733901016355, 19.395946436315498, -3.132819208979996, 11.798928050870122, 9.2702304868755583, -7.7224549316281159, -6.9578013286952274, 3.0911876615360234, -11.041946426442932, 14.013325139306163, -8.7052677346673892, 12.75898769362635, 16.761060445164567, -9.7151229616148491, -4.0703315492617795, 5.6473020008957269, -10.612999413615965, -9.4254350779685243, -3.9276038128045752, -17.026729820593356, -8.424154215942611, 1.2187489164289478, 5.8313796661521602, -6.2180611669233414, 12.998036492324015, -1.9067037718113109, -8.0612877855389282, 4.2253038888647296, -10.732641648813859, -7.3045004676514553, 7.7590428982291675, 5.1995141586647611, -9.9275214342240954, 9.2358499096791942, 16.320055456396389, 6.4700313827782239, 7.4560079428470925, -11.188331333348085, -5.8742724314680048, -6.9160594311406891, 16.994775009862593, -12.580529494819087, 12.251765927166845, -6.0397211911585096, 18.500338227610456, -9.3415798998849979, 4.2166328223989247, 15.992495543868285, -8.8374303192229871, 7.794601511254994, -9.2446173872942285, -4.2241407599800276, -3.6317947891654878, -11.503645352085876, 2.2293891779349062, -7.0972594752682587, 7.4553347426404102, -5.4871239754921124, 11.941843447047516, -6.5685789359629787, -5.7519598526588727, 11.132163514263386, -8.7158284177121814, -15.465587317683815, 9.2269600789591095, 10.514920493473857, -7.9515038807449656, -1.7659455589649102, 11.517020043615382, -2.842147983237294, -17.07404226916794, 7.6546092959597152, 6.0366140934254533, -4.9119038255795822, 3.0017790334729799, 7.364629533044333, -0.30876757355657375, 4.6704944379670055, -3.7846453090986092, 8.1168663608460996, 12.569433049081056, -6.5680452544341019, -11.687875571530249, 5.3455252949030152, -5.8739384126537999, 12.336912846866278, -12.187352179937047, -10.762736511657643, -13.728362176358916, 13.481091197376205, 20.215728760391368, -4.6330724568460946, -11.010865640213632, -15.546423484526052, -9.180879292495792, 5.60969984579312, 7.0458207069452508, -9.0859663557451587, 3.1218915795514603, -3.5746161372551124, 6.3046716775629115, 4.7049417414875361, 12.658169509453071, 7.6896814005156253, -10.100222971064603, 8.1975588789479144, 10.664698634012799, -7.684453515628392, -9.0663855675442004, 2.0159640621040276, -2.6901451586564513, -6.5423957586759558, -12.548026160146915, 8.5246035903640482, -0.20760014096318802, 2.513881830001568, -10.022801591620444, 7.4682387360959597, 5.8601101886230893, -12.699060743172828, -12.594971033148521, -7.2651889828829619, -7.7181201727819539, 5.7325939890446032, 1.9037734923840721, 6.4679849367511659, -4.5854626437630408, 9.7791348666583922, 6.9463515044744693, 5.7589530811862488, 7.4387964231457664, -10.548676785892669, -8.0141310532314787, -13.733069931485234, -5.9563447776774918, 2.3094845147950966, -15.548183407459007, 3.6403641528393331, 7.0657980779558498, -12.060589974915199, -7.5435216465553632, -7.9451035097999121, -11.355855965761799, -13.604227465548648, -5.2858045894514616, -15.074237039252267, 5.0342256970296031, -10.047891334829437, -7.5476650028120877, -13.135553638531196, 13.335291210589279, -8.3015934461830483, -7.1242078757196632, 7.4165964331245746, -11.978530018893565, 9.2825552390489801, 10.297494895739936, -5.6352022080705124, -10.775907668538773, -12.425421895665409, -11.578418328876452, 11.726677767952202, -5.6800250032733786, 7.5055956687306411, -5.0822668435272913, -6.1806882302960169, 2.7619111917324486, 1.3880530895730505, -3.267061215531363, -7.9062358776983608, -9.8822254887225895, 0.042596987384144601, -18.721186098480946, 6.2809470491135153, -8.5919361907833967, -9.4528212650574002, -0.42946614787551551, -9.7471847022480738, -2.5180103438457606, 7.1026257172531837, 15.054405511077857, -8.3632931292168653, -10.62711764548111, -12.729565385666962, 13.352497567712332, -4.13019164432668, -7.8355600520889723, -3.4095215304340725, -2.7246229213887867, 13.561843730450432, -14.379007078568874, 11.826952848891258, -11.400536273804352, 8.3810471390962462, -14.184050570248575, 7.5105880109842111, -2.2878414379050076, 15.169788102943443, -12.423854278773089, -16.853481953907202, -3.0539856062495048, 9.5258258006608738, -13.294954954033772, -7.1935249107278372, 12.621221969275366, 7.8989220530602893, 3.8377543005570955, 4.7690377320246871, -7.384166148934951, 10.334861379144421, -10.274185725776984, -7.660512381552711, 7.3680216050980096, 17.2154865886667, -11.555638968508676, -5.2123312917408828, -8.6742651332660614, 5.0064889708760525, -5.5487370240093012, 7.1983809609150224, 9.9944498733302272, 15.041759259342541, -7.0968495665534554, -5.3048916738390384, -4.4004665558320015, 0.61130867486904827, -9.5652360197388209, 2.3804090476127437, -13.00880511434177, 3.1004911438401592, -7.9257672664784797, -1.8498710126451656, 9.4089658079582676, -9.3980833510896122, 3.2850011750268808, 11.14162677836504, 9.0463525052204901, 17.759167515399369, -8.8862696648537689, 5.1450915491649409, -15.615150307773268, 8.2649197485165651, 3.3389335977197661, -14.403893803387318, -5.6464545636723633, 9.3258220331606356, -16.489910476642127, 0.94272857156461431, -7.117796211634638, 8.6340635171552211, -1.2102285972486879, 6.2782088175979966, -11.716934692108198, -13.052164576733411, 18.843873738601541, -8.4224555986266356, -1.1432524799001162, -3.8398585674607997, -8.4714833622312913, 2.0076683906851831, 9.2963876576745346, -8.0839565376672269, 12.295453213278766, 1.5119421372641451, 9.8998470462031776, -5.4780824940352852, 1.1647911971025293, -12.103113874013506, -3.7658943085565455, 9.0166245080951626, -8.6305499914144281, -7.8916091318734143, -13.664449973608248, 5.0933679355857704, -11.878457052893864, 16.283617978951966, 6.481687968258778, -7.6764315788480753, -10.637829608202328, 6.7202557437259403, 13.070109182549373, 11.32861639589585, 1.6023878516954715, 10.81099319579819, 11.064755987893601, -8.8993382477578553, 1.1065340825911127, -4.0072350338781044, -13.247125215116327, -12.902201228698958, 15.169451502840104, -3.8842697226530465, 7.225301354379301, -11.797852685816045, -8.4876550257372188, 15.014740389697723, -7.1777134822539024, 4.1563808876431727, 6.7961656493164897, 9.7772439433017837, 2.6003534672856192, -9.7640847894151364, -4.2051688010879182, -15.33565658024747, -12.504579708311388, 17.697085446646163, 5.6312969757365874, 10.240899486109848, 9.1619551197188134, 4.7029812523887085, -2.2046888221920842, 14.66532470205472, 9.4017352298948325, -6.117210458506948, -6.2527105853832241, 7.3418788249859661, -3.6555906611950397, 7.4710208495267914, 5.5773908821928915, 5.6464739233408832, -11.615308048177509, -10.69821757689555, -13.369385393755998, 6.0300942733256271, 15.607387338825525, -8.3086246196607227, -7.139670830160231, 8.8784588291256075, 4.1708577896337715, 2.6199826223917646, -13.065911490156337, -12.032534201424433, 9.6843978770284949, 7.1524531158330165, -13.135769434302969, 1.2427684037042608, 6.2493750435616269, 0.73878143318346856, 8.7227099006195505, 7.9663740421354419, 7.4937386461486719, 5.774464047604746, 4.2168093825758302, 4.7039817600578395, 13.415247674093951, -7.3174039448491781, -5.3909250082277875, 18.695142956129555, -12.304572907796414, -6.5398571898751117, 18.631807413371877, 9.4536969028645768, -13.511273178728333, -10.098213695601105, 16.086137486114445, 18.171369447471893, -2.1734552236459308, -11.782729170896866, 5.849586272815432, 2.8432532912453499, -8.6659364132968726, -9.397193645256646, -6.3510378255402182, 10.834119352361396, -12.567501212291639, -14.398105520628647, 0.5239804902430778, -11.960984222249122, 6.8701999902207866, 8.0199245631006484, 14.269997689580181, 15.2180752462958, -5.4141452527800009, -8.4604656780780214, -10.694272205515562, -12.821403781193764, 8.6812253918746212, 0.4525232549543311, -10.871924654919006, 2.4785398516664845, 12.674109486125982, -4.7531674501584495, -8.0661831358532119, 3.4451825561063716, 8.755949031759954, -9.4833485583637032, -2.0114798466168886, 6.0122157485115482, -10.758596640141253, -13.761354665322369, 8.5905176393054177, -18.228562554601435, 9.080612052222488, 8.0100529390576689, 3.070646795107026, -7.9897143166324804, -5.9493600674042657, -11.682410982429239, 9.9461080066481919, 13.875657245813436, -11.973248443192302, -10.046380635362567, 11.90216103103017, -9.8334952670900346, 9.5612352151746371, 13.116744300854657, 14.890206611587024, -5.1652284438441471, -9.1408609862296188, 0.68131117120729867, 10.105102898176298, 3.0892960928571287, 8.7208655049996171, -8.7314249296659536, 6.2622037924388589, 11.764851162340614, -10.158475697384489, -8.241762229290357, -4.392241536128906, 2.1365025208899553, 12.213135386472439, 10.674973455418831, -5.6136099825764028, 9.2271565795945918, -7.8507177690892025, -10.08053767291975, -6.422447124457614, -2.6002837724789458, 13.401297355087104, -6.8962451976034886, -7.5969203877193712, 15.930628754629025, 14.097561380198398, 6.6046768448215545, 10.60230900465903, -11.02144608625337, -16.832723742932952, 8.4030535324322333, -12.145417589148504, -14.454852580995478, 1.9572939413308439, -9.3989472440312198, -2.5327484722969262, -3.1432884014579705, -13.818082107891763, 7.5956036075988456, 10.968509524909171, 11.885444086327313, -2.3464206973006023, -12.277090696751678, 9.8489528008234171, 0.67512123985906181, -13.143678504215814, 14.094369358052766, 7.4943084657254548, -14.048054835858178, 9.6379845559922277, -3.7260180377250842, -17.784311336615762, -9.9122096142624407, -6.9409869403274822, -4.4694695770167767, -5.582926198616228, -3.1915641871381251, -8.5710422806326072, 12.761174819911322, 1.9876912021969184, -4.3233301507084612, -6.8999907772043469, -15.301865440425326, 10.916938981775766, -12.350602455670384, -10.542931739727027, 8.1739508602352391, 4.3903649389270001, 8.6785615014862216, -1.0832203953721748, 6.8106936608319817, 10.280910758363124, 7.9331359435106927, -6.2680382802730632, 9.3832393897838688, -11.100371066619278, 14.991146890736436, 9.4952786314282243, -12.3279500947281, 4.0471278249600369, 7.6407267357926916, 5.9145188591615749, -1.2642658202804962, 0.99680562205569856, -4.4005432201193422, 4.2794794689942304, 10.246091749207004, -14.172753816473582, 6.284155849638533, -7.4755210690065725, -11.133460612054247, -3.114492056114071, 11.612187785869857, -6.0797169756769698, 10.483978967793448, -7.4498355642649798, -9.6201040952112962, 4.1172134388084691, -1.0727347582503111, 7.5416007802447753, 8.485412175873023, -5.0536124690858752, -4.3415708303883287, -9.8603165390514871, 4.9595291263974532, 11.78565325523018, -8.8417637712915234, -3.3465091650762329, -12.955124625468562, 12.481083523950533, 8.0649722531194925, -7.4942449660127082, -6.930756000836765, -20.146436634823356, -8.2923264891201871, 10.119682922667883, 15.081958191316007, 10.959298710885019, -7.702423224481203, -8.5494236533905532, 11.214983659935584, -0.44116248520876644 +}; +const char H_4096_8192_3d_detected_data[] = { +0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0 +}; diff --git a/src/H_4096_8192_3d.h b/src/H_4096_8192_3d.h new file mode 100644 index 0000000..588e617 --- /dev/null +++ b/src/H_4096_8192_3d.h @@ -0,0 +1,19 @@ +/* + FILE....: H_4096_8192_3d.h + + Static arrays for LDPC codec H_4096_8192_3d, generated by ldpc_gen_c_h_file.m. +*/ + +#define H_4096_8192_3d_NUMBERPARITYBITS 4096 +#define H_4096_8192_3d_MAX_ROW_WEIGHT 9 +#define H_4096_8192_3d_CODELENGTH 8192 +#define H_4096_8192_3d_NUMBERROWSHCOLS 4096 +#define H_4096_8192_3d_MAX_COL_WEIGHT 13 +#define H_4096_8192_3d_DEC_TYPE 0 +#define H_4096_8192_3d_MAX_ITER 100 + +extern const uint16_t H_4096_8192_3d_H_rows[]; +extern const uint16_t H_4096_8192_3d_H_cols[]; +extern const float H_4096_8192_3d_input[]; +extern const char H_4096_8192_3d_detected_data[]; + diff --git a/src/_kiss_fft_guts.h b/src/_kiss_fft_guts.h new file mode 100644 index 0000000..1c62a34 --- /dev/null +++ b/src/_kiss_fft_guts.h @@ -0,0 +1,164 @@ +/* +Copyright (c) 2003-2010, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* kiss_fft.h + defines kiss_fft_scalar as either short or a float type + and defines + typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */ +#include "kiss_fft.h" +#include + +#define MAXFACTORS 32 +/* e.g. an fft of length 128 has 4 factors + as far as kissfft is concerned + 4*4*4*2 + */ + +struct kiss_fft_state{ + int nfft; + int inverse; + int factors[2*MAXFACTORS]; + kiss_fft_cpx twiddles[1]; +}; + +/* + Explanation of macros dealing with complex math: + + C_MUL(m,a,b) : m = a*b + C_FIXDIV( c , div ) : if a fixed point impl., c /= div. noop otherwise + C_SUB( res, a,b) : res = a - b + C_SUBFROM( res , a) : res -= a + C_ADDTO( res , a) : res += a + * */ +#ifdef FIXED_POINT +#if (FIXED_POINT==32) +# define FRACBITS 31 +# define SAMPPROD int64_t +#define SAMP_MAX 2147483647 +#else +# define FRACBITS 15 +# define SAMPPROD int32_t +#define SAMP_MAX 32767 +#endif + +#define SAMP_MIN -SAMP_MAX + +#if defined(CHECK_OVERFLOW) +# define CHECK_OVERFLOW_OP(a,op,b) \ + if ( (SAMPPROD)(a) op (SAMPPROD)(b) > SAMP_MAX || (SAMPPROD)(a) op (SAMPPROD)(b) < SAMP_MIN ) { \ + fprintf(stderr,"WARNING:overflow @ " __FILE__ "(%d): (%d " #op" %d) = %ld\n",__LINE__,(a),(b),(SAMPPROD)(a) op (SAMPPROD)(b) ); } +#endif + + +# define smul(a,b) ( (SAMPPROD)(a)*(b) ) +# define sround( x ) (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS ) + +# define S_MUL(a,b) sround( smul(a,b) ) + +# define C_MUL(m,a,b) \ + do{ (m).r = sround( smul((a).r,(b).r) - smul((a).i,(b).i) ); \ + (m).i = sround( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0) + +# define DIVSCALAR(x,k) \ + (x) = sround( smul( x, SAMP_MAX/k ) ) + +# define C_FIXDIV(c,div) \ + do { DIVSCALAR( (c).r , div); \ + DIVSCALAR( (c).i , div); }while (0) + +# define C_MULBYSCALAR( c, s ) \ + do{ (c).r = sround( smul( (c).r , s ) ) ;\ + (c).i = sround( smul( (c).i , s ) ) ; }while(0) + +#else /* not FIXED_POINT*/ + +# define S_MUL(a,b) ( (a)*(b) ) +#define C_MUL(m,a,b) \ + do{ (m).r = (a).r*(b).r - (a).i*(b).i;\ + (m).i = (a).r*(b).i + (a).i*(b).r; }while(0) +# define C_FIXDIV(c,div) /* NOOP */ +# define C_MULBYSCALAR( c, s ) \ + do{ (c).r *= (s);\ + (c).i *= (s); }while(0) +#endif + +#ifndef CHECK_OVERFLOW_OP +# define CHECK_OVERFLOW_OP(a,op,b) /* noop */ +#endif + +#define C_ADD( res, a,b)\ + do { \ + CHECK_OVERFLOW_OP((a).r,+,(b).r)\ + CHECK_OVERFLOW_OP((a).i,+,(b).i)\ + (res).r=(a).r+(b).r; (res).i=(a).i+(b).i; \ + }while(0) +#define C_SUB( res, a,b)\ + do { \ + CHECK_OVERFLOW_OP((a).r,-,(b).r)\ + CHECK_OVERFLOW_OP((a).i,-,(b).i)\ + (res).r=(a).r-(b).r; (res).i=(a).i-(b).i; \ + }while(0) +#define C_ADDTO( res , a)\ + do { \ + CHECK_OVERFLOW_OP((res).r,+,(a).r)\ + CHECK_OVERFLOW_OP((res).i,+,(a).i)\ + (res).r += (a).r; (res).i += (a).i;\ + }while(0) + +#define C_SUBFROM( res , a)\ + do {\ + CHECK_OVERFLOW_OP((res).r,-,(a).r)\ + CHECK_OVERFLOW_OP((res).i,-,(a).i)\ + (res).r -= (a).r; (res).i -= (a).i; \ + }while(0) + + +#ifdef FIXED_POINT +# define KISS_FFT_COS(phase) floorf(.5+SAMP_MAX * cosf (phase)) +# define KISS_FFT_SIN(phase) floorf(.5+SAMP_MAX * sinf (phase)) +# define HALF_OF(x) ((x)>>1) +#elif defined(USE_SIMD) +# define KISS_FFT_COS(phase) _mm_set1_ps( cosf(phase) ) +# define KISS_FFT_SIN(phase) _mm_set1_ps( sinf(phase) ) +# define HALF_OF(x) ((x)*_mm_set1_ps(.5)) +#else +# define KISS_FFT_COS(phase) (kiss_fft_scalar) cosf(phase) +# define KISS_FFT_SIN(phase) (kiss_fft_scalar) sinf(phase) +# define HALF_OF(x) ((x)*.5) +#endif + +#define kf_cexp(x,phase) \ + do{ \ + (x)->r = KISS_FFT_COS(phase);\ + (x)->i = KISS_FFT_SIN(phase);\ + }while(0) + + +/* a debugging function */ +#define pcpx(c)\ + fprintf(stderr,"%g + %gi\n",(double)((c)->r),(double)((c)->i) ) + + +#ifdef KISS_FFT_USE_ALLOCA +// define this to allow use of alloca instead of malloc for temporary buffers +// Temporary buffers are used in two case: +// 1. FFT sizes that have "bad" factors. i.e. not 2,3 and 5 +// 2. "in-place" FFTs. Notice the quotes, since kissfft does not really do an in-place transform. +#include +#define KISS_FFT_TMP_ALLOC(nbytes) alloca(nbytes) +#define KISS_FFT_TMP_FREE(ptr) +#else +#define KISS_FFT_TMP_ALLOC(nbytes) KISS_FFT_MALLOC(nbytes) +#define KISS_FFT_TMP_FREE(ptr) KISS_FFT_FREE(ptr) +#endif diff --git a/src/bpf.h b/src/bpf.h new file mode 100644 index 0000000..0b0a6e2 --- /dev/null +++ b/src/bpf.h @@ -0,0 +1,106 @@ +#define BPF_N 101 + +float bpf[]={ + 0.002174, + 0.003245, + 0.002147, + 0.001866, + 0.002764, + 0.000567, + -0.001641, + -0.000565, + -0.002415, + -0.005837, + -0.003620, + -0.002828, + -0.006268, + -0.002787, + 0.001963, + -0.001234, + 0.001446, + 0.009200, + 0.005331, + 0.003521, + 0.011821, + 0.006951, + -0.002015, + 0.005137, + 0.001828, + -0.013390, + -0.007058, + -0.003273, + -0.020458, + -0.014321, + 0.001751, + -0.012891, + -0.009730, + 0.018993, + 0.008544, + 0.000534, + 0.035755, + 0.029074, + -0.001192, + 0.030852, + 0.030983, + -0.029834, + -0.009550, + 0.011945, + -0.081971, + -0.082875, + 0.000423, + -0.133526, + -0.211778, + 0.182628, + 0.514906, + 0.182628, + -0.211778, + -0.133526, + 0.000423, + -0.082875, + -0.081971, + 0.011945, + -0.009550, + -0.029834, + 0.030983, + 0.030852, + -0.001192, + 0.029074, + 0.035755, + 0.000534, + 0.008544, + 0.018993, + -0.009730, + -0.012891, + 0.001751, + -0.014321, + -0.020458, + -0.003273, + -0.007058, + -0.013390, + 0.001828, + 0.005137, + -0.002015, + 0.006951, + 0.011821, + 0.003521, + 0.005331, + 0.009200, + 0.001446, + -0.001234, + 0.001963, + -0.002787, + -0.006268, + -0.002828, + -0.003620, + -0.005837, + -0.002415, + -0.000565, + -0.001641, + 0.000567, + 0.002764, + 0.001866, + 0.002147, + 0.003245, + 0.002174 +}; + diff --git a/src/bpfb.h b/src/bpfb.h new file mode 100644 index 0000000..73b1a69 --- /dev/null +++ b/src/bpfb.h @@ -0,0 +1,105 @@ +#define BPFB_N 101 + +float bpfb[]={ + 0.003795, + 0.006827, + 0.002261, + 0.002523, + 0.005758, + -0.000264, + -0.000674, + 0.003113, + -0.004144, + -0.004923, + 0.000043, + -0.008017, + -0.008711, + -0.001802, + -0.010210, + -0.010428, + -0.000899, + -0.009413, + -0.009072, + 0.003469, + -0.005335, + -0.004828, + 0.010724, + 0.000941, + 0.000708, + 0.018957, + 0.007084, + 0.004825, + 0.025418, + 0.010147, + 0.004452, + 0.027434, + 0.007550, + -0.002861, + 0.023483, + -0.001944, + -0.018138, + 0.014122, + -0.017583, + -0.040768, + 0.002598, + -0.036604, + -0.069541, + -0.004273, + -0.054876, + -0.107289, + 0.010068, + -0.068052, + -0.200119, + 0.207287, + 0.597150, + 0.207287, + -0.200119, + -0.068052, + 0.010068, + -0.107289, + -0.054876, + -0.004273, + -0.069541, + -0.036604, + 0.002598, + -0.040768, + -0.017583, + 0.014122, + -0.018138, + -0.001944, + 0.023483, + -0.002861, + 0.007550, + 0.027434, + 0.004452, + 0.010147, + 0.025418, + 0.004825, + 0.007084, + 0.018957, + 0.000708, + 0.000941, + 0.010724, + -0.004828, + -0.005335, + 0.003469, + -0.009072, + -0.009413, + -0.000899, + -0.010428, + -0.010210, + -0.001802, + -0.008711, + -0.008017, + 0.000043, + -0.004923, + -0.004144, + 0.003113, + -0.000674, + -0.000264, + 0.005758, + 0.002523, + 0.002261, + 0.006827, + 0.003795 +}; \ No newline at end of file diff --git a/src/c2dec.c b/src/c2dec.c new file mode 100644 index 0000000..ad0eea9 --- /dev/null +++ b/src/c2dec.c @@ -0,0 +1,431 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: c2dec.c + AUTHOR......: David Rowe + DATE CREATED: 23/8/2010 + + Decodes a file of bits to a file of raw speech samples using codec2. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2010 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include "codec2.h" +#include "dump.h" +#include "c2file.h" + +#include +#include +#include +#include +#include +#include + +#define NONE 0 /* no bit errors */ +#define UNIFORM 1 /* random bit errors */ +#define TWO_STATE 2 /* Two state error model */ +#define UNIFORM_RANGE 3 /* random bit errors over a certain range */ + +void print_help(const struct option *long_options, int num_opts, char* argv[]); + +int main(int argc, char *argv[]) +{ + int mode=0; + void *codec2; + FILE *fin; + FILE *fout; + FILE *fber = NULL; + short *buf; + unsigned char *bits; + float *softdec_bits; + char *bitperchar_bits; + int nsam, nbit, nbyte, i, byte, frames, bits_proc, bit_errors, error_mode; + int nstart_bit, nend_bit, bit_rate; + int state, next_state; + float ber, r, burst_length, burst_period, burst_timer, ber_est; + unsigned char mask; + int natural, softdec, bit, ret, bitperchar; +#ifdef DUMP + int dump; +#endif + int report_energy; + FILE *f_ratek = NULL; + float *user_ratek; + int K; + + char* opt_string = "h:"; + struct option long_options[] = { + { "ber", required_argument, NULL, 0 }, + { "startbit", required_argument, NULL, 0 }, + { "endbit", required_argument, NULL, 0 }, + { "berfile", required_argument, NULL, 0 }, + { "natural", no_argument, &natural, 1 }, + { "softdec", no_argument, &softdec, 1 }, + { "bitperchar", no_argument, &bitperchar, 1 }, + #ifdef DUMP + { "dump", required_argument, &dump, 1 }, + #endif + { "energy", no_argument, NULL, 0 }, + { "mlfeat", required_argument, NULL, 0 }, + { "loadcb", required_argument, NULL, 0 }, + { "loadratek", required_argument, NULL, 0 }, + { "nopf", no_argument, NULL, 0 }, + { "help", no_argument, NULL, 'h' }, + { NULL, no_argument, NULL, 0 } + }; + int num_opts=sizeof(long_options)/sizeof(struct option); + + if (argc < 4) + print_help(long_options, num_opts, argv); + + if (strcmp(argv[2], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[2],"rb")) == NULL ) { + fprintf(stderr, "Error opening input bit file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (strcmp(argv[3], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[3],"wb")) == NULL ) { + fprintf(stderr, "Error opening output speech file: %s: %s.\n", + argv[3], strerror(errno)); + exit(1); + } + + // Attempt to detect a .c2 file with a header + struct c2_header in_hdr; + char *ext = strrchr(argv[2], '.'); + if ((ext != NULL) && (strcmp(ext, ".c2") == 0)) { + int nread = fread(&in_hdr,sizeof(in_hdr),1,fin); + assert (nread == 1); + + if (memcmp(in_hdr.magic, c2_file_magic, sizeof(c2_file_magic)) == 0) { + fprintf(stderr, "Detected Codec2 file version %d.%d in mode %d\n", + in_hdr.version_major, + in_hdr.version_minor, + in_hdr.mode); + + mode = in_hdr.mode; + } else { + fprintf(stderr, "Codec2 file specified but no header detected\n"); + // Rewind the input file so we can try to decode + // based on command line mode selection + fseek(fin,0,SEEK_SET); + } /* end if - magic detection */ + } else { + // If we got here, we need to honor the command line mode + if (strcmp(argv[1],"3200") == 0) + mode = CODEC2_MODE_3200; + else if (strcmp(argv[1],"2400") == 0) + mode = CODEC2_MODE_2400; + else if (strcmp(argv[1],"1600") == 0) + mode = CODEC2_MODE_1600; + else if (strcmp(argv[1],"1400") == 0) + mode = CODEC2_MODE_1400; + else if (strcmp(argv[1],"1300") == 0) + mode = CODEC2_MODE_1300; + else if (strcmp(argv[1],"1200") == 0) + mode = CODEC2_MODE_1200; + else if (strcmp(argv[1],"700C") == 0) + mode = CODEC2_MODE_700C; + else if (strcmp(argv[1],"450") == 0) + mode = CODEC2_MODE_450; + else if (strcmp(argv[1],"450PWB") == 0) + mode = CODEC2_MODE_450PWB; + else { + fprintf(stderr, "Error in mode: %s. Must be 3200, 2400, 1600, 1400, 1300, 1200, 700C, 450, or 450PWB\n", argv[1]); + exit(1); + } + bit_rate = atoi(argv[1]); + }; /* end if - extension / header detection */ + + error_mode = NONE; + ber = 0.0; + burst_length = burst_period = 0.0; + burst_timer = 0.0; + natural = softdec = bitperchar = 0; + report_energy = 0; +#ifdef DUMP + dump = 0; +#endif + + codec2 = codec2_create(mode); + assert(codec2 != NULL); + nsam = codec2_samples_per_frame(codec2); + nbit = codec2_bits_per_frame(codec2); + buf = (short*)malloc(nsam*sizeof(short)); + nbyte = (nbit + 7) / 8; + bits = (unsigned char*)malloc(nbyte*sizeof(char)); + softdec_bits = (float*)malloc(nbit*sizeof(float)); + bitperchar_bits = (char*)malloc(nbit*sizeof(char)); + frames = bit_errors = bits_proc = 0; + nstart_bit = 0; + nend_bit = nbit-1; + + while(1) { + int option_index = 0; + int opt = getopt_long(argc, argv, opt_string, + long_options, &option_index); + if (opt == -1) + break; + + switch (opt) { + case 0: + if(strcmp(long_options[option_index].name, "ber") == 0) { + ber = atof(optarg); + error_mode = UNIFORM; + } else if(strcmp(long_options[option_index].name, "startbit") == 0) { + nstart_bit = atoi(optarg); + } else if(strcmp(long_options[option_index].name, "endbit") == 0) { + nend_bit = atoi(optarg); + } else if(strcmp(long_options[option_index].name, "berfile") == 0) { + if ((fber = fopen(optarg,"wt")) == NULL) { + fprintf(stderr, "Error opening BER file: %s %s.\n", + optarg, strerror(errno)); + exit(1); + } + + } + #ifdef DUMP + else if(strcmp(long_options[option_index].name, "dump") == 0) { + if (dump) + dump_on(optarg); + } + #endif + else if (strcmp(long_options[option_index].name, "energy") == 0) { + report_energy = 1; + } + else if (strcmp(long_options[option_index].name, "loadcb") == 0) { + /* load VQ stage (700C only) */ + //fprintf(stderr, "%s\n", optarg+1); + codec2_load_codebook(codec2, atoi(optarg)-1, argv[optind]); + } + else if (strcmp(long_options[option_index].name, "loadratek") == 0) { + /* load rate K vectors (by passing quantisation) for 700C VQ tests */ + fprintf(stderr, "%s\n", optarg); + f_ratek = fopen(optarg, "rb"); + assert(f_ratek != NULL); + user_ratek = codec2_enable_user_ratek(codec2, &K); + } + else if (strcmp(long_options[option_index].name, "nopf") == 0) { + codec2_700c_post_filter(codec2, 0); + } + else if (strcmp(long_options[option_index].name, "mlfeat") == 0) { + /* dump machine learning features (700C only) */ + codec2_open_mlfeat(codec2, optarg, NULL); + } + break; + + case 'h': + print_help(long_options, num_opts, argv); + break; + + default: + /* This will never be reached */ + break; + } + } + assert(nend_bit <= nbit); + codec2_set_natural_or_gray(codec2, !natural); + //printf("%d %d\n", nstart_bit, nend_bit); + + //fprintf(stderr, "softdec: %d natural: %d\n", softdec, natural); + if (softdec) { + ret = (fread(softdec_bits, sizeof(float), nbit, fin) == (size_t)nbit); + } + if (bitperchar) { + ret = (fread(bitperchar_bits, sizeof(char), nbit, fin) == (size_t)nbit); + } + if (!softdec && !bitperchar) { + ret = (fread(bits, sizeof(char), nbyte, fin) == (size_t)nbyte); + } + + while(ret) { + frames++; + + // apply bit errors, MSB of byte 0 is bit 0 in frame, only works in packed mode + + if ((error_mode == UNIFORM) || (error_mode == UNIFORM_RANGE)) { + assert(softdec == 0); + for(i=nstart_bit; i (burst_period - burst_length)) + next_state = 1; + break; + + case 1: + + /* burst error state - 50% bit error rate */ + + for(i=nstart_bit; i burst_period) { + burst_timer = 0.0; + next_state = 0; + } + break; + + } + + state = next_state; + } + + if (fber != NULL) { + if (fread(&ber_est, sizeof(float), 1, fber) != 1) { + fprintf(stderr, "ran out of BER estimates!\n"); + exit(1); + } + //fprintf(stderr, "ber_est: %f\n", ber_est); + } + else + ber_est = 0.0; + + if (softdec) { + /* pack bits, MSB received first */ + + bit = 7; byte = 0; + memset(bits, 0, nbyte); + for(i=0; i. +*/ + +#include "codec2.h" +#include "c2file.h" + +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + int mode; + void *codec2; + FILE *fin; + FILE *fout; + short *buf; + unsigned char *bits; + int nsam, nbit, nbyte, gray, softdec, bitperchar; + float *unpacked_bits_float; + char *unpacked_bits_char; + int bit, byte,i; + int report_var = 0; + int eq = 0; + + if (argc < 4) { + printf("usage: c2enc 3200|2400|1600|1400|1300|1200|700C|450|450PWB InputRawspeechFile OutputBitFile [--natural] [--softdec] [--bitperchar] [--mlfeat f32File modelFile] [--loadcb stageNum Filename] [--var] [--eq]\n"); + printf("e.g. (headerless) c2enc 1300 ../raw/hts1a.raw hts1a.bin\n"); + printf("e.g. (with header to detect mode) c2enc 1300 ../raw/hts1a.raw hts1a.c2\n"); + exit(1); + } + + if (strcmp(argv[1],"3200") == 0) + mode = CODEC2_MODE_3200; + else if (strcmp(argv[1],"2400") == 0) + mode = CODEC2_MODE_2400; + else if (strcmp(argv[1],"1600") == 0) + mode = CODEC2_MODE_1600; + else if (strcmp(argv[1],"1400") == 0) + mode = CODEC2_MODE_1400; + else if (strcmp(argv[1],"1300") == 0) + mode = CODEC2_MODE_1300; + else if (strcmp(argv[1],"1200") == 0) + mode = CODEC2_MODE_1200; + else if (strcmp(argv[1],"700C") == 0) + mode = CODEC2_MODE_700C; + else if (strcmp(argv[1],"450") == 0) + mode = CODEC2_MODE_450; + else if (strcmp(argv[1],"450PWB") == 0) + mode = CODEC2_MODE_450; + else { + fprintf(stderr, "Error in mode: %s. Must be 3200, 2400, 1600, 1400, 1300, 1200, 700C, 450, 450PWB or WB\n", argv[1]); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[2],"rb")) == NULL ) { + fprintf(stderr, "Error opening input speech file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (strcmp(argv[3], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[3],"wb")) == NULL ) { + fprintf(stderr, "Error opening output compressed bit file: %s: %s.\n", + argv[3], strerror(errno)); + exit(1); + } + + // Write a header if we're writing to a .c2 file + char *ext = strrchr(argv[3], '.'); + if (ext != NULL) { + if (strcmp(ext, ".c2") == 0) { + struct c2_header out_hdr; + memcpy(out_hdr.magic,c2_file_magic,sizeof(c2_file_magic)); + out_hdr.mode = mode; + out_hdr.version_major = CODEC2_VERSION_MAJOR; + out_hdr.version_minor = CODEC2_VERSION_MINOR; + // TODO: Handle flags (this block needs to be moved down) + out_hdr.flags = 0; + fwrite(&out_hdr,sizeof(out_hdr),1,fout); + }; + }; + + codec2 = codec2_create(mode); + nsam = codec2_samples_per_frame(codec2); + nbit = codec2_bits_per_frame(codec2); + buf = (short*)malloc(nsam*sizeof(short)); + nbyte = (nbit + 7) / 8; + + bits = (unsigned char*)malloc(nbyte*sizeof(char)); + unpacked_bits_float = (float*)malloc(nbit*sizeof(float)); + unpacked_bits_char = (char*)malloc(nbit*sizeof(char)); + + gray = 1; softdec = 0; bitperchar = 0; + for (i=4; i> bit) & 0x1); + unpacked_bits_char[i] = (bits[byte] >> bit) & 0x1; + bit--; + if (bit < 0) { + bit = 7; + byte++; + } + } + if (softdec) { + fwrite(unpacked_bits_float, sizeof(float), nbit, fout); + } + if (bitperchar) { + fwrite(unpacked_bits_char, sizeof(char), nbit, fout); + } + } + else + fwrite(bits, sizeof(char), nbyte, fout); + + // if this is in a pipeline, we probably don't want the usual + // buffering to occur + + if (fout == stdout) fflush(stdout); + } + + if (report_var) { + float var = codec2_get_var(codec2); + fprintf(stderr, "%s var: %5.2f std: %5.2f\n", argv[2], var, sqrt(var)); + } + codec2_destroy(codec2); + + free(buf); + free(bits); + free(unpacked_bits_float); + free(unpacked_bits_char); + fclose(fin); + fclose(fout); + + return 0; +} diff --git a/src/c2file.h b/src/c2file.h new file mode 100644 index 0000000..fccf95f --- /dev/null +++ b/src/c2file.h @@ -0,0 +1,19 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: c2file.h + AUTHOR......: Kevin Otte + DATE CREATED: 2017-08-01 + + Header structures for Codec2 file storage + +\*---------------------------------------------------------------------------*/ + +const char c2_file_magic[3] = {0xc0, 0xde, 0xc2}; + +struct c2_header { + char magic[3]; + char version_major; + char version_minor; + char mode; + char flags; +}; diff --git a/src/c2sim.c b/src/c2sim.c new file mode 100644 index 0000000..01ebba1 --- /dev/null +++ b/src/c2sim.c @@ -0,0 +1,1168 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: c2sim.c + AUTHOR......: David Rowe + DATE CREATED: 20/8/2010 + + Codec2 simulation. Combines encoder and decoder and allows + switching in and out various algorithms and quantisation steps. Used + for algorithm development. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "defines.h" +#include "sine.h" +#include "nlp.h" +#include "dump.h" +#include "lpc.h" +#include "lsp.h" +#include "quantise.h" +#include "phase.h" +#include "postfilter.h" +#include "interp.h" +#include "bpf.h" +#include "bpfb.h" +#include "newamp1.h" +#include "lpcnet_freq.h" +#include "sd.h" + +void synth_one_frame(int n_samp, codec2_fftr_cfg fftr_inv_cfg, short buf[], MODEL *model, float Sn_[], float Pn[], int prede, float *de_mem, float gain); +void print_help(const struct option *long_options, int num_opts, char* argv[]); + +#define N_SAMP n_samp /* quick fix for run time sample rate selection */ + +/*---------------------------------------------------------------------------*\ + + MAIN + +\*---------------------------------------------------------------------------*/ + +int main(int argc, char *argv[]) +{ + + int Fs = 8000; + int set_fs; + + int lpc_model = 0, order = LPC_ORD; + int lsp = 0, lspd = 0, lspvq = 0; + int lspjmv = 0; + int prede = 0; + int postfilt; + int hand_voicing = 0, hi = 0, simlpcpf = 0, modelin=0, modelout=0; + int lpcpf = 0; + FILE *fvoicing = 0; + int dec; + int decimate = 1; + int amread, Woread, pahw; + int awread; + int hmread; + int phase0 = 0; + int scalar_quant_Wo_e = 0; + int scalar_quant_Wo_e_low = 0; + int vector_quant_Wo_e = 0; + int dump_pitch_e = 0; + float gain = 1.0; + int bpf_en = 0; + int bpfb_en = 0; + FILE *fam = NULL, *fWo = NULL; + FILE *faw = NULL; + FILE *fhm = NULL; + FILE *fjmv = NULL; + FILE *flspEWov = NULL; + FILE *ften_ms_centre = NULL; + FILE *fmodelout = NULL; + FILE *fmodelin = NULL; + #ifdef DUMP + int dump; + #endif + char out_file[MAX_STR]; + FILE *fout = NULL; /* output speech file */ + int rateK = 0, newamp1vq = 0, rate_K_dec = 0, perframe=0; + int bands = 0, bands_lower_en; + float bands_lower = -1E32; + int K = 20; + float framelength_s = N_S; + int lspEWov = 0, rateKWov = 0, first = 0; + FILE *frateKWov = NULL; + int ten_ms_centre = 0; + FILE *fphasenn = NULL; + FILE *frateK = NULL; + FILE *frateKin = NULL; + int rateKout, rateKin; + FILE *fbands = NULL; + int bands_resample = 0; + + char* opt_string = "ho:"; + struct option long_options[] = { + { "Fs", required_argument, &set_fs, 1 }, + { "rateK", no_argument, &rateK, 1 }, + { "perframe", no_argument, &perframe, 1 }, + { "newamp1vq", no_argument, &newamp1vq, 1 }, + { "rateKdec", required_argument, &rate_K_dec, 1 }, + { "rateKout", required_argument, &rateKout, 1 }, + { "rateKin", required_argument, &rateKin, 1 }, + { "bands",required_argument, &bands, 1 }, + { "bands_lower",required_argument, &bands_lower_en, 1 }, + { "bands_resample", no_argument, &bands_resample, 1 }, + { "lpc", required_argument, &lpc_model, 1 }, + { "lsp", no_argument, &lsp, 1 }, + { "lspd", no_argument, &lspd, 1 }, + { "lspvq", no_argument, &lspvq, 1 }, + { "lspjmv", no_argument, &lspjmv, 1 }, + { "phase0", no_argument, &phase0, 1 }, + { "postfilter", no_argument, &postfilt, 1 }, + { "hand_voicing", required_argument, &hand_voicing, 1 }, + { "dec", required_argument, &dec, 1 }, + { "hi", no_argument, &hi, 1 }, + { "simlpcpf", no_argument, &simlpcpf, 1 }, + { "lpcpf", no_argument, &lpcpf, 1 }, + { "prede", no_argument, &prede, 1 }, + { "dump_pitch_e", required_argument, &dump_pitch_e, 1 }, + { "sq_pitch_e", no_argument, &scalar_quant_Wo_e, 1 }, + { "sq_pitch_e_low", no_argument, &scalar_quant_Wo_e_low, 1 }, + { "vq_pitch_e", no_argument, &vector_quant_Wo_e, 1 }, + { "rate", required_argument, NULL, 0 }, + { "gain", required_argument, NULL, 0 }, + { "bpf", no_argument, &bpf_en, 1 }, + { "bpfb", no_argument, &bpfb_en, 1 }, + { "amread", required_argument, &amread, 1 }, + { "hmread", required_argument, &hmread, 1 }, + { "awread", required_argument, &awread, 1 }, + { "Woread", required_argument, &Woread, 1 }, + { "pahw", required_argument, &pahw, 1 }, + { "lspEWov", required_argument, &lspEWov, 1 }, + { "rateKWov", required_argument, &rateKWov, 1 }, + { "first", no_argument, &first, 1 }, + { "ten_ms_centre", required_argument, &ten_ms_centre, 1 }, + { "framelength_s", required_argument, NULL, 0 }, + { "modelout", required_argument, &modelout, 1 }, + { "modelin", required_argument, &modelin, 1 }, + #ifdef DUMP + { "dump", required_argument, &dump, 1 }, + #endif + { "help", no_argument, NULL, 'h' }, + { NULL, no_argument, NULL, 0 } + }; + int num_opts=sizeof(long_options)/sizeof(struct option); + + /*----------------------------------------------------------------*\ + + Interpret Command Line Arguments + + \*----------------------------------------------------------------*/ + + if (argc < 2) { + print_help(long_options, num_opts, argv); + } + + while(1) { + int option_index = 0; + int opt = getopt_long(argc, argv, opt_string, + long_options, &option_index); + if (opt == -1) + break; + switch (opt) { + case 0: + if(strcmp(long_options[option_index].name, "Fs") == 0) { + Fs= atoi(optarg); + if((Fs != 8000) && (Fs != 16000)) { + fprintf(stderr, "Error Fs must be 8000 or 16000\n"); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "lpc") == 0) { + order = atoi(optarg); + #ifdef DUMP + } else if(strcmp(long_options[option_index].name, "dump") == 0) { + if (dump) + dump_on(optarg); + #endif + } else if(strcmp(long_options[option_index].name, "lsp") == 0 + || strcmp(long_options[option_index].name, "lspd") == 0 + || strcmp(long_options[option_index].name, "lspvq") == 0) { + assert(order == LPC_ORD); + } else if(strcmp(long_options[option_index].name, "rateKdec") == 0) { + rate_K_dec = atoi(optarg); + fprintf(stderr, "rate_K_dec: %d\n", rate_K_dec); + } else if(strcmp(long_options[option_index].name, "rateKout") == 0) { + /* read model records from file or stdin */ + if ((frateK = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening output rateK file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + fprintf(stderr, "each record is %d bytes\n", (int)(K*sizeof(float))); + } else if(strcmp(long_options[option_index].name, "rateKin") == 0) { + /* read model records from file or stdin */ + if ((frateKin = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening input rateK file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + fprintf(stderr, "each record is %d bytes\n", (int)(K*sizeof(float))); + } else if(strcmp(long_options[option_index].name, "bands") == 0) { + /* write mel spaced band energies to file or stdout */ + if ((fbands = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening bands file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "bands_lower") == 0) { + bands_lower = atof(optarg); + fprintf(stderr, "bands_lower: %f\n", bands_lower); + } else if(strcmp(long_options[option_index].name, "dec") == 0) { + + decimate = atoi(optarg); + if ((decimate != 2) && (decimate != 3) && (decimate != 4)) { + fprintf(stderr, "Error in --dec, must be 2, 3, or 4\n"); + exit(1); + } + + if (!phase0) { + fprintf(stderr, "needs --phase0 to resample phase when using --dec\n"); + exit(1); + } + if (!lpc_model) { + fprintf(stderr, "needs --lpc [order] to resample amplitudes when using --dec\n"); + exit(1); + } + + } else if(strcmp(long_options[option_index].name, "hand_voicing") == 0) { + if ((fvoicing = fopen(optarg,"rt")) == NULL) { + fprintf(stderr, "Error opening voicing file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "Woread") == 0) { + if ((fWo = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening float Wo file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "amread") == 0) { + if ((fam = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening float Am file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "hmread") == 0) { + if ((fhm = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening float Hm file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "awread") == 0) { + if ((faw = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening float Aw file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "dump_pitch_e") == 0) { + if ((fjmv = fopen(optarg,"wt")) == NULL) { + fprintf(stderr, "Error opening pitch & energy dump file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "gain") == 0) { + gain = atof(optarg); + } else if(strcmp(long_options[option_index].name, "framelength_s") == 0) { + framelength_s = atof(optarg); + } else if(strcmp(long_options[option_index].name, "pahw") == 0) { + + /* set up a bunch of arguments instead of having to enter them on cmd line every time */ + + phase0 = postfilt = amread = hmread = Woread = 1; + char file_name[MAX_STR]; + sprintf(file_name, "%s_am.out", optarg); + fprintf(stderr, "reading %s", file_name); + if ((fam = fopen(file_name,"rb")) == NULL) { + fprintf(stderr, "Error opening float Am file: %s: %s.\n", + file_name, strerror(errno)); + exit(1); + } + sprintf(file_name, "%s_hm.out", optarg); + fprintf(stderr, " %s", file_name); + if ((fhm = fopen(file_name,"rb")) == NULL) { + fprintf(stderr, "Error opening float Hm file: %s: %s.\n", + file_name, strerror(errno)); + exit(1); + } + sprintf(file_name, "%s_Wo.out", optarg); + fprintf(stderr, " %s\n", file_name); + if ((fWo = fopen(file_name,"rb")) == NULL) { + fprintf(stderr, "Error opening float Wo file: %s: %s.\n", + file_name, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "lspEWov") == 0) { + /* feature file for deep learning experiments */ + lpc_model = 1; phase0 = 1; + if ((flspEWov = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening lspEWov float file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "rateKWov") == 0) { + /* feature file for deep learning experiments */ + rateK = 1; newamp1vq = 1; + if ((frateKWov = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening rateKWov float file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "ten_ms_centre") == 0) { + /* dump 10ms of audio centred on analysis frame to check time alignment with + 16 kHz source audio */ + ten_ms_centre = 1; + if ((ften_ms_centre = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening ten_ms_centre short file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + } else if(strcmp(long_options[option_index].name, "modelout") == 0) { + /* write model records to file or stdout */ + modelout = 1; + if (strcmp(optarg, "-") == 0) fmodelout = stdout; + else if ((fmodelout = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening modelout file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + fprintf(stderr, "each model record is %d bytes\n", (int)sizeof(MODEL)); + } else if(strcmp(long_options[option_index].name, "modelin") == 0) { + /* read model records from file or stdin */ + modelin = 1; + if (strcmp(optarg, "-") == 0) fmodelin = stdin; + else if ((fmodelin = fopen(optarg,"rb")) == NULL) { + fprintf(stderr, "Error opening modelin file: %s: %s\n", + optarg, strerror(errno)); + exit(1); + } + fprintf(stderr, "each model record is %d bytes\n", (int)sizeof(MODEL)); + } else if(strcmp(long_options[option_index].name, "rate") == 0) { + if(strcmp(optarg,"3200") == 0) { + lpc_model = 1; + scalar_quant_Wo_e = 1; + lspd = 1; + phase0 = 1; + postfilt = 1; + decimate = 1; + lpcpf = 1; + } else if(strcmp(optarg,"2400") == 0) { + lpc_model = 1; + vector_quant_Wo_e = 1; + lsp = 1; + phase0 = 1; + postfilt = 1; + decimate = 2; + lpcpf = 1; + } else if(strcmp(optarg,"1400") == 0) { + lpc_model = 1; + vector_quant_Wo_e = 1; + lsp = 1; + phase0 = 1; + postfilt = 1; + decimate = 4; + lpcpf = 1; + } else if(strcmp(optarg,"1300") == 0) { + lpc_model = 1; + scalar_quant_Wo_e = 1; + lsp = 1; + phase0 = 1; + postfilt = 1; + decimate = 4; + lpcpf = 1; + } else if(strcmp(optarg,"1200") == 0) { + lpc_model = 1; + scalar_quant_Wo_e = 1; + lspjmv = 1; + phase0 = 1; + postfilt = 1; + decimate = 4; + lpcpf = 1; + } else { + fprintf(stderr, "Error: invalid output rate (3200|2400|1400|1200) %s\n", optarg); + exit(1); + } + } + break; + + case 'h': + print_help(long_options, num_opts, argv); + break; + + case 'o': + if (strcmp(optarg, "-") == 0) fout = stdout; + else if ((fout = fopen(optarg,"wb")) == NULL) { + fprintf(stderr, "Error opening output speech file: %s: %s.\n", + optarg, strerror(errno)); + exit(1); + } + strcpy(out_file,optarg); + break; + + default: + /* This will never be reached */ + break; + } + } + + /* Input file */ + + FILE *fin; /* input speech file */ + if (strcmp(argv[optind], "-") == 0) fin = stdin; + else if ((fin = fopen(argv[optind],"rb")) == NULL) { + fprintf(stderr, "Error opening input speech file: %s: %s.\n", + argv[optind], strerror(errno)); + exit(1); + } + + C2CONST c2const = c2const_create(Fs, framelength_s); + int n_samp = c2const.n_samp; + int m_pitch = c2const.m_pitch; + + short buf[N_SAMP]; /* input/output buffer */ + float buf_float[N_SAMP]; + float Sn[m_pitch]; /* float input speech samples */ + float Sn_pre[m_pitch]; /* pre-emphasised input speech samples */ + COMP Sw[FFT_ENC]; /* DFT of Sn[] */ + codec2_fft_cfg fft_fwd_cfg; + codec2_fftr_cfg fftr_fwd_cfg; + codec2_fftr_cfg fftr_inv_cfg; + float w[m_pitch]; /* time domain hamming window */ + float W[FFT_ENC]; /* DFT of w[] */ + MODEL model; + float Pn[2*N_SAMP]; /* trapezoidal synthesis window */ + float Sn_[2*N_SAMP]; /* synthesised speech */ + int i,m; /* loop variable */ + int frames; + float prev_f0; + float pitch; + float snr; + float sum_snr; + + float pre_mem = 0.0, de_mem = 0.0; + float ak[1+order]; + // COMP Sw_[FFT_ENC]; + // COMP Ew[FFT_ENC]; + + float ex_phase[MAX_AMP+1]; + + float bg_est = 0.0; + + + MODEL prev_model; + float lsps[order]; + float e, prev_e; + int lsp_indexes[order]; + float lsps_[order]; + float Woe_[2]; + + float lsps_dec[4][order], e_dec[4], weight, weight_inc, ak_dec[4][order]; + MODEL model_dec[4], prev_model_dec; + float prev_lsps_dec[order], prev_e_dec; + + void *nlp_states; + float hpf_states[2]; + #if 0 + struct PEXP *pexp = NULL; + struct AEXP *aexp = NULL; + #endif + float bpf_buf[BPF_N+N_SAMP]; + + COMP Aw[FFT_ENC]; + COMP H[MAX_AMP]; + + float sd_sum = 0.0; int sd_frames = 0; + + for(i=0; i bands_lower) + assert(fwrite(bandE, sizeof(float), nbands, fbands) == nbands); + // optionally reconstruct [Am} by linear interpolation of band energies, + // this doesn't sound very Good + if (bands_resample) + resample_rate_L(&c2const, &model, &bandE[1], &freqkHz[1], nbands-2); + } + + /*------------------------------------------------------------*\ + + Optional newamp1 simulation, as used in 700C + + \*------------------------------------------------------------*/ + + if (rateK) { + float rate_K_vec[K]; + resample_const_rate_f(&c2const, &model, rate_K_vec, rate_K_sample_freqs_kHz, K); + + if (frateK != NULL) + assert(fwrite(rate_K_vec, sizeof(float), K, frateK) == K); + + if (frateKin != NULL) { + assert(fread(rate_K_vec, sizeof(float), K, frateKin) == K); + /* apply newamp1 postfilter - this helped male samples with VQVAE work */ + float sum = 0.0; + for(int k=0; k bands_lower) + fwrite(&model_dec[i],sizeof(MODEL),1,fmodelout); + } + else + fwrite(&model_dec[i],sizeof(MODEL),1,fmodelout); + } + } + + /* update memories for next frame ----------------------------*/ + + prev_model_dec = model_dec[decimate-1]; + prev_e_dec = e_dec[decimate-1]; + for(i=0; i{Am} SNR av: %5.2f dB over %d frames\n", sum_snr/frames, frames); + if (lsp || lspd || lspjmv) + fprintf(stderr, "LSP quantiser SD: %5.2f dB*dB over %d frames\n", sd_sum/sd_frames, sd_frames); + } + if (newamp1vq) { + fprintf(stderr, "var: %3.2f dB*dB\n", se/nse); + } + #ifdef DUMP + if (dump) + dump_off(); + #endif + + if (hand_voicing) + fclose(fvoicing); + + nlp_destroy(nlp_states); + + if (fam != NULL) fclose(fam); + if (fWo != NULL) fclose(fWo); + if (faw != NULL) fclose(faw); + if (fhm != NULL) fclose(fhm); + if (fjmv != NULL) fclose(fjmv); + if (flspEWov != NULL) fclose(flspEWov); + if (fphasenn != NULL) fclose(fphasenn); + if (frateK != NULL) fclose(frateK); + if (frateKin != NULL) fclose(frateKin); + if (ften_ms_centre != NULL) fclose(ften_ms_centre); + if (fmodelout != NULL) fclose(fmodelout); + if (fbands != NULL) fclose(fbands); + if (frateKWov != NULL) fclose(frateKWov); + + return 0; +} + +void synth_one_frame(int n_samp, codec2_fftr_cfg fftr_inv_cfg, short buf[], MODEL *model, float Sn_[], + float Pn[], int prede, float *de_mem, float gain) +{ + int i; + + synthesise(n_samp, fftr_inv_cfg, Sn_, model, Pn, 1); + if (prede) + de_emp(Sn_, Sn_, de_mem, n_samp); + + for(i=0; i 32767.0) + buf[i] = 32767; + else if (Sn_[i] < -32767.0) + buf[i] = -32767; + else + buf[i] = Sn_[i]; + } + +} + +void print_help(const struct option* long_options, int num_opts, char* argv[]) +{ + int i; + char *option_parameters; + + fprintf(stderr, "\nCodec2 - low bit rate speech codec - Simulation Program\n" + "\thttp://rowetel.com/codec2.html\n\n" + "usage: %s [OPTIONS] \n\n" + "Options:\n" + "\t-o \n", argv[0]); + for(i=0; i. +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "codec2_cohpsk.h" +#include "comp_prim.h" +#include "ht_coeff.h" +#include "ssbfilt_coeff.h" + +#include "debug_alloc.h" + +#define BUF_N 160 +#define MPG_DELAY_MS 0.5 +#define MPP_DELAY_MS 2.0 +#define MPD_DELAY_MS 4.0 + +/* see instructions below for how to generate these files */ + +#define DEFAULT_FADING_DIR "unittest" +#define MPG_FADING_FILE_NAME "slow_fading_samples.float" +#define MPP_FADING_FILE_NAME "fast_fading_samples.float" +#define MPD_FADING_FILE_NAME "faster_fading_samples.float" + +// Gaussian from uniform: +float gaussian(void) { + double x = (double)rand() / RAND_MAX; + double y = (double)rand() / RAND_MAX; + double z = sqrt(-2 * log(x)) * cos(2 * M_PI * y); + return sqrt(1./2.) * z; +} + +// complex noise sample +COMP noise(void) { + COMP n = {gaussian(),gaussian()}; + return n; +} + +int main(int argc, char *argv[]) +{ + FILE *fin, *ffading, *fout; + char *fading_dir; + float NodB, foff_hz; + int fading_en, nhfdelay; + + short buf[BUF_N]; + float htbuf[HT_N+BUF_N]; + COMP ch_in[BUF_N]; + COMP ch_fdm[BUF_N]; + COMP ssbfiltbuf[SSBFILT_N+BUF_N]; + COMP ssbfiltout[BUF_N]; + + COMP phase_ch; + float No, variance; + COMP scaled_noise; + float hf_gain; + COMP *ch_fdm_delay = NULL, aspread, aspread_2ms, delayed, direct; + float tx_pwr, tx_pwr_fade, noise_pwr, user_multipath_delay; + int frames, i, j, k, Fs, ret, nclipped, noutclipped, ssbfilt_en, complex_out, ctest; + float sam, peak, clip, papr, CNo, snr3k, gain; + + if (argc < 3) { + helpmsg: + fprintf(stderr, "Command line channel simulation tool.\n" + "\n" + "usage: %s InputRealModemRawFile OutputRealModemRawFile [Options]\n" + "\n" + " real int16 input -> Gain -> Hilbert Transform -> clipper -> freq shift ->\n" + " Multipath -> AWGN noise -> SSB filter -> real int16 output\n" + "\n" + "[--clip int16] Hilbert clipper (clip complex signal magnitude, default 32767)\n" + "[--complexout] Optional int16 IQ complex output (default real int16)\n" + "[--ctest] Check PAPR is around 0dB, used to support ctests\n" + "[--freq FoffHz] Frequency offset (default 0Hz)\n" + "[--fading_dir Path] path to multipath fading files (default 'unittest')\n" + "[--Fs SampleRateHz] Sample rate of simulation (default 8000 Hz)\n" + "[--gain G] Linear gain (default 1.0)\n" + "[--mpg] Multipath good 0.1Hz Doppler, 0.5ms delay\n" + "[--mpp] Multipath poor 1.0Hz Doppler, 2.0ms delay\n" + "[--mpd] Multipath disturbed 2.0Hz Doppler, 4.0ms delay\n" + "[--ssbfilt 0|1] SSB bandwidth filter (default 1 on)\n" + "[--mulipath_delay ms] Optionally adjust multipath delay\n" + "[--No dBHz] AWGN Noise density dB/Hz (default -100)" + "\n" + , argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "ch: Error opening input modem raw file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "ch: Error opening output modem raw file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + NodB = -100; + Fs = 8000; foff_hz = 0.0; fading_en = 0; ctest = 0; + clip =32767; gain = 1.0; + ssbfilt_en = 1; complex_out = 0; + fading_dir = strdup(DEFAULT_FADING_DIR); user_multipath_delay = -1.0; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"complexout", no_argument, 0, 'o'}, + {"ctest", no_argument, 0, 't'}, + {"clip", required_argument, 0, 'c'}, + {"fading_dir", required_argument, 0, 'u'}, + {"freq", required_argument, 0, 'f'}, + {"Fs", required_argument, 0, 'r'}, + {"gain", required_argument, 0, 'g'}, + {"ssbfilt", required_argument, 0, 's'}, + {"help", no_argument, 0, 'h'}, + {"mpg", no_argument, 0, 'i'}, + {"mpp", no_argument, 0, 'p'}, + {"mpd", no_argument, 0, 'd'}, + {"multipath_delay", required_argument, 0, 'm'}, + {"No", required_argument, 0, 'n'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"c:df:g:im:n:opr:s:tu:h",long_opts,&opt_idx); + + switch(o) { + case 'c': + clip = atof(optarg); + break; + case 'd': + fading_en = 3; + break; + case 'f': + foff_hz = atof(optarg); + break; + case 'g': + gain = atof(optarg); + break; + case 'i': + fading_en = 1; + break; + case 'm': + user_multipath_delay = atof(optarg); + break; + case 'n': + NodB = atof(optarg); + break; + case 'o': + complex_out = 1; + break; + case 'p': + fading_en = 2; + break; + case 'r': + Fs = atoi(optarg); + break; + case 's': + ssbfilt_en = atoi(optarg); + break; + case 't': + ctest = 1; + break; + case 'u': + fading_dir = strdup(optarg); + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + + phase_ch.real = 1.0; phase_ch.imag = 0.0; + + /* N = var = NoFs */ + + // arbitrary noise scaling, to maintain backwards compatibility with many tests. TODO make the No + // units more sensible, and fix all the tests that depend on this scaling + No = pow(10.0, NodB/10.0)*1000*1000; + variance = Fs*No; + + tx_pwr = tx_pwr_fade = noise_pwr = 0.0; + noutclipped = 0; nclipped = 0; + peak = 0.0; + + /* init HF fading model */ + + ffading = NULL; + nhfdelay = 0; + if (fading_en) { + char fname[256]; + + if (fading_en == 1) { + sprintf(fname, "%s/%s", fading_dir, MPG_FADING_FILE_NAME); + ffading = fopen(fname, "rb"); + if (ffading == NULL) { + cant_load_fading_file: + fprintf(stderr, "-----------------------------------------------------\n"); + fprintf(stderr, "ch ERROR: Can't find fading file: %s\n", fname); + fprintf(stderr, "\nAdjust path --fading_dir or use GNU Octave to generate:\n\n"); + gen_fading_file: + fprintf(stderr, "$ octave --no-gui\n"); + fprintf(stderr, "octave:24> pkg load signal\n"); + fprintf(stderr, "octave:24> time_secs=60\n"); + fprintf(stderr, "octave:25> ch_fading(\"faster_fading_samples.float\", 8000, 2.0, 8000*time_secs)\n"); + fprintf(stderr, "octave:26> ch_fading(\"fast_fading_samples.float\", 8000, 1.0, 8000*time_secs)\n"); + fprintf(stderr, "octave:27> ch_fading(\"slow_fading_samples.float\", 8000, 0.1, 8000*time_secs)\n"); + fprintf(stderr, "-----------------------------------------------------\n"); + exit(1); + } + nhfdelay = floor(MPG_DELAY_MS*Fs/1000); + } + + if (fading_en == 2) { + sprintf(fname, "%s/%s", fading_dir, MPP_FADING_FILE_NAME); + ffading = fopen(fname, "rb"); + if (ffading == NULL) goto cant_load_fading_file; + nhfdelay = floor(MPP_DELAY_MS*Fs/1000); + } + + if (fading_en == 3) { + sprintf(fname, "%s/%s", fading_dir, MPD_FADING_FILE_NAME); + ffading = fopen(fname, "rb"); + if (ffading == NULL) goto cant_load_fading_file; + nhfdelay = floor(MPD_DELAY_MS*Fs/1000); + } + + ch_fdm_delay = (COMP*)MALLOC((nhfdelay+COHPSK_NOM_SAMPLES_PER_FRAME)*sizeof(COMP)); + assert(ch_fdm_delay != NULL); + for(i=0; i= 0.0) nhfdelay = floor(user_multipath_delay*Fs/1000); + + /* first values in file are HF gains */ + + for (i=0; i<4; i++) + ret = fread(&hf_gain, sizeof(float), 1, ffading); + //fprintf(stderr, "hf_gain: %f\n", hf_gain); + } + + assert(HT_N == sizeof(ht_coeff)/sizeof(COMP)); + for(i=0; i clip) { + mag = clip; + nclipped++; + } + tx_pwr += mag*mag; + /* we get a bit of overshoot in peak measurements if HT filter hasn't been primed */ + if (frames*BUF_N > HT_N) + if (mag > peak) { + peak = mag; + //fprintf(stderr, "%d %f\n",frames, mag); + } + ch_in[i].real = mag*cos(angle); + ch_in[i].imag = mag*sin(angle); + } + + /* --------------------------------------------------------*\ + Channel + \*---------------------------------------------------------*/ + + fdmdv_freq_shift_coh(ch_fdm, ch_in, foff_hz, Fs, &phase_ch, BUF_N); + + /* optional HF fading -------------------------------------*/ + + if (fading_en) { + + /* update delayed signal buffer */ + + for(i=0; i 32767.0) { noutclipped++; sam = 32767.0; } + if (sam < -32767.0) { noutclipped++; sam = -32767.0; } + *pout++ = sam; + if (complex_out) { + sam = ssbfiltout[i].imag; + if (sam > 32767.0) { noutclipped++; sam = 32767.0; } + if (sam < -32767.0) { noutclipped++; sam = -32767.0; } + *pout++ = sam; + } + } + + fwrite(bufout, sizeof(short), nout, fout); + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + + if (fout == stdout) fflush(stdout); + } + + fclose(fin); + fclose(fout); + + int nsamples = frames*BUF_N; + papr = 10*log10(peak*peak/(tx_pwr/nsamples)); + CNo = 10*log10(tx_pwr/(noise_pwr/(Fs))); + snr3k = CNo - 10*log10(3000); + float outclipped_percent = noutclipped*100.0/nsamples; + fprintf(stderr, "ch: SNR3k(dB): %8.2f C/No....: %8.2f\n", snr3k, CNo); + fprintf(stderr, "ch: peak.....: %8.2f RMS.....: %8.2f CPAPR.....: %5.2f \n", peak, sqrt(tx_pwr/nsamples), papr); + fprintf(stderr, "ch: Nsamples.: %8d clipped.: %8.2f%% OutClipped: %5.2f%%\n", + nsamples, nclipped*100.0/nsamples, outclipped_percent); + if (outclipped_percent > 0.1) fprintf(stderr, "ch: WARNING output clipping\n"); + + if (ffading != NULL) fclose(ffading); + if (ch_fdm_delay != NULL) FREE(ch_fdm_delay); + if (ctest) { + /* special ctest mode: check CPAPR is around 0dB */ + if (fabs(papr) < 0.7) return 0; else return 1; + } + else return 0; +} diff --git a/src/codebook/codes_450.txt b/src/codebook/codes_450.txt new file mode 100644 index 0000000..ee7bb0c --- /dev/null +++ b/src/codebook/codes_450.txt @@ -0,0 +1,501 @@ +41 500 + 11.9178 14.1558 15.0079 16.3077 17.3822 18.2611 17.4655 14.7258 9.9322 5.5523 2.3108 -0.5449 -3.1948 -5.2578 -6.6720 -7.0718 -6.2242 -3.5271 -0.4724 -0.6426 -5.5883 -11.0690 -13.9474 -14.1999 -11.6213 -9.2487 -10.7685 -15.1688 -17.7995 4.7470 5.3362 4.5288 2.0410 -0.2507 -1.4078 -1.9789 -2.0773 -2.8836 -2.6876 -5.3670 -21.5899 + 20.9429 19.2708 15.6619 12.7137 9.1871 6.4196 3.1467 1.6784 0.8989 1.2827 1.4966 0.1254 -2.5426 -4.5150 -6.1876 -6.3874 -6.0478 -5.9793 -6.4367 -5.2532 -2.2523 -0.5109 1.6273 0.3551 -4.4390 -9.5465 -11.7875 -11.3329 -11.5883 4.4211 3.0334 0.1707 -1.8877 -1.6176 -0.7003 0.0063 0.8933 -0.3305 -0.5297 -3.4590 -17.2335 + 10.3698 10.9179 12.2827 14.2252 13.1924 8.1149 3.4397 0.4163 -0.6468 -1.2093 -1.7787 -2.1501 -2.3738 -2.1698 -1.6602 -2.0012 -2.2206 -2.6679 -2.9048 -4.0924 -3.9533 -4.6653 -3.4648 -4.1545 -4.7802 -5.9292 -6.6217 -6.2599 -7.2545 -1.4487 -2.0915 -2.0764 -2.5240 -2.8369 -1.7282 0.3818 1.6462 2.6312 4.3951 3.6513 -6.6040 + 10.7001 9.9813 8.3287 7.1242 6.5070 6.5092 5.9516 5.2985 4.9376 4.9107 3.3698 2.1480 1.7415 1.8271 2.9065 1.7503 1.1809 -0.5973 -2.5964 -4.1194 -4.3826 -4.2663 -6.1171 -8.2455 -10.0389 -10.0722 -11.1753 -11.2765 -12.2855 0.8221 0.8933 0.0873 0.1278 -0.2444 -0.1326 0.4115 -0.0880 0.3496 0.6766 -2.9033 -13.4861 + 14.8732 12.7779 9.6261 7.1258 5.1364 5.1173 4.4647 4.3160 3.7550 3.9126 3.6316 2.8536 1.9930 -1.1494 -2.4465 -3.4951 -3.8807 -4.2782 -4.5140 -4.6567 -4.7573 -4.9527 -5.3524 -6.1002 -6.5648 -6.2400 -6.7782 -6.9091 -7.5078 -0.7325 -1.0470 -1.1322 -1.2300 -1.1725 -0.7847 -0.0740 0.3234 1.3703 2.8077 1.6715 -7.7106 + 13.0634 13.0580 11.8762 10.3012 8.7287 8.2751 6.9140 5.6997 4.4786 3.7849 4.1201 2.8106 0.7120 -1.4190 -2.0942 -2.3582 -0.5397 1.5160 0.4684 -2.9378 -7.1601 -10.1338 -10.8807 -10.0235 -7.7214 -7.4752 -9.9005 -11.5702 -11.5927 4.2630 3.6157 2.2639 2.6715 3.2976 2.2826 0.9481 -1.7723 -4.4187 -3.5441 -9.6074 -17.0075 + 17.4365 16.7500 15.4119 14.0262 11.9105 8.7640 5.0192 1.9276 0.0772 -0.8006 -1.8916 -2.6101 -3.2178 -2.5671 -1.7974 -0.9511 -1.6296 -2.8438 -5.2983 -6.9390 -8.1364 -7.5562 -6.4223 -7.1565 -8.5620 -8.8653 -6.3020 -4.6173 -3.1589 0.3453 2.4060 5.1191 5.4688 4.3371 3.0997 0.6091 -2.3128 -3.0561 -3.3297 -12.6865 -6.0911 + 13.0911 12.7368 12.4903 13.0944 13.0545 12.0753 8.9618 6.1436 4.1205 3.0040 2.5067 2.1012 1.7892 1.0194 -0.5009 -2.7054 -4.3792 -5.7855 -7.3332 -7.6356 -6.8161 -6.3032 -6.7524 -8.6805 -9.1565 -8.9761 -9.6991 -10.2280 -11.2374 -0.8915 -1.3351 -1.3279 -0.8507 -1.1734 -0.5889 -0.2953 0.9333 1.7331 2.7464 1.0499 -11.7092 + 20.5201 20.0295 17.9227 15.1345 11.8697 8.3087 5.1766 3.0060 1.2540 0.4174 -0.1720 -0.8532 -1.8929 -2.4981 -2.7278 -3.1121 -3.4982 -3.7976 -4.7868 -5.4073 -5.4391 -5.9033 -7.2898 -8.3095 -8.7395 -9.6577 -9.6812 -9.1534 -10.7197 -2.0265 -2.4422 -3.2898 -3.0803 -2.9851 -1.2856 0.1567 1.8910 3.3083 5.0377 4.7157 -9.9218 + 8.7254 11.0045 12.0666 13.2121 13.3296 12.8324 10.8510 7.8774 5.4319 2.5287 -0.0029 -1.8774 -3.6195 -5.0420 -5.6921 -5.2354 -4.4870 -3.3016 -2.0527 -2.1409 -3.9671 -5.5705 -6.5599 -6.6471 -6.1324 -6.7689 -8.5096 -9.9894 -10.2634 3.4359 2.7738 2.8295 2.9482 1.6625 0.8956 -0.0514 -1.5848 -1.4749 -2.2921 -9.1424 -14.2391 + 23.9657 22.7269 19.7344 15.7159 12.2183 10.6582 8.5153 6.8034 5.1757 2.7658 0.5046 -1.3116 -2.0410 -1.6635 0.4261 3.7125 3.3282 0.1068 -4.3151 -7.4691 -8.1547 -7.8283 -7.2057 -10.8214 -15.3903 -17.5933 -17.6434 -16.8095 -18.1107 1.5132 0.3244 0.0189 -0.7294 -1.1966 -0.6245 -0.5177 0.2092 1.0300 0.8494 -0.8770 -19.8535 + 16.6280 15.7442 12.7310 10.1009 8.2897 8.5577 8.8444 10.0560 10.3050 9.1696 6.7854 3.8917 0.3608 -3.0307 -5.8666 -7.1637 -6.5677 -5.6155 -5.1575 -4.9714 -6.5135 -7.7608 -7.9326 -8.4341 -8.5905 -8.7170 -10.2926 -12.2908 -12.5593 4.2267 2.1595 0.5102 -1.3820 -1.1131 -0.0305 -0.5306 -0.0216 -0.2857 -0.0746 -3.4583 -17.0769 + 13.6209 12.7507 12.8553 14.2468 15.9471 14.0699 8.8461 3.2261 -1.1845 -3.9187 -5.7488 -7.4173 -8.8555 -9.2473 -8.9917 -6.5605 -1.7283 2.9838 3.3778 -0.7316 -2.7883 -0.8816 0.0532 -4.9902 -8.7894 -10.3247 -7.5806 -5.9415 -6.2971 14.6560 9.5930 3.1821 -1.9796 -0.7713 -2.0700 -4.1354 -3.8071 -3.6360 -4.5115 -6.5203 -23.1275 + 23.4988 25.5182 26.1443 25.6216 23.4290 19.3707 13.9050 7.5166 1.8256 -2.4154 -5.4517 -7.7013 -9.8647 -11.2215 -12.6184 -14.4069 -15.4023 -15.6232 -14.8399 -14.5670 -14.5190 -13.7907 -10.6309 -3.4890 1.4794 1.6350 -2.2134 -1.6600 0.4710 10.9708 10.5205 11.2036 9.2796 5.4146 -1.1911 -4.4466 -8.0856 -10.7515 -10.9044 -12.0101 -11.4961 + -0.5898 -1.0967 -1.1205 -1.0443 -1.2431 -3.0645 -6.3248 -9.1338 -11.1628 -12.4243 -13.5982 -14.0819 -13.6551 -13.9519 -12.0462 -9.7393 -6.5133 -1.4737 1.3159 2.7420 3.1032 9.2423 13.5689 17.8419 17.0272 18.0312 18.1676 16.3400 14.8841 4.5894 3.4070 3.1758 1.7888 1.6163 0.3158 0.2364 -0.4657 -1.0093 -2.6399 -11.0146 8.1604 + 13.0299 12.0907 11.0575 11.8980 14.1078 15.4469 13.8192 9.6452 5.0678 1.5872 -1.0858 -3.3552 -4.4488 -5.1355 -3.8141 0.5493 5.0898 4.4313 -0.4140 -3.7603 -4.7684 -3.6690 -4.3620 -10.8698 -15.5016 -18.4680 -18.1605 -12.2966 -7.7111 13.7174 7.2067 0.5178 -3.0887 -2.4521 -1.3997 -1.4244 -0.6539 -2.0510 -3.7269 -6.6452 -24.0840 + 20.2958 22.7253 24.1108 25.8434 27.1854 26.7629 24.3010 22.1308 21.1525 19.6181 13.7675 5.3826 -2.8225 -8.7282 -12.7146 -14.6989 -16.2675 -17.4195 -18.1391 -18.1287 -17.6301 -15.6767 -15.3188 -16.1464 -16.5053 -15.5852 -16.0162 -15.5577 -15.9205 1.1396 0.2956 0.2622 -0.1460 -0.2889 0.0275 0.0598 -0.0862 -0.0115 -0.3351 -0.9169 -18.8932 + 21.5882 22.6633 22.5911 21.7567 19.8871 16.4681 11.6127 6.5703 2.5780 -0.4539 -2.9597 -5.4269 -8.0935 -10.3291 -11.8474 -12.0219 -10.4753 -7.1877 -2.9765 -0.5555 -2.4316 -6.5984 -7.4329 -5.2211 -3.7364 -8.4581 -13.1170 -14.2101 -12.1825 9.2042 6.8442 4.1847 1.6315 -1.3411 -3.2760 -3.4037 -3.4563 -3.6074 -2.1629 -4.6172 -19.8953 + 10.6094 9.9560 8.4942 8.0886 9.3761 11.3323 13.7662 16.0947 16.8139 12.1179 6.8094 2.7670 1.8054 3.1768 7.3289 5.1766 -2.2376 -6.9741 -8.5553 -10.5642 -11.2643 -7.7672 -9.8975 -14.2107 -19.6460 -19.4783 -14.0319 -7.9045 -11.1818 -5.2324 -8.4640 2.9045 12.8860 11.9777 10.5541 7.9613 -4.2589 -8.3955 -8.1996 -11.7332 -19.6994 + 5.5041 5.3222 5.1942 5.5460 6.9576 8.9054 10.4828 11.0340 9.8032 6.8135 3.3656 -0.1277 -3.5960 -5.7793 -6.2939 -4.2863 -0.0268 4.5720 4.4361 0.4802 -3.4351 -5.2809 -4.4513 -2.2637 -4.7650 -9.6486 -13.3377 -14.7275 -10.3971 17.8073 13.8296 10.4356 9.0219 2.4512 -5.9813 -10.1712 -10.7160 -9.7016 -7.6983 -9.2773 -25.0775 + 16.3656 18.4878 18.9993 18.9918 18.4816 16.9653 13.5777 9.3381 5.1691 1.7384 -1.9039 -5.4804 -8.8300 -11.9448 -15.0434 -16.8969 -17.1670 -15.0995 -10.9516 -5.3056 1.0232 3.6264 1.1957 1.1028 1.6644 -3.8335 -10.3741 -12.2780 -11.6184 10.0963 5.3648 2.5424 2.4710 -0.7901 -3.2113 -3.7043 -3.1000 -2.4933 -1.9709 -5.2046 -20.9631 + 17.8837 18.4715 18.4874 18.4556 18.3711 17.4990 15.0865 11.4049 7.8551 5.6550 5.2257 5.9267 6.7868 6.4202 3.6161 -0.8300 -5.6377 -9.6817 -12.6005 -14.4203 -15.5246 -15.5077 -13.4622 -11.2201 -12.0997 -15.7120 -18.3392 -17.8512 -14.2586 8.3898 6.8733 5.8658 4.5307 0.2802 -3.1226 -4.8018 -4.8634 -4.4593 -3.4916 -5.2013 -22.2100 + -3.1319 -2.9567 -3.5158 -3.6542 -3.9792 -4.5690 -4.2861 -2.5541 -2.2464 -1.9153 -2.4682 -3.1479 -3.0568 -4.8839 -4.5795 -5.3900 -5.0456 -3.5545 -1.3265 0.8505 3.0174 4.7498 6.6168 8.1567 6.6236 7.6792 9.3003 9.8713 9.3959 -10.5735 -12.5116 -14.0639 -7.5471 -1.3040 2.4789 5.3713 7.7962 9.4623 10.2101 10.6812 18.1437 + 21.9881 22.0268 21.4180 21.0501 19.7092 16.8902 12.8939 9.2408 6.1523 3.8245 2.5628 1.6418 0.8280 0.3977 0.2944 0.9841 0.5033 -2.6922 -7.8516 -11.9595 -14.1961 -14.2907 -11.4202 -8.4658 -10.2796 -16.2385 -20.8415 -22.5979 -21.5723 2.4756 1.9590 0.8663 0.5639 -0.3186 -0.6196 -0.7514 -0.8893 -0.9260 -0.4110 -1.9489 -22.2015 + 13.6868 14.9404 15.1000 15.5585 16.0353 14.4054 10.2425 6.2160 2.6004 0.0140 -1.0930 -1.9058 -2.2147 -3.1008 -3.0478 -1.9164 -0.2033 1.1951 -1.7083 -5.1393 -7.0402 -8.4745 -8.2053 -8.7459 -9.3367 -10.3650 -11.2280 -12.6090 -13.6605 -1.5164 -1.7406 -1.1213 -1.2392 -0.3054 0.1166 1.2891 0.8060 2.8591 2.2703 -1.4183 -13.8822 + 24.2507 21.6076 17.0141 11.8925 7.3451 3.9013 1.1114 -0.6837 -1.7199 -1.9483 -2.6719 -3.0002 -3.6624 -4.0397 -4.0608 -4.1225 -3.9810 -4.1129 -4.5653 -4.8917 -4.8071 -4.8794 -4.6353 -4.2726 -4.7350 -4.9508 -5.2264 -5.1675 -4.9885 -5.7398 -5.9757 -5.9417 -4.9603 -3.1354 -0.5548 2.3754 4.4296 5.8362 7.1375 6.5291 -0.9148 + 17.2631 17.8371 17.1292 16.2736 14.9354 14.1976 13.0153 12.0657 10.4316 7.4938 4.2444 1.4828 -0.6872 -3.7746 -5.5994 -5.3343 -3.0025 -0.6389 -0.0550 -2.7128 -6.5932 -9.9814 -10.8426 -10.0857 -9.6056 -13.2586 -18.8699 -22.5792 -22.7486 -0.7483 -1.0121 -2.2299 -2.0299 -0.7415 -0.0212 1.8597 2.9030 2.7112 2.3661 -3.0572 -22.3309 +-11.1995 -10.6930 -9.1942 -8.1742 -7.6079 -6.5119 -6.9193 -7.1422 -7.9717 -7.7574 -7.1013 -6.4983 -6.0445 -5.1389 -3.0175 -0.5052 2.9571 5.6253 7.3169 6.5738 7.6017 10.0073 10.6429 11.4760 11.4863 10.6648 9.4863 8.0975 9.5413 3.3127 3.2227 3.8144 3.7156 4.3089 2.3578 0.7872 -1.2526 -2.7715 -4.3321 -13.1631 5.2507 + 17.1783 16.8887 14.7421 11.8348 8.0205 3.2499 -1.9129 -6.6225 -10.9397 -13.6517 -14.7230 -16.1104 -18.1604 -17.7193 -17.2055 -15.5458 -13.1652 -9.9983 -5.1836 -1.0331 1.9889 4.4501 8.5649 11.1613 14.3782 14.8611 11.2164 10.3416 13.0949 7.1449 3.2853 6.0619 4.3926 2.9056 -0.2214 -2.0011 -1.6095 -2.2370 -3.8553 -13.8661 1.4609 + 10.6486 10.4669 9.1585 9.0007 10.2209 13.1112 15.2667 14.3795 11.1262 6.6047 3.1822 -0.1678 -2.0727 -1.3024 2.4200 5.9038 2.7803 -3.1820 -6.2303 -8.6850 -9.4777 -6.1465 -4.6662 -9.5877 -14.2877 -18.3825 -17.6042 -13.8240 -8.6536 4.3381 -2.0474 -4.0413 0.7437 4.3435 8.0270 4.8604 0.4728 -3.1556 -4.1581 -9.3831 -21.0994 + 4.5339 3.0180 1.1590 -1.8077 -3.7376 -3.2592 -4.8664 -9.0451 -10.5616 -11.0424 -11.0656 -11.1375 -9.1571 -8.9187 -5.4870 -3.7659 -1.1875 -3.3535 6.8620 12.8048 15.2130 16.4198 9.1571 6.4605 6.3040 10.6463 -0.7014 -3.2795 9.7951 11.6354 5.7420 6.8106 9.3406 9.2914 6.7851 13.3750 12.3210 -24.4316 -25.4838 -25.3856 -1.3255 + 6.4369 5.6614 4.5505 3.2770 2.0132 1.6324 -0.2278 -1.7054 -2.5408 -2.9440 -2.5595 -3.6388 -4.3998 -3.8497 -2.4600 -0.6672 0.4797 -0.4954 -0.1361 -0.3178 -0.0794 0.9249 1.3910 0.5690 0.3416 1.0916 0.5145 1.1248 -3.9866 15.2047 12.4340 6.7379 -7.0628 -9.2462 -7.3526 -5.2530 -3.4204 -1.8366 -0.0754 -0.1298 -20.8819 + 13.5404 15.5222 16.2893 16.8870 17.0524 17.1327 14.7572 10.8720 6.7840 2.5400 -0.5888 -3.3697 -5.4657 -6.7879 -7.7962 -7.6553 -7.4342 -6.9197 -6.9455 -6.3541 -6.7461 -7.4159 -7.7579 -8.3178 -7.4289 -7.3424 -8.2132 -8.9949 -9.8430 0.3453 -0.2701 -0.5525 0.0397 0.0597 0.2448 0.8902 1.5587 1.2101 0.8399 -4.3658 -12.2454 + 24.5559 23.4130 20.6408 17.3808 14.4160 11.8493 9.6532 8.6801 7.2117 5.4621 3.0668 0.2230 -2.1120 -4.3454 -5.0915 -4.2332 -0.9253 -0.0786 -2.2834 -6.2673 -9.6185 -12.2260 -14.2603 -13.3716 -11.5386 -12.2997 -15.1963 -16.5699 -16.1351 4.5303 3.2491 1.5538 0.2521 -0.8115 -1.5855 -1.5263 -1.3266 -0.9651 -0.7138 -2.6565 -20.2257 + 8.1022 9.7899 9.7931 9.7477 9.2987 8.7666 6.9904 5.3290 3.0336 1.6204 0.3860 -1.2415 -2.4680 -4.1707 -5.1485 -6.7003 -7.6570 -8.3503 -8.5552 -8.8991 -9.0059 -8.7857 -7.0780 -4.5450 -2.6069 0.6288 2.8467 3.7676 5.1114 3.4695 4.5378 3.2083 2.5145 1.3409 -1.3752 -0.8674 -0.4720 -1.0186 -1.5059 -9.8318 0.0727 + 14.4586 14.2733 13.1879 11.9606 10.2045 9.3636 9.6651 11.0114 12.1122 12.3036 11.0280 8.7772 5.9733 2.4672 0.3102 0.0747 1.2366 0.9815 -2.8016 -7.9803 -12.3829 -14.7650 -15.7924 -13.6058 -11.0614 -13.0621 -17.8806 -20.1354 -19.9220 5.0740 2.9263 -0.3365 -1.5294 -1.0384 -0.4370 -0.2758 -0.3204 -0.0653 -0.0869 -3.9105 -24.5880 + 16.8931 17.8847 18.3283 18.5232 18.1990 16.7506 13.5330 8.8264 3.6715 -0.1991 -2.2432 -3.3290 -3.3054 -2.6748 -0.6690 2.7103 4.8565 3.5571 -0.4645 -5.0037 -8.7773 -10.0343 -10.0215 -10.2618 -11.9582 -16.0391 -19.8259 -20.4865 -18.4405 4.2237 7.7521 9.4271 7.7776 3.2089 -1.3047 -4.3710 -6.1258 -6.6240 -6.4665 -7.4973 -21.6119 + 26.2407 26.8595 25.5084 23.5987 20.6139 16.2421 10.9416 5.9994 2.3434 -0.3767 -2.7912 -5.3898 -7.9202 -9.5689 -11.3407 -12.1566 -12.5654 -12.0723 -10.0537 -6.9972 -3.0971 -1.8157 -4.5501 -5.7844 -5.5235 -7.2936 -10.9909 -13.4932 -14.5663 2.1561 1.5321 0.2818 -0.1633 -0.3426 -0.3136 0.0161 -0.3898 0.0287 -0.0952 -2.7103 -16.2994 + 18.3705 19.3592 20.1123 19.1051 15.6286 9.5321 3.0603 -1.6458 -4.5598 -6.3273 -7.5713 -8.4739 -9.3282 -10.3168 -10.7509 -9.1030 -6.7703 -2.5740 3.3208 6.7538 4.2453 2.9740 1.1080 -3.3077 -7.0808 -9.7837 -9.6571 -8.2866 -8.0329 10.1201 5.6162 1.7587 -0.9681 -1.7807 -2.3958 -2.4286 -1.6485 -1.8262 -1.9033 -4.5440 -20.3964 + 13.2741 15.4244 17.0234 18.2818 19.5432 18.9691 14.9962 9.1156 3.6419 -0.2906 -3.1570 -6.1768 -7.9818 -9.3506 -9.4656 -9.2507 -8.4602 -6.2085 -1.8201 1.5162 1.2490 -0.0059 -1.8007 -4.5282 -8.6837 -12.6709 -15.3611 -15.4209 -12.4015 7.8150 3.1728 1.5432 0.7950 -0.5318 -1.2456 -1.5988 -1.7996 -2.1907 -2.0052 -3.9542 -22.2556 + 15.9184 17.3622 17.4678 16.8842 14.6841 11.8317 7.6477 2.3173 -1.3712 -4.0441 -5.5323 -6.8296 -7.7101 -8.4121 -8.4766 -8.2702 -8.0827 -7.3742 -7.9359 -7.9155 -8.0671 -7.6939 -7.0166 -5.7862 -3.8811 -1.0122 2.4703 3.9838 4.8441 2.9188 2.7328 3.6011 4.0330 4.2894 1.6661 -1.5176 -1.7944 -2.1907 -2.2625 -11.4761 -0.6248 + 27.6543 28.3344 28.0974 27.8652 25.8810 21.2395 14.9679 8.7442 3.5965 -1.0986 -5.8391 -9.7803 -12.4065 -13.0919 -11.4339 -7.2826 -2.4552 -0.6713 -3.1822 -8.1469 -9.6767 -9.4577 -8.9612 -11.2661 -13.6229 -15.3616 -15.2642 -14.0444 -13.3373 2.3229 0.9500 0.5581 0.0389 -0.1161 0.3407 -0.3396 -0.7413 -0.8075 -0.6566 -1.5496 -16.0531 + 14.7743 15.8710 16.5584 17.4275 18.6438 19.6359 19.7934 19.0788 17.9177 16.9057 15.9073 14.4531 10.2026 3.0567 -4.1665 -9.7579 -13.4361 -15.9678 -18.1928 -19.8105 -20.3101 -20.0861 -19.2226 -16.1803 -12.5817 -12.1735 -14.1311 -13.5138 -10.6954 7.7639 2.5429 2.6941 2.9367 0.5893 -1.9290 -2.8709 -3.1704 -3.0337 -2.2216 -3.3012 -22.8190 + 12.7199 12.8622 12.1185 10.3818 7.6754 5.4729 4.0902 2.5106 1.3459 -0.1508 -1.0590 -0.9743 -1.2979 -1.7207 -2.0981 -3.4023 -3.6088 -3.7334 -2.9611 -2.7071 -3.2507 -3.7314 -4.9032 -4.9793 -5.4541 -5.3634 -5.5199 -5.9327 -6.3294 0.5719 0.7629 0.4111 0.3851 0.5406 0.3610 -0.6901 -0.4405 0.2987 0.0781 -2.2788 -7.7046 + 17.0925 17.2680 16.3588 15.6578 15.5233 15.8680 16.0037 14.7721 12.2920 8.7258 4.3618 0.2688 -3.5171 -6.9208 -9.2849 -8.9305 -6.2881 -2.6008 0.0832 -0.7819 -3.3713 -5.1713 -4.9040 -6.2218 -11.3970 -17.6896 -21.9017 -23.4215 -21.8734 3.1762 2.3323 1.1259 -0.1136 -0.6656 -1.1934 -1.1198 -0.3320 -0.0039 -0.1887 -3.0174 -24.2388 + 17.2297 15.6739 13.0707 10.1587 7.8155 7.3743 6.0217 4.4665 3.0535 2.6239 2.2641 1.9670 1.5434 0.6206 -1.2673 -3.0579 -4.7912 -5.9248 -5.9180 -6.1220 -5.8687 -6.3517 -6.5968 -7.5677 -7.4916 -7.9499 -8.0977 -8.4791 -8.3990 1.8899 2.2808 2.6284 2.1186 1.2552 0.2046 -0.3591 -0.6669 -1.5091 -1.4378 -6.4047 -11.8263 + 4.5933 4.7596 4.4438 5.2453 6.6446 8.2821 6.9832 4.3810 1.1278 -1.5253 -1.8904 -2.1516 -3.4268 -5.4133 -6.8772 -7.1547 -5.3998 -2.6582 1.2751 2.0882 -0.7302 -4.1881 -5.1819 -2.1264 0.8208 0.5532 -1.8235 -1.5249 0.8743 5.3771 4.5451 4.0828 5.1397 3.7744 0.3580 -1.2512 -0.7183 -2.7542 -4.1142 -14.4391 -6.0204 + -2.2799 -1.7680 -3.2413 -3.9270 -2.7062 -1.0703 -1.3350 -1.9824 -2.4957 -1.3919 -2.1103 -4.0545 -4.3911 -5.7784 -7.9812 -7.7496 -7.5943 -5.8788 -3.7846 -2.6760 2.8977 4.8420 8.2162 4.4328 10.2839 10.4092 11.3489 11.1069 10.6590 -9.8885 -12.0674 -13.7764 -6.7026 -2.8416 2.6527 5.3400 7.6116 8.5217 10.1675 10.9830 18.5816 + 8.6790 8.1241 7.9956 9.0010 10.6051 11.9336 12.0700 10.4828 7.6040 4.4092 1.4213 -0.5435 -1.8070 -2.2849 -1.1776 2.4297 6.7853 8.4364 6.3991 4.5951 1.7264 -5.9987 -12.0781 -16.5380 -18.7068 -19.2937 -18.0295 -14.9180 -11.3219 9.6625 7.9093 9.1967 5.7578 -1.0641 -5.1134 -6.0886 -5.4946 -5.3822 -2.7102 -6.6734 -25.9833 + 10.3657 10.3631 9.7058 9.4298 9.0617 7.9822 5.9655 2.6688 -0.5238 -2.6855 -3.0614 -3.3624 -4.7739 -5.3797 -4.5954 -3.2382 -1.5077 -1.7236 -2.7671 -2.9653 -4.5764 -6.3959 -5.0542 -3.3922 -3.4383 -5.4556 -2.3727 -2.0655 3.7923 -5.2260 -22.0236 -1.5093 6.4261 7.5104 7.6639 4.2871 1.2994 0.5479 5.7985 -4.7744 7.7899 + 10.4446 10.4588 9.0587 7.0901 3.1501 -0.3318 -2.7060 -4.6185 -5.7165 -6.2274 -5.5457 -6.1342 -6.9016 -7.4068 -6.2107 -3.8982 -1.1383 -1.7125 -3.1209 -2.5081 -2.3909 0.2919 4.6445 2.6432 2.6694 4.3011 3.5911 6.8931 1.3315 21.7970 18.1696 11.3834 -3.1623 -8.4098 -8.5693 -7.6899 -7.0385 -5.9998 -5.4794 -5.0009 -22.6316 + 17.2287 17.7616 17.8929 19.2677 20.8170 21.4764 18.7667 14.2036 10.5122 8.1941 7.8420 9.4381 10.7037 7.2143 -0.2794 -6.1524 -10.8365 -13.8587 -16.1691 -17.3352 -17.2280 -14.8106 -11.1914 -12.3040 -16.0739 -18.1082 -16.4868 -14.5719 -15.9127 2.3379 0.5208 0.3528 -0.1779 -0.6500 -0.5172 -0.1244 -0.1086 0.2128 -0.1577 -1.6885 -22.6503 + 18.5355 20.4972 20.1850 18.5749 15.6167 12.2745 7.9486 3.0171 -0.8357 -2.7695 -4.9000 -6.7903 -8.0533 -9.4775 -9.7203 -10.0951 -9.4960 -9.2581 -9.1995 -6.3741 -2.3905 0.4560 1.0899 -0.4465 -1.4521 -2.6965 -6.3247 -8.5287 -9.3872 0.7079 0.5683 -0.4043 -0.7092 -0.1113 1.5441 2.4584 1.8607 0.7709 -0.1603 -6.5252 -13.3875 + 15.7485 14.5502 12.3547 10.1884 8.6909 8.0435 6.3074 4.6065 2.2122 -0.1930 -1.2413 -2.4859 -3.7253 -4.0244 -2.8733 -1.9500 -1.0559 -2.6557 -3.6275 -3.0937 -3.1904 -3.2420 -3.8325 -6.0485 -6.6724 -6.1617 -7.5456 -8.3219 -10.7613 9.0819 5.6131 0.9836 -3.3767 -5.1130 -4.5161 -2.5844 -1.0875 -0.3335 0.8807 0.4519 -18.4860 + 13.0658 12.0977 9.3051 6.8101 5.9796 6.1211 5.3037 4.3634 4.1469 2.3546 0.6265 -1.0456 -1.8168 -2.1623 -1.4037 -2.0812 -2.8168 -3.4540 -4.9104 -5.6641 -6.1702 -5.2274 -3.5942 -3.4678 -3.4265 -4.9099 -5.1651 -6.2588 -6.5997 3.1896 2.3931 3.5929 2.5385 1.8123 0.7336 -0.3261 -0.9462 -1.5350 -2.5520 -8.9007 -9.6432 + 6.9128 6.7304 6.9243 6.4631 5.6472 3.9796 1.7898 -0.2489 -2.4436 -2.6508 -2.5470 -2.8932 -3.7418 -4.0472 -3.7409 -4.1721 -4.5045 -2.5398 -1.2681 -2.2512 -4.0819 -2.5504 -0.5617 -0.8125 -6.3247 -16.4522 5.3598 10.4107 13.6148 2.9041 3.9937 4.1878 3.1505 2.3718 2.0861 -0.7564 -2.8980 -3.0100 -1.1906 -10.8392 7.8990 + 15.3717 14.4646 14.0665 15.2685 17.8890 16.6173 10.8299 5.4591 1.3248 -1.5112 -3.5105 -5.0396 -4.7139 -3.2327 0.4893 6.6080 9.2663 7.1616 4.6529 0.9359 -6.9866 -12.7386 -15.0655 -16.3268 -15.5303 -12.5805 -11.4429 -13.9588 -17.7676 4.4548 2.5041 -0.5574 -1.9092 -1.6954 -0.7980 -0.8178 0.6929 0.2455 0.1742 -2.2936 -23.5972 + 15.1415 17.2129 18.5276 20.2576 22.0435 22.9410 21.3301 18.4906 16.7921 16.6351 16.5489 13.5214 7.0026 -0.4264 -6.3907 -10.2154 -12.0432 -13.8717 -14.8140 -14.5501 -12.6863 -11.2906 -14.4502 -19.3250 -21.0242 -20.2029 -17.6079 -17.4052 -20.1409 -0.1152 0.2933 0.6422 0.8539 0.5304 -0.1244 -0.6918 -0.3401 -0.1677 0.0292 -0.9099 -22.1229 + 16.3527 16.4358 14.5529 11.7515 8.0259 5.7593 4.7947 5.2455 6.9418 9.3793 10.6924 9.9655 9.0457 8.3252 8.4762 6.3689 3.4623 -0.5745 -4.6846 -8.5680 -10.9887 -12.4636 -14.7640 -14.5242 -15.3129 -17.5422 -18.4522 -18.6412 -19.0596 4.6132 1.4513 -0.0514 -0.1917 -0.3334 -0.1370 -0.0439 -0.2954 -0.2393 -0.9118 -3.8606 -24.6234 + 3.0149 3.3679 2.0858 1.6705 1.6501 2.5867 1.6237 0.5766 -1.3320 -2.3047 -2.9270 -3.0607 -3.6274 -5.2376 -5.7845 -5.3526 -3.5342 -1.1532 1.8140 2.9895 2.7465 1.9285 1.7068 1.7703 2.2200 1.9728 0.2297 -1.0946 1.4544 -2.0981 -1.6916 0.2350 2.2065 3.1538 2.2516 2.8930 1.2452 0.2641 0.7151 -9.1746 0.1743 + 33.1383 31.0792 25.7434 19.1612 13.8370 10.1403 5.0657 -0.9848 -4.0125 -3.8049 -1.4317 2.9301 4.0459 0.1222 -5.3168 -8.1684 -10.0826 -10.8448 -10.2597 -10.3317 -9.4719 -5.7311 -3.3677 -4.7251 -6.3960 -9.1268 -12.2844 -14.4200 -14.5022 2.6060 2.2289 1.6967 0.1399 -0.9831 -0.9608 -0.8510 -1.0292 -0.7889 -0.5855 -1.4730 -15.7149 + 27.2923 26.1076 23.8786 21.3130 19.0418 17.1720 15.5267 14.4631 14.0462 13.5070 12.4676 9.9142 5.6853 0.5980 -4.4056 -8.3465 -10.4675 -12.5667 -14.3166 -15.5842 -15.4689 -15.0589 -15.5652 -16.4950 -16.8464 -17.9497 -19.4354 -19.6539 -18.8530 1.2956 0.1647 -0.0666 -0.5622 -1.0818 -1.0177 -0.6516 0.0389 0.9296 1.4023 -0.4513 -20.2788 + 26.6766 26.7374 25.7566 24.0280 20.4779 14.6637 7.8330 1.9621 -2.0700 -4.7989 -7.3077 -9.0786 -9.6220 -7.7331 -4.7410 0.1848 4.4070 2.7266 -2.1973 -5.5028 -7.5677 -8.3692 -9.3827 -11.2185 -12.6814 -12.9582 -12.5667 -13.3838 -14.2742 2.1312 0.7483 0.4117 -0.1309 -0.2886 -0.2604 -0.4816 0.0583 -0.0383 -0.2744 -1.8754 -17.9569 + 3.3978 4.4684 4.2593 3.9748 2.4838 0.6609 -2.0182 -4.4753 -6.9532 -7.4489 -7.9821 -8.8126 -7.7701 -6.4035 -3.2114 -0.1726 4.0273 6.9857 8.4846 6.3510 4.9727 4.6470 4.6414 3.6916 1.9176 0.3255 -2.6101 -3.4750 -3.9565 1.7533 1.1049 0.6470 -0.2625 -0.1699 -0.7934 -1.0459 -1.6085 0.7985 2.6353 -3.0588 -6.3429 + 10.0599 9.5448 6.9010 4.3178 2.5886 1.5303 0.1509 -1.0275 -2.6254 -2.8291 -3.0667 -3.4775 -4.4368 -5.1122 -6.2497 -6.7213 -5.2797 -3.8800 -2.4109 -1.6128 -3.0693 -4.8056 -5.1575 -1.7918 2.5625 3.7623 3.5521 7.7141 10.8696 8.0651 6.4772 6.6051 3.5600 1.8517 -0.5246 -1.7934 -2.7395 -3.6923 -4.3495 -13.4599 0.6565 + 25.7569 24.1232 20.4182 16.1881 12.4409 10.9425 10.5212 10.6127 10.0690 8.9583 6.8593 5.3047 4.2774 2.9654 1.7215 -0.5266 -3.2445 -6.9442 -10.3293 -12.7061 -14.0210 -14.2363 -13.7968 -14.0351 -15.0354 -15.6847 -16.5621 -16.6992 -17.3378 1.2536 0.3575 0.1415 -0.1561 -0.1699 -0.6288 -0.4370 0.0255 0.2138 0.5498 -1.1499 -20.2166 + 0.0231 -0.9014 -1.8167 -1.2335 -0.9356 0.1659 0.0099 -0.3194 -1.2785 -1.6159 -0.9934 -0.9581 -1.8280 -2.2803 -1.6717 -0.1281 -0.6227 0.0211 -0.2651 -0.5372 -0.9352 -1.0325 0.2653 -0.4461 0.6598 1.5850 4.5525 6.2731 6.2437 6.2289 7.1906 6.8806 4.1911 2.5668 0.0429 -1.5955 -2.8462 -4.6688 -4.0492 -13.9413 -0.0713 + 7.9284 9.1572 9.8203 10.6262 11.7687 13.2204 14.0222 13.2111 10.5107 6.8116 3.6111 0.4955 -2.3899 -5.1121 -6.5572 -6.6556 -5.2199 -2.9231 -0.5211 -0.8570 -4.7480 -9.1464 -11.8191 -10.7137 -6.0224 -4.8220 -8.0630 -12.3598 -13.2532 13.1773 12.7484 9.6243 5.0688 -0.9409 -6.7845 -7.3453 -6.4726 -6.1985 -4.8683 -8.0086 -24.4428 + 20.6590 19.3955 16.2834 13.6379 12.4445 12.1295 10.9807 10.1646 10.4918 11.3802 11.3612 11.2354 10.6339 6.7227 1.1138 -3.7021 -6.4288 -7.9590 -9.9760 -11.0475 -13.1574 -15.9863 -18.1733 -17.6149 -16.1809 -16.3342 -15.4709 -13.2473 -13.3553 6.4606 2.2334 0.0904 -1.0983 -1.1535 -1.8710 -1.3953 -0.4539 -0.1442 0.1951 -2.8632 -21.9027 + 11.5076 12.0660 12.7170 14.7721 15.3221 13.0928 8.0689 3.5812 1.5428 1.2390 0.9197 -0.0146 -2.1654 -5.8495 -7.9985 -6.4957 -1.4612 4.6035 5.2013 1.9497 -2.2153 -5.5580 -2.2714 -3.5929 -8.3748 -16.9482 -17.6920 -14.1565 -11.7896 -0.1089 2.8427 6.3890 4.6360 3.9712 2.8762 -3.4553 0.8911 -3.1126 -3.8817 -11.0478 -18.2605 + 9.1012 8.2983 7.7090 8.2796 9.7170 11.3893 12.9622 12.4812 9.4717 5.4783 2.6937 2.0314 2.3476 3.7201 7.2459 7.9823 4.2063 -1.0767 -4.4784 -6.7559 -4.5456 -4.6976 -8.2963 -18.7549 -25.0006 -24.3482 -13.5441 -8.7468 -4.8700 9.4162 -0.0518 -5.6394 -1.8175 2.8460 5.7461 4.9827 2.5039 -4.5892 -5.3372 -8.0598 -24.0108 + 25.3914 22.4719 18.4847 14.1484 9.8827 6.3827 3.7424 2.3869 2.0026 2.1806 2.2067 2.4594 2.5334 2.7925 2.7285 2.5917 0.9336 -1.3314 -3.7507 -6.3146 -9.9633 -12.2523 -11.7329 -10.5539 -10.5613 -12.8970 -14.8061 -16.0931 -13.0635 9.4907 8.6133 6.9669 5.2967 0.8483 -2.8965 -3.7224 -5.4526 -6.1034 -5.5404 -7.5006 -19.2567 + 14.7633 21.0347 26.5178 28.8557 23.3660 14.8939 7.8472 4.1479 1.6451 0.1940 -1.0241 -1.7100 -2.7839 -5.4888 -5.8766 -6.7065 -6.5101 -6.3172 -7.4748 -8.1349 -8.6673 -9.2054 -8.7696 -9.2949 -9.5243 -9.8586 -10.6206 -12.3755 -12.9225 0.5464 0.3011 -0.4717 -0.8221 -0.5981 -0.7596 -0.1787 0.0888 0.2680 1.7014 -0.0756 -13.4143 + 14.5722 15.9781 17.0264 17.6175 17.4232 16.5459 14.6151 11.6122 8.3872 5.7241 3.1297 0.7916 -1.8948 -4.6319 -7.4829 -9.0432 -9.8372 -10.2623 -9.8461 -8.3463 -7.1311 -7.5141 -8.8925 -9.9645 -10.0906 -8.0182 -7.1753 -10.4665 -12.8258 7.5756 9.5196 10.3723 8.1609 3.4930 -3.1717 -6.1605 -6.9929 -7.1805 -6.8863 -8.7297 -20.7652 + 37.2037 35.8111 32.3205 28.0474 23.2802 17.7045 11.6084 5.8427 0.2670 -3.7432 -6.2669 -8.1167 -9.3928 -10.1312 -10.3467 -10.0877 -9.5979 -9.7744 -10.3207 -10.6331 -9.9469 -8.6203 -8.3585 -9.6074 -10.8446 -11.5167 -11.7789 -11.6363 -11.3647 0.3839 0.1181 -0.0142 -0.2099 -0.2835 0.1550 -0.0340 0.1033 0.0295 0.1568 -0.4049 -11.8075 + 25.2715 25.9731 25.5019 24.4387 22.0168 17.9875 12.8839 8.1186 4.0883 0.9493 -1.8320 -4.9719 -7.8984 -10.8034 -12.5203 -12.4959 -10.7116 -8.3345 -4.1201 -0.1578 0.1929 0.1873 -2.8273 -8.7555 -14.7009 -17.5950 -18.3997 -17.0685 -14.4171 1.9066 0.3797 0.2936 0.7746 -0.4377 -0.0940 0.1464 -0.0351 0.2602 -0.8075 -2.3869 -18.3683 + -1.7829 -2.9115 -3.3197 -3.0219 -3.0103 -2.1963 -1.8274 -1.5453 -1.3834 -0.5971 -0.1822 -0.0707 -0.4004 -0.4751 0.5738 0.6319 1.4145 1.0927 1.3496 1.6238 1.3746 1.5109 1.6452 1.4227 2.6607 1.9921 2.0933 1.3984 1.9401 -5.1733 -5.1451 -4.0887 -4.3334 -2.3485 -1.2750 1.8849 3.8802 5.4984 6.3884 4.7120 5.8699 + 3.0884 3.6195 4.4987 5.4241 5.9234 4.3151 1.2318 -2.0672 -4.8560 -6.7176 -7.7263 -9.2051 -9.8093 -9.8027 -9.8649 -7.5800 -3.5471 1.2395 3.8333 2.4520 -0.1380 -0.1169 2.7696 4.2835 3.0029 2.8349 6.1975 8.5550 8.1619 3.4262 3.7255 2.9723 1.5679 0.6856 0.7789 0.0324 -0.0400 -1.0930 -1.5814 -10.4745 2.5083 + 7.7805 8.5455 8.0969 7.4180 6.0322 4.2643 0.7072 -3.9008 -6.6106 -8.5279 -9.9913 -12.2197 -13.9875 -14.6194 -13.4585 -8.5866 -0.1410 5.8556 2.7328 -4.3868 -7.6497 1.0307 6.7604 2.0849 -2.0565 4.3945 7.6154 14.5442 18.2732 15.9793 12.4675 8.6361 9.3177 7.1620 -0.4370 -7.8068 -13.5960 -11.2218 -10.5975 -9.9034 -5.2521 + 15.1743 16.3078 16.6845 19.2037 24.9642 26.0482 22.2299 20.1754 18.1609 11.9813 3.3906 -4.1269 -9.8102 -12.4054 -13.1972 -14.9771 -15.2101 -17.0350 -17.5402 -17.2730 -16.8388 -14.0848 -9.7661 -6.4551 -6.0572 -3.5105 -0.1292 -3.2831 -12.6212 2.6750 0.5089 0.3940 -0.3851 -0.0012 -0.1207 -0.3792 0.6121 -0.3176 -1.0554 -1.9307 -19.7041 + 31.5560 30.0892 27.2291 23.5683 19.0546 13.2491 7.4257 2.9756 1.0209 1.0243 1.3700 0.6757 -1.0362 -3.4535 -5.1118 -5.5508 -4.6428 -3.9233 -3.2906 -5.2994 -8.4124 -11.6578 -14.3387 -15.5177 -14.9184 -14.0360 -14.9127 -16.4768 -16.6595 1.6433 1.3970 1.0165 0.6310 -0.0752 -0.3736 -0.5030 -0.7080 -0.7791 -0.4687 -1.7802 -17.0148 + 10.1749 8.8485 5.1795 4.5617 6.0171 6.4829 4.3672 1.6019 -1.6450 -2.9876 -3.6524 -3.2008 -2.3296 -2.1644 -0.9768 0.4251 1.9391 3.4981 4.6467 4.5048 2.1218 -0.3094 -2.3029 -5.7620 -6.5009 -7.7314 -8.7890 -8.6982 -7.3190 -8.3023 -3.9045 0.7597 3.5083 5.6470 8.4380 8.9270 8.1570 4.5045 0.2453 -27.9802 0.6878 + -2.6861 19.2221 33.9780 25.1761 5.3276 0.9553 6.0941 10.8857 -5.1659 -6.6908 10.2870 5.5719 -7.7825 0.7662 -3.2785 -9.7089 2.1449 -8.4950 -0.8482 -8.2638 -3.5649 -9.0557 -5.1930 -8.2034 -6.3047 -4.3602 -8.0851 -11.0228 -11.6996 3.2339 2.5869 1.5692 0.5614 -0.4616 -0.6459 -1.3729 -1.3736 -1.2425 -0.6779 -2.1770 -11.9897 + 7.7287 10.4343 12.3692 13.9892 14.6808 14.5459 13.0629 9.8660 5.8851 1.8545 -0.9409 -3.2758 -5.5305 -7.8527 -9.4747 -10.4586 -10.7336 -9.8759 -8.2611 -5.1685 -1.7008 0.1176 -2.2902 -4.5858 -4.0962 -2.2000 -2.3668 -6.9728 -8.7495 13.3085 14.0301 12.5973 11.0446 6.5436 -2.6637 -9.4551 -11.0645 -11.2845 -10.7446 -12.3117 -20.4326 + 10.7360 10.3386 8.2768 6.4632 4.7302 3.0267 0.5796 0.1120 1.9363 5.0018 8.3004 9.8879 8.2713 4.5555 2.8097 1.8606 2.8946 3.7421 5.2970 1.2683 -4.7378 -8.7201 -12.8564 -12.4960 -9.6753 -7.5251 -10.0781 -16.3686 -17.6314 11.3379 8.1471 4.3411 2.5211 1.4007 -1.3607 -3.3014 -4.3151 -5.9538 -5.2614 -7.5554 -24.6877 + 15.8329 15.5150 15.4055 16.5837 18.1854 17.6604 13.6126 8.4914 4.4891 2.4328 0.8814 0.7780 2.6950 5.3091 6.6587 3.8545 -1.3529 -6.1324 -10.5147 -12.4571 -13.5735 -11.0746 -7.2535 -11.2844 -17.2383 -20.4683 -17.4107 -10.9397 -8.6853 6.2333 2.1814 0.2320 -2.1897 -2.6025 -1.7475 0.3359 2.9117 0.0927 -0.1075 -5.3398 -21.1984 + 7.6562 6.5870 4.6968 5.1260 9.8218 14.9709 16.0850 11.5684 4.7265 -0.2176 -2.9979 -6.0694 -8.2544 -9.4950 -8.0755 -5.7955 -0.4807 4.7296 3.3026 -0.0914 -2.8102 -1.2809 -0.3393 -3.3149 -5.6215 -8.5469 -6.6780 -7.8970 -11.3047 12.3298 6.3356 1.6165 -2.5162 -1.6392 -1.6454 -1.7173 -2.3908 -2.4175 -3.1101 -4.8454 -23.7397 + 4.9452 5.0593 3.8655 4.3020 7.6977 11.2424 13.0502 11.2196 6.9219 2.6857 0.2056 -1.5076 -2.7845 -3.1104 -0.8091 1.9648 6.1634 5.4049 1.2240 0.3494 -1.5074 -1.8246 -3.5432 -4.5137 -4.3268 -8.6129 -12.2904 -18.8599 -22.6111 7.0748 5.7565 2.9123 -0.3591 -1.5206 -1.7280 -1.8572 -1.6318 -2.3011 -2.3197 -4.0261 -26.4685 + 6.0640 7.2189 7.3048 8.3637 9.3160 10.4746 10.1941 8.3124 5.0444 1.9281 -0.2645 -1.4345 -2.1250 -2.6210 -3.0015 -2.7992 -2.6148 -2.9666 -3.0696 -3.8743 -4.5941 -4.8980 -5.6820 -5.7978 -5.5722 -5.1973 -5.4147 -6.4176 -5.8765 -6.4521 -7.2215 -4.2413 -2.7669 -0.8266 1.9295 3.3149 5.2440 5.9014 6.7572 -1.6387 -0.2567 + 5.2371 4.8863 3.3100 2.1337 3.1492 5.6939 8.7998 11.5679 12.8023 11.4528 9.0298 8.9298 10.6661 11.0071 6.4326 0.2441 -4.1637 -7.7062 -9.8518 -10.2264 -9.5820 -9.1951 -8.6992 -10.3299 -13.3858 -12.1048 -8.3569 -6.0495 -5.6913 14.1502 9.0286 4.5400 -1.0010 -2.1523 -1.3098 -3.6803 -4.2446 -3.9915 -4.5409 -6.7984 -22.3276 + 1.1749 2.9147 3.8400 5.6634 7.4575 9.0125 7.3532 4.8392 2.7190 0.8710 -1.4481 -2.7601 -4.4452 -5.2662 -3.9827 -3.4617 -3.6219 -3.1639 0.2716 3.4947 2.5863 2.0483 0.3695 -1.8223 -3.0550 -5.5600 -5.1761 -5.3683 -5.4841 2.7668 2.1577 3.0912 2.4351 2.4455 2.9457 1.4490 -1.5314 -2.8660 -2.9647 -9.9290 -9.9768 + 25.7146 25.3619 23.9564 22.3568 19.1718 13.1052 5.5763 -0.1008 -2.7575 -4.2993 -6.3232 -7.4184 -9.0999 -12.1658 -14.7424 -14.2269 -13.0082 -10.2417 -6.6055 -0.9140 1.6308 -1.8199 -3.8874 -1.8765 -3.1164 -7.7016 -9.3481 -4.2820 -2.9383 8.4368 1.7117 -0.7722 -1.4926 -2.2285 -1.9674 -1.0460 -0.6567 0.1437 0.9502 -3.0790 -15.7527 + 10.7572 9.4885 7.7426 6.5423 6.0951 6.6895 8.5238 11.1515 12.9326 13.0679 11.3687 8.6878 5.8071 4.2486 4.2979 5.1375 3.6691 -0.4487 -5.7940 -9.6188 -11.6687 -12.0791 -10.1837 -7.1986 -9.3267 -15.4942 -18.3956 -19.0668 -16.9329 10.8057 6.4011 3.3690 1.5029 -0.9587 -2.8947 -3.7517 -3.2931 -2.8022 -2.8052 -5.5731 -27.3774 + 30.7504 28.4951 25.5185 22.1742 18.1099 13.0360 7.7976 3.5112 0.1176 -2.6569 -5.1898 -7.4966 -10.1459 -13.1401 -15.8245 -17.0970 -17.1868 -16.6198 -16.0292 -14.4009 -11.3257 -6.9370 0.0110 2.6766 1.9106 1.9904 0.8448 -1.2215 -1.6723 13.9837 12.0732 6.7883 4.2122 -0.6419 -6.1564 -6.8790 -7.3232 -5.7545 -3.2248 -7.0778 -13.8733 + 5.5235 4.9142 3.2141 2.6590 2.9961 4.2989 2.3547 0.5028 -0.8260 -1.5841 -2.8526 -2.4476 -1.1830 1.5505 2.5932 1.4615 -0.9550 -2.6992 -1.4620 0.7531 3.9055 4.2326 1.8576 -1.8966 -2.2755 -5.1995 -7.0773 -7.5304 -4.8283 8.7008 8.7053 7.0759 3.5239 0.2213 -0.4716 -2.9649 -4.4365 -3.8970 -5.6460 -10.8111 -11.0662 + 10.0683 11.2576 9.1250 5.5609 2.1927 2.3916 0.5672 -0.6821 -1.7701 -2.4144 -2.1229 -2.5051 -3.0931 -3.4474 -3.5498 -4.6568 -4.0419 -2.9786 -1.6058 0.2043 0.2119 -0.9338 -2.1449 -1.5900 -1.2476 -0.0367 -0.7467 -1.0002 -1.0118 -12.1871 -7.6015 -6.0260 -2.6153 1.8019 5.1419 7.0075 7.4839 6.3084 5.7281 -5.0417 11.1839 + 19.0914 19.5418 18.5550 17.3149 15.8219 14.6893 12.7457 11.1878 8.8607 6.1729 3.1425 -0.6029 -5.0284 -9.2811 -12.4294 -13.9531 -12.8183 -10.2445 -6.0419 -0.7352 0.9087 -2.2874 -5.6745 -5.3857 -4.8993 -8.6787 -14.4653 -17.3889 -18.1181 2.0079 2.3051 0.1550 -1.9709 -2.1518 -1.0518 -0.2981 0.9220 1.4828 1.7198 -3.1202 -19.8209 + 7.5768 6.6930 5.4155 4.9157 5.4796 5.7470 5.5734 5.4561 5.0927 4.7098 4.4827 3.6618 2.9817 3.2600 4.2867 6.6922 8.7811 7.7587 3.8523 -0.1532 -4.4933 -6.9881 -8.1454 -8.9490 -9.5267 -13.8968 -17.7691 -17.7758 -14.7195 9.4196 10.2634 10.4478 8.8124 5.1507 1.4872 -4.9411 -9.3928 -9.8991 -10.0090 -11.3391 -24.4463 + 6.3112 6.1145 5.3668 4.5313 3.6954 4.7877 6.2658 8.3789 10.2936 11.7688 11.4084 9.5320 6.9810 5.0657 4.7615 5.5904 6.1808 3.6441 -0.8606 -5.0517 -7.7101 -8.0207 -7.3867 -7.9980 -11.4209 -15.6623 -18.3210 -19.2583 -18.9878 1.9218 -1.0898 -2.1315 -2.6064 -0.3290 1.3612 2.7055 3.4481 2.1270 0.3937 -5.8006 -23.8910 + 4.7133 7.0828 7.4451 6.1536 5.1026 6.1735 5.5620 4.7204 2.3449 0.0662 -0.0552 -1.4746 -1.3028 -2.0833 -2.3742 -3.0032 -1.8959 -3.1532 -2.7407 -2.7522 -3.1457 -4.1303 -3.0723 -3.0359 -3.2114 -2.1394 -2.2842 -3.9496 -3.5601 -9.5458 -8.5225 -2.1447 -3.0135 -13.5275 -8.7010 7.2088 11.6588 11.7890 11.7226 3.0758 6.7721 + 14.9989 17.5318 17.0021 15.1799 12.5029 9.0797 3.8559 0.1428 -2.0371 -1.8983 1.1780 2.7230 2.0463 1.0309 1.6621 0.5141 -1.5732 -3.0527 -4.0016 -5.2671 -5.7073 -7.6154 -8.5918 -8.8827 -8.7941 -6.7438 -5.5924 -13.4525 -16.2384 -1.0040 -2.5012 -0.5919 1.0505 3.9201 5.2244 4.5335 2.9522 -3.9239 1.3432 -11.0028 -13.7590 + 23.3831 23.9860 23.9088 23.9899 24.5442 24.7231 23.4676 20.9361 19.0352 18.1315 16.6484 13.2407 6.9323 -0.8530 -7.8736 -12.5420 -15.8304 -18.1801 -19.7679 -20.6937 -20.6499 -19.8660 -18.7929 -17.4798 -16.8484 -17.7541 -18.9554 -19.1779 -17.6622 2.2274 0.2658 0.2329 0.5563 -0.2993 -0.6411 -0.8349 -0.8217 -0.3946 0.3529 -0.6438 -20.4737 + 27.1582 28.3012 27.2357 25.1547 21.7324 15.2318 7.9956 2.0196 -1.2674 -2.1412 -2.5552 -3.8180 -5.5360 -7.5787 -8.8477 -9.9856 -10.6186 -10.6812 -11.5427 -13.0580 -14.0180 -14.2114 -12.3911 -5.9856 -0.0551 2.4393 -1.0062 -8.7488 -13.2219 8.5421 8.1274 3.1062 1.0714 -1.1957 -2.6079 -3.1237 -3.4444 -3.3713 -3.1296 -3.9745 -17.2997 + 0.2274 1.5742 0.9030 -0.0755 -0.9929 -0.0010 0.9686 1.1448 0.4783 -0.3525 -0.1336 -0.1913 -1.6241 -4.5094 -5.8249 -5.3840 -4.2690 -0.9607 3.2627 5.8265 5.0034 2.6931 1.4156 0.6324 1.3181 1.5226 -0.7562 -0.2634 -1.6323 10.1447 8.1369 6.9278 1.8273 -2.8348 -3.1502 -3.8258 -3.2103 -3.0403 -2.8386 -8.1368 -10.7452 + 2.2030 2.3567 2.2770 1.9391 1.4807 2.4535 3.7369 4.5955 4.8497 4.7689 3.9314 2.9060 0.5571 -2.2750 -3.2233 -2.8254 -1.7099 0.7810 3.0014 3.5591 0.5135 -3.7594 -6.0245 -4.9397 -2.1317 -1.1080 -3.4783 -7.2902 -7.1450 17.4214 15.9833 12.5560 11.8901 6.7955 -3.1206 -12.2737 -12.4585 -12.5086 -11.3448 -12.9400 -23.4673 + 1.7001 2.1276 3.1509 3.8711 3.4450 3.9578 3.9916 2.2726 1.5860 2.9582 1.5039 -0.3172 -1.6934 0.0480 1.7637 5.8108 12.7325 15.4092 10.2323 1.6370 -5.9209 -8.2841 -8.8154 -8.6341 -8.8994 -8.7332 -8.8580 -9.4260 -8.6166 1.0902 -0.3804 -1.8380 -2.1594 -2.0188 -0.5336 -0.2356 0.9072 1.9988 2.4507 0.7188 -11.1533 + 3.3470 4.2651 3.1581 1.5899 1.3593 5.4416 9.6912 10.3789 8.2781 5.7621 2.3516 -1.6093 -4.6703 -4.3014 -2.0948 1.2895 4.5826 5.8867 2.7580 -0.5921 -1.6254 -0.3408 -0.8297 -4.7115 -8.7548 -10.1950 -9.4023 -10.1017 -10.9107 5.4257 1.3752 -1.6808 -1.6847 0.0776 4.2441 3.7807 1.7086 -1.1629 -3.5093 -8.5743 -19.3479 + 16.0698 16.0234 16.6242 18.4265 19.5793 17.7359 12.2454 6.7061 2.9279 1.0254 1.3081 3.1537 6.2322 6.7809 1.2833 -4.6315 -8.4988 -10.9702 -12.9812 -12.8617 -10.8763 -6.7933 -7.5585 -12.2110 -13.1807 -11.6979 -8.6529 -10.8315 -14.3767 3.5106 2.2779 0.8347 -0.4316 0.4812 -0.3548 -0.9580 -0.3001 -0.9639 -1.0077 -3.0884 -21.7124 + 14.8614 14.3243 13.2597 11.9042 11.3617 12.9241 16.0023 18.6135 19.9112 18.7801 18.0215 16.7944 15.0590 9.5509 2.2373 -3.7737 -7.9433 -11.6438 -15.8775 -19.0534 -20.0063 -19.8849 -17.4072 -14.6677 -14.9214 -15.6185 -17.3399 -17.4032 -18.0650 0.4331 -1.3874 -1.3387 -1.2657 0.1397 0.9913 1.3715 1.5636 0.9626 0.3031 -1.7729 -22.4910 + 24.4358 25.1322 25.6771 26.9458 25.4271 20.1741 13.1848 7.1606 2.9511 -1.5207 -6.2228 -9.1615 -10.2139 -7.9615 -3.5511 0.8947 -0.0640 -5.6909 -11.8880 -15.0418 -13.4238 -8.6724 -10.1392 -15.6141 -16.4146 -15.3775 -9.3359 -5.8457 -5.8440 5.3670 0.7714 -1.2803 -0.3316 0.0917 1.3247 -0.3166 -0.6629 -0.4726 -0.9886 -3.5022 -15.8979 + 11.2574 14.5322 17.1770 19.4370 21.2176 22.0240 20.3915 16.7178 12.6022 9.4053 7.3741 6.1361 6.4430 7.2023 6.6378 2.8391 -3.5908 -9.0350 -12.7524 -16.0348 -18.3668 -20.0831 -20.1715 -19.0743 -16.0476 -13.9450 -16.7267 -18.3902 -17.1759 6.7669 3.5601 1.4726 1.2131 0.8001 -1.0515 -1.7968 -2.1212 -2.4567 -2.6039 -3.7828 -21.2313 + 9.8296 10.9668 11.4657 12.4379 13.8874 14.6363 14.3342 12.4038 8.9235 5.0490 2.1177 -0.5223 -2.7832 -4.1482 -4.6107 -3.0828 -0.2052 2.3942 2.4641 -1.9911 -6.8813 -9.3285 -9.5593 -6.0838 -4.8651 -9.6703 -15.7893 -21.0597 -20.3293 7.8335 9.3572 8.2255 6.2992 3.6571 -1.3039 -4.8523 -6.7448 -6.9973 -6.7242 -8.7501 -23.8675 + 10.0961 10.4449 9.9127 8.5711 6.2180 4.5618 2.4521 1.1110 -0.1627 -0.3653 0.8918 1.6279 1.8907 0.7438 -0.7728 -1.2107 -1.2055 -1.5566 -3.2793 -4.1807 -4.1312 -5.1981 -4.9412 -5.1286 -4.9138 -5.1042 -5.2876 -6.4396 -4.6442 -4.2766 -4.5588 -1.6946 -0.6815 1.6923 2.6384 3.7940 3.9827 3.1253 3.8234 -7.8447 -3.7539 + 0.0757 -0.0653 -0.5789 0.6712 3.3974 5.2272 3.8057 1.3204 -0.9531 -1.2566 -1.6955 -1.1717 -0.9735 0.2237 1.1803 4.3319 6.8301 9.0463 9.4433 7.5902 3.7433 0.0327 -1.4644 -4.7154 -6.0059 -7.2747 -9.9821 -10.6151 -10.1672 1.8545 3.4334 6.1661 5.8556 3.1158 1.3495 -0.3375 -1.2855 -2.2198 -4.5273 -13.4049 -11.7714 + 18.8320 19.0344 19.1952 19.5440 18.8449 14.8697 8.6867 2.7879 -1.6869 -4.7635 -7.1363 -8.8780 -9.6594 -9.0777 -6.9523 -1.8282 3.5267 4.4511 -1.5807 -5.6560 -7.8512 -4.0511 0.2367 -5.4146 -11.3280 -13.9141 -12.8660 -9.0793 -8.2860 7.2253 2.3080 0.9914 -1.0476 -1.1123 -1.0979 0.2181 0.5772 -1.1907 -1.8790 -4.9926 -19.5991 + 6.9436 25.3648 31.2509 23.4659 7.6212 8.5476 13.4044 12.1024 6.3310 6.4395 11.2808 6.4453 3.3798 -0.4108 -2.6193 -4.1535 -5.4353 -7.8115 -9.9117 -10.8599 -12.3626 -13.5397 -13.0447 -13.1340 -12.5666 -12.9922 -14.2050 -14.7731 -14.7573 0.6782 0.2930 1.1419 0.5868 -0.3036 -0.7149 -0.2401 0.2321 -0.6483 0.2892 -1.3142 -13.0829 + 8.0630 8.5930 8.9037 9.6389 9.9192 8.6430 5.1562 1.1687 -2.6850 -5.3768 -7.2472 -8.6966 -9.7539 -8.2770 -7.3009 -4.7332 -2.5381 -2.7034 -3.2364 -4.1264 -4.6546 -3.9840 -4.4745 -3.1865 -2.7693 0.2429 6.0573 8.4087 10.9490 1.5828 2.2857 2.4626 4.2564 3.1914 1.9048 -0.4814 -1.9794 -1.6878 -0.6562 -10.8788 6.9006 + 15.3121 14.0216 12.3150 10.8984 9.8481 9.4860 9.9555 11.2336 12.1475 11.5421 9.5080 6.1797 2.1804 -1.5586 -4.1037 -3.8925 -2.2145 -0.5740 -2.0726 -5.8999 -9.5870 -12.3986 -13.2888 -11.0931 -8.6950 -10.6144 -15.3843 -17.4751 -15.7759 11.6735 8.2281 4.7038 3.1666 1.7515 -3.5926 -5.6951 -5.7508 -5.1915 -3.4390 -5.8544 -26.0008 + 10.5147 10.1953 9.3949 9.1051 8.3007 7.6855 5.3821 2.1136 -0.5365 -2.3955 -3.8024 -5.3725 -5.6568 -4.8775 -2.4291 0.2566 4.4555 7.9385 8.4324 6.4827 2.9059 0.5262 -2.9536 -6.3130 -9.2242 -10.0210 -12.3911 -13.7930 -13.9236 -1.0018 -1.0252 -1.9659 -2.6464 -2.9740 -1.2967 0.3806 1.6370 3.3651 4.3609 1.1664 -14.6511 + 17.2460 16.9637 17.1204 18.8740 20.7478 19.3865 13.9822 8.1265 3.2880 0.7780 -0.2592 -1.0141 0.0742 3.2639 4.6036 2.5181 -3.1653 -6.8864 -8.0795 -7.3818 -6.3471 -6.8628 -11.5495 -14.8984 -15.4665 -15.7120 -14.8453 -15.6943 -18.8106 1.4980 1.4377 1.0081 0.1939 -0.3867 0.3736 -0.2884 -0.4032 -0.4237 -0.7102 -2.2990 -21.4765 + 29.1324 27.4472 23.9346 19.8815 15.3348 10.3288 4.4524 -0.1346 -3.0576 -4.7063 -5.5439 -5.9222 -5.9328 -6.6024 -6.7197 -6.0365 -5.2696 -5.1176 -6.4818 -7.5705 -8.4454 -8.5007 -8.4654 -7.9097 -7.0136 -8.1875 -7.3437 -4.3020 -1.2484 4.1307 4.9307 5.3321 3.9185 2.3886 0.5401 -1.5333 -2.6429 -3.4176 -4.0077 -9.6393 -7.8398 + 26.1063 27.1257 26.4958 24.5623 21.0909 16.0392 10.3606 5.2224 1.2830 -1.7057 -5.2899 -8.7872 -11.5471 -13.8485 -15.6146 -16.5388 -16.6318 -15.7526 -14.3061 -11.8594 -6.9641 0.2736 3.2894 2.3319 2.1876 -0.1464 -6.9487 -10.5477 -9.8802 8.0155 5.1637 1.2918 -0.1585 -1.6768 -2.1876 -2.1575 -2.3734 -1.4901 -0.3422 -4.0850 -16.2781 + -2.8938 0.5854 4.9032 19.8896 33.0777 27.8431 5.8284 -0.8777 -0.4212 7.5419 14.4523 0.5889 -7.2843 -5.7721 2.2765 -3.8670 -7.0376 -2.4089 -1.9230 -6.9736 -5.0540 -6.8128 -9.1282 -7.6378 -9.9538 -8.0762 -10.1133 -10.3156 -10.4365 1.7900 1.2930 1.2513 1.1649 -0.0523 -0.1935 -1.3719 -0.6466 -0.7256 -0.6226 -1.8868 -11.7248 + 5.0511 7.2825 7.4756 7.6284 6.3099 6.5711 6.0062 5.2464 4.1337 3.5789 2.7344 1.9171 -0.0947 -4.7055 -6.3175 -6.7260 -8.3754 -7.5699 -4.4289 -0.5061 0.5491 -0.6121 -1.6630 -2.5886 -1.0683 -1.0286 -4.3484 -7.2928 -7.1586 2.8359 1.6298 0.9777 0.2594 0.2894 -0.2649 -0.2767 0.5984 -0.0902 -0.5417 -5.4171 -8.5849 + 26.8109 26.2612 24.6562 22.4444 19.7975 16.2207 11.9006 7.5618 4.2432 1.1620 -1.9686 -4.6999 -7.0035 -8.7711 -9.4863 -9.0559 -7.8923 -6.8802 -7.0120 -8.4837 -11.2123 -13.1769 -13.1832 -11.7848 -8.9173 -7.9697 -7.9495 -8.0762 -7.5350 6.9413 5.9114 4.4559 1.9045 -0.2220 -1.5629 -2.1181 -2.9624 -3.1458 -3.1496 -6.0522 -15.8707 + 15.4221 13.9665 11.5956 9.4217 7.3471 4.9825 2.5822 1.1306 -0.4479 -0.0543 0.4224 2.6264 2.4323 2.9777 3.9679 4.5466 4.0757 2.5862 0.7066 -2.3566 -5.4206 -6.8028 -9.1716 -8.9333 -8.9478 -9.7023 -11.2057 -13.2026 -14.5445 4.5118 3.2465 1.4635 1.0112 0.8257 -0.5633 -0.8311 -1.4185 -1.8127 -1.1914 -5.2417 -16.4127 + 28.0070 28.9811 29.1691 29.0099 27.2163 23.1256 18.5752 16.0256 16.0772 16.0792 13.4415 7.1002 -1.0509 -7.6202 -12.1978 -14.6100 -16.0350 -16.8734 -17.1512 -17.3461 -17.2821 -16.7355 -16.3289 -16.1605 -16.3294 -16.8373 -17.0316 -17.0117 -16.2062 0.8143 -0.0316 0.0425 -0.0469 -0.5600 -0.2604 -0.2934 -0.0397 0.1815 0.6487 -0.4551 -17.2928 + 21.3473 20.2800 18.5835 16.4034 13.0771 9.2891 7.0954 6.8063 9.6682 13.1023 14.6281 13.8935 12.0583 11.5472 11.1879 7.7716 2.5072 -3.2634 -8.4595 -14.0714 -18.2085 -21.2308 -24.2103 -24.5753 -21.1428 -16.8159 -16.8684 -20.7499 -19.6500 7.8883 2.8059 -0.2509 0.2746 0.5770 -0.7075 -1.0613 -1.6761 -2.1520 -2.4962 -3.2017 -23.7494 + 16.7277 16.5100 14.9737 13.3864 11.3764 9.4606 7.4445 4.9221 3.5715 2.4337 1.9778 1.0209 0.1128 -1.6904 -3.3639 -3.2615 -1.5944 -0.2581 -0.9030 -2.3174 -4.1698 -4.9533 -4.5665 -6.1912 -10.0495 -13.2340 -15.5995 -16.5459 -15.2199 5.3973 5.3767 6.3500 5.5996 2.0913 -2.3482 -4.2670 -3.6648 -4.0077 -3.9263 -6.6010 -20.6386 + 3.6641 3.0720 2.1390 1.3959 0.5821 0.1856 -0.7457 -1.8010 -2.5799 -2.9996 -3.1922 -3.7936 -4.3073 -4.4608 -3.7250 -2.3583 -1.9204 -1.2606 -2.2907 -2.8190 -3.6214 -3.1415 -2.0045 0.0938 2.4493 4.0398 6.5627 10.1038 12.7333 -5.2898 -3.8412 -0.6529 0.7502 1.5439 2.5070 2.6854 3.8159 2.2321 3.0585 -6.8092 14.5213 + 7.5981 6.7937 5.2222 4.6535 5.7305 7.9847 10.0100 10.9988 9.0694 6.0491 3.4695 2.2020 3.1237 4.5225 7.5338 7.0660 2.8900 -1.4622 -5.4401 -6.1963 -7.3166 -5.9799 -7.7791 -10.5609 -13.5413 -13.8804 -12.9467 -9.4679 -10.3461 11.6866 9.3826 4.4701 -2.9772 -5.4470 -4.9307 -2.7270 -0.1581 -1.4072 -1.6802 -6.2119 -24.8632 + 5.8372 5.4933 4.4445 3.1566 1.2701 1.1435 -1.1096 -2.4243 -3.5109 -2.2282 0.6573 2.1785 1.1141 0.6038 -0.9270 -0.1010 0.3438 0.9773 1.8036 -0.1658 -2.1507 -2.6201 -1.5194 -0.3072 1.7488 -3.1481 -4.7553 -3.5314 -2.2733 1.5456 3.9136 6.0524 4.7910 5.6839 4.8261 0.4655 -3.9096 -15.7692 1.8630 -9.4624 -9.4890 + 4.6026 4.2957 4.0221 3.8863 4.8775 7.7799 11.9268 15.6438 16.1838 13.0359 8.2259 3.9397 1.1633 -0.5844 -0.4453 1.6720 3.9861 4.4822 0.7429 -4.6835 -8.2254 -8.6845 -8.8455 -9.2050 -9.3625 -12.1150 -14.9115 -16.6057 -16.7984 9.4268 8.2301 5.4360 2.2444 -2.8020 -3.6865 -3.4374 -3.6210 -3.4624 -3.4351 -4.8928 -25.4465 + 31.7873 30.4727 26.1023 20.2575 14.3546 8.3050 2.5479 -2.7242 -6.2652 -7.8786 -9.5076 -10.7253 -11.9221 -12.5796 -13.0020 -12.4110 -11.3787 -10.5858 -9.2885 -7.2279 -5.6862 -4.5481 -3.8155 -3.1810 -0.2688 1.7479 2.4086 2.6005 2.4118 6.0159 2.6937 1.8092 1.2143 0.6228 -0.1962 -1.5166 -0.7925 -1.1563 -2.0509 -6.6433 -6.4991 + 18.8196 18.8060 19.0012 19.7425 18.9386 15.1920 9.3626 3.8042 -0.7101 -2.8913 -4.5793 -4.8562 -4.2855 -1.5235 2.8079 3.9527 -0.6820 -6.1064 -9.0907 -10.7715 -10.2261 -6.8530 -5.4028 -9.0538 -11.2966 -11.9744 -10.3023 -9.0454 -10.7763 4.8079 2.0464 0.5831 -0.5085 -0.7115 -0.6171 -0.2759 -0.3213 -0.2270 -0.8577 -3.9185 -18.4439 + 29.8848 29.1207 27.5698 25.5473 23.0863 20.0333 16.4515 12.7057 8.6525 4.4123 0.1328 -3.7662 -7.0685 -9.2222 -10.1967 -10.3862 -9.4399 -7.5052 -6.1986 -7.0520 -9.6530 -11.7447 -12.8170 -13.2994 -13.4411 -14.5193 -16.0619 -17.4467 -17.7785 0.6444 0.9150 1.0957 0.6198 -0.2661 -0.3037 -0.4308 -0.4697 -0.3863 -0.3182 -1.1000 -17.5027 + 18.4803 19.3278 19.3456 18.5446 16.5534 13.5838 10.0057 6.5241 3.2399 0.5440 -2.4922 -5.5969 -8.4750 -10.0774 -10.9952 -10.9028 -10.6525 -9.9639 -8.7708 -5.9295 -0.9987 2.2097 -2.2176 -6.2966 -4.0572 -2.0702 -5.9921 -9.8384 -13.0318 9.7202 8.7919 5.8500 1.2627 -3.1473 -4.0847 -3.9814 -3.8063 -3.2668 -2.9485 -4.3897 -21.4605 + 10.8936 10.0376 8.9233 8.3835 9.1909 11.1956 12.7625 12.8310 11.2547 8.6892 5.7674 5.0532 5.1919 6.4652 5.5698 1.2762 -3.6991 -7.9057 -10.9535 -12.3006 -13.0325 -12.0668 -10.2756 -8.9081 -9.5586 -12.4845 -12.5292 -10.6874 -9.0841 6.7548 4.3777 7.2866 11.0895 5.9012 -3.2191 -7.2773 -7.4247 -5.9063 -4.6316 -6.9510 -23.6620 + 14.1801 13.6094 10.2460 6.2621 3.2304 0.4920 -3.3704 -5.1542 -6.4379 -7.1331 -6.8071 -6.7010 -7.0994 -6.7923 -5.4284 -4.1081 -2.2588 -0.3405 0.3901 -0.1306 0.2111 1.2777 2.6120 2.4542 2.4177 2.7283 1.9381 0.6674 -0.9548 1.3373 0.4195 0.2246 -0.2612 -0.5780 -0.3401 0.2289 0.3082 1.5502 2.1823 -5.0717 -1.9154 + 7.4197 7.6107 5.1248 2.8926 2.5158 5.2747 7.9445 9.5554 9.8134 10.8602 11.2127 10.8181 10.8451 8.6337 3.4818 -1.7126 -6.6143 -9.2501 -11.7550 -13.8987 -14.1553 -13.7199 -12.4906 -7.9780 -7.1759 -5.4179 -4.3134 -2.3617 -3.1596 3.7397 0.2684 -0.7543 2.0473 3.1074 3.1748 0.6925 0.1021 -1.9327 -0.9979 -9.4471 -15.9473 + 5.0374 7.8743 10.5060 13.2551 15.8405 18.1863 17.6870 15.2297 11.9245 8.8446 6.8821 5.5715 2.9277 -1.1968 -4.6014 -6.2302 -7.5567 -8.8097 -8.9946 -8.6106 -9.0917 -8.5223 -8.8031 -10.3066 -10.5465 -10.5120 -10.3576 -11.9252 -13.7020 3.7640 1.8720 2.0488 1.2415 0.9134 -0.5949 -1.6362 -1.3248 -1.6433 -1.0179 -3.6227 -18.8186 + 19.2311 20.9055 21.1816 19.8035 16.7640 10.9316 4.3014 -1.2152 -6.3082 -9.8229 -12.4158 -14.6010 -15.1960 -13.5529 -10.4860 -6.0010 -0.0077 5.5394 4.4883 0.8609 -0.7114 -0.5882 -2.0714 -4.1988 -3.5305 -2.7385 -3.9119 -6.6059 -10.0440 6.8589 1.6709 -0.4277 -0.8756 -0.7567 -0.4132 -0.3654 -0.2776 -1.2933 -1.0276 -3.0928 -19.7110 + 24.3921 23.8657 21.7178 19.5721 17.2483 13.0391 8.2780 4.5096 2.1017 1.4583 0.4028 -1.6986 -2.5413 -2.4202 -3.3681 -6.3081 -8.4179 -8.6508 -8.3994 -5.6233 -2.8768 -2.4582 -4.6987 -11.0260 -15.7297 -17.5495 -16.4980 -11.2445 -7.0765 10.9683 8.5482 1.6240 -0.8116 -2.3291 -2.0794 -2.7065 -3.3384 -2.8326 -2.6102 -4.4326 -18.4205 + 21.6293 21.2629 20.0435 18.0462 14.0665 8.5047 3.1435 -1.3209 -4.4014 -5.7444 -6.2440 -6.5178 -6.8764 -6.1381 -3.8131 -1.3478 -0.7585 -3.8085 -6.8211 -8.0966 -7.5890 -5.2013 -2.5966 -3.9678 -5.8322 -4.8627 -3.8164 -4.4574 -6.4845 7.4192 3.5944 0.8769 -1.2773 -0.8711 -1.2539 -1.2063 -1.1651 -0.7991 -1.1807 -4.1369 -15.4669 + 25.3218 25.2194 24.6132 23.8034 22.1467 19.2686 16.0070 12.6244 9.8907 7.3439 4.6106 2.0173 -0.2300 -3.1887 -6.2778 -8.9287 -10.7500 -12.4083 -13.6221 -14.5295 -14.0216 -11.6668 -8.2900 -7.1780 -8.6454 -13.0929 -18.1357 -20.6369 -21.2645 0.6490 1.5279 1.4976 1.2259 -0.2509 -0.5437 -1.0645 -0.9697 -0.4026 0.0229 -1.6919 -19.5268 + -1.2546 -1.5446 -0.9486 0.9829 1.7405 1.8511 2.6120 4.5582 4.2836 3.2383 1.9250 1.5674 0.4781 -1.1296 -1.5011 -0.3895 1.2177 2.8828 3.7419 3.9893 0.6886 -1.3040 -2.8370 -5.6790 -3.6007 -1.0630 -1.5598 -5.1076 -7.8381 10.2277 6.2474 2.9832 -0.8736 -8.4082 -6.4397 -4.2854 -1.8654 0.4359 0.9540 1.0241 -18.8314 + -3.6520 -0.9802 0.6330 3.0142 3.7152 4.2246 3.0650 2.2808 0.7668 -0.9696 -2.1283 -3.4617 -5.6960 -9.1999 -10.9932 -10.5950 -8.8872 -8.3491 -3.9024 3.8951 4.5732 4.1833 4.4267 5.3015 7.1630 6.8136 3.6000 4.1437 7.0149 8.8113 4.5339 4.3320 3.8462 2.4702 0.0061 -1.7359 -2.2461 -3.3967 -3.6881 -12.9329 -0.9921 + 24.1276 23.4144 21.9515 19.2491 15.3233 10.6683 5.7075 1.4491 -1.9622 -3.4974 -4.3346 -5.2640 -5.4783 -4.5424 -2.5563 1.0471 2.9749 1.0585 -4.2112 -7.7040 -8.5161 -8.5574 -7.1906 -8.4892 -11.7312 -13.8838 -13.1386 -9.4367 -6.4770 -5.2323 -4.7057 -2.1760 0.8632 2.4803 4.6972 3.2524 3.1237 0.8651 3.0078 -6.1758 -9.0277 + 9.2070 8.6269 7.9993 9.2567 10.6048 10.9179 8.2726 5.4801 2.9587 1.4349 1.6895 0.8687 -0.1341 -1.4667 -2.2954 -2.9979 -3.1146 -3.5248 -3.6823 -3.9108 -4.7040 -5.0502 -5.2411 -6.0582 -6.2892 -7.1229 -6.8496 -7.8359 -7.0393 1.0164 0.3126 0.2560 0.1094 0.1566 -0.0117 -0.2184 0.2660 0.0029 0.5627 -2.4525 -9.3388 + 19.0542 19.7864 20.4414 20.8883 19.4828 14.6899 8.0652 2.5866 -1.9610 -4.2899 -5.3264 -5.8141 -5.3969 -2.8814 0.6767 3.6783 2.8172 -1.1754 -3.8287 -4.3496 -4.1271 -2.7566 -3.4552 -6.5139 -9.4384 -14.1688 -17.1871 -19.0448 -20.4515 1.8392 0.8553 0.2154 -0.0271 -0.4104 -0.2449 -0.1708 0.0249 -0.0369 -0.2525 -1.7922 -22.7099 + 22.2875 23.2966 21.0875 19.4172 19.4631 20.2489 19.0860 14.7884 9.6247 4.7618 -1.1341 -7.8711 -13.4709 -16.4039 -17.9473 -16.0183 -8.7161 -0.3674 4.2198 1.8970 -0.6141 -0.3383 1.4297 -1.9778 -12.2530 -18.9367 -22.1657 -22.0094 -21.3840 0.0857 -0.3388 -0.3844 -0.6424 -0.7435 -0.5609 -0.1067 0.1511 0.7988 1.0267 0.7142 -22.3449 + 1.5997 0.7952 0.5771 -0.1086 -0.9165 -0.4936 -0.5385 -1.1104 -2.3027 -2.7303 -1.7093 -1.2741 -1.2559 0.1339 2.1512 4.2566 4.4113 3.2940 1.9275 1.1660 0.9857 0.1003 -0.1015 -0.9056 -0.5391 -0.5752 -1.0655 -2.5147 -3.2570 1.4399 1.6942 1.2365 0.6457 -0.0065 0.5875 0.3795 -0.0796 0.4453 1.0116 -7.3540 -5.9661 + 17.6306 19.8446 20.6406 20.9119 20.8696 19.9715 17.0436 12.6644 7.8356 3.7315 0.0618 -2.5156 -4.0666 -3.6383 -2.3405 -0.6112 -0.7237 -3.4603 -8.5171 -12.2394 -14.9608 -15.8437 -14.9681 -12.6150 -11.0775 -11.0437 -12.1047 -15.2272 -15.2522 3.8383 2.7442 1.4004 0.6138 -0.4141 -0.6861 -1.0225 -0.8449 -0.9118 -0.8189 -3.8984 -19.7618 + 4.0159 4.7341 5.0428 5.4476 5.5823 5.0017 4.7364 5.0152 5.4244 7.2281 10.0426 12.1892 12.5133 10.8886 9.4587 9.9271 9.6594 6.2877 1.1672 -4.8743 -9.8309 -10.9887 -10.4195 -8.8449 -10.0345 -14.2880 -19.4282 -23.5124 -22.1410 9.6326 8.1547 3.0154 -1.3662 -1.9025 -0.9827 -0.5431 -2.6536 -3.4587 -4.0540 -5.8420 -26.6165 + 1.3951 2.3341 2.7846 3.6043 3.9813 5.2605 5.5279 4.8460 3.2475 2.3327 1.8366 1.4325 0.6121 -0.4539 -1.6285 -2.8274 -4.2077 -4.6993 -5.0706 -4.2874 -4.4071 -3.4175 -3.0547 -3.3504 -1.7471 -0.7879 -0.0749 -0.1170 0.9361 4.5093 3.2132 3.2053 2.7775 1.5517 -0.0446 -1.3922 -2.0535 -0.9648 -1.7751 -9.0269 -4.5860 + 28.2916 29.7152 29.0955 27.1159 23.3768 18.1997 11.9697 5.6704 0.9205 -2.5625 -6.9213 -11.4860 -15.0627 -16.3635 -16.7915 -16.8262 -16.2290 -14.5129 -11.0684 -5.6647 2.9493 7.1450 4.8374 2.6581 -2.8551 -9.6290 -15.3060 -15.9776 -14.6886 0.7674 -0.5757 -1.0994 -0.2628 -0.3330 0.2608 0.1505 0.3201 0.6736 0.6525 -0.5539 -15.2205 + 21.3574 19.0821 16.0689 13.5763 11.7756 9.8197 7.1626 5.6591 4.1988 2.6866 1.2839 0.2970 -0.7392 -2.1025 -2.9588 -3.9692 -4.2266 -4.5449 -5.2046 -5.5074 -6.5396 -7.8927 -8.7128 -9.1400 -9.3002 -10.0030 -10.3190 -10.7968 -11.0108 1.2272 0.8607 0.9681 0.0462 -0.4903 -0.1304 -0.4412 -0.1460 0.3281 0.9330 -3.1554 -13.2931 +-11.9427 -9.0347 -8.1854 0.5355 16.2351 30.0772 15.6863 -0.5026 -5.1802 -3.4273 8.1185 14.3030 3.9959 -5.7275 -2.8537 5.8633 2.1444 -4.9037 -1.6011 1.0216 -1.4938 -3.6235 -5.0675 -4.7195 -2.6927 -4.8393 -5.4537 -9.4932 -7.2387 4.1282 1.8786 1.9953 0.5488 -0.3819 -1.3723 -1.0026 0.0804 -1.6472 -0.9937 -3.2335 -11.7554 + 18.4490 17.8582 16.6014 15.4593 14.0319 12.3568 10.0803 7.8236 5.7070 4.5343 3.6070 3.4959 2.7669 0.5453 -0.9860 -2.0713 -2.6104 -3.5225 -5.5660 -7.1856 -8.5038 -9.9136 -10.8379 -12.1072 -13.2841 -13.7883 -13.6681 -14.0513 -15.2210 1.9454 1.7954 1.7868 0.9124 0.3779 -0.2762 -0.6521 -0.9212 -0.7314 -0.0795 -4.1574 -18.4931 + 11.8976 17.9510 18.5286 15.1944 9.4977 6.4581 3.3668 -0.2268 -3.9011 -5.4058 -5.9886 -7.2383 -7.8525 -10.3087 -12.8063 -12.1794 -11.0999 -8.8156 -8.1165 -6.1532 -4.2252 -4.0395 -1.3151 0.5738 3.9550 8.7131 6.7113 1.7138 5.1116 0.9965 1.4759 3.0237 2.9344 5.1266 4.6639 2.7831 2.9561 0.3334 -5.8448 -18.4487 1.1692 + 0.9487 1.4130 0.9479 -0.0826 0.2145 3.2170 4.0687 3.2987 3.5035 4.5743 4.0544 3.4101 4.0914 4.5664 4.8132 6.4401 9.3451 8.9607 6.0790 2.7728 0.8498 -0.8017 -2.4432 -4.7032 -9.3198 -12.6235 -15.1492 -15.7996 -16.6466 -0.8633 -0.9141 -0.0119 -0.3370 -0.1759 0.0244 0.0238 0.6518 1.0910 1.8672 -1.3560 -15.2177 + 34.1302 32.0599 27.8887 23.7603 19.3256 13.9648 7.8176 2.2845 -0.8316 -2.8468 -4.8687 -6.8758 -8.2507 -10.0280 -11.0038 -9.9438 -7.5333 -4.6451 -2.1804 -2.2669 -3.7303 -5.3382 -6.9605 -9.3264 -11.3621 -13.0806 -13.5868 -13.1789 -13.3930 0.4195 0.2121 0.0329 0.2371 0.0989 0.1780 0.0464 0.0275 0.3526 0.0885 -1.6936 -14.6518 + 15.6422 15.2859 14.7754 15.3593 17.2032 19.1105 18.2304 15.0687 12.0800 11.4521 13.3209 14.1182 10.1435 2.4651 -4.8883 -9.3800 -12.5864 -13.8568 -15.1276 -15.6378 -14.1885 -9.7248 -6.9518 -9.9796 -12.4385 -13.0782 -14.0208 -19.5089 -22.8872 0.4990 0.8082 1.3862 0.4212 0.1198 -0.3486 -1.0547 -0.4030 0.3854 -0.1208 -1.6927 -24.4489 + 31.6974 29.4780 26.6290 23.2620 19.3188 14.1307 8.2731 2.8100 -1.0940 -3.2472 -4.2290 -4.8290 -5.3248 -6.1539 -6.7558 -5.9669 -4.6964 -4.4401 -6.1920 -8.0753 -8.1121 -6.2825 -6.0789 -5.7147 -3.3695 -8.9378 -16.7789 -19.5464 -19.7736 3.0519 6.0787 1.0322 -0.6589 -1.6175 -2.1104 -1.9403 -1.7062 -0.9516 0.4810 -1.6590 -17.7143 + 6.6516 7.1945 6.2582 4.9369 3.5619 3.6748 2.0770 0.4189 -2.1975 -3.8860 -3.9613 -3.8644 -5.3511 -7.2609 -7.6175 -7.1661 -5.7976 -4.5218 -1.9308 1.4480 5.0915 4.7364 4.6719 3.6113 3.3328 2.0626 -1.5330 -2.8815 -1.7589 6.4246 5.9081 6.0283 5.5237 2.9559 -0.7124 -3.2659 -4.6501 -4.6857 -3.8757 -9.6509 -8.7268 + 12.9326 13.6158 13.6027 13.5734 13.4039 13.8175 13.8659 12.7258 9.7632 6.3103 2.7321 -0.5733 -3.8746 -7.0860 -9.6450 -10.7832 -10.3935 -8.3777 -4.8027 -1.1394 -0.1906 -2.9954 -5.6539 -5.3461 -4.3930 -8.2738 -13.2039 -15.2593 -14.3519 12.0896 7.9934 4.3314 2.9333 -0.2922 -3.9740 -5.2453 -5.1292 -4.2466 -2.5427 -5.9177 -24.1706 + 3.3111 5.7192 7.6731 8.6538 8.7816 9.2367 10.2956 10.7802 8.7371 5.9609 4.1644 2.5137 0.7897 -0.7157 -1.6711 -1.2978 -0.9879 -0.5737 -1.7029 -3.8746 -6.2120 -6.9054 -7.5755 -8.5853 -8.6630 -8.4875 -9.3126 -9.4585 -10.5934 1.9845 0.8889 0.2842 -0.9179 -1.4593 -0.6826 -0.6777 -0.0392 0.8979 1.4414 -1.7202 -13.5455 + 14.2205 14.4641 13.7854 13.0598 13.2991 14.8419 16.1502 16.5712 15.2079 11.8669 7.9213 4.5068 2.1444 1.2542 2.5468 4.6558 4.3109 0.6255 -5.1870 -9.7699 -11.4109 -10.1544 -8.4757 -11.5168 -17.9764 -22.4698 -24.8959 -25.1837 -24.3922 1.4299 0.4130 0.0191 -0.2559 0.4822 -0.2917 -0.0644 0.3763 0.0596 -0.3088 -1.8594 -27.0927 + -2.8758 15.2556 21.0124 15.2890 2.1565 2.6722 2.9230 4.3949 0.4460 -0.9254 1.7753 1.3640 0.4328 -3.9146 -4.3331 -4.1112 -3.8881 -5.2841 -2.7539 -1.9759 -0.4884 -4.8231 -3.5586 -3.5100 -2.3689 -4.3495 -5.1658 -7.1944 -6.2007 -2.4750 -1.0212 2.7562 1.1019 2.0472 2.2292 2.3273 2.8928 -1.1663 -0.0381 -8.6541 -3.0398 + 18.8285 20.4979 21.7173 23.1703 24.2063 23.5814 21.0896 17.9453 15.6430 14.4782 13.1430 9.6223 4.1452 -1.1378 -5.0589 -7.8909 -10.5229 -13.0157 -15.3961 -16.7612 -17.5151 -17.5485 -17.4267 -17.8018 -18.7396 -19.9281 -20.0342 -16.8630 -12.4276 8.6336 4.4955 1.3996 -0.2307 -1.5565 -2.0497 -2.3230 -2.1696 -2.1650 -1.6041 -2.4300 -20.8387 + 16.1197 16.1677 13.0422 10.1574 7.4820 4.6731 0.9828 -1.4519 -2.9998 -3.7625 -4.0148 -4.3809 -5.3027 -6.4756 -7.1149 -7.3309 -7.7257 -6.9484 -6.1237 -4.9958 -3.5063 -1.5803 0.7658 1.7860 3.3939 3.3871 0.1351 -1.5829 -2.7956 3.7721 2.8811 2.6980 2.1046 1.6496 1.6430 0.3146 -1.1205 -1.2974 -2.3187 -10.3263 -6.3444 + 33.2222 30.5262 25.0634 19.0582 13.7573 9.6221 5.3575 1.7730 -0.2567 -0.9304 -1.7632 -2.8645 -3.7480 -4.1938 -4.1659 -4.0416 -4.7502 -6.0605 -7.9728 -8.5077 -8.1116 -7.8726 -8.1931 -9.0767 -10.5826 -11.3078 -11.2136 -11.3407 -11.4260 0.8122 0.4880 0.3714 -0.1432 -0.1971 -0.2624 -0.2558 -0.0613 0.0880 0.0913 -0.9310 -13.3990 + 23.3644 24.0993 25.3117 28.0710 27.1967 22.1136 17.5071 15.1758 14.3350 11.1400 4.3238 -3.0833 -8.0197 -10.4359 -12.1778 -13.4366 -14.3352 -15.1818 -14.9458 -14.4610 -13.8720 -11.3742 -10.2486 -10.0143 -11.6705 -10.3545 -10.9010 -13.4149 -14.7113 -0.0476 -0.0526 0.7467 1.6512 0.2779 1.1979 -0.1397 -0.0153 -0.2711 -0.9085 -2.4389 -16.2622 + 14.4881 12.3355 8.8723 6.0773 3.3394 2.1115 0.8125 0.2147 0.0560 -0.0137 -0.2214 -0.6427 -0.7267 -1.5641 -2.3561 -2.2954 -2.4665 -2.8622 -3.0085 -3.0425 -3.2164 -3.5410 -3.2388 -3.2830 -3.0079 -3.0781 -3.2229 -3.1753 -3.3443 0.6505 0.0498 -0.1331 -1.1260 -0.6639 -0.2628 -0.2090 0.4291 0.7281 1.5146 -0.9773 -5.3512 + 2.0621 1.4120 0.1443 -0.6564 0.5194 4.1270 7.3667 9.7238 11.5833 11.3655 7.7646 4.2923 2.5041 4.7009 7.5418 8.5568 4.4916 -1.2294 -4.3559 -5.7809 -5.5627 -3.7357 -4.6814 -7.6996 -10.0830 -11.5284 -10.0528 -10.0753 -12.7146 1.7722 -0.0816 -0.3269 0.6524 2.3093 3.6584 1.5222 0.4498 -1.3345 -1.6645 -6.9568 -19.6830 + 25.4648 24.2073 21.4183 18.0385 14.5373 11.3133 7.9671 5.3323 3.4067 2.4589 2.3509 1.9998 0.7508 -0.6518 -2.8305 -5.4658 -7.9173 -10.2576 -11.4401 -11.9089 -12.2924 -10.4402 -8.9248 -9.3520 -7.9692 -5.3374 -6.5850 -12.1411 -15.7319 4.8043 4.3614 2.1470 0.1372 -1.2225 -1.5199 -1.6170 -1.6460 -1.4994 -1.0956 -2.8494 -19.5630 + 10.4477 9.9103 9.3167 9.9753 13.0396 16.4188 16.2006 11.2422 5.4920 2.0198 -0.5193 -2.2228 -3.7621 -2.3955 0.6073 4.9323 5.7164 1.9080 -3.8530 -5.3428 -5.1549 -4.4637 -8.4757 -12.2439 -13.8905 -14.2780 -11.6814 -12.1684 -16.7752 0.6951 -0.4140 -0.2150 -0.4177 -0.1652 2.0344 0.4827 0.3849 0.6488 0.2765 -3.3105 -20.9730 + 11.6894 11.5653 11.7767 13.6634 16.8841 16.8356 11.6070 5.3075 0.2573 -3.0445 -5.5117 -6.5939 -7.5658 -6.4151 -2.9369 2.5810 5.6008 0.1628 -5.9773 -6.9647 -6.5125 -3.3783 -4.0081 -8.2854 -9.9143 -9.2857 -6.2357 -5.9007 -9.4002 10.4552 5.0807 0.6307 -1.3477 -0.5399 -0.5873 -1.8383 -1.7997 -2.0570 -2.8514 -5.1454 -22.0833 + 21.2161 21.5655 20.7743 20.2657 20.4741 20.8267 19.9547 17.4467 13.8013 9.3303 4.0053 -0.5555 -4.3050 -6.2844 -5.9649 -3.2920 -0.3039 -0.5084 -4.2075 -9.2735 -12.3913 -12.0554 -11.2851 -13.2289 -17.6674 -21.0646 -22.6765 -22.3615 -22.2348 0.6227 0.2943 0.3156 -0.0153 -0.3658 -0.4357 -0.0101 0.1177 0.2549 0.3115 -1.0897 -21.8725 + -5.8017 -5.8902 -5.5846 -4.7620 -4.4881 -3.9174 -4.2830 -5.1666 -6.3677 -6.8882 -6.9995 -6.8752 -7.3225 -8.7191 -9.5016 -8.7540 -7.1882 -3.8658 -0.5597 2.3798 1.4716 2.7987 5.8548 11.0383 14.5525 16.8697 19.0261 18.9539 19.9898 7.1234 3.7053 2.7491 2.3946 1.8894 -0.2885 -0.8988 -0.3606 -0.2356 -2.8434 -13.2350 10.7649 + 29.8544 29.8362 28.5318 26.5320 23.6452 19.3290 14.5539 10.2840 6.4573 3.1100 0.1941 -2.1012 -5.6884 -9.9636 -12.8520 -13.5951 -13.0431 -13.2967 -13.3194 -12.2195 -9.3679 -5.0767 -1.3008 -4.8112 -12.0561 -15.7608 -16.8756 -16.0321 -14.9678 2.1806 0.2835 -0.2562 -0.3860 -0.6570 -0.1415 -0.2170 -0.2013 0.4029 0.2038 -1.2117 -16.0450 + 8.0644 8.0499 7.1416 6.5893 5.5981 4.3993 3.4826 2.7143 2.8318 2.3580 2.4915 1.9093 -0.3049 -1.4506 -1.2401 -2.3404 -1.2673 -2.2808 -2.4575 -3.4995 -3.9318 -5.0149 -5.3296 -3.8867 -4.4533 -4.5744 -4.0511 -4.8087 -4.7385 -9.0466 -10.6663 -9.9253 -6.6473 -2.6332 0.9689 4.1205 6.3340 8.2517 9.8032 9.4405 1.9804 + 9.5207 9.0443 7.8069 7.3329 7.3094 8.0083 9.9299 12.4518 13.0618 11.3574 7.8442 3.8017 -0.1018 -3.9012 -6.5018 -7.0985 -5.6241 -2.4385 1.2347 1.1544 -2.3784 -5.3165 -6.5624 -5.5597 -5.2937 -9.9992 -14.6755 -17.3896 -17.0176 9.0473 5.4785 3.0998 0.8918 -1.3974 -3.6623 -3.5233 -2.5034 -1.0502 -1.2373 -5.1436 -25.0416 + -5.0642 -5.1796 -4.6005 -5.1034 -4.7822 -2.6885 -1.4531 -1.7854 -2.0629 -2.7192 -4.4520 -3.9290 -3.4335 -4.7675 -6.1288 -7.0944 -6.6330 -5.1475 -3.2790 1.1530 2.3119 6.3456 6.1984 9.1249 10.9774 11.5921 12.7428 11.4754 8.3823 -9.7326 -13.5256 -14.6472 -7.0881 -1.2233 -0.9864 6.1958 7.2048 10.0661 12.3652 11.3714 19.0050 + 6.7705 6.0726 4.7668 4.7287 5.5025 5.2104 3.6077 1.7454 0.3953 -0.3480 -0.7236 -1.1397 -2.5075 -2.4282 -2.0351 -1.5354 -0.9783 -1.1816 -2.7792 -3.3855 -3.4229 -4.1416 -3.3236 -3.6243 -3.9451 -2.9592 -1.2582 1.2767 1.6406 9.6325 11.3324 9.8681 5.5229 2.3829 -0.2309 -2.8115 -5.0973 -6.3038 -7.6243 -16.6711 -7.8822 + 18.7275 18.7602 15.1086 10.7098 6.9559 5.0306 2.7456 0.2771 -1.9055 -2.8108 -2.7768 -3.7007 -4.2089 -5.7436 -6.2204 -5.8236 -4.9148 -3.2075 -2.8848 -3.1210 -2.7428 -4.5923 -3.8926 -3.7191 -2.9927 -3.2069 -3.9982 -3.8130 -2.0396 -6.3039 -3.8256 -2.1569 0.2409 3.3218 4.6289 5.0475 3.5987 1.8219 1.8959 -8.2692 2.9296 + 19.0392 17.4654 14.9352 12.2077 10.4970 11.1852 10.4778 8.4045 4.8902 1.7924 -0.8760 -4.1317 -6.0495 -6.1897 -5.0150 -1.4390 2.3264 1.7138 -1.0924 -3.4019 -4.3020 -3.5935 -2.4494 -6.4110 -11.3840 -13.3423 -14.0158 -14.8337 -16.4080 5.2170 2.0001 0.7957 -0.6171 -0.8902 -1.2003 -1.1541 -0.6336 -0.6395 -0.6616 -2.2164 -21.3670 + 10.4791 9.9395 9.0805 9.1584 10.6784 12.7374 14.6952 15.0752 12.8090 9.8648 7.8350 7.5607 9.0798 10.1615 7.6961 2.2376 -2.6758 -6.5418 -9.4708 -10.5541 -11.1366 -10.0882 -12.2916 -15.8392 -17.7528 -18.3635 -16.7645 -14.5122 -13.0970 9.0915 6.6105 3.9354 -0.3391 -3.1013 -3.4367 -2.5040 -2.1417 -1.8401 -1.7766 -4.4978 -24.3538 + 2.0821 3.1287 4.0753 5.4302 5.7802 6.6537 7.2130 6.6951 4.5960 2.8045 2.4487 1.8103 0.4415 -1.7609 -3.0165 -2.8462 0.1898 3.3827 4.3190 1.6896 -2.8185 -5.5524 -7.0484 -7.5484 -6.1090 -5.9753 -4.7225 -7.1165 -8.2257 3.6680 2.9008 1.3962 0.7099 1.6828 1.2318 -0.5067 -1.7458 -1.5988 -1.6313 -6.1069 -11.5601 + 1.1497 1.3200 1.2707 2.0082 2.0004 1.8044 1.1270 -0.2158 -1.8933 -2.4634 -3.4218 -4.7937 -4.7100 -4.6869 -4.1693 -4.4056 -4.9100 -4.6525 -4.3514 -5.3638 -6.5281 -5.1288 -3.6008 -0.1517 2.6878 7.2240 11.7457 15.7449 17.3640 6.9238 4.8734 3.1279 0.9919 0.1466 -0.3872 -0.1158 -0.4139 -1.8167 -1.7305 -11.5996 8.8903 + 9.7978 8.0725 4.8934 3.5284 2.7083 3.7014 4.0313 4.6282 3.9292 3.2742 2.0518 0.7154 -1.2921 -1.9667 -1.5639 -1.3033 -0.5627 -0.4778 -0.7607 -2.2442 -3.8987 -4.4781 -4.2520 -4.6421 -4.1577 -4.5224 -4.4218 -5.2138 -5.5740 0.7391 -0.0616 -0.3222 0.1802 -0.1541 -0.5544 -0.0900 0.4549 0.4530 0.6154 -1.2603 -6.8376 + 11.0218 10.5069 8.2672 5.9543 3.9578 3.9631 2.6698 1.5498 0.3926 0.3180 0.1925 0.7238 -0.6282 -2.8873 -3.5603 -4.0488 -2.8863 0.6168 3.2951 2.8007 -0.0448 -2.6501 -4.7672 -5.2381 -5.1827 -6.3352 -6.8157 -6.0030 -5.1825 5.7059 6.0081 5.5317 5.2309 1.9392 -0.7052 -2.9950 -3.4059 -4.2816 -4.2198 -8.8083 -12.1555 + 30.7220 30.4352 28.7635 26.8276 23.0072 17.1944 10.8428 5.1151 0.6042 -2.9361 -6.0945 -8.6787 -10.4457 -11.4951 -12.7062 -13.0113 -13.2579 -13.2793 -13.0584 -12.0898 -10.8056 -8.6431 -7.2774 -8.7256 -10.1911 -7.2394 -2.5936 -0.3436 -0.6396 5.5942 2.8807 1.9726 1.6097 0.9653 0.3476 -0.8863 -1.5202 -2.1940 -2.7497 -6.0197 -9.7496 + 11.0431 11.2874 10.7540 9.9197 8.6647 8.6958 8.6183 9.9875 10.0470 8.3112 7.2898 5.9718 4.5865 2.1034 -0.7735 -2.4122 -3.3246 -3.2844 -4.4966 -6.4114 -8.1119 -10.1936 -10.6919 -10.5371 -10.9794 -10.4475 -10.1218 -12.4300 -13.0643 -8.4396 -8.4986 -5.5124 -3.9624 -1.0920 -0.4675 2.3907 5.5877 7.2456 8.0230 4.7255 -8.4177 + 12.7397 11.0783 9.2586 6.5612 4.1628 2.3704 1.9316 1.0515 -1.0350 -1.2451 -1.9616 -3.0021 -4.2825 -5.4905 -5.6435 -5.6210 -6.6154 -6.2022 -5.0535 -4.7672 -3.5637 -2.1688 -1.0431 0.1656 0.9547 1.6420 2.0989 1.7796 1.9001 -9.9315 -12.1933 -12.6352 -7.0282 -1.8872 1.8245 4.5894 7.3621 9.3193 10.4805 10.0998 9.3097 + 15.1389 17.4197 18.3393 18.5836 17.5461 15.0277 11.1098 6.8515 2.5234 -0.3132 -2.9049 -4.0328 -5.4435 -6.6072 -7.1258 -7.1761 -6.4666 -4.5330 -0.7343 1.2614 -1.3012 -6.3734 -11.7238 -12.6667 -10.4556 -6.4641 -7.1625 -10.7517 -11.5648 8.7437 7.8620 8.4762 9.1692 5.7736 -1.6953 -4.9554 -7.2071 -8.1718 -8.3657 -9.6294 -20.1832 + 18.7350 18.8415 17.7238 16.7790 16.8597 17.9978 19.1477 18.5999 16.1427 12.4936 8.6595 5.9831 4.9948 5.7667 5.5880 1.9462 -3.6217 -9.0782 -13.3577 -15.7337 -14.0069 -9.9754 -8.9549 -15.6483 -21.5520 -23.5522 -23.6830 -23.3131 -23.7818 0.3454 -0.0420 -0.0575 0.3156 0.1128 -0.3066 -0.4222 -0.0008 0.1796 0.4486 -0.5731 -24.7214 + 16.6836 16.0011 14.2761 12.3355 8.6965 4.5639 -0.4844 -4.1980 -4.7650 -4.1296 -4.0155 -2.9656 -1.7970 0.4680 1.9673 2.9994 4.5000 3.5757 1.1168 -0.5475 -1.7944 -2.5137 -4.8674 -5.5801 -7.1945 -9.0212 -11.1995 -10.8822 -11.2279 0.2823 -1.5628 -3.0013 -1.8679 -2.2856 -1.4908 0.7971 1.9446 3.1469 4.5357 -0.4981 -12.2633 + 19.0033 19.2025 17.7777 15.3002 12.6650 9.5501 5.6575 1.8616 -1.6276 -3.6035 -5.2976 -7.4545 -9.9218 -11.0550 -12.1614 -12.3330 -11.7581 -10.8363 -9.3486 -5.9142 -0.9878 3.2625 3.7572 3.2186 3.6513 0.3807 -3.4386 -5.0746 -4.4758 13.3555 8.9978 5.4532 3.6182 -1.0628 -3.2096 -4.4349 -5.7492 -5.1348 -3.5353 -8.2981 -16.8230 + 18.4297 15.9331 11.2397 7.8129 5.5380 4.6599 3.1356 2.3935 1.0751 1.0970 0.6480 -0.2160 -2.0789 -2.6802 -3.0441 -2.3536 -0.3163 1.8936 2.7495 0.5565 -3.1908 -5.3708 -7.0075 -7.5402 -7.2433 -8.2848 -9.2167 -9.4201 -9.1988 2.6256 2.0510 1.3148 0.5355 0.0630 -0.6332 -0.4758 -0.6747 -0.4639 -0.1424 -4.2000 -12.3908 + 7.3097 7.7813 7.8527 7.8546 8.1128 8.9506 10.6384 12.8363 14.6251 15.4901 15.1366 13.4976 11.9988 11.7295 11.3616 8.4914 2.9159 -3.6536 -9.4800 -13.7350 -17.1927 -18.7882 -17.6248 -13.8464 -10.5674 -13.8181 -18.1434 -20.8743 -18.8591 11.3245 8.7172 3.5788 -0.9416 -1.5672 -2.3545 -2.3414 -3.3449 -3.9610 -3.8438 -5.2662 -25.7869 + -1.6196 -1.5619 -1.3693 -0.0041 0.6985 1.0211 -0.2712 -1.1631 -2.5701 -3.8567 -4.4749 -4.1959 -4.6373 -5.4392 -6.6320 -6.8724 -5.3058 -4.2328 -1.9447 -0.2533 0.7399 0.5052 2.5635 6.5244 9.7417 10.9027 8.3775 5.7836 9.5462 -0.9205 1.3066 3.5975 5.1438 4.6369 2.9620 -0.2142 1.2689 -0.0412 -3.1056 -14.6343 6.0567 + 14.2155 14.8572 14.6396 15.6515 18.4554 21.3207 21.2950 16.5870 10.7997 7.0073 4.3743 2.9850 1.5061 3.2006 -0.1576 -6.6249 -11.7054 -14.9389 -16.7542 -15.9586 -13.4133 -9.9384 -8.4859 -12.4268 -14.9176 -16.0461 -14.1275 -6.4255 -4.9741 5.5063 0.3654 3.5212 7.9053 3.8839 -1.5841 -4.1647 -4.5145 -3.5450 -1.9892 -5.3846 -20.3075 + 9.1018 8.8735 7.5282 6.8650 7.5449 8.2635 6.4844 3.4564 0.6817 -1.5163 -2.2174 -2.8199 -3.2880 -2.4514 -0.1202 2.7625 4.3459 5.3239 3.3628 -0.1718 -3.0498 -4.4866 -5.5655 -6.7973 -7.4857 -9.1801 -9.3929 -8.4690 -7.5827 4.3844 4.6419 5.2823 3.5134 1.9965 0.2705 -0.4359 -2.5064 -3.1275 -3.8266 -10.1926 -14.0516 + 22.6352 23.6582 24.5865 26.3890 26.4341 23.2091 17.7722 13.5350 11.1208 9.9800 8.2759 4.0348 -1.7705 -7.8105 -12.5187 -14.9802 -16.3623 -17.3820 -17.7578 -17.6490 -15.5778 -12.8018 -11.4459 -14.3128 -16.3520 -15.2082 -10.9596 -5.2865 -3.4553 7.6752 3.5999 2.0739 1.1336 -0.6895 -1.5345 -2.4580 -2.0781 -1.8815 -2.5118 -3.3292 -17.5176 + 1.8750 1.8662 1.4311 0.9127 -0.1302 -0.3760 -0.5434 -0.2220 1.2349 3.6442 6.7696 8.9037 8.5438 6.1520 3.7222 3.0903 4.4232 5.4581 6.2833 3.7218 -0.7522 -4.4112 -6.2164 -5.4842 -3.9166 -5.9630 -10.1542 -15.3434 -14.5193 13.3682 11.1151 8.2449 5.7945 3.1501 -1.3709 -6.5216 -8.3030 -8.2964 -7.6878 -9.4930 -25.2906 + 23.8996 24.1043 23.8658 23.6680 21.5342 15.4333 6.3905 -1.1158 -4.6322 -5.8867 -6.7301 -7.6112 -8.9183 -10.1939 -10.8837 -8.9691 -3.9727 3.1911 5.9335 0.9841 -5.6662 -8.2167 -5.1918 -3.2488 -11.7754 -15.7999 -16.0905 -9.0460 -5.0555 9.1930 1.3362 -0.8279 -1.4971 -1.9949 -1.9954 -1.0397 -0.8391 0.6715 0.8150 -3.8216 -17.2628 + 2.1343 3.1072 3.1035 2.4651 1.0770 2.5793 2.6348 1.2152 -0.5649 -2.3867 -0.6920 0.8781 1.3547 -0.8951 -2.8053 -3.6858 -2.1707 1.9580 5.8746 8.3664 5.4534 -0.2992 -2.5199 -5.0547 -5.4956 -3.5790 -4.0494 -3.2599 -4.7435 6.3175 4.3640 4.2936 4.0751 4.2436 2.1309 -2.1883 -4.5757 -4.9307 -4.5770 -9.1531 -11.6403 + 24.1543 25.3380 25.2642 24.2890 21.5268 15.8776 8.7349 1.8963 -3.3513 -6.9022 -9.3648 -10.8355 -12.1831 -12.5211 -12.8565 -12.9812 -11.8854 -11.1641 -9.2860 -5.4976 -0.9263 3.4028 4.7240 3.7754 2.3125 -4.4255 -11.3777 -13.5943 -12.1432 6.6341 8.4368 8.7627 5.8486 0.7153 -3.2965 -5.0124 -5.0678 -5.2114 -4.9009 -6.9086 -15.7320 + 33.3595 30.8257 27.3940 23.1538 18.5480 12.9357 7.6481 4.1721 3.2632 3.4360 3.9739 4.0188 3.3042 2.7990 2.1257 0.5313 -1.9459 -5.6161 -9.5935 -12.9587 -14.8978 -16.0532 -16.3206 -16.6767 -16.1054 -16.6153 -17.9698 -18.6045 -18.1317 1.5134 0.8260 -0.0981 -0.1095 -0.5148 -0.5502 -0.3922 -0.2658 -0.1093 0.4252 -0.7246 -17.8748 + 1.6216 0.9985 0.7656 2.7126 3.5846 4.9869 4.3162 4.0409 2.9716 0.7825 0.4168 0.2302 -0.1647 -1.1633 -1.3128 -0.8806 -0.1106 -0.3406 -2.2081 -3.7852 -4.1417 -2.9134 -2.1959 -1.8077 -1.5502 -2.2082 -1.4934 -0.6950 -0.4569 -7.0535 -3.1321 1.0676 0.9741 1.5466 3.3522 3.6041 3.9392 1.3441 1.8148 -7.4571 2.7151 + 15.5981 19.5861 21.1052 20.7702 17.9972 13.4362 8.4295 3.6958 -0.0748 -3.8419 -6.8494 -8.7952 -9.5977 -10.9677 -13.2231 -11.6825 -9.6560 -6.9659 -3.1059 0.6508 -2.2959 -4.9921 -6.5950 -5.9531 -3.2910 -4.7702 -3.9870 -1.7940 -2.8308 -2.5000 -4.6538 -0.7258 4.7330 8.3235 5.3781 -0.4169 -0.0664 0.8379 -2.0639 -8.8455 -9.7704 + 23.7863 25.9404 25.3891 21.9998 16.2579 9.6322 3.4737 -1.7621 -6.1163 -9.2774 -11.9071 -13.8355 -14.8079 -15.2219 -15.4960 -14.7850 -13.1085 -11.2726 -7.3218 -0.9826 6.1996 7.8610 5.9579 4.5346 0.9527 -4.2620 -5.8570 -3.1595 -2.8119 8.3142 3.6630 2.1376 0.0170 -1.3069 -1.1574 -2.2597 -2.0274 -1.1056 -1.2385 -5.0363 -15.6945 + 20.3765 22.4983 23.2522 22.4935 18.6192 11.9388 4.7215 -2.2228 -6.9248 -8.7614 -9.4361 -10.4167 -12.0447 -14.3511 -15.7581 -15.0919 -13.4051 -11.6659 -8.9412 -4.6688 1.6099 5.0989 2.6335 0.0407 0.1956 0.6445 -1.3875 -1.9917 2.9449 22.4551 18.5214 5.2727 6.1503 -0.1446 -8.9143 -8.7222 -9.1792 -9.3487 -7.5459 -8.5445 -16.1222 + 11.1076 12.0485 11.0550 10.5716 11.0874 11.6622 9.9206 4.9761 0.3715 -2.6436 -4.8249 -9.2210 -10.4786 -11.6233 -11.8990 -10.3869 -9.3054 -5.4126 -0.0922 1.7786 1.9733 2.3237 2.4041 2.1518 -0.8245 -3.1849 -3.9744 -5.1713 -4.3894 1.3910 -2.4885 -4.1076 -3.8565 -1.6768 1.3241 2.8087 3.8092 4.3728 3.2455 -4.8218 -10.0894 + -0.2633 -1.4544 -2.4182 -3.0882 -3.5531 -4.3925 -6.6002 -8.5372 -9.6704 -9.8444 -10.3936 -9.9956 -8.9278 -7.5639 -5.9124 -1.9933 2.8919 6.3172 5.9440 4.7295 5.0606 5.2459 8.2338 8.7234 10.0863 10.2509 9.9392 9.0613 8.1243 1.1238 0.9922 1.1101 1.8146 2.6706 2.2247 1.2363 1.1432 -0.1842 -0.9655 -11.1660 5.3441 + 6.9294 5.0117 2.6132 2.2629 4.5422 9.5764 14.7837 15.8748 11.9468 7.4679 4.5656 4.3597 5.8184 8.6426 5.8541 -0.7924 -5.2311 -8.0360 -9.7347 -8.9000 -8.2834 -6.3029 -5.0720 -7.3093 -8.1284 -8.3417 -7.7152 -10.4763 -15.9260 4.7158 2.3141 1.3121 1.3526 1.5962 -0.3417 -1.3860 -1.6767 -1.7760 -1.6516 -4.4588 -23.6471 + 20.5611 21.4990 21.6805 21.4105 19.9564 16.4129 11.0090 4.5495 -0.7043 -3.4671 -4.6121 -5.3523 -6.5924 -7.7881 -8.2287 -7.0226 -4.0117 -0.4161 1.7880 1.3595 -1.3403 -3.8721 -3.9650 -4.9622 -8.7031 -14.8711 -18.9891 -20.1269 -15.2011 9.5765 9.6090 6.3797 4.6167 -0.3327 -3.7082 -4.7974 -5.1837 -5.3397 -4.8761 -5.9441 -20.3305 + 28.9011 29.1365 27.4009 24.4914 20.2583 14.7607 8.7681 4.0956 2.2405 2.3157 3.7552 5.6036 6.0319 3.0401 -2.3373 -6.5825 -9.1181 -11.5190 -13.0607 -13.4398 -13.0287 -11.6613 -11.3947 -12.1649 -13.2592 -14.7276 -15.9052 -16.4327 -16.1678 0.8050 0.5113 0.4244 -0.0076 -0.2346 -0.4785 -0.2332 -0.0629 -0.0095 0.3865 -1.1010 -17.2993 + 14.0295 13.9502 13.6228 13.9615 14.5159 15.7344 16.5458 16.6583 15.8760 14.9767 14.5095 14.6169 14.1664 10.4532 3.0906 -3.2947 -6.9042 -10.1425 -12.3464 -13.3132 -12.9262 -11.8067 -11.4974 -15.4253 -20.2544 -22.9691 -22.5572 -21.6390 -21.6312 2.0180 1.7654 2.8940 1.2851 1.2694 -0.7044 -1.7554 -1.1719 -1.4637 -0.7534 -3.3831 -24.9877 + 14.3136 12.8038 10.7600 9.9164 8.0164 4.8641 0.3656 -1.3980 -2.3438 -1.8387 -0.9641 -0.4343 -1.8428 -3.9974 -5.5735 -6.9534 -5.2614 -1.8837 -0.6653 -2.2186 -4.1385 -7.9205 -4.8743 -0.0041 -1.6958 -8.8891 -5.9515 2.5199 5.2890 -0.4214 3.3144 7.7656 5.2578 2.3868 4.6757 -4.9484 1.0462 -11.2993 2.2105 -9.9881 -1.0110 + 15.2498 16.8589 17.4454 17.3595 15.7318 12.0402 6.8196 1.9584 -1.8950 -4.1206 -5.7554 -6.5663 -7.4096 -8.0543 -8.0905 -5.7704 -1.8905 1.4927 2.8765 0.6930 -2.5985 -3.9517 -2.8026 -3.1264 -6.0718 -8.7896 -10.8740 -11.1991 -9.5592 1.0250 2.5513 3.7885 4.2634 3.9729 3.4142 0.3627 -0.0631 -2.7607 -5.0823 -11.4719 -15.3324 + 19.7099 20.3722 20.4412 20.5912 20.9609 21.5266 21.3284 19.9806 17.9191 15.7219 13.9555 12.9719 11.7125 7.8879 1.8651 -4.0484 -8.3840 -12.3338 -16.2678 -19.1476 -20.5188 -20.7942 -19.7332 -19.5087 -20.0131 -21.1706 -22.0267 -21.8280 -21.1700 2.6261 1.4238 0.5675 0.1586 -0.3335 -0.7530 -0.6950 -0.8150 -0.6504 -0.3559 -1.1732 -23.1129 + 1.8825 1.5975 0.7650 0.8382 1.0970 2.3121 1.7334 1.3645 1.6653 2.5832 3.6249 3.8831 3.7892 3.6596 2.8817 2.2713 1.6918 1.3161 0.6652 0.0342 -2.3559 -3.5644 -4.4403 -3.4709 -4.1781 -4.9507 -5.6105 -5.7659 -5.3190 -4.6785 -6.2814 -4.4170 -3.7355 -2.9146 -0.6060 2.7131 5.1159 5.7786 5.8363 3.1891 -2.7682 + 20.9204 18.3266 13.9646 10.3450 7.1213 4.7949 2.3975 0.3252 -0.8377 -1.2032 -1.3516 -1.2322 -1.3903 -2.0806 -3.2115 -3.8099 -3.7972 -3.8008 -4.4221 -4.5737 -4.8822 -4.8118 -5.0104 -5.0121 -4.8009 -5.1006 -5.4825 -5.7785 -5.6058 0.0304 0.0212 -0.8099 -1.0990 -0.8995 -1.1798 -0.0605 0.4825 1.2857 1.8683 0.3606 -7.2005 + 5.2951 4.6853 3.2703 1.4395 -0.0679 -1.5464 -4.0205 -5.2710 -6.2684 -7.4709 -7.5305 -6.6769 -5.9752 -5.0052 -2.1987 1.0365 4.3659 5.4876 4.1372 2.9011 2.0765 1.4275 2.2620 2.4970 2.1857 1.8463 1.4213 2.7180 2.9788 2.6542 4.1837 4.7936 4.0109 4.2119 2.0348 0.3166 -0.4254 -3.1810 -4.8204 -13.7789 -1.2474 + 10.5896 10.0518 9.5208 11.5878 14.9277 14.1122 8.4894 2.1708 -2.5335 -5.3221 -7.6712 -9.9945 -11.5742 -11.8957 -12.0296 -10.9304 -8.1129 -3.4826 2.2855 6.7275 2.7163 2.8417 3.8437 1.4929 -1.9462 -3.7791 -2.6804 -3.2326 -6.1727 14.4024 9.7441 3.2594 -2.4965 -1.6315 -2.6240 -3.3409 -3.9874 -3.0303 -4.0633 -6.2319 -23.1513 + 12.3877 13.4337 14.0526 15.3719 16.7230 17.0301 15.6932 13.1714 10.9923 10.1200 9.9867 8.1477 4.6596 0.5220 -3.1428 -6.2242 -8.4106 -10.5360 -11.5260 -13.2012 -11.1252 -8.8838 -9.7283 -14.6481 -19.0045 -16.0374 -8.1446 -9.6615 -12.0177 -3.6514 -5.1768 -3.3816 -0.8285 1.8774 4.0666 6.6919 6.7739 0.8553 -0.3990 -6.8277 -19.5820 + 7.5130 6.3917 4.4090 3.2713 2.4681 1.4505 -0.7914 -2.2729 -2.7937 -1.4184 0.5941 1.7683 1.7245 2.1691 0.8665 0.4093 0.8033 3.3147 3.5683 -0.9897 -3.9384 -5.0587 -4.1462 -2.0529 -1.2512 -5.3164 -7.9226 -1.6494 -1.1198 3.1545 4.1780 6.4164 4.4137 1.4380 1.5613 -8.5713 -1.5266 -2.1776 0.8939 -9.7803 -10.1082 + -0.4172 3.9814 -2.5335 4.7982 6.2404 9.5386 1.7280 -2.6347 7.9832 -10.0263 -1.0230 2.1623 7.0028 7.7748 15.0971 5.6506 5.2734 4.3666 -5.3182 -6.5883 -8.8498 1.1908 5.5230 -1.1525 -3.9009 -23.1871 0.2212 -1.9086 -20.9924 7.1776 8.9477 9.4213 0.6845 6.7206 6.8189 0.9603 -10.6166 0.5146 -13.1811 -17.4476 -7.6137 + 23.3780 25.0892 26.2191 26.9457 24.6201 18.5566 11.6556 4.9788 0.6249 -3.7400 -8.5904 -12.3926 -14.7270 -15.9297 -15.7620 -14.5514 -11.9079 -8.2268 -0.1798 5.9532 4.5772 3.1484 0.2938 -5.5237 -12.1896 -14.8172 -14.8798 -12.4827 -10.1404 3.2764 -1.6281 -2.1589 -1.3730 -0.4182 0.5715 -0.2811 1.7069 1.5263 1.5414 -2.7632 -16.8809 + 26.2968 26.9773 27.1574 27.9417 26.5696 21.5857 14.8761 8.6361 4.1683 0.7533 -1.9295 -2.5208 -0.0812 2.2250 0.9523 -3.4957 -8.2811 -11.7647 -14.3663 -15.2907 -14.5936 -12.5687 -12.9612 -14.8338 -16.5565 -16.2573 -15.0745 -13.8830 -13.6813 1.4448 -0.0533 -0.0920 -0.0314 -0.2973 0.5069 -0.2172 -0.1011 -0.0306 -0.0946 -1.0343 -16.8789 + 15.2599 15.8558 16.5112 17.1923 16.9184 12.7155 6.7767 1.6437 -3.4349 -7.8714 -10.5492 -12.4016 -14.2321 -14.9460 -15.0099 -14.2604 -12.3944 -9.9130 -6.0566 3.4214 4.0393 0.9850 0.9812 5.2322 5.1852 2.0753 2.8816 0.5603 -7.1654 13.9261 10.8083 1.8284 -2.6412 -3.5133 -2.9693 -2.9300 -3.3031 -3.3193 -3.2617 -4.6248 -21.7463 + 17.6998 15.3407 11.6586 7.2522 2.9030 1.1270 0.2870 0.3993 0.1515 0.9131 1.2039 0.8350 0.6170 -0.2241 -0.4502 -0.7194 -0.2872 -1.3096 -2.7798 -3.9323 -4.0148 -5.4557 -5.6772 -5.5259 -5.6333 -6.0967 -5.8797 -6.4353 -5.9666 -4.2226 -4.1479 -4.5146 -4.3292 -2.7654 -0.8517 1.0845 2.9370 4.9613 6.0166 5.8320 -4.0046 + 6.7958 6.6180 6.8562 7.7048 9.3200 10.2947 9.2183 6.4762 2.7485 -0.8988 -3.4430 -4.6190 -6.3031 -8.1363 -8.6511 -7.2066 -4.4822 -1.4434 2.6598 5.1827 2.6866 -0.9832 -2.3089 -1.3324 -0.7075 -3.4975 -7.3602 -8.3172 -6.8713 15.6013 14.5952 12.4864 10.1694 6.7654 -5.1118 -14.7309 -11.9476 -9.2847 -6.6284 -11.9143 -21.6331 + 14.4296 12.7223 10.1123 8.5522 7.7405 6.5977 2.6762 -1.5488 -4.1290 -3.7931 -3.0890 -3.1619 -4.0464 -5.1734 -7.7679 -6.3552 -4.2463 2.5055 5.5392 0.2036 -3.7031 -5.8323 -6.0258 -1.1405 -6.8812 -8.2643 -6.4325 2.2624 8.2490 -1.6654 -1.1619 -3.5190 -1.9517 -1.3057 -0.4120 0.2731 3.0941 3.3892 6.7202 -3.4609 4.9976 + 16.2171 16.8083 17.6167 19.1924 18.7528 14.2594 8.5818 3.6957 -0.9158 -4.4517 -7.0958 -9.3910 -11.6987 -13.3940 -14.5794 -13.1362 -10.8013 -7.4970 -2.2178 3.9550 3.3524 1.1405 1.7320 1.1123 -4.7613 -8.8800 -8.5945 -6.1985 -2.8033 13.6191 7.9112 3.4818 -0.7153 -0.3308 -2.3878 -3.9144 -3.8872 -3.3753 -4.2532 -6.1481 -19.8313 + 6.8744 6.6595 5.9608 5.6270 4.3932 3.6619 1.6033 0.6207 0.2849 0.0399 0.6193 -0.4371 -1.6617 -0.9777 1.0971 4.1974 5.9086 2.2600 -0.0342 1.3932 -0.7669 -2.8459 -3.3270 -4.4869 -4.5589 -4.9693 -7.5630 -7.8037 -11.7691 6.8143 4.0009 -0.8944 -7.1111 -6.4611 -4.2217 -1.7229 0.4360 2.1972 3.2561 3.7068 -18.5017 + 18.3619 17.7217 16.1766 13.4866 10.6915 10.2793 11.8384 14.1579 15.8226 15.6994 14.1178 12.1825 10.7237 10.1085 8.7558 5.2488 -0.0978 -5.2425 -10.2876 -14.5133 -15.8759 -16.5173 -16.7647 -16.0517 -18.5506 -21.5370 -23.2401 -23.8593 -22.8353 1.5487 0.0279 -0.5628 -0.2643 0.4887 -0.1023 -0.4874 0.2721 0.8224 -0.1650 -1.5779 -24.7124 + 31.7198 31.7692 29.2043 25.0452 19.3123 12.8393 5.9234 0.3241 -2.4789 -4.4056 -7.0192 -8.8068 -10.3571 -11.5877 -12.2897 -12.4950 -12.4338 -12.1031 -11.1686 -9.2498 -5.8575 -2.3369 -1.3750 -2.0352 -2.1517 -3.4040 -5.9186 -8.2233 -10.4400 -0.0554 -0.5312 0.1527 0.4184 0.6585 0.9224 0.6649 0.9519 0.5466 -0.5067 -3.2220 -11.4604 + 20.9886 21.1123 20.4027 20.0167 19.1884 16.5783 12.5867 8.3317 4.5773 1.2778 -1.2341 -2.6474 -2.9142 -1.9783 -0.0434 0.4668 -1.7813 -4.6738 -7.2502 -9.3057 -10.6229 -10.4876 -10.2177 -11.8410 -13.1790 -14.6712 -15.1393 -14.2870 -13.2531 -3.3960 -1.5619 2.3074 5.7136 6.3342 5.5398 2.4437 0.2877 -1.8718 -4.5073 -11.2895 -13.3591 + 19.3924 20.6124 21.6255 22.8929 23.6118 22.1117 17.5653 12.1779 8.8663 7.6147 7.1982 7.2343 9.0939 9.9573 8.6027 6.9323 4.6278 -0.1742 -9.4767 -17.6803 -21.3590 -22.4801 -22.5914 -22.5224 -22.4181 -22.3005 -22.8483 -23.1612 -23.1052 0.6133 0.2252 -0.4348 -0.4131 -0.5289 -0.3970 -0.2180 0.1438 0.5713 0.4924 -0.0541 -22.3321 + -5.4361 -5.8530 -6.3360 -5.5397 -4.6575 -4.7263 -5.3668 -5.7909 -7.2619 -6.2038 -4.8838 -2.3553 -0.0793 2.8083 6.1069 7.9082 8.9577 8.4116 6.9427 5.3831 4.8464 3.2166 2.9690 3.6037 2.4221 1.8058 0.2551 -0.2588 -0.8880 1.1827 1.8083 1.5989 1.9336 1.4331 1.4150 1.0200 0.1423 -1.1623 -0.5400 -8.8315 -3.2727 + 15.8074 16.7591 16.8279 14.8127 12.3398 10.0795 6.3564 1.5357 -1.2393 -3.3949 -5.2006 -6.9275 -7.1545 -7.4402 -8.2594 -9.4265 -11.1999 -12.9999 -8.0859 -4.8163 -2.9284 1.3560 0.0774 -2.3044 -1.8591 0.1665 -4.2809 -4.0953 5.4946 9.8215 5.0171 7.0888 8.4199 6.4234 3.6409 10.6458 9.4642 -18.5810 -21.0542 -20.8865 -9.8207 + 16.5885 17.1406 17.0874 16.5509 14.5628 11.8287 11.6860 12.5074 11.7212 10.7081 10.1468 9.1212 8.3750 5.9474 2.4174 0.3172 -1.3076 -2.3870 -7.4556 -13.1264 -14.3324 -15.1303 -14.9156 -14.1134 -15.0136 -16.5819 -19.3100 -21.7927 -21.2401 -7.0652 -6.6847 -6.5388 -5.2451 -2.6953 0.0429 2.8899 5.3552 6.8840 7.0718 5.9852 -18.2709 + 5.7159 5.5464 5.7456 6.9034 7.0731 7.8586 8.0236 8.6981 9.1036 9.3530 10.1684 9.7683 7.9546 5.4206 1.7391 -0.2107 -1.2165 -2.1493 -3.9988 -5.8835 -7.1432 -9.2187 -9.9765 -11.1680 -10.8259 -10.9835 -11.5153 -12.5521 -12.2304 0.1902 0.2673 0.6601 -0.0091 -0.1874 -0.6461 -0.5035 -1.0433 0.8599 2.7028 -2.2908 -14.5718 + 17.6557 17.3889 17.6615 17.9794 16.5379 12.1975 5.9007 0.5883 -3.1335 -4.8335 -5.4254 -6.2659 -6.3932 -5.9023 -4.4098 -0.6232 2.7006 4.3695 3.8488 2.2808 0.7423 -2.7461 -8.2729 -11.5807 -12.4732 -11.8352 -10.1651 -11.6722 -14.1196 8.4864 3.3593 0.1360 -1.6129 -1.5632 -1.3569 -1.6250 -0.1613 -1.1646 -1.4389 -3.0589 -22.3338 +-10.3940 -11.3059 -10.7072 -9.0929 -7.9625 -7.9528 -9.4227 -10.3318 -10.9410 -11.1389 -11.6416 -11.7743 -11.8888 -11.1901 -10.5924 -9.4860 -5.0151 0.7991 6.1915 8.4506 7.5920 12.1623 17.6583 20.5566 20.2652 20.3690 19.7694 19.3174 17.7068 3.6441 3.3200 3.1784 2.3126 2.6626 2.7456 1.7616 0.1272 -1.6565 -3.6722 -14.4236 11.3192 + -5.2800 -6.7018 -5.8538 -2.9829 -0.9541 -0.9051 -2.3575 -3.5615 -3.7286 -3.6750 -3.1606 -4.9611 -3.9368 -5.7580 -6.7510 -8.2890 -7.8523 -5.0164 -1.2817 -1.0886 3.4595 6.5066 6.9768 10.1455 9.1411 11.6105 10.9980 12.7941 12.4636 -8.2776 -14.0532 -15.1503 -7.3901 -2.1067 2.8745 5.7677 7.7844 9.1465 10.3125 11.0923 19.6399 + 29.3262 30.3667 30.8460 31.0752 29.3541 25.4538 21.7947 19.7689 18.2651 13.3813 5.5283 -2.7838 -9.2904 -12.5752 -14.3270 -15.2147 -15.6347 -15.9580 -16.2781 -16.2588 -15.7969 -15.4712 -15.0026 -15.2417 -15.4496 -14.8024 -15.4856 -15.3255 -14.2641 0.8519 0.0729 -0.0994 -0.0081 -0.3526 -0.2653 0.2798 -0.1248 -0.0021 0.1016 -0.4538 -15.6262 + 15.4867 33.4494 31.0670 16.7893 6.4957 16.0571 16.9999 3.5875 -1.1144 4.8625 -0.6863 -3.8211 -1.9744 -8.9072 -8.5418 -10.0978 -9.2052 -7.2961 -7.0614 -7.4703 -6.4488 -9.4828 -7.1526 -6.4892 -6.7913 -8.1872 -9.9015 -12.0879 -12.0780 0.2229 0.6948 1.1380 0.0739 -0.1888 -0.1421 0.1878 0.2524 -0.6463 0.3346 -1.9272 -10.9140 + 5.6609 8.4186 9.2335 8.5627 6.3863 5.2965 4.7202 4.1210 2.2470 0.4513 -1.5117 -3.6436 -5.3381 -8.3221 -7.4711 -7.9576 -7.8478 -7.1587 -4.1684 -2.5146 -2.1257 -2.2843 -1.1957 -1.5497 0.8946 0.9399 1.4159 1.7779 2.9627 -5.4497 -6.1886 -3.2681 -2.1330 -0.0404 3.3281 4.7853 6.2760 5.5714 2.7564 -5.6374 7.7525 + 8.2746 28.7187 36.6976 28.2924 10.6085 7.9432 11.5220 11.0743 -0.8646 -3.5525 2.5564 -2.1952 -6.5887 -4.6155 -7.3323 -7.9392 -7.8581 -8.4524 -7.5176 -8.1708 -7.7429 -8.5235 -8.2840 -8.3037 -8.0554 -8.4741 -9.7485 -10.9377 -10.5310 0.6140 0.5808 0.5660 -0.0413 0.0489 -0.0922 -0.0506 -0.0413 -0.2020 -0.1189 -1.2632 -9.9199 + 11.0404 11.4527 12.0166 13.1928 15.2678 14.9233 9.1277 2.3164 -2.7085 -5.3527 -7.7675 -9.0506 -9.7011 -10.3636 -8.8246 -5.5374 -1.0381 4.5069 6.0732 3.0152 -2.7476 -2.7839 0.0922 -1.8194 -6.8672 -9.4573 -9.4575 -5.7898 -3.7583 10.8326 2.8363 2.0266 -5.3026 -6.6996 -2.9341 1.7162 6.9334 1.7529 -2.8185 -8.3432 -20.4214 + 12.4387 12.5027 11.9274 11.7982 12.5741 13.7391 15.0701 16.2946 15.8718 14.4312 13.1234 12.3489 12.0782 10.4253 5.1065 -2.4414 -7.7163 -11.2866 -14.5564 -17.0603 -18.3751 -18.6502 -16.8442 -12.5688 -10.3598 -13.7062 -17.0023 -16.5492 -12.6137 10.1763 4.1712 1.7946 2.0076 0.9052 -2.1595 -3.3835 -3.6172 -3.1645 -2.4570 -4.2730 -25.1913 + 23.6574 23.7960 23.2767 22.0580 20.0235 16.6036 11.9504 7.3306 3.6864 1.7264 0.9711 0.7044 1.0710 2.2585 2.9655 1.1649 -2.9500 -7.6177 -11.4979 -13.5632 -15.3135 -16.4809 -16.2070 -14.4023 -12.2974 -13.2762 -14.7359 -14.0530 -10.8494 8.8738 6.6767 4.8152 2.7736 0.0848 -2.4935 -3.4294 -4.0796 -4.0216 -3.7791 -5.4208 -19.2524 + 24.5799 26.6882 26.1210 23.6936 19.3829 13.8994 6.2899 -0.2105 -4.0678 -6.8423 -8.5308 -9.6576 -10.9976 -12.5439 -13.9320 -14.6340 -14.8621 -14.4895 -13.6415 -12.6341 -10.1213 -4.5540 2.3810 5.5155 4.5043 4.6729 1.5540 -3.0055 -4.5582 9.0263 7.4732 2.8612 0.7241 -2.0536 -2.7733 -3.2059 -2.7189 -1.5532 -1.3601 -6.4198 -12.7575 + 7.6213 8.4172 8.9876 10.4827 12.2597 15.2393 17.4791 18.0965 15.0336 10.0484 5.7655 2.6712 0.2945 -1.4627 -1.9710 -1.0660 1.1600 3.0980 1.1433 -4.1444 -8.2970 -10.7541 -12.9877 -13.8031 -13.3996 -14.1617 -17.1393 -19.3636 -19.2476 6.5354 4.7648 2.4269 0.5232 -1.4945 -1.8813 -1.9640 -1.7311 -1.6530 -1.7955 -3.7308 -24.6643 + 13.5087 13.5242 12.7722 11.8179 11.1371 10.7172 10.5263 11.1693 11.9327 11.7410 11.0557 10.1108 9.3715 8.9355 7.6249 5.0772 0.6107 -4.7883 -10.1816 -14.0801 -16.8600 -18.9941 -20.5775 -19.3418 -15.1559 -10.7533 -12.0838 -14.9402 -13.8764 11.0621 7.6386 4.9345 4.3245 3.4049 0.2756 -3.5276 -6.3143 -7.1008 -6.6692 -8.0282 -24.5342 + 5.8438 4.0764 2.2130 1.0693 0.2917 0.2268 0.3178 0.0571 -0.1220 -0.3299 -0.5484 -0.7221 -0.5026 -0.6535 -0.8270 -0.8342 -1.1830 -1.4780 -1.3638 -1.1982 -1.1886 -1.0489 -0.6640 -0.3974 -0.3609 -0.2538 0.0154 -0.0545 -0.3807 -6.2176 -6.9549 -7.1781 -6.1296 -3.0722 0.1331 2.5736 4.6982 6.3374 7.5607 8.2495 4.9755 + 0.8084 -0.3755 -1.4286 -0.3083 0.4094 0.3217 -1.3855 -3.3308 -4.9621 -6.0578 -7.2055 -8.3467 -8.9662 -9.8798 -8.8811 -7.5773 -5.2881 -2.3523 -0.7359 -2.0640 -3.5321 3.1588 7.1883 8.4965 6.8253 10.0820 14.4185 16.1906 14.7782 2.7472 3.1780 3.1134 1.3703 0.6380 0.5841 -0.0788 -0.4106 -0.5281 -1.2372 -9.3762 9.7708 + 6.0347 7.9306 7.3087 7.5860 8.0389 6.2727 1.7726 -1.9510 -5.1723 -6.4728 -8.8919 -11.0154 -12.2556 -12.0671 -11.6595 -10.0395 -9.5655 -7.4114 -6.3370 -7.0881 -7.2175 -0.9489 2.4220 5.6816 9.0238 12.3465 14.6450 14.7417 14.2888 2.3315 1.6729 1.0736 1.3455 0.9342 1.8468 0.4757 0.6854 0.1631 -0.4447 -10.0841 9.3461 + 46.3168 40.1857 32.9910 25.4126 18.0879 11.1478 4.7370 -0.5137 -4.1524 -5.9367 -6.6956 -7.3488 -7.7462 -7.7468 -7.3670 -6.8462 -6.4988 -7.1096 -8.3038 -9.1796 -8.8798 -8.2279 -8.5672 -9.4950 -9.9228 -10.8964 -12.0330 -12.6718 -12.7395 0.0319 0.3618 0.0496 -0.3085 -0.3788 -0.2193 -0.1354 0.1832 0.4305 0.6666 -0.6818 -13.3710 + 11.6554 10.6537 9.3283 9.0008 10.6684 13.7237 16.3020 16.4883 14.7382 14.1678 15.6614 15.7353 11.5669 3.2738 -3.5965 -7.5962 -9.3860 -11.3905 -12.5797 -12.1046 -11.4132 -10.6087 -9.1391 -12.6739 -14.9908 -15.8921 -11.8803 -12.2627 -17.4496 3.4680 2.4160 1.3256 -0.8144 0.1187 -0.6282 -0.9031 -0.1242 -0.9050 -0.7535 -3.1999 -23.5324 + 12.1675 12.7254 13.2135 14.1985 15.5137 16.9806 16.3379 13.0366 8.3660 4.1955 1.8866 0.9609 0.6094 1.9753 4.6385 5.7596 1.8347 -3.2804 -8.2098 -10.9983 -11.7998 -9.9732 -7.5792 -9.7338 -14.2230 -17.7555 -18.8744 -17.4527 -14.5201 8.5409 5.7667 4.9560 3.2564 0.0271 -3.4128 -3.9385 -3.7737 -3.3325 -3.1328 -4.9568 -24.6241 + 9.1120 9.5643 6.4962 4.5254 2.7757 3.3307 2.9999 2.2174 0.0229 -1.1179 0.0764 1.8616 1.8079 -0.7101 -2.7389 -1.9102 -1.6224 -0.6549 0.4717 -1.0044 -2.5700 -7.5968 -14.5192 -14.0727 -5.9300 1.9148 1.1204 1.1277 5.0226 -1.2631 1.5663 1.1958 1.8714 2.7703 3.0917 1.6973 0.4038 -0.8317 -0.0474 -10.4545 2.3160 + 17.4130 18.4485 19.8230 21.9391 23.4308 21.8507 17.8532 15.0747 14.5401 16.0453 15.3416 9.4703 1.3616 -5.8986 -10.9098 -13.9034 -16.0964 -17.8246 -18.9143 -19.3551 -18.7588 -15.8862 -10.9884 -9.6544 -11.1991 -11.1716 -7.9982 -9.7072 -14.3257 2.4025 0.4919 0.6628 -0.0126 0.2100 -0.6177 -0.6937 -0.1321 -0.2311 -0.0316 -2.0484 -21.0953 + 23.3464 23.7587 23.3198 22.6359 21.2675 18.8080 15.3692 11.2959 7.5849 4.5951 2.3321 0.6206 0.1406 1.2537 2.7028 2.3454 -1.0568 -5.4629 -9.1807 -11.1211 -11.6330 -11.0576 -12.1808 -16.0691 -19.9208 -21.7935 -21.7452 -20.5008 -19.6545 1.7728 0.6055 0.3687 0.2898 0.0010 -0.3228 -0.5114 -0.4052 -0.3988 -0.1360 -1.2637 -21.5300 + -3.6391 -1.8280 -2.2141 -2.8117 -2.3529 -0.6648 0.7132 2.6314 3.0327 3.8765 4.7159 6.0331 6.9840 8.0909 8.2184 7.4433 5.1418 1.2303 -2.8864 -5.9181 -7.2732 -6.6797 -6.8357 -5.8669 -3.4482 -1.6078 -1.4231 -1.7328 -0.9288 5.0214 2.8439 1.2445 2.6452 1.4416 1.0353 -0.6548 -1.6658 0.1662 -1.8989 -10.1785 -9.4487 + 28.5900 28.4485 26.4597 24.2982 20.1833 14.5406 9.8101 7.1801 4.6176 2.4138 0.7001 -2.5862 -4.1909 -6.9729 -9.1018 -9.6205 -10.8810 -11.6812 -10.5387 -10.4340 -10.1742 -2.9512 -0.7690 -7.7471 -11.9011 -14.8085 -14.9057 -14.9118 -13.0663 -2.8812 -2.2219 3.1021 7.3299 4.0256 5.0339 1.4276 -2.9978 -1.6788 -3.5104 -7.6288 -12.8330 + 17.2116 17.2987 16.9789 18.3176 20.7510 21.2753 16.7522 10.5133 5.1142 1.0710 -1.6324 -4.2824 -5.9266 -7.1525 -5.1415 -0.8661 3.3622 1.3492 -3.6601 -7.4519 -9.7242 -8.3497 -5.3860 -9.2331 -14.7369 -17.5440 -17.6867 -15.9040 -15.3169 3.1075 0.5173 0.2992 -0.3406 -0.3000 0.1907 0.1940 0.1470 -0.5000 -0.5615 -2.7535 -21.0709 + -3.1988 -4.0916 -5.2881 -5.3666 -5.4604 -5.6690 -4.5675 -2.8244 -2.3646 -2.2769 -2.5378 -3.9469 -5.3482 -6.8601 -7.9884 -9.9236 -10.0360 -5.5943 -1.7619 2.5871 4.2247 6.6177 8.6593 10.3741 10.0072 13.2806 13.3423 12.7747 13.2373 -10.5369 -13.7286 -14.4672 -7.5571 -1.4016 2.5948 5.6055 7.4460 9.7262 10.9589 11.3600 20.0322 + 6.7783 7.2343 7.5331 7.7761 7.5074 7.6964 8.5725 10.1613 11.2545 11.2432 10.1640 8.2217 5.7244 3.0761 1.5943 2.2900 3.8412 4.4389 2.8003 -1.0955 -5.1726 -8.1891 -9.0934 -10.2132 -12.0854 -15.5298 -19.4471 -23.4981 -23.5838 4.8567 5.6416 5.2432 4.8449 4.3077 1.0329 -3.6054 -4.7530 -5.3304 -4.6545 -7.5837 -26.8960 + 8.4973 9.5790 10.3958 11.0142 10.3482 7.3892 3.2338 0.0093 -2.2260 -2.9444 -3.5594 -3.3833 -3.1035 -3.2915 -3.1816 -1.7272 -1.5694 -1.3090 -0.9698 -1.6827 -1.8826 -2.4935 -2.7299 -3.3411 -3.5987 -3.5349 -4.0664 -5.5150 -4.3567 3.6788 2.2969 2.2073 2.2050 0.4179 -0.5426 -0.2219 -1.2268 -0.5609 -0.3836 -7.8702 -9.1107 + 17.6231 17.9262 18.5472 20.0216 20.3023 17.2887 12.1996 7.3566 4.7274 3.6547 4.0756 5.8810 5.5040 1.8555 -4.4820 -8.8437 -12.2983 -14.1074 -15.7010 -15.7749 -15.0957 -12.7982 -7.9092 -8.3535 -11.5389 -11.4704 -7.3965 -5.1788 -6.0150 7.6735 4.3849 2.0779 0.2256 -0.3031 -1.8488 -2.2661 -1.6177 -1.6092 -1.8719 -4.8451 -18.7476 + 12.8205 14.2684 15.5868 16.7831 17.8071 18.5983 18.8925 18.1800 16.6295 15.0296 14.4114 15.1384 15.0538 11.9286 6.3973 0.5192 -5.4829 -11.2613 -15.9150 -19.5693 -22.3818 -23.8883 -24.2652 -24.1324 -21.6570 -17.7761 -13.9964 -14.5120 -13.2068 12.3627 9.0753 5.2809 2.4178 1.3885 -1.6252 -3.9036 -5.7988 -6.3917 -5.9659 -6.8402 -21.2728 + 20.5006 19.7859 17.9876 15.5578 13.4254 11.0431 7.8434 4.6796 1.3542 -1.1988 -3.1242 -4.8289 -6.6124 -8.2071 -8.4241 -6.4513 -2.4710 0.8654 0.4899 -3.0973 -6.3396 -7.6626 -7.3643 -5.6214 -3.7466 -5.6286 -8.3519 -11.4399 -12.9632 6.3044 6.3906 3.8753 0.4819 -1.9504 -2.6460 -2.8098 -2.5547 -2.1552 -0.9715 -3.9646 -18.7636 + 4.9500 4.5607 3.1720 2.1209 0.3490 -1.0626 -3.5132 -4.7851 -6.2971 -7.3286 -6.8625 -6.4027 -6.8983 -8.1437 -7.2159 -6.5081 -6.2430 -5.2328 -3.1319 -1.8582 -0.2079 -0.4158 1.4593 6.3046 10.2618 11.6043 10.4890 12.3236 14.5120 7.5422 7.3893 6.7744 4.7439 3.7082 1.4685 -2.1681 -2.4628 -6.2634 -5.1931 -15.5390 4.5238 + -7.1410 -6.5576 -5.8532 -3.8568 -2.3391 -0.1389 -0.2988 -0.6152 -1.3909 -2.2598 -3.3096 -3.1888 -4.0487 -5.2444 -3.1046 -1.2460 -0.3725 1.6801 1.7857 1.4104 0.4592 2.1738 4.1615 5.0013 6.4493 6.5541 6.1320 7.0552 8.1032 1.4568 1.3024 1.2345 0.1461 -0.9716 0.5343 1.2784 1.2357 -0.0481 1.4818 -7.6504 7.6553 + 2.7066 2.4471 1.1636 -0.0118 -0.1417 -0.8857 -3.1245 -4.8414 -6.9143 -7.7640 -7.8038 -8.1750 -9.1533 -9.9253 -10.0476 -7.9885 -5.4758 -0.6781 2.4938 3.5356 5.3377 10.4949 13.4549 12.5233 9.2737 7.1566 5.3825 4.3104 2.6502 1.7997 1.0976 0.5063 0.9888 -0.0215 0.8543 0.3799 1.5785 0.4497 0.6056 -8.2389 0.7587 + 15.6038 13.7257 10.7610 8.3191 6.7695 6.1252 5.5801 6.3511 7.5592 7.0879 5.0425 2.3556 -0.6287 -2.0902 -1.8476 1.1771 5.2180 6.2633 2.3465 -3.3395 -7.6295 -9.3311 -8.2251 -8.2814 -12.4973 -15.3911 -16.5987 -12.5111 -11.9141 6.9187 2.6660 -0.5025 -2.5042 -3.4261 -3.1605 -1.1635 1.6816 1.5678 1.5285 -3.6059 -21.5346 + 17.6619 19.2955 19.3999 18.1758 14.7064 10.3380 5.4051 0.8448 -2.7673 -5.8069 -8.5749 -10.4074 -11.7428 -13.3545 -14.7279 -15.0946 -14.9717 -14.1635 -12.0366 -9.1704 -5.5296 1.7983 8.7621 10.6721 9.0083 6.2520 0.4593 -2.8951 -1.5362 17.6102 14.9660 11.8151 6.0356 -2.6221 -10.0292 -11.4635 -9.0063 -4.3623 -3.1041 -9.8395 -15.6595 + 15.5037 19.5752 20.4189 20.0547 19.0780 16.8051 14.6828 13.1886 10.1566 3.7762 -1.1340 -2.4739 -2.6979 -3.0349 -2.9212 -1.9641 -2.1390 -4.2528 -5.4908 -5.4648 -2.3822 1.3316 0.1433 -8.8993 -18.5802 -23.4001 -24.1794 -22.3013 -23.3986 -0.5049 2.4704 -2.1518 0.1889 8.8275 7.0883 -1.7491 -2.8957 -3.5389 -3.5800 -4.1549 -22.0424 + 22.2571 23.2194 23.3933 23.2954 22.5841 20.0392 15.7479 11.5849 8.7700 7.9103 8.1392 8.4163 7.8831 4.6926 -0.6859 -6.5062 -11.4228 -14.8570 -17.9311 -19.2012 -19.8667 -20.3831 -19.2002 -15.1301 -11.0896 -11.7977 -14.4130 -13.8987 -11.5493 6.2481 3.7903 3.5761 3.3013 -0.8054 -2.9745 -3.0920 -3.5267 -2.4910 -0.8625 -3.1636 -20.4183 + 9.8965 9.6623 8.3290 7.4658 5.9247 5.2895 3.6738 3.1009 1.1973 -0.2394 0.0744 -0.2488 -1.7673 -2.8794 -4.7879 -4.3784 -4.5885 -3.9967 -2.8591 -1.8656 -2.4063 -3.7709 -4.0771 -4.7175 -3.4331 -2.4372 -2.8219 -1.4458 -1.8932 10.2458 7.5639 2.7680 -9.9537 -3.5803 -1.8907 0.2144 0.7131 -0.3057 0.1415 -5.9163 -11.5491 + 15.2412 13.6648 11.7460 11.4262 12.4640 13.7257 13.2285 9.7944 4.8606 1.4831 -0.3682 -1.5802 -2.2343 -0.4399 3.1592 4.1899 -0.2603 -4.7397 -7.1446 -6.9457 -6.2341 -4.9071 -5.6164 -9.2612 -10.3548 -11.0953 -11.7433 -14.5977 -17.4609 6.0283 4.4046 1.6269 -0.9371 -1.3835 -1.4248 -1.2533 -0.8106 -1.1426 -1.5174 -3.5905 -22.8504 + 10.9657 10.2369 8.6562 6.5066 5.4153 4.3801 3.7307 2.9701 3.0231 3.9620 5.6227 6.8354 6.8607 7.7333 9.3711 9.9052 7.3966 2.1887 -3.3161 -8.0311 -11.2107 -14.2345 -15.6874 -15.1299 -12.3738 -7.8431 -8.1800 -10.6370 -9.1168 12.4941 8.2803 6.3797 5.8238 4.5394 1.5368 -3.0238 -7.3749 -9.2127 -8.2187 -11.2239 -21.6561 + -1.8184 2.4357 5.5586 6.9268 6.9316 6.6729 5.8397 5.6316 4.9978 3.5427 2.8029 2.1519 1.5431 0.6158 0.3469 -0.5160 -0.7873 -1.1647 -1.4196 -2.0573 -2.9471 -3.3866 -4.0651 -4.9043 -5.5018 -6.2789 -6.6909 -6.9740 -7.4862 0.3871 0.0109 -0.4655 -0.7491 -0.9646 -0.7984 -0.5764 -0.2825 0.8617 1.8001 0.7766 -8.6084 + 26.9824 24.7422 20.3883 16.4687 12.7850 8.7194 4.1423 1.1187 0.4923 1.2950 1.3167 -1.4325 -5.9855 -8.8959 -10.4619 -7.3170 -2.2777 -2.0173 -3.2424 -2.3419 0.2272 1.3235 1.3113 -5.1772 -12.0604 -15.3385 -15.4975 -15.3067 -13.9604 3.9044 0.9553 -0.1050 -0.6867 -0.6467 -0.6666 -0.6241 -0.2928 -0.2046 -0.3915 -1.2419 -18.1483 + 17.4264 17.8739 18.0003 19.1004 20.7794 20.0129 15.2235 9.3432 5.1301 3.7231 2.3327 1.2995 1.8338 4.1579 7.7891 10.5489 10.0894 9.6396 4.8572 -4.9005 -15.2998 -20.5168 -23.2742 -23.9530 -23.5530 -22.1290 -20.9638 -20.9315 -23.6395 0.5658 0.7030 -0.1044 -0.6743 -0.6856 -0.7350 -0.3973 0.2942 0.8749 0.8195 -0.6608 -23.7592 + 11.0645 10.9010 10.3455 9.1551 8.2401 8.4773 10.1716 11.9195 13.3973 14.3030 14.0566 13.0477 11.7356 9.5219 7.8300 6.8087 4.1182 -0.0372 -5.3649 -10.0547 -11.7439 -11.6649 -9.2813 -10.9454 -17.6273 -22.3121 -25.1873 -26.7049 -24.1694 1.5313 -0.0939 -0.8118 -1.4436 1.2266 2.0907 1.6972 1.5907 -0.0005 -1.5372 -4.2496 -26.6400 + 7.2201 8.5015 11.5206 11.9242 7.9280 3.2514 0.5668 0.7646 1.2768 1.9716 3.4275 3.9772 2.0908 -0.4764 -2.4307 -1.9307 -0.2561 1.3364 0.1271 -2.1785 -4.4197 -5.1263 -6.3740 -7.1163 -6.5611 -6.9173 -7.2567 -7.3864 -7.4542 4.2215 2.4770 1.4908 0.9538 0.2780 -2.2207 -1.8537 -1.0888 -0.2235 0.3010 -4.3353 -11.8723 + 9.0358 8.4259 6.9459 5.2890 4.7496 6.3098 9.2991 13.3013 15.9079 15.5390 12.4964 10.6440 9.7104 9.7273 8.5423 3.6988 -2.7453 -8.0067 -11.5004 -13.3609 -14.6771 -13.2598 -11.3050 -7.8208 -9.6607 -12.4588 -13.3476 -14.2784 -17.2010 1.6164 -1.2748 -1.3834 -0.4721 0.9792 1.3035 2.0628 2.1638 0.6958 -0.7525 -4.9387 -23.7718 + 9.9565 8.4628 5.9625 4.3300 2.9878 3.3325 3.4110 2.9855 3.4264 4.1032 5.0697 5.2769 4.9009 3.1001 1.4373 -0.2640 -1.8960 -3.0143 -3.5656 -4.3939 -4.4464 -4.6800 -5.3044 -6.0923 -5.6495 -6.5418 -7.2604 -8.5353 -7.0993 1.0313 1.1537 1.5169 0.9291 0.7698 0.3306 -0.6705 -0.6783 -0.1746 -0.1455 -4.0627 -9.9902 + 8.8206 8.3311 7.6969 7.4773 8.8832 10.4436 11.5039 11.5920 9.4044 5.3729 2.7965 1.9244 0.8440 0.9343 3.0627 6.0994 4.9989 -0.1279 -4.3740 -6.7306 -7.8914 -6.9026 -5.4598 -8.4881 -12.8495 -16.5109 -17.0277 -14.2238 -9.5997 15.6704 10.6049 9.8440 7.9028 1.2354 -5.4491 -8.2374 -7.8730 -7.9121 -7.2858 -8.5000 -25.1681 + 28.0340 39.0868 27.1887 10.6361 11.9455 17.4394 5.1212 0.4727 0.9604 -3.2583 -4.9003 -4.7245 -5.4538 -5.8998 -6.9947 -8.1227 -7.9559 -7.4467 -7.2961 -8.3144 -8.2615 -7.4930 -6.2339 -6.9302 -6.7710 -7.9933 -8.7878 -9.0802 -8.9666 0.2832 0.1164 0.0146 0.0499 -0.3417 -0.2028 0.0292 -0.0176 0.3328 0.3092 -0.5731 -8.1546 + 13.2856 13.6736 13.8385 14.2800 16.0154 17.1010 16.3952 13.2274 9.9508 8.9754 9.0915 10.0588 8.7910 4.7013 -0.6836 -5.8039 -9.0189 -11.2256 -12.7340 -12.4440 -11.1395 -8.8600 -7.8172 -12.7618 -18.4517 -20.0185 -18.1437 -12.9371 -7.3458 15.2491 9.0836 7.8889 2.1805 -3.0815 -5.2994 -5.5285 -5.1346 -5.1469 -4.4882 -5.7230 -22.9727 + 13.2791 36.0460 37.8677 20.5156 1.8115 5.3912 6.3369 -1.8419 -4.5104 -2.1483 -1.6031 -4.4187 -2.3622 -5.5552 -5.8859 -5.4153 -6.3869 -5.0848 -6.7256 -6.3113 -6.6644 -6.7067 -6.3379 -7.1113 -6.5094 -6.6908 -7.2644 -7.5701 -8.1431 0.0788 -0.2498 0.1241 -0.2112 0.0855 -0.0675 0.3132 0.2893 0.0553 0.4068 -0.8245 -8.0347 + 7.9344 6.5125 3.7957 3.5965 6.7588 12.6940 16.5097 15.1028 8.0593 1.9598 -1.2146 -2.5926 -3.3772 -1.3486 3.1728 5.8914 1.9225 -4.7654 -9.1401 -9.7051 -8.8318 -4.5607 -2.0376 -6.2450 -8.0736 -8.0805 -5.2827 -6.9369 -11.7180 7.2258 3.3652 1.3586 -1.1046 0.1664 -0.3445 -1.1860 -1.2597 -1.3364 -2.1233 -4.7616 -22.1072 + 21.0378 20.1437 17.5203 14.9435 12.2481 9.7639 5.5990 1.4969 -1.3751 -3.1146 -3.9190 -4.7517 -4.5423 -4.8816 -3.7907 -3.1560 -2.1567 -0.7505 0.1795 -0.4587 -2.1088 -3.6718 -5.6034 -7.3929 -8.2906 -9.5520 -10.5896 -12.2849 -10.5415 -10.7549 -8.4301 -5.8121 -1.4994 2.1408 6.5891 7.6924 9.5764 7.2596 6.0779 -12.8398 -1.9629 + 10.7156 9.5865 7.6225 6.9649 7.0204 6.9685 5.2279 3.7124 2.4551 1.6576 1.9988 3.6736 4.0688 1.8389 -1.2786 -2.3368 -0.4395 1.0954 3.9267 3.5576 -1.4334 -6.6048 -9.7760 -10.9008 -10.7709 -9.3430 -10.2106 -9.7590 -9.2378 2.5943 0.3766 -1.2329 -1.3523 -0.5254 -0.1927 -0.3463 -0.4383 0.4702 1.6846 -1.0379 -12.5558 + 24.0580 24.4379 23.9745 23.0444 20.8465 16.8979 11.8130 7.1514 3.3680 0.5959 -1.6053 -3.7180 -5.6992 -7.0693 -6.5902 -3.1806 1.0957 2.1175 -1.3667 -5.8106 -7.7326 -6.3061 -6.7167 -11.4328 -17.2877 -19.9514 -19.4929 -18.2702 -17.1703 1.8172 -0.1844 -0.2118 -0.1481 -0.6409 -0.6132 -0.3659 0.2614 0.3884 0.5934 -0.8960 -20.2332 + 19.4765 20.1390 19.4603 17.8222 14.3397 10.2003 4.8581 -0.7364 -4.1646 -6.0966 -7.2789 -8.6454 -10.5389 -11.5302 -9.4624 -7.2408 -3.9524 -2.2222 -4.3879 -6.9029 -9.6078 -8.5139 -4.7196 -4.0072 -5.4425 -3.2306 1.5193 5.0300 5.8358 16.6913 13.7800 8.0790 4.9477 0.9965 -4.7924 -7.0379 -7.8346 -6.8472 -7.4504 -10.5321 -11.1317 + 18.8135 17.0829 14.0965 11.2672 7.9285 3.6326 1.0246 1.6274 5.2441 9.5096 12.7855 11.9891 9.9900 8.1345 7.9624 7.3196 8.1668 7.4695 3.3884 -5.5692 -13.6276 -18.3033 -22.2152 -22.3568 -16.4382 -9.9941 -12.6602 -22.2049 -24.0632 8.0300 3.8659 0.4870 0.5409 0.8745 -0.3373 -1.1358 -2.3213 -3.1408 -3.2458 -3.6172 -26.2789 + -3.1846 -2.1461 -1.3884 -2.1168 -3.4536 -2.2068 -1.9328 -3.2837 -4.0724 -3.4451 -3.7064 -3.4490 -5.5867 -7.8526 -8.9224 -10.9618 -10.4140 -7.1444 -2.6930 1.6890 4.0196 6.3300 6.7767 10.2897 10.6153 11.6584 13.3164 12.9788 10.2869 -8.7628 -13.5736 -14.7094 -7.7628 -1.0738 2.3985 3.7455 7.9153 9.1097 10.9709 11.7425 19.7352 + 7.2036 10.7988 12.0301 12.6700 13.9090 16.0294 17.1742 15.7924 13.0556 11.3737 9.8981 9.7580 10.0550 8.6757 4.3930 0.9731 -2.5467 -5.8685 -7.3935 -7.9704 -6.2553 -7.4006 -13.7008 -21.8328 -25.5284 -24.9555 -17.2740 -13.6475 -19.4157 -0.8046 -1.7221 0.6106 5.7975 8.4089 4.3333 -1.5262 -3.2110 -3.4206 -4.0492 -4.4166 -25.3279 + 15.5255 15.8281 15.8649 15.5717 15.2512 14.5946 13.3549 11.7660 10.2176 8.4641 7.0906 6.0253 5.1563 4.7439 4.4714 3.6019 0.9681 -2.7655 -6.2281 -9.0931 -11.2485 -13.4855 -15.2719 -16.2999 -17.2510 -18.5206 -20.9106 -20.3915 -17.0300 7.3780 8.0307 7.8850 7.6236 5.1345 1.2557 -3.7418 -6.8045 -8.6459 -8.6051 -9.5101 -22.9827 + 26.7348 25.8552 24.2536 22.1680 19.2892 15.0670 11.8818 10.3490 10.6841 11.6366 12.5339 12.4939 11.6206 9.1288 4.6195 -0.5596 -5.8142 -10.4221 -14.3446 -17.6431 -19.9802 -21.2101 -22.1807 -21.9000 -20.1487 -18.1387 -18.1454 -19.6347 -18.1941 5.5041 1.7390 -0.1498 0.3482 -0.1172 -0.9670 -1.1456 -1.3452 -1.2394 -1.1363 -1.4910 -21.2326 + 16.9370 16.4331 14.8117 13.5840 11.6269 10.1575 7.6822 5.8162 3.2955 0.7078 -0.9400 -2.4858 -3.3054 -4.9715 -5.4040 -5.2105 -5.0578 -4.9223 -4.7159 -4.8903 -5.6388 -6.4062 -6.4586 -6.1964 -6.2205 -6.7543 -6.8166 -7.3223 -7.3349 -2.3860 -1.5474 -0.5275 -0.2007 0.8700 2.1354 2.2672 1.9194 1.3885 1.7931 -5.7120 -7.0233 + 18.1837 17.9105 17.8502 18.6001 17.6649 14.2299 8.9135 3.9793 0.2595 -2.5341 -4.9127 -7.3705 -8.6080 -10.0958 -9.6568 -8.5105 -6.6859 -1.7349 3.3029 3.1008 0.1928 -0.6889 -2.6251 -6.0340 -10.0800 -12.4257 -10.0527 -7.9815 -14.1909 -0.8841 -2.2545 -2.1948 -0.1934 1.8452 1.5870 0.0467 0.8860 1.7017 2.0046 -2.5444 -18.3771 + 8.7179 7.6147 4.8975 2.3828 0.6009 0.0492 0.7007 3.0024 5.6126 8.3164 9.7108 8.5643 5.5842 2.4437 0.8618 1.4883 2.2665 4.0837 2.0839 -2.0359 -5.2412 -7.0937 -7.9286 -7.0963 -7.3007 -8.8955 -10.5985 -11.5307 -11.2613 4.1091 1.9827 0.6908 -1.0075 -0.1945 -0.4742 -0.4650 0.2047 0.0728 -0.1453 -4.7735 -16.8928 + 26.5577 26.0733 24.6549 22.5723 19.6449 15.1079 9.6936 5.0965 2.0343 0.4929 -0.5100 -0.7852 -0.6639 -1.6495 -4.5761 -7.3418 -9.5136 -10.9969 -12.3139 -12.6940 -11.8566 -8.9787 -3.5622 1.2887 1.2102 -6.9904 -16.4084 -22.1027 -23.4832 -1.8879 0.4885 2.0094 -0.3326 -2.5347 -2.2882 -2.5729 -1.0909 0.4876 5.9716 1.7500 -19.5897 + 35.3242 34.3711 32.2680 29.4806 25.8876 21.5217 17.0469 12.7325 8.2745 3.7170 -0.9461 -5.4939 -9.1998 -10.9322 -11.5916 -11.7605 -11.9938 -12.5431 -13.0923 -13.2971 -13.3947 -13.1377 -12.6123 -12.5003 -13.0962 -13.2815 -13.6530 -14.1174 -13.9808 0.5697 0.0342 -0.0298 -0.0559 -0.1023 0.0891 -0.0151 -0.1749 -0.0061 0.0508 -0.3598 -13.8339 + 10.0703 9.7251 9.1433 8.8944 8.6180 8.9798 8.7995 7.6156 6.5867 6.0265 5.9165 4.8201 3.4139 2.6360 2.7630 3.8113 3.0665 -0.1580 -4.1852 -6.9646 -8.5002 -7.9262 -6.4833 -8.3135 -11.7801 -15.4185 -14.2921 -13.7284 -13.1365 1.2932 3.3955 6.0907 4.2778 4.2667 1.2855 -2.6003 -1.0796 -3.6746 -1.8634 -11.3916 -19.3656 + 23.3051 24.1993 23.9215 23.6862 23.1858 21.5213 18.1183 13.5369 8.5586 3.3648 -2.7305 -8.4197 -12.7332 -14.9501 -15.7545 -16.1289 -14.8115 -12.7042 -10.1815 -6.8723 -4.1455 -3.1746 -3.2618 -1.9552 -2.0348 -7.0796 -14.1032 -17.0807 -15.2758 6.0612 4.0067 0.6827 -0.7321 -1.3626 -1.3544 -1.3699 -1.2448 -1.0738 -0.8706 -2.7423 -19.3798 + 15.2674 16.9866 17.1277 16.7099 15.7308 13.2318 9.2970 4.9391 0.8073 -2.3215 -4.1763 -5.4190 -5.9209 -6.5426 -6.5178 -6.1109 -5.5659 -5.2001 -5.0134 -5.0517 -5.0368 -5.4231 -5.5314 -6.1976 -6.3703 -6.2889 -5.3624 -6.1367 -5.9099 -8.0750 -7.3361 -4.4931 -3.1183 -2.2693 -0.4450 2.6648 5.7080 7.3558 8.7204 1.2878 -1.4334 + 16.2521 17.5727 18.3716 19.7318 20.2218 17.5895 11.4595 3.5824 -4.4163 -9.7646 -11.0944 -11.4598 -11.7153 -11.2087 -10.3436 -9.4990 -7.9409 -5.7447 -1.7839 3.2246 5.5449 5.2691 3.5281 1.4077 -0.7885 -7.8706 -13.4426 -14.7741 -11.9087 8.1501 11.0831 13.4143 10.3995 2.9803 -3.3969 -7.2017 -8.5882 -8.4386 -8.7227 -9.6791 -18.7880 + 13.3298 15.6004 16.9495 17.9742 18.6413 18.0052 15.3407 10.8188 5.7704 1.6139 -1.5541 -4.5241 -6.8500 -8.6887 -10.0915 -10.3456 -9.1067 -7.2349 -3.6908 -0.4604 -0.7272 -4.5894 -7.5233 -6.1277 -2.5212 -4.8361 -11.8782 -16.9767 -16.3176 9.5140 11.6129 9.6344 6.8283 1.8214 -5.0008 -6.9907 -7.4822 -6.7860 -5.3530 -7.7983 -21.5097 + 5.8509 5.0121 4.1809 3.1146 2.3783 3.1729 5.0219 8.3707 10.9759 11.2270 8.3063 4.3902 0.4943 -2.3167 -1.6450 1.9935 5.6473 4.3761 -0.8021 -4.8923 -7.3829 -8.9257 -7.0734 -4.5608 -5.6127 -9.9029 -12.5815 -12.1258 -6.6911 19.4769 13.9666 10.8452 9.4207 4.2670 -4.7851 -10.4839 -11.6782 -11.7512 -9.0329 -10.2450 -24.1213 + 21.8999 23.2973 23.7997 23.4635 22.0363 18.0109 11.7586 5.0662 0.6662 -2.2727 -5.6763 -8.5064 -10.4473 -10.5884 -9.8688 -7.3515 -1.6565 4.9891 8.0386 5.1463 1.6954 -0.6651 -6.4585 -12.0333 -17.0640 -19.1042 -20.0560 -19.6043 -18.5148 1.3036 -0.0062 -0.2979 -0.3133 -0.5330 -0.7489 -0.3368 0.3007 0.2781 0.7521 -0.3986 -20.6963 +-10.8987 -3.8431 0.8023 3.7818 5.0658 6.8699 5.8536 5.2186 3.8311 2.2420 1.7635 0.0185 -1.2264 -1.7443 -3.2128 -1.6985 -0.4682 -0.6943 1.3731 2.1612 2.0833 0.9470 -0.8848 -2.3964 -2.7117 -2.4339 -2.8978 -3.2996 -3.6012 2.7097 2.9692 3.1594 3.0175 3.5504 2.5518 -0.2289 -2.0950 -2.3143 -3.3310 -9.9888 -7.1246 + 24.4808 26.3759 27.5940 28.3806 27.5669 22.5831 15.7417 10.5723 9.0486 9.8475 11.5983 11.3131 7.1102 0.2086 -7.1702 -11.9730 -14.3609 -16.1449 -17.3317 -17.8091 -17.4066 -16.0482 -15.0664 -15.2895 -16.4422 -17.0076 -17.0725 -17.2911 -16.0079 1.3349 -0.0323 -0.0023 -0.0696 -0.4582 -0.2103 -0.2903 -0.1486 -0.0517 0.5839 -0.6555 -18.4443 + 17.9414 16.0904 14.3699 13.3391 11.1223 8.3964 4.9840 2.4988 0.7921 0.1608 -0.2310 0.1816 -0.4705 -2.1166 -2.9171 -3.7835 -3.0302 -2.2559 -1.9600 -0.9583 -1.2307 -3.4055 -6.3253 -8.4085 -9.7194 -10.3891 -10.6675 -10.8207 -11.1873 1.0986 0.4777 -0.0911 -0.0850 -0.2734 0.0140 -0.2098 0.7129 0.8980 1.8977 -4.4395 -12.1029 + 12.4723 14.3737 15.7331 17.5345 18.5865 17.4102 13.1675 8.1222 3.7914 0.4168 -2.7856 -5.0694 -6.1658 -6.8186 -6.5122 -3.9192 0.1995 5.0703 4.8669 1.2909 -0.9029 -1.6452 -6.8885 -13.7427 -17.9265 -18.6395 -13.8409 -11.8927 -16.2860 1.0018 -0.4130 0.2921 0.9706 3.0372 2.3311 -1.1419 -1.4680 -0.8370 -1.0945 -2.6785 -23.0503 + 16.1352 15.6199 13.6322 10.9321 8.0808 7.3912 8.2284 10.3433 11.9724 11.5988 9.3631 5.6849 2.7468 -0.1363 -1.7113 -0.5317 2.3026 3.9081 0.3916 -4.3635 -7.2068 -8.5384 -8.4550 -8.9540 -13.2029 -18.1608 -21.6849 -22.2538 -23.1320 1.1059 0.2225 -0.9789 -1.0458 -0.6792 -0.6786 -0.0893 1.8547 2.2928 0.8548 -2.8591 -24.9911 + 28.0419 26.8927 23.9676 20.3423 17.0949 14.1432 11.1170 8.5048 5.9497 3.7523 1.8284 -1.1682 -4.2200 -7.3805 -9.6413 -9.8772 -7.8838 -5.3446 -3.5410 -3.9253 -6.0372 -7.8179 -8.6390 -8.2594 -11.0251 -14.9594 -17.1292 -17.6345 -17.1513 2.0146 1.0165 0.2708 -0.3124 -0.5924 -0.7003 -0.5256 -0.1176 0.1111 -0.0740 -1.0907 -18.2597 + 30.4937 29.9533 27.0130 23.2537 19.3056 15.2225 11.4303 9.6244 9.1658 8.8058 7.5946 3.9214 -0.3706 -4.6724 -8.3883 -10.6272 -11.6333 -12.3129 -12.9451 -13.0994 -12.8851 -12.7290 -13.3639 -13.9071 -13.6304 -13.0095 -13.0398 -14.2416 -14.9284 0.6244 0.4573 0.2518 -0.4563 -0.2954 -0.1108 -0.0098 0.1405 0.0912 0.3156 -1.0087 -16.5521 + 23.7058 24.6386 24.6540 23.9896 22.7528 20.4522 16.9148 13.0348 9.6982 7.0016 4.5976 2.1220 -0.6149 -3.6746 -5.8863 -5.9902 -4.5281 -3.6266 -4.8920 -9.1128 -13.5269 -16.4106 -17.2411 -16.4096 -15.1425 -15.8149 -18.5726 -21.0323 -21.0860 0.9700 2.5909 2.5737 1.8731 0.5116 -0.3889 -0.5545 -1.3812 -1.8817 -1.7258 -2.5873 -20.1722 + 22.2050 22.3808 20.3781 16.4796 12.6684 8.8562 3.8726 -0.8910 -3.6288 -4.2849 -3.4387 -1.6917 0.1253 1.9297 2.5614 1.1487 -1.7631 -3.8451 -4.6916 -4.6895 -4.3072 -5.2689 -7.0584 -8.3927 -8.7357 -10.2762 -11.8104 -13.7994 -14.0324 5.7540 5.5094 3.1104 0.8059 0.0318 -1.6334 -2.2746 -2.0707 -2.1335 -1.8766 -5.2228 -18.1315 + 17.6753 18.8195 20.1357 22.2056 22.9569 20.8704 15.5249 10.2701 6.9749 6.5302 7.5814 7.0271 2.6959 -1.7891 -4.8427 -7.5373 -9.7567 -11.0890 -11.6891 -11.8800 -12.2196 -11.3183 -11.2853 -12.8185 -14.2184 -14.2772 -13.2856 -15.1315 -16.1298 1.6839 0.9589 0.5363 0.3560 0.0003 -0.3851 -0.4445 -0.1741 -0.4978 -0.0434 -1.9906 -19.7528 + 16.9830 17.0052 16.9926 18.4021 19.9925 19.1283 15.4081 10.3401 5.5724 1.5019 -1.4332 -3.0065 -3.3422 -1.3956 2.0439 4.2794 1.1281 -3.7178 -7.4632 -8.5376 -7.6364 -6.3039 -11.6545 -18.3967 -21.4453 -20.7880 -16.5366 -10.0359 -7.0843 11.0713 4.6537 0.5072 -0.3393 -0.6602 0.5953 -2.0626 -2.4851 -3.0603 -3.5773 -4.6428 -20.8691 + 17.7707 19.5364 20.6287 20.9849 20.0930 17.6674 14.5484 11.0817 6.9020 2.2545 -2.3356 -5.7371 -8.9898 -12.8304 -15.5822 -17.0433 -18.8124 -19.7104 -19.4116 -18.1842 -15.3531 -8.7155 -0.1993 4.7176 5.4518 4.7364 1.7967 -2.2008 -3.0647 15.0410 12.3154 5.6659 1.3689 -3.8672 -5.9083 -6.0931 -4.9235 -3.3736 -2.9423 -7.2832 -16.8582 + 9.1549 8.6933 7.8990 7.7096 7.5098 8.0171 9.2410 10.6919 12.1971 13.4831 13.6508 14.1654 13.7371 10.9089 4.6506 -2.3217 -5.6454 -8.0201 -9.9057 -10.0159 -10.6042 -10.3898 -8.1978 -9.7430 -12.7378 -17.4512 -17.2848 -13.5900 -15.8022 0.6882 4.3643 6.0400 2.5052 2.9297 1.4706 -1.9898 -0.8867 -4.2772 -3.0450 -7.7994 -22.2645 + -7.8843 -6.8506 -6.0261 -4.4439 -3.8369 -1.9649 0.3352 2.3185 3.0465 3.3257 3.5540 4.6680 3.7349 2.5291 2.4128 3.7790 4.5682 5.6219 5.4149 4.7479 2.2185 -0.8515 -1.7161 -2.4559 -2.0632 -2.2051 -3.7165 -3.1032 -5.1569 8.1350 6.3528 5.3232 1.0605 1.2735 0.2509 -2.2104 -2.9957 -3.4893 -2.5108 -11.1898 -12.1806 + 19.3396 19.9410 20.3727 21.0809 21.0327 19.1352 15.1028 10.7594 7.8609 7.5499 8.5005 9.7060 9.1824 5.3617 -1.3028 -5.6212 -8.2717 -9.5373 -9.7484 -8.8869 -7.1221 -9.0450 -14.6697 -18.5948 -20.2891 -20.4076 -19.8130 -20.1946 -21.4218 1.2915 0.6782 0.3569 -0.0683 -0.4830 -0.2926 -0.3937 0.2610 0.1608 0.1333 -1.6440 -22.5256 + 2.7246 2.5148 1.4831 1.8238 1.6121 2.4035 2.7381 2.9387 2.1358 2.0826 2.3275 2.3406 1.9098 0.1135 -0.7424 -0.9928 -0.9805 -0.2098 0.5803 0.3688 0.0187 -1.6561 -1.4168 -1.4577 -1.3632 -2.6140 -4.7663 -7.0691 -6.8479 2.3665 2.3301 1.9626 1.0968 1.9491 1.1267 -0.1355 -0.0256 -1.2772 -1.4379 -7.9556 -8.3907 + 4.5290 1.5249 0.3659 0.0056 0.8630 3.3152 1.1307 -3.3632 -4.3601 -3.7553 -5.0257 -5.6659 -5.3754 -4.9885 -4.3119 -4.9927 -6.0531 -10.2279 -4.3307 2.1887 3.8591 8.8378 4.5088 3.9006 4.9936 11.1237 3.0140 -1.5171 9.8068 13.2445 7.3306 5.9252 9.0687 7.7216 4.0675 11.9777 11.3110 -23.2633 -23.8643 -23.5193 -4.4759 + 22.1510 23.1727 23.3097 23.0639 21.6223 18.4164 13.8969 8.9695 4.5053 1.2957 -1.3036 -3.3247 -5.1402 -7.1172 -8.6948 -7.8753 -4.6461 -1.4461 -1.0227 -4.3094 -8.8842 -11.9962 -11.9234 -9.0257 -6.5369 -10.3321 -16.4292 -19.9706 -20.4250 2.3851 5.8201 6.5059 3.9876 0.3330 -2.1429 -2.8980 -3.4857 -3.4682 -2.4183 -4.6186 -20.0780 + 11.7456 12.7989 13.3162 13.8312 14.7779 15.3799 14.0233 10.9089 7.3194 4.1768 1.7992 0.0512 -0.9458 -0.5202 1.3786 3.4860 2.0668 -2.3920 -7.4022 -10.7590 -12.9261 -14.3064 -12.7761 -8.6791 -8.3015 -10.8632 -13.2729 -14.2798 -9.6355 15.8594 13.6933 9.1741 8.4349 3.8782 -4.9728 -8.7226 -9.3197 -9.3643 -8.7767 -9.8839 -22.4690 + 22.5139 20.9546 19.1373 16.9050 14.6133 12.3135 10.2395 8.4844 6.9510 5.0069 2.4662 -0.4380 -3.5684 -7.0424 -9.9771 -11.1936 -9.8800 -6.3251 -3.0189 -1.9735 -4.9442 -9.7372 -12.9352 -11.8709 -6.8801 -5.6880 -9.6188 -12.4995 -11.9948 12.0588 11.2938 8.1711 2.3960 -3.1587 -5.3733 -5.8980 -5.6220 -4.8347 -3.2857 -5.7474 -21.5935 + 26.6734 23.8620 18.3470 12.7193 8.0473 4.8602 2.4155 1.4627 1.0558 0.6193 0.2671 -0.5986 -1.6798 -2.4678 -2.2065 -2.9360 -2.8372 -4.0092 -4.4380 -5.3046 -5.8491 -6.4148 -7.4157 -7.9456 -8.4776 -9.0352 -9.1998 -9.5061 -10.0078 1.6300 1.3410 0.6385 0.2013 -0.3629 -0.2927 -0.3661 -0.3133 -0.0630 0.4392 -2.8520 -12.0787 + 9.0155 7.9133 6.4106 6.4968 8.6477 11.6576 14.8601 16.0323 14.2529 11.8653 10.9041 9.9373 7.2309 2.3059 -4.1636 -8.0163 -9.7982 -12.7129 -15.1421 -15.4797 -14.8005 -12.8340 -10.4715 -5.8560 -5.3611 -5.0344 -3.5840 -5.3517 -8.9240 11.0430 4.7986 3.1188 -0.3636 -1.4561 -1.9319 -2.5464 -2.3041 -2.3666 -3.0258 -4.9659 -22.6702 + 9.0489 10.4274 10.5425 10.8125 12.0032 13.7184 13.0711 9.6959 5.4837 1.6077 -1.9964 -4.4495 -7.8808 -10.2103 -11.6407 -11.4255 -9.7241 -7.5467 -3.5478 1.8951 3.5718 1.5955 -0.5403 0.5662 0.2415 -4.3154 -9.5295 -11.0052 -10.4693 11.1024 7.2333 6.1462 4.3929 0.7029 -2.0309 -3.7294 -5.1402 -4.8388 -4.6151 -9.2233 -21.2734 + 11.5593 10.3420 8.9170 7.7962 6.0867 5.9638 3.8519 0.4188 -0.7715 -1.3184 -1.5894 -1.6173 -0.5956 0.0397 0.9980 0.6720 -0.2103 -4.0838 0.9485 2.7667 1.7723 -0.8231 -4.4419 -7.1686 -8.5571 -4.2281 -12.0695 -12.5608 -2.0974 7.0256 2.5786 2.8194 7.2989 5.3493 3.5256 11.6032 11.1767 -16.6084 -17.8153 -16.9535 -14.6567 + 24.2288 25.1078 25.3408 25.2954 24.6890 22.7229 18.9908 14.5853 10.6023 7.4918 5.2132 4.6660 5.1836 5.0476 2.8795 -1.3269 -6.1170 -10.7585 -14.7563 -17.5071 -18.3274 -18.4398 -17.9983 -17.5700 -18.5575 -19.7750 -20.4184 -20.5476 -19.9453 1.4677 0.8990 0.5256 0.5195 -0.1930 -0.5086 -0.7678 -0.6113 -0.2499 -0.1187 -0.9625 -20.0880 + 1.3606 0.3524 -0.4981 -3.0376 -5.4591 -5.1861 -5.3381 -7.9395 -4.6276 -1.6746 -2.1073 -1.7720 2.3082 5.2620 5.3649 4.6501 3.6803 -1.4394 4.4940 9.4882 7.6591 6.7428 -0.6196 -2.1749 -1.2855 2.9511 -4.6673 -9.5251 3.0380 18.0806 14.1151 9.1210 5.7949 2.4151 -7.5054 6.8950 -0.4827 -16.5385 -16.0700 -15.8252 -15.5778 + 21.5243 22.4067 22.6543 21.9383 19.0581 14.0232 8.4188 2.8494 -1.1924 -2.9917 -3.8222 -4.1823 -4.8633 -4.9565 -2.8338 0.9516 2.0941 -1.6445 -6.8552 -9.9590 -11.1205 -11.0602 -8.6668 -7.9525 -10.6286 -14.0950 -13.9349 -10.3116 -4.8478 13.9994 11.9398 8.0010 4.2542 -0.6981 -4.9047 -6.1557 -6.5212 -6.7797 -5.8456 -7.2894 -17.9998 + 13.8275 13.6751 13.2793 13.1536 13.5104 14.6497 15.6909 16.1684 15.2109 12.8857 9.6156 6.4230 4.2876 3.2525 3.1015 2.9273 0.8232 -3.7600 -9.4442 -13.3046 -15.6203 -16.1398 -14.4329 -11.4384 -11.9914 -16.0394 -20.1422 -21.4553 -18.7137 9.9896 6.0754 2.5716 1.2147 -0.1252 -2.8394 -3.5768 -3.1998 -3.2277 -2.5626 -4.3197 -26.1243 + 1.0072 1.0349 0.4547 2.0233 3.1568 3.6248 2.6871 2.1595 0.3986 -1.1817 -0.8372 -0.4964 -1.1310 -1.3530 -1.2089 0.5624 1.6332 2.6953 2.6143 2.1661 1.0687 -0.5002 -1.8630 -2.0422 -1.9290 -2.0051 -4.7328 -5.7009 -2.3057 -9.2017 -9.1260 -10.3545 -1.5749 2.8548 5.5584 7.3199 8.4704 7.1113 6.4743 -7.5320 8.8174 + 22.3237 20.1229 16.3186 14.9885 15.8060 14.2422 9.0206 4.5767 2.3692 1.2439 -0.3609 -2.4418 -4.3713 -8.0945 -10.8110 -9.9282 -5.6299 1.8658 5.9594 1.6554 -4.8836 -8.0129 -7.8686 -4.1518 -10.8846 -16.3956 -17.6436 -10.8807 -8.1336 8.1699 0.1374 -2.1155 -2.7808 -2.5717 -2.5099 -1.4743 0.4020 2.8792 2.7754 -2.9117 -19.9846 + 14.9448 13.3235 11.0690 7.7970 3.6467 1.2905 -0.1418 0.0865 0.0848 0.1249 -0.0042 -0.4006 -0.5457 -2.0216 -2.4005 -2.6631 -2.7574 -3.4930 -3.6341 -4.8530 -3.8008 -4.5467 -3.9983 -3.1834 -3.3005 -2.2570 -2.3485 -2.8054 -3.2121 -8.3072 -10.2892 -11.0655 -7.2025 -2.5835 1.3158 3.9103 6.1494 8.7822 9.4411 9.8490 4.1623 + 17.4109 16.3957 12.7323 9.0568 6.0296 4.0628 1.3809 -1.0636 -2.5917 -3.1282 -2.4806 -2.6332 -2.6331 -3.0197 -3.1246 -3.2078 -3.2369 -3.3087 -3.5259 -3.6952 -3.2777 -3.5126 -3.3483 -4.6082 -4.5229 -3.9702 -2.8815 -2.2298 -1.0686 10.2492 8.7238 6.5287 4.1319 1.3909 -1.3457 -3.1912 -4.0830 -5.8573 -5.7467 -10.8007 -10.7504 + 3.6810 4.8086 4.9739 5.5677 4.9032 4.1256 1.8122 0.1556 -1.1456 -2.1369 -2.2315 -2.0785 -3.1848 -4.0677 -5.2026 -5.8769 -6.5043 -6.1685 -5.6023 -5.9105 -4.2511 -1.3453 1.8335 3.4033 5.1448 5.5509 4.8678 3.4921 1.3864 4.5899 3.1561 2.1086 1.0104 -0.3847 -0.6586 -0.6429 -0.1120 -0.4119 -0.3363 -8.3185 -3.2346 + 3.1333 2.2434 0.5660 -0.1689 0.6551 3.1370 6.4778 9.1712 8.4572 6.3300 4.6298 2.8657 0.1787 -1.1319 -0.2827 2.3196 5.5007 6.1676 2.4317 -1.1696 -3.2988 -3.3141 -2.9589 -3.5360 -5.2348 -8.6527 -10.1506 -11.6535 -12.7119 12.8762 10.2239 6.7637 2.0074 -1.9484 -4.8866 -5.3018 -4.5051 -4.3255 -3.6989 -7.2049 -23.9005 + 8.6220 10.8825 12.2872 13.3601 14.2280 15.3604 14.9416 12.8140 8.4375 3.9118 -0.1235 -3.3572 -6.8491 -10.5514 -12.6045 -13.2373 -13.4285 -13.2888 -12.4858 -9.8652 -5.1267 0.8370 1.7581 3.1241 4.1350 -0.4102 -5.4532 -8.8060 -9.1118 14.9701 12.4418 7.1314 0.5687 -6.4070 -6.8941 -5.5568 -3.3084 -2.3663 -1.6449 -8.9346 -21.6106 + 19.1182 16.6713 12.8335 8.8739 6.1759 6.2230 7.5297 9.2506 9.4142 7.8053 5.9066 4.3378 3.9155 4.5696 4.9822 3.2409 -0.8415 -5.8082 -9.1525 -11.0999 -12.9425 -14.8404 -14.6104 -11.5397 -8.3035 -9.3615 -9.7422 -9.9642 -12.6415 4.2777 1.5675 1.0684 0.6135 0.0628 -0.5807 -1.1085 -1.0788 -0.8209 -0.6136 -3.3875 -20.5875 + 0.8644 0.9240 0.5001 1.9751 3.9631 6.3687 6.1077 3.6220 0.7094 -1.0962 -1.8495 -2.7933 -4.0125 -4.8808 -2.1854 1.6422 4.3506 5.1936 3.1952 -0.0683 -2.2673 -2.2756 -2.5661 -3.5305 -3.3037 -2.7368 -2.4517 -1.7145 -1.6839 4.7659 4.9768 3.8161 1.7084 0.2338 0.0457 -0.5947 -0.8458 -1.4961 -2.2835 -10.3266 -8.0604 + 22.8493 23.0279 22.4564 21.7830 19.7630 14.2941 7.4867 2.4477 1.1542 1.7020 2.1450 2.1381 2.9526 3.5821 3.5140 2.5293 1.8263 1.6906 -0.1177 -4.3580 -9.4178 -13.6122 -17.0109 -18.1586 -18.2289 -17.0887 -18.0638 -20.2393 -21.0462 1.9050 0.4924 0.1429 -0.1603 -0.2972 -0.2106 -0.5323 -0.0051 -0.0488 0.0713 -1.3573 -21.7449 + -5.0691 5.7916 20.3977 33.7608 20.5478 6.3862 -0.6167 2.4285 7.7738 0.6480 -5.4985 -5.1477 -2.1058 -9.1202 -9.7561 -5.6897 -8.4994 -6.6489 -4.0490 -6.3900 -1.1222 -4.7105 -1.2435 -3.1404 -0.4670 -1.2691 -3.2353 -6.3597 -7.5957 2.6335 2.9453 2.3526 1.7483 0.5793 -0.6841 -0.6920 -0.5880 -1.6805 -2.0348 -4.5797 -8.0873 + 27.8982 26.1875 22.3314 17.8436 13.6570 9.3782 4.5001 1.0587 -0.1319 0.5334 2.2176 3.9007 4.3904 2.8784 -0.5056 -2.7187 -4.2442 -4.9618 -6.1501 -6.6560 -6.3475 -6.6372 -7.4694 -9.8220 -14.6530 -16.2989 -16.6133 -16.9745 -16.5912 1.5751 0.2732 0.3920 -0.1605 -0.6644 -0.5397 -0.0300 -0.1057 -0.0387 0.4893 -1.1907 -17.7674 + 4.0687 5.1941 6.0984 7.7169 8.4142 8.8229 7.3250 5.7734 4.1436 2.4793 2.4633 2.0981 1.0790 0.0726 -0.0934 -1.1969 -2.7251 -3.5007 -3.7768 -4.1983 -4.4360 -4.9365 -5.3239 -6.0842 -6.5913 -6.0399 -5.6196 -5.4516 -5.7753 2.3864 4.1318 4.1698 4.0758 2.9462 1.5278 0.0907 -0.4889 -3.3101 -2.5223 -13.0073 -9.7421 + -2.5217 6.6906 18.9380 32.5385 26.0727 10.4378 1.8923 3.8920 11.1274 10.8157 0.2901 -2.1358 1.8304 0.1110 -6.1198 -3.9839 -1.5639 -5.8130 -5.0685 -6.2978 -9.3560 -8.6952 -9.9906 -9.6668 -9.2810 -8.9004 -9.6041 -12.9599 -12.6780 1.0846 1.2730 0.8512 0.3292 0.2685 0.1416 -0.4299 -0.2512 -0.6945 -0.7869 -1.7857 -11.2964 + 9.0608 8.3549 5.9106 3.0223 1.5989 1.4872 0.5967 -0.7899 -2.0584 -2.6475 -1.9940 -0.9341 -0.2649 0.8782 0.8190 0.7941 0.2218 -0.2750 -0.3771 -0.9402 -2.1665 -2.7001 -2.9780 -2.6056 -1.9810 -2.2466 -2.1946 -2.6591 -2.9316 2.9882 2.9231 2.3934 1.2468 1.7808 1.5958 0.9538 0.0307 -1.6679 -1.9384 -10.3063 -6.9292 + 25.3209 26.4747 25.0162 21.0118 15.7497 9.7187 3.2049 -2.7534 -7.5484 -11.3498 -13.8939 -15.3292 -16.7275 -17.7766 -18.3047 -18.0188 -16.5419 -14.8140 -11.1748 -6.2506 1.1228 5.4465 3.3274 4.0262 6.8686 6.7842 4.5450 4.7788 7.0872 14.4073 8.6959 4.9137 0.7333 -0.0689 -3.2729 -3.9427 -4.6901 -3.7843 -4.7606 -8.2309 -11.1556 + 39.3240 35.1580 30.1649 24.8807 19.4559 14.1503 9.3376 5.7395 2.9171 0.8743 -0.1600 -1.5610 -3.3663 -5.4790 -7.0899 -8.1039 -8.6121 -9.3362 -10.6742 -11.7063 -11.8889 -11.6310 -11.7325 -11.7388 -11.4894 -12.8703 -14.4784 -15.0647 -15.0195 0.4215 0.7196 0.4543 0.0332 -0.2347 -0.2869 -0.3136 -0.1185 -0.0711 0.1485 -0.7523 -15.3163 + 4.1198 2.4046 -0.9207 -3.0537 -4.9411 -4.5132 -4.0855 -3.8951 -3.8661 -1.0021 0.5493 0.6922 -0.1138 -0.3066 0.1108 -0.0251 0.8424 2.6646 9.2170 6.3754 2.4274 3.2110 3.9376 2.5394 1.3314 0.0248 -3.5589 -5.2404 -4.9255 -3.5255 -3.1009 -3.7604 -3.4700 -2.8733 -1.9992 0.5113 3.0512 5.1249 4.8231 5.2190 -1.6532 + 3.6620 2.9859 3.0040 3.0506 2.2625 2.4007 2.1773 2.2676 1.7231 1.4288 1.2160 0.5069 -0.1552 -0.1104 -0.1481 -0.3494 -0.2743 -0.5949 -0.9982 -1.2915 -1.7757 -1.8432 -2.0500 -2.8592 -2.5411 -2.0302 -1.9641 -2.8754 -4.8244 7.6823 3.2328 -2.8255 -7.4261 -7.6683 -4.0922 -1.2719 1.1834 2.9852 4.1242 4.0762 -14.2392 + 12.2682 12.4958 10.6370 8.6802 6.1895 3.3521 0.0120 -3.1196 -5.8915 -7.9346 -8.4726 -9.2365 -10.2529 -11.6156 -12.3872 -11.4245 -9.0191 -6.8545 -3.2918 -0.0972 1.4040 0.7813 2.7012 7.4433 10.4513 8.1526 4.8220 3.6293 6.5779 3.5887 2.5442 4.8598 3.9894 2.1825 1.8990 -1.1549 -1.3419 -2.5535 -1.8075 -12.2060 0.8433 + 15.4243 14.3712 10.5979 6.0053 3.6236 3.1660 2.6457 3.0378 3.3307 2.9774 1.6056 0.6289 -1.2252 -2.5293 -2.5259 -3.3644 -3.2999 -2.9968 -4.1243 -3.1379 -4.5943 -5.1946 -6.5332 -5.4258 -4.3474 -2.4580 -3.2897 -3.9496 -8.4184 12.5953 13.0978 8.0807 2.0800 -3.4741 -5.6039 -6.0827 -5.2556 -5.1645 -4.3359 -5.9370 -19.1939 + 12.6031 11.5140 9.5918 8.9721 11.2278 16.3861 18.3055 15.2493 9.3533 5.1262 3.4090 2.8449 4.2190 7.3448 7.1824 2.1285 -4.7265 -9.0679 -11.7653 -12.9187 -12.3770 -9.8860 -9.0188 -10.4117 -12.4113 -14.1603 -11.8340 -11.7956 -15.0847 1.6333 -0.1749 -0.1240 -0.2004 0.4426 1.4656 0.2738 0.7777 -0.0047 -0.2122 -3.8769 -21.6008 + 15.7554 16.8394 17.1615 17.2884 17.4030 17.2657 15.8921 13.5652 10.3715 6.8406 3.5351 0.5517 -2.1632 -4.1460 -4.2553 -2.4789 0.2986 0.9530 -2.3858 -7.5703 -11.2229 -12.1150 -10.5591 -8.6344 -11.4398 -17.0807 -20.6444 -20.9882 -18.0373 8.3336 5.5551 2.4710 1.8701 0.0297 -2.8652 -3.4720 -2.9808 -2.8086 -2.1702 -3.9628 -24.3752 + 27.9412 27.2421 22.9503 16.5254 9.6885 4.5967 0.6997 -3.4665 -6.6867 -7.8148 -9.1495 -10.0610 -11.4055 -11.7392 -11.8813 -11.3038 -9.8795 -7.5418 -2.5870 4.6153 3.8429 0.5688 -2.8955 -0.2237 1.9886 1.7001 1.8074 -3.1272 -14.4038 -3.8881 -2.8329 -1.6443 1.8671 3.1413 1.8729 0.1398 2.8367 0.3757 1.7313 -3.5996 -13.3850 + 9.1831 9.4128 8.6344 9.5797 10.1063 10.3011 8.2263 4.5395 1.0974 -1.7556 -3.6105 -4.8265 -5.4684 -5.8802 -4.5931 -3.1888 -0.4075 0.3805 -0.9063 -3.4050 -4.9101 -5.9677 -5.8009 -5.0301 -5.4306 -6.4969 -3.0810 -2.1162 1.4143 -5.1355 -2.3496 -0.0420 3.9648 4.8248 5.4912 2.0450 -0.1732 0.0828 0.7502 -9.4585 1.8224 + 4.4588 4.2389 3.3197 3.1330 4.0702 5.7759 7.7099 9.0876 11.1245 12.6510 12.5527 11.9764 10.9501 11.0837 11.4805 9.3639 4.7521 -0.5944 -4.4402 -7.1309 -8.3207 -8.3043 -9.4810 -12.7554 -15.5784 -17.8883 -18.8492 -17.9501 -16.4359 5.8124 3.4155 3.3830 3.3147 1.6832 -0.5370 -2.7626 -3.1367 -2.1515 -2.7970 -6.2238 -24.3008 + 11.3859 11.2940 10.4575 10.5198 11.2222 12.7124 13.5178 13.4129 10.5164 5.9792 2.3897 -0.1138 -1.9321 -3.1972 -3.1420 -0.7773 2.4075 3.1154 -1.3266 -7.1228 -10.5939 -11.1307 -9.8760 -7.3492 -6.6029 -10.8829 -13.8968 -15.3987 -15.5878 8.9895 6.7302 4.3952 0.2012 -4.6771 -5.1924 -3.7684 -1.4949 -0.4984 -0.0670 -4.6178 -24.6307 + 18.9158 19.7886 19.7526 19.1358 18.1177 16.4664 14.0122 10.8818 7.5481 4.5462 1.5367 -0.9445 -2.7129 -3.9653 -5.5016 -7.5102 -9.0864 -9.0742 -9.0767 -10.2313 -9.4105 -5.3027 -1.9268 -1.3910 -3.5726 -10.4635 -17.0711 -22.1873 -21.2730 5.4315 7.4977 3.9877 0.2418 -1.1556 -2.9339 -2.8218 -3.2557 -2.2125 -0.4250 -4.3542 -22.8328 + 28.1526 28.1117 24.7174 18.3759 10.6219 2.4804 -4.1378 -7.4788 -9.3437 -10.8490 -12.5556 -14.1384 -15.1322 -15.0182 -14.6140 -14.5304 -14.2862 -13.9234 -11.7259 -8.2717 -1.7653 6.2167 7.1311 7.8239 8.7319 8.2789 7.6074 7.1853 2.3358 3.7971 -0.5557 -1.9296 -2.2395 -1.0081 1.6256 1.1217 0.2632 1.4311 1.1466 -3.6525 -7.2238 + -1.9896 -1.5846 -1.1882 -1.5851 -4.5749 -6.7021 -4.6940 -3.5898 -2.8275 -4.0926 -5.1006 -4.1183 -4.9559 -5.2145 -6.9309 -7.9964 -7.8043 -5.1453 -1.8211 -0.6339 3.5622 6.5139 7.8184 9.0948 11.5264 11.4601 10.4022 10.4535 11.7185 -9.6611 -13.7925 -13.7882 -6.6479 -2.4133 2.1029 4.5429 8.2581 9.4338 9.8315 12.1338 18.9608 + 29.0162 27.1449 23.5731 20.2452 17.5110 14.7918 12.0251 9.1599 6.0664 3.8158 0.8485 -1.4407 -3.2916 -4.0983 -4.3970 -4.3435 -5.2630 -7.1322 -9.5766 -10.6471 -11.1044 -11.3079 -11.3508 -11.6324 -11.9889 -12.9298 -13.9392 -14.6929 -15.0614 0.4975 0.3394 -0.0827 -0.4799 -0.4676 -0.3009 0.0384 0.1607 0.4964 0.5891 -0.7905 -17.1701 + 8.4713 7.5563 6.3767 6.1947 6.0689 6.3779 4.9213 3.5036 2.5255 3.0901 4.1254 6.3043 8.3238 9.4464 9.3170 6.5660 2.2721 -0.8163 -4.4840 -7.0774 -8.1734 -9.5687 -10.5231 -10.5767 -10.2078 -10.4331 -9.7161 -9.9741 -9.8905 3.2535 1.2694 0.1807 -0.6651 -1.0284 -0.5802 0.6037 0.3968 0.3279 1.2972 -5.0555 -13.8489 + 8.3726 8.7329 8.5586 8.5134 8.7002 9.8765 11.6676 13.2674 13.5452 12.0942 10.0691 7.6401 4.8660 2.8680 2.7547 3.9563 4.9074 3.0494 -2.0753 -8.4742 -13.3840 -15.8240 -17.8178 -16.4808 -10.6391 -9.9987 -14.2994 -17.0600 -17.3864 10.6631 9.4847 5.5492 1.3050 -3.1070 -4.8971 -4.8382 -4.5691 -2.3532 -2.1714 -5.0660 -26.2617 + 19.0595 18.3832 15.9029 12.6530 10.0486 8.1560 6.2927 4.3924 2.8935 2.2985 1.7559 0.7258 -0.7293 -3.1142 -3.9530 -4.8127 -4.7935 -5.2925 -6.6673 -7.3117 -8.4213 -8.8278 -9.2400 -8.0623 -7.4252 -7.1006 -5.9527 -5.3881 -5.4699 10.5325 9.0445 4.9973 0.1331 -3.2907 -4.1662 -4.1984 -3.1495 -2.7117 -2.1058 -5.0850 -17.2009 + 52.2372 44.3578 36.5608 28.9176 21.5115 14.4397 7.8187 1.8482 -3.2520 -7.1355 -9.4888 -11.6207 -13.4063 -14.7098 -15.4667 -15.9341 -16.1369 -16.0366 -15.3538 -13.7588 -10.6277 -7.7814 -6.1144 -5.0819 -4.0409 -3.9360 -4.9781 -5.9562 -6.8747 3.7022 1.4660 0.4111 0.1370 -0.3542 -0.1182 -0.1120 -0.5566 -0.7197 -0.2876 -3.5680 -11.6568 + 18.5298 18.5912 18.1337 17.4860 16.8943 16.3587 16.0594 15.4122 13.4402 10.4256 7.3367 4.6520 2.5497 1.6836 2.6521 4.2050 4.7439 1.2637 -5.1624 -11.9630 -16.8360 -19.0690 -18.8984 -17.4618 -16.1587 -17.2824 -20.6892 -23.3973 -23.4997 3.2388 3.5069 1.9919 0.0447 -0.5876 -0.7419 -0.9096 -1.1897 -1.2370 -1.2266 -2.8899 -24.3059 + 14.2216 15.1107 15.4424 14.9543 12.7476 8.8407 3.8349 -1.2250 -5.2339 -7.6335 -9.5259 -10.5663 -11.3480 -10.7110 -9.3182 -6.6849 -3.0625 0.0032 2.0229 0.5151 -0.5651 -0.4048 0.5255 -0.7083 -2.6478 -3.1557 -2.5836 -2.0039 -0.8405 3.7139 1.8811 2.0645 2.2576 1.8972 2.7893 0.9195 -0.0976 -1.1232 -2.5385 -11.7639 -9.8006 + 27.6767 26.3073 23.1657 18.9402 14.2694 9.6933 4.9155 1.3429 -1.0736 -2.1647 -2.4791 -3.7245 -5.2366 -7.8495 -9.6757 -10.3534 -9.9166 -8.3142 -6.6376 -3.9530 -4.0753 -4.3093 -3.5187 -3.9010 -5.2935 -7.7755 -9.0692 -8.2730 -8.7168 5.8445 3.8687 2.4179 0.0649 -0.8031 -1.3677 -1.4763 -1.6757 -1.5716 -1.5700 -3.7316 -15.5980 + 7.4225 6.3812 4.2676 2.9128 1.8225 2.6330 3.2026 3.4899 4.3798 5.0782 4.0849 3.8689 3.6113 4.5683 5.8542 4.5947 0.2532 -3.2821 -6.4774 -7.4650 -7.9861 -7.4196 -6.0622 -5.4357 -5.0398 -5.4225 -4.6902 -3.4197 -5.7249 10.3884 8.1074 7.3911 3.6782 0.8704 -2.0339 -3.8319 -4.9728 -4.3725 -5.2689 -9.9555 -15.7366 + 17.5213 20.4430 21.9190 22.2701 21.3171 18.9687 14.6306 9.0767 3.5198 -0.8778 -4.3458 -6.9865 -9.5480 -11.1420 -12.3506 -13.4175 -13.6194 -14.0717 -13.7947 -12.3999 -9.1656 -3.9176 -0.2193 -1.5457 -4.1719 -2.7467 -2.4932 -5.3995 -7.4528 7.1434 7.0238 7.2627 6.7980 5.2527 1.0139 -3.4114 -6.5230 -7.8521 -6.8412 -9.8668 -15.3691 + 23.8876 22.5517 20.2028 18.0102 15.3733 12.6542 9.1010 5.3097 1.3988 -1.1554 -2.5833 -3.9593 -5.0937 -4.9268 -4.3385 -4.0356 -4.4731 -5.2411 -5.8573 -6.0798 -6.4837 -6.6593 -7.2930 -7.7787 -8.4220 -9.5983 -10.7066 -11.6689 -12.1349 1.8395 1.5059 0.7809 0.7822 0.3229 0.0573 -0.1778 0.0288 -0.5032 -0.4347 -4.2018 -15.0448 + 13.9062 13.1904 12.4290 13.6194 15.2333 15.2034 12.0474 7.3708 3.0090 -0.0473 -1.0773 -1.4032 0.0264 2.8347 3.5334 0.2574 -4.8606 -8.4990 -10.3461 -10.2062 -9.1724 -6.5298 -5.6943 -9.5272 -11.1766 -10.7021 -7.7752 -7.2838 -8.3598 9.0389 8.3462 5.7086 0.2994 -0.2224 -1.6621 -3.2697 -3.1981 -3.4783 -4.1342 -7.4282 -20.6505 + -0.1956 12.8891 25.9590 29.2372 11.9659 3.6545 1.9759 11.5615 8.2666 -2.4823 2.1238 10.6975 3.0083 -5.1305 2.5407 -3.5456 -5.3431 1.0377 -4.8653 -4.1095 -8.9872 -10.0069 -10.6630 -10.8153 -10.0788 -9.9282 -11.0117 -13.4387 -14.3160 0.9647 0.5126 1.4038 0.7744 0.0988 -0.4577 -0.1039 -0.1823 -0.4661 -0.3208 -2.2235 -13.2318 + 25.9629 27.1177 27.8480 28.1350 27.2179 24.6308 20.8300 16.5838 12.6784 8.6134 4.1825 0.4406 -2.7846 -5.2345 -6.7282 -7.9739 -9.5601 -11.2902 -13.5857 -15.5917 -16.3027 -16.6819 -16.4912 -15.9456 -15.7750 -16.8350 -17.5886 -18.0613 -17.8109 1.0702 0.8294 0.1689 0.5813 -0.0091 0.1284 -0.3058 -0.7039 -0.5520 -0.2521 -0.9553 -17.8347 + 28.3817 26.3242 22.4988 18.1016 13.8114 9.4292 5.2503 1.4133 -1.6541 -2.4802 -2.4725 -3.0842 -3.4601 -3.8401 -3.4525 -2.3946 -2.6693 -1.6244 -0.8581 0.9642 0.0547 -3.6789 -8.6927 -12.3146 -14.1720 -14.6132 -14.5422 -14.6064 -15.6195 1.2358 -0.1021 -0.4812 -0.1634 -0.1968 0.6015 -0.1027 -0.0844 -0.0133 0.2510 -0.9445 -16.6483 + 14.8559 14.2769 13.3144 13.4636 14.5210 15.1971 13.3361 10.1599 6.7908 5.5468 6.0091 7.5005 8.7471 7.3385 1.8761 -2.5391 -5.4603 -7.6289 -8.7381 -8.1046 -7.0789 -6.1772 -7.8795 -11.4586 -14.0732 -15.6269 -16.7078 -19.9955 -21.4649 1.8161 1.8568 0.7960 0.3224 0.4841 -0.7227 -0.9581 0.3734 -0.1277 -0.0325 -3.8078 -24.4035 + 5.4535 4.2960 0.7585 -1.6071 -2.7931 -2.2472 -2.8178 -3.1626 -2.5628 -1.3912 -0.3660 1.6795 4.2030 6.4164 7.0674 7.5227 7.0796 4.9076 4.3543 2.9287 -0.1541 -2.4266 -4.0876 -4.9944 -4.2282 -4.2178 -6.4840 -7.8159 -5.3111 9.2246 8.2902 7.1840 5.6544 4.3170 2.1934 1.5215 -2.4633 -8.8855 -12.3322 -14.7039 -13.9292 + 9.0980 9.2332 9.0227 7.8900 7.2001 9.3060 12.7460 15.4304 15.0788 11.5632 8.2993 7.2707 8.2449 10.9986 9.5064 3.6569 -2.3332 -7.1688 -8.9599 -9.8137 -8.1433 -4.6312 -6.5469 -11.9994 -16.1445 -17.5300 -16.1820 -19.8515 -25.2405 0.4708 -0.3092 0.2379 1.4804 -0.1717 -0.9282 -1.5045 0.4378 1.4582 0.6172 -1.7888 -27.1180 + 30.5921 29.7607 27.5057 24.3076 20.2670 15.1816 9.3486 3.1611 -1.4937 -4.0966 -4.8189 -4.9920 -5.0548 -3.9493 -2.7660 -2.8294 -4.1521 -6.8587 -8.9405 -9.3227 -7.2576 -3.2574 -2.6669 -7.8789 -12.9388 -16.4992 -17.2553 -16.5402 -16.5552 0.5625 0.3502 0.0083 -0.1840 -0.6199 -0.4748 -0.2997 -0.1545 0.4846 0.8919 -0.5646 -16.4454 + 14.8981 14.8814 13.6043 11.5145 9.5013 6.6072 1.9200 -2.1840 -4.2500 -5.6701 -6.3798 -6.5602 -7.0938 -7.2697 -4.0665 -0.3509 2.6024 2.4125 -0.1554 -3.0971 -4.9214 -6.2652 -5.4681 -4.3507 -3.9793 -4.8021 -2.3819 -1.6978 3.0025 2.8620 3.2617 6.8021 5.2352 3.3376 0.5084 -1.9352 -2.2484 -1.4495 -1.6734 -14.7006 -2.2554 + 19.3171 19.5822 19.1016 18.4606 17.7886 17.3421 16.7071 15.2413 12.1252 7.5570 2.4543 -2.6968 -6.6532 -9.4513 -11.1611 -10.7979 -8.4551 -5.8510 -3.9750 -5.4484 -8.6775 -10.2725 -9.6723 -8.1110 -6.9238 -9.5412 -14.0157 -16.8585 -17.1147 6.4595 5.2042 2.6176 0.4543 -1.5212 -2.1299 -2.1223 -2.0336 -1.9001 -1.4360 -3.5925 -21.8904 + 10.0554 11.4918 12.0024 11.9869 11.4982 10.7952 8.7236 5.9738 2.4552 -0.5185 -1.8366 -4.1108 -5.5111 -6.6353 -6.8364 -7.0970 -6.1121 -5.4311 -4.4856 -3.2530 -4.1916 -5.5562 -5.6815 -5.4794 -4.5844 -3.0317 -1.6070 -1.6034 -1.4198 6.0457 6.4584 6.3816 6.2004 3.9293 1.7377 -2.4799 -5.0585 -4.1685 -5.2278 -13.8183 -8.6957 + 5.1528 4.1179 3.0625 2.9843 1.9679 0.9714 1.4744 4.4833 5.5293 4.7030 3.5767 3.8031 1.7543 -1.0533 -1.2774 0.9570 5.1278 5.5900 4.5922 0.5748 -5.0484 -6.9525 -6.3139 -9.2098 -9.0484 -9.2166 -5.0713 -4.7295 -2.5016 10.5692 7.5278 2.2517 0.6253 2.9159 0.5499 -2.4843 -3.5780 -4.6422 -4.8638 -8.8714 -13.8790 + 18.7418 15.9185 12.8438 10.2040 7.5183 6.1018 4.7206 3.9908 3.3693 2.4047 1.4410 0.1504 -0.1335 -0.4013 0.1702 -0.4796 -1.4923 -3.1582 -4.6899 -4.8726 -5.5428 -6.5059 -7.1643 -7.5192 -7.9222 -8.7815 -9.4290 -9.6309 -9.8521 -0.4363 -0.6716 -0.6321 -1.0615 -1.3192 -0.9262 0.1030 0.7901 1.5962 2.2939 0.2637 -10.2983 + 35.3923 32.3026 26.5029 19.6975 12.6365 5.9222 0.1370 -3.8927 -5.9336 -6.6867 -6.9777 -6.7865 -6.2733 -4.3479 -3.5674 -3.6341 -3.7323 -5.0584 -6.3190 -6.1046 -4.6307 -4.8921 -3.7741 -3.8037 -7.6419 -9.4026 -9.7867 -9.3143 -10.0304 -0.3209 -0.8025 -0.7882 -0.9161 -0.6206 -0.3729 0.2723 0.9229 1.0626 1.2478 0.3157 -11.3279 + 15.1154 17.2376 18.5113 18.6287 17.8606 16.0374 12.3870 7.3049 2.2274 -1.2547 -3.4619 -4.9984 -7.5019 -10.3433 -11.9860 -13.4479 -13.9092 -13.7812 -13.8196 -12.9157 -11.1559 -7.1870 -2.1572 1.9368 1.9384 1.8602 1.8940 -1.4092 -3.6107 13.9690 15.4855 13.9780 10.9462 5.3217 -5.0870 -10.7886 -11.2651 -11.1873 -9.5973 -11.7750 -16.7260 + 18.2228 18.4615 17.4249 17.1396 16.6125 14.4185 10.8568 8.6164 6.3579 5.2370 3.8560 1.9252 -0.6359 -4.2750 -5.1889 -6.7505 -7.9919 -9.0778 -10.1000 -9.9142 -8.7383 -6.1658 -3.7111 -6.1760 -9.8971 -12.5047 -12.7338 -12.8872 -12.3808 -0.8130 0.6976 0.3804 0.6457 1.5482 2.4749 3.0413 2.8395 -0.4708 -2.7284 -7.6154 -15.6555 + 6.0325 10.0051 11.3341 12.3589 13.8900 16.1481 16.3116 12.7566 8.9105 7.2557 4.4785 2.2316 0.9797 -0.6614 0.5661 4.8341 6.5458 3.6213 -1.1381 -4.3272 -5.4198 -6.5113 -7.7865 -12.3725 -19.9330 -25.0176 -17.8042 -15.8364 -21.4525 -3.1483 -3.2143 -0.2635 8.5907 13.2637 6.6922 -2.8514 -3.6166 -4.6591 -4.9686 -5.8249 -25.4194 + 17.3207 17.7695 17.5402 17.0035 16.5266 15.9285 14.7115 13.0615 10.7412 7.7296 4.5970 1.7062 -1.0815 -3.0472 -3.6756 -2.2649 -0.4084 -0.9339 -5.2361 -10.6763 -14.8835 -17.2271 -17.8907 -15.6384 -10.4668 -8.4525 -11.8808 -15.4044 -15.4675 8.8476 9.5703 6.9625 3.1090 -0.1253 -3.6220 -4.8452 -5.4253 -5.0540 -3.4938 -5.9236 -22.7477 + 18.2320 19.5978 19.7190 18.7548 16.3427 13.6150 10.6951 8.6087 5.9251 3.1428 1.8336 0.1222 -0.3161 -1.8892 -3.4565 -4.4788 -4.1025 -3.7501 -4.9649 -7.4742 -8.6908 -9.9373 -10.8830 -11.3028 -11.4257 -11.5192 -12.7474 -14.6156 -15.0348 -8.1772 -8.1988 -6.2878 -4.9710 -3.0389 -0.0545 3.6911 6.8598 7.3721 8.3424 4.4628 -8.8778 + 13.8589 12.2371 9.8247 7.6249 6.1891 5.8925 4.1202 1.8072 0.1905 -0.9244 -0.4689 0.1547 0.5703 1.3955 2.0470 2.6142 1.4776 -0.3379 -2.6582 -5.2107 -5.8303 -6.1283 -6.7972 -7.3151 -7.5206 -7.3966 -7.0187 -6.1092 -6.2882 2.8357 1.3808 1.5156 0.8705 -0.2752 -0.1447 -0.1738 -1.0712 -0.4308 -0.5020 -4.0050 -11.0460 + 25.9341 27.7320 28.2232 27.7876 25.5774 21.4281 15.8329 10.0447 4.4219 -0.7932 -4.9567 -7.9480 -9.7086 -10.7951 -11.8434 -13.0235 -13.3873 -13.9249 -14.4275 -14.4362 -13.1477 -10.3022 -6.8516 -4.3801 -3.0535 -2.9543 -6.5274 -11.6580 -12.8631 5.4748 4.2973 2.0928 0.3859 -0.0500 -1.0781 -1.5335 -2.0293 -2.0870 -2.0482 -3.4246 -15.9155 + 12.5611 14.6864 16.3579 17.9048 19.1559 20.0003 19.3273 16.6175 11.9366 7.1513 3.6125 1.1772 -0.6760 -2.6536 -3.6769 -3.9465 -1.4534 2.8613 3.1405 -2.9573 -11.3536 -17.9162 -20.1933 -20.5787 -18.1872 -12.9460 -11.7495 -17.2172 -20.9852 3.0886 4.0379 3.6614 1.7858 1.8672 1.0455 -1.0249 -2.3716 -3.3037 -4.0002 -4.7860 -22.6731 + 6.3873 6.0538 5.2554 4.7605 3.7352 4.0478 3.0878 1.1603 -0.4100 -0.4842 0.3498 0.7144 -0.2324 -1.6604 -3.0147 -3.2036 -2.2852 0.4500 5.1996 6.1851 1.9002 -1.2909 -2.8734 -4.7090 -4.8637 -4.9906 -6.0915 -6.1561 -7.0214 -0.4395 -0.6291 -0.8046 -1.1373 -1.0367 -1.1976 -0.5358 0.8614 1.5251 2.7259 0.6681 -8.1549 + 6.4678 24.1453 28.3564 16.3768 0.9487 6.1492 9.9337 5.7837 0.7687 2.7379 7.4627 2.6615 2.1447 -1.7243 -4.9079 -3.6716 -5.1260 -1.3976 -1.3562 -1.3187 -5.1578 -9.3517 -9.8801 -10.0344 -8.5754 -9.5176 -12.9621 -14.5277 -14.4277 2.6144 2.0177 2.0939 -0.3296 0.2968 -0.6507 -0.6394 0.0217 -1.9957 -0.1306 -3.2985 -14.8655 + 12.5510 12.4285 11.8955 12.7578 16.9371 21.2938 20.7903 16.7803 12.6688 11.7788 11.6300 7.3846 0.3301 -5.6353 -9.1568 -12.4924 -14.5919 -16.2950 -17.9481 -16.1853 -15.7323 -12.4489 -10.0349 -7.7045 -8.7699 -6.9254 -3.1598 -3.0985 -9.0472 7.8424 3.8265 0.9376 -0.6967 -1.1188 -1.5694 -1.9503 -0.6167 -1.4541 -2.2369 -2.9635 -21.8681 + 15.6754 16.7432 16.5153 12.3311 4.2455 0.2050 -0.6894 2.1431 4.3595 7.5720 9.8733 9.2508 5.8913 2.6955 1.6669 2.5024 2.1823 0.5005 -4.3623 -8.7120 -8.4826 -7.8486 -12.0698 -13.3968 -11.9915 -10.9867 -12.2995 -11.0273 -12.4867 -2.7836 -4.4120 -5.1131 -4.1277 -2.4732 -0.9720 1.3438 3.6062 4.7125 5.6821 4.5370 -11.9000 + 22.3286 23.0046 23.0498 23.5807 23.1994 18.4599 10.9563 4.0795 0.4966 -1.4210 -3.5925 -5.4787 -5.7217 -4.6302 -2.1947 3.6628 9.5300 10.8217 9.1886 2.5031 -8.0477 -14.9331 -18.4387 -19.9305 -20.4501 -20.2597 -19.9758 -19.4479 -20.3392 1.1842 0.4014 0.0219 -0.1675 -0.5484 -0.3769 -0.3371 -0.0928 -0.0308 0.3091 -0.3631 -21.5338 + 21.9984 23.9238 25.3357 26.4343 26.0313 22.5182 16.6027 9.8676 5.2339 2.4325 -0.1466 -2.8415 -2.8856 -0.9913 3.1553 6.9975 6.7848 4.8021 -2.7887 -13.1318 -18.6046 -20.0234 -20.0047 -19.9587 -19.6763 -19.9132 -20.3439 -20.4619 -20.3457 1.2714 0.3555 0.0928 -0.1438 -0.1909 -0.1061 -0.2499 -0.3508 -0.1985 -0.1750 -0.3048 -19.6659 + -0.2567 -0.2113 -0.8684 0.4465 3.3786 5.2759 2.6214 -1.2665 -3.2281 -4.9538 -5.9464 -5.0624 -5.8449 -5.2078 -4.5607 -2.4460 -0.3193 2.4345 5.4910 8.1750 9.7870 9.0613 6.6768 1.8115 -0.9513 -2.1611 -3.7070 -3.7433 -4.4246 0.1631 2.1256 4.6102 5.3221 6.3935 4.7668 3.6937 3.2175 -0.8613 -8.2952 -21.1360 -6.1298 + 3.8793 4.4914 2.0392 1.3477 -1.0271 -0.6639 0.1117 -1.7816 -3.2330 -2.3240 -1.7798 -3.8111 -6.4867 -7.2086 -6.2062 -8.1286 -2.5000 3.3550 12.4119 16.8546 9.9403 10.7928 11.8490 6.7929 -4.7030 -7.2697 -8.7835 -9.4026 -8.5564 -1.1740 -2.4092 -2.9332 -3.4178 -3.5228 -2.2895 -0.3280 1.5973 4.1640 4.8094 5.5038 -5.9517 + 55.6246 47.8318 40.1222 32.5666 25.2478 18.2625 11.7233 5.7654 0.6757 -2.9249 -4.9251 -6.7338 -8.2843 -9.4091 -10.0166 -10.5275 -11.0842 -11.8508 -12.6565 -13.2845 -13.4392 -13.4505 -13.5945 -14.1300 -14.9588 -15.8320 -16.5919 -17.0696 -17.0561 -0.1692 -0.1054 -0.1641 -0.3548 -0.4054 -0.2499 -0.1197 0.3574 0.6137 0.7290 -0.1316 -16.1029 + 28.3480 28.4457 26.9174 24.2222 20.0737 14.3497 7.6659 1.6711 -2.2930 -4.4091 -5.0514 -3.9119 -1.1398 2.5446 4.7855 3.9543 0.0941 -4.3143 -7.5760 -9.0354 -10.4294 -11.2170 -12.2003 -12.8513 -13.7072 -15.1900 -16.7728 -16.6535 -16.3197 1.6890 1.2293 1.4980 1.0200 -0.3583 -0.7205 -0.7464 -0.7978 -0.7991 -0.4289 -1.5854 -17.0352 + 7.1738 5.8760 3.4170 2.3215 1.3711 0.5440 -1.4461 -3.1488 -4.5999 -4.7859 -4.3101 -4.0022 -3.9658 -3.1268 -2.0884 -1.4297 -0.0002 0.9577 1.5670 1.5085 1.0721 0.3227 0.5110 0.7323 0.8496 1.7441 0.7228 0.7656 1.4470 -8.6193 -7.2247 -5.3667 -3.5827 -1.8357 0.6166 4.1585 4.9638 7.0248 8.8447 1.0209 8.4769 + -0.7467 0.3554 1.8709 0.8731 -1.4638 -3.3430 -6.6672 -9.5951 -10.4012 -10.6421 -11.0116 -11.8429 -12.2455 -11.7931 -7.9381 -3.6179 4.3015 10.3005 10.2729 5.6096 4.1790 4.6704 9.5416 5.1426 3.2307 6.6932 7.3970 11.6314 15.2383 14.9214 12.3993 10.3175 9.4781 6.5290 0.7143 -6.7843 -12.1011 -12.5497 -11.0634 -11.8611 -4.9295 + 8.9473 8.9587 8.3247 7.7486 7.2645 6.8446 6.7225 7.4361 8.0756 8.3721 7.8521 5.8385 3.2013 -0.0003 -2.2581 -3.0372 -2.3326 -0.4339 2.2803 1.7881 -3.0603 -8.5789 -12.0665 -11.7987 -9.2546 -6.5489 -9.3084 -14.6968 -16.2796 11.5926 10.4770 8.8581 8.3385 5.3110 -2.0531 -7.5440 -8.5312 -8.7087 -8.2386 -9.5016 -25.9443 + 17.7853 20.4425 22.0494 22.6794 21.5241 17.2874 10.6686 4.0415 -0.8452 -3.3573 -4.8317 -6.2098 -8.0414 -10.4109 -12.4433 -13.6668 -13.5852 -12.5998 -10.4309 -6.2165 -0.7444 0.8686 -2.2118 -2.8842 -0.1978 -1.0432 -7.6768 -11.1308 -8.8188 14.1142 12.1567 7.0646 6.3108 1.5813 -5.6339 -6.7414 -7.8081 -7.7366 -5.6857 -7.6219 -18.4403 + 10.4095 10.1666 9.2271 8.0860 6.4145 4.2188 0.0306 -2.2509 -4.0464 -2.5048 0.7199 3.4238 3.2446 1.8968 2.3554 2.4242 1.5237 2.3494 4.0741 2.8937 -1.4622 -5.2927 -9.7781 -9.2472 -7.3050 -3.6229 -4.1228 -9.1846 -14.6411 8.1502 5.2313 1.0580 1.4879 3.7251 2.9439 -0.5626 -1.1335 -5.4441 -3.6896 -11.7665 -16.0896 + 16.3683 15.7368 14.0789 11.8221 8.6363 4.8193 0.7944 -2.5033 -4.2969 -5.1383 -5.1385 -5.8567 -6.7831 -7.2715 -6.1940 -4.4484 -2.8402 -2.2612 -2.0718 -1.0756 0.0928 1.1543 1.4991 -0.3000 0.0566 -0.6778 -3.4172 -5.3252 -9.4588 11.6386 8.1885 3.6288 -1.2989 -3.6855 -3.9476 -4.1335 -3.4808 -2.6249 -1.8682 -2.4166 -19.6188 + 9.9289 9.2679 7.9267 8.7379 10.9513 13.7239 14.8623 12.3233 7.4753 3.3088 0.9949 -1.1257 -2.9647 -3.3198 -1.5514 1.8208 1.1498 -4.6271 -7.9003 -10.0749 -11.1748 -10.0605 -6.3035 -5.8941 -7.6734 -10.1071 -9.5489 -6.0056 -4.1400 9.5365 2.6560 3.6743 6.2251 4.9344 -1.5821 -4.9354 -4.9959 -4.2490 -3.3389 -7.9251 -19.9895 + 15.7601 15.5371 14.5879 13.6852 13.7329 14.2619 14.5602 14.1050 11.9855 9.0424 5.9338 2.9248 1.1175 -0.2175 -0.4564 -0.8056 -2.8269 -5.9252 -9.3719 -12.1962 -12.8615 -12.5210 -10.3147 -10.3071 -11.7171 -13.5357 -14.5158 -14.3799 -15.2819 0.2685 -1.1025 -1.4893 -1.4317 -1.3748 -0.8857 -0.0388 0.9292 2.3295 3.5114 -0.7158 -18.7537 + 10.0771 10.8307 10.8465 11.7532 13.7152 14.8042 13.3142 9.3177 4.2443 -0.1370 -2.8245 -4.9084 -6.2428 -7.4346 -7.1199 -4.5048 -0.3499 3.4684 5.2923 2.9229 -0.3932 -2.4266 -2.9696 -4.8989 -8.2386 -13.2276 -16.6579 -16.3335 -11.9188 12.1564 11.5591 10.1368 8.7589 4.6074 -3.2222 -8.3162 -9.1139 -8.8367 -7.9752 -9.7544 -23.1025 + 11.5053 11.7027 11.7371 13.2093 15.2251 15.5948 12.9282 8.2370 4.0626 1.5654 0.2206 -0.6203 0.1854 2.0975 5.0249 6.2795 5.6030 2.9180 1.3161 -0.0224 -2.9425 -5.8601 -7.8659 -9.4742 -11.9620 -17.3077 -22.0414 -24.8530 -26.4631 0.6245 0.8430 0.7564 -0.0344 0.1860 0.2573 0.0022 0.3483 -0.0033 -0.3539 -2.6260 -27.0235 + 5.1441 5.4989 4.5886 4.8890 4.4149 4.7882 4.1037 2.1106 -0.5897 -1.6882 -2.0231 -2.3075 -4.0395 -5.9980 -7.0714 -7.2239 -6.8500 -6.2178 -5.8790 -4.2255 -3.0049 -0.9642 0.5881 1.8550 5.0224 5.6412 5.3310 2.5657 1.5411 13.0414 12.1678 10.8758 8.3500 3.9695 -1.2713 -6.6778 -7.5357 -8.1366 -9.8150 -14.9679 -9.0970 + 5.6158 4.9839 2.6123 0.8571 -0.5963 -0.3233 -0.2214 -0.3194 -0.1370 0.4421 0.3275 0.0835 -0.5170 -0.8713 -0.8569 -0.8339 -0.8554 -0.5354 -0.0395 -0.0558 -0.9263 -0.8835 -0.8978 -0.6944 -0.6268 -0.8091 -1.0483 -1.4194 -1.4539 -1.4149 -1.4513 -1.7313 -2.1794 -1.7446 -0.9286 0.2594 1.3903 2.1796 3.3663 2.2545 -1.2043 + 10.7080 10.7135 9.5629 8.5444 8.8788 10.1398 10.5302 9.9131 6.6128 3.5565 2.0899 1.1039 0.3794 0.6277 -0.1980 -1.3526 -2.7157 -4.4999 -6.1998 -7.9255 -8.1415 -9.2812 -8.2556 -8.1488 -8.8083 -9.3952 -7.3216 -6.7527 -4.3647 -4.2821 -3.0286 0.3702 1.9504 4.2670 4.9800 3.4858 0.8969 -0.2219 0.7569 -9.1747 -5.7376 + 15.6199 17.2444 17.3338 14.6899 10.1694 6.6473 3.7155 2.2358 1.5381 1.6499 1.6341 0.4488 0.1506 -1.4323 -2.9510 -3.5813 -3.4819 -3.2311 -4.3442 -6.2089 -6.4666 -6.7538 -7.4724 -7.2719 -7.5336 -7.1999 -7.6644 -8.4572 -9.0267 -8.4693 -10.5727 -9.7580 -6.2924 -2.3994 1.2587 4.0421 6.4837 8.0877 9.5585 8.0612 -1.6481 + 19.7459 20.2278 18.1630 15.0090 12.1531 9.9790 6.2260 3.3367 0.8576 -0.7079 -0.8905 -2.1529 -4.1404 -5.6658 -7.0620 -8.8380 -8.6505 -8.0785 -6.8102 -4.7097 -3.3992 -4.6255 -5.7732 -5.7892 -3.5462 -3.1831 -5.7363 -8.6675 -7.2716 4.1141 4.3678 4.3289 4.1542 4.0907 1.7285 -0.9643 -1.7912 -4.9181 -4.5913 -10.5192 -12.1315 + 6.1392 7.2498 8.1626 7.6850 6.4337 6.4811 6.2044 4.4007 3.1418 2.4995 0.9290 0.1185 -0.7668 1.7199 1.8949 2.0578 0.9328 -0.2110 -2.8546 -2.7195 -3.0066 -5.4613 -5.4714 -6.1331 -7.3092 -7.3810 -7.7191 -8.5523 -8.4648 -2.4870 -2.6525 -3.0263 -3.5473 -2.5564 -1.0930 0.1556 2.3664 3.5226 4.7554 4.5624 -7.5910 + 9.3110 9.9536 9.2138 10.0448 12.2215 15.3929 16.8943 15.4237 10.3171 4.7547 1.0177 -2.1707 -4.9877 -7.5219 -7.9593 -6.9345 -4.8837 -0.9854 3.2044 2.3045 -0.4463 -2.4338 -5.1476 -7.8900 -10.6310 -12.6634 -14.4919 -15.1208 -15.7863 5.6159 2.3509 0.9141 -0.3540 -1.9709 -1.3207 -0.8350 -0.2962 -0.1715 -0.2711 -3.6616 -23.6214 + 23.3043 22.9242 21.5293 19.5762 16.1241 10.4648 6.0084 4.4333 5.1608 6.7668 7.1607 5.7544 1.6077 -1.1787 -4.1636 -7.1966 -8.5322 -8.3418 -7.6815 -6.4004 -5.6492 -7.9013 -12.6029 -15.0772 -12.4774 -7.5784 -9.0924 -17.5597 -19.3815 3.7144 2.6198 1.4796 0.4420 -0.5744 -0.9102 -0.6355 -1.0076 -1.4038 -1.1279 -2.5963 -20.6144 + 11.2061 12.3118 12.8295 13.0523 13.1146 12.3645 9.9362 5.7743 1.7043 -1.8769 -4.8871 -7.3022 -10.0064 -12.5843 -14.2598 -13.6895 -11.6784 -9.5138 -6.1691 -0.5296 5.2373 5.2179 3.4380 3.0836 2.2733 -1.6391 -6.1888 -7.6374 -3.5815 20.8484 18.6436 8.9742 10.0179 3.8790 -7.4403 -11.3642 -12.3105 -11.5853 -8.9330 -10.7298 -20.8771 + 16.8529 17.4255 16.4102 15.5784 15.8674 17.4950 18.1947 15.9349 11.7120 7.2655 2.7249 -1.9527 -5.0648 -6.5508 -5.6015 -1.5230 3.8782 6.4704 3.5684 -1.2082 -2.4831 -2.6718 -6.1617 -14.2995 -21.6998 -24.5766 -25.7294 -25.4801 -24.3755 1.7078 0.3442 -0.1860 -0.3639 -0.6031 -0.7615 -0.5273 -0.1524 0.1610 0.3883 -0.0071 -25.9432 + 3.6247 4.1362 4.7304 5.4643 6.0686 6.7599 7.3700 7.9086 8.2045 8.2007 8.3050 7.9346 6.5060 5.2072 4.9010 4.7326 5.1044 4.6386 2.5145 -2.6750 -8.8497 -12.8927 -16.3752 -16.1979 -12.4272 -9.0385 -10.4849 -12.3511 -11.0196 16.8771 16.0363 12.4221 5.0921 -2.2734 -6.9441 -6.2634 -7.9111 -8.6040 -8.3171 -10.1145 -25.1507 + 20.4102 22.2333 21.4536 19.4223 16.2855 13.0015 8.6431 4.0577 0.1512 -3.0550 -6.8588 -9.9672 -11.6652 -13.5703 -15.4009 -14.9881 -14.1899 -13.0588 -12.1440 -10.7868 -7.9129 -2.9873 -1.1110 -1.0826 1.2318 4.7844 4.0367 1.8708 1.1966 1.4837 -0.6523 -2.7877 -2.3545 -1.2604 3.0293 4.4380 2.6853 3.1820 0.1563 -7.9197 -4.8422 + 24.4801 24.0824 22.4438 19.5938 14.6940 8.6790 3.7523 0.8565 -0.9075 -1.5140 -0.7636 1.4427 4.6338 4.7800 -0.4807 -5.3801 -6.6867 -7.1351 -7.2085 -6.8900 -7.0642 -5.4063 1.9414 1.1193 -8.0610 -17.4390 -17.6573 -19.7125 -20.1924 -1.8469 0.7851 2.9495 5.7461 5.1153 0.0343 1.2368 -1.4044 -2.4151 -4.0039 -6.1967 -17.9837 + 34.2380 33.5242 31.1201 27.6874 23.0098 16.3994 8.7955 1.8365 -2.8561 -4.7762 -4.6828 -3.5969 -2.7477 -3.7154 -5.8733 -6.7781 -7.1404 -9.1196 -11.1436 -11.7088 -11.2040 -10.1729 -10.8046 -9.7894 -7.4004 -10.6648 -13.8125 -14.2674 -14.3560 0.7706 1.2161 0.2010 -0.2054 -0.4100 -0.3813 -0.4077 -0.2383 -0.1037 0.0286 -0.4699 -14.1437 + 28.8775 29.5132 28.5106 26.2574 21.3404 14.0753 6.0344 -0.6419 -5.0399 -7.8669 -10.5378 -12.6348 -13.9599 -14.7351 -14.0154 -11.1568 -6.4165 -1.6004 -0.2199 -4.6568 -7.7877 -4.3270 -3.6815 -7.3611 -9.9812 -9.0522 -3.7854 -1.0622 -4.0886 4.5036 0.0436 -1.2620 0.1566 0.7061 0.9930 -0.1034 -0.8841 -0.1473 -0.6208 -3.3851 -11.7638 + 23.7811 23.4799 22.5985 21.1811 19.2950 16.9827 14.1530 11.0015 7.6758 4.3321 1.3770 -1.2257 -4.1809 -8.0560 -12.0663 -14.7575 -16.2562 -16.8262 -16.6031 -14.6213 -10.8590 -6.2555 -3.6846 -3.6450 -3.7342 -4.0353 -7.6132 -10.8660 -10.5716 9.6447 7.8023 3.9088 0.9709 -1.2963 -2.9548 -3.6717 -3.5325 -2.8548 -2.7867 -5.2300 -17.9213 + 7.3168 7.9817 8.1669 8.3682 8.5119 8.7999 8.5177 8.2240 7.9760 7.1004 4.9797 2.8440 -0.2787 -2.8393 -5.1812 -6.5010 -7.8099 -7.3824 -4.9246 -1.2066 1.0202 -1.2524 -5.5773 -6.6635 -6.2109 -4.9615 -7.0357 -10.7105 -11.2719 12.8705 11.8805 10.2523 9.3642 5.4904 -1.6627 -6.1562 -9.1055 -10.2004 -10.6557 -12.0775 -23.3035 + 29.5404 29.4681 28.4882 26.7591 23.9950 19.9029 14.9906 9.9884 4.9431 0.7201 -2.7182 -4.9295 -5.8329 -5.2835 -3.1411 -1.0337 -1.2994 -4.6551 -9.2940 -12.6166 -14.4507 -14.7304 -13.5533 -12.6574 -13.3765 -15.4995 -17.3894 -18.2530 -18.0815 0.4964 0.5507 1.1546 0.7370 -0.0255 -0.3498 -0.5226 -0.4656 -0.4711 -0.2868 -0.8174 -17.8110 + -1.0744 14.9003 33.1596 35.0523 13.0736 2.0052 -0.7661 8.7597 2.7166 -6.4950 -4.2610 3.7720 -4.3426 -8.7782 -3.2656 -7.4382 -8.4893 -4.5093 -7.9161 -3.7247 -7.0520 -3.6709 -6.2650 -4.4960 -4.0238 -4.7559 -5.1416 -7.8610 -9.1128 0.6813 1.7272 1.1217 0.4323 -0.0682 -0.2650 -0.1787 -0.4185 -0.8065 -0.2104 -2.0153 -10.3544 + 17.3596 17.5673 15.0858 11.4644 7.3814 4.0226 -0.1410 -3.3849 -5.6204 -6.9233 -7.1105 -7.9534 -8.3396 -9.0384 -9.3087 -9.0779 -7.7416 -7.4684 -7.3969 -6.6548 -5.2109 -4.5759 -2.5217 -0.3381 2.7650 6.1586 8.7075 9.5670 8.7272 5.4636 3.5914 3.5111 3.4034 3.2185 1.4996 -0.7001 -2.2097 -2.6342 -2.6685 -12.4751 1.7656 + 9.2805 8.3218 6.4144 5.5901 4.5122 4.1170 2.0243 0.4668 -1.3946 -1.9080 -1.6016 -2.3054 -3.2805 -3.6877 -3.6998 -3.1360 -2.3723 -2.0691 -2.5325 -3.5697 -3.7685 -3.6638 -2.4370 -2.4841 -1.3748 -1.3849 -0.1182 1.3637 4.6978 -2.5191 0.6452 3.8178 5.9716 6.9002 5.0344 1.4694 -0.9067 -2.4853 -4.2997 -13.6280 3.6107 + 14.3113 15.3825 16.0172 17.0841 17.9406 17.4527 13.8237 9.1622 4.4761 0.4333 -1.8491 -4.1973 -6.2352 -7.3255 -6.6956 -3.8665 0.4871 1.8452 -1.9049 -6.4158 -9.6692 -9.9954 -8.3868 -6.3274 -7.5276 -11.6979 -13.0950 -12.8586 -10.3679 12.6405 9.4300 6.8308 1.9954 -1.8154 -4.0500 -4.6445 -4.9400 -4.6161 -4.1410 -6.6897 -21.7106 + 15.9574 13.5685 10.9183 9.2647 7.9607 6.5007 4.5878 3.5591 3.2169 1.2933 -0.0510 -0.9224 -2.2752 -2.6282 -3.7623 -4.7934 -4.9449 -4.3779 -4.6931 -3.1458 -4.4724 -5.0318 -4.9908 -4.4859 -5.0580 -5.3554 -5.0038 -5.0901 -5.7451 -5.4116 -5.6692 -5.7576 -5.1885 -3.0995 -0.5277 2.1995 4.1437 5.6134 6.8760 6.8216 -1.5471 + 19.4303 18.5843 17.0128 17.0462 18.3032 19.0230 17.0309 14.9915 13.9671 13.7472 10.8472 5.3475 -0.7858 -5.0732 -8.3887 -9.9459 -10.5501 -11.5448 -12.0790 -11.0765 -11.3340 -10.8130 -12.3197 -14.8319 -14.5526 -12.6243 -11.2782 -13.0457 -15.0877 2.8732 1.8570 1.3694 -0.0267 -0.8287 -0.4903 -0.4684 -0.4454 -0.2649 -0.5119 -3.0635 -20.4302 + 12.4117 13.0466 13.2331 13.4850 13.9028 13.3369 10.6679 6.6169 2.3362 -0.7175 -3.1184 -5.0629 -7.1577 -9.3769 -10.5260 -9.6526 -5.9526 -0.9724 3.2956 3.3183 -0.2154 -2.7832 -2.1155 -2.0009 -5.4287 -9.8635 -12.0371 -11.7310 -6.9389 19.8935 17.5132 8.1204 5.9513 -0.9114 -7.8096 -9.0959 -8.7765 -8.7232 -7.8238 -8.3381 -22.9941 + 5.4465 6.1545 6.5960 7.3692 6.5453 5.6331 3.5394 2.3607 0.8659 0.0509 -0.6899 -0.6602 -0.8114 -0.9871 -2.0620 -2.1051 -2.1293 -2.4346 -2.8842 -2.7862 -2.7031 -2.7005 -2.3058 -2.4182 -2.9614 -3.3012 -3.6250 -3.4399 -3.5562 1.1375 0.9550 0.1967 0.2876 -0.3489 -0.1347 -0.2618 -0.2052 0.1031 0.1921 -1.9213 -5.8132 + 19.3219 18.6070 17.2268 15.7037 13.2112 9.2621 6.1735 5.2932 6.8689 8.1175 8.5297 6.2006 2.9639 0.2106 -1.5424 -3.0741 -3.6228 -1.7612 1.1881 0.4888 -4.7011 -12.4521 -18.8925 -20.1895 -15.2633 -7.7586 -8.4595 -18.6161 -23.0341 7.2675 6.3572 1.7187 0.3913 0.3928 -0.3109 -1.9821 -2.8777 -3.2372 -3.3101 -4.4095 -25.2010 + 8.4541 8.1779 7.1194 5.4725 2.9601 1.1998 -0.3538 -1.2461 -1.9054 -1.1532 -0.8697 -0.7216 -1.4868 -2.8361 -3.9114 -3.9948 -3.2868 -2.9321 -1.6346 0.6941 1.5767 0.1133 -0.6901 -1.9526 -1.7040 -0.6393 -1.7853 -2.0227 -0.6415 6.3775 3.5011 1.7742 0.8521 -0.8807 -2.4262 -1.9793 -2.7130 -1.0301 -0.2906 -3.1850 -7.4694 + 10.0438 9.5730 9.4079 10.5993 13.6404 15.4525 14.4990 10.5598 6.2936 3.7658 1.8182 2.4916 3.9516 5.8549 9.0644 9.6627 6.8173 4.3977 1.3490 -4.2076 -12.0535 -17.0808 -19.6338 -19.7015 -18.7275 -16.8855 -13.8529 -11.6701 -15.4293 6.2710 4.5162 0.1386 -2.0908 -1.7858 -2.0793 -1.8138 0.2844 0.7409 0.2032 -4.3846 -24.8049 + 25.0551 24.1141 20.9653 16.3108 10.8527 5.3678 0.7364 -2.8219 -5.0859 -5.7650 -6.1499 -6.6367 -7.4276 -7.5696 -8.0119 -6.4695 -2.7893 0.4057 2.0532 0.8610 -1.2343 -2.5971 -2.0921 -3.1259 -5.4032 -7.7358 -7.6535 -8.0640 -10.0890 1.7165 0.5619 0.1133 -0.0994 -0.1364 -0.2660 -0.4353 0.5041 0.4384 0.8615 -3.2587 -14.5713 + -0.2824 -1.2002 -1.1857 -0.7688 -0.8143 -0.7172 -1.5304 -2.1288 -3.0516 -3.6018 -4.8378 -6.1535 -7.7320 -6.8121 -6.1824 -3.6103 -1.4311 0.9978 1.1937 0.8415 2.4841 6.3803 8.8835 7.0925 6.7752 9.2623 5.7944 2.8315 -0.4967 18.7297 14.2388 10.8799 4.2826 -6.9342 -8.6376 -8.3976 -6.7575 -6.0459 -5.4581 -5.9001 -18.8293 + 10.1128 8.8893 7.3473 6.5214 7.2930 10.3397 14.0197 15.8841 13.7146 8.7127 4.4971 1.7567 0.2355 0.5650 2.5360 6.4325 6.1884 1.5759 -3.2537 -5.8565 -5.4444 -3.8630 -6.5876 -12.9364 -16.8492 -18.9964 -18.8056 -16.0076 -18.0217 3.9553 2.3698 1.9291 -0.0877 -0.9652 -0.9019 -0.4445 -0.6487 -0.2555 -1.3366 -3.6140 -25.1871 + 12.2726 11.2280 9.4632 7.3787 5.2189 3.6600 2.1581 1.8973 1.7208 1.1692 2.6675 2.1480 0.1934 -0.9062 -0.5766 -0.7741 -0.2722 -1.4842 -1.6982 -2.2141 -2.7162 -2.8899 -3.2527 -3.3476 -3.8185 -5.7582 -8.5254 -9.5927 -13.3491 2.9336 -0.0614 -5.1792 -7.8262 -5.8818 -2.4979 0.2810 2.5842 4.2687 5.4567 5.9224 -16.9053 + 37.2172 34.3913 31.2113 27.7111 23.6697 19.0839 14.6521 10.8663 7.8437 5.4886 3.9602 2.5869 0.5600 -1.9033 -4.6862 -7.3190 -10.0710 -12.7038 -14.7680 -15.8511 -16.1191 -16.1652 -16.2159 -15.9004 -15.8958 -16.8057 -17.9478 -18.4940 -18.3957 0.4419 0.2835 -0.0357 -0.2713 -0.3987 -0.3334 -0.2999 -0.1625 0.2757 0.6740 -0.1736 -16.8775 + 11.3753 13.7268 15.9469 19.2400 21.6371 21.2732 16.6665 10.0971 4.1118 -0.3896 -3.6531 -5.5614 -8.0681 -10.2817 -11.6723 -11.5104 -10.0734 -10.1816 -8.5685 -7.1045 -6.4138 -4.8696 -3.9548 -5.7824 -5.0034 -4.9254 -6.3935 -5.3682 -4.2986 12.8596 6.0788 2.4099 2.8908 0.0595 -2.3723 -2.9619 -4.0883 -4.5273 -4.0164 -6.3324 -17.4382 + 26.4179 26.6038 25.6315 22.7118 17.4654 11.2374 4.5630 -0.6721 -3.6490 -5.1965 -6.8885 -8.5149 -9.9685 -10.5303 -10.6988 -9.8426 -8.6196 -5.7793 -0.9658 3.2322 2.5498 0.5196 -0.4196 -3.4101 -7.4205 -10.7757 -11.9107 -12.1132 -13.5565 2.4448 1.0270 0.2616 -0.2763 -0.6725 -0.5323 -0.4687 -0.3345 0.1168 0.1296 -1.6954 -17.0871 + 18.4471 16.7466 13.9277 10.8916 8.7857 7.1932 5.5568 4.1778 3.8018 3.6509 4.1995 4.5197 3.7143 2.0835 1.0146 0.3919 -0.3931 -1.7518 -3.7102 -5.6106 -7.0424 -8.2355 -8.7436 -9.9803 -10.8971 -12.1221 -12.4526 -14.0451 -14.1182 1.5911 1.3311 0.9816 0.2592 0.5671 -0.1500 -0.6917 -0.0710 -0.0271 0.0589 -3.8492 -16.0146 + 5.9232 5.3337 3.8014 2.9697 3.4359 4.2543 3.4648 1.7717 0.1194 -0.0269 0.7474 1.7656 2.2681 3.3777 5.5350 7.6925 7.1170 5.0594 1.6134 -2.8840 -4.6636 -5.6498 -6.7260 -7.6581 -7.7482 -7.0077 -8.1003 -8.2149 -7.5709 2.7271 3.2452 3.0964 1.8085 1.2978 0.1047 -1.3807 -1.5844 -0.8243 -0.5104 -7.9799 -12.0827 + 12.4719 12.1361 10.1546 7.9843 6.3039 5.8891 4.6571 2.6181 -0.1657 -1.9369 -2.8607 -3.3105 -4.8578 -7.0042 -7.1916 -5.9866 -4.1997 -1.7831 1.5238 4.3316 3.2165 1.1019 0.2627 -0.7887 -2.3974 -4.1659 -7.7383 -8.8914 -9.3732 3.3631 2.1730 1.7422 1.8227 1.4558 0.1916 -0.0971 -0.1883 -1.5408 -1.1423 -7.7797 -11.8474 + 11.3451 10.9000 8.9585 6.1028 3.1858 -1.1621 -5.3836 -9.5575 -11.5639 -12.6129 -13.2817 -13.1921 -12.6233 -11.4537 -9.9063 -7.2485 -2.9323 -0.1679 2.3451 3.4644 4.1413 6.5832 8.0312 9.6000 9.3866 8.3390 7.0332 6.2115 5.4582 2.4819 2.4952 2.5332 1.3146 1.2840 1.1744 1.4075 1.6533 -0.7910 -1.1435 -12.4097 1.0916 + 23.6029 24.2878 23.1930 21.6752 20.1647 17.8825 13.5147 9.0959 4.9067 0.9398 -2.2819 -4.7976 -6.5405 -7.8935 -8.5957 -8.1319 -5.7029 -2.9010 -1.4003 -3.8107 -7.7146 -10.9603 -11.9185 -11.3097 -10.0262 -10.8911 -13.0763 -15.2199 -16.0905 -4.3614 -2.5556 -2.1777 -1.8997 -0.5988 1.0869 2.5785 3.4868 4.0967 3.3192 -2.9749 -12.6358 + 4.1481 24.8058 32.0050 24.1070 7.9048 5.1844 9.4865 6.9930 -4.1867 -5.3105 -0.1042 -5.3429 -7.9480 -8.8340 -11.8488 -10.9382 -11.6153 -10.8429 -8.8763 -8.2063 -5.9086 -4.6780 -0.7362 0.9339 1.6189 1.2420 -2.1650 -5.4458 -5.4417 3.8026 4.9367 2.9396 1.2003 0.8096 -0.4055 -1.2653 -1.7631 -2.9130 -1.4945 -5.8474 -8.5756 + 23.7954 23.1921 21.7016 20.0766 17.1113 13.7019 10.3999 7.0724 4.4505 3.2062 3.6711 5.1040 6.2303 4.8847 -0.1659 -4.8929 -7.3427 -9.3139 -10.9450 -11.4728 -10.0337 -7.5622 -3.5203 -5.8211 -14.2213 -19.1068 -19.3958 -20.2365 -20.5672 -0.5258 0.0632 2.1808 3.9092 2.4964 -0.3407 -0.5190 -0.8656 -0.9771 -1.7973 -3.6241 -20.0182 + -3.7360 -3.6185 -3.3879 -2.0035 -2.0453 -3.0452 -2.1024 -2.2759 -2.6516 -4.3569 -3.6456 -2.3824 -3.7115 -5.0829 -6.2136 -7.0765 -6.8802 -6.4042 -2.6943 1.3032 2.8085 -2.4198 6.8476 8.5220 10.8666 10.9764 11.8694 11.6880 10.8525 -10.1854 -14.3979 -14.1885 -6.1104 -2.3069 3.0598 3.2787 7.7402 9.9334 10.5862 12.5907 18.9431 + 13.3492 12.8348 12.1001 10.6097 8.9141 7.8597 5.9391 3.8673 2.6411 2.3479 2.7602 2.8027 2.2779 0.4287 -1.3226 -2.0315 -2.1676 -1.5551 -1.2222 -2.1197 -4.0818 -6.1594 -8.1874 -9.3177 -9.4499 -9.7874 -10.1789 -10.6801 -10.4712 -3.7681 -4.8313 -5.1537 -4.2661 -3.2035 -1.4351 1.4217 3.2157 5.2602 6.9893 5.7708 -7.9426 + 23.1558 23.5472 22.1677 18.7915 13.0187 6.0783 -0.4803 -4.5728 -6.1861 -7.0011 -7.3578 -8.0890 -10.0377 -12.2340 -12.8288 -11.4502 -9.5173 -6.4728 -2.1175 2.0048 1.3570 -2.9595 -2.6436 1.5180 3.0406 -2.5769 -4.8065 -2.5134 -0.8343 3.1119 3.3528 5.9276 3.6737 2.5908 1.6925 -3.4674 -1.5813 -3.2207 -2.1812 -9.8987 -8.8538 + 26.4920 27.5278 23.5895 18.4003 14.4396 11.3628 6.6147 2.4341 -0.2444 -2.4075 -4.2073 -6.4485 -7.8162 -9.2259 -9.5571 -9.3064 -9.0910 -7.0174 -7.1701 -7.0279 -7.6510 -7.5329 -8.2698 -7.2504 -4.4537 -4.4137 -4.3225 -4.9571 -2.4902 -7.3866 -6.0243 -3.8745 0.0041 2.7020 4.9257 5.6046 5.2905 3.4738 1.6970 -6.4124 2.1053 + 20.0311 32.4089 21.4065 3.8740 5.8630 17.0357 3.7543 2.9904 15.6577 4.2113 -0.9665 3.2682 -4.9242 0.9109 -5.5297 -0.9790 -5.0003 -0.7131 -5.5269 -8.0296 -9.9403 -10.8809 -10.2649 -9.9965 -9.6956 -10.6759 -12.5982 -13.0794 -12.6109 0.8915 0.0604 -0.2305 -0.0021 -0.6053 -0.3414 -0.0731 0.4824 0.7549 -0.1062 -0.8306 -13.4365 + 16.7766 17.5169 16.4982 14.0891 10.0932 5.3461 0.6341 -3.6859 -5.9242 -6.3128 -5.9350 -5.7548 -6.0307 -6.0498 -6.4996 -6.5626 -4.8816 -3.2502 -3.2922 -4.2819 -4.8479 -5.5791 -4.7813 -3.1384 -3.4900 -2.8954 0.2902 4.4573 7.4915 -5.5534 -4.1269 -1.5355 0.4168 0.9124 3.0599 2.1241 2.4262 2.5000 4.5034 -4.7272 8.0549 + 14.2987 14.8926 15.4168 16.0974 16.7877 16.0424 12.9710 8.0251 2.9090 -0.5642 -2.9640 -4.5656 -6.3342 -5.7781 -3.4597 0.3272 2.7738 -0.3574 -4.8087 -8.1398 -9.6152 -7.9303 -6.2270 -7.0986 -10.3018 -13.1453 -11.2961 -9.1627 -8.7927 1.0994 1.8123 2.8974 2.9050 4.6509 3.4505 -0.6010 -1.4758 -2.7795 -2.4745 -9.4847 -15.4782 + 19.5896 21.6796 21.9059 19.1821 14.0268 8.5044 2.2676 -4.7266 -10.6450 -13.0460 -14.0860 -14.5335 -14.9498 -14.7870 -14.0697 -11.4549 -8.2147 -4.0260 0.3628 4.9113 3.4988 0.5780 1.9943 2.9810 0.8573 -1.3207 -0.0740 2.1207 1.4740 10.3387 1.2319 -0.4911 -1.8207 -1.0700 -0.8286 0.3764 0.2040 -0.8290 -1.6698 -5.4418 -14.7994 + 7.6904 8.5944 9.5072 9.8820 10.2276 10.5222 10.3373 9.3607 7.6459 4.8852 2.1707 -0.1575 -1.8433 -2.7877 -2.2526 -0.5664 2.3824 4.3345 3.5440 -0.6514 -5.2439 -9.2918 -11.7988 -14.1092 -12.7385 -9.1451 -9.6551 -10.7736 -10.0695 11.9243 11.2262 10.3898 9.8282 8.0787 3.3521 -3.2649 -10.5053 -13.2404 -13.3007 -14.4881 -21.2847 + 30.3070 29.5477 26.4796 21.7752 16.6251 11.7301 7.3299 3.8872 0.7290 -1.2037 -2.4737 -3.5896 -4.8044 -5.4589 -6.3339 -6.5407 -6.0748 -6.4957 -7.6726 -8.7065 -8.7749 -8.8999 -9.3481 -9.1891 -9.9612 -10.0486 -10.5500 -11.2845 -11.0000 -6.1498 -6.3059 -5.5965 -4.5595 -2.8356 0.0899 2.7110 4.5977 5.7639 7.0861 5.1987 -6.4033 + 12.2542 12.1227 12.1295 13.7252 16.2506 16.1281 10.9394 4.8988 -0.4731 -3.6819 -5.4021 -7.4944 -8.2715 -8.0576 -6.1477 -3.0306 1.9117 4.0560 2.1482 0.8098 0.1207 0.0058 -2.3034 -4.0466 -3.9220 -6.4147 -11.2118 -17.1187 -19.9247 6.0099 3.6952 1.2907 -0.5044 -0.8291 -1.0627 -1.1957 -1.1416 -1.4267 -1.5418 -3.2939 -24.4860 + 9.7234 8.7897 6.5360 5.5091 6.6941 8.8748 9.0238 7.6482 4.3129 1.4757 -0.7289 -2.4072 -4.4322 -5.3461 -3.7806 -1.1393 2.9797 3.5166 -1.5034 -4.0711 -4.3945 -4.4639 -5.1951 -6.0761 -6.0336 -6.9960 -6.5160 -4.9520 -7.0480 14.6458 13.1436 9.1440 2.7564 -0.8129 -3.8913 -6.6500 -6.1267 -6.0986 -6.7696 -9.3407 -21.2384 + 8.5519 7.5224 5.9151 4.8177 3.5030 2.2565 1.1622 0.1988 -0.5493 -0.3850 -0.1928 -0.4114 -0.8801 -1.0153 -1.0764 -1.4171 -1.4905 -1.3971 -1.0636 -1.1738 -0.9725 -1.8880 -2.3866 -2.7467 -2.5988 -2.5326 -3.1114 -3.2783 -3.3604 -3.8082 -3.8849 -4.0621 -3.5801 -2.8055 -1.5136 0.9076 2.8350 4.3455 5.8838 5.6825 -0.4474 + 7.7224 9.4298 7.9025 6.4102 5.0524 7.1733 6.8444 5.1985 1.7514 0.1644 0.4222 1.0885 -0.3101 -2.4745 -2.9872 -2.3617 -3.5889 -3.7306 -1.5428 -0.5556 -0.6425 -2.7366 -1.5405 -2.2119 -3.2504 -3.1003 -4.4891 -10.0519 -13.5853 -15.9446 -3.2508 0.2918 -0.9236 3.5700 5.1357 5.1789 6.0048 3.6122 3.0229 -6.6974 0.4660 + 12.4572 13.5760 13.8205 13.8979 14.7964 17.0228 18.4159 17.4577 14.0275 10.4467 7.5633 5.8220 5.5014 6.0819 6.4280 5.7453 2.9483 0.4368 -2.0706 -3.5909 -6.3177 -11.4245 -17.9894 -23.7008 -25.5017 -25.0724 -24.5956 -23.3443 -22.8376 1.8005 0.4050 -0.0309 -0.4072 -0.7903 -0.7639 -0.6330 0.2496 0.9862 0.2958 -1.1118 -25.7677 + 4.7942 4.1637 3.1217 3.4886 5.7426 8.4586 9.4051 8.4408 4.0573 -0.0847 -2.6488 -4.2622 -6.8882 -7.9882 -8.0785 -6.5745 -3.6736 0.0836 3.7506 4.2950 1.4430 1.7647 2.5945 0.5096 -1.4030 -2.4095 -4.2409 -7.3362 -10.5254 14.3716 9.9001 5.5613 -0.4343 -4.0106 -4.4911 -4.7396 -4.3992 -3.5933 -3.3021 -4.8629 -20.9215 + 21.6217 21.5816 19.9361 17.4078 14.6925 11.4780 7.7360 4.5567 2.3261 1.3757 0.8699 1.0465 1.1010 -0.3579 -2.1883 -4.1422 -5.5220 -7.4591 -9.7124 -11.0673 -12.8828 -14.8063 -14.5786 -12.2038 -9.6561 -7.6717 -6.6862 -4.4940 -2.3008 -2.8294 -2.2589 -0.7299 1.8580 3.4539 3.4053 2.7591 1.9997 0.5308 0.5471 -8.7356 -3.9438 + 1.0482 0.8820 0.3120 -0.0147 0.1548 1.1642 2.5065 4.2829 6.8793 9.8376 11.4462 10.6004 8.7525 7.4364 7.3679 8.2254 7.9411 4.8316 -0.5361 -4.6026 -6.7708 -7.8326 -7.7624 -5.3939 -6.4851 -9.7433 -13.7435 -16.3579 -14.4263 10.9932 7.6190 5.9532 4.7231 0.1759 -2.5109 -4.5002 -5.8815 -4.2941 -4.7897 -7.4879 -24.0798 + 8.4638 7.6638 6.7405 6.7849 9.6108 11.6513 11.2989 8.3544 3.0440 -0.8467 -3.9303 -4.9339 -3.7358 -4.1317 -2.0585 2.7514 7.6579 7.9793 2.3491 -1.2307 -6.1104 -5.2397 -3.7933 -5.5972 -9.8841 -12.1146 -11.4629 -8.7974 -10.4828 8.1529 4.6235 5.0235 -3.9150 -7.5503 -5.3361 -1.2531 6.4683 2.2949 -0.0550 -8.4536 -22.5498 + 9.8543 8.7085 6.2122 3.2566 2.0932 1.8184 0.6210 -1.4796 -2.3312 -2.6373 -4.0537 -4.6289 -4.6135 -3.7432 -2.1216 0.8603 3.6326 5.0735 3.4051 1.8301 1.3556 -1.1657 -2.6873 -3.2580 -2.3407 -3.5712 -3.7082 -3.8659 -2.5155 -3.0106 -3.6582 1.1257 3.5876 5.1138 3.8620 1.9732 0.5329 1.0253 -0.8077 -9.7439 -1.3313 + -2.9689 -3.6925 -3.2882 -2.1408 -0.3207 1.4181 2.0372 0.1628 -1.5615 -1.1744 -1.1748 -2.3007 -3.8174 -4.8189 -4.0221 -1.3971 3.2927 7.6888 9.8326 7.1859 3.6459 2.2387 1.1579 1.6876 0.0249 -1.1344 -3.2237 -2.0378 -1.2991 8.2053 7.6257 7.4526 5.2692 0.6619 -2.5875 -5.5343 -3.5316 -3.8077 -4.5073 -9.2463 -10.5134 + 9.7903 6.5524 4.2187 2.8629 1.5301 2.6090 2.8671 -0.4058 0.1443 2.1025 2.2641 2.2540 2.8227 4.2305 2.6246 0.1011 -0.5037 -2.5281 5.9816 8.8018 3.5902 -2.1055 -8.2336 -7.5542 -8.3988 -6.7700 -12.1221 -12.6274 -4.0986 15.9214 10.1934 4.0555 -0.7395 -4.4850 -5.0408 1.8975 -3.7215 -6.1218 -5.7613 -6.1980 -17.6420 + 29.2898 29.1270 27.9887 26.0350 22.7880 18.9325 14.8741 10.7353 6.3361 1.5435 -3.4721 -8.0918 -11.5471 -14.2024 -15.5430 -16.5237 -17.5387 -18.0503 -18.3862 -18.0321 -17.2039 -14.4258 -7.6289 -2.1492 -0.8256 -0.4858 0.7007 -0.7217 -3.5225 7.7486 6.5879 3.6481 0.1102 -1.4486 -1.4917 -1.7642 -2.4587 -2.7189 -2.3171 -5.8956 -12.2398 + 4.4923 5.9961 3.5313 -0.1456 -2.9561 -3.9972 -5.5178 -6.5495 -8.2904 -9.4007 -9.5368 -9.2154 -10.6132 -12.2389 -12.1450 -11.3212 -9.2653 -6.1867 -0.5047 2.8376 -1.5645 1.0645 6.8296 12.9030 17.1169 16.2097 16.8799 17.2979 14.2904 3.6672 1.4385 0.6939 -0.7824 -1.0548 0.7585 1.5905 1.4809 1.2351 0.7042 -9.7316 9.0007 + 17.1014 20.3617 22.1941 23.6186 23.8203 21.4980 16.0993 10.2193 4.4688 0.3152 -2.6232 -4.4565 -5.7629 -7.4399 -7.9702 -8.7398 -8.6156 -7.5758 -5.6113 -3.8507 -4.7710 -7.9311 -11.5008 -12.9375 -11.7921 -9.1891 -8.8722 -13.4431 -16.6139 2.6455 3.2595 3.6340 3.0753 1.5772 -0.5994 -1.7486 -1.8960 -2.7589 -2.4890 -4.6996 -18.2534 + -6.7950 -4.3945 -2.1814 -0.0391 1.0243 2.1577 2.4659 2.7954 2.9978 2.3847 1.7726 1.1096 -0.1514 -3.1834 -4.1688 -4.9229 -4.7410 -4.3919 -0.8572 1.4319 1.2097 1.1996 -0.6138 0.0932 1.9431 3.2864 3.0149 3.0300 4.5238 -4.4471 -6.9731 -3.2184 -0.9733 0.9643 1.9409 2.7291 5.1726 4.8981 5.2725 -5.3657 7.6481 \ No newline at end of file diff --git a/src/codebook/dlsp1.txt b/src/codebook/dlsp1.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp1.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp10.txt b/src/codebook/dlsp10.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp10.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp2.txt b/src/codebook/dlsp2.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp2.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp3.txt b/src/codebook/dlsp3.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp3.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp4.txt b/src/codebook/dlsp4.txt new file mode 100644 index 0000000..4a5e990 --- /dev/null +++ b/src/codebook/dlsp4.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +250 +300 +350 +400 +450 +500 +550 +600 +650 +700 +750 +800 +850 +900 +950 +1000 +1050 +1100 +1150 +1200 +1250 +1300 +1350 +1400 + + diff --git a/src/codebook/dlsp5.txt b/src/codebook/dlsp5.txt new file mode 100644 index 0000000..4a5e990 --- /dev/null +++ b/src/codebook/dlsp5.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +250 +300 +350 +400 +450 +500 +550 +600 +650 +700 +750 +800 +850 +900 +950 +1000 +1050 +1100 +1150 +1200 +1250 +1300 +1350 +1400 + + diff --git a/src/codebook/dlsp6.txt b/src/codebook/dlsp6.txt new file mode 100644 index 0000000..4a5e990 --- /dev/null +++ b/src/codebook/dlsp6.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +250 +300 +350 +400 +450 +500 +550 +600 +650 +700 +750 +800 +850 +900 +950 +1000 +1050 +1100 +1150 +1200 +1250 +1300 +1350 +1400 + + diff --git a/src/codebook/dlsp7.txt b/src/codebook/dlsp7.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp7.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp8.txt b/src/codebook/dlsp8.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp8.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/dlsp9.txt b/src/codebook/dlsp9.txt new file mode 100644 index 0000000..058d048 --- /dev/null +++ b/src/codebook/dlsp9.txt @@ -0,0 +1,35 @@ +1 32 +25 +50 +75 +100 +125 +150 +175 +200 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 +725 +750 +775 +800 + + diff --git a/src/codebook/gecb.txt b/src/codebook/gecb.txt new file mode 100644 index 0000000..bd3bb08 --- /dev/null +++ b/src/codebook/gecb.txt @@ -0,0 +1,257 @@ +2 256 +2.709998 12.018395 +0.046750 -2.738813 +0.120993 8.388947 +-1.580275 -0.892307 +1.193065 -1.915609 +0.187101 -3.276788 +0.332251 -7.664550 +-1.479436 31.246122 +1.527612 27.709463 +-0.524379 5.250122 +0.553330 7.438797 +-0.843451 -1.952987 +2.263885 8.610286 +0.143143 2.365493 +0.616506 1.284268 +-1.711327 22.096672 +1.008128 17.396519 +-0.106718 1.418905 +-0.136246 14.273605 +-1.709087 -20.531881 +1.657866 -3.391068 +0.138049 -4.957845 +0.536729 -1.943748 +0.196307 36.851948 +1.272479 22.556494 +-0.670219 -1.906045 +0.382092 6.401132 +-0.756911 -4.901017 +1.829313 4.613800 +0.318794 0.736830 +0.612815 -2.075045 +-0.410151 24.787077 +1.776016 13.190924 +0.106457 -0.104492 +0.192206 10.183844 +-1.824423 -7.715654 +0.931346 4.348355 +0.308813 -4.086001 +0.397143 -11.808859 +-0.048715 41.227314 +0.877342 35.850311 +-0.759794 0.476634 +0.978593 7.674673 +-1.195056 3.038826 +2.639894 -3.411063 +0.191127 3.603507 +0.402932 1.084298 +-2.152022 18.107616 +1.546802 8.322713 +-0.143089 -4.075922 +-0.150142 5.866741 +-1.408444 -3.250696 +1.566148 -10.413164 +0.178171 -10.226697 +0.362164 -0.028556 +-0.070125 24.390722 +0.594752 17.482765 +-0.286980 -6.904069 +0.464818 10.205451 +-1.006841 -14.357209 +2.329569 -3.691613 +0.335745 2.407139 +1.019658 -3.155647 +-1.259455 7.991899 +2.383695 19.680567 +-0.094947 -2.413742 +0.209330 6.664768 +-2.221034 1.379860 +1.292387 2.046333 +0.243626 -0.890741 +0.428773 -7.193658 +-1.113744 41.341354 +2.609799 31.140514 +-0.446468 2.534188 +0.490104 4.627575 +-1.117226 -3.241744 +1.791562 8.414926 +0.156012 0.183336 +0.532447 3.154545 +-0.764484 18.513958 +0.952395 11.771298 +-0.332567 0.346987 +0.202165 14.716752 +-2.129240 -15.558954 +1.353583 -1.926790 +-0.010963 -16.336386 +0.399053 -2.790569 +0.750657 31.148336 +0.655743 24.481859 +-0.453210 -0.735879 +0.286900 6.546703 +-0.715673 -12.357815 +1.548488 3.872171 +0.271874 0.802339 +0.502073 -4.854850 +-0.497037 17.761904 +1.191161 13.954446 +0.015630 1.331566 +0.341867 8.935369 +-2.316009 -5.395058 +0.758610 1.964505 +0.241320 -3.237686 +0.267151 -11.234388 +-0.273126 32.624771 +1.753523 40.431995 +-0.784011 3.045757 +0.705987 5.661178 +-1.386400 1.353557 +2.376458 1.674851 +0.242973 4.732178 +0.491227 0.354061 +-1.606762 8.658955 +1.167111 5.987103 +-0.137601 -12.041750 +-0.251375 10.397204 +-1.431514 -8.904108 +0.988280 -13.208963 +0.261484 -6.354970 +0.395932 -0.702529 +0.283704 26.899563 +0.420959 15.441778 +-0.355804 -13.727784 +0.527372 12.398515 +-1.169559 -15.998457 +1.906688 -5.816055 +0.354492 3.851572 +0.825760 -4.162642 +-0.490190 13.057229 +2.255773 13.526449 +-0.004956 -3.237127 +0.026709 7.866448 +-1.810372 -0.451183 +1.083827 -0.183620 +0.135836 -2.266582 +0.375812 -5.512248 +-1.966443 38.682854 +1.977988 24.565481 +-0.704656 6.358810 +0.480786 7.051749 +-0.976417 -2.422727 +2.502148 6.759346 +0.083588 3.258795 +0.543629 0.910013 +-1.231959 23.091507 +0.785492 14.807000 +-0.213554 1.688002 +0.004748 18.171820 +-1.547192 -16.116837 +1.501045 -3.281141 +0.080133 -4.634724 +0.476592 -2.180929 +0.442470 40.303989 +1.072766 27.592009 +-0.594738 -4.166807 +0.422480 7.616091 +-0.927521 -7.274406 +1.991623 1.296359 +0.291307 2.398781 +0.721081 -1.950625 +-0.804256 24.929474 +1.648388 19.119692 +0.060852 -0.590639 +0.266085 9.103249 +-1.957399 -2.884607 +1.116929 2.672397 +0.354580 -2.748541 +0.330733 -14.156131 +-0.527851 39.575626 +0.991152 43.194984 +-0.589619 1.269186 +0.787401 8.730713 +-1.013800 1.025075 +2.825403 1.895381 +0.240890 2.745566 +0.427195 2.544456 +-1.953109 12.243958 +1.448616 12.060747 +-0.210492 -3.379058 +-0.056713 10.204020 +-1.652370 -5.102737 +1.294748 -12.270802 +0.111608 -8.675921 +0.326634 -1.167627 +0.021781 31.125782 +0.455335 21.468430 +-0.375440 -3.371207 +0.393620 11.301987 +-0.851456 -19.414892 +2.107030 -2.228865 +0.373233 1.924056 +0.884438 -1.720581 +-0.975127 9.840128 +2.003303 17.395407 +-0.036915 -1.111372 +0.148456 5.399970 +-1.914412 4.773819 +1.447907 0.537122 +0.194979 -1.038179 +0.495771 -9.955025 +-1.058987 32.947052 +2.011222 32.454418 +-0.309650 4.719106 +0.436082 4.635524 +-1.237105 -1.254284 +2.022740 9.428345 +0.190342 1.460767 +0.479017 2.484788 +-1.078483 16.221748 +1.207642 9.654212 +-0.258087 -1.672358 +0.071852 13.415978 +-1.877228 -16.072031 +1.289568 -4.871185 +0.067713 -13.442700 +0.435551 -4.165503 +0.466140 30.589535 +0.904895 21.597990 +-0.518369 -2.532048 +0.337363 5.637264 +-0.554975 -17.400511 +1.691879 1.145742 +0.227934 0.889297 +0.587303 -5.729732 +-0.262133 18.666620 +1.395048 17.002878 +-0.019090 4.308379 +0.304235 12.669943 +-2.074059 -6.460845 +0.920546 1.212957 +0.284927 -1.785466 +0.209724 -16.023964 +-0.636067 31.576820 +1.349887 34.677502 +-0.971625 5.300859 +0.590249 4.449709 +-1.567867 3.602385 +2.145497 4.516663 +0.296022 4.120170 +0.445299 0.868772 +-1.441931 14.128431 +1.355752 6.007401 +-0.012814 -7.496573 +-0.430000 8.500124 +-1.204693 -7.113256 +1.101018 -6.836818 +0.196463 -6.234002 +0.436747 -1.129788 +0.141052 22.854876 +0.290821 18.811443 +-0.529536 -7.732510 +0.634280 10.789847 +-1.334721 -20.325773 +1.815645 -1.903316 +0.394778 3.797577 +0.732682 -8.183819 +-0.741244 11.768337 diff --git a/src/codebook/lsp1.txt b/src/codebook/lsp1.txt new file mode 100644 index 0000000..d126be7 --- /dev/null +++ b/src/codebook/lsp1.txt @@ -0,0 +1,17 @@ +1 16 +225 +250 +275 +300 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 diff --git a/src/codebook/lsp10.txt b/src/codebook/lsp10.txt new file mode 100644 index 0000000..39aab7c --- /dev/null +++ b/src/codebook/lsp10.txt @@ -0,0 +1,6 @@ +1 4 +2900 +3100 +3300 +3500 + diff --git a/src/codebook/lsp2.txt b/src/codebook/lsp2.txt new file mode 100644 index 0000000..597f149 --- /dev/null +++ b/src/codebook/lsp2.txt @@ -0,0 +1,17 @@ +1 16 +325 +350 +375 +400 +425 +450 +475 +500 +525 +550 +575 +600 +625 +650 +675 +700 diff --git a/src/codebook/lsp3.txt b/src/codebook/lsp3.txt new file mode 100644 index 0000000..36a64b1 --- /dev/null +++ b/src/codebook/lsp3.txt @@ -0,0 +1,17 @@ +1 16 +500 +550 +600 +650 +700 +750 +800 +850 +900 +950 +1000 +1050 +1100 +1150 +1200 +1250 diff --git a/src/codebook/lsp4.txt b/src/codebook/lsp4.txt new file mode 100644 index 0000000..53a90bd --- /dev/null +++ b/src/codebook/lsp4.txt @@ -0,0 +1,17 @@ +1 16 +700 +800 +900 +1000 +1100 +1200 +1300 +1400 +1500 +1600 +1700 +1800 +1900 +2000 +2100 +2200 diff --git a/src/codebook/lsp5.txt b/src/codebook/lsp5.txt new file mode 100644 index 0000000..94739b5 --- /dev/null +++ b/src/codebook/lsp5.txt @@ -0,0 +1,19 @@ +1 16 + 950 +1050 +1150 +1250 +1350 +1450 +1550 +1650 +1750 +1850 +1950 +2050 +2150 +2250 +2350 +2450 + + diff --git a/src/codebook/lsp6.txt b/src/codebook/lsp6.txt new file mode 100644 index 0000000..992ea25 --- /dev/null +++ b/src/codebook/lsp6.txt @@ -0,0 +1,19 @@ +1 16 +1100 +1200 +1300 +1400 +1500 +1600 +1700 +1800 +1900 +2000 +2100 +2200 +2300 +2400 +2500 +2600 + + diff --git a/src/codebook/lsp7.txt b/src/codebook/lsp7.txt new file mode 100644 index 0000000..839cbfd --- /dev/null +++ b/src/codebook/lsp7.txt @@ -0,0 +1,19 @@ +1 16 +1500 +1600 +1700 +1800 +1900 +2000 +2100 +2200 +2300 +2400 +2500 +2600 +2700 +2800 +2900 +3000 + + diff --git a/src/codebook/lsp8.txt b/src/codebook/lsp8.txt new file mode 100644 index 0000000..d9880c9 --- /dev/null +++ b/src/codebook/lsp8.txt @@ -0,0 +1,11 @@ +1 8 +2300 +2400 +2500 +2600 +2700 +2800 +2900 +3000 + + diff --git a/src/codebook/lsp8910.txt b/src/codebook/lsp8910.txt new file mode 100644 index 0000000..759136b --- /dev/null +++ b/src/codebook/lsp8910.txt @@ -0,0 +1,65 @@ +3 64 +2.048073 2.534502 2.645915 +2.019670 2.269744 2.605462 +1.961101 2.329646 2.562857 +1.968573 2.532712 2.616918 +2.183480 2.514381 2.629582 +2.259379 2.516615 2.620410 +2.172791 2.462460 2.567064 +2.097666 2.303933 2.421685 +2.052990 2.353242 2.546992 +2.043642 2.232362 2.499262 +2.106151 2.393131 2.488401 +2.099167 2.437862 2.558655 +2.013877 2.422875 2.530071 +2.033848 2.483776 2.584598 +2.114474 2.516856 2.602372 +2.229214 2.584056 2.678855 +2.131151 2.584299 2.674845 +1.472721 2.477091 2.630241 +2.010907 2.598415 2.682989 +2.353653 2.524066 2.619773 +2.419897 2.623938 2.699605 +2.319080 2.602148 2.689044 +1.860342 2.503881 2.616576 +1.910517 2.386693 2.610126 +1.748689 2.371809 2.496542 +1.618495 2.403425 2.554956 +1.844073 2.437026 2.533443 +1.924810 2.388543 2.502698 +1.937227 2.258363 2.501697 +1.687554 2.209123 2.545239 +1.851950 2.278628 2.565632 +1.868154 2.330150 2.444883 +1.874180 2.213118 2.351940 +1.757311 2.030626 2.433836 +1.650306 2.152371 2.243421 +1.612794 1.884686 2.339313 +1.745431 2.278895 2.389449 +1.590923 2.304155 2.408510 +1.475982 2.275548 2.509897 +1.508695 2.045463 2.455520 +1.872054 2.061777 2.246202 +1.983947 2.159155 2.445535 +1.745180 2.483765 2.593698 +1.900116 2.079600 2.407479 +1.841672 2.167042 2.486827 +1.932912 2.148464 2.569850 +2.134174 2.363673 2.584252 +2.106094 2.450645 2.638417 +1.954135 2.460313 2.666512 +1.907634 2.573801 2.674025 +1.625579 2.539569 2.656363 +1.785866 2.572616 2.676082 +1.798447 2.376454 2.624298 +2.020033 2.397244 2.619868 +1.946581 2.468791 2.564185 +2.008920 2.342400 2.469132 +1.983846 2.271044 2.395408 +1.988039 2.154150 2.317920 +2.077197 2.216622 2.389101 +2.117255 2.283907 2.512242 +2.177233 2.334622 2.458268 +2.214655 2.425510 2.620013 +2.199931 2.390272 2.520731 +2.271755 2.448682 2.552649 diff --git a/src/codebook/lsp9.txt b/src/codebook/lsp9.txt new file mode 100644 index 0000000..7e159af --- /dev/null +++ b/src/codebook/lsp9.txt @@ -0,0 +1,11 @@ +1 8 +2500 +2600 +2700 +2800 +2900 +3000 +3100 +3200 + + diff --git a/src/codebook/lspjmv1.txt b/src/codebook/lspjmv1.txt new file mode 100644 index 0000000..9cd10ed --- /dev/null +++ b/src/codebook/lspjmv1.txt @@ -0,0 +1,513 @@ +10 512 +0.435217 0.668864 1.010296 1.220420 1.503978 1.784675 2.135458 2.357467 2.618905 2.738042 +0.179285 0.333160 0.500638 0.796950 1.039987 1.234969 1.652301 1.848233 2.625555 2.804968 +0.268785 0.356576 0.595753 1.044339 1.249382 1.428680 1.686986 1.864689 2.339905 2.513801 +0.120070 0.165585 0.484694 0.959160 1.237528 1.529146 1.837513 2.107730 2.487495 2.766846 +0.150214 0.229487 0.628240 0.961255 1.337065 1.598306 1.919745 2.217861 2.537318 2.759560 +0.268624 0.345980 0.569637 0.754737 0.916538 1.508543 1.786354 1.954418 2.369530 2.501822 +0.246064 0.468874 0.662711 0.890015 1.147153 1.510431 1.781056 2.095943 2.655391 2.800369 +0.191631 0.280628 0.393229 0.611761 1.420170 1.707741 1.873032 2.101553 2.280348 2.499488 +0.361668 0.507047 0.789974 1.045992 1.502378 1.677032 1.905337 2.162555 2.432259 2.590873 +0.208160 0.294285 0.448634 0.694229 0.872517 1.070315 1.703352 2.168742 2.426189 2.603657 +0.316939 0.513618 0.705487 0.917036 1.175989 1.311140 1.618599 2.037840 2.450523 2.579395 +0.241068 0.377728 0.521595 0.717203 1.310414 1.539991 1.736431 2.098926 2.297917 2.587348 +0.234937 0.281875 0.780422 1.440733 1.609428 1.756430 1.977206 2.148605 2.602032 2.722501 +0.178679 0.242672 0.416988 0.708348 0.955620 1.176671 1.781798 2.054488 2.281591 2.448112 +0.345036 0.421080 0.740887 1.165442 1.324944 1.488798 1.763463 1.906174 2.395050 2.649158 +0.249586 0.357494 0.520747 0.847195 1.428408 1.597779 1.778194 2.178502 2.413437 2.564662 +0.295235 0.574231 1.249097 1.464097 1.727559 1.926790 2.095363 2.284830 2.567065 2.722480 +0.341930 0.427307 0.634001 0.804212 0.905629 1.333373 1.790329 1.892756 2.445823 2.602828 +0.363948 0.508985 0.667357 0.946354 1.437562 1.626545 1.811141 2.039091 2.291882 2.435493 +0.163514 0.277407 0.409207 0.902065 1.189070 1.339636 1.802411 1.960770 2.652930 2.818987 +0.302643 0.359753 0.651207 1.208021 1.423702 1.548149 1.882130 2.015591 2.260535 2.578896 +0.155928 0.216908 0.381812 0.654803 1.112373 1.589935 1.847562 1.976716 2.224078 2.725337 +0.274981 0.347675 0.572000 0.736046 0.894248 1.632373 1.891391 2.056890 2.602900 2.721779 +0.154496 0.243461 0.348174 0.689505 1.573807 1.700306 1.943182 2.101580 2.564661 2.773169 +0.292612 0.466612 0.795936 1.047468 1.413693 1.750848 2.062894 2.340073 2.613612 2.769493 +0.242896 0.361500 0.555859 0.793597 0.932291 1.409467 1.863863 2.009534 2.464500 2.677491 +0.221646 0.344724 0.554564 0.729403 1.136575 1.301772 1.529181 2.163590 2.395821 2.610805 +0.160969 0.224467 0.371545 0.626879 1.160953 1.444229 1.675966 1.879779 2.478590 2.672023 +0.214172 0.341585 0.676575 0.977397 1.325429 1.720096 2.072595 2.369539 2.635285 2.778792 +0.203311 0.289438 0.458739 0.914153 1.122885 1.302925 1.583844 1.886828 2.187869 2.427039 +0.280383 0.371600 0.824827 1.100246 1.236225 1.398923 1.578041 2.016000 2.368973 2.506732 +0.170627 0.251778 0.393686 0.608347 1.287599 1.446665 1.793278 2.036554 2.310153 2.752439 +0.180580 0.288746 0.987854 1.431706 1.677216 1.915661 2.124939 2.289452 2.589612 2.754264 +0.176335 0.266263 0.445421 0.706403 0.875402 1.422918 1.758670 1.960910 2.410676 2.601751 +0.216173 0.287404 0.480696 1.009765 1.291304 1.476644 1.895584 2.064286 2.284064 2.483108 +0.176523 0.273934 0.403407 0.966139 1.304724 1.436612 1.944728 2.084836 2.544458 2.762416 +0.311836 0.550501 0.879591 1.096228 1.276661 1.477859 1.817706 2.154340 2.560467 2.779841 +0.179765 0.250560 0.455939 1.023886 1.225132 1.475662 1.734617 1.918713 2.147342 2.438235 +0.271033 0.457235 0.599622 0.821049 0.940125 1.200937 1.849716 1.986656 2.548168 2.751578 +0.179326 0.248002 0.426405 0.817060 1.285888 1.565019 2.117359 2.298712 2.572404 2.752701 +0.374409 0.535936 0.897009 1.185070 1.591569 1.757202 1.967944 2.179985 2.457394 2.622641 +0.185472 0.282752 0.409439 0.657499 0.856446 1.029396 1.879933 2.069323 2.344742 2.753103 +0.375964 0.578457 0.758945 0.929339 1.127475 1.259437 1.704109 2.122973 2.336031 2.498298 +0.225641 0.361030 0.501679 0.783379 1.314851 1.452621 1.714150 1.987157 2.225703 2.724361 +0.144996 0.252919 0.632145 1.226038 1.575343 1.901549 2.171481 2.390554 2.682293 2.809834 +0.172022 0.263338 0.448634 0.729435 0.984007 1.171597 1.757049 1.990232 2.321305 2.771210 +0.235731 0.351117 0.796871 1.055711 1.300224 1.591818 1.895875 2.122918 2.417888 2.599817 +0.254053 0.319371 0.455623 1.086141 1.664667 1.915882 2.059084 2.233416 2.452037 2.586788 +0.375538 0.742993 1.139911 1.337758 1.735562 2.013906 2.315012 2.483433 2.651575 2.755211 +0.247245 0.481131 0.710366 0.897602 1.121094 1.271709 1.787346 2.199502 2.429663 2.740668 +0.226103 0.311441 0.501648 0.844424 1.362818 1.531338 1.777474 1.989925 2.187493 2.358501 +0.195862 0.296224 0.609554 0.783241 1.243472 1.445477 1.637032 2.022645 2.483557 2.646137 +0.233302 0.299441 0.472792 1.249457 1.457875 1.601860 1.831433 1.993719 2.597193 2.755433 +0.168096 0.224183 0.382700 0.596214 1.060587 1.294418 1.605760 1.848489 2.357695 2.569186 +0.330050 0.445912 0.661713 0.874446 1.000792 1.452973 1.943987 2.076916 2.423883 2.612359 +0.226382 0.287303 0.517631 0.806229 1.309009 1.885280 2.160514 2.286410 2.526377 2.660822 +0.203170 0.499314 0.887358 1.235074 1.462922 1.698260 1.999316 2.229225 2.571613 2.766691 +0.307531 0.378353 0.573606 0.712218 0.850169 1.308996 2.059092 2.263816 2.497943 2.676815 +0.276203 0.510250 0.686800 0.902844 1.205197 1.327979 1.718894 2.038947 2.256393 2.697149 +0.161948 0.229115 0.393619 0.683613 1.137811 1.322692 1.783723 1.961584 2.389073 2.636082 +0.201334 0.276773 0.468994 0.967017 1.475971 1.632424 1.965774 2.197278 2.480593 2.701553 +0.214587 0.315421 0.469498 0.733397 1.146003 1.277911 1.727839 2.227135 2.440264 2.681122 +0.255602 0.394609 0.743393 0.977796 1.199085 1.405972 1.918336 2.224828 2.479187 2.663394 +0.245989 0.352625 0.517055 0.802830 1.558712 1.795653 1.944055 2.133640 2.333267 2.479982 +0.337423 0.480433 0.869036 1.139571 1.630764 1.822959 2.074843 2.292613 2.479130 2.625317 +0.220974 0.358850 0.571640 0.752791 0.937013 1.151721 1.674398 2.062466 2.558717 2.784838 +0.267518 0.331708 0.541111 1.116547 1.411121 1.532868 1.792949 1.933520 2.248940 2.628644 +0.084613 0.105083 0.297424 0.916949 1.256301 1.567029 1.885388 2.189875 2.522795 2.792102 +0.205328 0.287223 0.724462 1.032395 1.457708 1.642169 1.925628 2.175524 2.429638 2.605488 +0.232554 0.338724 0.502115 0.859975 1.044090 1.245652 1.806555 1.999641 2.261164 2.459984 +0.291638 0.379172 0.626072 0.792796 0.959124 1.504886 1.734465 1.919612 2.614359 2.722709 +0.191554 0.263114 0.426797 0.610628 1.077406 1.829543 2.021948 2.210572 2.427652 2.613828 +0.389151 0.679476 0.915414 1.036635 1.250846 1.586610 2.040972 2.281500 2.567941 2.718815 +0.203200 0.301280 0.470357 0.668716 0.851737 0.980327 1.570862 2.037617 2.289067 2.693877 +0.304064 0.405934 0.710274 0.962705 1.128820 1.341667 1.635050 1.845382 2.079916 2.507510 +0.171777 0.240705 0.409371 0.786432 1.223202 1.375689 1.691760 1.866080 2.350406 2.493942 +0.231251 0.277994 0.557867 1.325822 1.660352 1.779477 2.007138 2.172322 2.440457 2.652308 +0.188101 0.259494 0.412543 0.624843 0.839549 1.033700 1.634128 1.931944 2.246076 2.425773 +0.361304 0.419465 0.795676 1.184605 1.296796 1.578447 1.841746 1.997361 2.540538 2.687139 +0.274372 0.338938 0.492443 0.963516 1.509514 1.706378 1.869885 2.077166 2.261281 2.444183 +0.415990 0.652103 1.031293 1.269551 1.572746 1.772975 2.004659 2.175272 2.430606 2.596553 +0.242045 0.370942 0.534392 0.763529 1.001165 1.129764 1.682192 2.144644 2.324478 2.715697 +0.377438 0.588168 0.765394 0.976873 1.356652 1.490088 1.737970 2.006774 2.213691 2.389973 +0.191625 0.284123 0.405342 1.016777 1.432730 1.547592 1.813930 1.958317 2.470765 2.649257 +0.272672 0.349555 0.633911 1.152234 1.303938 1.547640 1.919504 2.047696 2.562779 2.730575 +0.168423 0.236330 0.421468 0.831345 1.083543 1.553448 1.880726 2.064701 2.370864 2.632945 +0.219318 0.301481 0.513617 0.765086 1.026019 1.514647 2.048203 2.248568 2.499810 2.657069 +0.232695 0.347947 0.495203 0.718830 1.423013 1.722493 1.879584 2.165044 2.420251 2.589658 +0.270284 0.336865 0.684929 1.155789 1.690421 1.876744 2.027359 2.226178 2.446748 2.582000 +0.149701 0.193747 0.352019 0.520123 0.823974 1.434753 1.686592 1.961148 2.370914 2.693067 +0.254818 0.412303 0.601514 0.771438 1.175450 1.376569 1.539029 1.937039 2.408576 2.563621 +0.233713 0.355886 0.593725 0.762880 1.271479 1.563900 1.797523 2.094688 2.538627 2.711734 +0.179028 0.237103 0.396818 1.042021 1.633539 1.762676 2.123935 2.322391 2.588193 2.751345 +0.182027 0.251039 0.434581 0.714302 0.950997 1.437895 1.813570 1.969103 2.145882 2.353968 +0.501538 0.692148 0.848860 1.071308 1.350543 1.489476 1.841643 2.104284 2.341536 2.515294 +0.274530 0.381470 0.526682 0.922143 1.444946 1.573605 1.858767 2.066747 2.284796 2.626819 +0.360617 0.583131 0.979491 1.254083 1.488351 1.797557 2.219518 2.482176 2.742366 2.862025 +0.140913 0.220301 0.619552 0.818307 1.052429 1.339972 1.830726 2.133953 2.536378 2.751128 +0.293514 0.391691 0.790080 0.962740 1.160319 1.526602 1.805491 2.041462 2.361619 2.564962 +0.199542 0.290571 0.452891 0.689515 1.258530 1.409879 1.886242 2.228126 2.465677 2.726646 +0.296920 0.356356 0.784287 0.996540 1.146175 1.623865 1.815498 2.038297 2.600627 2.705700 +0.206451 0.276025 0.537547 0.802572 1.220407 1.642060 1.863625 2.001978 2.215339 2.585384 +0.333650 0.464751 0.653772 0.966306 1.103865 1.340203 1.784701 1.914591 2.470171 2.686916 +0.181861 0.244870 0.376456 0.554383 1.329897 1.810440 2.047836 2.202318 2.660855 2.817057 +0.450565 0.647291 0.951172 1.229431 1.519644 1.686812 2.049107 2.267169 2.501284 2.650596 +0.219996 0.320591 0.427747 0.601183 0.753448 0.929578 1.741979 2.285789 2.472633 2.749566 +0.333848 0.423373 0.658791 1.031299 1.222625 1.365771 1.901889 2.121101 2.290306 2.531185 +0.166064 0.233902 0.383355 0.661806 1.226567 1.399684 1.771269 1.974537 2.173487 2.566344 +0.189286 0.243602 0.390584 1.387930 1.588719 1.763237 2.091118 2.316314 2.593526 2.755080 +0.158404 0.224878 0.385000 0.668463 0.942954 1.411967 1.700313 1.828069 2.059396 2.692546 +0.325989 0.461263 0.851471 1.045709 1.284028 1.516199 1.797341 2.088387 2.437669 2.627215 +0.223709 0.289190 0.632812 0.858738 1.541903 1.746766 1.935738 2.184816 2.404330 2.583013 +0.545842 0.952420 1.340820 1.516838 1.838879 2.012890 2.244968 2.403170 2.592285 2.691119 +0.238526 0.349079 0.494582 0.987665 1.170746 1.348229 1.468645 2.296964 2.644160 2.787381 +0.270857 0.442003 0.655998 0.881913 1.259254 1.428358 1.769867 1.998528 2.395589 2.652840 +0.154384 0.211806 0.489481 0.997257 1.249817 1.541232 1.778865 1.949397 2.319136 2.623391 +0.268258 0.312888 0.589114 1.258625 1.572705 1.675430 1.912780 2.070458 2.279933 2.564230 +0.170715 0.224965 0.374011 0.540197 1.161887 1.499072 1.925865 2.082569 2.246619 2.469724 +0.324358 0.391989 0.706816 0.833614 1.015725 1.568995 1.735976 2.127068 2.558411 2.653871 +0.178059 0.258575 0.374125 0.536831 1.334827 1.798628 1.986978 2.189252 2.432266 2.626696 +0.198857 0.420955 0.817664 1.178363 1.466742 1.821295 2.207327 2.474411 2.738275 2.851185 +0.188344 0.324302 0.470468 0.790033 0.934101 1.188722 1.887171 2.052833 2.448325 2.630236 +0.201295 0.365646 0.526513 0.758388 1.140096 1.267331 1.650173 1.879342 2.102889 2.600286 +0.135058 0.169428 0.307348 0.503160 1.018083 1.447946 1.810984 2.134002 2.480277 2.759846 +0.178006 0.266610 0.390327 0.928681 1.501613 1.621327 1.871356 2.025864 2.580442 2.770801 +0.246182 0.424290 0.644023 0.801168 1.114876 1.277757 1.503317 2.074888 2.295695 2.501380 +0.322996 0.430355 0.631600 1.047698 1.221840 1.426726 1.903081 2.032223 2.516726 2.708452 +0.292994 0.430599 0.619178 0.794567 1.283029 1.652817 1.840836 2.069946 2.385375 2.528246 +0.525494 0.787797 1.121816 1.387482 1.674574 1.936221 2.224042 2.390624 2.634276 2.743234 +0.299504 0.409196 0.602235 0.892336 1.056426 1.253766 1.489136 1.639876 2.427480 2.650368 +0.423758 0.520480 0.758987 1.041257 1.173655 1.423676 1.818235 1.936407 2.363001 2.626644 +0.155042 0.247496 0.641445 0.954509 1.224970 1.465850 1.837841 2.090456 2.451501 2.716155 +0.251949 0.421094 0.706797 0.975659 1.259906 1.520067 1.816310 2.122017 2.474913 2.716671 +0.215220 0.302248 0.730598 0.896343 1.145567 1.370192 1.700685 2.022563 2.283265 2.489220 +0.285230 0.453559 0.663670 0.861526 1.011602 1.247419 1.655985 1.861291 2.578936 2.731333 +0.162067 0.219409 0.373433 0.544669 1.103298 1.597178 1.921040 2.143402 2.406499 2.660484 +0.342367 0.511499 0.931350 1.163219 1.393645 1.611146 1.972769 2.194416 2.470766 2.649264 +0.251010 0.364125 0.560956 0.746545 1.019837 1.170725 1.532945 2.288671 2.577088 2.723074 +0.315001 0.489412 0.720682 0.877607 1.090466 1.253848 1.448221 1.922954 2.255887 2.408634 +0.174666 0.235793 0.387644 0.554402 1.231089 1.456137 1.688034 2.127450 2.367035 2.597270 +0.215113 0.341915 1.043717 1.322751 1.495414 1.741895 1.961164 2.239824 2.544905 2.703945 +0.219852 0.301770 0.513912 0.705474 0.877540 1.295896 1.699002 1.987057 2.287968 2.496966 +0.290638 0.366442 0.655155 1.044990 1.172154 1.532536 1.800791 1.948931 2.509679 2.660055 +0.232252 0.313770 0.658552 0.941977 1.463174 1.665488 1.862461 2.027843 2.534016 2.701236 +0.326539 0.552681 1.121731 1.331381 1.520072 1.867084 2.082861 2.332474 2.606039 2.737092 +0.190254 0.340428 0.492777 0.739738 0.895461 1.079371 1.643156 1.795290 2.491822 2.729382 +0.283586 0.418440 0.587306 0.870866 1.418553 1.577030 1.799498 2.069398 2.274484 2.438103 +0.235752 0.357650 0.502891 1.012434 1.258853 1.407789 1.820057 1.955830 2.505903 2.734330 +0.278412 0.343137 0.849977 1.232895 1.350504 1.590626 1.787519 2.091578 2.541360 2.663856 +0.162966 0.243159 0.439238 0.684821 0.887783 1.462899 1.881739 2.044253 2.289393 2.705002 +0.235063 0.371799 0.578210 0.752199 1.008546 1.476284 1.804912 2.271399 2.655042 2.789653 +0.154939 0.223696 0.344718 0.667555 1.495659 1.669436 2.069883 2.307215 2.627692 2.811343 +0.239702 0.335917 0.716616 1.131805 1.452514 1.639133 2.105515 2.279822 2.502030 2.669220 +0.226818 0.331261 0.472705 0.651974 0.781639 1.219798 1.822904 2.082732 2.439327 2.610900 +0.223413 0.359594 0.534704 0.741518 1.225894 1.389874 1.618191 2.009911 2.207000 2.459844 +0.171308 0.268378 0.383799 0.858926 1.376293 1.519165 1.780601 1.922915 2.623094 2.802402 +0.140134 0.212320 0.443224 0.967457 1.264241 1.562153 1.929148 2.217388 2.668341 2.830751 +0.221323 0.322124 0.485563 0.818589 1.011837 1.198984 1.423616 1.669403 2.157523 2.363190 +0.369687 0.525655 0.719213 0.939654 1.137631 1.312217 1.599935 1.826813 2.355221 2.580680 +0.211975 0.314411 0.489148 0.739213 1.377801 1.554504 1.824373 2.158875 2.352992 2.722621 +0.170698 0.296368 0.934285 1.243133 1.555900 1.866544 2.159940 2.363436 2.585032 2.738530 +0.189263 0.305887 0.439912 0.784610 1.227264 1.342508 1.587650 1.754907 2.439893 2.721315 +0.296339 0.385169 0.612012 1.081322 1.276361 1.437178 1.871470 2.001718 2.339094 2.640217 +0.229588 0.320544 0.517278 0.969137 1.142560 1.626089 1.877916 2.115461 2.546741 2.708025 +0.248869 0.420193 0.732388 1.049015 1.303410 1.601458 1.949210 2.239464 2.648223 2.822614 +0.207600 0.292320 0.496539 0.857149 1.182294 1.399849 1.714165 1.868238 2.027936 2.200737 +0.225558 0.396897 0.541783 0.873366 1.178972 1.299579 1.677191 1.849602 2.330475 2.752717 +0.176821 0.231377 0.372767 0.508565 1.152819 1.808050 2.112679 2.250073 2.571342 2.748550 +0.352149 0.515765 1.023238 1.260221 1.443565 1.622067 1.872804 2.100177 2.489280 2.671043 +0.166138 0.263444 0.370151 0.590066 0.754819 0.940533 1.761870 1.946611 2.445015 2.758191 +0.342082 0.476411 0.656223 0.851774 1.003992 1.153372 1.694401 2.065625 2.255642 2.440148 +0.227237 0.376514 0.514329 0.894887 1.141673 1.283052 1.831377 1.985902 2.334470 2.784878 +0.215891 0.269548 0.684111 1.405658 1.674813 1.800925 2.172085 2.339395 2.591569 2.730100 +0.236240 0.400377 0.533684 0.750343 0.910405 1.089112 1.737729 1.912807 2.192519 2.688733 +0.169242 0.284879 0.916252 1.169769 1.433683 1.644376 1.919124 2.161625 2.482664 2.682591 +0.270731 0.336506 0.477594 1.042714 1.605840 1.796859 1.945909 2.160039 2.354913 2.520950 +0.420586 0.652563 1.117162 1.406006 1.747537 1.947424 2.203094 2.359970 2.547902 2.682168 +0.281552 0.395037 0.640181 0.944531 1.193959 1.330492 1.718657 2.188389 2.444591 2.578673 +0.311824 0.476892 0.633431 0.845825 1.332518 1.491656 1.693614 2.041082 2.289317 2.439399 +0.133945 0.200790 0.647237 0.927687 1.188883 1.369658 1.699557 1.972777 2.295259 2.678185 +0.204796 0.278215 0.443465 1.270484 1.405209 1.640920 1.824252 2.327085 2.599637 2.772533 +0.183970 0.244116 0.410594 0.639103 1.221589 1.404867 1.628358 1.902439 2.168632 2.306804 +0.343622 0.434735 0.666599 0.868069 1.048942 1.532778 1.819835 1.971884 2.288701 2.448745 +0.238017 0.320361 0.657255 0.917611 1.303306 1.727361 1.988909 2.181455 2.442965 2.613322 +0.323613 0.545056 0.930173 1.226059 1.440181 1.772300 2.056890 2.347811 2.689382 2.820616 +0.288930 0.401387 0.617124 0.836453 0.990306 1.261227 1.913283 2.110049 2.324584 2.557162 +0.332670 0.480804 0.656147 0.880536 1.029566 1.230493 1.769063 1.932296 2.200370 2.585210 +0.185551 0.265352 0.409432 0.608847 1.034698 1.222821 1.876965 2.171647 2.403502 2.666441 +0.155026 0.223348 0.401684 1.079141 1.415789 1.620021 2.045515 2.258512 2.631625 2.802291 +0.183461 0.263081 0.425694 0.635685 1.188664 1.357556 1.574991 2.085982 2.288725 2.511108 +0.314738 0.463011 0.648733 0.877651 1.002890 1.265811 2.005414 2.198095 2.481535 2.714178 +0.244411 0.318444 0.546578 0.793615 1.326150 1.735479 1.945598 2.114662 2.315350 2.478535 +0.326237 0.543540 0.987361 1.304413 1.684932 1.902147 2.207172 2.374273 2.557527 2.716216 +0.157795 0.283302 0.430398 0.660379 0.811060 1.142539 1.479298 1.718714 2.670264 2.847556 +0.220856 0.283872 0.779935 1.074940 1.312211 1.626329 1.837609 1.968885 2.155988 2.602381 +0.140763 0.205719 0.406561 0.762459 1.041266 1.486993 1.838306 2.114606 2.552810 2.772285 +0.140451 0.395920 0.792110 1.108001 1.402642 1.623079 1.943151 2.227952 2.546163 2.773998 +0.229862 0.336462 0.546590 0.810150 1.201906 1.346787 1.825323 2.092925 2.285730 2.473359 +0.224913 0.328246 0.517269 0.874793 1.012587 1.452178 1.695778 2.014930 2.511447 2.672574 +0.247745 0.335741 0.546558 0.710177 1.170556 1.727789 1.970678 2.158532 2.482819 2.628913 +0.398252 0.555087 0.890367 1.121205 1.381533 1.601228 1.866647 2.066612 2.405164 2.588016 +0.198563 0.288867 0.478054 0.658477 0.851841 1.027105 1.539739 2.021106 2.579462 2.784184 +0.304271 0.371642 0.661590 1.068976 1.224249 1.411927 1.680524 1.869770 2.100073 2.308554 +0.188223 0.257939 0.432402 0.735050 1.318038 1.485528 1.828110 2.046435 2.307018 2.457237 +0.246723 0.297276 0.604475 1.310901 1.570442 1.688851 1.913658 2.051334 2.556011 2.714965 +0.158309 0.234509 0.435792 0.667900 0.957567 1.235918 1.592945 1.818158 2.307389 2.768973 +0.419843 0.501412 0.766892 1.073173 1.189374 1.480225 1.766597 1.922151 2.537937 2.694771 +0.275140 0.335563 0.678421 1.081521 1.592379 1.772635 1.931245 2.140699 2.333804 2.490857 +0.372056 0.856814 1.239538 1.409989 1.690297 1.863018 2.072702 2.273547 2.532657 2.690517 +0.321254 0.422981 0.604856 0.793437 0.912112 1.128454 1.795979 2.173232 2.360146 2.536137 +0.395214 0.598779 0.771997 0.946713 1.213777 1.330433 1.660335 1.977154 2.165056 2.344018 +0.225286 0.317828 0.464801 1.112329 1.369512 1.511999 1.921954 2.053407 2.593519 2.777285 +0.330612 0.407807 0.730129 1.259731 1.459811 1.605671 1.981307 2.137009 2.465971 2.679722 +0.213145 0.305305 0.507016 0.662299 1.056848 1.479862 1.671904 2.102707 2.369871 2.581994 +0.219658 0.296096 0.443507 0.610973 0.799691 1.676579 1.965487 2.153235 2.502228 2.692999 +0.174947 0.257739 0.373547 0.552567 1.405316 1.614249 1.848917 2.117795 2.317884 2.711904 +0.209667 0.297529 0.756195 1.095304 1.564196 1.844775 2.103697 2.292657 2.520051 2.679489 +0.170138 0.240310 0.452247 0.684414 0.880102 1.366921 1.741648 2.131295 2.505730 2.732611 +0.278164 0.468635 0.707518 0.853693 1.054780 1.210458 1.540941 2.174562 2.410662 2.612138 +0.155738 0.238890 0.352836 0.621012 1.441438 1.619698 1.825165 1.975331 2.525373 2.748574 +0.223776 0.274424 0.479048 0.797871 1.694190 1.878135 2.135285 2.373726 2.595422 2.729787 +0.151088 0.198286 0.326558 0.536276 0.845893 1.141653 1.460565 1.762868 2.025851 2.177303 +0.434445 0.614208 0.887657 1.028446 1.191359 1.392204 1.786886 2.062481 2.423405 2.619356 +0.180755 0.275311 0.397787 0.859366 1.409762 1.523325 1.908846 2.082319 2.389720 2.743887 +0.275975 0.508416 0.889894 1.318925 1.633314 1.904728 2.169012 2.374655 2.726973 2.847666 +0.156239 0.262624 0.406657 0.739074 1.044495 1.201234 1.810887 2.005600 2.581700 2.804889 +0.195391 0.258771 0.654924 0.824371 1.315259 1.500728 1.765938 2.063992 2.341176 2.513659 +0.178034 0.301047 0.463020 0.716172 1.198868 1.340454 1.834558 2.022132 2.400750 2.776294 +0.340368 0.404236 0.843747 1.039238 1.202107 1.708051 1.914952 2.169509 2.521521 2.623348 +0.218465 0.289694 0.528045 0.817051 1.132337 1.580464 1.838891 1.983392 2.147493 2.348131 +0.322509 0.458058 0.654679 0.958976 1.118211 1.321565 1.901390 2.046409 2.360931 2.664215 +0.191821 0.252321 0.389176 0.581111 1.529667 1.931689 2.083614 2.270465 2.566855 2.713879 +0.493961 0.710827 0.982260 1.196274 1.419327 1.620910 1.928015 2.145652 2.429769 2.601973 +0.213148 0.311589 0.424636 0.602664 0.736895 1.022165 1.992278 2.218533 2.611628 2.850324 +0.288129 0.434441 0.629313 0.856153 1.289667 1.424520 1.875795 2.150240 2.351814 2.536843 +0.160031 0.230716 0.406654 0.870424 1.156517 1.392317 1.804098 1.951437 2.210479 2.735164 +0.229340 0.293962 0.503222 1.242097 1.475824 1.624647 1.998680 2.144499 2.578549 2.753270 +0.158770 0.220035 0.363386 0.577761 0.963090 1.174939 1.738169 1.979202 2.162436 2.661916 +0.346062 0.444816 0.716985 1.180717 1.370580 1.522996 1.892173 2.066682 2.395796 2.627659 +0.307495 0.389330 0.612607 0.969283 1.557708 1.839939 1.996737 2.172382 2.420627 2.539195 +0.437804 0.726957 1.291168 1.503297 1.765428 1.962121 2.163647 2.336227 2.579616 2.708524 +0.232184 0.333678 0.528368 0.706749 1.203280 1.379018 1.611161 2.154678 2.592903 2.750319 +0.272652 0.461710 0.625777 0.839609 1.342021 1.496726 1.715376 2.137572 2.370040 2.597390 +0.184908 0.302324 0.454883 0.880307 1.104383 1.292526 1.777203 1.943364 2.444174 2.622726 +0.265644 0.341261 0.553228 1.139475 1.427148 1.560441 1.933941 2.084129 2.393307 2.654135 +0.167920 0.207301 0.370331 0.525538 1.030891 1.368163 1.782474 2.062404 2.332762 2.526299 +0.343172 0.433912 0.717501 0.889734 1.052060 1.695278 2.053156 2.208456 2.608869 2.718320 +0.216527 0.305247 0.445890 0.729271 1.639736 1.903284 2.053351 2.221254 2.432253 2.568018 +0.110545 0.209955 0.844788 1.174205 1.492201 1.810243 2.177274 2.440496 2.697294 2.835232 +0.217384 0.337412 0.488999 0.761842 0.879715 1.209528 1.970747 2.120795 2.611654 2.791762 +0.190459 0.296484 0.469967 0.800649 1.105561 1.278527 1.516938 1.693066 2.114420 2.716739 +0.134814 0.175978 0.300425 0.496817 1.244295 1.485308 1.861721 2.131233 2.485046 2.773884 +0.210174 0.278266 0.435508 0.927538 1.606908 1.753898 1.957554 2.166283 2.398518 2.749609 +0.213766 0.315300 0.509924 0.709930 0.964724 1.106776 1.382615 2.001070 2.323214 2.565314 +0.400615 0.524954 0.798552 1.012852 1.135488 1.474850 1.989029 2.130909 2.507971 2.679460 +0.249400 0.377023 0.519635 0.754227 1.459559 1.642762 1.828961 2.077882 2.298228 2.467534 +0.473365 0.683973 1.052341 1.375830 1.548106 1.747589 2.139299 2.318768 2.609977 2.739255 +0.203877 0.341791 0.485180 0.884069 1.097592 1.269532 1.479924 1.757879 2.648399 2.822387 +0.273046 0.404254 0.555403 0.954547 1.291233 1.399022 1.722890 1.903441 2.171984 2.645312 +0.040369 0.117266 0.617136 0.892043 1.260331 1.541653 1.859383 2.153096 2.498232 2.761886 +0.132414 0.211358 0.742445 1.066857 1.331084 1.570793 1.867458 2.132535 2.479624 2.731076 +0.237329 0.326529 0.612538 0.790663 0.990133 1.413736 1.738235 1.936914 2.167728 2.451626 +0.273960 0.405794 0.572530 0.933672 1.057816 1.397952 1.856531 1.997548 2.599486 2.760042 +0.199334 0.298380 0.442931 0.628638 1.303213 1.640138 1.804023 2.113020 2.375455 2.548946 +0.350188 0.502010 0.821298 1.038639 1.369294 1.592404 1.910815 2.156486 2.460508 2.653260 +0.281558 0.399892 0.573105 0.753299 0.900613 1.054574 1.581987 2.178437 2.430354 2.616044 +0.344653 0.543532 0.703715 0.862285 1.198215 1.338208 1.579080 2.060769 2.306749 2.485749 +0.220701 0.326795 0.520618 0.755133 1.295552 1.451886 1.690502 2.200045 2.414271 2.615909 +0.279478 0.332193 0.801527 1.345966 1.487477 1.678499 1.922202 2.100025 2.585571 2.713387 +0.163502 0.212169 0.365096 0.525464 0.869846 1.208807 1.793988 2.040314 2.297180 2.469797 +0.285531 0.341488 0.754059 1.170016 1.300835 1.513696 1.699861 1.889918 2.581459 2.706874 +0.249595 0.366997 0.626427 0.945219 1.407043 1.560558 1.831657 2.231149 2.466354 2.654518 +0.271671 0.443136 1.156412 1.406456 1.676521 1.856481 2.063218 2.230498 2.475840 2.639575 +0.286620 0.427806 0.637320 0.803409 0.996161 1.266383 1.681751 2.003968 2.394651 2.588547 +0.314906 0.440519 0.612129 0.896126 1.472415 1.717693 1.881351 2.099437 2.369166 2.495466 +0.170277 0.251270 0.405477 0.915641 1.126887 1.436630 1.714771 1.893198 2.552995 2.738519 +0.279410 0.337137 0.734563 1.281046 1.480602 1.611880 1.853215 1.994883 2.416054 2.654827 +0.165776 0.226083 0.417544 0.744574 1.044468 1.534891 1.808494 1.944946 2.138491 2.601790 +0.264579 0.336652 0.542033 0.710190 0.913338 1.655751 1.817762 2.231956 2.524436 2.658519 +0.158194 0.235588 0.338347 0.541657 1.583377 1.766293 2.009135 2.243336 2.503941 2.775158 +0.332612 0.509620 0.822935 1.075876 1.454286 1.650788 1.974450 2.251279 2.537342 2.745115 +0.262817 0.359709 0.520893 0.707667 0.818364 1.438849 1.971249 2.087666 2.497014 2.646442 +0.233200 0.399599 0.612456 0.775547 1.199192 1.355765 1.646901 2.136245 2.342490 2.695742 +0.149687 0.238538 0.372248 0.634520 1.255813 1.433790 1.770041 1.928752 2.611905 2.824930 +0.137016 0.210297 0.591489 1.125451 1.375648 1.685296 2.089612 2.390888 2.704458 2.844434 +0.213490 0.341024 0.541716 0.750061 1.088199 1.244576 1.555338 1.965568 2.187900 2.383714 +0.300159 0.489291 0.825022 1.037100 1.194088 1.347375 1.684747 2.024936 2.465611 2.740973 +0.170029 0.255033 0.392758 0.727117 1.382065 1.579676 1.800912 1.959072 2.282335 2.728796 +0.175883 0.365509 1.112175 1.385866 1.720391 1.977810 2.245295 2.421614 2.629567 2.754004 +0.162590 0.248164 0.454630 0.763209 0.966031 1.282338 1.730743 1.938052 2.479376 2.667563 +0.258043 0.345866 0.556520 0.981312 1.361528 1.482377 1.872244 2.158226 2.362269 2.555030 +0.234139 0.348843 0.528234 0.987884 1.195217 1.422145 1.960028 2.127365 2.603321 2.793004 +0.179699 0.559209 0.867682 1.088835 1.316888 1.571498 1.922198 2.197391 2.501118 2.728679 +0.216784 0.310791 0.487492 0.932903 1.201954 1.366554 1.800398 1.977499 2.174265 2.537065 +0.186878 0.400655 0.580952 0.846287 1.103872 1.266778 1.842772 2.019592 2.488005 2.717222 +0.164641 0.248712 0.389358 0.772822 1.212561 1.369916 2.025869 2.277615 2.617524 2.809527 +0.351899 0.520326 0.926597 1.219651 1.509839 1.676837 1.921744 2.111253 2.356380 2.545934 +0.242182 0.365285 0.506156 0.716020 0.865221 1.011688 1.786917 2.122981 2.350877 2.767729 +0.413776 0.559566 0.735800 0.928997 1.079117 1.267179 1.880069 2.152492 2.324834 2.539856 +0.210597 0.329568 0.469735 0.788590 1.215495 1.319810 1.711456 2.058991 2.245438 2.653727 +0.197937 0.254148 0.477985 1.227090 1.629920 1.767432 2.186975 2.385104 2.594869 2.725544 +0.205489 0.333855 0.523915 0.706275 1.102152 1.246608 1.648901 2.026835 2.281695 2.759313 +0.230328 0.322431 0.861834 1.145614 1.347211 1.576111 1.807275 2.004824 2.354365 2.572251 +0.224898 0.282022 0.506636 1.152298 1.626560 1.752095 2.028178 2.218821 2.488955 2.670460 +0.313732 0.625469 1.164472 1.499077 1.749612 2.018528 2.262230 2.429601 2.692165 2.822502 +0.375623 0.575307 0.791200 0.935770 1.096937 1.343393 1.807992 2.187306 2.519720 2.694803 +0.236981 0.332412 0.479270 0.844461 1.347641 1.490733 1.683942 2.039143 2.297619 2.458431 +0.129047 0.206250 0.636751 0.865101 1.136893 1.356610 1.704798 1.916685 2.518358 2.756320 +0.195171 0.266517 0.414793 1.239561 1.452906 1.608357 1.833045 2.047802 2.473522 2.621994 +0.165853 0.212720 0.372757 0.536136 1.013938 1.339627 1.555122 1.945745 2.236281 2.440949 +0.256981 0.368868 0.635878 0.802543 1.084757 1.439120 1.814729 2.120519 2.458154 2.621456 +0.214382 0.297135 0.445091 0.702050 1.365102 1.851262 2.067026 2.207298 2.470728 2.612432 +0.340710 0.532103 0.935278 1.171022 1.377886 1.638598 1.965274 2.246164 2.631266 2.806341 +0.310524 0.412051 0.582478 0.768755 0.871594 1.119854 1.926346 2.207508 2.407091 2.636633 +0.249349 0.443517 0.631532 0.810096 1.205129 1.357206 1.607396 1.984157 2.208016 2.645111 +0.143090 0.185312 0.325214 0.504000 1.134467 1.327913 1.673654 2.006903 2.389284 2.746094 +0.226575 0.298946 0.453938 0.998061 1.394600 1.597283 2.064183 2.223246 2.425469 2.569458 +0.183924 0.255181 0.415834 0.624247 1.042338 1.203077 1.555240 2.125309 2.400352 2.661916 +0.275610 0.365968 0.654909 0.990108 1.170799 1.455333 2.077561 2.252672 2.502315 2.685945 +0.204334 0.287844 0.394810 0.761295 1.501200 1.784709 1.935569 2.152830 2.349263 2.545639 +0.342976 0.527539 0.917466 1.160585 1.499531 1.761830 2.095272 2.301872 2.540570 2.694692 +0.202374 0.333367 0.480179 0.708677 0.819505 1.105285 1.806641 1.953348 2.610844 2.797497 +0.307033 0.368471 0.602486 1.108611 1.413347 1.528636 1.798519 1.986138 2.169052 2.437256 +0.144073 0.196932 0.386988 0.819061 1.289767 1.625073 1.901924 2.136105 2.483019 2.707970 +0.176760 0.268627 0.662082 1.056866 1.547973 1.711386 1.972939 2.249909 2.544471 2.761094 +0.191409 0.292985 0.492193 0.800526 1.041836 1.278546 1.836626 2.028677 2.249387 2.627785 +0.324102 0.399146 0.687435 0.868704 1.022957 1.582084 1.853847 1.981885 2.554914 2.677057 +0.229172 0.302836 0.481418 0.704363 0.967567 1.828269 2.097295 2.258467 2.549112 2.704652 +0.467124 0.696788 0.939500 1.094987 1.277543 1.488496 1.896279 2.158470 2.474182 2.659994 +0.175418 0.234039 0.367674 0.513586 0.747619 1.008405 1.583161 2.053114 2.363292 2.681153 +0.410273 0.561949 0.736215 0.956685 1.135688 1.288424 1.750612 1.937714 2.151318 2.489336 +0.204541 0.277613 0.529607 0.722971 1.199975 1.447336 1.715634 1.921054 2.357781 2.507488 +0.253116 0.311907 0.696982 1.320082 1.575418 1.705324 2.005068 2.168666 2.461879 2.665053 +0.163657 0.237902 0.393374 0.609490 0.854272 1.089980 1.526387 1.842337 2.126252 2.679051 +0.448627 0.530664 0.812719 1.095201 1.207641 1.575411 1.884209 2.034297 2.553007 2.688355 +0.262717 0.338748 0.512685 1.003543 1.480178 1.622083 1.828518 2.142415 2.356457 2.511530 +0.417111 0.636688 1.036571 1.319877 1.679924 1.873389 2.073722 2.249396 2.507732 2.651054 +0.263698 0.461151 0.618737 0.830471 1.004041 1.158874 1.801566 2.020222 2.306558 2.743041 +0.387779 0.575108 0.729791 0.932981 1.361163 1.505161 1.751183 2.068466 2.338260 2.487637 +0.181510 0.265666 0.454631 1.082382 1.287303 1.579202 1.851178 2.096963 2.467237 2.646930 +0.277668 0.345119 0.602341 1.179200 1.378990 1.545625 1.813861 1.962590 2.491799 2.664453 +0.179320 0.248080 0.456925 0.722589 1.126932 1.579450 1.799397 1.950668 2.484125 2.707238 +0.314322 0.381145 0.608651 0.727613 0.890472 1.610280 2.136172 2.258358 2.596376 2.709780 +0.189539 0.266068 0.419729 0.651693 1.410161 1.643106 1.854810 2.275582 2.492054 2.722009 +0.254466 0.313038 0.594149 1.012536 1.688813 1.935465 2.119184 2.287869 2.535543 2.667926 +0.134691 0.171906 0.302740 0.492936 0.899551 1.229188 1.733940 2.012878 2.446339 2.742762 +0.231556 0.365068 0.680761 0.889142 1.111338 1.295904 1.542636 1.971784 2.427562 2.631912 +0.222525 0.305606 0.527193 0.687519 1.181381 1.671764 1.863683 2.072023 2.634517 2.779272 +0.178770 0.237415 0.375160 0.856692 1.673680 1.813743 2.016791 2.272421 2.522601 2.735959 +0.193532 0.268731 0.451328 0.753471 0.984854 1.285349 1.685647 1.884123 2.091677 2.243418 +0.476037 0.651610 0.801054 1.010162 1.241374 1.355840 1.775976 2.086152 2.272907 2.454351 +0.211657 0.308331 0.421366 0.865966 1.418774 1.556743 1.786149 2.020332 2.198585 2.631981 +0.203789 0.490794 1.010137 1.275006 1.472213 1.810140 2.170639 2.437660 2.662122 2.788061 +0.174355 0.252095 0.674715 0.842194 1.055087 1.278000 1.698680 2.070561 2.399385 2.657430 +0.245109 0.324049 0.628822 0.927910 1.123601 1.580066 1.878640 2.054601 2.358721 2.546838 +0.182644 0.253804 0.386248 0.614056 1.364821 1.545877 2.040174 2.218827 2.419010 2.624609 +0.295605 0.367794 0.690701 1.055162 1.186600 1.644453 1.944154 2.101444 2.562120 2.691268 +0.220878 0.289573 0.640307 0.822072 1.144055 1.567797 1.766410 1.908109 2.103459 2.560489 +0.403453 0.526298 0.732204 0.901150 1.035869 1.339383 1.783990 1.941961 2.371032 2.626653 +0.212825 0.258570 0.471588 0.685549 1.263740 1.821051 2.163822 2.288398 2.628063 2.788155 +0.401181 0.642053 1.032473 1.236110 1.444450 1.686678 2.006722 2.228515 2.572112 2.723964 +0.239433 0.341091 0.492629 0.707630 0.881426 1.030816 1.719255 2.344056 2.579063 2.756942 +0.294093 0.382770 0.577412 1.009281 1.313036 1.419303 1.744673 2.094230 2.289039 2.475843 +0.169805 0.236922 0.403314 0.638995 1.176446 1.352145 1.665573 1.909756 2.150120 2.716243 +0.210447 0.277913 0.452474 1.402686 1.513430 1.720944 1.903938 2.278499 2.583756 2.743179 +0.159574 0.225382 0.374008 0.714137 1.011253 1.371713 1.699162 1.871587 2.027056 2.491194 +0.258602 0.557253 0.819720 1.038856 1.301470 1.445358 1.830613 2.098171 2.320809 2.541075 +0.232756 0.282242 0.631974 0.898694 1.537444 1.869217 2.063967 2.234463 2.498226 2.633517 +0.580133 0.997946 1.320956 1.481874 1.731605 1.898579 2.120712 2.290128 2.530088 2.651657 +0.211840 0.307093 0.453360 0.945579 1.250815 1.490290 1.724135 2.281097 2.562699 2.752602 +0.314276 0.493555 0.667782 0.896500 1.323006 1.482618 1.667487 1.974415 2.427345 2.555679 +0.182455 0.261592 0.418011 1.050927 1.261387 1.443370 1.665467 1.939030 2.444695 2.638451 +0.241570 0.306934 0.491293 1.105950 1.554827 1.666520 1.923917 2.087652 2.367600 2.654889 +0.190084 0.254850 0.454062 0.724519 1.083362 1.393887 1.892335 2.088856 2.321764 2.484299 +0.306497 0.389831 0.721793 0.839714 1.124754 1.652401 1.822919 2.273310 2.569195 2.669599 +0.186200 0.273460 0.383201 0.564758 1.511073 1.845018 1.998284 2.194096 2.388693 2.587923 +0.300722 0.478218 0.823364 1.127490 1.591141 1.871349 2.174720 2.403181 2.624785 2.782405 +0.228884 0.358342 0.504622 0.795874 1.005622 1.152613 1.908053 2.124794 2.372473 2.797584 +0.171885 0.248234 0.432842 0.833143 1.040892 1.269289 1.661635 1.918629 2.158962 2.653403 +0.140943 0.193684 0.343025 0.562303 1.069552 1.543330 1.824473 1.961637 2.463513 2.770537 +0.173053 0.245656 0.360656 0.960618 1.589535 1.689906 1.984141 2.142998 2.588389 2.759403 +0.240180 0.429951 0.637440 0.786596 1.069147 1.226573 1.470883 1.952052 2.195064 2.615973 +0.367862 0.471897 0.730834 1.082320 1.226293 1.462927 1.928169 2.052466 2.406737 2.662458 +0.247175 0.358209 0.535946 0.781876 1.363697 1.635239 1.807233 1.993776 2.452769 2.601039 +0.445578 0.687898 1.114108 1.301027 1.577397 1.886042 2.224903 2.436534 2.659695 2.761031 +0.214389 0.336025 0.487794 0.759534 0.970518 1.141100 1.457335 1.624644 2.306922 2.715265 +0.377300 0.466775 0.716121 1.083781 1.256543 1.411238 1.789433 1.936372 2.205572 2.562355 +0.148362 0.214593 0.545023 0.840437 1.193325 1.480659 1.791868 2.083419 2.410537 2.676129 +0.150403 0.278398 0.792676 0.976680 1.218845 1.405245 1.775056 2.162458 2.547861 2.746383 +0.236301 0.328633 0.630867 0.839915 1.042349 1.298870 1.627752 1.839491 2.298928 2.493962 +0.337889 0.497920 0.711277 0.850420 0.992027 1.246884 1.710746 2.086682 2.527158 2.707162 +0.172215 0.236540 0.372897 0.525146 1.182577 1.735727 1.927035 2.114619 2.319170 2.542782 +0.415304 0.624807 0.906616 1.117841 1.446155 1.669417 1.948413 2.172815 2.504530 2.670754 +0.265417 0.407241 0.613894 0.816534 0.980063 1.156061 1.756747 2.274851 2.497193 2.712242 +0.276440 0.468209 0.649518 0.816686 1.195171 1.355517 1.549226 1.935272 2.217871 2.426979 +0.188925 0.277012 0.412665 0.672627 1.354807 1.514523 1.699988 2.144554 2.382186 2.586077 +0.242630 0.352485 0.912974 1.343781 1.604428 1.801867 2.014791 2.193072 2.460809 2.631999 +0.190903 0.285841 0.449070 0.760328 0.954285 1.182936 1.692638 1.878163 2.276840 2.465963 +0.220659 0.300374 0.721694 0.947306 1.298330 1.562980 1.760618 1.888247 2.506445 2.689675 +0.213168 0.290928 0.695227 0.918179 1.378186 1.631987 1.847886 2.003072 2.358358 2.619347 +0.328586 0.517244 0.937320 1.376238 1.574840 1.764347 2.058630 2.224334 2.584444 2.756653 +0.248486 0.367007 0.562147 0.750632 0.902785 1.147563 1.637415 1.912062 2.413993 2.605696 +0.310691 0.477895 0.670796 0.940507 1.418293 1.563497 1.805141 2.114076 2.376358 2.535155 +0.256555 0.414210 0.559427 0.981289 1.191646 1.378307 1.678398 1.849306 2.576704 2.756630 +0.291424 0.335003 0.750149 1.289655 1.437209 1.599989 1.803177 1.967415 2.601748 2.733761 +0.195254 0.279513 0.451755 0.649111 0.828694 1.609509 1.914906 2.091219 2.319589 2.534899 +0.222304 0.332624 0.475678 0.685205 1.030332 1.737223 1.920979 2.378290 2.706719 2.817726 +0.164833 0.240093 0.359862 0.801929 1.513677 1.641713 2.040524 2.248843 2.488659 2.714025 +0.214777 0.287322 0.572644 1.145070 1.367112 1.752687 2.042424 2.222067 2.543047 2.697885 +0.226099 0.330382 0.474439 0.687757 0.799187 1.319837 1.944566 2.078099 2.367800 2.508460 +0.244540 0.392163 0.553692 0.729765 1.247865 1.448376 1.617590 2.074636 2.340052 2.518064 +0.175381 0.314231 0.446023 0.797404 1.328458 1.439727 1.793346 1.939571 2.468800 2.721651 +0.205808 0.293670 0.452447 1.074268 1.288235 1.655635 1.857504 2.364687 2.639812 2.798144 +0.253926 0.392653 0.587584 0.800134 0.976310 1.185587 1.570687 1.821414 2.090893 2.349021 +0.322461 0.410912 0.723569 1.060644 1.201524 1.400360 1.579189 1.788759 2.460242 2.616602 +0.211266 0.304981 0.436011 0.771978 1.490623 1.677748 1.886227 2.113497 2.326353 2.727265 +0.235012 0.406911 0.864785 1.291485 1.708295 1.938554 2.179896 2.352404 2.563792 2.711446 +0.176814 0.268620 0.445837 0.823113 1.029776 1.271571 1.623388 1.811215 2.402140 2.614165 +0.241865 0.339268 0.507509 1.003677 1.204347 1.372561 1.940795 2.101371 2.385606 2.669975 +0.230878 0.334743 0.500370 0.879929 1.021894 1.533770 1.970789 2.128971 2.567262 2.717288 +0.297505 0.451574 0.748848 0.988527 1.366237 1.606668 1.894660 2.174481 2.521427 2.759168 +0.199265 0.271145 0.498160 0.854679 1.172103 1.364148 1.762079 1.969095 2.173538 2.311630 +0.222173 0.424864 0.564942 0.829809 1.038172 1.194055 1.720601 1.858086 2.431760 2.741461 +0.181961 0.226819 0.390513 0.556339 1.056596 1.553065 2.128349 2.258018 2.602497 2.802121 +0.357600 0.565047 1.153012 1.350312 1.533576 1.718542 1.957892 2.175347 2.505650 2.678495 +0.162257 0.236808 0.374039 0.570569 0.748034 1.172262 1.823392 2.053032 2.513769 2.772072 +0.305794 0.465870 0.645121 0.882650 1.141294 1.266856 1.701581 2.002881 2.184124 2.411254 +0.231652 0.380738 0.549642 0.837410 1.225266 1.332971 1.851582 2.119371 2.315077 2.732108 +0.235449 0.286771 0.684809 1.346663 1.526630 1.703476 2.101486 2.254546 2.577181 2.718994 +0.233870 0.446515 0.605080 0.814654 1.054963 1.178801 1.633158 1.849743 2.139379 2.732772 +0.271706 0.335152 0.857227 1.253741 1.387189 1.702170 1.896767 2.191114 2.479999 2.601359 +0.237386 0.314549 0.438339 0.912164 1.577764 1.877791 2.032790 2.197037 2.412322 2.536484 +0.361168 0.574093 1.023843 1.468517 1.690562 1.917374 2.187368 2.334035 2.669095 2.806291 +0.278480 0.398742 0.573342 0.839212 1.073888 1.222093 1.691681 2.165258 2.377410 2.536882 +0.286018 0.447947 0.615060 0.849446 1.319465 1.463583 1.769948 2.001035 2.189431 2.450384 +0.219440 0.301601 0.668534 0.861094 1.210001 1.498673 1.745120 1.877765 2.314377 2.619597 +0.223591 0.352153 0.598841 1.217893 1.359082 1.591744 1.771089 2.213856 2.561538 2.735416 +0.176857 0.236601 0.395107 0.634632 1.133495 1.335116 1.770374 1.981313 2.206556 2.339716 +0.334735 0.402265 0.659168 0.781639 0.975228 1.664999 1.872069 2.047533 2.476961 2.573979 +0.215968 0.284755 0.524241 0.781460 1.334811 1.772379 1.953878 2.194209 2.578250 2.741939 +0.298193 0.489879 0.812985 1.183691 1.496418 1.679975 2.108792 2.316557 2.673779 2.851610 +0.312989 0.415446 0.618011 0.899096 1.083683 1.263384 1.887396 2.243064 2.419448 2.570481 +0.244471 0.431115 0.601512 0.813139 1.102163 1.221061 1.692440 2.033163 2.221795 2.619838 +0.150949 0.219060 0.349217 0.611327 1.077112 1.250547 1.915518 2.083980 2.449999 2.792543 +0.161611 0.218964 0.445377 0.927863 1.451151 1.768464 2.130012 2.366724 2.666003 2.814049 +0.196000 0.297256 0.497266 0.691900 1.089877 1.273685 1.513723 2.006472 2.273782 2.572221 +0.335268 0.460795 0.685187 0.867664 1.013807 1.479554 2.011994 2.168476 2.572643 2.717564 +0.257604 0.340872 0.499757 0.843052 1.396548 1.831688 2.034226 2.170332 2.422618 2.540496 +0.417663 0.631718 0.955424 1.197319 1.659797 1.879883 2.168797 2.359053 2.578087 2.698249 +0.162052 0.251583 0.439900 0.660911 0.903902 1.320296 1.624758 1.778577 2.530531 2.799705 +0.256861 0.322803 0.685370 1.086437 1.263276 1.569879 1.851654 2.014946 2.264711 2.447006 +0.125192 0.176171 0.336135 0.781600 1.200220 1.439966 1.805419 2.077525 2.462470 2.738186 +0.102286 0.191322 0.774556 1.076151 1.369456 1.627146 1.973015 2.236001 2.609367 2.812985 +0.173442 0.232622 0.491622 0.844157 1.095241 1.370797 1.696966 2.051411 2.316061 2.502053 +0.257531 0.343598 0.654071 0.838985 1.048102 1.487473 1.725385 1.897417 2.430505 2.585998 +0.197900 0.276312 0.440283 0.705103 1.267341 1.740297 1.934483 2.154007 2.400200 2.624136 +0.409590 0.596785 0.983751 1.181770 1.371153 1.502380 1.758280 2.018571 2.380053 2.592151 +0.231819 0.332890 0.483514 0.644585 0.816808 0.926308 1.403298 2.233007 2.467857 2.678461 +0.258610 0.340064 0.670485 0.908467 1.107611 1.456243 1.759580 1.932179 2.113118 2.310135 +0.184377 0.249203 0.410806 0.587907 1.302501 1.510319 1.724432 1.981890 2.282904 2.422125 +0.254110 0.313328 0.659859 1.265819 1.412949 1.665930 1.927154 2.101984 2.551446 2.673030 +0.161592 0.237480 0.376535 0.637094 0.823028 1.137613 1.696425 1.875770 2.403632 2.639617 +0.384501 0.466812 0.740791 0.938093 1.062352 1.509284 1.749143 1.917797 2.548157 2.671506 +0.333872 0.419367 0.638994 1.092624 1.520550 1.649447 1.866619 2.148941 2.346723 2.506140 +0.426216 0.686997 1.235881 1.428854 1.611591 1.792860 2.017593 2.233715 2.547773 2.696609 +0.262949 0.367509 0.530429 0.741867 0.872474 1.069602 1.745566 2.061187 2.283843 2.494178 +0.335782 0.547236 0.716211 0.919077 1.275686 1.408437 1.685118 1.967394 2.217639 2.446679 +0.227629 0.330991 0.486068 1.117571 1.304983 1.510130 1.757258 1.946972 2.625557 2.782597 +0.359850 0.436633 0.750634 1.201513 1.337571 1.594835 1.970273 2.113840 2.573808 2.729963 +0.211871 0.304028 0.512758 0.663762 1.086354 1.633335 1.818017 2.129577 2.391080 2.600766 +0.196092 0.279726 0.434488 0.624802 0.772358 1.404377 1.948777 2.160918 2.629996 2.775175 +0.176304 0.262521 0.373719 0.581101 1.520108 1.736172 1.933230 2.140172 2.358130 2.753524 +0.254932 0.381411 0.806187 1.102292 1.534523 1.750280 1.970904 2.159871 2.455922 2.658405 +0.190385 0.288656 0.449066 0.678174 0.812376 1.449326 1.728657 1.966320 2.638812 2.789546 +0.251178 0.386509 0.609363 0.797102 1.024159 1.181726 1.454661 2.012630 2.493092 2.698933 +0.166654 0.266226 0.385171 0.711990 1.397897 1.532347 1.915974 2.088003 2.565270 2.789532 +0.238453 0.306036 0.449309 0.876277 1.521437 1.933982 2.134420 2.267986 2.537601 2.658253 +0.161634 0.219919 0.353206 0.524346 0.961806 1.207713 1.687918 1.916939 2.161870 2.320657 +0.413612 0.597095 0.793763 0.986290 1.281786 1.412660 1.652465 2.016091 2.384164 2.528578 +0.228655 0.341562 0.480989 0.988605 1.371003 1.477423 1.861026 2.015852 2.339752 2.773153 +0.259092 0.597012 0.985224 1.321740 1.643354 1.957367 2.288682 2.497474 2.716492 2.844467 +0.185652 0.304664 0.446232 0.864434 1.091795 1.273770 1.942575 2.095543 2.524648 2.768245 +0.176687 0.256678 0.745652 0.934909 1.283760 1.440062 1.765242 2.122092 2.388099 2.590551 +0.189805 0.275637 0.440995 0.821356 1.256020 1.410985 1.929781 2.120144 2.396030 2.604643 +0.266823 0.337688 0.819408 1.134754 1.289204 1.777028 1.982886 2.221748 2.590286 2.698098 +0.205348 0.276512 0.527305 0.727412 1.024647 1.653979 1.904178 2.046613 2.217922 2.455661 +0.293498 0.424494 0.613795 0.956130 1.133981 1.324804 1.809031 1.953922 2.293854 2.575884 +0.183120 0.249650 0.376204 0.543914 1.350827 1.907220 2.092551 2.255705 2.514391 2.687901 +0.541205 0.789796 1.058955 1.269415 1.503899 1.702191 1.970176 2.175444 2.496810 2.652238 +0.229326 0.339475 0.451881 0.661210 0.795832 1.073796 2.027104 2.206371 2.478903 2.726784 +0.330006 0.506868 0.673076 0.887406 1.228765 1.349226 1.781290 2.086583 2.277762 2.480029 +0.138389 0.200001 0.396259 0.811975 1.090712 1.460413 1.745493 1.904269 2.348250 2.699886 +0.176584 0.242161 0.378270 1.177848 1.564718 1.678166 1.951618 2.121413 2.580109 2.737132 +0.145852 0.198423 0.335644 0.550505 1.019727 1.371188 1.797635 1.943825 2.207490 2.746470 +0.385078 0.503696 0.703239 1.069987 1.365736 1.472054 1.825827 2.159636 2.371283 2.520972 +0.284950 0.388050 0.507352 0.879125 1.523530 1.776238 1.929597 2.157558 2.447986 2.586398 +0.491116 0.756155 1.255200 1.522460 1.776579 2.028121 2.286059 2.429774 2.679106 2.776164 +0.252477 0.396081 0.713022 0.861502 1.152223 1.370802 1.614010 2.144798 2.574072 2.712530 +0.282756 0.438437 0.613566 0.847746 1.260772 1.379059 1.642202 2.137540 2.368369 2.522163 +0.203971 0.322195 0.479842 0.953133 1.211278 1.397635 1.800812 1.954516 2.403478 2.573713 +0.264533 0.358424 0.628768 1.111242 1.340246 1.506485 1.999590 2.194109 2.461411 2.667361 +0.177730 0.223680 0.394553 0.556177 0.947415 1.500640 1.733528 1.926046 2.261466 2.436054 +0.314223 0.363636 0.727886 0.851880 1.053844 1.798132 1.974354 2.182595 2.537995 2.629683 +0.201778 0.275500 0.404891 0.747466 1.500050 1.841184 1.998843 2.226807 2.481989 2.669506 +0.132164 0.314955 0.821473 1.196038 1.426590 1.699934 2.036856 2.323497 2.685471 2.828965 +0.223374 0.347335 0.507730 0.773547 0.967916 1.134129 1.991403 2.306567 2.521364 2.788746 +0.312742 0.449784 0.583287 0.934234 1.268567 1.365063 1.569295 1.687046 2.077299 2.595022 +0.124286 0.162126 0.290730 0.654031 1.231658 1.538458 1.893070 2.184784 2.562637 2.798224 +0.177049 0.251654 0.367891 0.912504 1.557576 1.693045 1.898991 2.072136 2.350163 2.646045 +0.240517 0.378333 0.547809 0.754272 0.973321 1.103670 1.574418 2.028049 2.211127 2.562709 +0.427795 0.519003 0.771284 0.937240 1.086617 1.609879 1.878750 2.052791 2.534118 2.657149 +0.224370 0.317969 0.439666 0.812931 1.398497 1.626632 1.794178 2.114000 2.309157 2.496836 diff --git a/src/codebook/lspjmv2.txt b/src/codebook/lspjmv2.txt new file mode 100644 index 0000000..2b7cabf --- /dev/null +++ b/src/codebook/lspjmv2.txt @@ -0,0 +1,513 @@ +5 512 +0.005167 -0.037310 -0.002159 0.016849 0.130396 +0.039445 0.031680 -0.074412 -0.031499 0.060536 +0.019479 -0.030564 -0.048137 -0.056279 -0.027829 +0.020585 -0.011270 0.023913 -0.005706 0.011407 +-0.023217 0.107455 -0.037777 0.004070 -0.017279 +-0.090444 0.007641 0.099001 -0.047913 -0.017199 +0.022700 -0.063865 0.047213 0.043843 -0.036225 +0.001312 -0.123861 -0.038988 0.058666 0.074541 +0.039508 0.110300 0.013954 -0.119228 -0.035807 +-0.047392 0.027035 -0.004412 -0.032650 -0.037150 +0.002491 -0.045447 0.158260 0.022828 -0.030124 +-0.047856 0.088744 -0.009678 0.106688 0.087690 +-0.027941 0.044084 -0.028500 0.018736 -0.069969 +-0.035358 -0.051568 -0.030459 -0.017899 0.027632 +-0.018607 -0.123557 0.019228 0.057485 -0.028907 +0.019057 0.038151 -0.080220 0.034222 0.023081 +0.021312 0.041905 0.112903 0.024092 0.093974 +-0.116679 0.015344 -0.066059 -0.096437 0.004041 +-0.022464 -0.116260 0.047819 -0.003921 -0.073504 +0.001975 -0.025869 0.028200 0.122690 0.010627 +-0.035672 0.078963 -0.009686 0.000743 -0.147582 +0.016932 -0.020291 -0.096896 -0.237875 -0.029121 +0.017376 -0.040130 -0.053865 0.154060 -0.013215 +0.015215 -0.019023 -0.070604 0.032265 0.040340 +0.102365 -0.022746 0.019895 0.050570 0.008845 +-0.034134 0.044441 -0.049387 -0.140481 0.072570 +0.013023 -0.006079 0.037574 0.004937 -0.081501 +0.003696 0.049908 0.007355 0.000403 0.026006 +-0.008466 0.080680 0.061382 -0.108985 -0.088060 +-0.012275 -0.081061 0.020333 -0.079001 0.068724 +-0.014081 -0.042609 0.093365 0.044120 0.000303 +0.063391 0.096574 -0.105424 0.039041 0.010412 +-0.054031 -0.084948 0.080406 -0.035883 0.137428 +0.063037 0.050562 0.024690 -0.031394 0.130320 +-0.015501 -0.078884 -0.076886 -0.013864 -0.073587 +0.048778 0.003814 -0.031125 0.046897 0.028304 +0.048692 0.132795 0.065450 0.059487 -0.042396 +-0.176999 0.056943 -0.004135 -0.049378 -0.041083 +-0.039445 -0.016292 -0.004550 0.062010 -0.079613 +-0.054566 -0.008476 -0.016710 0.049202 0.025758 +-0.078723 0.092091 0.096536 -0.065079 0.021161 +0.076657 0.009203 -0.036866 -0.016559 0.012823 +0.008225 -0.003006 0.108033 0.043120 -0.060870 +-0.019346 0.022790 -0.001728 0.062304 -0.016965 +-0.001302 -0.014490 -0.041803 -0.034058 -0.197066 +-0.033655 -0.127217 -0.108681 -0.010571 -0.004705 +-0.015553 -0.086069 0.034109 -0.101379 0.002068 +-0.004003 -0.044637 -0.068617 0.052228 -0.047812 +-0.043307 0.035681 0.042207 -0.055946 0.055944 +-0.026792 -0.012601 -0.056710 -0.021094 0.105842 +-0.025598 -0.078858 -0.013487 0.030728 -0.031956 +0.031444 0.022763 0.025364 0.121366 0.070736 +-0.084556 0.098118 -0.024301 -0.058655 -0.043194 +-0.011752 -0.043781 0.091051 -0.071201 -0.020980 +0.082904 -0.031657 -0.088247 0.066709 -0.079182 +-0.012151 0.011796 -0.010589 0.100656 0.094539 +0.035967 0.025338 0.071826 0.009741 -0.040209 +0.006866 -0.015095 -0.168469 -0.056133 0.060145 +0.045830 -0.068969 0.034551 0.015842 -0.092809 +0.054699 0.138744 0.001726 0.006927 0.005167 +0.016978 0.046384 -0.060183 -0.040742 -0.072692 +-0.022489 -0.029728 -0.065018 -0.124741 0.044927 +-0.029057 -0.037154 0.031068 0.060086 0.009984 +0.009311 -0.006957 -0.105508 0.059637 -0.019564 +-0.068154 -0.066443 0.000799 0.028579 0.097063 +0.096936 0.030230 -0.034623 -0.088918 0.040334 +0.019439 -0.050707 -0.003294 -0.028505 -0.053599 +0.062460 -0.070688 -0.016465 -0.035680 0.017378 +0.009363 0.048761 0.043374 0.039587 -0.023232 +-0.067033 0.042663 0.054070 -0.042797 -0.089391 +-0.030497 -0.050249 0.059528 0.089089 -0.029633 +0.064125 -0.086614 -0.002005 0.080620 0.000502 +-0.003490 0.097336 0.099565 0.015648 0.006691 +0.077668 0.016572 0.035404 -0.046026 0.017237 +-0.048631 0.009314 0.141479 0.017079 0.043796 +-0.106474 0.145951 0.057740 0.011250 -0.059443 +0.027572 0.026650 0.008527 0.002949 -0.037680 +-0.077991 -0.090617 0.003420 -0.046010 0.007354 +0.019056 -0.128651 0.016464 0.004584 -0.030883 +-0.092069 0.038976 -0.081840 0.066695 -0.047340 +0.003513 0.040613 0.046815 -0.023406 0.062389 +0.021759 0.024928 -0.018922 -0.048006 0.063800 +-0.014416 -0.050333 0.042628 -0.114934 -0.101450 +0.062139 0.029295 -0.065908 0.111463 0.050781 +-0.022707 0.135414 0.003548 0.134535 -0.048259 +-0.092344 -0.027727 0.016343 -0.060786 -0.081502 +-0.005412 -0.026229 -0.143331 0.052404 -0.077298 +-0.035919 -0.041968 -0.106108 -0.004369 0.065028 +0.096370 -0.053299 0.043317 -0.049735 0.049815 +0.032324 0.051309 -0.009607 -0.205917 0.005023 +-0.054316 -0.022895 0.099327 -0.006927 -0.076574 +-0.111024 0.111026 0.038381 -0.060368 0.064238 +-0.034316 0.026846 0.025740 -0.076162 -0.163904 +0.055955 -0.056885 0.014831 -0.120715 0.090938 +0.035289 -0.036439 0.060012 0.080302 0.036215 +0.065250 0.083030 -0.058784 0.104826 -0.051805 +-0.011099 -0.006420 0.053042 0.024127 0.092534 +0.058569 -0.033442 0.025186 -0.018222 0.117744 +0.044345 -0.042456 -0.043767 -0.021378 -0.121965 +0.027371 0.052731 -0.020316 0.036912 0.115357 +0.031150 0.041547 0.059267 -0.039672 -0.086918 +-0.162369 0.024801 0.031725 0.083400 -0.034463 +0.000272 -0.008147 -0.002016 0.131953 -0.092911 +-0.091944 -0.062864 -0.005221 0.063647 -0.012658 +0.042685 0.067952 0.038644 -0.153221 0.096841 +0.108299 0.089446 -0.047164 0.004196 -0.043268 +-0.035456 0.050838 0.070444 0.084465 -0.079980 +-0.048916 0.057726 0.023894 0.027653 0.017775 +0.015461 -0.030287 -0.022245 0.052081 -0.150947 +-0.002682 -0.056774 -0.123366 -0.091754 0.006536 +0.006473 -0.143025 0.054690 -0.043189 0.032970 +0.027446 0.033127 -0.132722 -0.010417 -0.080097 +-0.018187 0.001858 0.111290 -0.090749 0.059434 +-0.068738 0.090679 -0.145070 -0.065277 0.063514 +-0.003982 -0.056382 -0.003673 0.015845 -0.073396 +0.043688 0.002836 0.069211 0.124852 -0.053313 +-0.040946 0.070440 -0.107024 -0.019199 -0.033672 +-0.001440 0.021680 0.110595 -0.053452 -0.052426 +0.035461 -0.028179 -0.049041 0.022580 -0.010989 +-0.002913 -0.051691 -0.075881 0.037241 0.076377 +0.034735 -0.031556 0.073516 -0.001427 0.016296 +-0.017537 0.003346 -0.099774 -0.067624 -0.044257 +-0.018202 0.030622 0.012773 0.046475 -0.121785 +-0.057265 0.116179 -0.079916 0.066396 0.050104 +-0.013177 0.057766 -0.047879 -0.109526 -0.146491 +0.032675 -0.049318 -0.057045 -0.080068 0.089621 +-0.046564 -0.029992 0.040828 0.029281 -0.037369 +-0.009731 -0.082145 -0.117622 0.117077 0.037369 +0.000820 -0.106634 -0.007967 0.000812 0.140637 +0.036530 0.062121 -0.065504 -0.094930 0.121336 +0.017530 -0.017330 -0.040402 -0.018255 0.010992 +0.019746 -0.027564 0.033588 0.042466 -0.003143 +0.013767 0.084179 0.033753 -0.017279 -0.009676 +-0.006452 0.032645 0.031852 -0.030975 -0.043384 +-0.005433 -0.015258 0.053273 0.054748 -0.064736 +0.008959 -0.141223 -0.032957 -0.015079 0.018198 +-0.001681 0.143079 0.076000 0.001037 -0.048744 +0.022062 0.026030 -0.008263 -0.050353 -0.023037 +-0.036477 -0.051733 0.137823 -0.034438 -0.007573 +-0.004256 0.064218 0.075183 0.095106 0.026497 +0.026360 0.009791 -0.058039 0.053315 -0.077817 +-0.033283 -0.081151 -0.055220 0.004268 0.017539 +-0.007329 -0.117200 0.093220 0.037359 0.002718 +0.010749 0.018281 -0.075800 -0.024889 0.005720 +0.022129 0.035613 0.036187 0.032246 0.105439 +-0.073766 0.016887 -0.059934 -0.049471 0.073520 +-0.024041 -0.104642 0.023557 -0.059746 -0.043871 +0.022311 -0.000250 -0.074027 0.198593 0.102732 +0.024478 0.077658 -0.060042 -0.018229 -0.149648 +-0.009871 -0.105822 0.007585 -0.161459 -0.041121 +-0.021460 0.009020 -0.065018 0.111801 -0.024953 +0.074594 -0.026041 -0.062859 0.009199 0.069609 +0.078672 -0.033414 0.054128 0.005408 -0.016273 +0.052076 0.107610 -0.067518 -0.096400 0.033703 +-0.014350 -0.024676 0.056254 -0.043770 -0.060847 +-0.004185 0.073550 -0.057830 -0.016644 0.029096 +0.005755 0.026472 0.040449 -0.091950 -0.048538 +-0.034439 -0.107938 0.090712 -0.117001 0.043170 +-0.006505 -0.035277 0.117316 0.127002 0.047906 +-0.001441 0.118379 -0.132165 0.007380 0.023823 +-0.020120 -0.083725 0.047284 0.023795 0.074123 +-0.013439 0.024994 0.060254 -0.069120 0.166373 +-0.024228 -0.063150 -0.046506 -0.077202 -0.054592 +-0.006571 0.010335 -0.006568 0.003982 0.075837 +0.008643 0.136339 -0.005502 0.033910 -0.066379 +-0.127371 -0.006954 0.039770 -0.070123 0.060925 +-0.046386 -0.026420 -0.005280 0.103509 -0.022310 +-0.003740 -0.014999 -0.037770 0.080005 0.025231 +-0.054995 0.071017 0.009442 -0.075737 0.013441 +0.051947 0.027097 -0.070351 -0.055705 -0.021115 +0.021387 0.029232 0.163331 -0.032380 0.010008 +-0.011987 -0.028631 0.002665 0.014770 -0.009558 +-0.034325 0.015830 -0.091253 -0.012677 -0.107378 +-0.034624 -0.047725 -0.102330 0.042525 -0.006869 +0.014048 -0.043127 0.052384 -0.047473 0.055102 +0.009744 -0.033646 -0.081755 -0.001464 -0.016223 +-0.036697 -0.002279 0.023279 -0.036221 0.101478 +-0.058454 0.065074 0.003524 0.005010 0.097182 +-0.038171 -0.037943 -0.009994 -0.033355 -0.044552 +0.041318 0.065041 0.000092 0.100816 0.029007 +-0.031803 0.183537 -0.009617 -0.010544 -0.028465 +0.006900 -0.014988 0.090490 -0.174817 0.027464 +0.063314 -0.049281 -0.001567 0.091421 -0.078603 +-0.004869 -0.063266 -0.001922 0.069338 0.081771 +0.058737 0.073195 0.081676 -0.047808 -0.025797 +-0.004185 0.033203 -0.125472 -0.108148 0.031258 +0.035192 0.029957 0.046675 0.047238 -0.088197 +0.033315 0.114919 -0.049180 0.025707 0.053843 +0.035182 0.140206 -0.058660 -0.025978 -0.019658 +-0.014847 -0.021051 -0.034385 -0.121789 0.173406 +-0.112251 -0.022333 0.071206 0.028998 0.046468 +0.067704 -0.026159 -0.158316 0.014936 0.040216 +-0.010137 -0.053492 0.004935 -0.011277 0.073852 +0.091261 0.114794 -0.014060 -0.051545 0.077316 +0.101258 -0.046137 0.022994 -0.066767 -0.065537 +0.049952 -0.043582 0.012823 0.009313 0.036343 +0.054885 0.037796 0.021940 0.013211 0.006019 +-0.099578 0.058596 -0.045463 -0.015632 -0.087141 +-0.019273 -0.033140 0.043796 0.119057 -0.081813 +-0.021538 -0.070453 -0.052551 0.077213 0.000094 +0.050268 0.092271 0.051688 -0.025224 0.075437 +0.027983 0.069205 0.031787 -0.099975 0.004387 +-0.002747 -0.056567 0.161394 0.000164 0.084189 +-0.124844 0.050329 0.009844 0.055877 0.055701 +0.030479 0.028843 -0.001076 -0.017173 -0.102770 +-0.038426 -0.133841 -0.035840 -0.072046 0.020206 +0.016438 -0.097885 0.041857 0.034601 0.030422 +-0.089192 -0.014112 -0.052276 0.012005 -0.029335 +-0.011331 0.101833 0.063827 0.044288 0.101597 +-0.034689 -0.027434 -0.017801 -0.079224 0.067103 +-0.027456 -0.098034 0.009448 -0.038986 -0.156729 +0.085023 0.033136 -0.021343 0.110701 -0.011901 +-0.006484 0.082023 -0.027094 0.091208 -0.013163 +-0.012223 0.005933 0.010653 -0.098119 -0.005304 +-0.021061 -0.058077 -0.073035 0.097856 -0.102847 +-0.035329 -0.092754 -0.101463 -0.048671 0.055015 +0.102145 0.062017 0.016002 0.036489 0.059000 +0.042861 0.025447 -0.019735 -0.107841 -0.033752 +-0.043982 -0.067059 0.051092 0.025235 -0.147107 +-0.016269 0.123009 0.035894 -0.020453 0.040013 +0.015557 0.015825 0.080712 -0.069630 -0.149739 +0.022006 -0.008848 0.040169 -0.095688 0.059575 +-0.030641 -0.061353 0.046302 0.104489 0.043372 +-0.001579 0.059737 -0.104073 0.042342 -0.048611 +-0.013811 -0.056255 0.107179 0.057433 0.084815 +0.030217 0.022360 -0.040342 -0.028775 0.120588 +0.041270 -0.045775 -0.030195 -0.106859 -0.104349 +0.072418 -0.003603 -0.013072 0.040728 0.086869 +0.091943 0.066517 0.024442 -0.030929 -0.032920 +-0.160336 -0.010347 -0.068458 0.017458 0.044823 +0.050694 0.067625 0.040303 0.113164 -0.038747 +-0.065558 -0.106357 -0.028352 0.121488 0.026548 +-0.007820 0.054872 0.094674 -0.099533 0.005231 +0.118132 0.042780 -0.065079 0.031440 0.043229 +-0.050024 0.015943 0.073917 0.034049 0.010548 +-0.024979 0.022639 0.027795 0.049491 0.048762 +-0.002738 -0.010783 -0.027637 -0.006986 -0.104141 +-0.066719 -0.061742 -0.067028 -0.053057 -0.003478 +-0.050948 -0.122196 0.022082 0.002595 0.015094 +0.006014 0.005784 -0.184537 -0.034872 -0.036104 +0.055412 0.006886 0.103488 -0.063001 0.096665 +-0.035533 0.009847 -0.095114 0.008588 0.023736 +-0.034278 -0.111970 -0.041172 0.039730 -0.102952 +0.063775 0.039273 0.109863 0.091800 0.030306 +-0.082206 0.089449 -0.058478 -0.029341 0.038389 +0.061057 -0.024711 0.111044 -0.035079 -0.027985 +0.014570 0.002046 -0.031545 0.058848 -0.019500 +-0.002475 -0.025589 -0.144358 0.063478 0.124927 +-0.014094 -0.010970 0.031621 -0.040043 0.004389 +0.025003 0.052397 -0.054526 -0.073469 0.026795 +-0.024697 0.024739 0.118299 0.014948 -0.132109 +0.020192 0.037815 -0.090270 0.049313 0.082764 +-0.022642 -0.006053 -0.038073 -0.057363 -0.107347 +0.033166 -0.027556 -0.019765 -0.111958 0.027773 +-0.063001 -0.052998 0.019353 -0.009646 -0.011270 +0.011872 -0.006508 -0.122226 0.059824 0.041779 +0.016445 -0.031890 -0.036310 0.013085 0.091631 +0.062866 0.054501 -0.117523 -0.010907 0.087026 +-0.014974 -0.035920 -0.048565 -0.019246 -0.043405 +-0.006959 0.006211 0.042370 0.014603 -0.006435 +0.019149 0.078038 -0.020556 0.018114 -0.036521 +-0.054036 0.007325 0.056349 -0.033497 -0.025960 +0.050184 -0.066536 0.091501 0.071356 -0.049044 +-0.032263 -0.095268 -0.008784 0.049033 0.036929 +0.020357 0.152151 0.040814 -0.063159 -0.024324 +-0.017084 0.011876 -0.015442 -0.019811 -0.000366 +-0.002700 -0.072981 0.109288 0.007473 -0.049442 +-0.054040 0.051947 0.019359 0.129160 0.021981 +0.002248 0.035262 -0.023141 0.064666 -0.078273 +-0.031663 -0.031343 -0.006058 -0.045421 0.017466 +-0.067122 -0.130784 0.067057 0.052460 -0.041165 +-0.004411 0.046453 -0.055461 0.048162 -0.009687 +0.021530 0.007211 0.104764 0.079849 0.086248 +-0.072791 0.001112 -0.027964 -0.071233 -0.013339 +0.007979 -0.118231 0.076826 -0.060762 -0.084358 +-0.011447 0.009765 0.014163 0.164784 -0.015892 +-0.020756 0.152509 -0.014014 -0.041853 -0.117008 +-0.011755 -0.005766 -0.086896 -0.139650 -0.032342 +0.025651 -0.007843 -0.039073 0.103397 -0.042591 +-0.005971 -0.001324 -0.053945 -0.000716 0.048977 +0.130185 0.028226 0.061179 0.024489 -0.021939 +-0.007019 0.054336 -0.010040 -0.095411 0.082406 +-0.032130 -0.015054 0.033059 0.002802 -0.080159 +-0.022452 0.077426 -0.015314 0.033583 0.028479 +0.023293 0.035078 0.006442 -0.110541 -0.106244 +-0.034737 -0.104140 -0.034570 -0.114316 0.079382 +0.006009 0.003901 0.080081 0.055082 0.012896 +0.064981 0.057219 -0.112986 0.003906 -0.028414 +-0.012383 -0.054541 0.077483 0.004267 0.123567 +0.007369 0.099856 0.023273 -0.028194 0.122030 +-0.036635 -0.126589 -0.034567 -0.028288 -0.065040 +0.014280 0.011435 -0.004867 0.043901 0.035395 +0.028599 0.075858 0.118460 0.070581 -0.051903 +-0.170905 0.050352 0.053514 -0.017139 0.021748 +-0.096610 0.008904 -0.001049 0.078787 -0.101201 +-0.026229 -0.019757 -0.035771 0.054142 0.068041 +-0.020328 0.099979 0.096623 -0.046957 -0.001733 +0.049586 0.052458 -0.031724 -0.028332 -0.005418 +0.046710 0.014238 0.133125 -0.005428 -0.080055 +-0.033226 0.034007 0.025272 0.033924 -0.044662 +-0.034690 -0.079173 -0.160689 -0.153893 -0.228771 +-0.002450 -0.083966 -0.168294 0.010694 -0.012167 +0.000004 -0.044377 0.023373 -0.077437 0.012178 +-0.015899 -0.010828 -0.062847 0.029927 -0.074557 +-0.053306 0.049688 0.057017 -0.022571 0.015337 +-0.046545 0.018895 -0.024848 -0.004424 0.165442 +-0.060201 -0.098629 -0.065190 0.036582 -0.038566 +0.051453 0.093478 0.039619 0.117535 0.090386 +-0.029366 0.108075 -0.016568 -0.093576 -0.048799 +-0.045599 -0.023619 0.070072 -0.109294 0.001548 +0.076285 -0.091274 -0.068829 0.000215 -0.046519 +-0.022512 -0.027067 0.014905 0.079017 0.140699 +0.061141 0.009178 0.097811 0.033468 -0.006666 +0.007163 -0.007578 -0.124238 -0.025271 0.017581 +0.042405 -0.034252 0.064890 0.002500 -0.139083 +0.009733 0.158179 0.014474 0.038913 0.056290 +-0.004998 0.075401 -0.030557 -0.038595 -0.049070 +-0.014680 -0.076306 -0.132365 -0.177693 0.091760 +-0.057238 -0.072379 0.050877 0.051489 0.028125 +0.004991 0.032621 -0.167359 0.041002 -0.007072 +-0.086405 -0.042263 -0.019757 -0.011524 0.066004 +0.085670 0.008071 -0.013614 -0.062142 0.083280 +0.000887 -0.075820 0.008295 -0.020136 -0.016886 +0.089657 -0.106260 -0.051491 -0.012687 0.054778 +0.011535 0.086613 0.053803 0.027164 -0.023825 +-0.040009 0.080987 0.026309 -0.000334 -0.085288 +-0.024208 -0.085040 0.096077 0.120527 -0.044181 +0.003034 -0.091142 0.006471 0.115971 -0.026358 +0.003489 0.083633 0.109975 -0.029425 0.061726 +0.056115 -0.006711 0.013158 -0.062917 -0.015029 +0.003354 0.031574 0.119045 0.022859 0.023777 +-0.068292 0.115604 0.031617 0.008953 0.006943 +0.014420 0.008569 -0.031547 -0.006857 -0.051690 +-0.086683 -0.108339 0.005093 -0.108646 -0.034720 +0.054273 -0.096753 0.050806 -0.021115 -0.025278 +-0.079997 0.027008 -0.034211 0.090949 0.005678 +0.019288 0.042083 0.062119 0.019301 0.040859 +-0.009113 0.022427 -0.004019 -0.060890 0.032884 +-0.012373 -0.037976 0.017625 -0.079369 -0.050788 +0.079720 -0.039347 -0.085324 0.091044 0.026653 +-0.063122 0.099371 -0.024736 0.084631 -0.100421 +-0.073313 0.014317 0.022555 -0.116051 -0.063966 +-0.009688 -0.063666 -0.131709 0.016744 -0.135028 +-0.003708 -0.043685 -0.121631 -0.036930 0.125776 +0.084333 0.010114 0.071231 -0.010395 0.059391 +0.017760 0.033034 -0.018996 -0.130540 0.025758 +-0.018261 -0.060044 0.127025 -0.032724 -0.107299 +-0.064538 0.090073 -0.010186 -0.066127 0.107025 +-0.010940 0.003083 0.019030 -0.023935 -0.140176 +0.003549 -0.042402 -0.010695 -0.185915 0.060835 +0.005405 -0.013822 0.029205 0.079338 0.068155 +0.071485 0.030282 -0.087207 0.073480 -0.027940 +0.004896 -0.033246 0.072637 0.018017 0.054712 +0.026184 -0.005287 0.034456 -0.036753 0.079232 +0.072707 0.004506 -0.039353 -0.015560 -0.071466 +0.010257 0.067446 -0.006598 0.047396 0.072218 +0.023405 0.082663 0.015319 -0.035436 -0.075461 +-0.124036 -0.032046 0.060837 0.010231 -0.053024 +0.022800 0.042891 -0.041549 0.132395 -0.095330 +-0.077091 -0.058554 -0.070632 0.047570 0.031856 +0.000127 0.114996 0.058660 -0.092472 0.064503 +0.096450 0.066200 -0.001059 0.039487 -0.032859 +-0.065721 0.001601 0.088037 0.059828 -0.047411 +-0.077714 0.010275 0.013629 0.003304 0.005407 +0.000665 0.012927 -0.077525 0.069202 -0.157417 +0.014547 -0.095965 -0.087546 -0.067375 -0.027867 +0.005458 -0.095839 0.105294 -0.044892 0.045151 +-0.001349 0.038356 -0.127152 -0.080503 -0.105423 +-0.018484 0.008439 0.104398 -0.027959 0.082086 +-0.020605 0.042785 -0.109139 -0.025958 0.079733 +0.036289 -0.083773 -0.033819 0.032566 -0.065556 +0.006659 0.002090 0.097027 0.115715 -0.013271 +-0.067514 0.128365 -0.089129 0.026160 -0.040584 +-0.002443 -0.017254 0.129204 -0.110078 -0.064943 +0.089215 -0.022299 -0.034959 0.022446 -0.019254 +-0.038900 -0.069862 -0.070540 0.069949 0.111993 +-0.006311 -0.009057 0.094278 -0.014932 0.003657 +-0.019323 0.026145 -0.062611 -0.073753 -0.007182 +0.014101 0.015776 0.052537 0.064728 -0.160187 +-0.005122 0.076356 -0.104763 0.091493 0.020225 +-0.000433 0.062698 -0.060457 -0.147540 -0.066168 +0.007195 -0.061498 -0.037801 -0.039763 0.059551 +-0.028410 -0.074510 0.057667 0.020584 -0.042510 +-0.025311 -0.037825 -0.188010 0.077423 0.030749 +-0.025465 -0.067541 0.003073 -0.049778 0.127789 +0.002786 0.120009 -0.067812 -0.026565 0.111272 +0.023219 -0.024403 -0.014507 -0.048624 0.022163 +0.014596 -0.052136 0.001580 0.064595 0.017963 +0.021330 0.098862 -0.009253 -0.041062 0.008903 +-0.013829 0.031967 0.076571 -0.005348 -0.044010 +0.031252 0.000369 0.036818 0.072854 -0.038569 +0.004161 -0.128017 -0.053152 0.050896 -0.015212 +-0.036159 0.097995 0.068397 -0.048472 -0.056131 +-0.011920 0.059188 0.010215 -0.061152 -0.011717 +-0.035949 -0.057039 0.090859 -0.029682 0.041466 +-0.025106 0.131191 0.059327 0.085383 0.021699 +0.049230 0.036630 -0.077086 0.017806 -0.088790 +0.004040 -0.069533 -0.026785 0.009666 0.014017 +-0.055897 -0.096299 0.120693 0.029995 0.032602 +-0.001365 0.034015 -0.053512 0.001573 -0.019170 +0.003956 0.006452 0.067313 0.028301 0.160615 +-0.053111 0.013990 -0.027060 -0.013638 0.039376 +-0.054462 -0.096553 0.079994 -0.043791 -0.025051 +-0.003222 0.019418 -0.049525 0.151136 0.034123 +0.055117 0.058918 -0.017393 0.026169 -0.126380 +-0.019008 -0.028939 -0.014027 -0.173373 -0.032841 +-0.003370 0.039680 -0.118311 0.114094 -0.041869 +0.041121 -0.038391 -0.096074 -0.032479 0.060222 +0.063968 -0.024528 0.018158 -0.009892 -0.043882 +-0.005004 0.129800 -0.025438 -0.121186 0.049860 +0.010448 -0.040388 0.061853 -0.017304 -0.035088 +-0.008678 0.061476 -0.039493 -0.005055 0.079169 +0.046134 0.009770 0.068294 -0.078965 -0.043792 +-0.030529 -0.053845 0.053853 -0.140682 0.111461 +0.003549 -0.014939 0.148955 0.072861 0.004332 +0.015386 0.062006 -0.122325 -0.032529 0.010241 +-0.047982 -0.126440 0.055840 0.067128 0.101189 +-0.002630 0.031969 0.046076 -0.080194 0.104740 +-0.033486 -0.077818 -0.058697 -0.095258 -0.111074 +0.037236 0.011711 0.001113 -0.005664 0.048588 +0.041131 0.098257 0.033126 0.029317 -0.095311 +-0.071555 -0.039999 0.026678 -0.072182 0.035031 +-0.007997 -0.048174 -0.006796 0.075959 -0.052060 +-0.007645 0.037076 -0.035574 0.085576 0.034126 +-0.050676 0.051430 0.031999 -0.134308 -0.001489 +0.084564 -0.018394 -0.097410 -0.042931 -0.025608 +-0.025489 0.041919 0.142482 0.004617 -0.041085 +-0.028816 -0.015527 -0.031005 0.028405 -0.022240 +-0.067737 -0.025241 -0.052578 0.012322 -0.120556 +0.016278 -0.081744 -0.099160 0.025144 0.025441 +0.003176 -0.073871 0.031718 -0.028622 0.029031 +0.017910 -0.030693 -0.104215 -0.015422 -0.065738 +-0.048346 -0.012847 0.046849 -0.008621 0.058771 +-0.054495 0.031597 -0.038844 0.043138 0.092588 +-0.071371 -0.059093 -0.001197 0.001766 -0.074762 +0.029470 0.089616 0.005009 0.052977 0.015899 +-0.045424 0.158466 -0.038717 -0.032506 0.028687 +0.011435 -0.006772 0.047605 -0.144659 -0.031229 +0.073577 0.011530 -0.008172 0.058883 -0.088412 +0.033615 -0.034120 -0.030701 0.101215 0.096645 +0.027368 0.041249 0.081502 -0.025440 0.007592 +0.059893 0.012106 -0.112009 -0.114692 0.016397 +0.087068 0.016199 0.051263 0.011915 -0.085364 +0.026046 0.145258 -0.047521 0.077134 -0.000345 +0.034532 0.099801 -0.087591 -0.059719 -0.058671 +0.022737 -0.001887 -0.107049 -0.116757 0.134115 +-0.055403 0.005157 0.067618 0.081074 0.071787 +0.063802 -0.003430 -0.106491 0.017543 0.002214 +-0.013785 -0.032962 0.010084 0.024325 0.045963 +0.059883 0.072282 -0.008608 -0.015127 0.048225 +0.041752 -0.068845 0.012227 -0.090748 -0.035309 +0.045353 -0.078624 -0.019489 0.035531 0.058571 +0.045414 0.039032 -0.011106 0.048787 -0.025336 +-0.084893 0.031896 0.010850 0.012526 -0.053205 +0.016952 -0.044041 0.068766 0.097328 -0.122229 +0.027016 -0.051759 -0.057246 0.074566 0.006201 +0.069904 0.100068 0.076124 0.004278 0.029466 +0.045229 0.055683 0.018790 -0.067806 0.039373 +0.029179 -0.036787 0.129921 -0.028993 0.037711 +-0.105011 0.138747 -0.004370 0.052080 0.050835 +0.025511 -0.002962 0.007852 -0.055234 -0.075055 +0.000460 -0.089231 -0.030467 -0.080347 0.007488 +0.067460 -0.076368 0.084991 0.039544 0.033391 +-0.044318 0.006390 -0.079387 -0.002909 -0.029708 +-0.047882 0.063040 0.065719 0.021811 0.070945 +-0.007571 -0.001302 -0.064119 -0.068005 0.051040 +-0.017747 -0.063938 0.018673 -0.038391 -0.099966 +0.057475 -0.007669 0.009384 0.109283 0.012248 +-0.048858 0.092498 0.011967 0.061525 -0.028819 +-0.015131 -0.024160 -0.033220 -0.101648 -0.017980 +-0.003342 -0.049829 -0.125096 0.128241 -0.047377 +-0.028943 -0.109072 -0.066133 -0.015454 0.098334 +0.053371 0.011324 0.042781 0.044313 0.062510 +0.098408 0.065410 -0.040693 -0.116351 -0.032327 +-0.013634 -0.058591 0.081507 0.042019 -0.099770 +-0.018275 0.084624 -0.007512 -0.041113 0.054203 +0.017879 -0.029747 0.059865 -0.048281 -0.111513 +-0.022478 0.002059 0.022383 -0.125360 0.058216 +0.002386 -0.081600 0.049288 0.157428 0.057724 +0.005046 0.102125 -0.083473 0.044059 -0.094864 +0.039120 -0.063306 0.057341 0.060519 0.107383 +0.007076 -0.009373 -0.012555 -0.066630 0.117121 +0.025254 -0.008796 -0.062102 -0.083164 -0.079007 +0.084839 0.042308 -0.055353 0.036386 0.132641 +0.084464 0.056288 -0.011636 -0.059554 -0.087748 +-0.147377 -0.052414 -0.010203 -0.009159 -0.018829 +0.009621 0.061633 0.015716 0.086332 -0.061465 +-0.011833 -0.062998 -0.021168 0.125194 0.045025 +0.052316 0.025720 0.095155 -0.093252 0.028720 +0.056113 0.063321 -0.045315 0.025199 0.023591 +-0.070481 0.072350 0.092458 0.047973 -0.025439 +-0.001281 0.021028 0.034576 0.084779 0.006867 +-0.010323 -0.046330 -0.009172 0.030485 -0.117679 +-0.021782 -0.034737 -0.086292 -0.045885 0.009655 +-0.037167 -0.123331 0.017291 -0.028319 0.071447 +-0.057180 -0.032912 -0.139418 -0.025966 -0.039305 +0.009411 -0.054017 0.076307 -0.060252 0.110087 +-0.061366 0.038897 -0.098107 0.046119 0.043021 +-0.029130 -0.096885 0.007623 0.090513 -0.097416 +0.053264 0.058296 0.054372 0.060769 0.015586 +-0.067956 0.059996 -0.037850 0.005986 0.000778 +0.045873 -0.065546 0.077900 -0.085638 0.000698 +0.027694 -0.021241 -0.002777 0.034509 -0.048173 +0.009988 0.001008 -0.077434 0.026002 0.139490 +0.008910 0.007791 0.059292 -0.057047 0.014127 +-0.022959 0.085710 -0.068087 -0.081561 0.005935 +0.007577 0.061544 0.076542 0.001660 -0.113279 +0.024973 0.086750 -0.061674 0.095059 0.089352 +-0.024436 0.024181 -0.016117 -0.073634 -0.067986 +0.074701 -0.046868 -0.054634 -0.092485 0.006662 +-0.033256 -0.053774 0.049001 -0.002339 0.013545 +-0.006432 -0.012089 -0.086842 0.104105 0.061991 diff --git a/src/codebook/lspjmv3.txt b/src/codebook/lspjmv3.txt new file mode 100644 index 0000000..72767df --- /dev/null +++ b/src/codebook/lspjmv3.txt @@ -0,0 +1,513 @@ +5 512 +0.007066 0.075781 -0.070082 -0.092014 -0.066477 +0.090510 0.106622 0.025911 -0.016760 0.003724 +-0.024628 0.058332 0.012876 0.059557 -0.002092 +-0.065092 -0.096975 -0.041837 -0.002432 0.058918 +0.014358 0.080049 -0.008803 -0.002091 -0.097584 +0.085323 -0.026053 -0.086585 -0.009541 0.130555 +0.045391 0.037557 0.074726 -0.050453 0.033517 +-0.035576 -0.084211 -0.086430 0.008910 -0.072674 +-0.098699 -0.024540 -0.048972 -0.066975 -0.048791 +0.032184 0.070992 -0.014416 0.141892 -0.044249 +-0.108921 -0.020450 0.115988 0.011287 -0.026273 +0.024341 0.138519 -0.036467 0.020684 0.074258 +-0.053563 0.077463 0.072166 0.032112 -0.079303 +-0.025039 0.079675 0.094211 -0.115754 0.038892 +0.050897 -0.024639 0.057826 -0.110429 0.071184 +0.015309 -0.034027 -0.055726 0.043179 -0.063089 +0.043359 -0.011698 0.006637 0.002751 0.030110 +-0.001261 0.111470 0.043277 -0.004205 -0.021599 +-0.005698 0.058842 0.168422 0.059313 -0.007971 +-0.087599 0.073891 -0.083238 0.099279 -0.017364 +-0.018429 0.014040 -0.014864 -0.111512 0.089450 +-0.028498 -0.087983 -0.077320 -0.062602 0.000328 +-0.027152 -0.093796 0.111381 -0.018603 0.092394 +-0.007256 0.025391 0.011454 0.012802 -0.041680 +0.008078 0.020905 -0.105401 -0.083265 0.027756 +-0.049630 -0.044085 -0.051424 0.104125 -0.000779 +-0.063079 -0.130699 0.070500 0.033468 -0.019802 +-0.061011 0.094839 -0.040122 0.118409 0.056950 +0.086391 -0.006615 0.045337 -0.044190 -0.106474 +-0.081912 0.067557 -0.031649 -0.014437 0.057585 +-0.121755 -0.049113 0.057109 -0.049872 0.044104 +0.064705 -0.091589 0.037286 -0.048606 -0.045398 +0.003456 0.057230 0.006262 -0.055206 -0.063871 +-0.005249 0.081783 0.134969 -0.002331 0.052643 +-0.093346 0.072093 0.116025 -0.031453 -0.006012 +-0.038574 -0.030841 0.010288 0.024420 0.051657 +-0.086584 0.046381 0.005410 0.052622 -0.072741 +0.079023 0.078099 -0.093912 0.005477 -0.006721 +0.100232 -0.017587 0.044819 0.036655 0.021580 +-0.006829 -0.050076 -0.003020 0.088246 0.013560 +-0.015690 0.012477 -0.052595 -0.048861 -0.033688 +0.055615 0.092298 -0.066194 0.016416 -0.066059 +0.046976 0.003023 0.104646 0.109136 0.018293 +-0.016507 -0.006859 0.004326 0.070843 0.140750 +0.025774 0.034730 -0.079590 0.050054 -0.107950 +0.002378 0.097498 0.027111 -0.122953 -0.002423 +-0.020539 -0.063263 -0.095493 -0.157361 -0.039183 +0.025721 0.026897 -0.001200 0.033997 -0.001749 +0.061593 -0.013053 -0.106317 -0.068190 0.046352 +-0.056060 0.157084 -0.049365 0.053959 -0.051065 +-0.047672 0.081570 0.064342 -0.030705 -0.070806 +-0.076503 -0.059471 0.012419 0.073968 -0.026179 +-0.038473 0.059013 -0.035783 -0.030057 -0.036346 +-0.052692 -0.015346 -0.022687 -0.035279 0.013314 +0.068397 -0.046609 -0.009593 -0.040796 0.157438 +-0.075360 -0.110464 0.031839 -0.029035 -0.015222 +0.041013 -0.099212 -0.108920 -0.008627 0.012095 +0.020855 0.009935 -0.086917 0.058827 -0.006536 +0.022104 -0.005013 0.003496 0.046663 -0.051061 +-0.036803 -0.067317 -0.007075 0.180870 -0.027434 +-0.025056 -0.039341 -0.073918 -0.003180 -0.110930 +-0.042711 0.005519 -0.035005 -0.088419 0.170942 +0.001503 -0.121485 0.066383 -0.067346 0.005643 +0.080088 -0.042562 -0.006668 -0.036538 0.020683 +0.042848 0.027852 -0.029088 -0.156468 0.006503 +0.037716 0.032082 0.038416 0.021835 -0.106963 +-0.043017 0.018166 0.070409 -0.005426 -0.035585 +-0.111071 -0.039986 0.050430 0.035157 0.066902 +-0.040684 0.060527 0.036225 0.002527 -0.015087 +0.059243 0.021268 -0.010682 -0.018434 0.059128 +0.111314 -0.054070 0.105744 -0.051476 -0.012970 +-0.000358 -0.099249 -0.077385 0.069924 -0.039101 +-0.072139 -0.049069 -0.088018 0.006144 0.000712 +0.081030 0.021987 -0.046031 0.058087 -0.001320 +-0.046851 -0.011062 0.108321 -0.001146 -0.071193 +0.044973 -0.002915 -0.003323 0.041735 0.094566 +0.053530 0.035927 0.100282 0.059082 -0.054059 +-0.012158 -0.035417 0.020412 -0.073193 0.059296 +-0.040489 -0.095250 -0.003821 -0.084904 0.053925 +0.109183 -0.005862 -0.036538 0.080962 -0.040647 +0.020070 0.057778 -0.020197 -0.079626 -0.003186 +-0.050855 0.128185 0.034731 0.057460 -0.035236 +-0.057096 -0.001238 0.122018 -0.071204 -0.047253 +-0.051767 0.048301 -0.052678 0.025990 -0.017481 +-0.029379 0.030738 0.047207 -0.047864 -0.033561 +0.029884 -0.091175 -0.085446 -0.026140 0.092628 +0.067706 -0.085617 0.081433 0.047305 0.031945 +-0.048728 -0.040387 0.046206 0.010578 -0.037639 +0.011328 -0.042458 -0.149597 0.033882 -0.061869 +0.008800 0.057754 -0.095876 0.038230 0.096876 +-0.033487 -0.141669 -0.014172 0.028439 -0.092764 +-0.053714 0.086926 0.034786 0.136053 -0.005569 +0.028753 0.009630 0.044114 -0.050365 -0.066224 +0.006017 0.014348 0.024471 0.000489 0.067234 +-0.021678 -0.118760 0.036349 -0.040295 0.076358 +-0.008444 -0.086082 -0.044018 -0.025804 0.028971 +-0.009233 0.053026 -0.035341 -0.182193 -0.102515 +0.089210 0.066812 0.032417 0.046882 -0.034815 +-0.052293 0.022814 0.129622 0.128232 -0.012105 +-0.087084 0.004762 0.086538 0.046566 0.098359 +-0.018713 0.039204 -0.021707 -0.060110 -0.117527 +-0.005459 0.060994 -0.057718 -0.021783 0.035154 +0.100557 -0.015470 -0.025818 0.008450 0.051535 +-0.001388 -0.114610 -0.057903 0.041862 0.061778 +0.045701 -0.078563 -0.070166 -0.048450 -0.088530 +0.021375 -0.004598 -0.090710 -0.009399 -0.073952 +-0.035575 -0.050280 0.114780 0.137866 0.065234 +0.003594 -0.066802 -0.144989 0.166201 0.039564 +-0.022457 -0.030090 0.016187 0.115443 -0.097331 +-0.019139 0.099440 0.002198 -0.030953 0.021099 +-0.045399 -0.046871 0.022533 -0.064657 0.005776 +0.049063 -0.028478 0.019268 0.054265 0.028042 +0.045559 -0.005541 -0.014410 -0.024165 -0.054976 +-0.073258 0.084205 0.036077 -0.068683 0.004708 +-0.085228 0.001234 0.046261 -0.050496 -0.028227 +-0.086828 -0.001218 0.021865 0.003791 -0.000568 +-0.088733 -0.040041 -0.035891 -0.054915 0.073463 +-0.132031 -0.012844 -0.068544 0.013052 0.087335 +0.038603 -0.115382 -0.010433 -0.007113 0.095126 +-0.047378 -0.081353 0.018021 -0.021156 -0.120774 +0.040038 0.007633 -0.088728 -0.009928 0.020142 +0.052024 -0.021063 -0.118121 0.102739 -0.055837 +0.005253 -0.061924 0.063680 -0.014512 -0.020259 +0.029493 -0.013435 -0.020638 0.089342 0.001092 +-0.046491 -0.145634 -0.083159 -0.158142 -0.279281 +0.003611 0.055863 -0.064655 -0.088773 0.089283 +-0.029619 -0.089949 0.017197 -0.066633 -0.052347 +0.090828 -0.087551 0.000338 0.085238 -0.005313 +0.096211 0.071381 -0.076546 -0.077927 -0.040864 +0.062936 0.041559 0.016235 -0.017513 0.014773 +-0.025734 0.028586 0.070292 0.055794 -0.026131 +-0.076954 -0.082228 0.043947 -0.035921 0.152668 +-0.049510 0.023159 0.008506 -0.044773 -0.160358 +0.024984 -0.025587 -0.071627 -0.038376 0.088478 +0.120568 0.046723 0.086731 0.000695 -0.015751 +-0.027837 -0.160937 -0.095031 0.036271 -0.009061 +-0.015078 -0.036281 -0.103665 -0.058258 -0.049573 +0.022021 0.108296 -0.002586 0.065655 -0.018584 +-0.046441 -0.031018 0.067350 0.014328 0.008860 +-0.000245 0.063400 -0.001810 0.043515 0.090344 +-0.063845 0.020485 0.079401 0.070558 -0.116428 +0.032628 0.068949 0.052238 -0.044530 0.096813 +0.029911 -0.008814 0.044352 -0.168172 0.009604 +0.055828 -0.100739 -0.026013 0.021193 -0.051425 +0.035891 -0.004085 0.030216 -0.060801 0.037202 +0.007262 0.120686 0.026846 0.058464 -0.100792 +-0.009176 0.027589 0.123957 -0.011283 -0.025744 +-0.105081 0.118244 -0.042122 -0.025404 0.000873 +-0.012703 0.084159 -0.067539 -0.140536 0.041637 +-0.014485 -0.043382 -0.048004 -0.075416 0.054401 +-0.018651 -0.032908 0.164231 -0.053236 0.033946 +-0.021681 -0.012655 -0.037049 -0.001613 -0.053393 +-0.014635 0.017954 -0.116115 -0.027232 0.034005 +-0.035376 0.026492 -0.037250 0.070733 0.074835 +-0.021378 -0.142980 0.123195 0.003699 0.025398 +0.015629 0.077370 0.032623 0.121580 0.097100 +0.000946 -0.056355 0.042065 0.008184 -0.081824 +-0.101937 0.065473 0.003360 0.069241 0.073002 +-0.053844 -0.044301 0.080351 -0.091833 0.044288 +0.007447 -0.120723 -0.013806 -0.023636 -0.064616 +0.030556 0.072630 0.074428 -0.087759 -0.026440 +0.064840 0.049162 0.091053 0.023891 0.033811 +-0.027746 0.116392 0.106126 -0.056644 -0.014781 +0.036137 -0.002632 0.055512 0.070077 0.067819 +-0.030625 0.053772 -0.078457 -0.021351 -0.113011 +0.052797 0.044875 -0.077269 -0.009867 0.101493 +0.073477 -0.024103 0.049145 -0.004706 -0.025211 +-0.053731 -0.049009 -0.035786 0.054430 0.046515 +0.025154 -0.043569 -0.034789 -0.058610 0.006931 +0.012049 0.046809 -0.129441 0.025541 -0.030933 +0.000297 -0.054058 0.179837 0.081515 0.004932 +-0.028445 -0.073753 0.010629 0.080042 0.098710 +-0.014017 0.057597 0.001010 0.071658 -0.067570 +0.074384 0.110366 -0.018121 -0.108754 0.037793 +0.028041 -0.047508 -0.031359 -0.098913 -0.036486 +-0.017311 -0.001279 -0.013694 0.051968 0.036512 +0.088201 0.031155 -0.043442 -0.065045 0.023486 +0.027000 0.104768 -0.015176 -0.038754 -0.004178 +0.003732 0.062166 0.085438 -0.077368 -0.101645 +-0.118347 0.007589 -0.056489 0.082268 0.020253 +-0.035623 0.034235 -0.099354 -0.061237 -0.024285 +0.005441 -0.039694 -0.025957 -0.004411 0.049903 +0.003040 0.036243 0.023552 -0.007334 0.128963 +-0.077727 -0.059175 -0.019437 -0.024872 0.004339 +0.084006 -0.076605 -0.102261 0.036714 -0.035205 +-0.007642 -0.005125 -0.030525 0.096390 -0.053138 +-0.002192 -0.024851 0.050645 0.041490 -0.043183 +0.046796 -0.050894 0.055023 0.133834 -0.024013 +0.000872 -0.057072 -0.000630 0.042070 -0.129339 +-0.064283 0.037836 -0.066393 0.004438 0.125379 +-0.062213 -0.067468 0.090177 -0.046094 -0.025725 +0.079101 -0.074909 -0.043730 -0.073483 0.069672 +-0.020413 -0.000079 -0.049725 -0.120751 -0.046980 +0.039894 0.072305 0.009798 0.005613 -0.045217 +0.006862 0.036285 0.074819 -0.006747 0.015144 +-0.071562 0.012324 -0.001082 0.014835 0.079960 +-0.027804 0.103358 -0.017203 0.014914 -0.056687 +0.030827 0.028076 0.003395 -0.073255 0.110310 +0.056498 -0.044893 0.110122 -0.109058 -0.052302 +-0.001604 -0.089977 -0.060548 0.107808 0.025463 +-0.070203 -0.000513 -0.123913 0.046247 -0.085392 +0.096343 0.095890 -0.064950 0.070363 0.034272 +0.037773 -0.076950 0.124858 -0.009008 -0.010115 +0.083868 0.051242 0.039149 0.015185 0.083375 +0.029773 -0.045961 0.100395 0.003743 -0.138294 +-0.041755 0.010806 0.057797 -0.147374 0.095858 +-0.009929 -0.103347 -0.032310 -0.110560 0.121377 +0.145244 0.017079 -0.080587 0.020516 -0.044939 +-0.010477 0.038347 -0.003466 -0.001618 0.019600 +-0.021762 0.125482 0.011074 0.065815 0.040298 +0.009202 -0.051686 0.129684 -0.131135 0.044536 +0.009313 0.102518 -0.075351 0.054338 0.020273 +-0.045753 0.031345 0.000407 -0.097294 -0.000416 +-0.007466 -0.044972 -0.078744 0.042414 0.066624 +0.030318 -0.067852 0.061416 -0.028992 0.056606 +0.004038 -0.036253 -0.014279 0.023123 -0.007832 +-0.000137 -0.027684 -0.127648 -0.007713 -0.008746 +-0.026500 0.049032 -0.183319 0.059107 0.066500 +0.016902 -0.093331 0.090129 0.016648 -0.083492 +-0.023669 -0.010473 0.027614 0.145068 0.000681 +0.044133 -0.035809 0.005668 -0.090461 -0.090732 +-0.033927 0.042997 0.021700 -0.046955 0.044487 +-0.026444 -0.061011 0.010110 -0.023804 0.030427 +-0.015195 -0.155603 -0.016584 0.021461 -0.003528 +-0.059784 0.032214 0.000847 -0.098859 -0.078980 +0.043188 0.066433 0.062309 0.144507 0.006865 +-0.068953 0.046698 0.099369 0.043354 -0.014309 +-0.033202 -0.002950 0.040734 0.083454 0.039319 +0.051358 0.006074 -0.073465 -0.090554 -0.120787 +-0.040676 0.092412 -0.085151 -0.021699 0.005813 +0.103135 0.024964 0.025832 -0.075982 0.035699 +-0.027310 -0.153007 0.036420 0.057600 0.081630 +0.001605 -0.054191 -0.033043 -0.014390 -0.071383 +0.036180 0.035860 -0.046980 0.038541 -0.044757 +-0.078032 -0.029878 0.078183 0.082251 0.010549 +0.053317 -0.038231 -0.065610 0.055798 0.037504 +0.076317 -0.027605 0.010349 0.095361 -0.088636 +0.049089 0.113316 0.051084 0.038589 0.034330 +-0.055948 -0.037217 -0.015418 -0.139976 0.036306 +0.039306 -0.009889 -0.044910 0.016559 -0.000050 +0.106073 0.015280 -0.002563 -0.109085 -0.048475 +-0.035319 0.163860 0.032981 -0.044932 0.003227 +-0.123233 -0.010638 0.055479 -0.003666 -0.072249 +-0.111158 0.065365 0.010691 0.039119 -0.001837 +-0.118729 0.061470 -0.002077 -0.033335 -0.060165 +-0.026081 -0.001806 -0.079616 -0.000075 0.080598 +0.032908 -0.035140 -0.003136 -0.029024 0.094622 +-0.075773 -0.022898 -0.014817 0.058393 -0.111505 +0.036794 -0.015760 -0.112602 0.030323 0.085897 +-0.020834 0.056079 -0.103762 0.117671 -0.041205 +0.041684 -0.084336 0.034186 0.011973 -0.006313 +0.040836 -0.035709 0.034170 0.122672 0.090973 +-0.053182 -0.059371 0.091017 -0.090998 -0.116986 +0.001405 0.138364 0.017107 -0.064076 0.103486 +-0.031142 -0.030068 0.046547 -0.133471 -0.042055 +0.140418 -0.125084 0.035218 -0.001162 -0.021130 +-0.012034 0.097413 -0.079006 -0.039030 -0.054011 +0.143887 0.078835 -0.000601 -0.021173 -0.039895 +-0.025050 0.075865 0.039221 0.032458 0.038206 +-0.038873 -0.085003 -0.032736 -0.026956 0.113525 +-0.023933 0.120794 -0.003862 -0.026459 -0.138724 +0.089559 0.029002 -0.052098 -0.085692 0.115174 +0.083497 0.024179 0.119021 -0.067541 0.019047 +-0.027720 -0.086083 -0.055329 0.020087 -0.027086 +-0.047858 -0.051975 -0.035205 -0.059342 -0.068582 +0.058936 0.044141 -0.080315 0.119744 -0.046518 +-0.064588 -0.027212 0.147823 0.032404 0.016690 +0.024302 0.085560 -0.001525 0.016469 0.038891 +-0.020146 0.019943 0.045067 0.038070 -0.086274 +-0.025769 0.044192 0.102141 -0.064765 0.055849 +0.048803 -0.030066 -0.009220 -0.116655 0.068295 +0.047580 -0.076138 -0.070307 0.047582 -0.111342 +0.004656 -0.004452 0.029703 -0.004259 0.011130 +0.014446 0.166086 0.059565 0.000985 -0.052607 +0.013251 0.094476 0.106216 0.016715 -0.025581 +-0.101244 0.072897 -0.114526 0.024681 0.010784 +-0.051759 0.032389 -0.050202 -0.083316 0.052334 +-0.035100 -0.116721 -0.110336 -0.053391 0.065541 +-0.029790 -0.020457 0.135285 -0.004142 0.111508 +-0.030936 0.018549 -0.016034 0.018572 -0.084336 +-0.048615 -0.018739 -0.096815 -0.090162 0.019410 +-0.040821 -0.009925 -0.097427 0.091891 0.031793 +-0.024598 -0.132848 0.078353 0.089339 -0.068562 +-0.020779 0.040974 -0.055675 0.169131 0.029649 +0.078165 -0.050679 -0.005881 -0.004983 -0.104324 +-0.069096 0.127960 0.011392 -0.000769 0.062168 +-0.079842 0.001606 0.089284 -0.035465 0.031075 +0.029519 -0.102956 -0.010902 -0.064030 -0.019669 +0.057492 0.075802 -0.008904 -0.060743 -0.053144 +0.005126 0.062980 0.085674 0.019895 0.104448 +-0.086473 0.056906 0.056795 -0.012940 0.036606 +-0.008604 -0.040450 0.042062 0.041810 0.027680 +-0.092256 0.091237 -0.039500 0.024761 -0.088978 +0.068585 0.088295 -0.048033 -0.017808 0.045370 +0.124600 -0.035320 0.056751 0.092751 0.054025 +-0.015725 -0.061938 0.036806 0.078768 -0.016065 +0.002444 -0.023887 -0.072177 -0.029790 -0.005860 +0.015478 0.129142 -0.091024 0.071482 -0.065445 +0.005867 -0.006051 0.098646 0.054089 0.018713 +0.033837 -0.008355 -0.051959 0.057440 0.160305 +-0.001863 0.016738 -0.033705 0.062233 -0.140759 +0.027342 0.060074 0.030362 -0.117875 0.061020 +-0.028026 -0.088238 -0.003782 -0.146288 -0.080395 +0.050048 0.036136 0.019500 0.066902 0.020355 +0.024817 -0.056254 -0.140918 -0.085803 0.020540 +-0.003730 0.161411 -0.049408 0.000219 -0.002348 +-0.055021 0.067820 0.126483 -0.031063 -0.119299 +-0.102834 0.001133 0.010172 0.107707 -0.029106 +-0.059813 0.036698 -0.021720 -0.043189 -0.002270 +-0.031694 0.009605 -0.022459 -0.036417 0.053675 +0.061561 -0.012723 0.050040 -0.029450 0.131044 +-0.124516 -0.107579 -0.012171 0.011761 0.002599 +0.016327 -0.060854 -0.080910 0.030875 -0.002997 +-0.020970 -0.011880 -0.086096 0.037912 0.012421 +0.055253 -0.007250 0.041740 0.055596 -0.024420 +-0.017564 -0.079202 0.008897 0.180091 0.054490 +0.001772 -0.022151 -0.082048 -0.010559 -0.163377 +-0.020660 -0.017827 -0.030800 -0.045856 0.122405 +-0.052946 -0.130490 0.097383 -0.116737 0.039855 +0.056504 -0.059549 -0.059931 -0.018658 0.034898 +0.054889 0.005373 -0.066796 -0.127360 0.047960 +0.071746 0.027410 -0.006212 0.024132 -0.094062 +0.005369 -0.008926 0.073085 -0.014265 -0.029204 +-0.100025 -0.072076 0.014651 0.069368 0.048275 +-0.066823 0.086074 0.014921 -0.015395 -0.045138 +0.026224 0.000902 -0.038208 -0.035221 0.057397 +0.097606 -0.073195 0.051626 -0.033488 0.027813 +0.002070 -0.097510 -0.057877 0.126680 -0.082194 +-0.072597 0.006014 -0.093185 -0.016853 -0.022790 +0.138461 0.005394 -0.056485 0.102778 0.028918 +-0.045604 -0.060041 0.121251 0.029260 -0.101404 +0.061194 0.033039 -0.016798 0.064263 0.065144 +0.010925 0.023151 0.107623 0.027977 -0.090356 +-0.024863 -0.006440 0.047870 -0.047486 0.088211 +-0.012139 -0.116121 -0.000525 -0.140961 0.016604 +0.063490 -0.022732 -0.046944 0.066970 -0.068838 +0.016143 0.026202 -0.043344 -0.064881 0.024877 +-0.072845 0.120531 0.077901 0.047272 0.011713 +-0.044646 0.040932 0.076164 -0.101233 -0.029615 +-0.065118 0.050966 -0.023273 0.053517 0.023710 +-0.007489 0.035822 0.023439 -0.055528 -0.004033 +-0.007662 -0.096546 -0.081662 0.037141 0.137562 +0.075526 -0.097496 0.123990 0.013996 0.087005 +-0.019788 -0.082043 0.020524 0.007027 -0.021537 +-0.036264 -0.090952 -0.177722 -0.009306 -0.031473 +-0.009287 0.047557 -0.090241 0.089347 0.056375 +-0.005506 -0.112128 0.004356 0.064421 -0.038478 +-0.035674 0.040616 0.007731 0.160236 -0.054199 +-0.007537 0.012434 0.022001 -0.021567 -0.075163 +-0.026053 0.015909 0.041015 0.021832 0.034152 +-0.048539 -0.086655 0.047465 0.000682 0.042640 +0.023697 -0.095971 -0.022874 -0.000369 0.003413 +0.046005 0.064807 0.010131 -0.129517 -0.092254 +0.116469 0.053796 0.038110 0.094470 0.018435 +-0.034803 0.073591 0.108348 0.104096 0.049884 +-0.021274 0.022097 0.065347 0.065555 0.089319 +0.000474 -0.004186 -0.040493 -0.065543 -0.083167 +-0.017425 0.049177 -0.044248 0.008399 0.068180 +0.154778 0.027549 -0.008012 0.014950 0.043254 +0.039599 -0.136415 -0.018716 0.061900 0.031263 +0.058118 -0.037200 -0.114692 -0.080876 -0.053238 +0.077436 0.015015 -0.092517 0.005804 -0.065541 +-0.005653 -0.073184 0.095594 0.082470 0.060989 +-0.000262 -0.035766 -0.083441 0.122634 0.088429 +-0.014397 -0.055434 -0.005659 0.069697 -0.064892 +0.008824 0.082498 0.051866 -0.036070 0.033403 +-0.082855 -0.087376 0.002714 -0.097121 -0.019170 +0.027179 -0.069870 -0.009316 0.047450 0.040657 +0.060527 0.004620 -0.040264 -0.051228 -0.029023 +-0.071384 0.101421 0.009538 -0.099185 0.060100 +-0.048395 -0.024677 0.025125 -0.056043 -0.058045 +-0.054059 0.008107 0.021078 0.045290 -0.018459 +-0.113359 0.014009 -0.006826 -0.052747 0.046922 +-0.075976 0.008538 -0.084411 -0.004369 0.045801 +0.075392 -0.067340 0.014454 0.032407 0.092478 +-0.061859 -0.083458 0.051442 0.031695 -0.080233 +0.054028 0.027000 -0.073549 0.032300 0.036501 +-0.011384 -0.020780 -0.124142 0.093905 -0.028332 +0.039139 -0.030944 0.079952 -0.001717 0.013976 +0.038005 -0.001751 -0.044097 0.129827 0.014385 +-0.001682 -0.063458 -0.002511 -0.078150 -0.141236 +0.021955 0.104851 -0.093246 -0.060019 0.069998 +0.004399 -0.096408 0.059327 -0.062268 -0.074327 +0.108063 -0.090534 -0.045654 0.048119 0.049187 +0.042105 0.043964 -0.091516 -0.047999 -0.028881 +0.070471 0.055401 -0.025605 0.011176 0.008475 +0.022254 0.038266 0.048106 0.047176 -0.017967 +-0.010978 -0.088762 0.034806 0.019311 0.126815 +-0.010571 0.053073 0.032162 -0.000780 -0.152200 +-0.014253 -0.021954 -0.131040 -0.061376 0.113838 +0.060725 0.020201 0.102533 -0.011392 -0.052046 +-0.069625 -0.091011 -0.097954 0.067847 0.017856 +-0.053461 -0.040679 -0.121664 -0.077208 -0.106919 +0.057996 0.069756 -0.012433 0.069569 -0.055159 +-0.024801 -0.060448 0.101700 0.014619 0.036580 +-0.004526 0.093977 -0.028211 0.045261 0.149736 +-0.014691 -0.007959 0.097708 0.107128 -0.079723 +0.029157 0.020116 0.104828 -0.064208 0.119172 +0.039583 -0.029446 0.006628 -0.110398 0.004062 +0.048132 -0.060601 0.009448 0.051777 -0.053127 +0.050551 -0.001924 0.028079 -0.050618 -0.013698 +0.001920 0.088162 0.073078 0.085795 -0.066788 +0.014025 0.042699 0.176241 -0.046674 -0.034822 +-0.051433 0.121729 -0.057076 0.023901 0.045075 +-0.057182 0.054780 -0.017280 -0.146674 0.002090 +-0.016223 -0.044841 -0.084524 -0.152479 0.072688 +-0.006962 0.008711 0.127455 -0.003876 0.053162 +-0.013682 -0.025386 -0.000427 -0.024811 -0.024474 +-0.056267 0.062116 -0.121311 -0.053011 0.065651 +-0.075385 -0.008680 -0.063033 0.083039 0.110577 +-0.000152 -0.127017 0.055904 0.013659 0.005664 +-0.002852 0.047248 0.001128 0.100773 0.037274 +0.026368 -0.042205 0.021887 -0.020247 -0.056678 +-0.077475 0.089799 0.058003 0.039741 0.106663 +-0.016853 -0.015972 0.075741 -0.048829 0.015374 +-0.032657 -0.125677 -0.062060 -0.057409 -0.061287 +0.073151 0.050357 0.053547 -0.059886 -0.051298 +0.057954 -0.003817 0.076028 0.006757 0.061109 +-0.038030 0.143209 0.092207 -0.018493 0.062291 +0.005751 -0.036449 0.067582 0.031449 0.101894 +-0.080754 0.011515 -0.049485 -0.016137 -0.087818 +0.108851 0.038222 -0.099315 -0.003117 0.052278 +0.107517 -0.036233 0.065370 0.040409 -0.057029 +-0.033167 -0.081758 -0.019502 0.033438 0.013365 +-0.017760 -0.025906 -0.020244 -0.078722 -0.011697 +-0.028246 0.068647 -0.106417 0.026956 -0.064914 +0.062711 -0.017857 0.151539 0.044613 -0.017820 +0.009085 -0.032785 -0.025795 0.075790 0.075667 +-0.040398 0.058556 -0.042634 0.093973 -0.099529 +0.057103 0.073562 0.012640 -0.066141 0.029558 +0.060219 -0.083699 -0.054799 -0.120442 -0.000374 +0.006521 0.034512 -0.039558 0.042191 0.033865 +0.103992 -0.014977 -0.077384 -0.051340 0.001873 +0.047451 0.140612 -0.024885 -0.021420 -0.046604 +0.030606 0.100660 0.076356 -0.019288 -0.098570 +-0.114463 -0.010855 -0.034657 0.025618 -0.003356 +-0.087913 0.064346 -0.075540 -0.091569 -0.024965 +-0.021232 -0.017255 -0.056931 -0.003104 0.030219 +-0.020112 -0.012334 0.035298 0.001405 0.161753 +-0.064618 -0.064401 -0.007218 -0.000120 -0.047208 +0.116105 -0.056464 -0.069645 -0.007032 -0.012090 +-0.023237 0.016000 -0.039802 0.074319 -0.012604 +0.014863 -0.058081 0.093219 0.062253 -0.040302 +0.027405 -0.128683 0.039923 0.116808 -0.011706 +0.012483 -0.017698 0.003645 -0.007588 -0.120662 +-0.032868 0.066217 -0.031343 -0.034166 0.146334 +-0.031228 -0.125921 0.117756 -0.042686 -0.062094 +0.049375 -0.112262 0.010166 -0.073599 0.048690 +0.028292 0.020076 -0.062865 -0.106114 -0.025300 +0.066916 0.029279 0.028191 -0.003599 -0.040614 +0.020491 0.060238 0.052747 -0.010390 -0.022389 +-0.063358 -0.028707 0.035907 -0.011898 0.079703 +-0.003758 0.078051 -0.017869 0.009045 -0.018982 +0.034974 0.069405 -0.018909 -0.038613 0.083909 +0.033935 -0.036607 0.088891 -0.052599 -0.059839 +0.052758 -0.068308 -0.063615 0.126093 -0.009460 +-0.042175 -0.011113 -0.073071 0.052086 -0.052619 +0.049226 0.066898 -0.045666 0.117923 0.053656 +-0.010739 -0.043962 0.141903 0.001792 -0.035469 +0.090671 0.043993 -0.013655 0.018989 0.127223 +0.001030 -0.001154 0.081839 -0.024979 -0.103704 +-0.077920 0.036083 0.068220 -0.062210 0.113730 +-0.010501 -0.065801 0.050885 -0.104304 0.121937 +0.111850 0.009680 -0.011791 0.001677 -0.035029 +0.010677 0.024572 -0.012860 -0.030323 -0.010466 +0.011279 0.167752 0.003136 0.109709 0.007292 +0.000987 0.004572 0.108706 -0.113192 -0.012431 +-0.015225 0.073653 -0.051275 0.077928 -0.012752 +-0.011708 0.014172 0.025162 -0.095378 0.026382 +-0.028889 -0.058569 -0.129329 0.011087 0.061452 +0.056893 -0.058004 0.103586 -0.060752 0.081824 +-0.042805 -0.015991 -0.024444 0.028952 -0.013528 +0.042851 0.019988 -0.165741 -0.031012 -0.014713 +-0.026059 0.031698 -0.134343 0.032090 0.020828 +0.051674 -0.128006 0.050856 0.022220 -0.073513 +-0.009340 0.013756 0.036163 0.098407 -0.023495 +0.023858 0.008121 0.022220 -0.103489 -0.046663 +-0.033000 0.063565 0.029224 -0.012693 0.084202 +0.012187 -0.051000 0.026126 -0.043293 0.008675 +-0.019812 -0.165070 -0.014555 -0.047431 0.017990 +-0.040073 0.107192 0.022228 -0.089023 -0.066885 +0.014630 0.073186 0.069902 0.072634 0.019593 +-0.041539 0.031788 0.092310 0.027223 0.034027 +-0.051855 0.000391 0.007869 0.131910 0.069384 +0.046276 0.040440 -0.037093 -0.031393 -0.112828 +0.015709 0.096749 -0.103205 -0.021284 0.011405 +0.158287 -0.021028 0.042219 -0.050759 0.069715 +-0.042907 -0.116980 0.014224 0.094648 0.028395 +0.041535 -0.057033 -0.047607 -0.024419 -0.034905 +0.010125 0.036728 -0.052503 -0.001839 -0.033477 +-0.053414 -0.070394 0.092895 0.100600 -0.026352 +0.080574 -0.028763 -0.059548 0.094571 0.091787 +0.041437 0.014312 0.045792 0.108269 -0.081586 +0.056288 0.137447 0.054718 -0.032474 0.054502 +-0.100144 -0.006460 0.024739 -0.117043 -0.008919 +0.070299 -0.036862 -0.014543 0.024500 -0.015222 +0.114975 -0.043705 0.000421 -0.061872 -0.035148 +-0.022797 0.128575 -0.031798 -0.086718 -0.007172 +-0.071706 -0.006833 0.028645 -0.007011 -0.096745 +-0.142269 0.027996 0.065210 0.061381 0.000741 +-0.140531 0.017480 -0.014986 -0.040893 -0.012718 +-0.012494 -0.021869 -0.032923 0.016456 0.104475 +0.010792 -0.066178 0.019097 -0.001893 0.067513 +-0.092673 -0.059851 -0.045936 0.052642 -0.062500 +0.065013 -0.025659 -0.149301 0.051705 0.035692 +-0.045790 -0.007482 -0.069141 0.149365 -0.042039 +0.018492 -0.081315 0.055880 0.058158 0.019669 +0.063836 -0.012391 0.007057 0.155454 0.033854 +-0.016532 -0.007661 0.043113 -0.080283 -0.108670 +-0.029344 0.093781 -0.015840 -0.068134 0.091804 +0.004148 -0.058507 0.059633 -0.095883 -0.004939 +0.086151 -0.113571 -0.019466 -0.009167 0.003662 diff --git a/src/codebook/lspvqexp1.txt b/src/codebook/lspvqexp1.txt new file mode 100644 index 0000000..808b95b --- /dev/null +++ b/src/codebook/lspvqexp1.txt @@ -0,0 +1,2049 @@ +10 2048 +0.408892 0.649827 0.954657 1.095560 1.374775 1.695544 2.186975 2.404129 2.599671 2.716599 +0.206312 0.393044 0.534358 0.831490 0.964061 1.315881 1.711009 1.884982 2.656064 2.789476 +0.294007 0.430921 0.584720 0.972610 1.346504 1.446720 1.672880 1.854151 2.292980 2.574467 +0.130573 0.192259 0.568997 1.014611 1.204902 1.371336 1.696595 2.109828 2.488139 2.749404 +0.119174 0.172048 0.555350 1.041664 1.294588 1.603976 1.924941 2.215881 2.537337 2.763865 +0.264060 0.351222 0.551394 0.836209 0.955359 1.467373 1.883071 2.011362 2.370015 2.500936 +0.206715 0.433527 0.682328 0.833734 1.164725 1.476463 1.775427 2.152234 2.639949 2.796348 +0.211225 0.320307 0.437323 0.659797 1.492016 1.699378 1.859517 2.131810 2.328455 2.499706 +0.480644 0.630950 0.822352 1.123960 1.461020 1.594792 1.889414 2.166284 2.404039 2.536132 +0.233285 0.324869 0.445867 0.683777 0.826101 0.975483 1.764219 2.154061 2.334729 2.602314 +0.315909 0.537121 0.711160 0.941341 1.178015 1.302627 1.643751 2.058463 2.464410 2.591263 +0.245173 0.382524 0.532006 0.708503 1.236528 1.448436 1.777993 2.124256 2.306038 2.625603 +0.245615 0.291619 0.819764 1.444781 1.578166 1.731349 2.095787 2.242522 2.603987 2.720052 +0.173862 0.229815 0.418896 0.695378 0.931595 1.188532 1.820958 2.120767 2.330289 2.464753 +0.303527 0.372419 0.740620 1.167964 1.327370 1.494681 1.784226 1.898711 2.311465 2.642713 +0.259744 0.401730 0.575188 0.834348 1.431968 1.604358 1.798482 2.185462 2.402074 2.554969 +0.337109 0.570466 1.175085 1.451610 1.761333 1.975735 2.126135 2.293190 2.536691 2.706431 +0.367145 0.452099 0.647409 0.817255 0.902956 1.238037 1.825344 1.922997 2.436059 2.609846 +0.378662 0.531818 0.674407 0.919671 1.409610 1.559852 1.771428 2.027114 2.253246 2.408198 +0.163411 0.267202 0.378752 0.982090 1.260325 1.393847 1.801359 1.943528 2.730199 2.854737 +0.315416 0.366274 0.657622 1.193970 1.448486 1.554740 1.791291 1.913099 2.285878 2.665674 +0.182284 0.250810 0.478825 0.774649 1.250927 1.657871 1.857476 1.999098 2.286088 2.777030 +0.280912 0.330939 0.631688 0.754025 0.941971 1.616999 1.814228 2.013341 2.634148 2.720386 +0.197110 0.280354 0.442898 0.794104 1.537225 1.674591 1.953914 2.155343 2.626079 2.817453 +0.324055 0.494234 0.849184 1.111214 1.388737 1.737885 1.975967 2.381772 2.611796 2.753205 +0.249643 0.364552 0.527912 0.900747 1.026842 1.398842 1.869778 2.015830 2.450740 2.598903 +0.210241 0.311192 0.495868 0.687507 1.152048 1.296946 1.520174 2.255285 2.440410 2.686456 +0.159037 0.244226 0.385934 0.687847 1.072342 1.386804 1.785080 1.924100 2.533529 2.669124 +0.234363 0.441050 0.678179 0.862648 1.224287 1.720752 1.949118 2.386935 2.642309 2.768447 +0.177323 0.256095 0.417949 0.816232 1.042933 1.254927 1.618581 1.928664 2.118610 2.463463 +0.247362 0.335496 0.753623 1.051947 1.239658 1.426773 1.621176 2.053494 2.480950 2.615165 +0.156480 0.216035 0.368476 0.588087 1.238670 1.459124 1.827783 1.975080 2.316953 2.770680 +0.198050 0.342316 0.883251 1.421788 1.645484 1.905948 2.140263 2.301866 2.620508 2.774812 +0.257995 0.358680 0.537441 0.694512 0.824406 1.362975 1.764952 1.925331 2.486171 2.617074 +0.252496 0.330798 0.493815 0.973920 1.306189 1.439735 1.920226 2.087274 2.257323 2.398019 +0.165073 0.249466 0.371194 1.033936 1.278111 1.449107 2.046790 2.168316 2.497102 2.729474 +0.351523 0.566840 0.885298 1.113196 1.285310 1.425799 1.728030 2.101425 2.514797 2.765585 +0.247070 0.331460 0.517797 1.035640 1.189321 1.389341 1.740344 1.976250 2.202072 2.430856 +0.250272 0.471488 0.632229 0.874364 1.003062 1.214226 1.782201 1.915722 2.618775 2.804373 +0.178042 0.247938 0.413307 0.724804 1.348933 1.537515 2.114127 2.301885 2.636884 2.826241 +0.321648 0.521672 0.933498 1.194774 1.582506 1.752098 1.962687 2.185410 2.511609 2.710750 +0.189405 0.281558 0.405270 0.624133 0.831682 0.979077 1.773124 2.022636 2.231772 2.709233 +0.338988 0.556585 0.722942 0.903725 1.137734 1.260460 1.698745 2.141650 2.342421 2.527244 +0.283960 0.422437 0.547151 0.805702 1.347223 1.507695 1.702228 2.041553 2.221081 2.575186 +0.116988 0.373808 0.677058 1.246354 1.579914 1.860096 2.174202 2.426485 2.666464 2.778514 +0.172660 0.279061 0.420803 0.776647 1.027097 1.182553 1.880931 2.023781 2.400028 2.816622 +0.244703 0.354981 0.775126 1.007264 1.208883 1.571339 1.920167 2.128560 2.418384 2.673311 +0.277862 0.345899 0.491009 1.000182 1.668493 1.893737 2.024216 2.203943 2.418550 2.555188 +0.200787 0.681282 1.126094 1.309507 1.738042 2.023257 2.342799 2.463428 2.602179 2.702804 +0.223979 0.466963 0.728850 0.888776 1.090618 1.234456 1.705574 2.241550 2.510834 2.751795 +0.264860 0.389642 0.536973 0.871669 1.323290 1.441181 1.682582 1.973355 2.163007 2.401176 +0.254211 0.390772 0.549594 0.748576 1.280532 1.474290 1.636048 2.013508 2.479875 2.650004 +0.191314 0.280703 0.420214 1.117728 1.347340 1.558388 1.722577 2.094362 2.606691 2.753977 +0.152313 0.198389 0.337122 0.490241 1.023739 1.222176 1.581978 1.852165 2.361974 2.553970 +0.343523 0.473063 0.661058 0.896926 1.009881 1.426789 2.003978 2.115197 2.358072 2.676757 +0.225495 0.299263 0.443642 0.793508 1.407173 1.798104 2.159374 2.284811 2.501925 2.644715 +0.220837 0.608771 0.967248 1.237940 1.450245 1.693405 2.002186 2.239767 2.534945 2.707207 +0.290250 0.359912 0.599268 0.771394 0.922184 1.257421 2.137963 2.330228 2.526054 2.700371 +0.269144 0.463439 0.625052 0.842594 1.239627 1.353331 1.687365 2.092062 2.284863 2.634475 +0.170231 0.237346 0.408666 0.698347 1.146923 1.313417 1.753705 1.891356 2.401344 2.558038 +0.171963 0.247483 0.388808 0.980638 1.502962 1.644121 1.955137 2.148787 2.393447 2.630021 +0.209519 0.325681 0.464669 0.682705 1.111676 1.225834 1.824262 2.151181 2.384320 2.739424 +0.210672 0.533806 0.825201 0.990473 1.145813 1.393566 1.999486 2.222956 2.524156 2.776040 +0.261962 0.340226 0.472952 0.863674 1.443518 1.829669 1.994398 2.132878 2.355090 2.469655 +0.340277 0.460050 0.748860 1.054174 1.614903 1.804636 1.993799 2.247318 2.473443 2.602200 +0.239159 0.394343 0.578732 0.754990 0.941899 1.128161 1.620559 2.020968 2.585087 2.783718 +0.269667 0.342100 0.485464 1.053892 1.413864 1.534461 1.740671 1.909701 2.286779 2.538869 +0.076962 0.097269 0.408343 0.942043 1.237899 1.573872 1.883029 2.186618 2.520305 2.790522 +0.170175 0.223705 0.651279 1.003661 1.370350 1.628746 1.941629 2.172624 2.450895 2.649955 +0.219608 0.300784 0.472750 0.871097 1.064995 1.283347 1.869030 2.047338 2.234764 2.423176 +0.283455 0.337982 0.663326 0.792275 0.925513 1.457560 1.740494 1.857127 2.583274 2.700391 +0.199190 0.263142 0.443787 0.684379 1.185091 1.879212 2.080132 2.224038 2.427704 2.576557 +0.219374 0.680594 0.965335 1.102093 1.296977 1.590756 2.074636 2.334754 2.586458 2.754939 +0.198099 0.308630 0.432817 0.619556 0.754862 0.931998 1.549410 1.846704 2.294094 2.636366 +0.338876 0.446352 0.640399 0.996449 1.224095 1.344627 1.695974 1.883015 2.104946 2.489100 +0.166453 0.240154 0.399798 0.829295 1.305386 1.443374 1.723531 1.880577 2.379309 2.500316 +0.244810 0.287547 0.565833 1.376218 1.610718 1.731021 2.128375 2.264382 2.552460 2.697921 +0.203376 0.353110 0.454768 0.707277 0.892936 1.038801 1.609843 1.809379 2.065993 2.304645 +0.392222 0.453261 0.813874 1.205541 1.320471 1.599816 1.858220 2.029353 2.491522 2.638332 +0.269519 0.326891 0.470180 1.053385 1.538230 1.686468 1.865876 2.081763 2.229408 2.441901 +0.463250 0.707535 1.093317 1.316217 1.598936 1.783637 1.982618 2.134436 2.396915 2.574501 +0.234043 0.348930 0.473804 0.709797 1.030257 1.152835 1.749074 2.178802 2.334442 2.638112 +0.356771 0.553522 0.702444 0.911763 1.372687 1.512426 1.716079 1.969296 2.175300 2.356841 +0.215283 0.314571 0.448084 0.938241 1.488615 1.610559 1.858891 2.014800 2.487515 2.656114 +0.255059 0.324128 0.591637 1.140724 1.280033 1.626440 1.845765 2.008493 2.607807 2.732065 +0.190953 0.284283 0.446537 0.903721 1.083755 1.521604 1.865214 2.039362 2.398102 2.603527 +0.218632 0.323425 0.485128 0.801138 0.934826 1.550687 1.950327 2.141484 2.437725 2.588421 +0.240697 0.351397 0.469534 0.775124 1.406794 1.725183 1.871364 2.156495 2.381976 2.555115 +0.355558 0.461716 0.684575 1.091512 1.719266 1.926216 2.051391 2.237427 2.507442 2.610706 +0.160350 0.190000 0.366405 0.494497 0.868240 1.345426 1.566707 2.068702 2.335099 2.641913 +0.219362 0.326275 0.619951 0.801217 1.176182 1.324616 1.567767 1.852718 2.393752 2.544625 +0.242295 0.361032 0.536827 0.699045 1.264826 1.578333 1.777090 2.115510 2.587465 2.731970 +0.185629 0.225499 0.394464 1.072663 1.725553 1.814897 2.037215 2.318703 2.570456 2.700776 +0.199282 0.271847 0.427336 0.691175 0.936688 1.307560 1.755173 1.941991 2.180527 2.289541 +0.440652 0.657600 0.846249 1.115177 1.383954 1.526095 1.839294 2.054337 2.261747 2.486134 +0.254743 0.370981 0.519721 0.892661 1.365537 1.512546 1.867709 2.025821 2.338400 2.608154 +0.374541 0.564001 1.042547 1.268517 1.427251 1.737400 2.240345 2.527386 2.748712 2.871518 +0.163240 0.229374 0.631209 0.821347 1.079198 1.312352 1.847665 2.085082 2.462129 2.646514 +0.257702 0.368235 0.785115 0.964453 1.130321 1.417415 1.830826 2.058137 2.393471 2.589613 +0.195822 0.280922 0.414972 0.646213 1.237085 1.398279 1.830678 2.337509 2.561924 2.750149 +0.302754 0.361163 0.751614 0.974525 1.131739 1.643605 1.825553 2.044086 2.641030 2.739994 +0.235437 0.315967 0.652539 0.816752 1.083366 1.622892 1.852217 2.030423 2.192530 2.575813 +0.291611 0.410807 0.602501 0.962264 1.083617 1.420033 1.771443 1.907873 2.445734 2.652716 +0.189868 0.257547 0.397682 0.669228 1.309264 1.797630 1.994844 2.138696 2.608657 2.757821 +0.479797 0.701925 0.989967 1.226383 1.556286 1.735962 2.055139 2.286164 2.529859 2.666528 +0.215045 0.313827 0.431033 0.651895 0.829909 1.000831 1.815727 2.226013 2.392474 2.760351 +0.306301 0.398661 0.653631 1.025764 1.189362 1.401036 1.898166 2.051914 2.236996 2.422421 +0.167970 0.224219 0.368107 0.623431 1.201568 1.381682 1.762247 1.920037 2.113047 2.522470 +0.185718 0.243656 0.376917 1.209258 1.581544 1.690223 2.033223 2.376102 2.591085 2.756869 +0.147871 0.206576 0.362439 0.637580 0.940549 1.343574 1.621941 1.733152 1.946250 2.723886 +0.324080 0.457905 0.793499 1.005600 1.260387 1.583156 1.886643 2.096396 2.372896 2.578810 +0.226219 0.308328 0.636626 0.866278 1.534446 1.701010 1.887737 2.161067 2.358914 2.503200 +0.606744 0.955507 1.338156 1.567438 1.821726 2.055362 2.279753 2.416922 2.604378 2.699013 +0.246984 0.386718 0.502785 0.760434 1.042124 1.263722 1.435097 2.414889 2.724612 2.819326 +0.292410 0.502940 0.672216 0.892183 1.209496 1.339252 1.760220 1.968766 2.362511 2.623487 +0.143375 0.199091 0.483698 0.992064 1.214869 1.614010 1.832079 1.978488 2.281935 2.713930 +0.266561 0.304298 0.533705 1.305138 1.580937 1.665891 1.884884 2.014163 2.228380 2.568778 +0.178658 0.231896 0.383912 0.540251 1.225283 1.458102 1.922772 2.083421 2.250593 2.408925 +0.289292 0.350422 0.695339 0.839824 1.012699 1.582703 1.751493 2.110402 2.491079 2.602625 +0.191978 0.275525 0.396619 0.582467 1.263497 1.658220 1.987982 2.164226 2.491219 2.655634 +0.271271 0.427594 0.784469 1.094218 1.535344 1.895921 2.111855 2.328610 2.716413 2.835820 +0.197072 0.315577 0.461034 0.771499 0.895098 1.249097 1.937811 2.117715 2.428590 2.608183 +0.211338 0.407351 0.538840 0.766827 1.152593 1.246498 1.679320 1.905728 2.120349 2.677619 +0.135615 0.163159 0.283783 0.431117 0.953107 1.462377 1.809595 2.130270 2.442565 2.743798 +0.166707 0.238759 0.367497 0.902142 1.508106 1.650293 1.825543 1.979014 2.655324 2.825020 +0.349277 0.540928 0.693205 0.826151 1.104738 1.259800 1.507300 2.094618 2.320842 2.523635 +0.325055 0.432779 0.621749 1.070682 1.304776 1.457668 1.900591 2.027150 2.460400 2.683254 +0.232534 0.355259 0.543295 0.744519 1.329342 1.648497 1.789282 2.116619 2.343387 2.501568 +0.465485 0.876578 1.205981 1.371947 1.745534 1.938156 2.176847 2.328487 2.521049 2.656868 +0.246604 0.364927 0.536848 0.850639 1.033582 1.224962 1.555694 1.725857 2.343766 2.568854 +0.345140 0.476535 0.650548 0.994609 1.167264 1.343813 1.779614 1.923453 2.324548 2.609157 +0.140607 0.199293 0.674213 0.958553 1.263430 1.520789 1.808626 2.055790 2.415260 2.705252 +0.125913 0.381885 0.618365 0.994294 1.317324 1.547930 1.818095 2.158588 2.494214 2.751068 +0.214195 0.320569 0.719851 0.846412 1.134388 1.428969 1.611410 2.041914 2.282243 2.508041 +0.250098 0.404670 0.540333 0.911835 1.060249 1.279821 1.619963 1.771663 2.496606 2.697909 +0.163090 0.213459 0.360500 0.504711 1.040089 1.576896 1.979044 2.125480 2.339164 2.609713 +0.356943 0.533785 0.924836 1.108094 1.324907 1.563986 2.016874 2.233505 2.510859 2.677439 +0.226046 0.346550 0.669965 0.775492 0.992753 1.149356 1.460794 2.260130 2.505825 2.717261 +0.322304 0.403181 0.776459 0.964458 1.099992 1.312705 1.399455 1.890224 2.369477 2.448458 +0.181583 0.245567 0.398747 0.597666 1.249798 1.421203 1.606076 2.062186 2.473743 2.644347 +0.254588 0.326744 1.005093 1.262125 1.386127 1.779710 1.955644 2.320802 2.571383 2.678189 +0.216441 0.331207 0.529500 0.654360 0.976477 1.361296 1.647430 2.064996 2.284304 2.569981 +0.327013 0.391820 0.720865 1.097162 1.210384 1.510465 1.765619 1.895802 2.508466 2.678337 +0.252152 0.343407 0.663772 1.085064 1.474659 1.659743 1.910625 2.070943 2.565518 2.717751 +0.349806 0.488123 1.077976 1.292638 1.515886 1.846355 2.084915 2.406884 2.610810 2.736561 +0.182819 0.308233 0.418992 0.708488 0.808059 1.045333 1.698019 1.837574 2.442304 2.609622 +0.277323 0.408804 0.571028 0.828924 1.404815 1.598729 1.759862 1.985935 2.333424 2.455915 +0.229839 0.342341 0.470342 1.002275 1.285925 1.399377 1.816619 1.930907 2.470705 2.802064 +0.244913 0.299585 0.779774 1.322881 1.429162 1.587382 1.738489 2.162786 2.520459 2.623668 +0.161891 0.228443 0.419656 0.733282 0.922895 1.405447 1.884393 2.078046 2.269896 2.589494 +0.270447 0.452251 0.634105 0.780705 0.965021 1.351395 1.825782 2.214939 2.632158 2.796098 +0.171118 0.234980 0.395507 0.838430 1.544455 1.699044 2.124182 2.287668 2.660613 2.849673 +0.213781 0.293496 0.663454 0.993393 1.412625 1.646492 2.074110 2.290676 2.508346 2.653511 +0.199402 0.316802 0.426338 0.630931 0.735249 1.132121 1.883614 2.046046 2.416976 2.580155 +0.210048 0.294088 0.590707 0.762351 1.146848 1.352924 1.637070 2.017207 2.305862 2.432462 +0.154676 0.232848 0.373861 0.948260 1.342786 1.514201 1.755766 1.926693 2.555124 2.717005 +0.137148 0.221322 0.381753 0.919373 1.152152 1.376375 1.826205 2.189540 2.648671 2.813516 +0.245209 0.338241 0.486220 0.814091 0.944966 1.134755 1.358289 1.523556 2.149645 2.315495 +0.392124 0.549332 0.727700 0.905451 1.202400 1.375569 1.534258 1.840057 2.422734 2.556400 +0.148684 0.204787 0.552934 0.803123 1.372462 1.550381 1.754747 2.118492 2.372977 2.711653 +0.267280 0.397322 0.846103 1.172950 1.465464 1.857475 2.153775 2.381172 2.591304 2.723190 +0.194992 0.314743 0.526878 0.796319 1.177375 1.299335 1.525584 1.682646 2.452032 2.795741 +0.301179 0.371796 0.577128 1.081605 1.303060 1.419674 1.898891 2.054902 2.252552 2.600649 +0.252900 0.355818 0.549064 0.965795 1.162628 1.585047 1.928827 2.119789 2.498842 2.665173 +0.256762 0.436508 0.715681 1.130116 1.316991 1.587569 1.850331 2.197839 2.605877 2.796521 +0.235855 0.314907 0.609574 0.859658 1.266780 1.499482 1.790537 1.910982 2.039772 2.187359 +0.200486 0.336241 0.495825 0.891310 1.133452 1.285295 1.612858 1.828238 2.394734 2.809663 +0.179969 0.232629 0.363081 0.500578 1.184534 1.700401 2.059216 2.168101 2.610554 2.836451 +0.348768 0.492321 1.055246 1.314914 1.471270 1.645210 1.876419 2.100446 2.525029 2.694314 +0.171135 0.273412 0.378187 0.581850 0.726115 0.908194 1.708076 1.905747 2.542437 2.797354 +0.315194 0.475887 0.658397 0.849734 1.017156 1.173887 1.755577 2.042149 2.216786 2.521016 +0.229599 0.378223 0.495710 0.879870 1.173185 1.276381 1.777400 1.935276 2.173970 2.748099 +0.197210 0.253422 0.651252 1.311542 1.636493 1.706783 2.105431 2.346619 2.641613 2.771729 +0.232136 0.443332 0.579669 0.760076 0.955242 1.094270 1.726616 1.914262 2.122649 2.700118 +0.186271 0.267327 0.840223 1.116294 1.440220 1.650886 1.944246 2.192076 2.483403 2.643816 +0.268607 0.318357 0.512736 1.129834 1.613930 1.740081 1.917514 2.123735 2.299945 2.557182 +0.479249 0.689878 1.088007 1.470716 1.716709 1.922473 2.158730 2.305877 2.511790 2.656073 +0.307991 0.431011 0.578118 0.877244 1.205302 1.312688 1.629259 2.238238 2.462001 2.580776 +0.293918 0.452236 0.659902 0.921329 1.309254 1.422508 1.668206 2.064588 2.322038 2.461436 +0.131440 0.209617 0.702675 1.016897 1.223185 1.385724 1.670724 1.961691 2.376852 2.732092 +0.193489 0.279816 0.428516 1.256267 1.395720 1.633455 1.873432 2.214886 2.671449 2.786280 +0.182323 0.240522 0.451705 0.799605 1.223096 1.445970 1.647433 1.971485 2.217583 2.336581 +0.384106 0.488198 0.644947 0.897630 1.047334 1.468272 1.839224 1.937923 2.262459 2.408476 +0.260306 0.326571 0.615384 1.084790 1.376745 1.778446 1.998233 2.171540 2.424597 2.575747 +0.340699 0.545965 0.865284 1.131340 1.458730 1.711046 2.089316 2.336073 2.684077 2.841771 +0.290674 0.372204 0.609647 0.779269 0.906420 1.332695 1.973245 2.155443 2.354880 2.655993 +0.308041 0.460783 0.632808 0.911363 1.081813 1.231896 1.747306 1.927967 2.170864 2.605727 +0.180523 0.263276 0.388872 0.565969 0.970599 1.149292 1.871610 2.207290 2.458204 2.667791 +0.143978 0.222658 0.400384 1.086970 1.323702 1.528106 1.995792 2.231147 2.688186 2.836361 +0.209150 0.326190 0.485707 0.681360 1.195456 1.385054 1.544410 2.045718 2.276514 2.434761 +0.297725 0.399777 0.588061 0.894914 1.022395 1.243834 2.009751 2.182970 2.413135 2.638027 +0.228593 0.289986 0.631198 0.791618 1.403101 1.777890 1.926222 2.136335 2.313587 2.489963 +0.343174 0.500760 1.039265 1.351369 1.721522 1.925940 2.190967 2.354142 2.532626 2.657845 +0.149735 0.297295 0.440372 0.642471 0.732234 1.200738 1.414606 1.770276 2.778155 2.883980 +0.223698 0.281114 0.635545 1.061406 1.252740 1.613423 1.836402 1.963828 2.140470 2.593562 +0.168168 0.232950 0.408892 0.653722 1.031457 1.548556 1.766449 2.230830 2.626126 2.797381 +0.222326 0.345655 0.786775 1.107909 1.305189 1.588197 1.993469 2.213238 2.511325 2.685326 +0.224020 0.317494 0.598436 0.845315 1.197927 1.319317 1.767399 2.160174 2.338471 2.525570 +0.198682 0.295026 0.450891 0.867753 0.988755 1.401296 1.687600 1.894339 2.559558 2.696080 +0.206679 0.295846 0.477897 0.699492 1.273871 1.789097 1.959682 2.171515 2.399523 2.555694 +0.353705 0.509579 0.861689 1.094569 1.427975 1.625819 1.845189 2.034662 2.339261 2.562173 +0.176626 0.248928 0.429179 0.658231 0.856663 1.071207 1.601595 1.968639 2.470776 2.718292 +0.314175 0.392578 0.678288 0.944677 1.081793 1.304708 1.492952 1.733627 2.167258 2.307337 +0.202661 0.269438 0.509570 0.817339 1.376869 1.513847 1.874609 2.094859 2.323847 2.480180 +0.234414 0.278975 0.540035 1.347889 1.582923 1.720967 1.986105 2.114372 2.567473 2.703603 +0.146798 0.210418 0.385776 0.649932 0.920041 1.248588 1.573579 1.711404 2.232087 2.791487 +0.382058 0.469618 0.713606 1.069660 1.176016 1.497437 1.813598 1.950404 2.598859 2.726089 +0.334215 0.396922 0.687976 1.087820 1.575500 1.754574 1.906641 2.123504 2.311875 2.443046 +0.264352 0.802524 1.285656 1.486584 1.714037 1.865311 2.035536 2.281585 2.562390 2.750718 +0.270580 0.372011 0.562949 0.825388 0.994299 1.169245 1.870741 2.135215 2.301336 2.518290 +0.449329 0.649113 0.811339 0.973882 1.234030 1.349977 1.692316 1.971266 2.154687 2.357538 +0.180117 0.263580 0.408830 1.127021 1.317638 1.497965 1.895425 2.031294 2.672116 2.818667 +0.331179 0.404977 0.766611 1.259419 1.431059 1.581972 1.939935 2.087575 2.416872 2.639616 +0.194102 0.279875 0.549239 0.704386 1.177109 1.529852 1.691669 2.044312 2.359273 2.560290 +0.217844 0.305871 0.442547 0.616270 0.791798 1.713038 1.956014 2.134547 2.520649 2.795859 +0.162088 0.245953 0.365670 0.638902 1.457619 1.641568 1.838031 2.013303 2.320106 2.729780 +0.236749 0.306797 0.734177 1.072402 1.551912 1.853315 2.104151 2.256363 2.475312 2.617668 +0.176733 0.238829 0.485876 0.687779 0.927283 1.403874 1.830537 2.195431 2.429970 2.626018 +0.268020 0.478288 0.731817 0.871173 1.083963 1.253101 1.535103 2.185826 2.455996 2.622463 +0.166174 0.232448 0.362076 0.591660 1.356885 1.632572 1.826301 1.987791 2.467764 2.659140 +0.236315 0.287802 0.548409 0.987167 1.721933 1.836472 2.152486 2.384523 2.592315 2.741028 +0.148319 0.185444 0.292576 0.511994 0.653403 1.371832 1.527681 1.776139 2.182163 2.227991 +0.401535 0.564293 0.893142 1.022987 1.156707 1.327441 1.701821 1.993285 2.370534 2.578619 +0.165638 0.255975 0.370284 0.802811 1.426084 1.572731 1.787459 1.915582 2.413753 2.802844 +0.317083 0.519809 0.936968 1.293236 1.686332 1.984336 2.186929 2.353187 2.746765 2.860986 +0.189287 0.380990 0.546039 0.784587 1.003621 1.162395 1.874419 2.057907 2.555748 2.785834 +0.200570 0.284860 0.609927 0.826229 1.198949 1.436548 1.809361 2.033038 2.401620 2.587587 +0.168913 0.291597 0.445205 0.722025 1.163607 1.283554 1.763882 1.943265 2.445617 2.817539 +0.360050 0.443567 0.853632 0.987093 1.191562 1.562912 1.869792 2.232417 2.543480 2.645225 +0.231905 0.297890 0.611365 0.830346 1.094545 1.582087 1.848979 2.056068 2.241982 2.394253 +0.331013 0.427540 0.641785 0.946294 1.070136 1.373613 1.859665 1.965907 2.332441 2.584977 +0.186393 0.242540 0.372099 0.728034 1.467825 1.880137 2.042177 2.272992 2.633925 2.779591 +0.446483 0.648214 0.993351 1.205829 1.476224 1.661697 1.899206 2.087562 2.408776 2.592556 +0.208614 0.297946 0.427983 0.600065 0.709456 1.284278 2.044367 2.179822 2.682450 2.818833 +0.306024 0.468602 0.638450 0.827416 1.302277 1.427429 1.811154 2.176106 2.372543 2.496738 +0.152872 0.217872 0.355627 0.713701 1.075149 1.446741 1.848785 1.978762 2.159635 2.712916 +0.234973 0.319771 0.478090 1.080036 1.447440 1.571699 1.982304 2.127281 2.559717 2.736762 +0.162524 0.250245 0.389070 0.646952 0.872934 1.222022 1.856534 2.002922 2.205745 2.599505 +0.323202 0.432855 0.814249 1.180773 1.335093 1.521419 1.901656 2.092343 2.350187 2.560064 +0.273240 0.329948 0.562890 1.003483 1.538259 1.875392 2.025443 2.170349 2.380148 2.499017 +0.500444 0.796365 1.318632 1.529307 1.785448 1.972761 2.147764 2.310849 2.519566 2.650408 +0.263728 0.375983 0.556014 0.707339 1.188811 1.339543 1.652143 2.209513 2.616263 2.738796 +0.266858 0.438409 0.640135 0.862517 1.340556 1.500100 1.686339 2.153946 2.448590 2.598137 +0.190447 0.295300 0.432651 0.884499 1.072087 1.256294 1.823661 1.957091 2.345386 2.577329 +0.243926 0.297921 0.524525 1.251205 1.478145 1.594774 1.967380 2.076378 2.370787 2.732472 +0.167306 0.212866 0.358147 0.499128 0.984267 1.284647 1.814420 2.033044 2.314127 2.439818 +0.254879 0.320323 0.682137 0.944750 1.083508 1.662985 2.084039 2.246726 2.582054 2.713386 +0.212215 0.297268 0.418087 0.743693 1.609250 1.923321 2.079152 2.242169 2.464816 2.591376 +0.117901 0.208978 0.750040 1.145517 1.437720 1.744291 2.143051 2.439937 2.749809 2.873675 +0.193258 0.299329 0.443516 0.797326 0.939062 1.148247 2.018657 2.143420 2.638335 2.829836 +0.213782 0.353502 0.481322 0.711845 1.170764 1.302711 1.535835 1.703291 2.279212 2.748103 +0.115171 0.144705 0.242103 0.453456 1.202245 1.525989 1.893854 2.179999 2.517564 2.798073 +0.238570 0.307781 0.447781 0.957056 1.599743 1.771585 1.940690 2.245051 2.435372 2.633593 +0.194447 0.266589 0.445674 0.635231 0.910266 1.074602 1.340239 1.919744 2.377594 2.630265 +0.297496 0.544047 0.851256 1.025765 1.203569 1.446499 1.981579 2.194582 2.414346 2.605178 +0.203460 0.275006 0.515591 0.732576 1.407979 1.561138 1.760709 2.030957 2.312387 2.431093 +0.498532 0.697751 1.045964 1.328280 1.488249 1.717432 2.051335 2.268465 2.588202 2.722759 +0.194097 0.345960 0.482722 0.874859 1.052521 1.250837 1.534492 1.720853 2.636782 2.816708 +0.266101 0.394737 0.545547 0.974166 1.278319 1.387120 1.790143 1.967144 2.177889 2.702878 +0.102867 0.171081 0.576060 0.818748 1.189242 1.510470 1.778003 2.103994 2.520545 2.748259 +0.119052 0.208027 0.744711 1.011939 1.289820 1.547449 1.904002 2.157777 2.533138 2.773751 +0.210113 0.291141 0.487281 0.790277 0.954605 1.401661 1.701442 1.897619 2.210404 2.382596 +0.266446 0.411500 0.593156 0.920817 1.042570 1.321476 1.890868 2.015685 2.574753 2.734992 +0.195053 0.286814 0.458352 0.639707 1.284634 1.645299 1.800882 2.168396 2.390218 2.562172 +0.341567 0.526183 0.892818 1.084248 1.334447 1.590215 1.889298 2.135833 2.519801 2.745352 +0.323599 0.420247 0.572363 0.757221 0.889572 1.036953 1.623345 2.196313 2.409765 2.540575 +0.410364 0.592459 0.763563 0.927955 1.176077 1.308890 1.569276 2.059039 2.380497 2.499273 +0.194371 0.276796 0.581419 0.722859 1.264729 1.505348 1.711903 2.189092 2.444234 2.629075 +0.252525 0.297192 0.844332 1.381854 1.514803 1.693308 1.854404 2.129548 2.591287 2.684159 +0.170004 0.214112 0.394084 0.539179 0.822416 1.250980 1.752323 2.086240 2.289006 2.448613 +0.289267 0.343412 0.775795 1.191573 1.303367 1.539691 1.782253 1.905366 2.579603 2.729614 +0.234791 0.321602 0.704594 0.949738 1.420244 1.594285 1.774127 2.194285 2.467211 2.589613 +0.340968 0.561082 1.199771 1.415378 1.689161 1.838640 2.014730 2.162685 2.430697 2.592350 +0.345276 0.499518 0.706277 0.861164 0.999501 1.150174 1.572106 1.964424 2.390120 2.588870 +0.357406 0.496053 0.646703 0.939578 1.460352 1.676567 1.834109 2.014842 2.385901 2.507758 +0.176473 0.238482 0.404112 0.892358 1.136652 1.536592 1.716827 1.872719 2.552209 2.759174 +0.222384 0.324129 0.833161 1.246603 1.460920 1.650632 1.876566 2.087675 2.354362 2.547825 +0.167777 0.229073 0.433058 0.810575 1.128669 1.556495 1.799821 1.915429 2.106489 2.677788 +0.306967 0.371498 0.623689 0.749815 0.934500 1.649015 1.792619 2.190421 2.536272 2.643777 +0.148383 0.236235 0.322878 0.555588 1.594153 1.725789 1.992119 2.178572 2.540447 2.774265 +0.377895 0.546230 0.852056 1.067292 1.455797 1.652672 2.018925 2.238220 2.468715 2.644735 +0.300062 0.399164 0.567524 0.740898 0.849393 1.425476 1.948578 2.050102 2.416440 2.546289 +0.218019 0.356752 0.584786 0.769374 1.165925 1.291779 1.688308 2.175240 2.369045 2.711417 +0.143884 0.210234 0.342148 0.566261 1.198668 1.437368 1.683504 1.842729 2.638129 2.833574 +0.115081 0.173169 0.584021 1.134381 1.407360 1.689153 2.034286 2.294650 2.638147 2.814312 +0.190721 0.252429 0.584147 0.836602 1.015264 1.254879 1.571659 2.007112 2.245095 2.426652 +0.309544 0.480824 0.812592 1.075038 1.325338 1.457449 1.679174 1.976619 2.381620 2.705381 +0.164599 0.274956 0.399399 0.735839 1.360979 1.482765 1.859273 2.011226 2.288457 2.792980 +0.187333 0.353999 1.222795 1.502985 1.770143 1.982262 2.203271 2.378492 2.606563 2.729390 +0.158025 0.248611 0.551584 0.735140 0.915073 1.281500 1.744031 1.922872 2.435679 2.716805 +0.273434 0.367213 0.642574 1.050887 1.345202 1.494431 1.909997 2.107095 2.336366 2.534901 +0.264699 0.416517 0.576907 0.947351 1.178990 1.385352 1.951926 2.132530 2.549979 2.786944 +0.142221 0.546287 0.805410 1.079219 1.288179 1.492189 1.774180 2.114597 2.427330 2.681890 +0.230540 0.326500 0.461675 0.964559 1.255458 1.369392 1.856593 2.039532 2.207278 2.539486 +0.137659 0.377399 0.593860 0.793016 1.115754 1.281644 1.840901 1.971659 2.472814 2.713504 +0.144356 0.222505 0.346683 0.782224 1.201084 1.371745 2.123343 2.366887 2.623919 2.803847 +0.362575 0.509680 1.001234 1.230119 1.473004 1.608864 1.802561 2.021551 2.326705 2.519219 +0.240803 0.361576 0.516660 0.727416 0.914394 1.051113 1.716835 2.160538 2.328331 2.706675 +0.351054 0.517992 0.725905 0.915622 1.055525 1.339295 1.898183 2.100270 2.307558 2.559254 +0.200168 0.322989 0.505425 0.676330 1.190121 1.354931 1.731948 1.999324 2.249015 2.624332 +0.219896 0.269490 0.521875 1.237665 1.710417 1.793651 2.115240 2.279260 2.536737 2.689478 +0.215336 0.396644 0.543160 0.728604 1.109190 1.229364 1.727973 1.963312 2.325039 2.797789 +0.264892 0.352500 0.883446 1.155268 1.338153 1.628498 1.841805 2.014230 2.264319 2.462976 +0.239779 0.301722 0.529044 1.147546 1.636525 1.760760 1.966137 2.262281 2.456574 2.621762 +0.320203 0.679639 1.229787 1.529834 1.826892 2.060858 2.286789 2.422168 2.716167 2.843881 +0.353658 0.547800 0.796651 0.899078 1.041245 1.321838 1.822982 2.161422 2.619096 2.820678 +0.261908 0.345021 0.472318 0.918792 1.423161 1.564348 1.733377 2.067856 2.262877 2.396698 +0.124156 0.193894 0.636158 0.840841 1.110258 1.289251 1.683161 1.869014 2.398865 2.731114 +0.165710 0.239716 0.465502 1.228637 1.420469 1.692829 1.888377 2.147997 2.486300 2.699831 +0.160684 0.209986 0.367031 0.503201 1.015826 1.200739 1.524190 2.011867 2.222744 2.475835 +0.277916 0.405640 0.619792 0.770716 1.136524 1.426314 1.822220 2.135166 2.485194 2.647977 +0.231394 0.352162 0.469144 0.682116 1.481669 1.842849 2.029794 2.179907 2.469833 2.589806 +0.380604 0.561972 0.896403 1.133414 1.391582 1.626403 1.961716 2.211112 2.588392 2.787673 +0.322688 0.406580 0.586076 0.731518 0.852667 1.152831 1.995073 2.295481 2.441596 2.617794 +0.197630 0.400738 0.603098 0.838719 1.177968 1.302320 1.559507 1.871355 2.200186 2.796317 +0.159189 0.198711 0.364347 0.509370 1.127246 1.399692 1.623432 2.046094 2.279806 2.705935 +0.233578 0.298035 0.460794 1.139533 1.415576 1.616317 2.117648 2.254774 2.452874 2.595232 +0.177717 0.242239 0.394824 0.650020 0.987501 1.104089 1.611392 2.177724 2.393809 2.694514 +0.299562 0.409957 0.723642 1.062891 1.216972 1.411830 2.051394 2.240860 2.503777 2.709591 +0.201879 0.287289 0.406508 0.659566 1.400321 1.792888 1.936179 2.099785 2.279253 2.454742 +0.359188 0.531719 0.904543 1.142371 1.572219 1.782800 2.067174 2.342915 2.583586 2.731217 +0.245193 0.363406 0.508075 0.721046 0.817318 1.141324 1.787709 1.937075 2.532146 2.678676 +0.280203 0.342294 0.579285 1.021875 1.451807 1.612518 1.803002 2.013050 2.189908 2.367656 +0.124640 0.167543 0.484641 0.896195 1.324263 1.701101 1.908392 2.091365 2.427391 2.766624 +0.152261 0.248563 0.705878 1.026619 1.492524 1.688058 2.019960 2.241100 2.465374 2.733867 +0.169524 0.275607 0.440772 0.719798 1.121602 1.261028 1.809404 2.005583 2.240287 2.716912 +0.329978 0.420004 0.718053 0.936318 1.070988 1.489233 1.858025 1.988096 2.520192 2.667419 +0.229078 0.298586 0.511977 0.723831 1.144803 1.763599 2.164905 2.282990 2.512775 2.671092 +0.456055 0.680179 0.929388 1.076639 1.233955 1.484650 1.903702 2.126601 2.527098 2.727819 +0.168979 0.211126 0.352636 0.486868 0.828354 1.056116 1.439894 2.019355 2.482102 2.794744 +0.388525 0.560294 0.717429 0.985928 1.184401 1.320169 1.814889 2.045192 2.224054 2.519281 +0.207864 0.278390 0.577744 0.755061 1.180647 1.365438 1.765814 1.933058 2.355569 2.495779 +0.273703 0.316766 0.687833 1.373372 1.573215 1.679562 2.017370 2.150752 2.443206 2.666143 +0.139043 0.179618 0.315633 0.517664 0.768733 1.079636 1.390644 1.825048 2.101118 2.739679 +0.443325 0.508374 0.821570 1.141790 1.252203 1.580452 1.827461 1.983767 2.580866 2.715534 +0.272418 0.343583 0.526010 1.076654 1.474251 1.582828 1.851400 2.162984 2.327319 2.521128 +0.372015 0.542684 0.990447 1.414552 1.716538 1.844518 2.067134 2.276470 2.459989 2.623009 +0.296347 0.473546 0.629389 0.879809 1.022187 1.210411 1.881605 2.064735 2.306350 2.615239 +0.421613 0.570707 0.726241 1.011174 1.451250 1.595500 1.814127 2.086968 2.350981 2.485098 +0.138010 0.208811 0.371352 1.058801 1.360740 1.563789 1.835310 2.106508 2.488086 2.685686 +0.304388 0.366691 0.637332 1.163418 1.322554 1.489449 1.820316 1.937237 2.490676 2.695981 +0.160998 0.233003 0.393385 0.742550 1.040177 1.581795 1.846434 2.020562 2.454386 2.656034 +0.293730 0.353143 0.554522 0.676232 0.826408 1.581608 2.144029 2.268817 2.602846 2.715369 +0.174487 0.251975 0.375041 0.584283 1.427390 1.560251 1.883505 2.266902 2.453791 2.739291 +0.236065 0.282833 0.692209 1.097292 1.694874 1.966224 2.123394 2.280655 2.544753 2.658369 +0.129365 0.165960 0.285820 0.488714 0.981342 1.175696 1.724506 2.087889 2.501287 2.735548 +0.226211 0.351015 0.619709 0.857773 1.132574 1.308463 1.487032 1.965719 2.504712 2.670516 +0.203957 0.285955 0.462644 0.620843 1.230135 1.668195 1.835692 2.036399 2.639041 2.775792 +0.159885 0.225639 0.351326 0.882800 1.592195 1.709989 2.060725 2.305297 2.531165 2.753869 +0.182663 0.255048 0.437572 0.758568 0.996367 1.382381 1.651134 1.839516 2.008732 2.215961 +0.418150 0.556126 0.728385 1.007878 1.270088 1.366376 1.715316 2.066928 2.257578 2.389769 +0.207212 0.291325 0.416536 0.913294 1.492822 1.637098 1.825777 1.978284 2.214137 2.552111 +0.241341 0.427255 0.990332 1.209018 1.403013 1.731713 2.115958 2.363302 2.608966 2.742739 +0.188611 0.290583 0.686340 0.839849 1.094731 1.279717 1.560751 2.134527 2.353362 2.641874 +0.303141 0.383534 0.612718 0.971405 1.141894 1.558084 1.937162 2.069641 2.316813 2.480680 +0.179032 0.247590 0.375840 0.575450 1.367486 1.543422 2.101856 2.277817 2.513453 2.724165 +0.279200 0.350633 0.674006 1.015821 1.154154 1.656796 1.871235 2.061172 2.539189 2.655336 +0.220829 0.293262 0.666921 0.930888 1.307454 1.585242 1.798660 1.919831 2.100904 2.490486 +0.407626 0.528205 0.695580 0.942289 1.068323 1.248001 1.834686 1.955840 2.367277 2.684681 +0.187917 0.238836 0.392030 0.586354 1.220852 1.713253 2.205448 2.317138 2.607952 2.772751 +0.406035 0.678205 1.009915 1.169891 1.361883 1.567949 1.969141 2.218271 2.484866 2.653946 +0.263469 0.379446 0.574642 0.739690 0.891674 1.015764 1.634497 2.310050 2.531555 2.722555 +0.276896 0.353172 0.495976 0.992936 1.248222 1.349871 1.691833 2.151044 2.363150 2.534333 +0.165915 0.220580 0.380706 0.597420 1.137653 1.320387 1.576770 1.939725 2.122544 2.647358 +0.215129 0.283229 0.414568 1.356845 1.527108 1.679575 1.891014 2.130176 2.602350 2.741207 +0.206573 0.274549 0.539970 0.803271 1.064961 1.486193 1.704709 1.828604 1.978928 2.462439 +0.245410 0.534217 0.840240 1.054925 1.298942 1.439072 1.805223 2.039652 2.261595 2.482457 +0.236976 0.308980 0.585923 0.783026 1.498617 1.930204 2.097800 2.251258 2.476303 2.596959 +0.571463 1.021016 1.359450 1.510990 1.761279 1.913272 2.106845 2.286831 2.543023 2.660054 +0.187494 0.265400 0.418588 0.927645 1.377800 1.582098 1.740975 2.237651 2.615481 2.802350 +0.308598 0.491606 0.632564 0.923419 1.411973 1.578570 1.730433 1.976996 2.433166 2.558710 +0.147715 0.217707 0.377800 0.910933 1.185758 1.366725 1.612211 2.013767 2.403550 2.696412 +0.255983 0.321186 0.503024 1.109229 1.544228 1.645679 1.931499 2.060262 2.490962 2.677649 +0.175450 0.230655 0.407361 0.720246 1.062295 1.330697 1.797198 2.019193 2.315150 2.443569 +0.223790 0.338008 0.719854 0.950722 1.144176 1.597163 1.855352 2.263747 2.561723 2.704014 +0.192133 0.289847 0.398779 0.556338 1.501770 1.755759 1.934139 2.206912 2.388353 2.645486 +0.297639 0.450015 0.788874 1.101418 1.627516 1.880937 2.155204 2.413078 2.599468 2.743886 +0.217417 0.333895 0.462399 0.822556 1.071185 1.203256 1.990668 2.195575 2.436009 2.784665 +0.163563 0.239093 0.376533 0.839654 1.058152 1.266142 1.728781 1.907170 2.096879 2.659086 +0.137806 0.181530 0.328192 0.516935 1.031832 1.525160 1.768896 1.915914 2.359545 2.727805 +0.164104 0.236815 0.332559 0.910079 1.609754 1.696913 2.000392 2.161661 2.560691 2.703739 +0.228917 0.407594 0.638844 0.801544 1.054407 1.197528 1.396765 1.854050 2.203784 2.611161 +0.391989 0.486610 0.771960 1.116329 1.248980 1.474917 1.949979 2.088145 2.481910 2.691692 +0.279187 0.400947 0.576848 0.718895 1.254179 1.650864 1.823958 1.934813 2.498090 2.611019 +0.458469 0.714872 1.061410 1.262159 1.583256 1.935302 2.258053 2.430476 2.654284 2.756814 +0.222188 0.326247 0.447894 0.840363 1.072654 1.191396 1.417342 1.567507 2.404790 2.696868 +0.346704 0.402748 0.714703 1.139511 1.315770 1.444510 1.797498 1.920454 2.155272 2.559128 +0.155723 0.214701 0.494437 0.875267 1.172389 1.405229 1.797171 2.092950 2.373162 2.664794 +0.143642 0.390291 0.851279 1.039361 1.187534 1.415631 1.895439 2.190895 2.617165 2.792304 +0.266078 0.370570 0.662415 0.836415 0.988458 1.316618 1.567592 1.858948 2.257531 2.426635 +0.336056 0.469998 0.781562 0.918047 1.031306 1.219377 1.737468 2.050577 2.458442 2.720080 +0.165799 0.215460 0.363262 0.498067 1.217803 1.622985 1.903435 2.072821 2.251153 2.522123 +0.418176 0.619702 0.947421 1.146388 1.456489 1.664370 1.965827 2.179934 2.466824 2.629682 +0.265129 0.360058 0.519333 0.815729 0.992554 1.155878 1.718766 2.222951 2.442701 2.585525 +0.308187 0.464955 0.631733 0.775884 1.197138 1.454372 1.618186 2.005378 2.298683 2.443207 +0.178219 0.251645 0.407157 0.725307 1.323507 1.464894 1.694747 2.102622 2.283774 2.589151 +0.206659 0.311706 0.925646 1.192852 1.568069 1.802078 2.008324 2.197021 2.461939 2.657140 +0.174956 0.236808 0.392320 0.654967 0.934857 1.152108 1.595741 1.864532 2.214108 2.354775 +0.230434 0.344630 0.704520 0.910666 1.348070 1.567822 1.811907 1.939844 2.509990 2.701550 +0.180253 0.232955 0.624261 0.923991 1.421690 1.599589 1.814005 2.073839 2.413260 2.570514 +0.398056 0.571576 1.027057 1.401582 1.532635 1.743391 2.038501 2.173100 2.635865 2.756941 +0.244124 0.349847 0.599577 0.750991 0.891408 1.153522 1.605551 1.899047 2.317997 2.500479 +0.324856 0.539756 0.695489 0.870499 1.378985 1.583978 1.787428 2.079347 2.366844 2.502610 +0.250886 0.480663 0.608352 0.931539 1.092319 1.383530 1.692940 1.863607 2.650750 2.806650 +0.338327 0.396903 0.699669 1.241511 1.414878 1.559671 1.867401 2.000074 2.583166 2.742075 +0.164041 0.233302 0.383240 0.540410 0.806255 1.495618 1.938839 2.063074 2.286859 2.677635 +0.218870 0.316692 0.450414 0.721514 1.234846 1.762116 1.921161 2.415204 2.642001 2.782596 +0.163667 0.235743 0.354094 0.797110 1.437154 1.554340 2.096932 2.265233 2.481373 2.661373 +0.141630 0.198248 0.557013 1.138173 1.485146 1.786655 1.990698 2.185739 2.443261 2.719231 +0.217999 0.366741 0.519705 0.781024 0.899903 1.248543 1.852721 1.986039 2.401777 2.555847 +0.205878 0.302603 0.472303 0.693773 1.275278 1.505045 1.651223 2.075256 2.330750 2.459809 +0.205336 0.309242 0.483400 0.841555 1.362515 1.548353 1.760082 1.993603 2.496424 2.633078 +0.173174 0.251866 0.410487 1.098827 1.251313 1.651838 1.903428 2.405674 2.698209 2.817074 +0.274582 0.463838 0.620569 0.820587 0.988556 1.155062 1.637870 1.835193 2.071934 2.529835 +0.364198 0.472940 0.697706 1.016409 1.151822 1.373913 1.673193 1.811034 2.432956 2.643088 +0.210609 0.316509 0.475251 0.668420 1.418526 1.631402 1.796155 2.141848 2.319077 2.697236 +0.294479 0.519397 0.846472 1.213453 1.709661 1.916717 2.258070 2.456443 2.600351 2.786559 +0.170463 0.255944 0.401983 0.820520 1.094719 1.322743 1.646553 1.784940 2.486157 2.613248 +0.237336 0.356516 0.490576 0.924631 1.184187 1.304165 1.910651 2.102207 2.302776 2.641078 +0.237089 0.334322 0.503100 0.942044 1.087499 1.511162 1.952715 2.075663 2.564695 2.734500 +0.270484 0.426158 0.787084 1.011450 1.420404 1.627576 1.856282 2.112823 2.548329 2.769664 +0.212376 0.278943 0.617049 0.887684 1.142337 1.356367 1.727600 1.935068 2.149199 2.293257 +0.219581 0.437941 0.549582 0.824175 1.110224 1.217621 1.723719 1.891729 2.537107 2.790704 +0.180332 0.207980 0.422463 0.642179 1.028384 1.607980 2.250525 2.381973 2.608993 2.774395 +0.363639 0.523626 1.148877 1.352576 1.562465 1.724307 1.921396 2.120662 2.445004 2.610164 +0.150266 0.222691 0.365816 0.555803 0.688872 1.162897 1.782593 2.040683 2.522491 2.769536 +0.322510 0.444036 0.616943 0.895765 1.056214 1.275784 1.751504 1.895911 2.132909 2.370408 +0.228790 0.394631 0.548588 0.772733 1.227890 1.335766 1.788390 2.041514 2.278792 2.744098 +0.234366 0.288401 0.669909 1.295698 1.461082 1.731631 2.183204 2.296645 2.539291 2.656637 +0.255688 0.474634 0.639397 0.858887 1.097668 1.228104 1.592196 1.812078 2.070709 2.717623 +0.214002 0.365378 0.921340 1.120628 1.379265 1.601621 1.931336 2.141337 2.414577 2.593476 +0.220925 0.307330 0.407573 0.868421 1.663240 1.844525 1.994660 2.189618 2.371374 2.516151 +0.362773 0.569567 1.005505 1.504530 1.678917 1.910360 2.158978 2.297543 2.659978 2.788995 +0.296160 0.426108 0.649527 0.859492 1.056490 1.213501 1.697291 2.135737 2.364297 2.514164 +0.281900 0.432754 0.589102 0.914308 1.277709 1.401926 1.774347 1.972103 2.235129 2.544435 +0.277240 0.357036 0.828830 1.002473 1.178011 1.446057 1.715661 1.918548 2.237210 2.572122 +0.235923 0.330705 0.623139 1.275081 1.398365 1.615244 1.800110 2.151779 2.592066 2.735797 +0.179223 0.246208 0.400152 0.708696 1.129890 1.318110 1.696185 1.907985 2.203754 2.331059 +0.316183 0.382213 0.679593 0.814474 0.986274 1.762901 1.990617 2.149795 2.433563 2.555738 +0.218193 0.282095 0.586606 0.865818 1.378763 1.742711 1.918177 2.243443 2.595193 2.752713 +0.309792 0.481840 0.827993 1.213125 1.606995 1.730492 2.141679 2.280307 2.608238 2.849348 +0.270780 0.352881 0.501183 0.906847 1.086388 1.325169 1.838184 2.204039 2.421528 2.566162 +0.226107 0.390361 0.555807 0.749815 1.088830 1.205930 1.680764 2.021480 2.201488 2.659122 +0.123441 0.173507 0.307303 0.690407 1.173938 1.333877 1.786765 2.000793 2.425213 2.751118 +0.158591 0.214573 0.427561 0.902581 1.277688 1.674870 2.126902 2.421840 2.701440 2.836990 +0.189303 0.283266 0.464375 0.672875 1.104817 1.250272 1.526572 2.083813 2.270321 2.510880 +0.287382 0.434077 0.583769 0.905506 1.053249 1.483726 1.993792 2.165572 2.575308 2.698217 +0.263500 0.370045 0.536776 0.782922 1.324389 1.844905 2.005965 2.156203 2.458755 2.583419 +0.384009 0.584098 0.936199 1.287834 1.635325 1.761083 2.169160 2.324023 2.535401 2.749390 +0.146402 0.213762 0.398489 0.690149 0.996244 1.435892 1.670170 1.813953 2.445981 2.787485 +0.301226 0.367882 0.654854 1.094027 1.229960 1.592088 1.885201 2.005608 2.274408 2.444608 +0.149947 0.216185 0.391920 0.830502 1.253633 1.431601 1.785490 2.103484 2.525214 2.755484 +0.097894 0.173875 0.729312 1.016482 1.304096 1.606405 1.935582 2.257805 2.640341 2.840475 +0.169855 0.242145 0.571777 0.803659 1.022243 1.354604 1.782360 1.980234 2.368909 2.535598 +0.254591 0.378801 0.672668 0.807056 1.056720 1.493018 1.655380 1.979812 2.449241 2.599697 +0.193304 0.260487 0.459964 0.670291 1.308012 1.768287 1.946244 2.212251 2.405579 2.728625 +0.366883 0.536817 0.908218 1.110776 1.354740 1.500190 1.704032 1.943640 2.329476 2.560555 +0.211004 0.305715 0.399667 0.516282 0.691520 0.849824 1.396564 2.291427 2.546197 2.699794 +0.235007 0.315896 0.593374 0.857317 1.094567 1.500585 1.840100 1.974535 2.128181 2.274238 +0.183909 0.226449 0.400954 0.544120 1.348797 1.515812 1.765685 1.973782 2.256647 2.370030 +0.237680 0.317979 0.661098 1.253198 1.394092 1.734084 1.949126 2.131970 2.641034 2.757610 +0.166212 0.241240 0.371751 0.557281 0.767198 1.134161 1.620608 1.834400 2.454323 2.635245 +0.330393 0.391091 0.780047 1.022404 1.134626 1.502694 1.702935 1.890801 2.580707 2.691910 +0.408812 0.495670 0.687407 1.108832 1.546181 1.696379 1.885325 2.139028 2.368060 2.517184 +0.376422 0.555069 1.161646 1.386418 1.622733 1.845580 2.017094 2.201137 2.552466 2.708053 +0.274146 0.380469 0.549878 0.799730 0.939402 1.117940 1.645452 2.052539 2.350689 2.490049 +0.329001 0.575380 0.735296 0.911471 1.268064 1.391747 1.781411 2.007253 2.202059 2.466893 +0.212169 0.311180 0.439692 1.078259 1.267527 1.468391 1.726469 1.906190 2.628147 2.786434 +0.297463 0.361038 0.824509 1.239302 1.339377 1.569785 1.940696 2.077375 2.519418 2.696863 +0.207701 0.292358 0.552629 0.711964 1.172305 1.651429 1.844960 2.071458 2.419231 2.553707 +0.209832 0.301136 0.449094 0.647610 0.777779 1.480469 1.932068 2.131542 2.710060 2.812704 +0.172423 0.255437 0.369220 0.543108 1.401559 1.717608 1.933428 2.154827 2.367862 2.787661 +0.255748 0.347504 0.796616 1.027751 1.504250 1.760784 1.937354 2.112544 2.469490 2.637341 +0.169424 0.278442 0.444446 0.687556 0.797962 1.369199 1.630793 2.131758 2.696521 2.814286 +0.263582 0.429254 0.626198 0.790299 0.996064 1.131137 1.510958 2.083907 2.354499 2.747674 +0.160669 0.249969 0.366613 0.619384 1.335750 1.509419 1.938079 2.107770 2.598329 2.796645 +0.244289 0.315310 0.439736 0.746805 1.478790 1.975786 2.164362 2.279744 2.549736 2.677409 +0.158860 0.216940 0.349617 0.495945 1.053452 1.187951 1.643661 1.872490 2.121853 2.234733 +0.364934 0.547895 0.703548 1.046696 1.327165 1.444813 1.638612 1.994689 2.369195 2.515047 +0.199825 0.282570 0.423937 1.052805 1.331805 1.455952 1.892213 2.048648 2.272970 2.743986 +0.205916 0.528758 1.069123 1.303179 1.547206 1.887462 2.261478 2.525666 2.727548 2.836565 +0.211344 0.325615 0.470129 0.876822 1.036692 1.388499 2.004071 2.168361 2.641575 2.788384 +0.165214 0.237113 0.652635 0.853498 1.274603 1.418260 1.750475 2.188010 2.392225 2.656697 +0.171345 0.265931 0.404296 0.777656 1.251339 1.381106 1.876187 2.028307 2.321131 2.646341 +0.243930 0.315918 0.797490 1.189416 1.348551 1.850071 2.061191 2.229853 2.567528 2.706220 +0.194777 0.274153 0.522750 0.716292 0.872211 1.616112 1.890034 2.023297 2.194462 2.435800 +0.244945 0.443755 0.592420 0.889336 1.105448 1.259185 1.758350 1.914694 2.352504 2.581197 +0.179880 0.257145 0.369148 0.581368 1.406373 1.820128 2.061537 2.213705 2.526442 2.674115 +0.545317 0.839577 1.093857 1.262533 1.530824 1.739612 2.017505 2.229486 2.511345 2.662061 +0.188061 0.301651 0.405278 0.612153 0.779478 1.037845 2.004224 2.211267 2.475847 2.697676 +0.314335 0.465910 0.634660 0.880106 1.266325 1.367294 1.763992 2.104409 2.276097 2.443435 +0.141443 0.203354 0.372102 0.773557 1.052380 1.521452 1.774251 1.900827 2.384498 2.726988 +0.183016 0.267487 0.382582 1.062637 1.528110 1.626188 1.861114 2.019971 2.608976 2.763674 +0.143357 0.192604 0.323821 0.497856 0.905440 1.343367 1.820946 2.001139 2.153210 2.609622 +0.354165 0.489743 0.667126 1.118630 1.392866 1.492788 1.780757 2.073223 2.328160 2.560997 +0.282856 0.383914 0.485830 0.850543 1.506444 1.797613 1.937969 2.146059 2.427443 2.548079 +0.487767 0.866830 1.364561 1.521265 1.733207 1.945262 2.238743 2.399018 2.632115 2.744288 +0.280530 0.416807 0.597088 0.899084 1.119331 1.255621 1.616253 2.134732 2.562029 2.692235 +0.284821 0.494631 0.684501 0.838586 1.258096 1.395495 1.638054 2.162929 2.354037 2.540591 +0.205140 0.295529 0.494620 0.956357 1.129557 1.430489 1.736194 1.883778 2.442628 2.597296 +0.304833 0.379519 0.691807 1.147815 1.310207 1.513791 2.008217 2.142574 2.387944 2.637546 +0.181676 0.219451 0.383940 0.516016 1.044498 1.517177 1.777135 1.964014 2.218885 2.363256 +0.294578 0.352761 0.665993 0.810615 0.975505 1.763777 1.954836 2.159643 2.626241 2.718025 +0.172769 0.247043 0.367453 0.702216 1.520013 1.752683 1.974569 2.256458 2.462168 2.651882 +0.133992 0.301438 0.794542 1.081390 1.502045 1.696404 2.061943 2.278505 2.623520 2.822598 +0.250639 0.391712 0.550858 0.794112 0.913038 1.085745 2.034282 2.313366 2.505665 2.787062 +0.323242 0.434081 0.555684 0.961893 1.357180 1.456826 1.643504 1.784048 2.015616 2.515904 +0.143041 0.186235 0.352826 0.680065 1.264865 1.599306 1.944390 2.254806 2.597410 2.807813 +0.203141 0.289063 0.395881 0.800946 1.463891 1.689942 1.835029 2.061175 2.225528 2.642274 +0.222797 0.394599 0.573255 0.715466 1.025538 1.188023 1.564145 2.025279 2.191600 2.532423 +0.405610 0.492208 0.769597 0.896548 1.095745 1.667540 1.851755 2.090613 2.499090 2.611378 +0.238982 0.324219 0.447220 0.884037 1.482394 1.649975 1.799871 2.147158 2.341317 2.496853 +0.453661 0.658367 0.977870 1.248116 1.512727 1.831479 2.096748 2.293691 2.622778 2.735454 +0.171442 0.338885 0.499399 0.793308 1.060572 1.203862 1.664796 1.804188 2.519133 2.756339 +0.278022 0.338379 0.636156 1.044803 1.186358 1.516967 1.701121 1.872073 2.394724 2.502070 +0.121438 0.167486 0.411911 0.917381 1.165927 1.533981 1.818319 2.060997 2.450329 2.746320 +0.162532 0.224824 0.658346 0.916673 1.391225 1.595859 1.857208 2.217273 2.498430 2.753849 +0.275986 0.349156 0.568548 0.683453 1.016150 1.598731 1.764733 1.935888 2.342502 2.451659 +0.253773 0.480249 0.604419 0.965946 1.273556 1.519695 1.780207 2.006359 2.680279 2.811275 +0.187376 0.271558 0.385829 0.556450 1.380619 1.664090 1.814039 2.064114 2.245361 2.453707 +0.294725 0.466563 0.736292 1.055050 1.550984 1.693651 1.897743 2.212842 2.491391 2.698543 +0.239923 0.334060 0.461488 0.662636 0.791453 1.005699 1.600227 2.170741 2.458382 2.619019 +0.327525 0.492740 0.643437 0.903326 1.245421 1.348861 1.592207 1.937940 2.512050 2.644548 +0.221363 0.338816 0.483946 0.687648 1.284665 1.551620 1.720135 2.073904 2.254226 2.544134 +0.258618 0.300723 0.704898 1.390679 1.579033 1.718703 1.937423 2.081021 2.591851 2.718075 +0.204543 0.311448 0.448600 0.699217 1.072306 1.225857 1.749871 2.025585 2.206864 2.441320 +0.407224 0.493488 0.735697 1.167395 1.335468 1.468164 1.704353 1.844157 2.418454 2.658505 +0.177985 0.233336 0.506489 0.863799 1.426574 1.604693 1.864455 2.179274 2.402289 2.599311 +0.201307 0.580059 1.233073 1.407900 1.670628 1.818287 2.017446 2.256081 2.551962 2.742129 +0.322757 0.406373 0.612482 0.787838 0.909320 1.345224 1.671798 1.785817 2.404421 2.543501 +0.331870 0.431884 0.597156 0.927729 1.457447 1.672300 1.841455 2.039567 2.250965 2.417211 +0.202946 0.328964 0.442956 0.945971 1.181249 1.322011 1.766214 1.899811 2.569787 2.777471 +0.274929 0.335270 0.613025 1.214599 1.385772 1.557449 1.956849 2.066650 2.288912 2.459016 +0.146768 0.210059 0.360823 0.630784 1.072395 1.512445 1.766060 1.876355 2.226609 2.774121 +0.278686 0.371483 0.567509 0.728655 0.855673 1.555589 1.958603 2.076551 2.544275 2.713690 +0.143219 0.224816 0.347059 0.649970 1.564613 1.685486 1.917021 2.072654 2.453763 2.655050 +0.294541 0.443278 0.726594 0.985933 1.415734 1.765955 2.073442 2.328283 2.592514 2.745548 +0.243739 0.365134 0.572466 0.827675 0.939711 1.401796 1.826498 1.947840 2.429538 2.736311 +0.213082 0.349340 0.619784 0.765201 1.188628 1.358763 1.534192 2.128318 2.415976 2.591807 +0.161799 0.248667 0.354739 0.716246 1.327356 1.505974 1.706364 1.848519 2.455553 2.645897 +0.228516 0.375004 0.745896 1.050532 1.367740 1.799352 2.151717 2.418669 2.673185 2.797596 +0.234744 0.320318 0.466401 1.013481 1.184613 1.343346 1.535391 1.904405 2.318092 2.457794 +0.296936 0.385747 0.828858 1.091916 1.213084 1.370156 1.504418 2.008638 2.299958 2.422080 +0.189955 0.288894 0.417900 0.584179 1.286507 1.481483 1.710061 2.088780 2.259900 2.658597 +0.170659 0.301463 1.070828 1.400247 1.605036 1.820055 2.012834 2.274844 2.579681 2.738437 +0.194796 0.277316 0.434438 0.646763 0.772268 1.506173 1.740645 1.962370 2.464322 2.657388 +0.222257 0.294563 0.463770 1.144565 1.329294 1.506915 1.848439 2.035803 2.320447 2.526842 +0.188443 0.314239 0.448752 0.852815 1.354102 1.446757 1.902520 2.034088 2.526616 2.815041 +0.226181 0.693860 0.965201 1.130620 1.285879 1.475154 1.863626 2.238763 2.603071 2.788862 +0.105661 0.160079 0.370939 0.956425 1.151620 1.531460 1.723426 1.913560 2.122164 2.492465 +0.298984 0.431063 0.586646 0.778394 0.883075 1.252332 1.854971 2.007147 2.580641 2.710519 +0.197240 0.272225 0.520497 0.915877 1.306265 1.547858 2.092985 2.299254 2.524173 2.690593 +0.413504 0.577521 0.882547 1.151243 1.588968 1.757858 1.954145 2.157780 2.423490 2.567497 +0.182013 0.280163 0.398250 0.608531 0.819691 0.969023 1.853980 2.067111 2.358004 2.831492 +0.376103 0.585036 0.744512 0.923312 1.183525 1.290764 1.692231 2.073489 2.270157 2.435995 +0.206648 0.328267 0.465432 0.752470 1.311956 1.450538 1.719681 2.019809 2.237402 2.712715 +0.146386 0.213798 0.495001 1.215327 1.552462 1.867870 2.131376 2.312738 2.674961 2.807719 +0.204301 0.298214 0.439837 0.759917 0.957505 1.118467 1.710802 2.037862 2.222732 2.676717 +0.208889 0.314961 0.807094 0.979256 1.326634 1.615428 1.855738 2.074151 2.481053 2.662164 +0.252094 0.321219 0.425486 1.124218 1.685315 1.954485 2.094831 2.253423 2.478229 2.605367 +0.454303 0.738006 1.152178 1.340103 1.644779 1.957406 2.329060 2.526950 2.700749 2.789332 +0.260026 0.460186 0.631124 0.860895 1.160270 1.274078 1.873660 2.167213 2.365849 2.770340 +0.188841 0.259372 0.483027 0.884169 1.354974 1.505271 1.787912 1.916914 2.217944 2.371433 +0.171267 0.239784 0.594776 0.748624 1.254712 1.402634 1.627575 2.102077 2.361702 2.545685 +0.261290 0.332761 0.480740 1.272870 1.411888 1.585755 1.891613 2.059093 2.603683 2.753852 +0.174471 0.227361 0.395376 0.589674 1.098988 1.351413 1.527512 1.875704 2.288035 2.491253 +0.392523 0.493384 0.723718 0.863221 0.994939 1.404446 1.868453 2.008324 2.440145 2.622287 +0.229001 0.293967 0.482060 0.752040 1.321587 1.964756 2.143632 2.272231 2.511299 2.652857 +0.129576 0.441380 0.809457 1.253754 1.449504 1.695975 2.014264 2.282645 2.615841 2.803547 +0.291794 0.444574 0.567987 0.774856 0.900327 1.365457 2.004858 2.128537 2.620438 2.820651 +0.262097 0.516409 0.687606 0.926622 1.163526 1.292705 1.715555 1.937306 2.227923 2.777260 +0.148606 0.204513 0.361193 0.693710 1.055532 1.278718 1.693525 1.980097 2.352859 2.672283 +0.253802 0.336651 0.526195 0.891801 1.442978 1.584849 1.979819 2.247623 2.476136 2.660081 +0.228789 0.338363 0.500714 0.793809 1.196272 1.305413 1.731081 2.259108 2.442615 2.652754 +0.378062 0.473823 0.693080 1.009192 1.183244 1.328164 1.919726 2.260450 2.429886 2.572302 +0.247090 0.357491 0.583930 0.824533 1.624951 1.779841 1.978982 2.185311 2.378227 2.583823 +0.349863 0.525291 0.898639 1.154449 1.653664 1.882655 2.181526 2.353823 2.532309 2.660763 +0.190910 0.256714 0.576278 0.756016 0.919967 1.182918 1.663565 2.144466 2.501734 2.728244 +0.298865 0.359843 0.568492 1.131552 1.379757 1.490406 1.824274 1.945718 2.238708 2.644005 +0.075640 0.092838 0.245669 0.863294 1.223916 1.524202 1.857987 2.167767 2.516095 2.793204 +0.232965 0.332699 0.723652 1.036910 1.459468 1.595582 1.952510 2.172737 2.392688 2.562895 +0.247766 0.389477 0.616596 0.808130 0.997595 1.253872 1.724465 1.938385 2.286441 2.479069 +0.316879 0.442442 0.602552 0.812843 0.919668 1.524096 1.727104 1.959085 2.648008 2.744204 +0.180121 0.250848 0.377588 0.514084 1.112861 1.845482 2.013326 2.213933 2.474673 2.663237 +0.510891 0.729294 0.918315 1.009382 1.258580 1.685479 2.036454 2.223282 2.546829 2.685952 +0.204819 0.306851 0.495622 0.688481 0.939049 1.054525 1.550902 2.063497 2.267332 2.744891 +0.327442 0.389656 0.773076 1.023761 1.144959 1.391107 1.629777 1.826936 2.044965 2.488423 +0.163318 0.224949 0.377732 0.697324 1.243068 1.379089 1.633682 1.887173 2.332645 2.483657 +0.240171 0.293151 0.543472 1.269350 1.631535 1.739995 1.933642 2.084522 2.414170 2.650266 +0.179979 0.246939 0.396342 0.589909 0.919210 1.070722 1.642599 2.043006 2.217357 2.503273 +0.302811 0.355529 0.811588 1.166553 1.271468 1.626247 1.848829 1.997826 2.540939 2.669384 +0.283439 0.349236 0.510446 0.919208 1.451466 1.719296 1.870795 2.075959 2.292387 2.415026 +0.351847 0.508411 1.045930 1.254317 1.551190 1.805638 2.048595 2.229665 2.467316 2.616962 +0.266736 0.408066 0.559013 0.768550 0.973174 1.096776 1.669225 2.079118 2.239808 2.647906 +0.299839 0.538608 0.750887 0.937387 1.361442 1.507727 1.723958 2.019542 2.288365 2.433554 +0.184692 0.270218 0.419274 1.047374 1.395536 1.529142 1.783612 1.919322 2.399668 2.739026 +0.282417 0.355135 0.625619 1.193013 1.365194 1.548352 1.961542 2.076835 2.555666 2.736510 +0.148276 0.201484 0.357526 0.691839 1.109393 1.590808 1.929494 2.052123 2.288831 2.674265 +0.239872 0.340799 0.510028 0.754201 1.021805 1.444270 2.086249 2.268881 2.498859 2.644372 +0.229200 0.356617 0.469799 0.697079 1.459153 1.736841 1.888964 2.204606 2.435847 2.594633 +0.235297 0.299631 0.756788 1.069754 1.591291 1.782731 1.990029 2.186477 2.404269 2.551371 +0.153218 0.216649 0.366074 0.591966 0.786672 1.337023 1.751677 1.932515 2.401392 2.607477 +0.264340 0.436803 0.595010 0.767010 1.179494 1.352438 1.528478 1.996792 2.441404 2.572631 +0.204113 0.325813 0.640860 0.803282 1.276398 1.511437 1.769275 2.073412 2.562526 2.723891 +0.183616 0.242809 0.370321 0.932837 1.683840 1.816525 2.211177 2.406486 2.636015 2.765906 +0.196637 0.265829 0.439050 0.770452 1.054669 1.487115 1.916956 2.043030 2.176612 2.349845 +0.540575 0.704261 0.884898 1.106375 1.273439 1.431611 1.908872 2.163885 2.347449 2.530928 +0.258740 0.346556 0.466932 0.905095 1.485463 1.645285 1.873902 2.133924 2.308179 2.675230 +0.347296 0.582875 0.945844 1.279162 1.499633 1.852636 2.184304 2.463318 2.760760 2.870853 +0.150936 0.266396 0.672274 0.842540 1.058933 1.395955 1.763874 2.053646 2.603603 2.795989 +0.248334 0.323639 0.796411 0.974630 1.217472 1.616989 1.786496 1.995745 2.426072 2.572132 +0.171528 0.226268 0.387197 0.596052 1.219235 1.373257 1.802693 2.162095 2.401149 2.694122 +0.309880 0.375034 0.782497 0.936541 1.130945 1.571152 1.743522 2.158706 2.484175 2.596635 +0.211833 0.283751 0.471901 0.833897 1.238193 1.611788 1.813797 2.021568 2.299015 2.453586 +0.325164 0.495780 0.668458 0.977772 1.204875 1.377736 1.792224 1.981132 2.470212 2.687064 +0.181910 0.238625 0.380080 0.551818 1.284137 1.815502 2.100874 2.224073 2.678894 2.832381 +0.432484 0.602036 0.967559 1.355422 1.539906 1.638130 2.062617 2.274317 2.408629 2.586735 +0.223933 0.320440 0.455471 0.635789 0.775870 0.919569 1.655549 2.258604 2.454533 2.743063 +0.366581 0.460393 0.676450 1.035749 1.222446 1.344767 1.892128 2.136552 2.294736 2.535285 +0.163193 0.228589 0.372272 0.655743 1.215923 1.357562 1.812178 2.049878 2.219187 2.622506 +0.199107 0.255898 0.383597 1.460200 1.573471 1.769089 1.990458 2.299624 2.582669 2.742646 +0.171634 0.266479 0.432062 0.687765 0.835208 1.354791 1.779760 1.939277 2.152823 2.654474 +0.322744 0.454468 0.896616 1.075278 1.276965 1.525868 1.809606 2.045119 2.396969 2.600609 +0.185456 0.225713 0.593805 0.777028 1.383381 1.756301 1.909552 2.182404 2.428047 2.628560 +0.523864 0.996370 1.345344 1.500637 1.856758 1.976312 2.235904 2.414483 2.560231 2.666268 +0.224472 0.316210 0.461082 1.069924 1.226634 1.409037 1.539144 2.110751 2.541082 2.731841 +0.282572 0.449304 0.655998 0.827960 1.292714 1.495327 1.771585 2.007810 2.430764 2.621645 +0.129294 0.178584 0.451465 1.015109 1.245704 1.462743 1.785107 2.042319 2.339740 2.626045 +0.266450 0.311925 0.672071 1.272373 1.586471 1.680518 1.967287 2.126302 2.331703 2.606765 +0.155912 0.210793 0.359734 0.582139 0.993095 1.506017 1.938903 2.072031 2.211582 2.514161 +0.366487 0.454941 0.765153 0.933105 1.077517 1.457225 1.642714 2.050965 2.548495 2.660408 +0.183421 0.269815 0.375652 0.582732 1.364229 1.857303 2.030324 2.188264 2.389621 2.554337 +0.157986 0.433220 0.872229 1.187796 1.412974 1.724479 2.144349 2.464695 2.761508 2.877055 +0.198383 0.350654 0.577264 0.787611 0.933392 1.119024 1.806604 2.076373 2.430526 2.603043 +0.184568 0.290732 0.456474 0.730730 1.167452 1.298890 1.669065 1.850198 2.187295 2.556672 +0.119787 0.157206 0.296086 0.580699 1.039340 1.448681 1.791765 2.115501 2.493729 2.765061 +0.197875 0.296866 0.460866 0.906361 1.504895 1.622424 1.923913 2.064370 2.528505 2.799113 +0.215006 0.360632 0.624855 0.788786 1.122529 1.271335 1.469548 2.029397 2.292842 2.469529 +0.312967 0.420596 0.594715 1.013895 1.177345 1.350956 1.928177 2.047807 2.512550 2.690404 +0.306441 0.447709 0.635622 0.837489 1.339889 1.684905 1.878731 2.050783 2.442345 2.559302 +0.512714 0.732554 1.090397 1.458930 1.653272 1.872563 2.243616 2.386971 2.644360 2.753299 +0.338380 0.388353 0.687865 0.937576 1.022955 1.198008 1.345071 1.507334 2.539150 2.676481 +0.404547 0.489770 0.787746 1.025925 1.160826 1.496135 1.873747 1.995764 2.348409 2.558815 +0.185178 0.273616 0.662107 0.944310 1.146715 1.437855 1.860110 2.088161 2.488532 2.701156 +0.297691 0.433807 0.689073 0.914516 1.224645 1.524468 1.882477 2.108378 2.460989 2.729694 +0.246421 0.329313 0.740815 0.903181 1.072400 1.285931 1.740684 2.032245 2.270116 2.425587 +0.349571 0.509003 0.727457 0.878169 1.005363 1.205249 1.651188 1.987842 2.609611 2.723475 +0.174962 0.249723 0.401862 0.559808 1.151652 1.704681 1.872495 2.239764 2.430897 2.686106 +0.360336 0.530604 0.935905 1.180560 1.399529 1.740890 1.999598 2.182066 2.486093 2.641677 +0.220231 0.312545 0.449608 0.705056 1.007679 1.135090 1.633644 2.306528 2.622813 2.773890 +0.343635 0.564980 0.719160 0.856829 1.120400 1.237963 1.472239 1.924690 2.221264 2.357713 +0.181932 0.261428 0.385382 0.529871 1.326078 1.525795 1.689465 2.161317 2.354960 2.559655 +0.190215 0.341309 1.145487 1.357611 1.520525 1.690701 1.910605 2.192963 2.496750 2.684620 +0.231256 0.323986 0.509297 0.695026 0.811246 1.205058 1.698676 1.952659 2.225356 2.436417 +0.232855 0.310052 0.551612 0.995822 1.160276 1.555029 1.794030 1.930657 2.512921 2.691535 +0.224518 0.299721 0.651543 0.885427 1.520642 1.679516 1.886989 2.041276 2.532253 2.699897 +0.204419 0.557694 1.100186 1.347777 1.507922 1.794663 2.079200 2.312468 2.590685 2.744668 +0.206125 0.397544 0.556512 0.740671 0.860709 1.076989 1.713565 1.825995 2.561599 2.767561 +0.271126 0.422296 0.596820 0.801216 1.362100 1.508235 1.854835 2.090662 2.270770 2.457032 +0.217883 0.344596 0.493190 0.984719 1.284852 1.446608 1.855635 2.014247 2.506491 2.663445 +0.286136 0.348718 0.879652 1.116298 1.280497 1.611569 1.788213 2.223036 2.485667 2.605528 +0.206618 0.325875 0.503268 0.690657 0.816866 1.603798 1.931282 2.048093 2.300900 2.746683 +0.239837 0.367432 0.586673 0.749249 1.029445 1.541977 1.837717 2.152675 2.628130 2.775655 +0.154164 0.222772 0.333818 0.562653 1.465627 1.728492 1.959659 2.326185 2.619462 2.821726 +0.231365 0.366985 0.807033 1.157258 1.520494 1.640269 2.028108 2.269663 2.456856 2.630277 +0.242567 0.331771 0.487513 0.644276 0.800853 1.242217 1.739018 2.099717 2.426228 2.596782 +0.221262 0.374389 0.569573 0.704902 1.187721 1.414042 1.633903 2.049607 2.225608 2.522881 +0.182959 0.295198 0.401501 0.779683 1.428548 1.551019 1.766917 1.908320 2.610886 2.770247 +0.139632 0.228108 0.540279 0.898292 1.161261 1.527413 1.913196 2.221342 2.669902 2.842594 +0.199568 0.297036 0.423971 0.782421 1.094574 1.237964 1.458722 1.683022 2.217064 2.401823 +0.345577 0.539506 0.728116 0.928242 1.109271 1.252921 1.616753 1.872570 2.294941 2.593196 +0.232502 0.366195 0.532625 0.762469 1.377487 1.543949 1.839468 2.094305 2.306962 2.746485 +0.140704 0.240287 0.914003 1.159689 1.490769 1.781986 2.113189 2.322630 2.553898 2.735752 +0.182050 0.274243 0.384886 0.753150 1.226502 1.367895 1.578386 1.756614 2.368689 2.613973 +0.296233 0.395081 0.622990 1.050299 1.209800 1.377648 1.850837 1.965328 2.357424 2.667891 +0.210632 0.289301 0.558974 0.972835 1.230379 1.669485 1.879551 2.047374 2.584468 2.764860 +0.238075 0.443727 0.795624 1.008735 1.264607 1.681476 1.949029 2.204123 2.681059 2.831198 +0.209107 0.318887 0.502202 0.936331 1.215090 1.364179 1.664829 1.835085 2.029832 2.237236 +0.210399 0.360507 0.466140 0.793696 1.167290 1.269402 1.717457 1.883978 2.332357 2.642576 +0.182774 0.238064 0.406254 0.553908 1.089357 1.921943 2.114739 2.269998 2.553977 2.719355 +0.328207 0.496148 0.997544 1.217533 1.381558 1.589977 1.895773 2.171180 2.563942 2.756785 +0.146726 0.209578 0.327902 0.527454 0.750165 0.964221 1.730110 1.909856 2.277000 2.794161 +0.355489 0.509819 0.674351 0.852118 1.030963 1.155918 1.581384 2.041691 2.263390 2.416994 +0.220775 0.394332 0.538938 0.857502 1.090722 1.239600 1.901251 2.063868 2.417954 2.814398 +0.227931 0.269928 0.659119 1.441707 1.726640 1.837599 2.172077 2.323353 2.607646 2.741321 +0.204294 0.338820 0.480507 0.748377 0.971841 1.112524 1.682403 1.842741 2.204016 2.598799 +0.134004 0.253595 0.893064 1.145993 1.324870 1.551540 1.870979 2.144984 2.515124 2.768074 +0.257317 0.324072 0.436271 0.992642 1.573175 1.838976 1.971813 2.132071 2.317177 2.463177 +0.440270 0.694478 1.072028 1.389390 1.760193 1.976248 2.246033 2.390948 2.572760 2.701541 +0.271868 0.367973 0.618954 0.990978 1.193710 1.400934 1.753507 2.089331 2.441172 2.596397 +0.327621 0.496909 0.684291 0.830070 1.230609 1.553632 1.769123 2.021449 2.321602 2.475665 +0.150834 0.225465 0.584436 0.830787 1.228446 1.381420 1.677267 1.961417 2.348329 2.682122 +0.210368 0.286671 0.430934 1.168493 1.348054 1.560861 1.788186 2.334928 2.567985 2.774704 +0.192791 0.272915 0.432199 0.684073 1.250160 1.396822 1.637113 1.872041 2.138995 2.291744 +0.317041 0.383173 0.714443 0.880122 1.046184 1.601600 1.793056 1.983005 2.334210 2.481632 +0.262491 0.384516 0.723463 0.898594 1.235333 1.679346 2.063633 2.230677 2.438434 2.609821 +0.329714 0.503133 0.986474 1.242112 1.421780 1.772248 2.016548 2.418708 2.735517 2.841414 +0.234483 0.366854 0.685189 0.837277 1.107168 1.323527 1.924146 2.188176 2.392339 2.576791 +0.367554 0.480477 0.685257 0.863574 0.967484 1.324325 1.780913 1.895223 2.217908 2.565386 +0.170831 0.247070 0.413674 0.735129 1.097256 1.244501 1.863046 2.116005 2.354145 2.593904 +0.191987 0.265143 0.522063 1.001132 1.477027 1.634641 2.128571 2.320908 2.626696 2.814549 +0.173820 0.236201 0.389631 0.565594 1.191995 1.339140 1.563074 2.078967 2.273323 2.569148 +0.376887 0.472762 0.685713 0.842626 0.950694 1.348880 2.073181 2.248666 2.464908 2.680293 +0.200511 0.267485 0.473655 0.709045 1.237600 1.615428 2.015635 2.177003 2.363079 2.525359 +0.179632 0.571501 0.993053 1.356696 1.697465 1.978072 2.161225 2.343876 2.605905 2.752543 +0.171679 0.323767 0.479066 0.737860 0.967236 1.119767 1.534022 1.686592 2.597041 2.826056 +0.230844 0.314638 0.827482 1.044417 1.246762 1.604017 1.888847 2.034619 2.240069 2.646086 +0.137641 0.194410 0.446076 0.749008 1.056291 1.455419 1.852539 2.123128 2.508952 2.766009 +0.096036 0.420947 0.665747 1.146516 1.463996 1.612743 1.861963 2.227963 2.503650 2.739358 +0.245487 0.384590 0.558312 0.811909 1.198414 1.349136 1.841320 2.025572 2.208162 2.405870 +0.208252 0.316837 0.487011 0.938933 1.139581 1.396565 1.746724 2.105258 2.522568 2.681942 +0.283283 0.395565 0.569206 0.705427 1.140133 1.660691 1.900167 2.146532 2.523653 2.667587 +0.399059 0.602519 0.918365 1.124094 1.352400 1.574194 1.915640 2.120676 2.392517 2.583609 +0.212592 0.313545 0.489908 0.651935 0.827527 1.014819 1.629779 2.107560 2.651570 2.794154 +0.334733 0.413938 0.656403 1.035599 1.230100 1.372371 1.752515 1.932544 2.116066 2.340962 +0.195470 0.268391 0.431096 0.744590 1.272458 1.434994 1.887256 2.055124 2.216059 2.355652 +0.233843 0.277098 0.577590 1.353544 1.573248 1.679793 1.831093 1.982748 2.575813 2.732432 +0.140410 0.214833 0.361115 0.707069 1.082237 1.227591 1.633210 1.818367 2.466253 2.766104 +0.433646 0.517163 0.808168 1.061617 1.182393 1.497547 1.723696 1.907866 2.509297 2.679398 +0.251461 0.331356 0.713430 0.993326 1.485426 1.665910 1.856843 2.073870 2.333905 2.470116 +0.362946 0.782976 1.168741 1.324526 1.627412 1.779530 1.994819 2.203297 2.514465 2.683132 +0.283937 0.367927 0.590168 0.763650 0.889158 1.242000 1.768049 2.150831 2.361695 2.526931 +0.401929 0.576820 0.737804 0.921682 1.116842 1.229133 1.694656 2.010744 2.155271 2.356219 +0.212653 0.310679 0.420635 1.110694 1.371611 1.510937 1.878595 2.017471 2.541126 2.696793 +0.319899 0.406846 0.688156 1.227145 1.532072 1.647604 1.959419 2.112752 2.468573 2.688910 +0.213311 0.302778 0.513141 0.665182 1.070601 1.519880 1.688862 2.155925 2.405361 2.641935 +0.203445 0.273890 0.446788 0.621718 0.821718 1.552774 1.970174 2.157338 2.529885 2.666726 +0.179248 0.265048 0.386747 0.570219 1.370731 1.523935 1.867101 2.136819 2.309819 2.738000 +0.192568 0.286600 0.737250 1.129156 1.630027 1.793060 2.137459 2.357517 2.543832 2.752975 +0.159062 0.222492 0.441749 0.706956 0.873673 1.273730 1.807800 2.085052 2.433983 2.738811 +0.267122 0.464503 0.667094 0.815715 1.028866 1.162422 1.617585 2.164095 2.329764 2.612700 +0.144708 0.223957 0.317997 0.564825 1.508828 1.655161 1.857741 2.024989 2.639153 2.820953 +0.194645 0.249640 0.406742 0.707511 1.660221 1.859905 2.085456 2.405218 2.607363 2.746061 +0.429960 0.592124 0.787877 0.890595 1.103239 1.404765 1.789301 2.072362 2.432455 2.617254 +0.184536 0.285665 0.429789 0.950068 1.412318 1.523812 1.954708 2.141451 2.414013 2.765321 +0.369916 0.560855 0.927769 1.354226 1.560397 1.733808 2.189951 2.345823 2.725694 2.866959 +0.142852 0.219159 0.368392 0.659778 0.999846 1.194353 1.856812 2.065831 2.665677 2.850916 +0.209110 0.305167 0.683734 0.914276 1.379246 1.526394 1.790110 2.064232 2.299981 2.459264 +0.184899 0.316366 0.506466 0.728745 1.218050 1.378981 1.814293 1.999655 2.544039 2.730706 +0.286474 0.355126 0.718899 1.089400 1.225976 1.695737 1.936410 2.121418 2.444195 2.568086 +0.260728 0.353369 0.604610 0.768238 1.072125 1.608746 1.805375 1.949798 2.105786 2.406476 +0.330885 0.561445 0.724292 0.940383 1.093573 1.263066 1.930153 2.163533 2.408371 2.762449 +0.190585 0.245026 0.388935 0.531269 1.613901 1.940446 2.068138 2.295339 2.525519 2.695115 +0.659517 0.793695 0.983316 1.214573 1.426393 1.621779 1.948650 2.120559 2.402013 2.570449 +0.220748 0.332069 0.424610 0.602935 0.734265 0.935558 2.055617 2.265657 2.530681 2.854902 +0.290477 0.440845 0.612873 0.839848 1.327423 1.456572 1.939179 2.167778 2.371320 2.570765 +0.179431 0.280105 0.432734 0.918191 1.192829 1.320190 1.811052 1.955192 2.340353 2.782529 +0.202912 0.265690 0.431272 1.238667 1.481469 1.610194 1.975157 2.101548 2.630962 2.798935 +0.162106 0.210383 0.366556 0.543819 1.054714 1.205759 1.641024 2.015868 2.178793 2.627151 +0.317316 0.385969 0.673513 1.190904 1.357921 1.500892 1.894288 2.020919 2.379283 2.662802 +0.327266 0.429724 0.606313 0.900788 1.464235 1.816681 2.002694 2.138059 2.452853 2.554712 +0.416374 0.642735 1.300859 1.518625 1.707945 1.956089 2.222013 2.390921 2.684341 2.784854 +0.186066 0.250175 0.562512 0.738528 1.208585 1.362690 1.606043 2.109182 2.501183 2.707198 +0.236912 0.461787 0.686242 0.881092 1.300577 1.424620 1.725187 2.169489 2.361758 2.662324 +0.208063 0.337571 0.482777 0.926508 1.161683 1.311006 1.776451 1.933103 2.448810 2.646540 +0.256479 0.328343 0.499814 1.097457 1.386665 1.496809 1.952745 2.087139 2.342994 2.654825 +0.161661 0.224177 0.383379 0.607758 0.991555 1.381589 1.804283 1.998147 2.415608 2.619198 +0.386111 0.495518 0.750917 0.937387 1.069306 1.592878 2.091954 2.230429 2.574083 2.695163 +0.236835 0.303063 0.548777 0.748487 1.602860 1.790903 1.980987 2.173544 2.482285 2.674930 +0.115857 0.253229 0.839446 1.182318 1.604808 1.930292 2.262789 2.477033 2.731091 2.843896 +0.213435 0.341074 0.506347 0.714649 0.813915 1.154546 1.865334 2.056297 2.656061 2.833781 +0.152341 0.225866 0.394818 0.830840 1.039343 1.299776 1.515314 1.701937 2.172593 2.703933 +0.150002 0.193206 0.361814 0.541289 1.168971 1.515576 1.875006 2.181631 2.473830 2.750294 +0.175983 0.238402 0.392935 0.834832 1.568038 1.753001 1.950436 2.176878 2.408077 2.761430 +0.213829 0.318859 0.535586 0.713597 1.015672 1.174333 1.408597 2.083136 2.354086 2.563569 +0.417612 0.500513 0.811466 1.027816 1.139572 1.532510 1.959824 2.084676 2.544668 2.694259 +0.279259 0.446390 0.589074 0.796267 1.496946 1.723595 1.869786 2.100336 2.331076 2.456141 +0.444430 0.638237 1.041068 1.445315 1.605692 1.733619 2.167615 2.326214 2.602181 2.745455 +0.210087 0.362661 0.515500 0.840169 1.033119 1.239618 1.373615 1.803901 2.716235 2.848165 +0.225160 0.350738 0.501850 0.896968 1.297884 1.414194 1.669332 1.835349 2.075666 2.672832 +0.039211 0.113866 0.622349 0.907025 1.252791 1.535875 1.876167 2.163786 2.540348 2.789312 +0.126350 0.194309 0.675134 1.116698 1.365415 1.576318 1.849118 2.102016 2.438531 2.737802 +0.251266 0.342779 0.622143 0.793543 1.004128 1.433428 1.828192 2.011292 2.214652 2.441068 +0.287491 0.392893 0.575294 0.916666 1.023814 1.482149 1.829139 1.953760 2.589735 2.724978 +0.198423 0.295697 0.439598 0.609605 1.262768 1.619956 1.747689 2.005913 2.368608 2.490906 +0.358531 0.483574 0.802846 1.004510 1.351513 1.645034 1.955330 2.161545 2.477437 2.639225 +0.252099 0.385070 0.557560 0.740943 0.911070 1.013935 1.524718 2.136124 2.396009 2.750794 +0.277335 0.507312 0.745418 0.921396 1.189730 1.321635 1.630275 2.000574 2.318359 2.450355 +0.251729 0.359609 0.480792 0.813240 1.317908 1.441397 1.655896 2.171984 2.476511 2.611973 +0.267463 0.311514 0.756574 1.332619 1.482384 1.635505 1.872999 2.053016 2.640422 2.756993 +0.175657 0.240482 0.383528 0.598077 0.916809 1.091066 1.760568 1.946970 2.313700 2.484722 +0.308726 0.352539 0.822652 1.208001 1.295254 1.507386 1.644261 1.995003 2.594656 2.684930 +0.292332 0.442077 0.718688 0.941531 1.395212 1.630615 1.847265 2.270351 2.514492 2.713146 +0.215044 0.379718 1.248947 1.429713 1.705990 1.881505 2.089432 2.306464 2.505316 2.662383 +0.243250 0.359897 0.521676 0.699893 1.005116 1.271071 1.694794 2.008687 2.440679 2.593828 +0.300924 0.394176 0.559419 0.899409 1.454448 1.708566 1.869825 2.116095 2.376539 2.493592 +0.153405 0.251763 0.392574 0.866089 1.104658 1.286553 1.780043 1.916997 2.532174 2.688015 +0.279453 0.326159 0.753633 1.333374 1.499514 1.626480 1.898852 2.038525 2.500726 2.702071 +0.170059 0.229176 0.395854 0.705543 1.082349 1.588065 1.821443 1.949022 2.120108 2.537716 +0.202145 0.274872 0.419107 0.608489 0.758495 1.603432 1.748277 2.189578 2.559336 2.730653 +0.177888 0.251468 0.365661 0.658086 1.634785 1.816726 1.997979 2.183875 2.456958 2.811253 +0.317970 0.468942 0.803601 1.078125 1.370511 1.630999 1.971111 2.226246 2.543508 2.768268 +0.234066 0.324515 0.462757 0.683101 0.779120 1.399880 1.995585 2.098113 2.538242 2.655334 +0.226221 0.390737 0.587891 0.741564 1.148309 1.290898 1.572982 2.116901 2.296227 2.676682 +0.152380 0.275031 0.397732 0.652751 1.329373 1.439312 1.794813 1.940569 2.520664 2.797824 +0.166696 0.251629 0.512274 1.144842 1.315763 1.710247 2.178415 2.460971 2.703738 2.827969 +0.216867 0.347530 0.531282 0.706161 1.126385 1.301329 1.475176 1.901629 2.242013 2.431677 +0.300362 0.482595 0.791226 1.005231 1.156964 1.313455 1.691239 2.006858 2.373111 2.733635 +0.169474 0.255383 0.406046 0.734985 1.442352 1.579575 1.789148 1.957193 2.399133 2.566651 +0.130440 0.237458 1.032166 1.386551 1.711848 1.993258 2.268221 2.439261 2.683283 2.812111 +0.173867 0.278057 0.388656 0.749215 0.960862 1.146135 1.799140 1.979764 2.471783 2.619305 +0.242130 0.340749 0.474654 0.828524 1.328466 1.445245 1.802538 2.204747 2.373101 2.551440 +0.232537 0.347402 0.580048 1.030748 1.297867 1.477044 1.985462 2.164878 2.627119 2.813421 +0.187113 0.520796 0.877184 1.139100 1.389082 1.622317 1.923715 2.144320 2.454348 2.655504 +0.198782 0.276683 0.501229 0.913907 1.081324 1.395372 1.775624 1.940434 2.159949 2.585288 +0.219192 0.432472 0.587263 0.912549 1.202466 1.322625 1.811369 1.992180 2.458299 2.760505 +0.191165 0.276813 0.416963 0.651161 1.167971 1.294155 2.003249 2.230928 2.506110 2.774812 +0.363801 0.518796 0.957361 1.225911 1.566650 1.757756 1.962407 2.115286 2.359997 2.543054 +0.227701 0.362569 0.499430 0.731314 0.922719 1.040854 1.838698 2.164784 2.383067 2.810807 +0.465091 0.619804 0.778037 0.935635 1.093218 1.259037 1.829035 2.206537 2.404214 2.547685 +0.219345 0.331580 0.468701 0.864163 1.221425 1.316478 1.768475 2.078164 2.234895 2.666223 +0.202678 0.257891 0.463059 1.225499 1.595549 1.714423 2.230601 2.403829 2.599305 2.731507 +0.191295 0.292649 0.453931 0.663743 1.147168 1.275622 1.648493 2.119111 2.300099 2.725340 +0.202700 0.296043 0.842652 1.096103 1.432375 1.634580 1.849789 2.019083 2.373823 2.644180 +0.223698 0.286308 0.535549 0.951336 1.583619 1.712827 2.069074 2.228672 2.508621 2.712105 +0.393154 0.609187 1.147735 1.476125 1.660227 2.028129 2.280391 2.450954 2.687946 2.792306 +0.330421 0.541443 0.735477 0.935290 1.088544 1.300043 1.758898 2.291508 2.520235 2.677690 +0.228002 0.342730 0.476697 0.849764 1.368387 1.487565 1.712396 1.973744 2.334383 2.559863 +0.104462 0.175301 0.563572 0.921064 1.173139 1.367029 1.770789 1.951766 2.518901 2.747920 +0.195798 0.262376 0.397584 1.297059 1.483849 1.624630 1.820421 2.042136 2.481635 2.604228 +0.173538 0.223847 0.382154 0.562642 0.874661 1.340042 1.617180 1.932579 2.238320 2.383936 +0.257237 0.371721 0.696634 0.866614 1.045455 1.380460 1.752496 2.066892 2.504906 2.650308 +0.218997 0.321077 0.437617 0.666034 1.306150 1.849231 2.027564 2.199883 2.494261 2.649249 +0.320867 0.453548 0.918076 1.266491 1.422317 1.759869 1.998420 2.173922 2.635097 2.760926 +0.288066 0.410534 0.547460 0.760858 0.863292 1.068351 1.939410 2.167961 2.348114 2.767507 +0.218835 0.407925 0.654818 0.800374 1.153682 1.307829 1.657331 1.988984 2.263141 2.720996 +0.153945 0.202790 0.346143 0.519640 1.071723 1.237072 1.712069 1.893855 2.509996 2.744059 +0.248060 0.319372 0.459918 0.983442 1.443498 1.755178 2.100888 2.226747 2.447411 2.563325 +0.174462 0.227225 0.392742 0.571792 1.079416 1.257366 1.551460 2.042776 2.429302 2.629154 +0.274891 0.362315 0.660508 0.970740 1.151818 1.492509 2.072636 2.222125 2.494909 2.686200 +0.220299 0.317099 0.435591 0.793260 1.562295 1.723726 1.912306 2.110472 2.315517 2.618587 +0.350079 0.511699 0.888658 1.136538 1.502800 1.698163 2.138112 2.327492 2.505197 2.660921 +0.173175 0.286482 0.419571 0.629953 0.747452 1.073798 1.745440 1.887288 2.728362 2.862994 +0.302893 0.357795 0.579776 1.154149 1.373560 1.502096 1.831774 1.992189 2.178385 2.421943 +0.140345 0.186167 0.360424 0.858043 1.324588 1.624322 1.866334 2.036366 2.402471 2.617804 +0.207490 0.275386 0.532026 0.903652 1.559244 1.774707 1.962334 2.362983 2.596218 2.738415 +0.218842 0.320129 0.541623 0.875722 1.067991 1.362399 1.856837 2.024142 2.291054 2.645666 +0.341898 0.421854 0.677264 0.873738 1.018393 1.630494 1.868485 2.019716 2.616580 2.717499 +0.211631 0.278329 0.446819 0.679617 0.882530 1.848991 2.102209 2.280260 2.586273 2.750039 +0.400922 0.636971 0.853016 1.019114 1.364375 1.550804 1.850055 2.119999 2.453786 2.623222 +0.182154 0.242330 0.378923 0.509876 0.716576 1.076135 1.587035 2.069399 2.351207 2.660390 +0.400616 0.546715 0.729647 0.920762 1.100075 1.250132 1.664408 1.856723 2.067945 2.443519 +0.209711 0.304779 0.494008 0.698197 1.296713 1.461577 1.655811 1.885168 2.324920 2.489386 +0.248365 0.299675 0.641181 1.260844 1.683313 1.795634 2.022337 2.219236 2.445410 2.655259 +0.167092 0.244845 0.404157 0.672069 1.004556 1.174641 1.578514 1.897154 2.103236 2.709969 +0.429420 0.514025 0.817076 1.048094 1.187821 1.561651 1.826573 2.032100 2.492575 2.641130 +0.264974 0.350531 0.483895 0.953322 1.415379 1.541498 1.741521 2.171851 2.402443 2.527925 +0.416115 0.686348 1.016333 1.284030 1.627945 1.880349 2.143431 2.282669 2.504877 2.648617 +0.231020 0.416620 0.567188 0.760726 0.955087 1.089751 1.781039 1.967816 2.404279 2.797135 +0.416422 0.567520 0.709693 0.879615 1.302011 1.438085 1.678611 2.054536 2.326361 2.457927 +0.247904 0.324051 0.545383 1.111006 1.266454 1.612279 1.870112 2.027173 2.425991 2.655109 +0.279983 0.344606 0.621600 1.161229 1.307142 1.554450 1.784019 1.936785 2.444710 2.544691 +0.161547 0.223962 0.393255 0.741174 1.202310 1.599192 1.822694 1.937889 2.442478 2.729139 +0.340992 0.431955 0.678217 0.820520 0.999612 1.548630 2.164553 2.310748 2.585979 2.711488 +0.200183 0.279651 0.467745 0.730753 1.426170 1.607139 1.815853 2.220677 2.506455 2.727126 +0.274123 0.333601 0.517799 0.968069 1.665916 2.015026 2.169211 2.290528 2.535899 2.658723 +0.128641 0.167761 0.298260 0.447464 0.821352 1.285100 1.591690 1.879933 2.400984 2.764683 +0.198225 0.285988 0.697225 0.945530 1.135179 1.304018 1.590254 1.943114 2.370953 2.581323 +0.201444 0.271446 0.576127 0.726304 1.159527 1.677334 1.872822 2.127341 2.665189 2.807544 +0.198540 0.257454 0.402737 0.846677 1.689490 1.872412 2.034308 2.301368 2.545100 2.729540 +0.200348 0.278019 0.471514 0.752728 1.057356 1.291805 1.777614 1.916008 2.050356 2.172844 +0.466866 0.645308 0.804067 0.998786 1.191235 1.303931 1.785280 2.063043 2.218678 2.420840 +0.217955 0.321210 0.422194 0.865351 1.405153 1.526771 1.791058 2.088900 2.251039 2.667199 +0.168989 0.497826 1.018345 1.283132 1.493512 1.888380 2.226737 2.418452 2.616832 2.749197 +0.147852 0.218473 0.622343 0.825646 1.034661 1.220457 1.704813 2.051368 2.264302 2.712720 +0.202129 0.285808 0.640153 0.871843 1.173967 1.564865 1.834400 2.062497 2.412487 2.645130 +0.183772 0.259996 0.404816 0.684417 1.383605 1.536056 1.977056 2.169199 2.372324 2.556503 +0.306590 0.365918 0.723737 1.056338 1.191585 1.709401 1.978183 2.126256 2.594741 2.707129 +0.219620 0.295360 0.600693 0.751928 1.012492 1.554688 1.777591 1.936858 2.168459 2.637471 +0.484146 0.588901 0.779655 0.974444 1.078335 1.362035 1.861448 1.968026 2.308413 2.629418 +0.228810 0.270297 0.510434 0.721201 1.241319 1.730974 2.096849 2.211832 2.642499 2.808686 +0.400197 0.579628 1.063821 1.257463 1.434952 1.645068 2.017358 2.268483 2.625254 2.773542 +0.232047 0.335877 0.450404 0.618767 0.762409 0.943602 1.844169 2.391140 2.569963 2.779299 +0.315037 0.423610 0.597448 0.972112 1.370369 1.476900 1.783359 2.042461 2.209021 2.480610 +0.194589 0.300944 0.526012 0.730548 1.193408 1.383086 1.609867 1.882051 2.100633 2.703077 +0.215641 0.294490 0.558585 1.391554 1.487145 1.740600 1.911148 2.277087 2.578133 2.742082 +0.160391 0.226326 0.368755 0.670545 0.912912 1.286570 1.631159 1.807727 1.987079 2.498593 +0.313582 0.634117 0.786900 0.944061 1.309221 1.432287 1.720247 2.096637 2.283214 2.589845 +0.214437 0.264378 0.625288 0.975877 1.451393 1.848655 2.094494 2.248063 2.542408 2.690286 +0.532950 0.968164 1.239348 1.422500 1.673683 1.785201 2.010288 2.200155 2.489732 2.638101 +0.190399 0.270657 0.393327 0.864241 1.117361 1.553286 1.679497 2.236221 2.526322 2.700079 +0.287724 0.467671 0.675841 0.856838 1.284704 1.460878 1.649715 1.913527 2.422638 2.548168 +0.215869 0.300450 0.454163 1.082174 1.280570 1.465769 1.679659 1.869841 2.473902 2.623546 +0.274887 0.330100 0.521274 1.123699 1.527645 1.625993 1.931695 2.090005 2.295751 2.645233 +0.177139 0.223177 0.433328 0.774459 1.097689 1.467517 1.918942 2.134341 2.337195 2.540463 +0.346166 0.429209 0.673089 0.781966 1.198349 1.775370 1.954363 2.186438 2.523312 2.625185 +0.197636 0.296745 0.398712 0.631500 1.583954 1.843578 1.994071 2.173016 2.361743 2.519793 +0.356767 0.538545 0.898397 1.140796 1.519279 1.870556 2.168497 2.427459 2.643928 2.759816 +0.235015 0.349662 0.469548 0.816642 0.998816 1.146467 1.889133 2.097584 2.284986 2.765528 +0.167083 0.224131 0.448491 0.771954 0.948871 1.283667 1.621698 1.998899 2.223248 2.603115 +0.159315 0.217018 0.374226 0.590601 1.105826 1.536441 1.809766 1.960128 2.582005 2.795394 +0.168849 0.234032 0.344667 1.029831 1.622442 1.708285 2.016025 2.179960 2.644139 2.784632 +0.251075 0.442282 0.599669 0.763346 1.115735 1.253234 1.496825 1.992708 2.184264 2.666670 +0.388258 0.473926 0.719990 1.058667 1.198870 1.374618 1.864229 2.002653 2.271742 2.608038 +0.293347 0.422867 0.533090 0.863648 1.464010 1.686465 1.842829 2.008624 2.424518 2.579258 +0.422335 0.661725 1.188673 1.343060 1.557186 1.860452 2.239896 2.431450 2.631923 2.747718 +0.210220 0.335092 0.511807 0.760320 0.952999 1.125991 1.476685 1.647025 2.137411 2.688168 +0.373319 0.450044 0.685548 1.063488 1.214342 1.368881 1.749950 1.871124 2.228036 2.638333 +0.175282 0.247596 0.583289 0.800597 1.137160 1.494047 1.790222 1.974957 2.343536 2.783786 +0.154093 0.244641 0.765316 0.879236 1.262433 1.388927 1.719208 2.139465 2.523177 2.692366 +0.222311 0.296370 0.669831 0.821863 1.017560 1.348925 1.641603 1.852235 2.386204 2.585103 +0.372785 0.531082 0.729578 0.873202 1.002102 1.194509 1.654182 2.163378 2.555067 2.658778 +0.180452 0.250281 0.391345 0.554433 1.111079 1.737542 1.910605 2.127866 2.347054 2.534033 +0.447990 0.697721 0.913809 1.073923 1.398658 1.670558 1.960290 2.195050 2.584428 2.733637 +0.253764 0.410608 0.631333 0.803642 0.949880 1.072389 1.769476 2.303179 2.473513 2.749295 +0.249292 0.446941 0.652687 0.818128 1.175583 1.321675 1.534828 1.927620 2.151897 2.401118 +0.201342 0.301055 0.433733 0.667341 1.394399 1.542142 1.766411 2.222136 2.392138 2.617167 +0.263299 0.393237 0.913686 1.357749 1.580030 1.698507 1.930164 2.135083 2.415503 2.650696 +0.189848 0.308713 0.459867 0.797899 0.949965 1.168427 1.746219 1.919236 2.340878 2.529939 +0.236533 0.300777 0.705293 0.910173 1.158168 1.522892 1.727631 1.847056 2.544899 2.698351 +0.219264 0.293220 0.734905 0.969140 1.364696 1.628075 1.824426 1.921247 2.283403 2.660295 +0.231171 0.417787 0.828086 1.301747 1.563040 1.823547 2.038748 2.195446 2.600171 2.776056 +0.280635 0.391503 0.560168 0.699729 0.849390 1.139817 1.609055 2.003493 2.496847 2.631252 +0.329050 0.484505 0.654854 0.957533 1.414924 1.532367 1.798653 2.132845 2.332577 2.503880 +0.227219 0.317562 0.601344 0.991967 1.260680 1.430395 1.612725 1.766840 2.496056 2.645255 +0.270493 0.315583 0.641937 1.235995 1.409340 1.574822 1.760130 1.902696 2.598899 2.735147 +0.235474 0.326468 0.507399 0.696822 0.844939 1.633632 1.871816 2.063592 2.368254 2.525576 +0.233853 0.361484 0.482226 0.641979 0.992245 1.767823 1.952577 2.472579 2.742913 2.825489 +0.168433 0.243379 0.376538 0.823302 1.489064 1.619584 1.949821 2.203288 2.468309 2.771787 +0.206625 0.282620 0.554762 1.077945 1.286219 1.787257 2.045355 2.207994 2.522847 2.710409 +0.281540 0.359214 0.508755 0.689167 0.780776 1.277647 1.987095 2.102406 2.452824 2.573050 +0.240331 0.408023 0.587761 0.766784 1.268990 1.450068 1.614701 2.027579 2.386559 2.524671 +0.213600 0.378897 0.482559 0.820665 1.293224 1.395614 1.715777 1.852078 2.466446 2.706440 +0.192448 0.262539 0.378679 1.019763 1.468722 1.663670 1.910800 2.391601 2.621746 2.796560 +0.220322 0.364745 0.565226 0.783488 1.013662 1.175116 1.402286 1.885036 2.103704 2.324743 +0.322267 0.390833 0.713492 1.031629 1.156838 1.350887 1.515558 1.694139 2.382654 2.516728 +0.192624 0.294262 0.426181 0.741678 1.498008 1.633347 1.893062 2.059462 2.393665 2.782635 +0.237455 0.354262 0.864239 1.246075 1.666553 1.844678 2.174333 2.351099 2.520290 2.655921 +0.185359 0.302261 0.428703 0.781405 0.947101 1.141955 1.617902 1.761286 2.464616 2.634452 +0.271859 0.354517 0.569485 1.079860 1.240128 1.441296 1.944968 2.053805 2.406507 2.736827 +0.214936 0.298540 0.472345 0.913665 1.080008 1.684282 1.985267 2.173551 2.601519 2.749361 +0.318521 0.444000 0.739244 0.971075 1.303751 1.557191 1.918998 2.197692 2.552225 2.778091 +0.187184 0.266393 0.414559 0.873123 1.122008 1.345856 1.781616 1.932051 2.123625 2.364411 +0.212033 0.437364 0.587744 0.807841 1.008570 1.156068 1.667422 1.813734 2.388649 2.769182 +0.177749 0.231877 0.394438 0.587873 1.018115 1.532170 2.031818 2.176571 2.587458 2.778604 +0.397403 0.572539 1.117765 1.287841 1.469835 1.676483 1.995880 2.232196 2.496431 2.667425 +0.173937 0.259671 0.371889 0.555593 0.908572 1.118222 1.943858 2.087012 2.545553 2.816900 +0.296434 0.458071 0.635222 0.864989 1.198523 1.305471 1.672912 2.015023 2.193002 2.377815 +0.205052 0.312572 0.468685 0.774972 1.212302 1.316262 1.821237 2.193552 2.380352 2.766685 +0.240642 0.281687 0.717545 1.351376 1.501114 1.640455 2.046214 2.216028 2.588688 2.729942 +0.230445 0.421175 0.558602 0.846662 1.051701 1.197214 1.704701 1.838398 2.267565 2.697618 +0.276287 0.327977 0.824738 1.266737 1.373629 1.712792 1.891497 2.121117 2.537629 2.629970 +0.236249 0.310208 0.402132 0.954290 1.542483 1.886318 2.043856 2.203899 2.435931 2.547918 +0.323080 0.525410 0.940102 1.419025 1.732419 1.904886 2.278288 2.399903 2.613800 2.842137 +0.259462 0.384806 0.559454 0.827377 1.079010 1.194629 1.553023 2.150915 2.369416 2.537197 +0.309877 0.458904 0.634515 0.905896 1.340319 1.484136 1.732179 2.044813 2.234578 2.374887 +0.200760 0.267223 0.619798 0.880150 1.341984 1.566789 1.724877 1.834378 2.408354 2.666757 +0.232160 0.325786 0.611845 1.111911 1.277003 1.508409 1.711967 2.103218 2.470657 2.665982 +0.160381 0.206959 0.356984 0.510509 1.122026 1.271899 1.727695 1.943129 2.251421 2.380751 +0.339821 0.413428 0.663411 0.796136 0.920303 1.589702 1.879891 1.995622 2.491309 2.584399 +0.225236 0.289017 0.531590 0.689709 1.348190 1.761804 1.902696 2.175207 2.654910 2.781414 +0.283922 0.449613 0.777624 1.129523 1.487473 1.706799 2.164061 2.402885 2.691872 2.844990 +0.328301 0.439249 0.648655 0.897495 1.049452 1.222028 1.849808 2.229574 2.423163 2.565623 +0.236478 0.488322 0.656819 0.862950 1.144127 1.252241 1.694351 2.068901 2.226797 2.679600 +0.169945 0.258037 0.384767 0.609183 1.121274 1.266086 1.906028 2.054377 2.436068 2.795471 +0.177152 0.233124 0.534434 0.970496 1.404070 1.867414 2.171355 2.381133 2.619262 2.753148 +0.225245 0.323943 0.535205 0.711545 1.030041 1.268317 1.543910 1.921579 2.352057 2.531897 +0.380284 0.516944 0.727113 0.869680 1.061908 1.484627 1.847885 2.176267 2.550710 2.682243 +0.227653 0.311146 0.407614 0.830722 1.390383 1.796577 1.984514 2.172202 2.442702 2.597183 +0.395180 0.597222 0.988635 1.248608 1.649366 1.943305 2.114992 2.281535 2.610845 2.728627 +0.159527 0.253807 0.427177 0.703855 0.920030 1.359209 1.618673 1.774181 2.658938 2.839174 +0.232953 0.317175 0.734127 1.080631 1.332652 1.674943 1.899956 2.046773 2.307884 2.543358 +0.125436 0.171676 0.329679 0.770190 1.288629 1.482675 1.769818 2.055328 2.430854 2.715479 +0.108098 0.175220 0.776302 1.221645 1.460683 1.686249 1.929306 2.193619 2.536986 2.758891 +0.152357 0.202480 0.472758 0.861767 1.159578 1.340969 1.681897 2.048109 2.275054 2.477467 +0.216694 0.273656 0.664155 0.850536 1.153027 1.561670 1.759318 1.901416 2.353101 2.500133 +0.234504 0.329541 0.449717 0.797883 1.290186 1.691782 1.880443 2.100171 2.454967 2.611905 +0.423938 0.621841 0.996723 1.214793 1.409002 1.563377 1.783564 2.010297 2.490150 2.698586 +0.224661 0.325658 0.459910 0.625802 0.808594 0.895832 1.274078 2.111179 2.326505 2.585806 +0.276916 0.361107 0.729423 0.920236 1.053283 1.413110 1.741880 1.962097 2.139800 2.429514 +0.174802 0.232198 0.385912 0.540434 1.262000 1.441657 1.595105 1.943274 2.269839 2.417795 +0.265949 0.330919 0.614312 1.257075 1.438174 1.628356 1.917882 2.077892 2.425421 2.567960 +0.184742 0.272816 0.441616 0.641718 0.815915 1.210558 1.722330 1.942876 2.319698 2.747254 +0.390404 0.468994 0.743751 0.956882 1.081791 1.532303 1.750715 1.909157 2.466230 2.592626 +0.278150 0.353755 0.588139 1.120329 1.521033 1.629736 1.993707 2.192040 2.399567 2.620496 +0.431717 0.694505 1.256024 1.445196 1.671784 1.844456 2.028769 2.200956 2.506360 2.653075 +0.208110 0.276044 0.538093 0.719555 0.900539 1.075355 1.745222 2.086474 2.298600 2.556630 +0.352056 0.531509 0.676701 0.887365 1.282885 1.426632 1.614434 1.945858 2.270688 2.425511 +0.247241 0.356899 0.502519 1.065178 1.284311 1.437490 1.855456 1.992377 2.597541 2.776219 +0.396219 0.473793 0.715289 1.202273 1.346298 1.549130 1.940574 2.082739 2.514755 2.713815 +0.202378 0.285773 0.510159 0.640990 1.020854 1.686414 1.864702 2.133482 2.472249 2.625491 +0.136813 0.196375 0.389204 0.606996 0.826010 1.435725 1.829944 2.110031 2.522891 2.760011 +0.178586 0.265329 0.368903 0.594584 1.563859 1.743534 1.910893 2.088980 2.290832 2.753782 +0.326016 0.474212 0.821872 1.109710 1.491269 1.780679 1.990347 2.151819 2.439284 2.687522 +0.198877 0.303609 0.451495 0.660899 0.772185 1.284705 1.783160 1.923118 2.602735 2.756655 +0.279250 0.410975 0.617113 0.801949 0.990885 1.139677 1.438000 1.937681 2.530952 2.667930 +0.182348 0.288676 0.418208 0.638943 1.372299 1.531009 1.853629 2.058568 2.425537 2.822046 +0.235124 0.297027 0.512992 0.982242 1.579055 1.930478 2.096962 2.225930 2.572915 2.699703 +0.162278 0.215431 0.355780 0.485908 0.932607 1.181318 1.754127 1.988386 2.205810 2.337559 +0.508788 0.685414 0.844731 0.983038 1.244131 1.360404 1.646047 2.084834 2.375165 2.496801 +0.221912 0.310104 0.433571 0.978939 1.478709 1.587503 1.870190 2.010717 2.307807 2.780012 +0.359050 0.649694 1.005623 1.392268 1.637149 1.994024 2.239355 2.474016 2.727591 2.831065 +0.174907 0.277141 0.433141 0.954995 1.167887 1.336923 1.902421 2.052616 2.483944 2.686652 +0.193342 0.297566 0.824802 1.002859 1.285763 1.465909 1.800134 2.073494 2.392133 2.587289 +0.209852 0.288483 0.458682 0.843162 1.202473 1.352796 2.014405 2.202275 2.423702 2.568228 +0.276031 0.338955 0.858149 1.217747 1.357220 1.691136 1.841368 2.176457 2.647222 2.735745 +0.223125 0.303040 0.542560 0.703413 1.109469 1.691790 1.909510 2.043240 2.184955 2.383039 +0.338660 0.434962 0.644715 0.989980 1.142041 1.308641 1.862318 1.996732 2.219202 2.585521 +0.169788 0.227570 0.355680 0.476462 1.249736 1.884793 2.054427 2.245569 2.516757 2.692583 +0.510617 0.730414 1.008300 1.210250 1.460951 1.677387 1.984236 2.201040 2.503259 2.654324 +0.224817 0.351828 0.465847 0.709341 0.827775 0.992719 1.978367 2.142995 2.475303 2.800083 +0.308599 0.506317 0.673098 0.860582 1.161218 1.306099 1.811163 2.021896 2.233070 2.490125 +0.180388 0.242667 0.458646 0.739129 1.098421 1.521511 1.707512 1.853458 2.375659 2.563893 +0.191139 0.259717 0.375119 1.195018 1.535308 1.637017 1.945089 2.126276 2.528158 2.662854 +0.144026 0.195867 0.353543 0.581701 1.048420 1.377425 1.815657 1.969736 2.339863 2.778177 +0.384542 0.545846 0.742643 1.036203 1.274580 1.406237 1.737850 2.169732 2.446560 2.578757 +0.313042 0.444130 0.599720 0.924365 1.567785 1.748672 1.900293 2.194593 2.410541 2.573262 +0.492225 0.752280 1.124936 1.471295 1.758189 2.030974 2.238788 2.397439 2.680130 2.783434 +0.204117 0.347099 0.699998 0.845266 1.234413 1.419863 1.647535 2.080443 2.553390 2.707330 +0.257069 0.400082 0.558347 0.805346 1.259790 1.380823 1.608549 2.124230 2.308452 2.486914 +0.187028 0.318194 0.445217 0.923741 1.268789 1.390301 1.796420 1.931293 2.418538 2.603222 +0.243477 0.326319 0.635481 1.172112 1.360926 1.526662 2.109593 2.260517 2.545032 2.720529 +0.166613 0.243290 0.400708 0.657757 0.842275 1.476511 1.791837 1.950760 2.119370 2.472850 +0.311146 0.353401 0.824181 1.012251 1.149117 1.842349 2.055130 2.218062 2.570268 2.661992 +0.208668 0.283611 0.411201 0.809929 1.517017 1.823008 1.957049 2.229403 2.412596 2.626293 +0.154448 0.334483 0.779457 1.197447 1.370217 1.692002 1.980004 2.409686 2.713983 2.827926 +0.234171 0.317688 0.451503 0.830950 0.995999 1.149839 1.803812 2.310181 2.531615 2.732000 +0.268413 0.427669 0.559871 0.864380 1.275062 1.362920 1.581797 1.689453 2.226263 2.624807 +0.107565 0.142648 0.266262 0.674471 1.151548 1.464128 1.861043 2.141020 2.509385 2.783297 +0.182059 0.241841 0.379523 1.073956 1.618846 1.718260 1.915296 2.047758 2.360928 2.720733 +0.235150 0.374352 0.545815 0.714492 0.870405 1.000816 1.559351 1.984193 2.158182 2.596142 +0.434816 0.514709 0.756010 0.899497 1.037358 1.585142 1.834527 2.000422 2.564235 2.674345 +0.220087 0.341090 0.451896 0.734427 1.391206 1.582675 1.725710 2.141788 2.371107 2.511862 +0.482146 0.706990 1.033285 1.248170 1.467412 1.657558 2.147999 2.343164 2.600856 2.731213 +0.213401 0.322062 0.647358 0.791444 0.977300 1.281320 1.599647 1.939047 2.672620 2.797626 +0.266041 0.338577 0.634659 1.127429 1.295917 1.449033 1.658080 1.796624 2.285728 2.541842 +0.119705 0.174258 0.480098 1.063251 1.273831 1.476888 1.794829 2.119252 2.513047 2.762255 +0.132629 0.207248 0.566178 1.085083 1.427584 1.613863 1.889768 2.150853 2.557229 2.784690 +0.243227 0.327780 0.614668 0.761155 0.956760 1.516306 1.811880 2.030177 2.440252 2.582195 +0.276721 0.454860 0.642970 0.784038 1.148980 1.495704 1.703559 2.045787 2.591550 2.733608 +0.189778 0.287373 0.392353 0.645856 1.447021 1.617951 1.816249 2.137973 2.286683 2.572288 +0.400084 0.558491 0.869949 1.062095 1.467794 1.653306 1.899420 2.128461 2.442747 2.604032 +0.199764 0.300259 0.426072 0.645425 0.897550 1.048949 1.748510 2.273694 2.495239 2.649109 +0.296976 0.548524 0.761769 0.955832 1.233251 1.360741 1.693122 2.106225 2.391505 2.525275 +0.248971 0.399490 0.565645 0.720524 1.301434 1.542758 1.716234 2.124059 2.351786 2.681231 +0.230842 0.287955 0.878785 1.471322 1.627007 1.798878 2.005181 2.197775 2.563907 2.690549 +0.176416 0.248403 0.402172 0.733179 0.912580 1.227444 1.694562 2.088653 2.427226 2.563010 +0.330895 0.394275 0.774692 1.201779 1.321842 1.534733 1.782019 1.938050 2.422893 2.563017 +0.227080 0.299503 0.577295 0.756890 1.417382 1.624050 1.795338 2.177707 2.440812 2.572784 +0.411173 0.652311 1.207281 1.442451 1.795401 2.003085 2.140804 2.292980 2.639630 2.785365 +0.332277 0.425121 0.639151 0.821829 0.917909 1.367536 1.826675 1.939314 2.535595 2.654182 +0.345400 0.534948 0.689404 0.928224 1.433841 1.640941 1.825449 2.051581 2.274575 2.418295 +0.141590 0.233113 0.380526 0.868351 1.172524 1.363081 1.874782 2.001448 2.669736 2.855042 +0.309644 0.355571 0.694245 1.252006 1.460701 1.577178 1.853145 1.978370 2.227714 2.570337 +0.181796 0.242419 0.465928 0.715655 1.132014 1.662718 1.850134 1.972773 2.184021 2.722527 +0.270338 0.338307 0.544290 0.711724 0.871287 1.703598 1.918408 2.093313 2.668494 2.765585 +0.150135 0.233584 0.336008 0.740881 1.603784 1.723020 1.936836 2.077330 2.611782 2.783379 +0.294465 0.456340 0.870538 1.062801 1.291659 1.616175 2.070689 2.369390 2.648605 2.779945 +0.220578 0.311705 0.491111 0.847979 1.008368 1.532076 1.849702 2.005101 2.512156 2.669189 +0.229638 0.339951 0.513064 0.716308 1.121176 1.256758 1.479075 2.121337 2.503285 2.662824 +0.160524 0.210553 0.362234 0.595417 1.110208 1.477620 1.653645 1.883754 2.439740 2.625662 +0.236615 0.430340 0.682470 0.856444 1.159709 1.515913 1.944281 2.332831 2.633186 2.783526 +0.208672 0.301280 0.471802 0.926610 1.098592 1.288875 1.519452 1.800256 2.105532 2.428804 +0.243004 0.379283 0.831427 0.991746 1.231060 1.393310 1.679725 2.091152 2.354981 2.528458 +0.149934 0.192836 0.336118 0.489287 1.278027 1.443086 1.737711 1.939793 2.258510 2.725935 +0.162158 0.237674 0.813115 1.431297 1.690841 1.974269 2.228385 2.387649 2.645607 2.800036 +0.196527 0.310980 0.462098 0.736718 0.837132 1.268534 1.708387 1.848473 2.433059 2.576944 +0.217349 0.293339 0.438216 0.968725 1.350504 1.532480 1.911129 2.082089 2.268517 2.522732 +0.172105 0.253481 0.450363 0.927945 1.249256 1.437596 1.922782 2.218348 2.523926 2.733317 +0.289228 0.446047 0.832892 1.123024 1.277186 1.474382 1.792564 2.096649 2.561362 2.797590 +0.214142 0.283470 0.516137 1.061346 1.260972 1.417097 1.665641 1.862087 2.187452 2.353608 +0.235527 0.492936 0.614052 0.859127 0.993761 1.190535 1.848411 1.973235 2.500443 2.746547 +0.143271 0.207291 0.331889 0.827028 1.406412 1.555136 2.045910 2.231114 2.689514 2.839109 +0.343742 0.496860 0.865166 1.285087 1.588995 1.756794 2.022431 2.211289 2.468649 2.662665 +0.213309 0.328675 0.455568 0.723514 0.874048 1.082530 1.853818 2.038906 2.260788 2.778839 +0.356471 0.536984 0.755721 0.903361 1.038099 1.226007 1.687762 2.156339 2.420844 2.542644 +0.281664 0.451610 0.591581 0.828915 1.326665 1.477284 1.708022 2.017509 2.266128 2.700127 +0.135742 0.202004 0.583681 1.273102 1.602365 1.942380 2.228707 2.450342 2.728373 2.845988 +0.176935 0.288677 0.440469 0.786770 1.012958 1.172754 1.752038 1.913637 2.366577 2.766438 +0.207276 0.322804 0.788604 1.062222 1.294802 1.485775 1.944748 2.180022 2.397073 2.598545 +0.258418 0.319098 0.442127 1.133408 1.649338 1.854417 1.994251 2.185084 2.363409 2.534653 +0.230448 0.768093 1.180265 1.433576 1.687255 1.978844 2.259606 2.452430 2.659127 2.786279 +0.211701 0.332064 0.697403 0.880507 1.102252 1.277927 1.808607 2.273983 2.531209 2.736845 +0.245378 0.367568 0.512696 0.766674 1.343265 1.519747 1.697079 2.028107 2.215378 2.381457 +0.221209 0.324945 0.580820 0.748228 1.178564 1.431153 1.585928 1.927918 2.511054 2.643255 +0.201716 0.269175 0.401778 1.244589 1.471872 1.604627 1.805637 1.992744 2.610885 2.752593 +0.160780 0.247690 0.362958 0.624009 1.013756 1.182001 1.581983 1.735927 2.415792 2.646241 +0.320217 0.438376 0.710346 0.878476 1.032132 1.508649 1.972158 2.150849 2.428882 2.559870 +0.229810 0.276051 0.623852 0.830087 1.321297 1.854677 2.155401 2.284792 2.546209 2.690175 +0.172343 0.516169 0.866716 1.177175 1.468063 1.699344 1.986666 2.212830 2.511703 2.739129 +0.301807 0.360652 0.549602 0.672645 0.818574 1.362279 2.098253 2.278909 2.509794 2.695143 +0.294974 0.528192 0.672468 0.856772 1.265640 1.393603 1.638102 2.013275 2.218602 2.565642 +0.169196 0.238150 0.410484 0.644996 1.213738 1.372823 1.800122 1.969874 2.449498 2.615088 +0.184333 0.260633 0.376102 1.023515 1.545709 1.640728 2.037188 2.208164 2.488002 2.744323 +0.205806 0.304865 0.436462 0.616734 1.126032 1.261522 1.725527 2.275740 2.464199 2.702123 +0.184070 0.318390 0.717474 0.865476 1.106500 1.361536 2.038210 2.231225 2.554333 2.779851 +0.246294 0.360790 0.538254 0.736709 1.529013 1.795377 1.952814 2.142384 2.364128 2.495169 +0.353866 0.494646 0.877256 1.112783 1.566844 1.730636 2.025508 2.291163 2.453412 2.592313 +0.266813 0.432427 0.627311 0.754824 0.905537 1.197394 1.729117 2.123791 2.612331 2.827337 +0.273873 0.325959 0.540600 1.115405 1.498701 1.606801 1.814584 1.961539 2.188053 2.581605 +0.080925 0.099600 0.276658 0.947658 1.291923 1.611810 1.910613 2.219380 2.537903 2.797293 +0.168058 0.226944 0.705184 1.118312 1.428461 1.627351 1.878361 2.102812 2.397762 2.613552 +0.257821 0.370068 0.510355 0.878371 1.064949 1.223791 1.796480 2.039854 2.276323 2.505472 +0.243671 0.302629 0.595985 0.730818 1.062394 1.558183 1.727802 1.887397 2.590876 2.710615 +0.211122 0.278412 0.520693 0.699430 1.097533 1.812529 1.983523 2.189366 2.429825 2.610746 +0.256155 0.564923 0.839859 0.987034 1.191276 1.647157 2.021784 2.266855 2.558850 2.704555 +0.202989 0.292278 0.435910 0.640810 0.806537 0.924136 1.535334 2.086372 2.299823 2.572501 +0.261418 0.340324 0.627433 1.013276 1.180897 1.361209 1.731180 1.903731 2.106233 2.555098 +0.183272 0.269138 0.450407 0.909918 1.188568 1.381279 1.745735 1.872820 2.365239 2.484744 +0.230426 0.280037 0.644137 1.434869 1.666206 1.796575 2.015246 2.157224 2.561916 2.707798 +0.227013 0.347868 0.525371 0.707399 0.880208 1.091634 1.654713 1.951332 2.177455 2.319267 +0.380861 0.446326 0.749128 1.201643 1.336943 1.503446 1.800630 1.947582 2.527910 2.700466 +0.315223 0.375610 0.564441 1.017919 1.552234 1.710374 1.873741 2.122288 2.299878 2.473435 +0.446116 0.664203 0.984542 1.279400 1.574979 1.727934 1.978897 2.175567 2.469185 2.631008 +0.221571 0.330656 0.499929 0.777432 1.028387 1.180617 1.640596 2.168791 2.367015 2.714387 +0.421994 0.632233 0.778145 1.001218 1.346201 1.466628 1.720295 1.964067 2.152128 2.372888 +0.163687 0.242822 0.347278 0.971370 1.516739 1.620115 1.816941 1.949014 2.443334 2.638176 +0.284949 0.352677 0.685252 1.135143 1.255140 1.560889 1.905396 2.035214 2.547256 2.683043 +0.177362 0.243130 0.452833 0.824266 1.135565 1.520115 1.813864 1.958746 2.294091 2.563724 +0.178458 0.242386 0.592702 0.788280 1.051353 1.502905 1.934975 2.183628 2.477003 2.654310 +0.259519 0.407690 0.538212 0.728451 1.390298 1.713874 1.876895 2.109781 2.420753 2.577065 +0.255216 0.310327 0.589176 1.157266 1.687747 1.925407 2.045142 2.222504 2.425083 2.548028 +0.164446 0.206868 0.378009 0.525559 0.944579 1.419792 1.613300 1.889685 2.292641 2.565572 +0.240619 0.406939 0.588886 0.735213 1.146793 1.389773 1.537737 1.878402 2.297976 2.552226 +0.289310 0.418786 0.620314 0.764899 1.239942 1.612628 1.827524 2.107944 2.485462 2.639007 +0.198771 0.253637 0.405678 1.048168 1.663883 1.766039 2.128211 2.283365 2.560190 2.709800 +0.165963 0.230669 0.375008 0.692069 0.959835 1.378579 1.760825 1.948801 2.081418 2.369799 +0.523510 0.686129 0.825335 1.033919 1.330937 1.444794 1.739869 2.062844 2.315205 2.450730 +0.293681 0.417926 0.595503 0.957896 1.404495 1.522162 1.884014 2.096933 2.301269 2.621891 +0.359283 0.604669 1.076288 1.248249 1.451793 1.744413 2.125184 2.431489 2.687730 2.799316 +0.156185 0.235581 0.552175 0.813130 1.154557 1.326329 1.861696 2.153380 2.503796 2.787362 +0.290411 0.440558 0.736912 0.889007 1.171361 1.470366 1.794734 2.061516 2.373978 2.626041 +0.224936 0.320946 0.527542 0.738900 1.255619 1.428610 1.871090 2.256589 2.480524 2.694434 +0.288975 0.352962 0.777218 0.955880 1.109873 1.594800 1.813598 1.955710 2.589302 2.714964 +0.213548 0.285746 0.635954 0.830113 1.233322 1.591243 1.839168 1.977797 2.191863 2.623667 +0.336902 0.465806 0.655656 0.935793 1.068579 1.275847 1.761107 1.886493 2.444770 2.653299 +0.178879 0.258874 0.377390 0.527403 1.357599 1.761048 1.949090 2.163795 2.596422 2.759195 +0.430143 0.622963 0.955719 1.182584 1.497132 1.720157 2.044968 2.255285 2.544050 2.680998 +0.213810 0.308853 0.412187 0.569347 0.698344 0.951238 1.880619 2.207829 2.428571 2.828730 +0.230078 0.350112 0.747969 0.974442 1.265182 1.407146 1.813877 2.069124 2.247230 2.451871 +0.161458 0.227385 0.387324 0.640232 1.277813 1.478011 1.725217 1.915041 2.125833 2.645182 +0.200302 0.251181 0.381966 1.303694 1.547137 1.662388 2.120598 2.270182 2.603139 2.775037 +0.143149 0.204983 0.349581 0.667355 1.054734 1.399807 1.727708 1.850109 2.047799 2.715549 +0.337070 0.484021 0.803330 0.985730 1.331585 1.542266 1.830512 2.086973 2.445274 2.632911 +0.215583 0.269471 0.606879 0.945487 1.515635 1.750218 1.939935 2.174549 2.408151 2.576074 +0.534065 0.863487 1.372366 1.575333 1.866659 2.070622 2.218716 2.368585 2.634956 2.716254 +0.237658 0.350270 0.489196 0.956466 1.150453 1.341383 1.448597 2.345953 2.655585 2.785735 +0.233020 0.367323 0.713299 0.877999 1.226884 1.412189 1.743848 1.959402 2.416964 2.595603 +0.134934 0.190506 0.457228 0.942655 1.200550 1.509494 1.748249 1.912543 2.326213 2.742656 +0.297757 0.342592 0.625651 1.192568 1.540655 1.652384 1.875775 2.074460 2.224137 2.465967 +0.177286 0.234207 0.389716 0.517516 1.264974 1.424653 1.878090 2.150100 2.343577 2.537476 +0.281819 0.367413 0.659188 0.765361 1.004368 1.501384 1.726113 2.194951 2.534788 2.645854 +0.180979 0.252107 0.389029 0.570917 1.209940 1.699305 2.111361 2.224160 2.447867 2.620250 +0.256330 0.426903 0.826318 1.152683 1.487139 1.915114 2.246737 2.487453 2.705023 2.815420 +0.195539 0.316745 0.452617 0.833168 0.960504 1.269064 1.879314 2.025539 2.474377 2.680723 +0.203505 0.369568 0.536367 0.778820 1.088933 1.243750 1.588708 1.823497 2.020053 2.594631 +0.156418 0.198956 0.346275 0.496071 1.022702 1.572819 1.753592 2.143215 2.439211 2.674470 +0.160863 0.247666 0.345815 0.841020 1.523112 1.638256 1.887324 2.031339 2.509810 2.718796 +0.258214 0.480809 0.650419 0.801775 1.142337 1.283943 1.504959 2.054206 2.225835 2.474616 +0.303681 0.412740 0.649849 1.086617 1.266890 1.447470 1.896224 2.075119 2.565787 2.741747 +0.271067 0.413984 0.597954 0.768944 1.247881 1.606107 1.786404 2.085376 2.326363 2.529854 +0.521626 0.811390 1.129336 1.284608 1.629969 1.909728 2.228029 2.368756 2.570103 2.697107 +0.303633 0.421526 0.573677 0.925024 1.125497 1.258550 1.501212 1.610013 2.249352 2.608832 +0.411522 0.503523 0.746692 1.046522 1.172005 1.384521 1.797259 1.900603 2.387578 2.660719 +0.175711 0.239782 0.620582 0.952051 1.278311 1.501826 1.917072 2.130700 2.368785 2.608122 +0.164631 0.422501 0.724319 0.950544 1.214644 1.491261 1.799734 2.067799 2.473726 2.757283 +0.193259 0.281162 0.690376 0.855405 1.232753 1.402146 1.689327 1.991274 2.228334 2.435353 +0.301425 0.429993 0.650401 0.873662 1.008503 1.369274 1.690750 1.825918 2.520079 2.683664 +0.155700 0.201237 0.338696 0.505340 1.147916 1.472901 1.941300 2.074514 2.326431 2.663368 +0.350326 0.535475 0.827403 1.201270 1.427031 1.581852 1.963067 2.220906 2.472991 2.668217 +0.279035 0.416052 0.604816 0.794888 0.990688 1.105072 1.420018 2.166296 2.539337 2.676318 +0.278246 0.394509 0.777126 0.921607 1.080479 1.281224 1.433634 2.046850 2.283781 2.454104 +0.158340 0.199119 0.354050 0.555065 1.177314 1.442096 1.685385 2.144139 2.396032 2.716012 +0.247102 0.317737 0.855614 1.333153 1.454453 1.787157 1.970697 2.269614 2.586000 2.679846 +0.202515 0.257270 0.542126 0.724324 0.933997 1.317188 1.717435 2.091303 2.303481 2.469447 +0.295032 0.375581 0.775220 1.057728 1.185439 1.521116 1.807145 1.955630 2.459124 2.631564 +0.266524 0.353178 0.553809 1.043318 1.444903 1.560508 1.829729 1.962933 2.504864 2.699633 +0.392075 0.574661 1.110281 1.317280 1.473545 1.883432 2.051877 2.263410 2.613387 2.737894 +0.168326 0.277952 0.453865 0.702950 0.855434 1.035959 1.678564 1.811649 2.430121 2.811216 +0.301453 0.416493 0.552087 0.857890 1.446563 1.610970 1.775934 2.104633 2.298771 2.438580 +0.296445 0.422883 0.572322 1.053033 1.294027 1.427183 1.752752 1.892326 2.450076 2.720985 +0.291284 0.337800 0.787813 1.245129 1.350343 1.575395 1.771522 2.054749 2.520469 2.632047 +0.138710 0.200016 0.384208 0.667517 0.930105 1.493340 1.923603 2.079511 2.389298 2.733779 +0.280864 0.419489 0.614429 0.763022 1.011923 1.456038 1.644559 2.246694 2.668232 2.789516 +0.145213 0.217524 0.328786 0.706480 1.529301 1.661988 2.106773 2.330515 2.581680 2.792686 +0.265809 0.345868 0.597082 1.070990 1.497116 1.633533 2.139627 2.280686 2.512817 2.668144 +0.208788 0.353537 0.448428 0.744542 0.832763 1.081624 1.871188 2.032083 2.429608 2.599530 +0.238916 0.386378 0.542985 0.766669 1.174876 1.281048 1.635077 2.080947 2.247664 2.488499 +0.203556 0.321547 0.427750 0.977606 1.419067 1.509630 1.819297 1.946189 2.580163 2.776386 +0.139996 0.214290 0.381653 0.921888 1.276433 1.581217 1.904101 2.138537 2.662439 2.833853 +0.212852 0.314107 0.462617 0.919913 1.063259 1.256340 1.466783 1.677489 2.033592 2.181966 +0.466600 0.630996 0.782487 0.940455 1.238899 1.391865 1.580807 1.885579 2.314316 2.461513 +0.227025 0.350571 0.564570 0.792724 1.354349 1.541346 1.801883 2.207919 2.410212 2.682787 +0.249981 0.396397 0.985691 1.264822 1.534123 1.871221 2.123754 2.286134 2.517526 2.674066 +0.177530 0.299649 0.406845 0.735920 1.226985 1.334179 1.570608 1.724780 2.559215 2.784411 +0.331581 0.410000 0.675272 1.110025 1.255576 1.427242 1.924905 2.045160 2.303923 2.638796 +0.210022 0.302618 0.477941 0.890428 1.097541 1.628245 1.909906 2.220072 2.508520 2.652118 +0.243446 0.420405 0.781875 1.124911 1.345163 1.548171 1.986124 2.256316 2.655998 2.839208 +0.200937 0.269954 0.466285 0.792334 1.180229 1.434359 1.791176 1.944075 2.077160 2.197213 +0.251311 0.446771 0.586446 0.941160 1.156270 1.303306 1.672045 1.830703 2.385130 2.761692 +0.176967 0.213758 0.376271 0.498915 1.047907 1.738519 2.144585 2.257100 2.630427 2.811560 +0.352772 0.503472 0.939563 1.201270 1.506542 1.660120 1.860724 2.068816 2.441126 2.640996 +0.178023 0.303052 0.386553 0.624462 0.745438 0.945475 1.851506 1.982051 2.478715 2.678062 +0.364266 0.492788 0.670783 0.846141 0.981327 1.137049 1.747901 2.123325 2.278768 2.451425 +0.194628 0.412302 0.576670 0.847302 1.093833 1.250221 1.832799 1.978334 2.268735 2.705748 +0.210126 0.261821 0.730491 1.414850 1.596688 1.714047 2.240294 2.394580 2.609061 2.726773 +0.269651 0.402612 0.565711 0.760525 0.889819 1.107327 1.796638 1.997957 2.232105 2.568438 +0.133808 0.231770 0.964886 1.241597 1.484042 1.687250 1.909900 2.150489 2.488549 2.709142 +0.306823 0.378775 0.528651 1.056677 1.597646 1.784457 1.922205 2.165550 2.402629 2.533249 +0.406081 0.580663 1.171379 1.458297 1.720903 1.880717 2.213995 2.369466 2.530713 2.666970 +0.228294 0.391754 0.668996 0.852912 1.156334 1.293279 1.648848 2.231024 2.414612 2.628285 +0.302709 0.472535 0.626855 0.843574 1.352641 1.488643 1.688728 2.088022 2.315798 2.484648 +0.174773 0.243410 0.746413 0.964816 1.191099 1.363990 1.763375 2.002057 2.265912 2.600431 +0.208518 0.277532 0.471186 1.268798 1.353448 1.735767 1.868117 2.374184 2.641977 2.776723 +0.181223 0.240142 0.433185 0.698630 1.302639 1.456283 1.718530 1.991528 2.237981 2.340398 +0.351292 0.440375 0.723077 0.926148 1.074170 1.439999 1.696850 1.901716 2.300430 2.453901 +0.226417 0.295615 0.571000 0.984080 1.315950 1.698856 1.941891 2.121713 2.342505 2.579999 +0.380156 0.575056 0.932765 1.215036 1.441177 1.764868 2.084529 2.309314 2.649989 2.795048 +0.327618 0.406456 0.591362 0.776642 0.880344 1.202380 1.954155 2.143987 2.351308 2.562503 +0.349506 0.502746 0.667403 0.858540 1.006257 1.182652 1.744117 1.942048 2.263027 2.631113 +0.177120 0.223929 0.376392 0.517683 0.980327 1.245272 1.809519 2.111620 2.342282 2.674853 +0.123205 0.175349 0.396680 1.076230 1.369038 1.673956 1.959621 2.213420 2.585626 2.780840 +0.199931 0.299170 0.450172 0.705023 1.188319 1.349840 1.579504 2.154568 2.351041 2.525566 +0.302167 0.465527 0.626305 0.861772 0.982600 1.308182 1.952424 2.093800 2.477514 2.675986 +0.242409 0.306396 0.609503 0.781681 1.304327 1.721020 1.925053 2.059600 2.219491 2.531271 +0.355459 0.562814 1.005674 1.276256 1.699547 1.938826 2.256737 2.427235 2.599155 2.727721 +0.151530 0.250374 0.398298 0.598018 0.779517 1.173799 1.570201 1.708674 2.564516 2.838232 +0.220397 0.279236 0.757790 1.106570 1.277089 1.577301 1.822237 1.978751 2.121441 2.474720 +0.153326 0.218116 0.394366 0.701525 1.051329 1.626441 1.887066 2.073879 2.602080 2.787764 +0.234610 0.396895 0.841428 1.067362 1.368124 1.669319 1.979920 2.264168 2.548149 2.700534 +0.210859 0.310938 0.499147 0.721086 1.174085 1.319358 1.795112 2.119739 2.328704 2.523434 +0.205900 0.309942 0.473488 0.788729 0.910899 1.492677 1.711470 1.896973 2.451938 2.620192 +0.228664 0.320277 0.483685 0.662193 1.183931 1.743195 1.934444 2.129302 2.472394 2.610315 +0.308768 0.504829 0.834602 1.135142 1.422684 1.603830 1.804246 2.039329 2.434630 2.712164 +0.195372 0.307825 0.510685 0.705293 0.862776 0.987472 1.561941 1.940733 2.431850 2.813875 +0.306758 0.363734 0.676055 1.018763 1.123399 1.370232 1.612188 1.792290 2.051896 2.212304 +0.175686 0.229897 0.430909 0.821342 1.267737 1.439041 1.813710 2.050941 2.367020 2.513483 +0.270387 0.314704 0.625717 1.328248 1.485768 1.648429 1.945037 2.074570 2.558789 2.681083 +0.150545 0.249063 0.484485 0.650722 0.926307 1.336973 1.578609 1.727988 2.372974 2.800106 +0.451543 0.550287 0.774083 1.017766 1.117810 1.452119 1.851289 1.956638 2.541998 2.714928 +0.303976 0.365108 0.645290 1.163674 1.649225 1.816629 1.956898 2.167435 2.334752 2.499609 +0.258346 0.804804 1.233083 1.450024 1.793938 1.975438 2.178153 2.350853 2.545268 2.695382 +0.305873 0.411332 0.559751 0.770260 0.870638 1.070601 1.844362 2.171189 2.331380 2.561172 +0.328067 0.572423 0.818346 0.977873 1.251504 1.396022 1.679055 2.003477 2.202890 2.376892 +0.233685 0.324374 0.505263 1.162727 1.383328 1.533712 1.921509 2.038933 2.644680 2.830387 +0.368811 0.446580 0.830711 1.314440 1.454376 1.633636 1.932315 2.093222 2.523433 2.696884 +0.225386 0.331700 0.499419 0.651259 1.081776 1.536183 1.684810 2.115502 2.326023 2.493957 +0.223044 0.298517 0.436019 0.582229 0.785616 1.768538 2.059742 2.207026 2.494017 2.696171 +0.180285 0.258337 0.369821 0.519766 1.426414 1.652781 1.844922 2.044342 2.221032 2.715648 +0.283330 0.386958 0.793201 1.012390 1.401661 1.814923 2.032214 2.252691 2.478442 2.623605 +0.192303 0.289501 0.500660 0.766599 0.927796 1.379237 1.761645 2.133602 2.524890 2.706929 +0.240366 0.425376 0.713195 0.854560 1.062811 1.239666 1.453114 2.086242 2.409526 2.579680 +0.137084 0.190186 0.315294 0.519061 1.348977 1.578096 1.776272 1.932718 2.478330 2.764053 +0.256575 0.299517 0.557847 0.772199 1.734591 1.838024 2.175501 2.380904 2.586733 2.722357 +0.152502 0.184110 0.342575 0.500794 0.869142 1.091892 1.283627 1.913051 2.078861 2.216081 +0.422116 0.624411 0.936013 1.075293 1.214093 1.394857 1.793604 2.068743 2.420462 2.621433 +0.172110 0.265160 0.376968 0.872523 1.415505 1.522936 1.876576 2.026326 2.412597 2.784541 +0.206316 0.484509 0.867999 1.264771 1.619155 1.941304 2.179857 2.450350 2.746320 2.859252 +0.183287 0.327870 0.479087 0.793937 1.054850 1.228053 1.799851 2.057544 2.605366 2.808018 +0.199645 0.251567 0.651339 0.845163 1.224263 1.400865 1.849917 2.073362 2.320314 2.465281 +0.172950 0.268061 0.408629 0.749321 1.232382 1.363027 1.833510 1.995806 2.311255 2.818028 +0.383755 0.436949 0.854750 1.093429 1.211736 1.678565 1.897539 2.135411 2.547959 2.639036 +0.206666 0.277792 0.525267 0.971550 1.150633 1.543543 1.818711 1.982032 2.192940 2.418823 +0.297704 0.438877 0.602705 0.935349 1.126380 1.302724 1.887231 2.030156 2.370716 2.648705 +0.225939 0.261133 0.511885 0.708833 1.424678 1.892147 2.104001 2.250163 2.605088 2.746840 +0.452216 0.679332 1.031388 1.239650 1.444390 1.576987 1.800188 2.037662 2.347747 2.559010 +0.246537 0.319428 0.434869 0.567303 0.678662 1.145054 2.156111 2.318698 2.695808 2.850677 +0.323068 0.487001 0.653349 0.909650 1.315899 1.427550 1.843764 2.091482 2.277958 2.521041 +0.151653 0.209991 0.374931 0.854455 1.064290 1.434370 1.854148 1.976154 2.226004 2.750320 +0.254129 0.318082 0.553509 1.223731 1.483086 1.618808 1.995613 2.126498 2.542503 2.704703 +0.159794 0.237065 0.373617 0.681392 0.916230 1.100174 1.782317 1.960086 2.120694 2.618079 +0.395727 0.506034 0.756406 1.188386 1.370570 1.507131 1.860951 2.052892 2.386064 2.617425 +0.235512 0.301393 0.657521 0.969184 1.638320 1.830168 1.984994 2.183324 2.395359 2.538524 +0.451916 0.818196 1.310860 1.494170 1.734505 1.944228 2.085155 2.271405 2.604215 2.715654 +0.229547 0.331804 0.499374 0.698992 1.265974 1.467138 1.658356 2.268601 2.583952 2.762021 +0.258732 0.443700 0.582380 0.800795 1.354913 1.537609 1.724000 2.113993 2.369337 2.558869 +0.156813 0.299295 0.462045 0.796077 1.096063 1.269277 1.836371 1.991867 2.448318 2.597971 +0.246591 0.304473 0.529300 1.215091 1.451169 1.571384 1.868982 1.972518 2.391725 2.695616 +0.169559 0.209107 0.367228 0.505130 1.079358 1.293153 1.736205 2.042985 2.323978 2.564293 +0.329533 0.392210 0.720874 0.936253 1.067646 1.644185 1.991320 2.118407 2.596262 2.701052 +0.201406 0.291786 0.394755 0.617862 1.695417 1.914199 2.049472 2.237494 2.441266 2.568384 +0.115269 0.195387 0.738170 1.042436 1.524313 1.807507 2.173634 2.393265 2.651838 2.824917 +0.173769 0.282805 0.419446 0.776536 0.928220 1.160391 1.958931 2.101699 2.541381 2.732928 +0.209696 0.340593 0.516203 0.794250 1.153989 1.275003 1.570690 1.733317 2.086323 2.795392 +0.110476 0.145162 0.248644 0.465410 1.205115 1.426951 1.838992 2.085791 2.488927 2.779657 +0.223681 0.283712 0.440694 1.041879 1.657659 1.762280 2.000478 2.153137 2.435135 2.637721 +0.178995 0.282691 0.473035 0.740633 0.911089 1.104519 1.288366 1.821180 2.201221 2.508461 +0.443099 0.561309 0.804443 1.033650 1.140498 1.408557 1.973383 2.105087 2.432294 2.654409 +0.222370 0.320892 0.431815 0.774539 1.450421 1.638383 1.817605 2.055496 2.231523 2.414745 +0.488759 0.722119 1.075268 1.294956 1.551912 1.839530 2.130626 2.354921 2.626536 2.737698 +0.209201 0.325492 0.450619 1.020698 1.213389 1.358613 1.538589 1.759768 2.620164 2.791411 +0.254420 0.409271 0.532950 0.933560 1.248401 1.350851 1.728513 1.887503 2.311205 2.707429 +0.039082 0.123291 0.563195 0.857519 1.261207 1.529819 1.850039 2.144420 2.476829 2.755410 +0.127556 0.217058 0.807380 1.043662 1.378203 1.631976 1.940815 2.207962 2.528274 2.764303 +0.214258 0.299923 0.606169 0.768797 1.015893 1.349821 1.669065 1.924581 2.111348 2.418396 +0.364885 0.502482 0.675283 0.930660 1.036461 1.354434 1.834770 1.950661 2.559472 2.726950 +0.221471 0.330609 0.456653 0.686616 1.285861 1.685279 1.842952 2.117269 2.300993 2.591367 +0.347069 0.500335 0.788322 1.022915 1.371254 1.585460 1.855588 2.176902 2.477587 2.720481 +0.281028 0.414603 0.602236 0.792786 0.907330 1.090040 1.687453 2.129718 2.489785 2.634419 +0.363245 0.571116 0.705668 0.861203 1.204113 1.333048 1.544624 2.016192 2.258768 2.434454 +0.215734 0.321274 0.465393 0.666555 1.274668 1.427396 1.670511 2.228318 2.394993 2.624012 +0.270727 0.332361 0.883612 1.283495 1.433436 1.649610 1.838125 2.021889 2.560021 2.698378 +0.175763 0.213621 0.391730 0.566755 0.955973 1.388956 1.878982 2.137460 2.349368 2.478188 +0.257598 0.316184 0.657817 1.118064 1.272143 1.501175 1.689925 1.857456 2.616979 2.735442 +0.227270 0.307771 0.544263 1.030949 1.478367 1.606785 1.851814 2.266798 2.452714 2.629357 +0.255179 0.376313 1.164078 1.383762 1.652706 1.817476 2.014659 2.160928 2.460094 2.623430 +0.274618 0.450301 0.650957 0.842032 1.042329 1.233369 1.641038 1.987714 2.446952 2.597194 +0.337780 0.514835 0.668892 0.911283 1.476046 1.714011 1.887574 2.115985 2.373951 2.499093 +0.172594 0.270224 0.434372 0.864398 1.037663 1.485795 1.748590 2.020761 2.643028 2.800341 +0.270150 0.317310 0.733644 1.342780 1.517768 1.641210 1.845979 1.981779 2.361540 2.595899 +0.160609 0.230103 0.452778 0.853418 1.061340 1.458644 1.711466 1.875295 2.205269 2.709841 +0.302065 0.354507 0.587391 0.684546 0.931120 1.757948 1.902878 2.288464 2.550897 2.656497 +0.142376 0.211224 0.315730 0.534420 1.587988 1.751880 2.118162 2.354064 2.604623 2.786794 +0.386559 0.540492 0.884711 1.083540 1.507785 1.692150 1.931330 2.198611 2.531354 2.678491 +0.323902 0.389328 0.540529 0.671309 0.782921 1.525984 2.046871 2.140001 2.472270 2.566702 +0.227988 0.399979 0.639588 0.791383 1.185694 1.369429 1.655774 2.094051 2.385252 2.754008 +0.140257 0.228630 0.342001 0.596028 1.326401 1.465391 1.823254 1.961877 2.671876 2.831534 +0.121381 0.186129 0.623448 1.000592 1.306405 1.641012 2.056458 2.375989 2.709278 2.848728 +0.247607 0.350532 0.510244 0.883136 1.094021 1.210853 1.639562 2.030725 2.223639 2.416473 +0.357005 0.520431 0.875831 1.062576 1.221746 1.345463 1.623626 2.038524 2.477051 2.698891 +0.179634 0.278991 0.394920 0.736511 1.402026 1.576761 1.774624 1.972434 2.183128 2.757177 +0.203160 0.430851 1.114653 1.371969 1.757116 1.992375 2.261491 2.431952 2.637357 2.752659 +0.138600 0.200975 0.519401 0.724917 1.034246 1.394176 1.722948 1.946633 2.443593 2.716691 +0.298095 0.365805 0.582351 1.086692 1.326009 1.425975 1.844288 2.197476 2.361003 2.521646 +0.224031 0.332426 0.469990 1.001054 1.197837 1.340048 1.959629 2.074407 2.586538 2.799850 +0.217865 0.623928 0.846007 1.056459 1.270022 1.514463 1.916564 2.173644 2.481877 2.731790 +0.216744 0.285870 0.554706 0.993990 1.223763 1.481385 1.841075 2.001157 2.202645 2.554494 +0.183332 0.408012 0.595713 0.854496 1.037244 1.240493 1.858004 2.051789 2.454286 2.641640 +0.185879 0.262800 0.433401 0.963144 1.221951 1.453093 2.083738 2.338219 2.637954 2.802979 +0.376619 0.531366 0.924956 1.260648 1.459226 1.589579 1.913753 2.153929 2.384625 2.568935 +0.276908 0.401698 0.535406 0.725282 0.853962 0.993671 1.784685 2.264235 2.415421 2.743011 +0.392628 0.530015 0.694728 0.898255 1.037465 1.203267 1.847972 2.130377 2.294167 2.519263 +0.221585 0.348013 0.498036 0.715769 1.244234 1.381107 1.612806 2.098989 2.271383 2.656074 +0.181011 0.243672 0.520565 1.273809 1.635579 1.924649 2.152884 2.325189 2.545337 2.704856 +0.212747 0.338170 0.512165 0.698820 1.069232 1.195663 1.594938 1.997384 2.252972 2.771008 +0.239602 0.319299 0.856477 1.177220 1.318502 1.493392 1.741957 2.006496 2.283856 2.495161 +0.228476 0.280840 0.476230 1.203494 1.625636 1.719185 2.032736 2.169601 2.510422 2.699013 +0.286987 0.578563 1.175416 1.489497 1.807057 2.031448 2.224193 2.402210 2.620582 2.786223 +0.284803 0.530975 0.821128 0.972435 1.146598 1.402202 1.828804 2.094299 2.506084 2.720046 +0.245331 0.345077 0.478580 0.845525 1.322977 1.438811 1.722802 2.097265 2.261936 2.441149 +0.170708 0.247004 0.608618 0.775849 1.065513 1.283496 1.723268 1.892396 2.539816 2.717299 +0.208332 0.300056 0.505156 1.253926 1.377427 1.594647 1.754029 2.171773 2.487478 2.685632 +0.171329 0.225179 0.378514 0.577821 1.098665 1.311943 1.526522 1.967713 2.172531 2.346440 +0.239282 0.344225 0.528808 0.666274 1.042444 1.388419 1.857559 2.094835 2.473543 2.649229 +0.198580 0.259051 0.438298 0.705347 1.431453 1.897639 2.046829 2.207600 2.449656 2.599716 +0.337069 0.528000 0.951780 1.180918 1.376423 1.654985 1.971529 2.266927 2.704743 2.847367 +0.284813 0.367338 0.523627 0.691416 0.797885 1.120421 1.819243 2.265148 2.456517 2.588448 +0.269159 0.476818 0.659344 0.899456 1.209541 1.335886 1.627523 1.903299 2.132623 2.655472 +0.119224 0.156658 0.271903 0.418321 1.065297 1.360087 1.644993 1.982627 2.382784 2.755980 +0.282273 0.349303 0.537097 1.066089 1.307982 1.458937 2.037910 2.256912 2.434757 2.578973 +0.201474 0.291056 0.422152 0.616067 1.022184 1.152574 1.449965 2.197085 2.439911 2.635280 +0.324130 0.396121 0.713192 1.073384 1.173029 1.526515 2.037201 2.137280 2.569318 2.702445 +0.199269 0.284170 0.404247 0.697358 1.446027 1.807057 1.954743 2.169169 2.379241 2.545732 +0.348456 0.529109 0.879319 1.101024 1.475230 1.807439 2.081272 2.280127 2.549592 2.702863 +0.184393 0.309059 0.446883 0.786980 0.939533 1.169098 1.804458 1.930933 2.599357 2.810854 +0.372412 0.451942 0.679847 1.075185 1.453546 1.572935 1.797280 2.060904 2.239656 2.413231 +0.162340 0.215690 0.397026 0.885715 1.351665 1.692524 1.923001 2.162159 2.529446 2.710698 +0.174845 0.244687 0.722017 1.058880 1.584480 1.712948 1.914989 2.272779 2.514853 2.721138 +0.180603 0.263970 0.439556 0.797992 1.025300 1.271742 1.843790 2.013992 2.183901 2.609028 +0.275445 0.331708 0.686947 0.880832 1.019790 1.601662 1.815444 1.960055 2.524843 2.635159 +0.246743 0.338623 0.507004 0.744344 0.978588 1.719875 2.149981 2.270511 2.455050 2.609715 +0.511182 0.731278 1.001870 1.154541 1.304543 1.479350 1.855646 2.159073 2.465297 2.619985 +0.159919 0.196942 0.359631 0.506645 0.910908 1.079437 1.605706 2.020672 2.336267 2.675469 +0.400414 0.532831 0.732331 1.013768 1.194337 1.337622 1.760440 1.913653 2.137670 2.495860 +0.198432 0.265271 0.463330 0.715843 1.124005 1.473936 1.785103 1.947760 2.284523 2.402467 +0.251071 0.299335 0.761114 1.358836 1.477322 1.755740 1.974355 2.155204 2.509334 2.610900 +0.168430 0.240238 0.385248 0.642207 0.818665 1.079971 1.497030 1.739210 2.014670 2.480512 +0.403618 0.476427 0.760625 1.119521 1.225260 1.585741 1.910637 2.082695 2.602596 2.728042 +0.270110 0.353552 0.507117 0.982357 1.452637 1.561604 1.831119 2.097015 2.260480 2.506040 +0.409239 0.594796 0.975401 1.298743 1.696566 1.869597 2.021276 2.210722 2.513551 2.654084 +0.264683 0.461411 0.644817 0.860983 1.044619 1.166400 1.802711 2.091425 2.295669 2.754119 +0.469686 0.613125 0.780126 0.980941 1.398148 1.536063 1.747415 2.051727 2.394884 2.516178 +0.186791 0.269819 0.399921 1.138197 1.381467 1.573894 1.960790 2.110781 2.483798 2.628204 +0.258801 0.327749 0.504295 1.197030 1.358461 1.528535 1.792614 1.927747 2.524317 2.681583 +0.161459 0.233374 0.511026 0.740697 0.973203 1.529858 1.845698 2.024509 2.388404 2.769333 +0.338109 0.399145 0.642671 0.750976 0.940491 1.777467 2.157523 2.269354 2.634732 2.724164 +0.180623 0.259965 0.390546 0.612711 1.433871 1.678265 1.843034 2.228297 2.443281 2.647327 +0.247299 0.293271 0.692143 0.919932 1.644451 1.918105 2.097755 2.258082 2.510431 2.625830 +0.149020 0.205904 0.356032 0.602403 0.987977 1.147484 1.771885 1.955289 2.387841 2.798390 +0.232598 0.414291 0.675328 0.818194 1.101627 1.308523 1.519246 1.952980 2.347393 2.695458 +0.176302 0.240703 0.418040 0.744771 1.241784 1.631902 1.803676 1.965041 2.614696 2.812026 +0.147792 0.225066 0.327162 0.749127 1.639390 1.742663 2.031072 2.226257 2.554880 2.737390 +0.153870 0.209078 0.349325 0.617112 0.939783 1.262086 1.603026 1.759135 1.968177 2.111699 +0.401254 0.531884 0.716519 1.042091 1.338740 1.442853 1.814274 2.094864 2.275463 2.451094 +0.257481 0.354612 0.474799 0.889648 1.418879 1.545760 1.780610 2.002306 2.180143 2.532227 +0.145143 0.398917 0.981552 1.314723 1.480195 1.798420 2.069724 2.386944 2.668464 2.802905 +0.178493 0.240401 0.691115 0.837764 1.073179 1.297529 1.642950 2.040266 2.463959 2.622440 +0.283570 0.372001 0.585235 0.956144 1.106750 1.584081 1.860096 2.009870 2.399586 2.562348 +0.173740 0.229082 0.361309 0.554292 1.445623 1.608360 2.083231 2.257294 2.420588 2.616658 +0.324415 0.415954 0.746050 1.011384 1.143615 1.556506 1.921430 2.048417 2.544327 2.700584 +0.214462 0.286094 0.581008 0.805945 1.275261 1.610434 1.794665 1.905601 2.100985 2.530385 +0.406606 0.540199 0.741703 0.841294 1.020646 1.288940 1.697760 1.988139 2.374821 2.589349 +0.202273 0.235653 0.484403 0.754406 1.274678 1.821075 2.241890 2.368887 2.620778 2.800892 +0.270698 0.780374 1.036092 1.204303 1.426576 1.652095 1.944935 2.222209 2.496745 2.678321 +0.229051 0.330732 0.459692 0.687040 0.867860 0.971515 1.553263 2.327103 2.599324 2.733993 +0.260962 0.343168 0.545250 1.036179 1.306217 1.422412 1.660351 2.041101 2.335761 2.495897 +0.171216 0.239743 0.394965 0.588008 1.144698 1.289132 1.673831 1.940258 2.235772 2.782337 +0.195902 0.254449 0.377534 1.406314 1.521423 1.673084 1.866963 2.261663 2.535496 2.688582 +0.150694 0.213444 0.372155 0.787173 1.035226 1.454281 1.699328 1.829446 2.003441 2.525940 +0.232566 0.460472 0.787265 0.996419 1.396693 1.523961 1.855686 2.119370 2.346354 2.515401 +0.233393 0.307066 0.580252 0.812411 1.638408 1.916323 2.050381 2.201478 2.398327 2.532500 +0.654665 1.113987 1.347221 1.518794 1.813315 1.953845 2.210362 2.381661 2.551979 2.660202 +0.223873 0.325731 0.467395 0.921251 1.270288 1.397723 1.734370 2.414313 2.638346 2.800382 +0.310637 0.477608 0.685272 0.996817 1.355825 1.484000 1.704038 2.061930 2.448624 2.565929 +0.148930 0.226761 0.370757 1.019241 1.219213 1.396110 1.661688 1.901830 2.408793 2.697915 +0.229342 0.295527 0.586649 1.059472 1.597702 1.716890 1.937422 2.109084 2.436811 2.674887 +0.192819 0.263035 0.434697 0.673121 1.119753 1.338824 1.909548 2.076183 2.261830 2.387228 +0.320147 0.380189 0.741994 0.844995 1.074712 1.639187 1.762953 2.266267 2.646178 2.721096 +0.174567 0.253745 0.360203 0.504953 1.488396 1.814662 1.955756 2.149395 2.323488 2.584030 +0.263126 0.470251 0.798026 1.161280 1.606556 1.808008 2.130398 2.302959 2.489210 2.752479 +0.231279 0.366009 0.530320 0.804291 0.943863 1.141251 1.962507 2.101760 2.449591 2.815548 +0.172028 0.250238 0.449914 0.861171 1.080449 1.240891 1.585537 1.918091 2.217571 2.722636 +0.131319 0.183681 0.316018 0.523172 0.890644 1.486126 1.758535 1.891187 2.487652 2.765559 +0.165174 0.243169 0.350507 1.016712 1.534247 1.638560 1.932592 2.084107 2.538300 2.689502 +0.262744 0.474699 0.655053 0.795707 1.068818 1.252172 1.418647 1.961010 2.309455 2.536506 +0.359054 0.435831 0.725138 1.118933 1.229842 1.514926 1.879370 2.001037 2.462089 2.652002 +0.218540 0.299734 0.601107 0.823625 1.269799 1.620287 1.839893 1.976756 2.375450 2.640668 +0.487484 0.730967 1.052266 1.258969 1.526405 1.802696 2.229099 2.451538 2.684818 2.774190 +0.235780 0.364477 0.520691 0.749469 0.950595 1.159410 1.423255 1.544612 2.361393 2.766014 +0.366160 0.476136 0.652510 1.062481 1.309788 1.418863 1.784871 1.987495 2.189248 2.558080 +0.184696 0.253223 0.471758 0.830299 1.272428 1.483910 1.761955 2.136740 2.416390 2.620731 +0.128256 0.217552 0.752532 1.013345 1.185988 1.415101 1.811830 2.211505 2.607414 2.789321 +0.247330 0.328294 0.701060 0.927525 1.109801 1.291869 1.638584 1.875516 2.227907 2.417348 +0.261841 0.503729 0.732366 0.870192 1.033798 1.299712 1.693809 2.023705 2.463903 2.789299 +0.165555 0.219912 0.358917 0.505900 1.230885 1.663232 1.852393 2.028502 2.286248 2.725340 +0.426544 0.643468 0.917679 1.196829 1.471597 1.648363 1.933059 2.151933 2.533829 2.705743 +0.308359 0.416322 0.591830 0.808745 0.946905 1.230266 1.815498 2.281895 2.520403 2.631259 +0.269965 0.447323 0.574488 0.763324 1.256417 1.405168 1.571648 1.980676 2.220782 2.442545 +0.188326 0.280970 0.408039 0.646742 1.320810 1.446061 1.615924 2.148422 2.351742 2.514250 +0.241655 0.365356 0.810170 1.309700 1.669576 1.812447 2.014631 2.236122 2.442170 2.609315 +0.191747 0.289189 0.450664 0.748517 0.915409 1.168139 1.584199 1.750548 2.260120 2.447778 +0.215480 0.278055 0.768309 1.041609 1.391676 1.605855 1.766698 1.876725 2.528928 2.706006 +0.216771 0.298936 0.710997 0.862001 1.342336 1.590245 1.886295 2.097920 2.415093 2.592546 +0.359220 0.566823 0.939326 1.372126 1.545352 1.699671 2.041310 2.205011 2.518317 2.710314 +0.305907 0.442295 0.613007 0.776603 0.914320 1.099675 1.615712 1.826869 2.359635 2.622631 +0.323177 0.497481 0.632094 0.852217 1.431198 1.600546 1.791940 2.143530 2.380021 2.560286 +0.276909 0.420019 0.563912 1.000971 1.135252 1.388079 1.711802 1.918572 2.573328 2.752989 +0.353490 0.388981 0.807777 1.276863 1.382826 1.606736 1.810843 1.979129 2.631848 2.733152 +0.211471 0.306166 0.424434 0.581123 0.710913 1.547934 2.010370 2.138366 2.380508 2.503481 +0.225924 0.333197 0.488381 0.801446 1.090937 1.638206 1.799647 2.390310 2.652313 2.790138 +0.171504 0.249271 0.358286 0.870885 1.550123 1.667881 2.054589 2.231743 2.439091 2.602023 +0.165599 0.227318 0.460922 1.107714 1.477735 1.814994 2.062885 2.255887 2.546566 2.715347 +0.204992 0.345256 0.473494 0.712728 0.805809 1.312492 1.893635 2.009686 2.341092 2.479636 +0.241898 0.390228 0.537134 0.715035 1.312338 1.499876 1.662491 2.135780 2.352112 2.532228 +0.163569 0.301194 0.427433 0.764441 1.375596 1.484079 1.850824 1.989487 2.494381 2.667698 +0.185986 0.271128 0.421812 1.063503 1.222027 1.628289 1.811308 2.167184 2.682964 2.795197 +0.202601 0.379588 0.533353 0.730653 1.060008 1.189413 1.598490 1.835597 2.061862 2.426341 +0.381195 0.485776 0.727063 1.085074 1.215649 1.412868 1.615482 1.828196 2.539184 2.686523 +0.196130 0.286997 0.409907 0.696364 1.424577 1.699356 1.891753 2.153448 2.327269 2.685103 +0.217874 0.396132 0.938681 1.246697 1.661963 1.931349 2.246916 2.421796 2.619892 2.750931 +0.145642 0.216508 0.413198 0.862759 1.057682 1.322682 1.673351 1.828806 2.347789 2.651186 +0.252166 0.353210 0.523268 0.998504 1.176163 1.345135 1.984750 2.128958 2.373533 2.721309 +0.207926 0.318108 0.470343 0.848345 0.989299 1.405273 1.967910 2.101386 2.512180 2.676499 +0.305162 0.559986 0.771585 0.960172 1.334408 1.717417 1.924182 2.084417 2.601968 2.796124 +0.215239 0.293295 0.505385 0.962671 1.240775 1.392460 1.797329 1.965379 2.131247 2.276248 +0.252164 0.460717 0.585238 0.895100 1.077276 1.245603 1.770113 1.919629 2.388482 2.774345 +0.171691 0.214222 0.361048 0.500619 0.905993 1.365660 2.191797 2.291635 2.536887 2.788810 +0.210536 0.585917 1.067844 1.305357 1.534407 1.728603 1.950964 2.160461 2.474553 2.655915 +0.169262 0.231674 0.372121 0.532093 0.775314 1.210871 1.829565 2.081870 2.370289 2.704223 +0.343950 0.448128 0.628833 0.913957 1.088899 1.224316 1.766842 2.099926 2.246679 2.400841 +0.241643 0.386851 0.578033 0.893447 1.284732 1.404909 1.839518 2.125416 2.327160 2.739690 +0.241059 0.287428 0.601200 1.273580 1.460278 1.653802 2.095665 2.226476 2.507632 2.651598 +0.212479 0.430242 0.578263 0.750884 0.984798 1.103297 1.564720 1.845357 2.044045 2.707564 +0.267240 0.357278 0.901382 1.173429 1.387845 1.739763 1.960853 2.173315 2.408387 2.570937 +0.216978 0.306711 0.423920 0.791397 1.547660 1.881522 2.025421 2.184747 2.389726 2.510855 +0.309853 0.505477 1.137673 1.452808 1.660808 1.914525 2.084337 2.308435 2.638463 2.772736 +0.301921 0.420539 0.593933 0.887576 1.158301 1.268991 1.788041 2.156468 2.316421 2.507218 +0.293230 0.474574 0.623415 0.798513 1.266075 1.425523 1.764734 1.994016 2.181652 2.456787 +0.267189 0.365075 0.696711 0.927891 1.096450 1.472164 1.765266 1.937224 2.223753 2.655092 +0.238720 0.370663 0.617866 1.246955 1.365777 1.650640 1.856445 2.306366 2.616822 2.765237 +0.175180 0.233649 0.388873 0.625509 1.137464 1.364059 1.780788 1.978889 2.142278 2.269743 +0.363510 0.421032 0.668364 0.762955 0.998948 1.715897 1.877803 2.064237 2.529901 2.608567 +0.207131 0.288224 0.537847 0.889921 1.241448 1.796637 1.982317 2.231362 2.514249 2.666169 +0.311071 0.486542 0.911402 1.324355 1.500183 1.670614 2.142536 2.330931 2.596184 2.778564 +0.286136 0.386970 0.584375 0.911705 1.134588 1.317656 1.852739 2.283740 2.498365 2.622864 +0.253233 0.419082 0.572357 0.778424 1.126703 1.277532 1.807391 2.017696 2.220121 2.576306 +0.119841 0.163781 0.296364 0.661342 1.063342 1.241590 1.856804 2.104475 2.497328 2.762449 +0.134955 0.201314 0.403983 0.934711 1.360477 1.718449 2.065183 2.278684 2.574632 2.753186 +0.187681 0.272074 0.453358 0.682207 1.079560 1.206376 1.499740 2.043148 2.242754 2.665815 +0.313258 0.412019 0.658075 0.828689 0.973583 1.514446 1.981071 2.102741 2.535037 2.681357 +0.255030 0.322348 0.627488 0.839253 1.410591 1.810002 2.038784 2.181294 2.416832 2.562402 +0.419919 0.625767 0.997973 1.218385 1.544616 1.788193 2.193417 2.384323 2.580200 2.698287 +0.144698 0.204991 0.382026 0.623303 0.874762 1.289145 1.707320 1.863261 2.458684 2.750055 +0.348116 0.419496 0.704420 1.093503 1.227121 1.494841 1.778803 1.913492 2.247296 2.428664 +0.150045 0.246799 0.376978 0.783403 1.269598 1.422794 1.903455 2.035588 2.514973 2.759883 +0.105122 0.206614 0.753484 1.038977 1.400140 1.658373 2.030750 2.283051 2.654021 2.837336 +0.192365 0.288692 0.447554 0.818792 0.961011 1.398186 1.770980 1.943311 2.350650 2.500051 +0.262128 0.381361 0.574890 0.709707 1.071672 1.453038 1.732793 1.979241 2.422853 2.645439 +0.182137 0.236372 0.375437 0.738739 1.319942 1.813603 1.942481 2.136125 2.304536 2.660541 +0.388048 0.531674 0.948328 1.154568 1.307573 1.434685 1.768235 2.048136 2.364776 2.585037 +0.213588 0.288434 0.462998 0.598306 0.773371 0.915658 1.452520 2.086025 2.523003 2.722037 +0.255467 0.334344 0.621250 0.810402 0.995432 1.466371 1.709488 1.890365 2.052513 2.247982 +0.202649 0.282992 0.450372 0.652595 1.271305 1.607863 1.769708 1.985229 2.230577 2.380831 +0.255806 0.325628 0.668776 1.230304 1.373533 1.702388 1.962730 2.144556 2.518005 2.640112 +0.164126 0.217024 0.367572 0.604779 0.787116 1.194139 1.683264 1.826517 2.301871 2.524861 +0.374711 0.458954 0.726536 0.920865 1.045916 1.511231 1.712666 1.895532 2.601724 2.708894 +0.321014 0.460345 0.639594 1.017667 1.508099 1.631146 1.864246 2.140150 2.327445 2.508909 +0.451810 0.719234 1.150765 1.385625 1.620547 1.892342 2.068707 2.263104 2.625298 2.740266 +0.317844 0.411108 0.550802 0.761160 0.870205 1.038480 1.695720 2.112903 2.292249 2.451544 +0.321858 0.548379 0.720393 0.955644 1.233322 1.359795 1.685327 1.923628 2.307181 2.544584 +0.211797 0.292996 0.437036 1.171159 1.397378 1.525798 1.701395 1.861517 2.572521 2.757919 +0.334603 0.405956 0.767677 1.215768 1.335601 1.658739 1.989520 2.108465 2.602700 2.719250 +0.236812 0.348424 0.519218 0.665697 1.102403 1.611533 1.819999 2.115185 2.332044 2.604171 +0.212181 0.308266 0.480795 0.705382 0.828843 1.420354 1.886330 2.032387 2.621328 2.767098 +0.156168 0.242178 0.348609 0.550072 1.486404 1.641030 1.904334 2.091753 2.439156 2.809664 +0.232081 0.327237 0.817249 1.194162 1.571594 1.731682 1.910994 2.090434 2.488066 2.694976 +0.166025 0.252998 0.441946 0.686509 0.905928 1.524321 1.747034 1.950457 2.619697 2.805258 +0.196816 0.324035 0.613887 0.796124 1.033469 1.198765 1.570531 2.015231 2.414398 2.745220 +0.152873 0.238362 0.348769 0.790622 1.413327 1.522987 1.899666 2.041945 2.648276 2.825752 +0.238929 0.311579 0.412073 0.915401 1.512444 1.940985 2.178055 2.302141 2.517257 2.635463 +0.160234 0.194261 0.347515 0.460654 0.859252 1.041440 1.658005 1.765106 2.252543 2.312052 +0.391446 0.575762 0.767956 0.913604 1.304424 1.440779 1.667960 1.962669 2.446664 2.573637 +0.213295 0.338515 0.465366 0.911020 1.312069 1.413848 1.864947 2.045811 2.354224 2.763667 +0.170870 0.556857 1.036355 1.381019 1.682662 1.999979 2.319783 2.526350 2.739001 2.850764 +0.208142 0.323528 0.474225 0.911543 1.048694 1.258201 1.966595 2.078676 2.553969 2.814829 +0.162972 0.229629 0.731192 0.902973 1.246076 1.372954 1.693139 2.110582 2.362875 2.555643 +0.197223 0.291057 0.436718 0.707631 1.251503 1.421382 1.926786 2.108784 2.413585 2.596412 +0.188400 0.289822 0.797989 1.142133 1.323120 1.715797 2.074975 2.335066 2.566622 2.712846 +0.176052 0.240463 0.486022 0.736587 0.983507 1.654478 1.892603 2.036521 2.205899 2.540522 +0.285807 0.420951 0.578219 0.937462 1.172738 1.315248 1.698845 1.846953 2.333613 2.500319 +0.191178 0.264476 0.384535 0.632084 1.446016 1.916538 2.114759 2.257365 2.532359 2.669854 +0.585958 0.712547 0.995175 1.345358 1.519221 1.715374 1.913837 2.069254 2.514199 2.672046 +0.232352 0.335589 0.447674 0.661655 0.840293 1.102372 2.111319 2.297768 2.505132 2.794479 +0.293351 0.391184 0.614053 0.997235 1.204180 1.322845 1.746085 2.070938 2.259359 2.492199 +0.128784 0.193380 0.374338 0.847941 1.107813 1.396176 1.796836 1.928700 2.389952 2.702928 +0.187671 0.251167 0.419138 1.154089 1.596401 1.689187 1.941996 2.092773 2.621931 2.795923 +0.148570 0.200662 0.344258 0.538968 0.866249 1.341751 1.759051 1.890255 2.225276 2.769903 +0.345597 0.416970 0.657718 1.108569 1.439934 1.549124 1.811931 2.165143 2.359862 2.480281 +0.260394 0.347444 0.453068 0.867942 1.515797 1.830215 1.974617 2.135238 2.518564 2.622302 +0.467387 0.718460 1.257405 1.516226 1.785886 1.982028 2.277442 2.407989 2.575877 2.697560 +0.254025 0.396915 0.711272 0.826708 1.079490 1.303882 1.532614 2.101023 2.580896 2.726410 +0.251349 0.458227 0.691728 0.853294 1.181701 1.324576 1.553722 2.121741 2.324860 2.537399 +0.193070 0.295330 0.434005 1.028433 1.180760 1.492311 1.774884 1.958905 2.378250 2.514336 +0.328295 0.438707 0.672483 1.098796 1.409689 1.525062 1.957988 2.202692 2.417235 2.626557 +0.171589 0.215360 0.396416 0.549523 1.010817 1.564392 1.776805 2.010598 2.334140 2.489964 +0.318782 0.372964 0.715257 0.808908 1.049817 1.858174 2.008814 2.244447 2.552397 2.638023 +0.201432 0.265508 0.443842 0.655062 1.463954 1.780676 1.989105 2.317647 2.504044 2.729015 +0.089299 0.221502 0.866390 1.161581 1.386624 1.681219 2.037751 2.306655 2.683398 2.842046 +0.212127 0.340083 0.489712 0.702958 0.879220 1.069546 1.931755 2.304789 2.539222 2.833730 +0.328502 0.460793 0.574149 0.923510 1.262431 1.349319 1.540115 1.646239 1.968666 2.558808 +0.151688 0.205453 0.364147 0.726598 1.290329 1.608244 1.900602 2.132843 2.473238 2.714681 +0.185087 0.268618 0.380471 0.858380 1.535920 1.659732 1.871001 2.060741 2.281531 2.743722 +0.257576 0.375609 0.522074 0.806014 0.988781 1.118512 1.619900 2.008108 2.189450 2.503981 +0.400530 0.492365 0.729967 0.986855 1.095728 1.599909 1.935703 2.057853 2.435587 2.582604 +0.223967 0.308358 0.436977 0.810278 1.375371 1.715667 1.876660 2.086799 2.333392 2.482046 +0.356889 0.697785 1.003210 1.181500 1.520050 1.769174 2.060990 2.297507 2.609041 2.761196 +0.157986 0.286402 0.432170 0.759718 1.081482 1.206946 1.688203 1.857653 2.667619 2.834603 +0.196232 0.271155 0.616200 0.987195 1.265761 1.503484 1.745037 1.946600 2.389443 2.562468 +0.150612 0.207932 0.531767 0.924718 1.224167 1.532206 1.868861 2.129974 2.479660 2.745102 +0.159516 0.244552 0.677711 0.957418 1.266300 1.638493 1.929433 2.212544 2.525881 2.712593 +0.311860 0.375573 0.609251 0.741478 0.874235 1.502532 1.759234 1.910133 2.346160 2.464214 +0.272687 0.495052 0.602981 0.936595 1.218033 1.659652 1.783798 2.226628 2.673580 2.789721 +0.182994 0.269489 0.387738 0.559582 1.343891 1.727891 1.917480 2.131703 2.353147 2.525604 +0.308577 0.475904 0.797573 1.025973 1.477364 1.632200 1.868066 2.187647 2.448313 2.609309 +0.206491 0.281366 0.496579 0.711998 0.842942 1.042724 1.626715 2.075674 2.411838 2.577868 +0.326421 0.517351 0.715080 0.911851 1.128611 1.259596 1.539759 1.960615 2.508231 2.630330 +0.225691 0.354477 0.473958 0.715802 1.385094 1.590187 1.774163 2.045280 2.231611 2.620722 +0.243650 0.282149 0.801163 1.454069 1.614695 1.739741 1.936677 2.098900 2.621205 2.730598 +0.175768 0.236613 0.389409 0.747034 0.946387 1.205905 1.739280 1.989798 2.245012 2.388323 +0.387506 0.464495 0.740570 1.128342 1.279681 1.451771 1.809069 1.941649 2.324383 2.652406 +0.231774 0.321631 0.420712 0.846725 1.477615 1.662880 1.835880 2.220722 2.418706 2.624548 +0.339377 0.589871 1.313110 1.506577 1.748224 1.947324 2.102041 2.254806 2.543830 2.680043 +0.341587 0.433858 0.661863 0.821397 0.950863 1.418003 1.784815 1.903400 2.385908 2.575412 +0.345179 0.447774 0.612195 0.945135 1.419677 1.592743 1.773414 2.040871 2.324811 2.437686 +0.181279 0.307819 0.435997 0.934515 1.100027 1.302288 1.693949 1.895047 2.700574 2.825382 +0.310037 0.368350 0.622802 1.178640 1.411438 1.526484 1.919150 2.065079 2.254912 2.589937 +0.150978 0.212352 0.348668 0.573651 1.039486 1.590007 1.846476 1.963984 2.148357 2.662487 +0.277951 0.349703 0.550843 0.708320 0.838864 1.573740 1.810453 1.992371 2.532412 2.642545 +0.153422 0.252689 0.342559 0.686894 1.497196 1.638310 1.961921 2.130271 2.557903 2.742772 +0.279249 0.447383 0.763867 1.059905 1.545382 1.724231 2.031986 2.292812 2.552588 2.796233 +0.230577 0.389164 0.539408 0.761297 0.908015 1.337558 1.872590 2.004078 2.333966 2.727901 +0.232875 0.346443 0.540354 0.678135 1.101040 1.382052 1.587740 2.186049 2.411254 2.607361 +0.178843 0.269153 0.416180 0.638286 1.259337 1.389112 1.680672 1.869557 2.418798 2.781921 +0.238712 0.372837 0.675624 1.027319 1.339343 1.669807 2.074360 2.351022 2.663150 2.815245 +0.215603 0.308405 0.496032 0.940314 1.090508 1.308705 1.583747 1.902325 2.209688 2.576931 +0.291384 0.348946 0.780234 1.202297 1.290327 1.444813 1.575215 1.952612 2.399593 2.483613 +0.198791 0.307267 0.456507 0.669854 1.275490 1.409566 1.731928 2.093564 2.326604 2.772666 +0.166723 0.274518 1.057461 1.415490 1.716962 1.941408 2.139410 2.271877 2.554685 2.755174 +0.179844 0.282631 0.449297 0.722971 0.854062 1.439226 1.833271 2.030343 2.411399 2.580818 +0.194891 0.247057 0.501829 1.004986 1.304934 1.451918 1.799457 2.025853 2.311832 2.422165 +0.192373 0.297404 0.420858 0.940309 1.303418 1.426055 1.949700 2.077238 2.623849 2.795647 +0.284285 0.555560 0.869980 1.055893 1.232747 1.442851 1.823935 2.260258 2.608541 2.799256 +0.182395 0.248334 0.473858 1.064734 1.236328 1.480815 1.718550 1.883271 2.073356 2.512622 +0.293574 0.445666 0.581331 0.774876 0.860972 1.080798 1.894962 2.036530 2.546161 2.753034 +0.164780 0.231139 0.397045 0.799136 1.184762 1.560887 2.082481 2.246203 2.538883 2.722312 +0.427982 0.603539 0.920429 1.129159 1.650391 1.805433 1.997586 2.263608 2.512703 2.626448 +0.168043 0.256064 0.384473 0.655220 0.888834 1.046199 1.879431 2.027056 2.416638 2.713319 +0.426266 0.599810 0.770098 0.938960 1.085997 1.239035 1.780899 2.098691 2.240555 2.451170 +0.206361 0.331236 0.460417 0.809533 1.319919 1.432077 1.699325 1.907851 2.185584 2.791362 +0.172066 0.257009 0.693635 1.290430 1.502260 1.882174 2.058034 2.285835 2.654385 2.780637 +0.170469 0.242710 0.420771 0.673196 1.013631 1.168518 1.734302 2.076408 2.284278 2.777254 +0.231524 0.384268 0.762288 1.075716 1.340044 1.570221 1.844109 2.087904 2.435480 2.609095 +0.234196 0.299491 0.501062 1.074183 1.591896 1.874452 2.075105 2.288231 2.499325 2.625494 +0.469375 0.772069 1.143891 1.321644 1.809933 2.060553 2.352686 2.509836 2.660967 2.746296 +0.267541 0.509192 0.697162 0.881682 1.154246 1.287919 1.732950 2.170277 2.373112 2.701116 +0.225002 0.296925 0.521071 0.868722 1.247262 1.605607 1.862301 1.995077 2.132673 2.303312 +0.182154 0.268818 0.650902 0.829595 1.340290 1.518522 1.678145 2.062000 2.476058 2.618836 +0.262094 0.315377 0.554545 1.249325 1.471511 1.602479 1.859154 1.986339 2.555494 2.716803 +0.159937 0.221544 0.379613 0.703404 1.009260 1.336589 1.634712 1.832112 2.318601 2.492376 +0.317307 0.445696 0.644479 0.865391 1.006145 1.475121 1.860039 1.994490 2.375194 2.696675 +0.243257 0.313667 0.455515 0.804455 1.138675 1.990813 2.199166 2.317604 2.528196 2.655319 +0.149876 0.523035 0.850884 1.130052 1.422386 1.709616 2.052423 2.309997 2.639482 2.816247 +0.295517 0.381331 0.579620 0.758901 0.871645 1.328267 1.986843 2.119635 2.549100 2.680632 +0.291632 0.485587 0.631619 0.928421 1.214008 1.324041 1.814157 2.030748 2.252379 2.749354 +0.139746 0.195222 0.343435 0.703664 1.118059 1.352517 1.752608 1.877596 2.297202 2.717509 +0.243712 0.353375 0.585060 0.914994 1.377929 1.519246 1.980348 2.132954 2.489440 2.702636 +0.176444 0.255300 0.420605 0.747448 1.153758 1.299601 1.683980 2.102983 2.463231 2.667324 +0.252495 0.390591 0.697066 0.966926 1.231424 1.414479 1.867378 2.243706 2.495192 2.656606 +0.272420 0.381655 0.551517 0.888825 1.590308 1.808189 1.943240 2.138959 2.358917 2.487502 +0.336178 0.471630 0.935669 1.201733 1.678329 1.870851 2.098930 2.268758 2.467556 2.613989 +0.201767 0.332879 0.530137 0.745363 1.051345 1.174747 1.706266 2.049544 2.461842 2.799073 +0.224306 0.303901 0.510428 1.086097 1.267920 1.446573 1.785392 1.911767 2.289610 2.700286 +0.131135 0.171778 0.323877 0.821611 1.226519 1.537322 1.889645 2.169879 2.520932 2.772178 +0.212962 0.347455 0.744136 0.964332 1.426998 1.636084 1.937573 2.189447 2.476377 2.657238 +0.221564 0.298344 0.590780 0.774362 1.002528 1.237108 1.762739 1.946722 2.225939 2.371709 +0.300082 0.409111 0.600009 0.784231 0.905421 1.449797 1.878545 2.002657 2.618940 2.779774 +0.177168 0.244397 0.382973 0.547832 0.958732 1.796741 2.037031 2.198241 2.416774 2.606982 +0.445089 0.691608 0.911651 1.027834 1.215634 1.498612 2.011028 2.296914 2.571657 2.730890 +0.218890 0.332216 0.485543 0.669862 0.827655 0.946060 1.655213 2.081780 2.297490 2.781759 +0.264561 0.330768 0.698979 0.882675 1.036048 1.373216 1.608206 1.801189 2.021468 2.470223 +0.198417 0.232211 0.502648 0.724700 1.196144 1.304503 1.692944 1.862228 2.327527 2.429571 +0.240112 0.278797 0.513980 1.374924 1.647698 1.742378 1.988501 2.137277 2.329969 2.585200 +0.216630 0.297516 0.454364 0.700613 0.893785 1.036923 1.565511 2.032201 2.301512 2.463679 +0.308267 0.357421 0.811138 1.127420 1.244275 1.651427 1.813657 2.045151 2.637104 2.726842 +0.242030 0.328382 0.452907 0.861731 1.555327 1.743950 1.896242 2.084827 2.255121 2.454955 +0.405487 0.653274 1.000615 1.215980 1.553100 1.809940 2.090490 2.237915 2.442893 2.589896 +0.258975 0.421106 0.596341 0.793521 1.016877 1.148382 1.710733 2.132131 2.329411 2.755008 +0.383770 0.618549 0.792683 0.970281 1.353980 1.492209 1.740595 2.034232 2.262266 2.418759 +0.182576 0.276855 0.395058 1.006542 1.378696 1.494813 1.790120 1.929259 2.427587 2.564728 +0.262944 0.336362 0.560480 1.134456 1.298593 1.499501 1.953395 2.050099 2.524027 2.712280 +0.128134 0.176378 0.373760 0.758708 1.132934 1.485273 1.930693 2.068716 2.343529 2.773154 +0.209614 0.299558 0.469136 0.796651 0.955701 1.572224 2.012335 2.290736 2.580444 2.723601 +0.205230 0.307160 0.423168 0.638468 1.376104 1.735940 1.925713 2.112538 2.470319 2.600522 +0.249605 0.312259 0.801138 1.134882 1.687789 1.883222 2.049696 2.223042 2.454133 2.577341 +0.150236 0.180308 0.350515 0.500915 0.804675 1.506103 1.712024 2.023875 2.343152 2.636887 +0.294328 0.430367 0.587290 0.910719 1.184482 1.304216 1.581107 2.004270 2.395137 2.534772 +0.185620 0.281137 0.544021 0.818067 1.320581 1.540046 1.863117 2.127465 2.523995 2.737758 +0.154431 0.208321 0.340239 1.022588 1.552229 1.696583 2.198386 2.394862 2.607880 2.801047 +0.172397 0.232300 0.478592 0.699642 0.957173 1.484486 1.847798 1.985936 2.145557 2.327115 +0.511765 0.721492 0.860517 1.030820 1.340681 1.459390 1.823745 2.108810 2.406735 2.558400 +0.281714 0.392430 0.578702 0.891995 1.494831 1.661309 1.877927 2.097376 2.291857 2.619590 +0.326495 0.586450 0.954506 1.197200 1.519600 1.893887 2.319365 2.533775 2.736139 2.847582 +0.106638 0.178766 0.680283 0.829053 0.990716 1.241479 1.789242 2.154750 2.597141 2.799901 +0.294220 0.377984 0.793384 0.971352 1.172200 1.572398 1.804897 2.028760 2.264042 2.492483 +0.171726 0.263446 0.395475 0.621988 1.267402 1.408927 1.898373 2.102150 2.426709 2.776510 +0.303342 0.364222 0.792880 1.046061 1.184958 1.568551 1.760719 2.139470 2.565548 2.655674 +0.192848 0.257653 0.414826 0.791829 1.260674 1.636533 1.874636 2.009896 2.202175 2.572052 +0.341824 0.417968 0.655810 1.026514 1.158607 1.346654 1.798696 1.911077 2.526891 2.702043 +0.176931 0.234845 0.363167 0.522327 1.394457 1.894472 2.109195 2.282625 2.684080 2.823357 +0.433185 0.607432 0.929790 1.250808 1.472755 1.627281 2.014445 2.256366 2.466320 2.630010 +0.211267 0.313559 0.402576 0.554601 0.723386 0.871912 1.614736 2.390825 2.565792 2.757341 +0.307409 0.394557 0.612848 0.987028 1.191241 1.356915 1.954914 2.160787 2.345073 2.569786 +0.184320 0.254786 0.425592 0.782972 1.223405 1.413726 1.796288 1.997325 2.163509 2.505424 +0.183175 0.235186 0.358817 1.447766 1.601221 1.798948 2.134861 2.384961 2.598175 2.763819 +0.168505 0.236625 0.392319 0.651410 0.887019 1.463266 1.720871 1.858740 2.054516 2.697266 +0.250944 0.424982 0.901118 1.085636 1.247720 1.422572 1.835136 2.141276 2.468994 2.643082 +0.238593 0.326384 0.595703 0.813678 1.506809 1.745897 1.890343 2.252317 2.461518 2.634033 +0.519767 0.866690 1.252206 1.413883 1.854974 2.027801 2.281339 2.431268 2.597701 2.697588 +0.246522 0.333214 0.509160 1.154104 1.290713 1.443135 1.588080 2.324589 2.609196 2.797383 +0.275391 0.402140 0.584019 0.959905 1.333760 1.460912 1.827046 2.003725 2.436316 2.639286 +0.150522 0.212041 0.531410 1.050416 1.371279 1.580851 1.792845 1.995166 2.294940 2.614257 +0.278576 0.329548 0.667074 1.214075 1.560713 1.652347 1.873746 2.021113 2.338907 2.664300 +0.167863 0.226536 0.396757 0.597846 1.051873 1.627164 1.958256 2.062767 2.191380 2.432992 +0.348666 0.407399 0.764654 0.897788 1.054142 1.537316 1.689159 2.089782 2.640438 2.728359 +0.171013 0.243044 0.356522 0.490258 1.359997 1.815025 1.981484 2.206887 2.431276 2.636843 +0.153522 0.396506 0.847453 1.284564 1.488783 1.804268 2.273812 2.522892 2.761823 2.876763 +0.171880 0.287093 0.496257 0.755483 0.937035 1.107577 1.897834 2.108945 2.413154 2.660532 +0.227201 0.370270 0.530492 0.844519 1.174595 1.296373 1.718215 1.907170 2.166590 2.484352 +0.149331 0.183437 0.326162 0.488638 1.002939 1.377342 1.867235 2.108546 2.503408 2.786207 +0.173193 0.266920 0.374287 0.945263 1.452229 1.556781 1.952554 2.099249 2.609846 2.766646 +0.239351 0.413047 0.605130 0.721419 1.069987 1.322991 1.500901 2.100747 2.338950 2.541476 +0.314543 0.427272 0.646059 0.977969 1.105555 1.443778 1.949196 2.065960 2.472020 2.663676 +0.306321 0.430910 0.620780 0.848250 1.324991 1.683308 1.879595 2.069502 2.344394 2.454817 +0.575586 0.847570 1.152532 1.423138 1.684099 1.969479 2.240224 2.428206 2.665523 2.760463 +0.350078 0.450964 0.688480 0.893082 1.035498 1.299152 1.508386 1.683054 2.499108 2.655705 +0.471148 0.571022 0.813000 1.058092 1.196537 1.491163 1.831861 1.956586 2.408824 2.619234 +0.171564 0.273430 0.738762 0.920791 1.183470 1.349450 1.890642 2.110332 2.341546 2.722247 +0.304218 0.440526 0.720869 0.956392 1.296296 1.536912 1.798491 2.129943 2.470933 2.711029 +0.208585 0.283203 0.713164 0.859752 1.075018 1.320232 1.749308 2.009905 2.348887 2.539152 +0.264896 0.431760 0.680060 0.840630 1.005182 1.200071 1.639044 1.877513 2.579690 2.697610 +0.171107 0.229447 0.393985 0.553918 1.187522 1.583641 1.829031 2.101558 2.437468 2.610652 +0.301877 0.445169 0.968634 1.180258 1.415638 1.646629 1.953737 2.185760 2.483000 2.660034 +0.267959 0.387016 0.557674 0.755435 1.057021 1.189525 1.629581 2.283668 2.558077 2.683573 +0.295624 0.500278 0.696740 0.866240 1.099396 1.243691 1.449224 1.818732 2.156886 2.467455 +0.170796 0.218503 0.382819 0.541542 1.174040 1.482773 1.670539 2.124357 2.342810 2.501870 +0.218617 0.408868 1.012231 1.352073 1.571864 1.753294 1.946988 2.192205 2.547198 2.762737 +0.210391 0.288701 0.475984 0.690054 0.862131 1.282021 1.715676 1.959037 2.326017 2.522621 +0.325276 0.411256 0.607216 1.024267 1.146043 1.558528 1.827982 1.956178 2.547484 2.688731 +0.238733 0.302603 0.642540 0.860406 1.382580 1.700239 1.853297 2.013606 2.539089 2.671372 +0.251458 0.654734 1.143938 1.335095 1.596794 1.905380 2.171292 2.352561 2.549262 2.709208 +0.223912 0.427965 0.590260 0.805826 0.965451 1.148957 1.600066 1.767416 2.589376 2.776857 +0.231425 0.413483 0.638906 0.882586 1.449203 1.579707 1.859705 2.112105 2.296389 2.474881 +0.175747 0.273698 0.397808 1.029989 1.240179 1.441564 1.858169 1.988257 2.524452 2.677832 +0.252558 0.363162 0.974161 1.201176 1.356803 1.559352 1.792123 2.089122 2.459025 2.636551 +0.173802 0.246852 0.480971 0.700611 0.891748 1.561958 1.823062 1.996221 2.202269 2.680874 +0.156459 0.259855 0.526047 0.742605 0.958340 1.426445 1.896392 2.280343 2.683239 2.835947 +0.142921 0.202788 0.307634 0.548822 1.431571 1.572303 1.984312 2.212223 2.639484 2.831017 +0.229329 0.366711 0.836992 1.135952 1.499118 1.677865 2.047730 2.243207 2.553663 2.706012 +0.263443 0.342499 0.477117 0.660406 0.787355 1.288964 1.851275 2.320384 2.518393 2.638003 +0.212725 0.343388 0.492706 0.738769 1.226813 1.353718 1.598551 1.965475 2.110981 2.504476 +0.160187 0.263690 0.362021 0.839661 1.356922 1.457150 1.769821 1.888317 2.678737 2.835838 +0.133248 0.196263 0.549077 0.905288 1.338934 1.580432 1.965798 2.247794 2.613434 2.821093 +0.239176 0.349470 0.587777 0.780748 0.980439 1.200381 1.437420 1.725392 2.240059 2.450024 +0.360450 0.512584 0.678578 0.889177 1.014277 1.240800 1.650560 1.806004 2.370762 2.627783 +0.207946 0.300178 0.419389 0.758257 1.373065 1.509366 1.798146 2.166289 2.334602 2.736094 +0.113082 0.204024 0.875013 1.243194 1.622958 1.886831 2.142636 2.338959 2.579123 2.767029 +0.204623 0.309091 0.441874 0.966890 1.231677 1.366805 1.580086 1.745147 2.374530 2.638283 +0.306051 0.414526 0.628201 1.074722 1.259864 1.439108 1.821360 1.964678 2.394043 2.575006 +0.222328 0.323754 0.568002 0.970977 1.120920 1.580969 1.759222 2.139577 2.608362 2.763997 +0.183300 0.372397 0.683079 1.022379 1.330137 1.624137 1.951990 2.252475 2.602804 2.814906 +0.178777 0.259371 0.411261 0.873219 1.178107 1.319602 1.632433 1.885996 2.112106 2.286708 +0.195172 0.346190 0.497154 0.755965 1.230183 1.347062 1.685780 1.867553 2.329508 2.752389 +0.195738 0.263473 0.396445 0.598238 1.275429 1.903330 2.156978 2.286654 2.571493 2.728101 +0.369955 0.545605 1.042124 1.189996 1.350332 1.546670 1.867983 2.111160 2.467785 2.643118 +0.120478 0.160718 0.275169 0.491413 0.821334 1.099250 1.777446 1.936945 2.424408 2.722251 +0.312690 0.451099 0.623388 0.828741 0.993468 1.136473 1.649831 1.980283 2.173337 2.352824 +0.243020 0.364104 0.491726 0.944543 1.131493 1.302149 1.857127 1.973690 2.400218 2.803623 +0.193524 0.259253 0.688441 1.340521 1.671654 1.914554 2.135144 2.313920 2.516303 2.683437 +0.232326 0.387947 0.503848 0.715456 0.874078 1.042221 1.733322 1.898809 2.239800 2.752745 +0.127511 0.344390 0.935547 1.175974 1.388543 1.630551 1.946941 2.245394 2.574897 2.775392 +0.250995 0.323646 0.441648 0.957645 1.547323 1.747938 1.902388 2.157859 2.364221 2.510959 +0.452291 0.693622 1.167859 1.318220 1.723133 1.940224 2.173724 2.424464 2.649258 2.755778 +0.302326 0.431401 0.690302 0.950763 1.203250 1.329801 1.782387 2.179065 2.423352 2.542775 +0.355954 0.504290 0.646021 0.864339 1.352328 1.533661 1.709471 1.960437 2.313335 2.451721 +0.104149 0.152699 0.587242 0.903889 1.183253 1.432120 1.706576 1.956497 2.205742 2.655087 +0.214047 0.281655 0.457781 1.318444 1.423722 1.610884 1.738687 2.315997 2.544975 2.780560 +0.182527 0.232898 0.390991 0.554764 1.219695 1.416974 1.668180 1.883510 2.094564 2.216562 +0.338387 0.409542 0.641629 0.767246 1.002251 1.650238 1.882942 2.041315 2.327004 2.467281 +0.231453 0.309431 0.647883 0.827408 1.212245 1.724138 1.934800 2.138651 2.400716 2.581201 +0.251173 0.509839 0.868347 1.305335 1.478259 1.819818 2.046666 2.383549 2.753204 2.859247 +0.285117 0.362320 0.652022 0.913386 1.044703 1.289808 1.899468 2.119379 2.316214 2.520072 +0.308945 0.404194 0.607700 0.785461 0.897492 1.263812 1.840947 1.995191 2.217981 2.533953 +0.172631 0.233496 0.395828 0.637121 1.094870 1.305225 1.975991 2.149162 2.425342 2.614303 +0.156972 0.227094 0.399128 1.055061 1.517113 1.669668 2.078208 2.233434 2.697606 2.846463 +0.173100 0.226252 0.408500 0.582801 1.098220 1.450523 1.627000 2.016222 2.249189 2.498326 +0.315638 0.497823 0.661879 0.886266 0.997659 1.195049 2.020156 2.258426 2.523904 2.750360 +0.271575 0.365793 0.531980 0.808835 1.273952 1.739663 1.983593 2.133546 2.348498 2.473697 +0.309045 0.513620 0.898951 1.324674 1.639949 1.904400 2.137826 2.348142 2.582366 2.748999 +0.173271 0.315218 0.477788 0.757177 0.875942 1.105511 1.237776 1.628886 2.684859 2.842014 +0.214839 0.273034 0.819191 1.102040 1.352164 1.657619 1.843619 1.972455 2.148374 2.639406 +0.116215 0.162407 0.342715 0.825790 1.042936 1.381631 1.804365 2.083780 2.487045 2.753736 +0.114070 0.425427 0.799793 1.070942 1.370278 1.618583 1.941131 2.202718 2.530097 2.788603 +0.243867 0.378883 0.547723 0.808932 1.239737 1.400240 1.860324 2.069002 2.263329 2.534065 +0.240195 0.333936 0.487895 0.915142 1.015549 1.511986 1.689823 2.078568 2.520731 2.673842 +0.243495 0.327973 0.505429 0.651882 1.068591 1.611267 2.012066 2.161812 2.523348 2.687469 +0.450190 0.521168 0.921017 1.146167 1.266402 1.657642 1.864716 2.036294 2.463023 2.557702 +0.168729 0.270636 0.453713 0.701140 0.915560 1.098438 1.604334 1.960600 2.637718 2.809070 +0.285452 0.345925 0.683009 1.127133 1.267180 1.493486 1.729244 1.897942 2.101957 2.279775 +0.197911 0.283257 0.436315 0.680443 1.328944 1.456235 1.789607 2.073798 2.297794 2.442548 +0.240843 0.293460 0.653007 1.222875 1.575683 1.682154 1.863647 2.019866 2.562349 2.730154 +0.175191 0.254744 0.507483 0.660774 1.010367 1.200881 1.595444 1.912422 2.384227 2.758183 +0.433781 0.510463 0.720856 1.101334 1.226464 1.443652 1.812748 1.957333 2.487847 2.673719 +0.221585 0.287234 0.682977 1.068491 1.562962 1.716402 1.897843 2.129521 2.335900 2.524987 +0.432705 0.840501 1.285672 1.439193 1.607667 1.795398 2.063813 2.311674 2.563015 2.711062 +0.354576 0.466602 0.650767 0.813566 0.938340 1.128342 1.805345 2.218869 2.395036 2.543280 +0.353822 0.544418 0.717185 0.903075 1.193814 1.302618 1.592775 1.928464 2.123197 2.300791 +0.232127 0.335542 0.466150 1.038780 1.385075 1.474844 1.919673 2.031739 2.495480 2.805573 +0.324665 0.377060 0.695910 1.283924 1.443588 1.596523 2.037150 2.169899 2.487425 2.691252 +0.178303 0.236258 0.409957 0.644793 0.991558 1.439340 1.644055 2.056081 2.477767 2.606365 +0.284645 0.347903 0.527540 0.667977 0.816156 1.687403 1.948029 2.113140 2.519425 2.617605 +0.169782 0.245851 0.359543 0.504529 1.401427 1.633494 1.805664 2.181529 2.362061 2.647147 +0.210292 0.309966 0.666265 1.086214 1.491332 1.862248 2.127350 2.359368 2.574699 2.710415 +0.176920 0.247329 0.439418 0.634764 0.868848 1.346770 1.668256 2.024234 2.456935 2.792061 +0.291292 0.461927 0.673858 0.827395 1.001436 1.123471 1.600221 2.273412 2.437555 2.642259 +0.164460 0.272259 0.374336 0.675110 1.490030 1.612152 1.836475 1.984289 2.535905 2.742055 +0.207858 0.272302 0.418159 0.745538 1.629583 1.981417 2.127840 2.293577 2.578197 2.705476 +-0.062228 -0.323076 -0.332711 -0.101708 -0.034218 -0.067730 -0.032006 -0.034055 -0.063661 -0.112308 +0.471805 0.655978 0.860725 0.972051 1.153458 1.409133 1.784627 2.073639 2.494294 2.661139 +0.180954 0.273084 0.389972 0.849113 1.392936 1.510894 1.921378 2.096123 2.378596 2.651504 +0.225545 0.488038 0.863470 1.410418 1.596034 1.771648 2.216348 2.386984 2.715102 2.839389 +0.144776 0.247942 0.381281 0.699264 1.145490 1.295150 1.800737 2.008105 2.629862 2.826194 +0.184806 0.248115 0.690786 0.828582 1.321220 1.503651 1.718611 2.087128 2.314827 2.538325 +0.177133 0.339599 0.481545 0.790062 1.227237 1.348197 1.883037 2.021486 2.441350 2.699083 +0.311370 0.368740 0.858970 1.014739 1.208416 1.746055 1.924647 2.151463 2.415915 2.560580 +0.199710 0.264710 0.470506 0.794534 1.118412 1.570882 1.812521 1.939545 2.110880 2.373289 +0.350635 0.482066 0.710421 0.960792 1.103058 1.325978 1.913082 2.069461 2.404068 2.662115 +0.186366 0.241536 0.381062 0.517738 1.497745 1.924116 2.070412 2.234108 2.608905 2.750199 +0.509032 0.734852 0.927875 1.145398 1.394132 1.611867 1.956418 2.176366 2.420236 2.596717 +0.201922 0.299074 0.414361 0.597667 0.721234 0.975702 1.929938 2.144210 2.650822 2.846817 +0.249810 0.373368 0.691262 0.918023 1.296625 1.472578 1.881052 2.160262 2.404070 2.576539 +0.136751 0.198997 0.351968 0.839701 1.241879 1.397675 1.739341 1.946552 2.247675 2.676990 +0.215765 0.277228 0.527200 1.277413 1.507933 1.677635 2.048299 2.207947 2.614490 2.774622 +0.146093 0.199242 0.331057 0.518068 0.983944 1.184948 1.769667 1.933330 2.116265 2.713820 +0.311505 0.400669 0.630844 1.132601 1.442876 1.558170 1.906709 2.045975 2.419754 2.659979 +0.328470 0.401583 0.615037 0.993895 1.574441 1.869936 2.011558 2.184989 2.467408 2.581751 +0.463865 0.687911 1.294672 1.536811 1.700885 1.872005 2.174049 2.341841 2.576782 2.729884 +0.225601 0.311949 0.558510 0.720660 1.176452 1.364036 1.558010 2.010565 2.645874 2.801078 +0.300116 0.554320 0.704246 0.926026 1.318277 1.422364 1.788571 2.123745 2.298732 2.683560 +0.217312 0.342834 0.505628 0.885611 1.036468 1.281361 1.711880 1.931222 2.475950 2.632713 +0.235789 0.329023 0.515572 1.047927 1.413696 1.546519 1.893021 2.099995 2.430834 2.628838 +0.170354 0.225158 0.395611 0.654515 1.106878 1.458362 1.794475 2.012486 2.334320 2.553665 +0.420377 0.492906 0.763825 0.888793 1.057272 1.729447 1.982471 2.145245 2.614874 2.700457 +0.227828 0.299193 0.480966 0.855216 1.663391 1.817425 2.035090 2.237723 2.436081 2.645378 +0.104919 0.220297 0.922747 1.248851 1.468985 1.845122 2.172923 2.471447 2.702677 2.827250 +0.245660 0.363951 0.496495 0.718395 0.792531 1.188290 2.028262 2.148021 2.601079 2.767886 +0.204949 0.323637 0.501508 0.803477 1.101494 1.228773 1.446609 1.596114 1.975723 2.669065 +0.162963 0.221990 0.366143 0.569144 1.300415 1.508941 1.736879 2.176494 2.560640 2.781882 +0.226216 0.303208 0.451507 0.942554 1.584997 1.708649 1.937744 2.125981 2.374113 2.806697 +0.279313 0.434425 0.600140 0.761924 0.967326 1.085339 1.400649 2.085299 2.311823 2.531842 +0.496970 0.611003 0.813504 1.003786 1.112345 1.561294 2.006644 2.127810 2.538433 2.707483 +0.263598 0.399612 0.523023 0.751894 1.468733 1.634563 1.854672 2.093993 2.288808 2.486320 +0.447064 0.669729 1.231144 1.393911 1.519359 1.740011 2.130839 2.331661 2.622426 2.742410 +0.217113 0.344226 0.479443 0.953089 1.113345 1.292028 1.405063 2.035854 2.706084 2.818154 +0.215666 0.346628 0.459806 0.841338 1.330315 1.450787 1.693170 1.963290 2.133067 2.598851 +0.032462 0.108906 0.641839 0.918247 1.274605 1.548613 1.860118 2.149524 2.473967 2.745703 +0.126290 0.220180 0.749275 1.069688 1.256552 1.502364 1.780350 2.049865 2.514790 2.760101 +0.201396 0.256212 0.604955 0.839430 1.037016 1.425915 1.784411 2.082149 2.278545 2.520697 +0.250554 0.361913 0.538203 1.009347 1.125631 1.467374 1.842276 1.982168 2.659098 2.812528 +0.173329 0.232821 0.397105 0.674759 1.272214 1.578849 1.859567 2.046929 2.368178 2.523695 +0.361106 0.495511 0.860190 1.082212 1.386309 1.580348 1.935833 2.155852 2.453898 2.622802 +0.232936 0.346360 0.515455 0.716889 0.946937 1.062494 1.542360 2.240413 2.402681 2.639495 +0.329138 0.483393 0.640612 0.860349 1.191888 1.297933 1.656172 2.079184 2.298135 2.457837 +0.238706 0.397136 0.560834 0.799404 1.288560 1.405264 1.678272 2.182520 2.375152 2.668620 +0.304175 0.364112 0.779173 1.338909 1.476173 1.664278 1.993154 2.118992 2.593337 2.731349 +0.164802 0.217347 0.366682 0.565116 0.753855 1.009701 1.744416 2.023924 2.268955 2.433440 +0.296797 0.356308 0.759995 1.197140 1.309824 1.482490 1.667647 1.840314 2.517650 2.648945 +0.273443 0.411365 0.594999 0.894650 1.424021 1.586944 1.842399 2.215251 2.447173 2.729450 +0.236751 0.360177 1.030195 1.434197 1.683780 1.888286 2.114605 2.264435 2.477029 2.630414 +0.273289 0.394610 0.610213 0.759723 0.937713 1.239572 1.713796 1.995028 2.367774 2.635783 +0.334115 0.411443 0.610825 0.955868 1.502521 1.785262 1.937709 2.105790 2.350122 2.470200 +0.159072 0.242631 0.393231 0.844130 1.217685 1.419823 1.733096 1.891617 2.514256 2.659089 +0.309184 0.361119 0.759243 1.263501 1.440575 1.570597 1.821846 1.944982 2.440271 2.684484 +0.161993 0.224640 0.401324 0.753906 1.032749 1.440682 1.809558 1.978594 2.149676 2.538575 +0.247815 0.331789 0.491727 0.713759 0.865824 1.618286 1.768016 2.244205 2.532077 2.684242 +0.170605 0.248525 0.354505 0.495374 1.569514 1.828195 1.990227 2.213056 2.400769 2.760431 +0.331931 0.515143 0.809566 1.042681 1.451957 1.638579 1.956390 2.262500 2.598192 2.813680 +0.209020 0.349585 0.505601 0.704594 0.814790 1.362447 1.939075 2.048582 2.423957 2.756261 +0.281207 0.453713 0.595485 0.765529 1.220000 1.391996 1.561764 2.022289 2.265860 2.679768 +0.150346 0.251592 0.409505 0.770775 1.236125 1.384343 1.745495 1.893299 2.588497 2.822991 +0.161090 0.246862 0.484826 1.245783 1.397859 1.714145 2.040802 2.468857 2.706233 2.837580 +0.213765 0.374235 0.536566 0.733390 1.126324 1.249567 1.538484 1.976391 2.151928 2.359273 +0.272518 0.457655 0.808972 1.019104 1.150011 1.326035 1.711513 2.051136 2.549677 2.799790 +0.179767 0.262954 0.395346 0.660835 1.345694 1.502264 1.819384 1.963548 2.273263 2.618778 +0.175488 0.306329 1.103215 1.306099 1.574389 1.897560 2.214935 2.416432 2.605393 2.738739 +0.154666 0.239592 0.415828 0.780679 0.945224 1.233384 1.696039 1.940742 2.514563 2.679770 +0.269177 0.354740 0.557021 0.969509 1.345317 1.463570 1.798387 2.241221 2.456339 2.610210 +0.239145 0.326264 0.494465 1.071214 1.209459 1.537726 1.952743 2.113220 2.610725 2.747535 +0.218208 0.598959 0.871276 1.110151 1.386993 1.648655 1.918609 2.193362 2.546880 2.756671 +0.176681 0.262087 0.424568 0.933283 1.208095 1.334188 1.755633 1.926341 2.187131 2.556577 +0.213062 0.385248 0.514741 0.876978 1.165897 1.307493 1.825031 2.012224 2.554948 2.737931 +0.151222 0.247007 0.382114 0.751657 1.215610 1.342363 1.975904 2.137584 2.617134 2.820105 +0.299224 0.473356 0.825171 1.146594 1.528401 1.694234 1.952214 2.144722 2.373789 2.555562 +0.207137 0.319897 0.501670 0.711149 0.853927 1.057889 1.770494 2.071726 2.492216 2.811033 +0.465560 0.618831 0.782398 1.010037 1.195984 1.322540 1.855998 2.160517 2.324801 2.507033 +0.201076 0.301843 0.444311 0.822638 1.176021 1.272371 1.646433 2.064560 2.227727 2.623829 +0.210505 0.247037 0.495092 1.302518 1.760886 1.827284 2.217044 2.446377 2.623543 2.741148 +0.195999 0.279369 0.481573 0.654787 1.080842 1.412382 1.716490 2.052322 2.290101 2.738165 +0.236926 0.310814 0.896361 1.162180 1.328092 1.558913 1.774564 1.905228 2.402246 2.665023 +0.244472 0.327963 0.646896 1.095894 1.620412 1.772324 2.045520 2.193957 2.547128 2.722609 +0.346731 0.581380 1.070375 1.522205 1.740223 1.980572 2.266647 2.404418 2.746561 2.871000 +0.430698 0.619190 0.836877 1.015020 1.167909 1.332640 1.815328 2.234722 2.476070 2.638178 +0.221367 0.307079 0.458329 0.850712 1.289560 1.423009 1.621570 1.985342 2.331434 2.467832 +0.116322 0.217253 0.728326 0.940859 1.188330 1.378722 1.687841 1.910693 2.604869 2.797202 +0.187928 0.267923 0.389066 1.155944 1.483571 1.593699 1.818241 1.963936 2.473096 2.607548 +0.168954 0.211406 0.372427 0.529448 0.973588 1.431171 1.621558 1.856431 2.189298 2.343881 +0.273371 0.413963 0.664359 0.794553 1.017733 1.399395 1.724746 2.089838 2.367948 2.555808 +0.212416 0.270112 0.509967 0.759092 1.293781 1.781086 2.091445 2.219374 2.499069 2.630826 +0.300696 0.481937 0.835784 1.276211 1.461493 1.644316 1.971697 2.234847 2.641035 2.829278 +0.285091 0.416886 0.605330 0.808172 0.944872 1.129570 1.919248 2.157389 2.400226 2.673656 +0.225704 0.384656 0.630586 0.788196 1.224861 1.419420 1.681321 1.970805 2.212616 2.617121 +0.132447 0.177755 0.301537 0.471768 1.155148 1.332095 1.708466 2.024543 2.495585 2.788666 +0.252038 0.329800 0.481080 0.954609 1.422083 1.620359 2.006123 2.168392 2.355165 2.505083 +0.183435 0.241389 0.417674 0.598794 1.014975 1.205139 1.701958 1.977784 2.374336 2.586101 +0.302192 0.384974 0.608153 0.938510 1.084287 1.329203 2.069641 2.319152 2.494203 2.675684 +0.198808 0.281220 0.391748 0.777377 1.553382 1.790825 1.925301 2.135471 2.304278 2.485154 +0.370469 0.548730 0.880131 1.168541 1.456674 1.645880 2.049941 2.288441 2.557653 2.759821 +0.156583 0.250724 0.394960 0.691089 0.837322 1.066297 1.836287 1.972838 2.591097 2.786561 +0.322824 0.379018 0.593081 1.086011 1.406693 1.490406 1.734998 1.912817 2.081717 2.475586 +0.158775 0.218842 0.457222 0.869711 1.219773 1.629722 1.953462 2.134004 2.392326 2.640093 +0.217524 0.325911 0.628615 0.997991 1.504329 1.668932 1.958103 2.245372 2.630371 2.808323 +0.170343 0.254286 0.510717 0.814297 1.028209 1.355930 1.726583 2.047676 2.381522 2.692279 +0.297689 0.343194 0.742306 0.882638 1.038877 1.713935 1.880819 2.088189 2.556386 2.634265 +0.215251 0.296748 0.454072 0.676499 1.007705 1.797713 2.004948 2.206914 2.548819 2.725676 +0.412021 0.642343 0.828334 0.951784 1.236305 1.495649 1.898175 2.129486 2.438961 2.666301 +0.179065 0.252377 0.372814 0.530815 0.713797 0.927597 1.666069 2.104770 2.392383 2.734423 +0.433130 0.566964 0.740476 0.961675 1.107074 1.288034 1.772074 1.904854 2.174689 2.570674 +0.223409 0.295735 0.606368 0.786946 1.326960 1.538874 1.755901 1.939986 2.371080 2.488210 +0.224170 0.294402 0.684662 1.251045 1.593460 1.708681 2.018073 2.187551 2.515208 2.721384 +0.166379 0.238226 0.406222 0.623445 0.883761 1.076979 1.603102 1.916054 2.202559 2.699771 +0.489484 0.578385 0.832748 1.115430 1.216650 1.575882 1.929300 2.049396 2.522680 2.658393 +0.291742 0.359710 0.491711 1.071820 1.458792 1.603219 1.747893 2.124226 2.418190 2.528558 +0.438848 0.678792 1.139964 1.311051 1.673038 1.878533 2.126488 2.288717 2.493483 2.631731 +0.271300 0.466760 0.592041 0.808897 0.942888 1.124238 1.820005 1.976080 2.249710 2.775433 +0.389199 0.559773 0.703683 0.900063 1.345064 1.462662 1.769904 2.128433 2.365683 2.501187 +0.190440 0.280423 0.447001 1.039189 1.218375 1.614861 1.844728 2.111340 2.460942 2.613396 +0.241700 0.302019 0.613366 1.249946 1.410607 1.580256 1.768325 1.986861 2.430632 2.581026 +0.206516 0.286418 0.537788 0.707728 1.197196 1.572380 1.755394 1.933391 2.472918 2.645023 +0.318502 0.396523 0.647544 0.775364 0.936563 1.581584 2.058082 2.195477 2.618710 2.743108 +0.191584 0.269771 0.414492 0.786131 1.376273 1.613474 1.799398 2.344394 2.536806 2.749566 +0.237976 0.316356 0.446480 0.893873 1.679975 1.965388 2.096434 2.252618 2.468845 2.587829 +0.123845 0.159072 0.284123 0.467782 0.818151 1.307335 1.754936 2.066298 2.476057 2.758144 +0.261052 0.393384 0.760978 0.918516 1.100980 1.327690 1.632686 2.033602 2.384945 2.554088 +0.264436 0.350588 0.609731 0.749716 1.157992 1.660102 1.868180 2.004961 2.591971 2.739458 +0.164585 0.215089 0.375970 0.959153 1.727354 1.859913 1.991898 2.220550 2.431018 2.769731 +0.204030 0.290606 0.483834 0.827022 1.016831 1.223453 1.699260 1.910125 2.140620 2.267503 +0.526138 0.709922 0.836725 1.069406 1.269462 1.405044 1.834798 2.034524 2.212188 2.459999 +0.225247 0.340174 0.449473 0.914306 1.380619 1.486761 1.795410 1.983939 2.206215 2.713630 +0.200753 0.622848 0.941841 1.226624 1.507543 1.821962 2.134104 2.366417 2.634739 2.771988 +0.174703 0.282776 0.702258 0.898342 1.084446 1.266724 1.757851 2.083739 2.401420 2.756275 +0.249131 0.323445 0.720321 0.878509 1.110362 1.576682 1.865315 2.114744 2.387200 2.528666 +0.192991 0.271656 0.400815 0.639719 1.281970 1.423380 2.050229 2.264541 2.462010 2.662504 +0.266874 0.325220 0.675228 1.126545 1.267438 1.706113 1.920856 2.125988 2.574605 2.678193 +0.223081 0.286041 0.655976 0.816840 1.060069 1.561164 1.748293 1.911129 2.075313 2.503462 +0.407716 0.515541 0.739241 0.941291 1.059746 1.404674 1.781339 1.892197 2.404849 2.648290 +0.240599 0.312213 0.510661 0.666324 1.224803 1.866233 2.050438 2.204639 2.619539 2.768546 +0.384825 0.587577 1.021218 1.214225 1.437340 1.728676 1.998469 2.183120 2.571593 2.747573 +0.245764 0.343500 0.509527 0.727872 0.876936 1.024899 1.769731 2.415709 2.632816 2.787619 +0.290619 0.390761 0.566531 0.941586 1.353924 1.461037 1.795546 2.132642 2.313283 2.486608 +0.172727 0.258217 0.438312 0.716613 1.170907 1.311367 1.733515 1.899224 2.138675 2.739799 +0.222657 0.287215 0.449779 1.369666 1.490501 1.701894 1.880425 2.393512 2.600773 2.787142 +0.154428 0.222305 0.357310 0.630820 1.037882 1.342771 1.730454 1.920364 2.046990 2.549536 +0.299554 0.623129 0.825895 1.063948 1.332600 1.466624 1.854370 2.128982 2.327186 2.521370 +0.218073 0.257913 0.681337 0.900215 1.517137 1.843444 2.006541 2.205575 2.505616 2.633109 +0.686321 1.027088 1.182402 1.346554 1.590920 1.854772 2.111571 2.250916 2.482490 2.625270 +0.220174 0.305579 0.452469 1.009178 1.208905 1.586079 1.726183 2.308495 2.539415 2.745570 +0.341504 0.508703 0.663379 0.854389 1.270406 1.419250 1.624925 2.064447 2.426578 2.552193 +0.199767 0.277559 0.419200 1.151687 1.302355 1.531961 1.720872 2.013206 2.476765 2.595851 +0.243094 0.314600 0.435247 1.051642 1.528616 1.656151 1.884292 2.065968 2.307851 2.563448 +0.224054 0.300322 0.546545 0.706978 1.059557 1.412749 1.925773 2.119205 2.355100 2.490204 +0.342948 0.395972 0.713508 0.788514 1.092279 1.685316 1.836105 2.270695 2.521777 2.625975 +0.183089 0.263605 0.369340 0.558240 1.511750 1.902656 2.045224 2.218195 2.445586 2.611569 +0.332871 0.558850 0.877672 1.147342 1.590679 1.823730 2.184823 2.407743 2.721120 2.860996 +0.228040 0.355308 0.498081 0.818616 1.098234 1.212951 1.802644 2.085736 2.290465 2.748208 +0.189112 0.289591 0.530362 0.768658 0.944224 1.325806 1.678253 1.884531 2.251127 2.682120 +0.144799 0.199748 0.350015 0.546248 1.106050 1.629785 1.884696 2.005826 2.432189 2.780747 +0.172297 0.243074 0.380863 0.968654 1.645970 1.743664 1.952788 2.092464 2.574491 2.809210 +0.220791 0.397930 0.676300 0.814804 1.085618 1.265955 1.557093 1.974461 2.157493 2.568431 +0.351036 0.481040 0.684693 1.046142 1.219179 1.404440 1.909685 2.051432 2.405205 2.669908 +0.255837 0.394071 0.518620 0.767306 1.393237 1.618907 1.766511 2.022002 2.425935 2.559548 +0.418747 0.617245 1.109151 1.299581 1.560582 1.912698 2.151587 2.420609 2.666448 2.766110 +0.194318 0.321980 0.488422 0.733153 0.927489 1.091432 1.537804 1.709529 2.300954 2.777973 +0.441506 0.552407 0.771304 1.070023 1.253431 1.402955 1.774359 1.917186 2.236828 2.573015 +0.096364 0.161493 0.604211 0.841192 1.084960 1.469012 1.765762 2.035652 2.415550 2.679394 +0.164758 0.273531 0.786362 0.944165 1.314729 1.443079 1.820614 2.232970 2.474360 2.689648 +0.214880 0.277389 0.624783 0.819250 1.049581 1.383136 1.664426 1.809937 2.247050 2.531672 +0.339450 0.490710 0.650894 0.802164 0.968459 1.286294 1.736119 2.108232 2.488573 2.676959 +0.173316 0.243343 0.367127 0.508577 1.224968 1.826439 1.981666 2.158278 2.351480 2.588130 +0.452858 0.676518 0.916839 1.095033 1.353796 1.666215 1.906615 2.097253 2.478402 2.671285 +0.255572 0.430173 0.627154 0.845685 1.029142 1.165075 1.851297 2.238290 2.425106 2.786559 +0.292973 0.495593 0.670882 0.825200 1.176688 1.345844 1.524943 1.905429 2.293155 2.481585 +0.190065 0.270578 0.429350 0.650608 1.338108 1.544596 1.723081 2.100587 2.455792 2.616187 +0.270146 0.357004 1.012493 1.334770 1.484494 1.749118 1.948371 2.163260 2.479187 2.615849 +0.190746 0.284342 0.459935 0.840326 1.058271 1.247416 1.686518 1.858042 2.349852 2.474999 +0.261440 0.355783 0.788131 0.963975 1.170960 1.426067 1.663365 1.845513 2.450110 2.615423 +0.223477 0.289406 0.644196 0.841108 1.449672 1.680461 1.864688 1.970082 2.320400 2.678113 +0.307863 0.471864 0.951274 1.401941 1.598874 1.839736 2.064310 2.222939 2.646039 2.793416 +0.215456 0.324380 0.542457 0.738120 0.904477 1.125488 1.593790 1.942637 2.403731 2.625335 +0.327978 0.431326 0.649146 0.980387 1.452639 1.595021 1.827042 2.174676 2.430383 2.562971 +0.221416 0.405136 0.534878 0.941825 1.275052 1.387146 1.678769 1.816890 2.607600 2.805074 +0.261063 0.296006 0.765065 1.323946 1.455938 1.597320 1.755333 1.939918 2.595321 2.725885 +0.196465 0.266597 0.478088 0.673695 0.918173 1.783876 1.968005 2.144556 2.340807 2.571099 +0.222072 0.329556 0.457488 0.632821 0.926941 1.737060 1.925589 2.280188 2.742106 2.840767 +0.177587 0.262768 0.386637 0.661755 1.507334 1.651771 2.016609 2.209898 2.436253 2.794750 +0.237412 0.318760 0.572489 1.126672 1.262629 1.705670 1.962639 2.240223 2.640836 2.760043 +0.164018 0.263560 0.389157 0.576607 0.699517 1.304965 1.938275 2.108181 2.361245 2.481099 +0.312927 0.453499 0.595937 0.720801 1.155128 1.421222 1.654805 2.125481 2.342733 2.559528 +0.187311 0.340553 0.479298 0.800541 1.324137 1.434292 1.773373 1.966276 2.442163 2.794439 +0.240145 0.361802 0.529355 1.032511 1.333136 1.613724 1.902121 2.393189 2.610681 2.798432 +0.256618 0.369979 0.571037 0.805889 0.931870 1.242267 1.556114 1.777808 2.100100 2.279277 +0.315460 0.387429 0.763439 1.135994 1.225008 1.383314 1.479969 1.857272 2.506217 2.572444 +0.231972 0.332687 0.498409 0.763292 1.482840 1.675304 1.917342 2.171163 2.373797 2.762604 +0.241092 0.374768 0.886119 1.278350 1.760790 1.986414 2.153341 2.321588 2.561671 2.682561 +0.181333 0.265570 0.457041 0.832421 0.997777 1.194519 1.519027 1.911348 2.372249 2.624795 +0.217281 0.313910 0.490988 1.021293 1.238563 1.420272 1.905572 2.077699 2.389621 2.611841 +0.241907 0.344617 0.495322 0.833050 0.943750 1.625368 1.957947 2.118287 2.573169 2.706253 +0.260933 0.421768 0.714877 1.045217 1.348286 1.557267 1.920459 2.142565 2.463638 2.761801 +0.191170 0.260573 0.482902 0.852619 1.182296 1.355163 1.734327 2.038425 2.220238 2.348315 +0.235960 0.420321 0.558300 0.822306 0.959709 1.163020 1.746196 1.872763 2.463190 2.656887 +0.182801 0.229509 0.384936 0.525996 1.144440 1.505356 2.087714 2.235691 2.603441 2.821072 +0.433326 0.648975 1.152821 1.324354 1.499568 1.680615 1.927155 2.144623 2.501930 2.672369 +0.185230 0.282855 0.433567 0.613008 0.800249 1.189297 1.815486 2.216184 2.611609 2.819742 +0.305950 0.512379 0.682631 0.866346 1.140903 1.267093 1.689424 1.993235 2.167743 2.491215 +0.214384 0.330677 0.465107 0.799324 1.249335 1.354711 1.961836 2.155521 2.365402 2.768664 +0.252228 0.294891 0.721925 1.385448 1.627786 1.728361 2.094373 2.246017 2.542430 2.725817 +0.247355 0.467492 0.616684 0.821505 1.051679 1.163064 1.676721 1.903589 2.192444 2.770439 +0.267056 0.322353 0.878273 1.273551 1.387890 1.656880 1.838486 2.256932 2.489329 2.617788 +0.276548 0.347431 0.510036 0.916479 1.503298 1.902076 2.081537 2.205346 2.459159 2.574602 +0.420124 0.634373 0.972031 1.349147 1.660814 1.863940 2.209039 2.359323 2.665996 2.774761 +0.245603 0.346643 0.484960 0.852273 1.113317 1.246194 1.675673 2.134010 2.397448 2.567438 +0.278909 0.453205 0.609401 0.817334 1.386351 1.540485 1.784357 2.027199 2.208866 2.416858 +0.216689 0.291968 0.633303 0.821476 1.230792 1.517474 1.740384 1.839894 2.264549 2.645633 +0.250583 0.356352 0.706187 1.159764 1.340429 1.531877 1.805133 2.212588 2.494217 2.645859 +0.173603 0.221482 0.407668 0.602668 1.173887 1.363948 1.714837 2.069366 2.246713 2.384843 +0.351700 0.426939 0.676212 0.785470 1.018054 1.600174 1.760596 1.981016 2.523457 2.622580 +0.247404 0.347843 0.537821 0.715383 1.334742 1.730445 1.932738 2.116362 2.550868 2.719251 +0.267640 0.435192 0.734410 1.154981 1.439281 1.665625 2.036115 2.238505 2.694509 2.857159 +0.377315 0.500802 0.678295 0.852176 0.986722 1.234297 1.946465 2.216296 2.369690 2.568046 +0.282474 0.484623 0.647346 0.838126 1.116069 1.236355 1.605158 2.068283 2.241476 2.594701 +0.179830 0.276699 0.393477 0.618077 1.005536 1.171683 1.936124 2.147218 2.344016 2.802089 +0.150385 0.222615 0.453699 1.059570 1.514904 1.869262 2.170323 2.385821 2.713541 2.834759 +0.190104 0.279191 0.487233 0.679289 1.139586 1.367418 1.532297 1.968753 2.379302 2.609276 +0.383123 0.512258 0.719040 0.900857 1.026096 1.446135 1.985069 2.104295 2.577580 2.725283 +0.233385 0.311008 0.468900 0.822874 1.358548 1.845397 2.088437 2.201482 2.419016 2.524441 +0.448047 0.666107 0.986682 1.233646 1.707798 1.882326 2.175233 2.389889 2.561257 2.672922 +0.190653 0.315609 0.490994 0.746849 0.882522 1.292447 1.594598 1.771911 2.563910 2.770587 +0.215760 0.268515 0.648673 1.130954 1.282429 1.603348 1.802088 2.039412 2.361344 2.489232 +0.146123 0.204228 0.382306 0.718573 1.152464 1.523749 1.750535 2.085976 2.456666 2.706774 +0.097438 0.189231 0.726839 1.130330 1.394979 1.591658 1.959512 2.188961 2.611863 2.823535 +0.153693 0.220100 0.418171 0.907592 1.098588 1.409276 1.661682 2.052898 2.357440 2.534558 +0.249007 0.320795 0.581631 0.894597 1.056178 1.470144 1.725025 1.888314 2.380417 2.512561 +0.215043 0.307452 0.489967 0.675625 1.212878 1.644852 1.813460 2.219287 2.421185 2.711916 +0.454182 0.656019 0.980383 1.162424 1.342999 1.469780 1.737221 2.016043 2.396287 2.589121 +0.248859 0.363988 0.568562 0.710472 0.879383 0.969136 1.321791 2.203573 2.459572 2.685742 +0.275498 0.346347 0.720990 0.962739 1.142409 1.548421 1.756807 1.939827 2.107470 2.346331 +0.168346 0.213677 0.371061 0.533405 1.281879 1.420915 1.743873 1.929374 2.354611 2.516531 +0.269357 0.323555 0.660417 1.246119 1.389881 1.620112 1.880792 2.024803 2.535747 2.641379 +0.143544 0.211826 0.349106 0.686750 0.852997 1.123379 1.740477 1.910903 2.395457 2.675160 +0.391096 0.461323 0.706811 0.863080 0.973392 1.482338 1.771634 1.885759 2.506445 2.623396 +0.306784 0.371767 0.612809 1.165417 1.539601 1.649444 1.847967 2.215674 2.421224 2.551842 +0.412446 0.658776 1.248823 1.445679 1.591378 1.718751 1.944947 2.241242 2.542474 2.718017 +0.219635 0.320449 0.459092 0.733764 0.861516 1.087584 1.877017 2.055926 2.267583 2.421807 +0.353269 0.558306 0.705301 0.895998 1.276299 1.401657 1.682423 1.948663 2.130723 2.378531 +0.266056 0.406507 0.542960 1.171871 1.333369 1.503282 1.781150 1.967881 2.639831 2.805456 +0.366997 0.435212 0.708835 1.184565 1.338341 1.578537 2.031195 2.174915 2.531932 2.718652 +0.180016 0.244121 0.466532 0.637822 0.933798 1.613163 1.758726 2.141582 2.383844 2.570767 +0.183031 0.268217 0.410149 0.583275 0.768297 1.302461 1.927508 2.184191 2.515648 2.724226 +0.198728 0.279758 0.393674 0.687093 1.521403 1.831985 1.964413 2.182576 2.354737 2.718166 +0.266621 0.428987 0.748177 1.052044 1.416922 1.709958 1.975394 2.163065 2.390250 2.722350 +0.187580 0.301657 0.428103 0.623084 0.722948 1.407722 1.664241 1.898839 2.663491 2.802190 +0.207840 0.306975 0.483853 0.724360 1.022497 1.221432 1.415162 1.956839 2.527680 2.734643 +0.188611 0.284294 0.408262 0.721431 1.384715 1.505269 1.966087 2.173208 2.428517 2.770771 +0.222823 0.272639 0.503764 0.859246 1.498403 1.885767 2.099957 2.235388 2.567829 2.691284 +0.152758 0.219680 0.338675 0.597863 0.978697 1.200801 1.746909 1.957261 2.074441 2.404458 +0.429246 0.630671 0.792842 0.964490 1.262744 1.388795 1.721613 2.091229 2.345298 2.490896 +0.256329 0.380734 0.539915 1.009152 1.400960 1.509524 1.869215 2.029196 2.348803 2.776082 +0.272403 0.672458 0.977874 1.334181 1.683066 1.922996 2.291748 2.486116 2.709534 2.862231 +0.158762 0.287189 0.410234 0.812307 1.117621 1.262447 1.898049 2.047016 2.529228 2.738030 +0.179810 0.233529 0.707400 1.047569 1.289640 1.489108 1.847319 2.074331 2.343157 2.539680 +0.215347 0.304896 0.440699 0.897509 1.322585 1.472844 1.996310 2.165007 2.384550 2.574797 +0.286874 0.339813 0.883878 1.115931 1.272467 1.744249 1.885743 2.158576 2.589603 2.672644 +0.210579 0.284270 0.517041 0.796519 1.129021 1.668905 1.939439 2.065525 2.221131 2.479044 +0.261094 0.357573 0.576680 0.963769 1.112459 1.279265 1.822867 1.981048 2.197737 2.571008 +0.181278 0.244687 0.379354 0.499565 1.371147 1.939687 2.081545 2.257664 2.473413 2.679019 +0.491809 0.793403 1.095573 1.248586 1.433776 1.611914 1.888047 2.132035 2.457073 2.627391 +0.251235 0.353668 0.466231 0.673754 0.761327 1.114781 2.007224 2.123861 2.465832 2.639406 +0.345158 0.523258 0.679274 0.860119 1.194849 1.326006 1.848632 2.132397 2.326670 2.510966 +0.160104 0.220957 0.395991 0.698411 0.969721 1.448772 1.710923 1.833738 2.255148 2.614909 +0.154242 0.218964 0.347268 1.230461 1.592574 1.733703 2.002980 2.182922 2.555376 2.704150 +0.147752 0.202050 0.328105 0.531857 1.097229 1.287887 1.880144 2.033520 2.241027 2.732837 +0.394173 0.497084 0.712849 1.053505 1.351267 1.458228 1.861207 2.181794 2.392320 2.533753 +0.302335 0.380917 0.549353 0.985252 1.517171 1.702307 1.859140 2.148560 2.460271 2.579449 +0.489225 0.748632 1.289304 1.544824 1.780201 2.071873 2.310551 2.443509 2.704605 2.789720 +0.237235 0.383617 0.738218 0.908733 1.218091 1.378373 1.607258 2.196781 2.508687 2.662952 +0.287297 0.414596 0.576260 0.837481 1.292636 1.398051 1.699746 2.155291 2.397760 2.512719 +0.226644 0.373291 0.522981 0.950126 1.196878 1.352198 1.832943 1.977466 2.370185 2.574990 +0.202424 0.294204 0.576457 1.079769 1.296360 1.513369 1.942298 2.239055 2.513119 2.684820 +0.205672 0.262350 0.438217 0.606959 0.798794 1.451892 1.730536 1.885799 2.292567 2.433348 +0.304096 0.348725 0.817557 0.973213 1.149195 1.769516 1.914392 2.234704 2.592687 2.674729 +0.206504 0.281307 0.376040 0.779557 1.499555 1.886752 2.032034 2.220961 2.528659 2.666047 +0.130572 0.255765 0.794488 1.301534 1.504711 1.681929 2.069095 2.309137 2.695781 2.848379 +0.214845 0.339856 0.490758 0.723584 1.026000 1.188343 1.937657 2.288473 2.513405 2.753320 +0.359564 0.482479 0.670546 1.042777 1.240083 1.360140 1.592377 1.718141 2.214001 2.639319 +0.106171 0.136363 0.239866 0.666826 1.262252 1.543841 1.886197 2.162484 2.518336 2.782589 +0.188744 0.251920 0.360219 0.913075 1.618822 1.785177 1.927723 2.115808 2.320559 2.642776 +0.225904 0.378515 0.558007 0.728218 0.996381 1.117859 1.477832 1.960983 2.185323 2.667571 +0.436819 0.511780 0.811933 1.004760 1.128440 1.604755 1.813182 1.987683 2.595291 2.709021 +0.249083 0.362078 0.480846 0.813722 1.404123 1.566622 1.741757 2.142883 2.302238 2.567856 +0.249083 0.362078 0.480846 0.813722 1.404123 1.566622 1.741757 2.142883 2.302238 2.567856 diff --git a/src/codebook/lspvqexp2.txt b/src/codebook/lspvqexp2.txt new file mode 100644 index 0000000..80fe18f --- /dev/null +++ b/src/codebook/lspvqexp2.txt @@ -0,0 +1,2049 @@ +5 2048 +-0.002077 -0.038247 -0.036477 -0.003710 0.058915 +-0.035874 -0.128709 0.029183 -0.019849 0.049800 +-0.007389 -0.040358 0.044426 0.047695 -0.043474 +0.075558 0.066718 -0.000350 -0.002910 0.009981 +-0.009790 0.076568 -0.100581 0.021504 -0.026649 +-0.026362 -0.100884 -0.003799 0.061469 0.001711 +-0.034198 -0.008936 0.039170 -0.055448 -0.078447 +0.028441 -0.038152 0.015590 0.036567 -0.041377 +0.049588 -0.091695 0.004580 -0.055922 -0.041638 +-0.025374 -0.037246 -0.002046 0.002822 -0.108640 +-0.050719 0.152889 0.036331 0.025204 -0.017701 +0.035302 0.120953 0.037832 -0.092915 0.065586 +-0.048191 -0.092276 -0.077588 -0.043380 0.071115 +0.011347 -0.004383 0.064201 0.091266 -0.037474 +0.019023 0.014911 -0.012935 0.038099 0.015753 +0.005340 -0.046005 0.048595 0.061014 0.075044 +0.083994 -0.042736 0.000191 -0.120346 0.059455 +-0.040009 -0.085618 -0.022013 0.016604 -0.021977 +-0.041351 0.055057 0.041498 -0.057724 -0.004755 +0.046951 0.098620 0.036630 -0.034510 0.026358 +0.034831 -0.018107 -0.038210 -0.024564 -0.076584 +-0.038199 -0.082180 -0.087172 0.100873 -0.013934 +0.007410 0.052748 -0.012468 -0.086356 -0.004344 +-0.008693 0.023248 0.088995 0.063277 -0.010981 +-0.014865 -0.008322 -0.026526 0.001412 -0.009086 +-0.041663 -0.082625 0.022751 -0.040388 -0.157427 +0.000052 0.047105 0.090012 0.049647 -0.052600 +0.043776 0.044112 -0.006996 0.035467 0.033674 +0.038165 0.009940 -0.005274 -0.025234 0.012284 +0.059331 0.033687 -0.030071 0.038173 -0.045016 +0.026068 0.158444 0.048818 -0.057637 0.009770 +-0.040754 -0.099489 -0.027782 -0.004839 0.170178 +0.018211 -0.024125 -0.001981 -0.056519 0.022604 +0.043672 -0.084946 0.014191 0.071154 -0.005074 +-0.088121 -0.013992 -0.039939 0.008830 -0.019720 +-0.014986 0.009192 -0.018737 -0.054735 -0.013960 +-0.001601 0.002582 -0.065304 0.007212 -0.013857 +-0.007417 -0.077118 -0.033128 0.041117 0.100625 +0.000688 -0.014708 -0.011064 -0.123109 -0.008590 +0.038570 -0.013241 0.026994 -0.007213 -0.000633 +0.001257 -0.072096 0.057499 0.003234 0.041459 +-0.084929 -0.010858 0.034929 0.018375 -0.101168 +-0.009436 0.035974 -0.047298 0.107772 -0.014572 +-0.033241 0.076725 -0.052278 -0.044989 0.064574 +-0.034320 -0.080934 -0.062584 -0.052365 -0.007583 +0.043332 -0.039973 0.001890 0.081092 0.032425 +0.072661 0.019296 -0.009173 -0.013795 -0.048534 +0.003494 -0.036829 0.029480 0.062652 0.019438 +0.003633 -0.011968 -0.096593 -0.102286 0.064289 +-0.051416 -0.052157 -0.106111 0.005858 -0.031779 +0.001473 0.071136 -0.017587 0.041119 -0.084642 +-0.019285 0.061407 0.024265 -0.082217 0.101714 +-0.021349 -0.011424 -0.157899 -0.011584 0.086331 +-0.079601 0.013742 -0.095978 0.093032 0.011498 +-0.108846 -0.042340 -0.021774 -0.091363 -0.082840 +-0.068721 -0.023200 0.069062 0.025331 -0.063542 +-0.002176 -0.044709 -0.011586 -0.035579 -0.061392 +0.002329 -0.055782 0.087560 -0.009142 -0.031210 +0.087176 0.029363 0.048300 0.030101 0.003028 +-0.006744 0.110741 0.047285 0.042711 0.114962 +-0.014983 0.067022 -0.034867 0.007693 0.108661 +0.072716 0.001158 -0.020279 0.097118 -0.049090 +0.018332 0.073348 0.048479 0.038012 -0.075550 +0.024128 -0.002290 0.027979 -0.007476 0.128642 +0.063321 -0.016130 -0.010724 -0.033216 0.012203 +0.004603 -0.069020 0.019149 0.023442 -0.041990 +0.001559 -0.054141 -0.017873 0.001051 0.009669 +0.007371 0.043631 0.032348 -0.066689 -0.007712 +0.075542 0.039341 -0.074389 0.089409 -0.067587 +0.013297 -0.123535 -0.034031 0.013429 0.024826 +0.017265 0.052105 0.067939 -0.101957 -0.053347 +0.046413 0.004984 0.062332 0.030324 0.060242 +-0.025911 -0.060816 0.054284 -0.056832 0.016850 +0.007933 -0.018569 -0.000549 0.026701 -0.090331 +-0.006708 0.055666 0.016664 0.060888 -0.010839 +-0.037232 0.056511 -0.020495 -0.017025 0.030780 +-0.059804 -0.054145 -0.035811 -0.030383 -0.022947 +-0.038436 -0.017628 -0.001154 0.071736 0.013679 +0.089806 0.109393 0.002158 0.022933 -0.009429 +-0.081438 -0.020658 0.036259 0.054585 0.017455 +0.037820 0.018769 -0.052528 -0.146355 0.121991 +-0.018012 -0.054744 0.003927 0.003980 -0.068627 +-0.025582 0.068240 0.012886 -0.118982 -0.025012 +-0.060768 0.074453 0.039306 0.043620 -0.021238 +0.008481 -0.086583 -0.067953 0.013657 -0.016164 +0.052682 0.037754 -0.034526 0.147500 -0.038053 +-0.000554 0.038997 -0.033353 -0.103730 -0.024374 +0.063047 0.007908 0.052749 -0.060232 0.105523 +-0.018157 -0.023187 0.050942 -0.044718 0.023590 +-0.031973 -0.076362 0.073925 0.002114 -0.024398 +-0.058682 0.080042 0.018073 0.170306 0.034023 +0.049977 -0.005101 0.005590 0.044243 0.045804 +-0.002783 0.065756 -0.036121 -0.026414 -0.032356 +0.022865 0.009608 0.014138 0.076862 -0.045138 +0.060759 0.119694 0.029403 -0.106477 -0.030301 +0.005873 -0.044463 0.032373 0.018732 0.030235 +0.054996 0.014096 -0.056245 -0.108233 0.076912 +-0.003553 -0.057174 0.014594 -0.044747 -0.000811 +-0.070712 0.032588 0.016264 0.000303 0.049043 +0.009463 0.074638 0.018082 0.009662 0.016092 +0.002476 0.044398 -0.087719 -0.019282 -0.061589 +0.060302 -0.067478 -0.040506 0.023576 0.052937 +-0.072603 -0.012619 0.001381 -0.072008 -0.029615 +0.037036 -0.024612 0.072062 -0.042065 0.019378 +-0.040438 -0.119783 -0.006434 -0.060809 0.085511 +-0.008272 0.020380 0.022744 0.066027 -0.063608 +0.000489 0.072277 0.001453 0.008278 0.040882 +0.032724 0.159938 -0.041156 0.022564 0.038648 +0.014324 -0.095703 -0.056763 -0.088713 0.020001 +-0.023825 0.027423 -0.018492 0.065606 0.000365 +0.039845 0.018820 -0.038350 -0.078718 -0.033629 +-0.001663 0.009565 0.108200 0.058847 0.065809 +-0.049633 -0.045554 0.020137 -0.086381 0.091892 +-0.002517 -0.024076 -0.000222 0.049573 -0.129418 +-0.045283 0.051515 -0.006173 0.029917 -0.010061 +0.006979 0.078079 0.067161 -0.006824 0.036737 +0.001946 0.029299 -0.146673 0.005204 -0.049944 +-0.003573 -0.022387 -0.192735 0.086714 0.000681 +0.023023 0.025278 0.032334 -0.092047 -0.097106 +0.009314 -0.026795 0.048717 -0.014619 0.009445 +-0.034367 0.013246 0.033975 0.027681 -0.048279 +-0.034841 -0.011498 0.129486 0.012413 -0.099857 +-0.009759 0.017468 0.030971 0.054610 0.058014 +-0.053387 0.017293 0.044926 0.081337 0.056077 +-0.014173 0.033715 -0.080168 -0.039195 0.057433 +-0.008063 -0.024017 -0.029873 0.059315 -0.016884 +0.037413 0.102710 0.039066 -0.000322 -0.007096 +0.001081 0.004899 0.064913 -0.009724 0.052938 +0.080878 -0.088833 0.017234 -0.064402 0.068572 +-0.037607 -0.071831 0.000857 0.017839 -0.001686 +0.014565 0.002904 0.000522 -0.003298 0.002213 +0.095679 0.012244 0.036755 -0.099818 0.011289 +-0.028433 0.070577 -0.043776 -0.022561 -0.076359 +-0.030471 -0.127211 -0.047570 0.077242 -0.002030 +0.022748 -0.045608 0.087172 -0.006712 -0.112507 +0.048520 -0.049787 0.033883 0.026952 0.022558 +0.062996 0.012765 0.026950 -0.066289 -0.068448 +0.054918 0.003780 0.040104 -0.005777 -0.085504 +0.064809 0.077196 0.014756 0.043405 0.023787 +0.031364 0.128719 -0.042317 -0.004864 0.087827 +-0.029815 -0.093621 -0.008519 -0.023955 0.051611 +-0.014788 -0.068189 0.037225 0.179376 -0.029766 +0.060538 0.006306 0.012777 0.019308 0.009494 +-0.008692 -0.017852 0.038436 0.046522 0.130088 +-0.012523 -0.023608 0.032478 -0.090472 0.044247 +-0.044404 -0.030180 -0.040445 0.035083 -0.032830 +-0.072877 0.049263 0.081485 -0.069301 0.014635 +-0.057655 0.197364 -0.000351 -0.022115 0.039887 +0.042215 -0.009109 -0.086347 -0.104682 -0.049640 +-0.047970 -0.025332 -0.040848 0.083051 -0.021243 +-0.028802 0.015424 0.001733 -0.128243 -0.060411 +0.055727 0.057515 0.146167 -0.056022 0.024345 +0.002416 -0.015298 0.002236 -0.020925 -0.036973 +-0.029182 -0.058852 0.072372 -0.069443 -0.038400 +-0.056167 0.006957 0.068247 0.059373 -0.048485 +0.034235 0.048623 -0.036035 0.085210 0.110573 +-0.015337 0.046972 -0.043542 0.006351 0.031155 +0.088626 0.069233 0.008134 0.019241 -0.060153 +0.041371 0.089979 -0.041853 0.023626 0.016064 +-0.053828 -0.049329 -0.016176 -0.013092 0.057257 +0.069686 -0.046114 -0.045261 -0.039290 0.020585 +0.061314 -0.027727 -0.001927 0.022808 -0.015832 +-0.075912 -0.014836 0.002965 0.081369 -0.022597 +0.005534 0.065315 0.044334 -0.043319 -0.041186 +-0.013693 0.026330 -0.020694 0.032579 -0.067664 +-0.035584 -0.076274 -0.115553 0.029283 0.115779 +0.013526 -0.034741 0.010015 -0.130855 -0.047597 +0.080984 0.031915 0.048376 -0.028547 -0.023234 +-0.052917 -0.103074 0.071678 -0.043019 -0.020299 +-0.045608 0.007487 -0.028223 0.036499 -0.089053 +-0.034453 0.074651 -0.025209 0.077487 -0.013263 +0.004921 0.072189 -0.050852 0.059399 0.035439 +0.002935 -0.054894 -0.031357 -0.070326 -0.036947 +-0.026730 0.036590 -0.025250 0.113258 0.121094 +0.080910 0.042350 -0.092512 -0.043499 -0.025455 +0.034745 -0.070282 0.032647 0.111722 -0.019157 +0.020761 0.013997 -0.061982 -0.060954 0.055112 +0.036288 -0.080176 -0.027267 0.012212 -0.093795 +-0.041882 0.097155 0.087384 -0.031435 -0.082801 +0.009464 0.032459 0.077828 -0.112376 0.108840 +0.019555 0.014775 -0.073011 -0.043973 0.011444 +-0.048044 0.056260 -0.038387 0.043656 0.008263 +-0.014005 -0.016142 -0.038569 -0.064552 -0.057510 +-0.078202 -0.059032 0.084016 -0.010298 0.012574 +-0.020059 -0.064059 -0.059392 -0.046799 -0.054238 +0.022026 -0.006059 0.084724 0.041685 -0.029012 +0.026514 0.032033 0.022922 0.031857 0.030105 +-0.035650 0.031377 -0.030435 0.061662 0.079732 +-0.025495 0.041751 -0.112711 -0.015737 0.015504 +0.121804 -0.030913 -0.016931 0.056284 -0.031211 +-0.038259 -0.005525 0.074063 -0.019980 -0.074225 +-0.043126 -0.008346 0.052048 -0.010386 0.102477 +0.020457 -0.053151 0.037134 -0.048166 0.025535 +-0.004324 -0.102005 0.042549 0.062684 -0.011027 +-0.041502 -0.022180 -0.001040 0.012690 0.058495 +0.039481 0.061425 0.036436 -0.094401 0.024691 +-0.002509 -0.024231 -0.105831 0.050352 -0.105564 +0.036061 -0.093016 -0.042697 0.049621 -0.014022 +0.037095 0.014433 0.054764 -0.096569 -0.011104 +0.004844 0.011453 0.022667 -0.022798 0.002655 +0.021742 -0.079613 0.045351 -0.079863 0.014770 +0.050245 -0.026754 -0.023870 0.015727 -0.098730 +0.042398 0.154448 -0.009362 0.081429 -0.020656 +-0.072560 0.133852 0.025744 -0.109001 0.075747 +-0.059454 -0.002469 -0.103847 -0.008798 0.031741 +-0.020032 -0.011426 -0.002985 0.061967 -0.058554 +0.096033 0.053995 -0.071745 0.012181 0.016611 +-0.051161 -0.042525 0.015651 0.078963 0.054139 +-0.007119 0.014112 0.000797 -0.147306 0.012158 +-0.048199 -0.042152 -0.060602 0.035608 -0.095526 +-0.044437 0.079277 -0.036361 -0.085666 0.005652 +-0.035263 0.081781 0.098388 -0.015160 0.032423 +0.048597 -0.010937 -0.045141 -0.016016 -0.045851 +0.017285 0.029554 -0.068669 0.090490 -0.069378 +-0.015215 0.065693 -0.080376 -0.098850 -0.001785 +-0.000808 0.001812 0.047789 -0.059522 0.029808 +-0.040358 -0.013967 -0.035444 -0.057752 0.011251 +0.027783 -0.009928 0.081566 -0.060520 -0.032563 +-0.018103 0.008202 0.020263 0.036779 0.028019 +0.034566 0.020755 0.010139 0.022813 0.071878 +-0.033001 0.012734 -0.101437 -0.069713 0.016386 +0.040255 0.034849 0.017738 0.082952 0.030522 +0.011027 0.101822 0.000381 -0.044621 -0.048575 +-0.018043 -0.104642 0.042318 0.024433 0.071077 +0.028556 0.050381 -0.035783 -0.004765 0.019134 +0.004109 -0.114088 -0.030007 -0.003475 -0.033302 +-0.132027 -0.012463 -0.036186 0.000562 -0.054043 +-0.003544 0.052264 0.043304 0.012117 0.016872 +-0.034524 0.066372 -0.065579 -0.033370 0.014889 +0.004579 -0.049747 -0.050504 0.049331 0.040066 +-0.125392 -0.097291 0.050421 -0.071309 -0.051625 +0.065285 0.022484 0.062435 0.017569 -0.040502 +-0.004470 -0.054208 0.010625 -0.094016 0.022508 +0.033725 0.032426 -0.015455 0.036159 -0.115369 +-0.103817 0.142767 -0.000238 -0.019162 0.008959 +0.030765 0.075502 -0.088049 0.017398 0.024749 +-0.021910 -0.075993 -0.149318 -0.174722 0.102620 +0.008195 -0.009007 0.007189 0.076657 0.014460 +0.034428 0.027255 -0.013869 -0.050491 -0.048691 +0.037759 -0.098562 0.085631 0.021691 -0.000794 +-0.029941 0.026585 -0.033603 -0.014074 0.066789 +0.005141 -0.012246 -0.067551 0.100708 -0.040232 +-0.002751 0.049901 0.016959 0.021812 -0.059523 +-0.022331 0.030079 0.058567 -0.029002 0.104237 +-0.013602 -0.035019 -0.155316 0.016558 -0.013881 +0.004136 -0.001657 -0.097220 0.019060 0.052990 +0.004200 0.054365 -0.016768 -0.045191 -0.105984 +-0.052803 -0.016935 0.092437 -0.013893 -0.033606 +-0.023246 -0.039305 0.036068 -0.020164 -0.060244 +0.045916 -0.014132 0.044463 0.046890 -0.118975 +0.074037 0.010976 0.090692 0.090068 0.023711 +-0.044310 0.007556 -0.037900 0.026798 0.084256 +0.002559 0.013715 0.004015 0.008334 0.101711 +0.022258 0.030790 -0.065656 0.019198 -0.035505 +0.026328 0.028683 0.115303 -0.028803 -0.086521 +-0.004355 -0.046031 0.011248 -0.040795 0.121216 +0.000425 -0.056590 0.011373 -0.070856 0.064965 +-0.043302 -0.095015 0.013747 0.048043 0.047157 +-0.046839 -0.005878 -0.013815 0.028948 -0.001373 +0.115513 0.049750 0.038856 0.002747 0.068706 +-0.059471 0.083940 -0.035785 0.026815 -0.027017 +0.004618 -0.093707 -0.031970 0.104710 -0.008533 +-0.008056 -0.017611 0.038062 -0.073507 -0.036477 +0.022407 -0.059049 0.022840 0.012451 -0.010174 +0.057217 -0.050858 -0.053612 -0.064090 -0.097360 +0.041668 -0.011445 -0.075167 0.006584 -0.122856 +-0.011272 0.137465 -0.067901 0.011357 -0.050853 +0.020753 0.070596 0.004302 -0.066991 0.055696 +-0.043828 -0.042721 -0.096928 -0.047589 0.046254 +-0.027538 -0.005234 0.030541 0.077571 -0.039512 +0.032372 -0.022397 0.002903 0.014010 0.028365 +0.007460 0.011506 0.019889 0.062747 0.095319 +0.052300 0.007374 0.036028 -0.116833 0.049517 +0.004313 -0.039924 -0.005692 0.035446 -0.006279 +-0.092093 0.025645 0.053023 -0.015761 -0.045887 +-0.018082 0.081602 0.046870 0.015485 0.067284 +0.055890 0.008159 -0.036149 -0.067704 -0.096800 +0.015948 -0.036949 -0.083131 0.080618 0.031677 +0.025776 0.047673 -0.012634 -0.098220 0.039341 +0.018630 0.024685 0.068760 -0.009148 -0.006932 +0.000131 -0.009954 -0.075954 -0.020703 0.000996 +-0.040731 -0.082876 0.075619 0.017000 -0.130026 +0.003839 0.083757 0.085935 0.058477 -0.018794 +0.019268 0.053820 -0.025907 -0.016484 0.048963 +0.017315 0.011801 -0.016617 -0.016373 0.052079 +0.016567 0.064592 -0.011714 0.047244 -0.029583 +-0.010269 0.112646 -0.025079 -0.018015 -0.021550 +-0.019521 -0.111462 -0.047937 -0.002779 0.083724 +0.004416 0.004607 -0.006974 -0.101561 0.027376 +0.083440 -0.109869 -0.002361 -0.011364 -0.079707 +-0.138325 -0.095825 0.034339 0.024551 -0.012431 +-0.000401 0.007608 0.013950 -0.060441 0.010061 +0.012546 -0.000065 -0.023529 0.015494 -0.012896 +-0.014981 -0.019040 -0.043634 0.076437 0.059672 +0.014985 -0.037394 0.020033 -0.082023 -0.016717 +0.029711 -0.006237 0.055347 0.024365 0.002094 +0.019464 -0.038260 0.127306 -0.051862 0.049168 +-0.074259 -0.022269 0.023182 0.071183 -0.065354 +-0.055933 0.064170 -0.055712 0.107983 0.054978 +0.015294 0.093224 -0.052328 0.000761 -0.020823 +0.023903 -0.063241 -0.093322 -0.054658 -0.006845 +0.048141 -0.023201 -0.047564 0.106605 0.000059 +0.146340 0.030121 -0.040556 -0.020381 -0.050294 +0.016659 -0.021563 0.027855 0.069633 -0.009148 +0.027112 0.056646 -0.023372 -0.211107 0.014012 +-0.019924 -0.122201 -0.040118 0.003571 -0.146470 +0.017162 0.075261 0.002383 -0.006374 -0.081174 +0.043906 -0.005278 -0.027448 -0.046459 0.140484 +0.008671 0.019853 -0.128017 -0.022950 0.048609 +-0.019167 -0.010958 -0.061823 0.072910 0.001440 +-0.023976 -0.030275 0.027463 -0.138470 -0.139145 +-0.028088 -0.013451 0.113264 0.081011 -0.012685 +0.006025 -0.055737 0.022779 -0.019951 -0.046793 +-0.015091 -0.017958 0.063092 0.032101 -0.004007 +0.052309 0.070815 0.012148 0.095984 0.074330 +0.006032 0.083156 -0.045278 0.013825 0.066658 +-0.000966 0.053253 -0.095660 -0.022943 0.108130 +0.092983 -0.012055 0.008111 0.064988 0.010427 +0.042345 0.042586 0.077502 0.053009 -0.031546 +-0.004484 -0.019859 0.027061 0.016614 0.085821 +0.089250 0.014975 -0.022722 -0.045228 0.047095 +-0.028190 -0.124509 -0.029014 0.024231 -0.016564 +-0.025209 -0.031288 -0.023742 0.040341 0.030385 +-0.022564 0.023760 0.018611 -0.077310 0.051696 +0.028200 0.005454 -0.045487 0.027221 -0.074627 +-0.040934 -0.110565 -0.103536 0.033125 0.041451 +-0.017540 0.013737 0.131164 -0.103202 -0.000294 +0.030605 -0.030002 0.058861 0.024425 0.055122 +0.021447 -0.043394 0.039465 -0.020523 -0.012530 +-0.003317 -0.002650 -0.020200 -0.002414 -0.060515 +0.003135 0.115504 0.005075 0.072669 0.057819 +-0.075310 0.064527 0.025999 -0.067556 0.046351 +-0.124098 -0.049305 -0.009230 -0.084801 0.068375 +-0.026781 -0.066657 0.010588 0.093986 0.017406 +0.047141 0.053480 -0.019255 0.069267 0.010659 +-0.068511 0.015815 -0.011687 0.047685 0.033658 +0.064260 0.062994 0.018822 -0.143452 0.092703 +-0.029884 -0.006035 -0.016152 -0.021618 -0.045339 +-0.049252 0.041988 -0.021510 -0.039175 -0.031350 +-0.101541 0.005832 0.055761 0.009961 0.086386 +0.007597 -0.052775 -0.079976 0.023111 0.004302 +-0.020123 0.039264 -0.062497 0.078009 0.004409 +-0.063787 0.038329 -0.055050 -0.086972 -0.084417 +0.025733 -0.011156 0.104895 0.026765 0.037827 +-0.013149 0.009709 0.004095 -0.039085 0.041414 +-0.018153 -0.088525 0.078011 -0.022509 -0.080366 +-0.047630 0.036346 0.013702 0.071239 0.024081 +0.114305 -0.072565 0.004642 0.035947 0.040623 +-0.017954 0.045965 -0.007375 -0.030016 -0.004483 +0.040170 0.083716 0.012267 0.096863 -0.028263 +0.000694 0.069353 0.024960 -0.069792 -0.070096 +-0.028321 -0.072324 0.018256 0.000091 0.049255 +0.038695 0.041521 -0.035000 -0.034223 0.090426 +-0.004319 -0.060041 0.030034 -0.014687 0.016165 +-0.139996 0.013811 0.037782 -0.083214 0.054142 +0.024863 0.017964 0.045207 0.006294 0.058657 +-0.071515 0.093447 -0.050680 -0.014853 -0.071657 +0.007823 -0.010828 -0.096918 0.050508 0.136819 +-0.042282 -0.060920 -0.006691 -0.054808 -0.055435 +0.076309 -0.048186 0.105925 -0.031527 -0.030737 +-0.043870 -0.102846 0.054550 -0.095983 0.065369 +-0.027944 0.014204 0.008256 0.035180 -0.105002 +-0.011778 0.036941 -0.007284 0.034566 0.002672 +-0.011867 0.094032 -0.081505 -0.042171 -0.012357 +0.025234 -0.142099 -0.011399 -0.092199 0.016061 +-0.007420 0.024527 0.010787 0.089568 0.009287 +0.040383 0.043550 0.036649 -0.055816 -0.039815 +0.029883 -0.031089 0.087022 0.064863 0.035410 +-0.010187 0.023054 -0.018519 -0.057105 0.026218 +-0.007645 -0.026641 -0.033134 0.044367 -0.059939 +-0.047569 0.091489 0.022502 0.013205 -0.056318 +0.041414 0.022193 0.081274 -0.006608 0.035220 +-0.012493 0.024440 -0.105974 -0.058317 -0.038994 +0.042143 0.057826 -0.117349 0.047843 0.089338 +0.065029 0.029927 -0.014494 -0.010548 -0.129518 +-0.033996 -0.030825 0.032254 -0.021848 -0.021345 +-0.065200 0.012770 0.020636 -0.034493 -0.080268 +-0.015033 -0.018599 0.076611 0.034283 -0.084435 +0.051904 0.063942 0.046362 0.039561 0.096234 +-0.030658 0.054240 0.027612 0.022042 0.112035 +-0.045512 -0.048431 -0.084263 -0.015994 0.103483 +0.045903 -0.004115 -0.021572 0.057589 0.016494 +0.013949 0.101635 0.127534 0.014985 -0.006815 +-0.053449 -0.000707 0.052773 -0.047290 0.071075 +0.041771 -0.079418 -0.026505 -0.082019 0.091756 +-0.088458 -0.055800 0.015266 0.048373 -0.028842 +0.004456 0.001112 0.005363 0.012172 -0.036807 +0.063688 0.114491 -0.034186 -0.082173 0.044547 +0.010385 0.061010 -0.075589 0.038888 -0.057732 +-0.068354 -0.091781 -0.001533 0.042343 0.007713 +-0.003066 -0.016490 0.097581 -0.008705 -0.169889 +0.041901 -0.029045 0.088606 0.028236 -0.005092 +0.087986 -0.005514 -0.001520 -0.067407 -0.036923 +0.018378 -0.001874 0.029761 -0.028224 -0.114769 +0.024657 0.082316 0.020235 0.034884 -0.039374 +0.106617 0.085265 -0.014306 -0.039880 0.059967 +-0.020866 -0.045287 -0.013407 -0.029010 0.025480 +0.020099 -0.053760 0.035241 0.067883 -0.069313 +0.022318 0.001659 -0.045385 -0.001930 0.007348 +0.027072 -0.051692 0.069337 0.012098 0.107819 +-0.026942 -0.039741 0.043295 -0.135918 0.031043 +-0.040145 -0.021705 -0.052514 0.001132 -0.030098 +-0.040748 0.046793 0.149894 -0.021036 -0.023530 +-0.040778 0.085491 0.068161 0.033268 0.032992 +-0.008355 0.008600 -0.125074 -0.034204 -0.082832 +0.030318 0.000442 -0.007943 0.113836 -0.044022 +0.015079 0.065357 -0.018956 -0.092656 -0.056274 +-0.017481 -0.004857 0.117201 -0.005233 0.069151 +0.011030 -0.024316 -0.015695 -0.011308 -0.005062 +-0.010876 -0.038919 0.032578 -0.054136 -0.121302 +-0.046807 0.041175 0.059588 0.031040 -0.027127 +0.021551 0.000830 -0.013766 0.046306 0.081467 +0.014301 -0.010731 -0.051227 -0.018797 0.043587 +0.050317 0.086115 -0.027629 0.046202 -0.084445 +0.021044 0.041527 0.005458 0.006677 0.002404 +-0.037453 -0.035957 -0.039078 -0.063247 0.088516 +0.079477 0.004030 -0.063421 -0.074051 -0.039753 +0.062917 -0.119760 -0.002471 0.000423 0.007336 +-0.124273 0.001094 -0.026391 0.070714 -0.035166 +0.037072 0.018118 0.017500 -0.050692 -0.015928 +-0.003390 -0.002367 -0.040046 0.013349 -0.041478 +-0.034407 -0.009890 -0.095593 0.109253 0.041509 +-0.062990 -0.041682 0.001528 -0.124601 -0.030128 +0.086076 0.003516 0.073015 0.024339 -0.069858 +-0.022435 -0.042554 0.107497 -0.132302 0.035124 +-0.105430 0.042327 -0.064964 0.057304 -0.092634 +-0.058398 0.052083 0.018947 0.087990 -0.026444 +0.023373 0.037085 -0.083589 0.015247 0.016566 +-0.026782 -0.070361 -0.019757 -0.109826 -0.040199 +-0.009688 -0.005408 -0.003769 0.111444 0.029897 +0.070686 0.021466 -0.052076 0.015609 -0.023854 +0.008088 -0.022084 0.052542 0.122824 -0.018174 +-0.009808 0.107602 -0.059166 -0.100824 0.082456 +-0.004737 -0.023536 -0.095212 -0.007114 -0.098814 +-0.061778 0.049247 0.025130 0.010909 -0.091691 +0.034764 -0.014047 0.002819 -0.050330 0.085399 +0.057257 -0.052435 -0.067151 -0.012311 0.040602 +-0.118166 0.053141 -0.119211 0.024274 0.027075 +-0.022345 -0.060443 -0.046916 -0.099227 -0.115958 +-0.071020 0.015499 0.055810 -0.012697 0.010803 +-0.051685 -0.097540 0.013970 -0.096689 -0.060525 +0.010422 0.018434 0.151855 0.015230 -0.080804 +0.040130 0.043946 0.022887 0.043819 -0.027371 +0.037213 0.059423 -0.040656 0.141843 0.065180 +-0.083238 0.057208 -0.113200 -0.056009 0.030056 +0.060522 -0.054570 0.006137 0.062833 -0.081547 +0.002753 0.037357 0.055441 0.049180 -0.017699 +-0.006225 0.029216 0.040657 0.016328 0.041969 +0.058998 -0.067000 0.002571 -0.008178 0.027776 +-0.026103 -0.049399 0.093279 0.052313 -0.029958 +-0.070689 -0.054589 0.027325 -0.010464 -0.000604 +0.009479 0.125126 0.086072 -0.052874 0.065774 +0.003009 0.013855 -0.088166 0.018907 -0.064212 +0.023827 -0.024022 -0.121652 0.032035 0.015278 +0.023427 -0.027194 0.066092 -0.100117 -0.048548 +0.013755 0.005344 0.038451 -0.000513 0.018468 +0.065931 -0.062001 0.035615 -0.067561 -0.013315 +0.045441 -0.016064 0.010535 0.035953 -0.068093 +0.035872 0.097935 -0.025516 0.061435 0.028137 +-0.042656 0.110708 -0.022981 -0.052860 -0.009583 +-0.084678 -0.040172 -0.092364 0.061778 0.003794 +-0.002964 -0.047375 -0.029968 0.090529 -0.045382 +0.103144 0.034998 -0.012760 0.013885 0.048887 +-0.049886 -0.034647 0.061193 0.058574 0.084107 +-0.022304 -0.008817 0.036857 -0.119972 0.000619 +-0.079467 -0.031710 -0.108927 -0.033843 -0.034845 +-0.125290 0.079806 -0.011673 -0.070719 -0.063897 +-0.051524 0.042071 0.082303 -0.016684 0.053366 +0.024657 -0.062913 -0.040533 -0.032117 -0.013188 +0.036519 0.055734 -0.134481 0.055949 -0.050480 +0.002035 0.010998 -0.064264 -0.078569 -0.026404 +-0.017580 0.005453 0.068795 -0.031274 0.024178 +-0.038245 -0.037973 -0.013256 -0.072256 0.057358 +-0.004941 -0.047850 0.119977 -0.015040 -0.079231 +-0.013449 -0.005542 0.028890 0.032536 -0.020619 +0.083769 -0.028624 0.049040 0.021538 0.104107 +-0.072475 0.019284 -0.044425 -0.058775 0.061172 +0.025682 0.004208 0.041846 0.095369 0.007892 +0.030701 0.062103 -0.086288 -0.068866 -0.110743 +0.052685 -0.069032 0.010339 0.044804 0.106157 +0.105575 0.017263 -0.110890 -0.040735 0.061412 +0.021037 -0.102095 0.039008 0.010335 0.005686 +-0.108307 0.057569 -0.004539 -0.019864 0.033710 +-0.031254 0.013482 0.035051 0.014893 -0.001676 +-0.053780 0.014329 -0.037130 0.010087 -0.043959 +0.031302 -0.006715 -0.065618 0.066261 0.071102 +-0.085133 -0.020753 0.050721 -0.042021 0.006613 +0.038123 0.041345 0.095993 -0.028353 -0.008509 +-0.039544 -0.069281 0.047585 -0.020085 0.000819 +0.000478 0.017818 0.008015 0.068812 -0.184380 +-0.073606 0.120550 -0.032173 0.058092 0.024132 +-0.016705 0.130871 -0.094852 0.044256 0.003919 +-0.002119 -0.026963 -0.003553 -0.110166 0.083113 +-0.008545 -0.026785 0.025936 0.069075 0.054271 +0.029418 0.039817 0.040088 -0.036680 -0.073300 +-0.003368 -0.074471 0.111772 0.030913 -0.018960 +-0.040689 0.058799 -0.017810 -0.064269 0.071408 +-0.022927 -0.077256 -0.075665 0.100717 -0.099471 +0.004792 0.063353 -0.017202 -0.012465 -0.052031 +0.015659 0.049801 0.020300 0.001231 0.061694 +-0.002196 -0.039936 -0.095913 -0.006760 -0.036261 +-0.004827 -0.023039 -0.062452 0.023724 0.043337 +0.002849 -0.004311 -0.067199 -0.039365 -0.082845 +-0.036454 -0.014788 0.059651 -0.039192 -0.021445 +-0.003667 -0.011645 0.021036 -0.006220 -0.025338 +0.010705 -0.002077 0.043196 0.035112 -0.036895 +0.017671 0.003759 0.106991 0.040822 0.011089 +-0.048837 0.025240 -0.002343 0.015983 0.080230 +-0.005045 -0.000454 -0.055852 -0.004494 0.084580 +0.044207 -0.018164 -0.035672 0.024802 -0.028216 +0.026617 0.021648 0.082157 0.012675 -0.049856 +0.001020 -0.118363 0.069854 -0.038161 0.096174 +0.032049 -0.035139 -0.015943 -0.028306 0.055425 +-0.092742 -0.074326 0.010130 -0.020646 0.043131 +-0.014246 -0.037891 0.006922 0.059464 -0.023168 +0.059938 0.021652 -0.004602 -0.005103 0.062343 +0.000410 0.032704 -0.087978 0.042098 -0.008283 +0.000714 -0.078595 0.004443 0.036763 0.004995 +-0.050964 0.045909 0.038942 -0.052841 -0.054318 +0.033939 -0.020268 0.019574 0.029805 -0.002001 +0.068470 -0.056316 0.007236 -0.031313 -0.066063 +-0.003425 0.022247 -0.018479 -0.008040 -0.105011 +-0.109717 0.132884 0.056892 0.052155 -0.073444 +0.051067 0.107179 0.014594 -0.036657 0.110846 +-0.009896 -0.042527 -0.082220 -0.007607 0.057007 +-0.034754 0.003213 0.041643 0.142016 -0.007658 +0.012781 0.014366 -0.021935 0.010511 0.028021 +0.002082 -0.027023 0.055247 0.097082 0.111840 +0.040151 -0.019830 -0.007033 -0.097207 0.026595 +-0.069875 -0.070451 -0.049743 0.053253 -0.019762 +-0.078475 0.043019 0.022103 -0.033625 -0.008627 +0.058858 0.080427 0.060029 0.002771 0.041250 +0.030257 -0.044059 -0.001226 -0.060544 -0.126844 +-0.029407 -0.021079 -0.108126 0.070012 -0.006653 +0.013084 0.090992 -0.002726 -0.070041 -0.006757 +-0.017571 0.027459 0.103937 0.003012 0.038213 +-0.007808 -0.011937 -0.015457 -0.033181 0.012816 +0.010199 -0.056227 0.006057 -0.017569 -0.098687 +0.006000 0.076819 0.022272 0.082508 -0.058508 +0.031808 0.054009 0.007871 0.055301 0.070296 +0.023941 0.025656 -0.005875 -0.068203 0.027482 +0.036615 0.026218 -0.011406 0.026235 -0.022002 +-0.011161 0.120568 0.023165 -0.010473 0.002080 +-0.033028 -0.043255 -0.030454 0.009261 0.113350 +0.023271 -0.015934 -0.037492 -0.032890 0.016928 +0.020967 -0.090717 -0.016510 0.070725 -0.063975 +-0.097203 0.017597 0.016946 0.027298 -0.016049 +-0.019287 -0.005319 0.019000 -0.037327 -0.040993 +-0.003975 0.027897 -0.095076 -0.010053 -0.014610 +0.005584 -0.024009 0.000599 0.082121 0.098790 +0.005987 -0.036027 -0.067221 -0.128015 -0.052111 +0.056606 -0.020029 0.012172 -0.018025 -0.028588 +-0.015169 -0.087101 0.044526 -0.022464 0.054835 +-0.084369 -0.058286 -0.039363 -0.003339 -0.116729 +-0.051506 0.079944 -0.023815 0.113004 -0.052120 +-0.012383 0.075636 -0.024387 -0.039200 0.032050 +-0.031568 -0.140199 -0.082589 -0.060485 -0.013115 +0.092001 -0.002684 -0.027087 0.111635 0.050016 +0.077055 -0.010441 -0.006942 -0.026898 -0.083879 +-0.008401 -0.026725 0.049993 0.043707 0.027966 +-0.019866 -0.057701 -0.086619 -0.114361 -0.008921 +-0.039708 -0.122519 -0.074209 0.014381 -0.065102 +-0.023419 0.118673 -0.000005 0.071661 -0.127659 +-0.009184 0.020308 0.019151 -0.054484 0.096378 +0.016102 -0.060605 -0.128655 -0.004225 0.079251 +-0.021895 0.024065 -0.097479 0.045279 -0.036151 +-0.045806 0.005106 0.000093 -0.074415 -0.071654 +-0.067599 -0.017537 0.050178 0.015860 -0.018919 +-0.015382 -0.057989 0.032437 -0.039627 -0.030285 +0.015438 -0.005533 0.110416 -0.004137 -0.030336 +0.085365 0.089779 0.061676 0.017178 -0.016279 +0.028526 0.055656 0.008566 0.000706 0.124966 +-0.018124 0.040023 -0.067773 0.028532 0.098381 +0.062832 -0.038523 0.003865 0.065698 -0.026661 +0.076081 0.062167 0.112325 0.052139 -0.040826 +0.003747 -0.052113 0.013442 0.002756 0.102858 +0.040603 -0.012693 0.031245 -0.046645 -0.003625 +-0.024647 -0.062463 0.000476 0.024807 -0.036286 +-0.003083 -0.015952 -0.016156 0.002976 0.016598 +-0.015092 0.058522 0.011542 -0.046504 0.009174 +0.097896 0.056220 -0.055387 0.022356 -0.126788 +0.024795 -0.092333 -0.084406 -0.010051 0.060835 +0.013338 -0.010735 0.052739 -0.119952 -0.093185 +0.010522 -0.001505 0.056134 0.038675 0.016542 +0.005217 -0.061424 0.071990 -0.028908 0.011826 +-0.009221 -0.010760 0.023849 0.034664 -0.066108 +0.018587 0.070818 0.013554 0.106469 0.035530 +-0.060716 0.072344 0.010625 -0.017888 0.006548 +-0.122347 -0.080419 -0.039979 -0.045658 -0.046576 +-0.040526 -0.039641 -0.048709 0.067016 0.023042 +0.064800 0.099396 -0.064314 0.005665 -0.025960 +-0.094387 -0.056820 0.015466 0.086382 0.024902 +-0.019486 0.021888 0.000550 -0.168957 0.071388 +-0.019935 -0.042118 -0.040820 -0.012013 -0.072063 +-0.004249 0.039160 0.010084 -0.080610 -0.043915 +-0.101425 0.074442 0.035350 0.051348 0.051160 +-0.031631 -0.053381 -0.062261 -0.020441 -0.031251 +0.050923 0.000358 -0.074646 0.076663 -0.042498 +-0.033718 0.037025 -0.017087 -0.091951 0.017983 +0.015622 0.007807 0.087203 -0.061047 0.077306 +-0.049822 0.015499 0.035918 -0.044388 0.034786 +-0.003435 -0.072680 0.042506 -0.004200 -0.024834 +-0.034415 0.065814 0.079911 0.117115 0.013096 +0.065811 0.001560 0.054427 0.085716 0.083343 +-0.034994 0.035815 -0.034661 -0.032421 0.000133 +0.021908 0.041958 -0.008418 0.091804 -0.023169 +0.019306 0.087287 0.064984 -0.052908 -0.010301 +-0.022717 -0.062698 0.029605 0.020970 0.011270 +0.049229 -0.033794 -0.040198 -0.068419 0.063147 +-0.023097 -0.079045 -0.010748 -0.064320 -0.011785 +-0.108984 0.015970 -0.038308 0.017991 0.062400 +-0.000719 0.044392 0.034008 -0.020969 0.006446 +-0.044457 0.044495 -0.084323 -0.014046 -0.057116 +0.037862 -0.024751 -0.045926 0.007665 0.082611 +-0.081497 -0.013395 -0.026864 -0.040485 -0.031100 +0.095144 0.005947 0.063254 0.009423 0.031198 +0.008443 -0.078212 -0.002275 -0.025354 0.048808 +0.003982 0.011608 -0.005923 0.061556 -0.091653 +-0.028425 0.056332 0.005018 0.007136 0.010607 +0.039647 0.145962 0.007951 -0.017526 -0.039745 +0.023022 -0.066844 -0.047384 -0.044307 0.041848 +-0.056589 0.034263 -0.033277 0.073824 -0.030747 +0.009451 0.005157 -0.048186 -0.045749 -0.054258 +-0.003301 0.004995 0.071505 0.029585 0.050033 +-0.064837 0.012928 0.002785 -0.117405 0.045317 +-0.026899 -0.051475 -0.054625 0.064955 -0.136139 +-0.083576 0.066985 0.000964 0.024630 -0.036989 +0.049229 0.047537 0.090953 0.036197 0.054765 +0.062892 0.045061 -0.097460 0.009938 -0.027736 +-0.008479 0.053538 -0.125219 0.036747 0.027556 +-0.017214 0.036754 0.009736 -0.087187 -0.089725 +-0.002417 -0.039070 0.076625 0.018126 0.032402 +-0.035537 -0.003939 -0.001806 0.018436 -0.060172 +-0.024517 0.048085 0.052646 0.044561 -0.126681 +-0.005381 0.059991 0.064924 0.047878 0.043526 +-0.079817 0.034296 -0.009242 0.037169 0.115281 +-0.015147 -0.019430 -0.077776 -0.033431 0.076276 +0.023914 0.014924 -0.049231 0.048491 -0.012740 +0.023873 0.121027 0.067832 -0.009223 -0.039188 +-0.018355 -0.042663 0.070587 -0.003855 0.077791 +0.036307 -0.069362 -0.035976 -0.011638 0.103907 +-0.055984 -0.110967 -0.002537 -0.016356 -0.022701 +-0.018211 0.017831 -0.009534 0.011128 -0.026445 +0.071893 0.028948 0.017993 -0.055001 0.032913 +0.013143 0.141940 -0.030668 -0.010630 -0.075402 +-0.008241 -0.097950 -0.070541 0.086461 0.063873 +0.010107 -0.006389 0.086778 -0.017779 -0.056644 +0.040699 -0.054122 0.073702 -0.008815 0.011806 +0.020978 -0.004901 0.046808 -0.038708 -0.048713 +0.065026 -0.042069 0.030306 -0.003984 -0.125105 +0.020044 0.154911 0.060110 0.041504 0.013796 +0.003360 0.144327 -0.056583 -0.031643 0.021938 +-0.082644 -0.117123 -0.032869 -0.004149 0.019806 +0.007405 -0.051019 -0.020896 0.133232 -0.028058 +0.050897 0.015399 -0.022377 0.012018 0.002474 +-0.031801 -0.041942 0.020380 0.018326 0.106183 +0.038954 -0.045696 0.017961 -0.080241 0.038198 +-0.031449 -0.026191 -0.079952 0.035385 -0.053671 +-0.055347 0.103293 0.049459 -0.008219 0.010257 +-0.061794 0.124358 0.049411 0.069306 0.034282 +-0.013114 -0.040074 -0.071968 -0.195520 -0.088871 +-0.030547 -0.024227 -0.047665 0.132613 0.012253 +0.036726 0.018979 -0.021295 -0.120084 -0.050532 +-0.020265 0.013963 0.136035 -0.067105 0.051832 +0.013865 -0.036402 0.005526 -0.042230 -0.022246 +-0.030844 -0.014871 0.097708 -0.055950 -0.060091 +-0.107193 -0.000749 0.094279 0.066459 0.015231 +0.068358 0.042724 -0.020943 0.012438 0.110596 +-0.022189 0.026125 -0.011649 0.004604 0.037204 +0.039096 0.065797 0.045162 -0.003834 -0.056679 +0.017104 0.070007 -0.005419 -0.016435 -0.000214 +-0.097253 -0.033412 -0.004272 0.021730 0.092887 +0.039513 -0.027819 -0.045420 -0.062670 -0.013033 +0.033957 -0.040429 -0.018152 0.020048 0.015966 +-0.083740 0.050010 0.032999 0.053057 -0.072973 +0.000797 0.028222 0.063769 -0.045254 -0.001401 +-0.008530 0.000350 -0.050423 0.016321 -0.077400 +-0.017818 -0.062015 -0.039769 0.103694 0.123584 +0.004844 -0.068111 -0.008528 -0.128884 -0.003312 +0.098749 0.025292 0.013547 0.007157 -0.032589 +-0.024049 -0.074941 0.062923 -0.112079 -0.008534 +-0.046211 0.028223 -0.041903 -0.001378 -0.077507 +-0.015178 0.093495 -0.033668 0.043904 -0.026096 +0.008741 0.024695 -0.042365 0.063246 0.013544 +-0.021438 -0.018498 -0.060824 -0.093599 -0.003304 +0.013206 0.019776 0.011491 0.115257 0.066627 +0.042660 0.045968 -0.044189 -0.056683 0.002399 +0.025400 -0.031109 0.037612 0.112170 0.041814 +0.005019 -0.013887 -0.051704 -0.065646 0.030095 +-0.006617 -0.067206 -0.053773 0.020368 -0.060694 +-0.042554 0.031959 0.034480 -0.016413 -0.056939 +0.026266 0.003617 0.032682 -0.066017 0.064464 +0.025224 -0.014523 -0.107735 -0.028243 0.015327 +-0.027555 0.013037 -0.049117 0.015929 -0.001301 +-0.010874 -0.018588 -0.021124 -0.055630 -0.102228 +-0.048525 -0.057257 0.083344 0.005472 0.060981 +-0.022083 -0.107351 -0.002309 -0.015487 -0.065168 +0.011812 -0.029764 0.117191 0.062742 -0.062476 +0.020253 0.014273 0.020564 0.047570 -0.021837 +0.006995 0.009213 -0.047359 0.072944 0.095512 +0.010178 0.039050 -0.077791 -0.020722 0.021947 +0.090992 -0.061050 -0.090772 0.081786 -0.045653 +-0.012634 0.036482 0.058533 -0.002696 -0.033458 +-0.040412 0.012196 0.010799 -0.011791 0.110559 +0.009821 -0.036074 0.066220 -0.015518 0.056690 +-0.027127 -0.071116 0.031944 0.079010 -0.022395 +-0.039431 -0.000384 -0.014285 0.016850 0.033711 +0.008705 0.100114 0.041438 -0.100989 0.011356 +-0.046625 -0.040932 -0.139483 0.054309 -0.063813 +-0.012343 -0.055168 -0.096047 0.031057 -0.034404 +0.061917 0.022545 0.077964 -0.061018 -0.028539 +-0.002541 -0.030177 0.006468 -0.005315 0.042803 +0.027882 -0.101187 0.073519 -0.048492 -0.034044 +0.063858 -0.051841 -0.034119 0.025079 -0.055338 +0.022337 0.072417 -0.039178 0.093515 0.010215 +-0.063332 0.136724 -0.034306 -0.068709 0.036614 +-0.060321 0.003109 -0.064068 -0.001911 0.026497 +-0.043444 0.005220 -0.028260 0.089346 -0.073713 +0.082013 0.000948 -0.079297 0.077331 0.007199 +0.013959 -0.089135 -0.001973 0.083595 0.061678 +-0.027937 0.074507 0.052481 -0.156418 -0.008126 +-0.077649 -0.025098 -0.028822 0.031584 -0.062854 +-0.037974 0.052900 -0.008246 -0.058382 0.007371 +-0.059698 0.005125 0.103990 0.035731 0.076498 +0.045455 -0.034656 -0.089189 0.010512 -0.022809 +0.023399 0.080456 -0.046407 0.119537 -0.046816 +0.011054 0.024797 -0.075119 -0.091853 0.017319 +0.022797 0.030783 0.051211 -0.054302 0.035466 +-0.053426 0.002530 0.020784 -0.089056 0.007237 +0.031757 -0.019566 0.082209 -0.018737 -0.006975 +-0.032879 0.000924 0.069241 0.009323 0.017753 +0.041898 0.020597 0.000749 0.046727 0.117703 +-0.020501 0.027483 -0.056525 -0.059522 0.018749 +0.025171 0.033068 0.005911 0.134204 0.011451 +0.038296 0.086523 -0.027888 -0.033250 -0.035178 +0.043617 -0.108778 0.024102 0.016641 0.092810 +0.073643 0.030016 -0.066742 -0.010738 0.064668 +0.039526 -0.112082 -0.032794 -0.037218 0.027811 +-0.128246 0.003025 -0.070009 -0.076832 -0.013242 +-0.030105 0.038807 0.066675 0.013770 0.023016 +-0.094473 0.028346 -0.050126 -0.043963 -0.011618 +0.017048 -0.083869 -0.023363 0.030985 0.027338 +-0.080760 -0.055583 0.032162 -0.032668 -0.036833 +0.058238 0.020173 0.050309 -0.009187 0.009272 +-0.051130 -0.060180 0.014297 -0.085720 0.033908 +-0.002635 0.061924 -0.014460 0.025310 -0.143366 +-0.086237 0.079075 -0.057641 0.027727 0.053345 +0.030701 0.128530 -0.096663 0.028249 -0.038583 +-0.041418 -0.078768 -0.009950 -0.139435 0.050946 +-0.001476 -0.004529 -0.005454 0.042876 0.012496 +0.037365 0.037258 -0.009785 -0.014137 -0.075187 +-0.015646 -0.084672 0.066850 0.049159 0.022652 +-0.100018 0.030626 -0.031693 -0.026283 0.098183 +0.037095 -0.031902 -0.082082 0.064108 -0.081413 +-0.016931 0.069276 0.025553 0.019033 -0.009843 +0.021095 0.006896 0.091735 -0.006895 0.125729 +-0.038132 -0.025017 -0.094419 0.023870 0.012859 +-0.032674 0.010226 -0.092226 -0.004873 0.064962 +-0.006137 0.026959 -0.019304 -0.064646 -0.056343 +-0.049825 -0.021361 0.067875 -0.021989 0.008580 +-0.036917 -0.006108 0.023764 -0.015728 -0.098608 +0.056344 -0.043710 0.075790 0.016095 -0.079516 +0.016637 0.054791 0.091656 0.119050 -0.037915 +0.002929 -0.026705 -0.038725 0.031207 0.092135 +-0.016211 0.014904 -0.012804 -0.003882 0.145488 +0.013740 -0.018092 -0.113500 0.052133 -0.037974 +0.032356 0.065081 0.054718 -0.006753 -0.115419 +-0.041122 -0.070389 0.024012 -0.033000 0.078595 +0.002090 -0.003576 0.025975 -0.029200 0.073729 +-0.067545 -0.099515 0.068346 0.036494 -0.010089 +-0.040395 -0.024474 0.000906 0.004180 -0.011648 +0.077079 0.062025 0.048336 -0.047553 0.020667 +-0.034650 0.102764 -0.088833 0.063548 -0.063948 +0.004926 -0.075665 -0.010204 0.077117 0.008604 +0.016964 -0.006119 0.015651 -0.060279 -0.084239 +0.021175 -0.041494 0.062789 0.023042 -0.049413 +0.030400 -0.088557 -0.027424 -0.038734 -0.047767 +-0.039267 -0.007115 -0.095571 0.040131 -0.172339 +-0.015514 0.125809 0.002775 0.011847 -0.039818 +0.003508 0.088794 -0.016537 -0.041801 0.077773 +-0.025099 -0.015829 -0.087113 -0.031825 0.018394 +-0.033412 -0.037361 0.054089 0.082347 -0.078775 +0.044163 -0.001941 -0.036779 0.006281 0.033103 +-0.019683 0.013567 0.044802 0.035896 0.099997 +0.048928 0.024331 0.024339 -0.119730 -0.020516 +0.003938 -0.049114 -0.020101 0.025056 -0.039189 +-0.111669 0.015432 0.107806 0.009106 -0.041783 +0.004427 0.114069 0.035561 0.004165 0.048624 +0.065296 -0.020221 -0.112241 -0.024621 -0.104499 +0.040792 -0.042481 -0.126163 0.113850 0.052426 +0.045897 0.073140 -0.038559 -0.101637 -0.010880 +0.014157 0.016488 0.118415 -0.003117 0.015104 +0.005410 -0.047124 -0.034323 -0.038341 0.011107 +-0.021536 -0.087493 0.030662 0.003416 -0.087892 +-0.019840 0.053393 0.053193 0.082340 -0.013319 +0.013522 0.032147 -0.036372 0.021664 0.058868 +0.001821 0.053133 0.015237 -0.029422 0.049671 +0.032518 0.054852 -0.061126 0.052882 0.005097 +-0.000200 0.077584 0.023798 -0.015922 -0.043740 +-0.019244 -0.065261 -0.001356 0.041977 0.064243 +0.006831 0.025573 -0.039113 -0.067333 0.007728 +0.061532 -0.086024 0.037808 0.024787 -0.036093 +-0.148755 -0.014995 0.025827 -0.017793 -0.025363 +0.010676 -0.014283 0.038621 -0.041757 -0.018561 +-0.004984 0.048476 -0.027007 0.007045 -0.010409 +0.017155 -0.042986 -0.059561 0.084763 0.072516 +-0.014595 -0.020495 -0.009080 -0.061622 -0.023300 +0.018242 0.008783 0.036423 -0.001710 -0.025459 +-0.030263 -0.038355 0.112339 -0.013108 0.030839 +-0.050166 -0.045350 -0.006927 0.057254 -0.090539 +-0.052734 0.030495 -0.028123 0.095772 0.021287 +0.004939 0.065006 -0.066334 0.009532 0.009978 +0.000692 -0.079650 -0.130620 -0.025115 -0.037193 +0.028545 -0.011885 -0.018329 0.101976 0.056169 +0.074905 -0.039652 -0.019531 -0.031025 -0.031945 +-0.004999 -0.024155 0.051113 0.063966 -0.016577 +-0.028105 0.007520 -0.098547 -0.151585 0.016061 +-0.011144 -0.064311 -0.071227 -0.012819 -0.089185 +-0.011034 0.126948 0.065626 0.030017 -0.077054 +-0.016170 -0.011244 -0.030183 -0.068083 0.115571 +0.004514 -0.032999 -0.119452 -0.052594 0.048244 +0.006761 0.001824 -0.082055 0.063269 0.016468 +-0.015038 0.008738 -0.042234 -0.087201 -0.135683 +-0.058265 -0.010563 0.099495 0.035913 0.016120 +0.022021 -0.060263 0.058709 -0.025272 -0.069868 +-0.012474 -0.023791 0.072270 0.012475 -0.047178 +0.065743 0.022110 0.027334 0.039002 0.034057 +0.056588 0.090825 -0.083277 0.062553 0.045167 +0.016230 0.042246 -0.055865 -0.029814 0.063583 +0.101556 -0.041974 0.065108 0.059385 -0.023394 +0.067253 0.003519 0.053386 0.071879 -0.052816 +-0.014833 -0.034839 0.008862 0.040661 0.076481 +0.113195 -0.022318 0.022988 -0.047563 0.021223 +-0.031776 -0.097003 0.010273 0.070963 -0.088181 +-0.014952 -0.044557 -0.040211 0.027326 0.055263 +-0.027993 0.036839 0.059553 -0.085166 0.023284 +0.081938 0.013347 -0.056030 0.032386 -0.078191 +-0.012334 -0.065844 -0.082412 0.021620 0.049765 +0.021974 0.064777 0.116942 -0.066893 -0.029098 +0.063773 -0.015678 0.036050 -0.001531 0.050204 +-0.007431 -0.053256 0.019949 -0.084515 -0.052331 +0.003628 -0.002831 0.028651 -0.022563 -0.068663 +-0.046864 0.085680 0.035073 0.090355 0.076019 +-0.033539 0.078709 0.049120 -0.058380 0.063174 +-0.067044 -0.040988 -0.024670 -0.076422 0.022349 +-0.059226 -0.063296 -0.024667 0.109900 -0.039214 +0.081493 0.061838 -0.018769 0.054117 0.049416 +-0.039105 -0.000888 -0.008740 0.069660 0.056013 +-0.013119 0.088704 0.005989 -0.118940 0.055085 +-0.021830 -0.027348 -0.037636 -0.044645 -0.013684 +-0.033348 0.066928 -0.026840 -0.074085 -0.052255 +-0.095346 0.073214 0.052368 0.000793 0.036896 +0.029109 -0.040256 -0.063044 -0.008606 -0.000437 +0.037406 0.035413 -0.064896 0.100694 -0.002451 +-0.062127 -0.005213 -0.045513 -0.099165 -0.029096 +0.046180 -0.038707 0.091676 -0.027947 0.081059 +-0.051970 0.036875 -0.002862 -0.034628 0.032122 +-0.042473 -0.133086 0.097766 0.014513 -0.057376 +-0.026905 0.025345 0.058654 0.088520 0.021655 +0.068829 -0.068890 0.073760 0.037294 0.067743 +0.004270 0.030315 -0.017342 -0.022912 0.021230 +0.027415 0.010279 0.033049 0.105463 -0.080985 +-0.024846 0.118625 0.017407 -0.060377 -0.071617 +-0.034814 -0.031741 0.033114 -0.008946 0.044965 +0.026382 0.068195 -0.053337 -0.079506 0.089886 +0.019186 -0.075490 -0.002131 -0.014334 0.010145 +-0.102313 0.044049 0.024515 -0.079086 0.105318 +0.030157 0.019277 0.009149 -0.002192 0.035223 +-0.093034 0.037988 -0.056189 0.005485 -0.070967 +0.093206 -0.017940 -0.068121 0.025189 0.098473 +-0.047072 -0.057202 0.027986 -0.068841 -0.023193 +0.059350 -0.020968 0.125734 -0.015897 0.013012 +-0.018615 -0.122453 -0.008474 -0.064049 0.013910 +0.021902 0.037915 0.039737 0.028260 -0.089535 +-0.052408 0.036171 0.024766 0.038944 0.043725 +0.068495 0.097351 -0.051536 -0.026994 0.009734 +0.022521 -0.085412 -0.004269 -0.068523 0.026057 +-0.003617 0.002555 -0.024622 0.075742 0.024453 +0.043622 0.048992 -0.003958 -0.051371 -0.010372 +-0.009291 -0.026649 0.112796 0.034440 0.000480 +0.000993 0.012835 -0.024524 -0.086702 0.076990 +-0.012872 -0.012272 -0.049239 0.045637 -0.100430 +-0.080402 0.098860 -0.001607 -0.027740 -0.028447 +0.010187 0.049316 0.064463 -0.032244 0.096351 +0.042173 -0.014830 -0.130350 -0.065157 -0.020131 +0.011826 0.043958 -0.096975 0.094420 0.065360 +0.008046 0.034625 0.022699 -0.011948 -0.162034 +-0.028577 -0.049031 0.062518 0.027121 0.011773 +-0.062840 -0.028274 0.019513 0.004294 -0.058221 +0.015044 0.032322 0.078632 0.074899 -0.089319 +0.012740 0.036679 0.061490 0.073955 0.074210 +-0.042945 0.081229 0.003752 -0.027289 0.107675 +0.028637 -0.027527 -0.094485 -0.014081 0.106655 +0.037034 -0.046495 -0.057983 0.047583 0.007322 +-0.000480 0.084590 0.058447 0.010057 -0.044796 +-0.035563 -0.017414 0.104652 -0.101773 0.088697 +0.008873 -0.059058 -0.074754 -0.068039 0.080127 +-0.042104 -0.067599 0.033969 0.019253 -0.038611 +0.007952 0.028316 -0.003028 0.025731 -0.031708 +0.103465 0.087113 0.002288 -0.034732 0.000345 +0.011011 0.084188 -0.047564 0.007324 -0.100708 +-0.031667 -0.084195 -0.045309 0.035772 0.029785 +-0.003803 0.041355 0.070690 -0.006148 -0.101234 +0.036078 -0.057998 0.086587 0.069468 -0.017787 +0.043517 -0.032858 -0.018033 -0.080238 -0.054284 +0.011916 -0.027168 0.032061 0.004608 -0.164665 +0.024300 0.127777 -0.001633 0.037157 -0.077063 +0.079112 0.092827 -0.045527 0.012537 0.048156 +-0.028838 -0.088344 -0.058200 -0.001037 0.009927 +0.005766 -0.051805 0.035975 0.103039 -0.118515 +0.040739 0.028846 -0.010371 -0.011677 -0.017552 +-0.012737 -0.062534 0.096752 0.040808 0.067058 +-0.016128 -0.050826 0.049568 -0.159884 0.104117 +-0.060870 -0.026777 -0.040150 0.003038 0.011219 +-0.047457 0.044509 0.104699 -0.061694 -0.048700 +-0.028345 0.058571 0.115771 0.060865 0.049165 +-0.017126 -0.029090 -0.087904 -0.040448 -0.053762 +-0.009906 0.012529 -0.107155 0.136828 -0.025232 +0.019743 0.120518 -0.033402 -0.147125 -0.096492 +-0.011562 -0.010821 0.143581 -0.029410 0.012515 +-0.007255 -0.051247 -0.015950 -0.001080 -0.021038 +0.033604 -0.082138 0.032578 -0.050610 -0.097139 +-0.058199 0.107657 0.105983 0.027511 -0.023155 +0.031791 0.024300 -0.017968 0.063148 0.049343 +-0.007836 -0.006517 -0.013473 -0.004970 0.056535 +0.020974 0.047090 0.009318 0.062741 -0.066064 +0.049383 0.062600 -0.007244 0.025406 -0.011447 +-0.019044 -0.033373 -0.012008 -0.020777 0.089488 +0.069039 -0.039904 -0.061004 -0.104096 0.011128 +0.072522 -0.048600 -0.051581 0.021177 0.001740 +-0.135630 0.074921 0.010935 0.054793 -0.041526 +0.024169 0.044285 0.017189 -0.023435 -0.022755 +-0.018169 0.007995 -0.068248 -0.015644 -0.055355 +-0.008988 0.013394 -0.130934 0.055860 0.075055 +-0.024869 -0.072987 0.105486 -0.141599 -0.052593 +0.104369 -0.026032 0.010393 0.003048 -0.077763 +0.020642 -0.054726 0.098890 -0.062038 -0.008284 +-0.030920 0.041949 -0.052596 0.055867 -0.059301 +-0.027785 0.067366 -0.015217 0.061893 -0.058155 +0.044323 0.038825 -0.048558 0.026668 0.056475 +-0.042396 -0.044360 -0.073532 -0.092982 -0.055163 +-0.002151 -0.047433 0.007696 0.110986 0.055177 +0.038644 0.059219 -0.050130 -0.016829 -0.018164 +-0.003120 -0.055675 0.097769 0.119773 0.017092 +-0.022682 0.021229 -0.029792 -0.117466 0.066111 +0.065948 -0.074617 -0.074175 0.016698 -0.071365 +-0.047641 0.063671 0.005349 -0.039942 -0.093589 +0.065751 0.017235 0.035630 -0.031694 0.061852 +0.053612 -0.016144 -0.071008 -0.029225 0.066491 +-0.040345 0.042471 -0.075360 0.066743 0.050696 +-0.014316 -0.034336 0.016703 -0.103271 -0.081002 +-0.052827 0.007353 0.046627 0.008461 0.049725 +-0.003406 -0.093149 0.006210 -0.055973 -0.057089 +-0.020200 0.012346 0.141207 0.045917 -0.012261 +0.039647 0.050373 0.056749 0.072718 0.002752 +0.004009 0.038716 -0.039473 0.082663 0.054674 +-0.004500 0.042366 -0.110686 -0.077697 0.039758 +0.051345 0.003071 -0.019544 0.063662 -0.082557 +0.025358 0.016659 0.029266 0.011585 -0.055014 +-0.026965 0.026974 0.018085 -0.022347 0.075107 +0.063294 -0.046595 0.032484 -0.030675 0.062036 +-0.033627 -0.064331 0.081940 0.081033 -0.050699 +-0.046257 -0.013797 -0.008749 -0.013019 0.018478 +-0.008139 0.075257 0.092736 -0.053166 0.014791 +-0.013803 0.044603 -0.116267 0.032848 -0.092134 +0.020647 -0.052370 -0.128516 0.004475 -0.043562 +0.036375 -0.002867 0.103214 -0.109219 0.008372 +-0.017374 -0.021978 0.020315 0.012816 0.005703 +0.099649 -0.047777 0.054769 -0.025362 -0.003862 +0.036146 -0.000369 -0.000853 0.012461 -0.032338 +0.013247 0.073478 -0.020868 0.034203 0.002982 +-0.016316 0.149713 0.002631 -0.081349 -0.020016 +-0.155943 -0.058299 -0.046014 0.027098 0.028942 +-0.011857 -0.022016 0.017303 0.105805 -0.012430 +0.086002 -0.009549 -0.071369 -0.005224 0.013152 +-0.032159 -0.053343 0.027646 0.043468 0.037717 +-0.009747 0.013014 0.058424 -0.101661 -0.010004 +-0.053787 -0.020784 -0.072472 -0.041184 -0.087878 +-0.077459 0.062841 0.011552 -0.085703 -0.035239 +-0.018818 0.030430 0.040444 -0.042755 0.041121 +0.003887 -0.025745 -0.049363 -0.025894 -0.054378 +0.070007 -0.019364 -0.141059 0.039915 -0.045332 +0.024336 0.030320 -0.082784 -0.048936 -0.027234 +0.020447 0.007182 0.084824 -0.045970 0.027752 +-0.009759 -0.023702 -0.008379 -0.071048 0.015064 +0.009395 -0.052442 0.130155 -0.011644 -0.014787 +-0.021138 0.024468 0.045928 0.043163 -0.030898 +0.065143 -0.014501 -0.008479 -0.017099 0.098271 +-0.038323 0.004035 -0.061317 -0.041506 0.038436 +0.055127 0.060303 0.044674 0.128814 0.038762 +0.086495 0.069068 -0.070150 -0.089410 -0.054372 +0.033209 -0.096623 0.034209 0.050531 0.038502 +0.059019 0.043258 -0.045121 -0.063876 0.049971 +0.014954 -0.153720 0.031755 -0.021388 0.014803 +-0.125385 0.063700 -0.019166 -0.095829 0.022129 +-0.035969 0.041896 0.030461 -0.015321 -0.015067 +-0.040013 0.024331 -0.015398 -0.008113 -0.019773 +0.027804 -0.039993 -0.074170 0.033667 0.046367 +-0.086691 -0.034684 0.054798 -0.087551 -0.014591 +0.044687 0.057457 0.118611 0.010895 0.011308 +-0.066320 -0.063774 0.057919 -0.051338 0.049145 +0.006265 0.048016 -0.010350 0.089136 -0.100672 +-0.040908 0.090819 -0.084327 0.065891 0.025763 +-0.030480 0.103529 -0.144803 -0.036912 0.017161 +-0.020671 -0.059993 -0.030123 -0.104598 0.039178 +0.018764 0.001037 0.014109 0.056332 0.050717 +-0.004747 0.035822 0.019209 -0.010162 -0.044650 +-0.039307 -0.111424 0.122778 0.090067 0.014313 +-0.047117 0.042269 -0.052396 -0.023384 0.123438 +-0.016756 -0.092801 -0.058478 0.080712 -0.052288 +-0.031113 0.064436 -0.005451 -0.018327 -0.053156 +-0.022903 0.031275 0.042126 0.009823 0.074549 +0.002952 -0.010186 -0.114717 -0.029095 -0.026125 +0.003889 -0.003003 -0.060079 0.034566 0.010262 +-0.029593 0.012239 -0.052124 -0.028219 -0.110036 +-0.015073 0.005623 0.053202 -0.029201 -0.038548 +-0.025617 -0.000150 0.022644 0.000550 -0.049223 +0.018036 -0.010954 0.045453 0.019204 -0.075695 +0.027728 0.012573 0.072358 0.082283 0.037531 +-0.003946 0.003139 0.000013 0.021161 0.067238 +0.019852 -0.022422 -0.032314 -0.024316 0.106260 +-0.001499 -0.028984 -0.045186 0.019666 -0.000966 +0.047073 0.075944 0.081739 -0.029633 -0.060673 +-0.013207 -0.057523 0.057259 -0.055200 0.078923 +0.013582 -0.060645 -0.029418 0.013853 0.056976 +-0.061172 -0.146801 0.049472 0.016436 0.045997 +-0.031589 -0.031052 0.031418 0.026113 -0.038676 +0.064035 0.045482 0.020622 0.005875 0.029585 +-0.005284 0.054275 -0.076784 -0.000845 -0.023097 +0.009660 -0.128422 0.002992 0.055651 -0.005932 +-0.027123 0.022215 0.057779 -0.080469 -0.076867 +0.008909 -0.030195 0.004706 0.060938 -0.038886 +0.050785 -0.063214 0.004370 -0.033455 -0.013089 +-0.009154 -0.030641 -0.030220 0.005174 -0.132262 +-0.021476 0.105410 0.027719 0.051123 -0.017271 +-0.000185 0.117864 0.035809 -0.071891 0.116329 +-0.009954 -0.102737 -0.053397 -0.057653 0.058746 +0.009878 0.024776 0.043190 0.082400 -0.020615 +0.032439 0.035539 -0.018820 0.017822 0.016504 +0.008745 -0.008596 0.054707 0.063681 0.056656 +0.032254 -0.023608 -0.002017 -0.146378 0.047072 +-0.016978 -0.066403 -0.042616 0.019845 -0.016902 +-0.036058 0.030091 0.057405 -0.035798 0.002185 +0.033655 0.062726 0.038185 -0.024604 0.038026 +0.013655 -0.050063 -0.040289 -0.034587 -0.089238 +-0.021893 -0.072730 -0.145619 0.108409 0.003979 +0.003043 0.058544 -0.005494 -0.058294 -0.023242 +-0.027050 0.048686 0.105867 0.037255 -0.005019 +-0.017867 0.007807 -0.016470 -0.017352 -0.004222 +-0.051778 -0.082651 0.031128 -0.051302 -0.094105 +-0.007583 0.048196 0.056035 0.076579 -0.049990 +0.037184 0.064354 -0.004853 0.019012 0.052243 +0.041607 0.017800 -0.018867 -0.048040 0.036929 +0.071847 0.012078 -0.003492 0.052903 -0.041736 +-0.008196 0.113020 0.034731 -0.051940 0.022987 +-0.022300 -0.033261 0.020486 -0.029803 0.179316 +0.014762 -0.006096 -0.022377 -0.053417 0.045007 +0.047412 -0.078434 0.007164 0.048187 -0.032463 +-0.106666 -0.022577 -0.007054 0.017166 -0.007364 +0.007677 0.013536 0.004985 -0.052519 -0.019141 +0.018399 0.004096 -0.066275 -0.014342 -0.023287 +0.017068 -0.061082 -0.021342 0.049768 0.072011 +0.006385 -0.035801 -0.027304 -0.099812 0.001797 +0.065304 -0.033306 0.042256 -0.008741 -0.006929 +0.010954 -0.080864 0.095856 -0.012888 0.050346 +-0.058343 -0.042527 0.010740 0.027268 -0.131655 +-0.022159 0.048331 -0.019242 0.139544 -0.009212 +0.008528 0.095408 -0.072588 -0.026269 0.046686 +-0.057569 -0.103939 -0.092932 -0.053006 0.017352 +0.065774 -0.067465 -0.035608 0.077533 0.035754 +0.076737 0.042552 -0.018386 -0.040285 -0.060055 +0.002954 -0.063347 0.023485 0.069391 0.030181 +0.015083 -0.035587 -0.073150 -0.108303 0.033116 +-0.051149 -0.070534 -0.072103 0.010046 -0.008050 +-0.038552 0.065148 -0.005398 0.029138 -0.091804 +-0.032927 0.026057 0.044995 -0.067493 0.140590 +-0.010770 -0.051205 -0.134801 0.039771 0.047000 +-0.040774 0.024562 -0.118058 0.061721 0.010046 +-0.084855 -0.002180 -0.028081 -0.040929 -0.091046 +-0.074457 -0.063377 0.065429 0.036303 -0.058948 +-0.009780 -0.035398 0.010274 -0.054774 -0.052228 +0.000477 -0.035468 0.059891 -0.011652 -0.043705 +0.130993 0.029418 0.024997 0.014118 -0.000473 +0.012220 0.094825 0.003360 0.050743 0.112621 +-0.036424 0.119286 -0.062500 0.028140 0.113267 +0.092232 -0.028352 0.015304 0.118553 -0.037245 +0.047917 0.068301 0.034398 0.054323 -0.111406 +0.016223 -0.016616 0.048104 -0.012621 0.095559 +0.040486 -0.036481 0.006675 -0.029498 0.019722 +-0.005174 -0.090840 0.040097 0.031192 -0.056686 +-0.015354 -0.037239 -0.040451 0.001148 0.016519 +0.027984 0.063613 0.029013 -0.053331 0.009462 +0.094796 0.073376 -0.035437 0.079788 -0.072969 +0.005683 -0.141562 -0.028240 0.056569 0.053462 +0.024141 0.020688 0.105325 -0.088920 -0.074876 +0.044548 0.015221 0.063364 0.044219 0.028301 +-0.011412 -0.033571 0.034361 -0.067847 0.000284 +0.012742 -0.045973 -0.009839 0.044280 -0.077401 +0.013255 0.065280 0.018179 0.074351 0.004383 +-0.054040 0.072674 -0.012623 -0.023532 0.057154 +-0.077067 -0.071007 -0.013831 -0.015362 -0.004755 +-0.051874 -0.046591 -0.008108 0.051772 0.006314 +0.106169 0.066165 -0.024173 0.034211 -0.015378 +-0.085769 -0.015752 -0.008456 0.051049 0.015420 +-0.005850 -0.015631 -0.060787 -0.151510 0.080912 +-0.029476 -0.034162 -0.023308 0.021727 -0.069572 +-0.002926 0.066532 0.034835 -0.091864 -0.014468 +-0.077637 0.085530 0.058931 0.087803 -0.024233 +0.027189 -0.084814 -0.064844 -0.010260 -0.038228 +0.079925 0.040571 -0.027455 0.112376 0.008327 +-0.015541 0.020299 -0.039833 -0.122069 -0.008265 +0.048969 -0.037595 0.073512 -0.070833 0.106844 +-0.031463 -0.019591 0.029763 -0.022865 0.013933 +-0.014056 -0.092923 0.075324 0.002550 0.006051 +-0.074776 0.035465 0.027474 0.120921 0.027105 +0.061516 -0.026568 0.024123 0.047036 0.024385 +0.003344 0.059906 -0.051191 -0.053047 -0.027729 +-0.001564 0.005823 0.010087 0.083294 -0.024265 +0.042741 0.094994 0.021393 -0.083504 -0.083151 +0.011291 -0.058920 0.012861 0.030070 0.042736 +0.022911 -0.008546 -0.057609 -0.069900 0.088492 +-0.002894 -0.066828 -0.009727 -0.047981 0.019844 +-0.085641 0.000042 0.003014 -0.007295 0.035791 +0.036123 0.067002 0.026630 -0.001636 0.009073 +-0.016053 0.084871 -0.100683 -0.050020 -0.071874 +0.072365 -0.036757 -0.017701 0.038197 0.053099 +-0.056378 -0.028855 0.012463 -0.045723 -0.005667 +0.064256 -0.028177 0.057826 -0.055872 0.030883 +-0.002914 -0.097445 0.018108 -0.065132 0.064327 +-0.036809 0.022530 0.032579 0.083859 -0.088729 +-0.009218 0.070687 -0.027232 0.016749 0.037592 +0.061102 0.155046 -0.004610 -0.031402 0.008374 +-0.011437 -0.059360 -0.064021 -0.069056 0.022916 +-0.003860 0.044792 -0.030508 0.057430 -0.013125 +0.027304 -0.003144 -0.007603 -0.074523 -0.036823 +0.004066 -0.035482 0.142619 0.062765 0.083342 +-0.023363 -0.016003 0.016507 -0.060403 0.074455 +-0.020249 -0.025938 -0.007470 0.084381 -0.106173 +-0.060300 0.087411 0.014814 0.028437 0.010883 +0.012873 0.103973 0.089761 0.027096 0.064947 +0.033057 0.028486 -0.133571 -0.002210 -0.014149 +0.005981 0.010927 -0.143115 0.070712 0.006923 +0.044569 0.004846 -0.008362 -0.109156 -0.120284 +-0.007157 -0.027002 0.075999 0.001357 -0.006077 +-0.035577 0.042029 0.018068 0.017700 -0.038593 +-0.058375 0.013590 0.094255 0.021156 -0.080328 +-0.006126 0.058842 0.032376 0.051314 0.064136 +-0.063765 0.028090 0.032284 0.078521 0.108677 +0.012656 0.007400 -0.092093 -0.036734 0.056851 +0.000116 -0.002036 -0.026805 0.084821 -0.011989 +0.023502 0.064916 0.050640 -0.002411 -0.015045 +-0.026830 -0.004301 0.065835 -0.025416 0.056093 +0.090627 -0.051534 -0.023105 -0.029171 0.064099 +-0.030773 -0.085191 0.015343 -0.005415 0.005626 +0.013041 0.010729 0.018058 0.018453 -0.002180 +0.089388 0.064815 0.021466 -0.092663 -0.019224 +-0.008842 0.103392 -0.036092 -0.034972 -0.070552 +-0.077454 -0.124438 -0.056352 0.069482 0.030672 +-0.003203 -0.020694 0.070840 -0.004376 -0.102179 +0.064995 -0.059481 0.049343 0.024210 -0.003858 +0.056350 -0.015583 0.065190 -0.059043 -0.090407 +0.042894 0.012225 0.074108 0.009773 -0.093983 +0.048272 0.093970 0.039985 0.070722 0.010834 +0.011975 0.135085 -0.000165 -0.021759 0.065164 +-0.040893 -0.089985 -0.024270 -0.003863 0.030587 +0.000069 -0.021155 0.028518 0.153614 -0.071797 +0.070676 0.025584 0.005300 0.043065 -0.000089 +-0.003734 -0.036750 0.018132 0.036268 0.168510 +0.019026 -0.021440 0.042884 -0.095824 0.021242 +-0.026137 -0.034052 -0.063076 0.031835 -0.012727 +-0.084292 0.114347 0.068154 -0.074997 0.009182 +-0.056381 0.161792 0.065873 -0.004008 0.052013 +0.005326 0.018022 -0.114663 -0.107213 -0.079062 +-0.037042 0.007951 -0.066766 0.089297 -0.035405 +0.006611 0.013565 0.029000 -0.122667 -0.037773 +0.030080 0.039640 0.112965 -0.038791 0.051681 +0.018950 -0.002870 0.004002 -0.035366 -0.046099 +-0.006632 -0.046456 0.064561 -0.045986 -0.052509 +-0.045507 0.034342 0.094059 0.085895 -0.059965 +0.047107 0.045776 -0.051041 0.069720 0.062871 +-0.004318 0.016990 -0.053383 -0.000405 0.042032 +0.061772 0.087463 0.018593 0.001180 -0.105041 +0.036585 0.091364 -0.010729 0.002978 0.015583 +-0.077926 -0.029862 -0.037549 -0.014135 0.056743 +0.082538 -0.079858 -0.038190 -0.052196 -0.005951 +0.095037 -0.039714 0.003105 0.009675 -0.006472 +-0.098367 0.004226 0.018157 0.116425 -0.033752 +-0.009903 0.043421 0.067382 -0.058642 -0.037966 +-0.004321 0.046370 -0.039951 0.033751 -0.045280 +-0.005703 -0.055692 -0.075669 0.043537 0.088421 +-0.000079 -0.053451 0.015580 -0.177514 -0.037255 +0.081872 -0.006931 0.040197 -0.040382 -0.030544 +-0.032474 -0.073683 0.111389 -0.043286 -0.012181 +-0.070486 0.021008 -0.006453 0.059025 -0.084346 +-0.045844 0.134617 -0.026041 0.078112 -0.027141 +-0.001031 0.044353 -0.065608 0.036661 0.045948 +0.004303 -0.038662 -0.062062 -0.073388 -0.026033 +-0.002636 -0.014067 -0.022648 0.128905 0.104651 +0.091629 0.045550 -0.039856 -0.036999 -0.014194 +0.058828 -0.095390 0.054826 0.108067 0.017921 +0.007401 0.037480 -0.051214 -0.080561 0.050245 +0.005451 -0.084552 -0.014427 0.003994 -0.067761 +-0.042687 0.064428 0.056058 -0.024265 -0.093157 +0.011618 0.006660 0.071511 -0.116214 0.061118 +0.046247 0.008564 -0.083904 -0.015807 0.002628 +-0.075241 0.045928 -0.025621 0.024239 0.024757 +-0.010838 -0.006020 -0.007541 -0.087714 -0.046745 +-0.086472 -0.058225 0.054459 0.025327 0.052933 +-0.014453 -0.076697 -0.033271 -0.024850 -0.042314 +0.006569 0.008881 0.074045 0.050097 -0.053039 +0.019414 0.021988 0.024896 0.056649 0.014029 +-0.029525 0.048784 -0.029431 0.042442 0.049334 +-0.026698 0.072277 -0.101799 -0.008341 0.047314 +0.082658 -0.016114 -0.042442 0.043527 -0.030064 +-0.011416 0.013182 0.060549 0.002644 -0.070164 +-0.045732 -0.022494 0.019693 -0.016130 0.079647 +0.000137 -0.038661 0.034959 -0.041633 0.047926 +0.003937 -0.073487 0.058946 0.065316 -0.021139 +-0.029658 -0.005529 0.019340 0.005718 0.041614 +0.046584 0.048974 0.064738 -0.076893 0.055570 +-0.008793 -0.001555 -0.108121 0.080904 -0.073317 +0.004653 -0.088656 -0.069282 0.058314 0.010922 +0.012637 0.026970 0.078839 -0.078606 -0.003575 +0.010350 0.012762 0.009724 -0.032223 0.025429 +0.028469 -0.112814 0.072108 -0.066038 0.028088 +0.021121 -0.042380 -0.040489 0.029521 -0.098778 +0.078694 0.118164 -0.017958 0.087002 0.013197 +-0.023191 0.159205 0.002982 -0.142188 0.019509 +-0.062408 -0.050584 -0.091242 0.004705 0.040898 +-0.034214 -0.000165 -0.013000 0.062856 -0.025148 +0.102892 0.026243 -0.114277 0.061707 0.020581 +-0.052551 -0.075429 0.028865 0.098236 0.087934 +0.003941 0.037129 0.029683 -0.128548 0.026698 +-0.036967 -0.019454 -0.078159 0.008871 -0.086884 +-0.058585 0.059095 -0.041884 -0.137966 -0.017325 +-0.057685 0.085566 0.119159 -0.011731 0.076164 +0.059270 -0.000533 -0.073970 -0.001937 -0.048985 +0.021162 0.035663 -0.047899 0.054477 -0.072253 +0.030344 0.099352 -0.101163 -0.104366 -0.004390 +0.017480 -0.006506 0.031974 -0.043831 0.028735 +-0.033380 -0.037286 -0.025470 -0.075025 -0.009320 +-0.001852 -0.019244 0.082659 -0.052343 -0.013826 +-0.006310 0.016400 0.043020 0.054048 0.019322 +0.025350 0.000037 0.019873 -0.001509 0.073472 +-0.050388 0.028730 -0.071807 -0.078877 -0.006660 +0.042649 0.008729 -0.001538 0.090951 0.006897 +0.044002 0.096566 0.016693 -0.023445 -0.061755 +0.017879 -0.081886 0.054302 0.025875 0.073506 +0.045439 0.035703 -0.050539 -0.024113 0.030719 +0.003684 -0.089257 -0.009652 0.004777 -0.019300 +-0.184163 0.032927 -0.044636 -0.031259 -0.075344 +-0.014780 0.063123 0.067839 0.012301 -0.009528 +-0.061510 0.097677 -0.067039 -0.006689 -0.004137 +0.016930 -0.038502 -0.023013 0.052181 0.034074 +-0.090822 -0.097151 0.030070 -0.043927 0.004506 +0.049853 0.013260 0.049217 0.011345 -0.015640 +-0.017375 -0.084889 0.027637 -0.083011 0.017271 +0.011964 0.013770 -0.041388 0.021785 -0.113317 +-0.104729 0.128840 -0.005522 0.005470 0.070867 +0.034456 0.113067 -0.120802 0.015723 0.032177 +-0.026534 -0.052353 -0.069474 -0.100515 0.121550 +0.014104 -0.026758 -0.017051 0.063176 0.010188 +0.007059 0.032242 0.002999 -0.038362 -0.058729 +0.021051 -0.069408 0.065496 0.036434 0.024457 +-0.051978 0.045735 -0.057632 -0.009011 0.056847 +0.033616 -0.045577 -0.087817 0.102137 -0.027964 +-0.002581 0.069852 0.041033 0.041021 -0.038913 +-0.025533 0.043910 0.093674 0.006518 0.140256 +-0.022931 0.003222 -0.164511 -0.012575 0.008372 +0.023221 -0.013081 -0.086070 0.000152 0.053139 +0.005914 0.050660 -0.044071 -0.047270 -0.079699 +-0.047341 -0.038511 0.125150 0.012254 -0.032029 +-0.013659 -0.058072 0.035218 -0.033783 -0.083119 +0.046233 -0.049628 0.079349 0.065395 -0.090450 +0.044946 0.046353 0.131024 0.076594 0.042978 +-0.047922 0.002985 -0.056522 0.056443 0.112147 +0.010900 0.000489 -0.020178 0.036351 0.129699 +0.037153 0.027557 -0.079114 0.043216 -0.032491 +0.071191 0.026446 0.111274 -0.011111 -0.062724 +-0.000122 -0.019280 0.038617 -0.059199 0.111019 +0.020501 -0.045138 -0.015061 -0.064807 0.065959 +-0.054589 -0.087659 0.038646 0.014381 0.034881 +-0.048543 -0.006280 -0.009214 0.027865 -0.032303 +0.071681 0.064881 0.009542 -0.005854 0.079711 +-0.030565 0.072960 -0.051732 0.009082 -0.047330 +0.051060 -0.086171 -0.053292 0.117917 0.007520 +0.006614 0.011574 0.052013 -0.067455 -0.037879 +0.006855 -0.046269 0.030860 0.034071 -0.002125 +0.048522 -0.066340 -0.050068 -0.091857 -0.039875 +0.042169 -0.025418 -0.046173 0.047008 -0.159002 +-0.047329 0.169123 -0.038203 -0.005754 -0.037022 +0.040981 0.059210 -0.002242 -0.042617 0.044265 +-0.059317 -0.044882 -0.074775 -0.083442 0.028007 +-0.041098 -0.031959 0.043096 0.061795 -0.028197 +0.040470 -0.018708 -0.008600 0.002891 0.053975 +-0.024208 0.023791 0.009775 0.081813 0.089801 +0.033188 0.016547 0.021751 -0.087759 0.023122 +-0.022831 -0.039574 -0.020474 0.037836 -0.007783 +-0.094861 0.073247 0.069161 -0.023846 -0.041333 +-0.025772 0.087748 0.025988 -0.012948 0.064875 +0.010587 0.013649 -0.041432 -0.081306 -0.084813 +-0.006181 -0.038833 -0.069003 0.107345 0.007611 +0.016453 0.041605 -0.043538 -0.126253 0.035968 +-0.003914 0.021006 0.086272 -0.015117 0.004273 +-0.017316 -0.011375 -0.050330 -0.020760 0.009092 +-0.018200 -0.056900 0.062502 0.046639 -0.106123 +0.033584 0.108129 0.061245 0.069683 -0.038308 +-0.006263 0.062187 -0.026140 -0.006177 0.072540 +0.026465 0.025257 0.000306 -0.033152 0.070377 +0.032552 0.067946 -0.041184 0.068817 -0.042517 +-0.023665 0.089426 -0.009517 -0.031905 -0.028876 +-0.047198 -0.101750 -0.021643 0.030076 0.103800 +0.003349 0.017493 0.002512 -0.094201 -0.005963 +0.089063 -0.095130 0.050351 -0.004288 -0.067613 +-0.131572 -0.051380 0.008583 0.005412 0.028560 +-0.017345 0.004478 0.031108 -0.057891 -0.007459 +-0.009374 0.004726 -0.032662 0.036793 -0.009074 +-0.023603 -0.039928 -0.021853 0.074091 0.084789 +0.020853 -0.007579 0.017575 -0.082903 -0.016044 +0.033216 -0.023150 0.052294 0.018359 -0.025699 +-0.035371 -0.079831 0.144398 -0.041178 0.060835 +-0.045799 -0.044320 0.000953 0.061485 -0.045374 +-0.093964 0.068302 -0.076466 0.119176 -0.014095 +-0.009224 0.091475 -0.038545 0.004967 0.001667 +0.028758 -0.091372 -0.095792 -0.025909 0.005482 +0.031234 -0.025637 -0.021291 0.135677 0.020946 +0.107580 0.013372 -0.085671 0.020971 -0.038560 +0.038570 -0.017209 0.045906 0.060269 0.001966 +0.032650 -0.006186 -0.072219 -0.189856 -0.007205 +-0.015639 -0.055057 -0.065552 -0.053151 -0.128235 +-0.012954 0.084159 0.026617 0.003305 -0.085995 +0.047267 -0.020931 0.007625 -0.078957 0.121974 +0.045764 0.005225 -0.141436 0.003027 0.051391 +-0.036784 -0.001419 -0.053342 0.051094 0.015725 +-0.019096 -0.002840 0.026380 -0.069790 -0.184245 +-0.051566 -0.028396 0.071692 0.098005 -0.020301 +0.016438 -0.046403 0.001404 -0.000052 -0.054688 +-0.022357 0.007259 0.085506 0.017935 -0.014656 +0.098405 0.054979 0.035010 0.075368 0.047790 +0.037848 0.078374 -0.058610 0.016057 0.084829 +0.041381 0.045231 -0.121185 -0.048619 0.095037 +0.078616 0.022570 0.039332 0.081333 -0.008814 +0.036266 0.020667 0.051651 0.048340 -0.014173 +0.001842 -0.015009 0.034124 0.017931 0.056477 +0.124333 0.001687 -0.029607 -0.069722 0.024592 +-0.008487 -0.136955 -0.020417 0.039039 -0.063902 +-0.051767 -0.039427 -0.040545 0.032784 0.056740 +-0.001091 0.036666 0.028260 -0.081961 0.033769 +0.027067 0.018663 -0.038013 0.000810 -0.051724 +-0.017021 -0.083432 -0.113410 0.025947 0.004457 +-0.019510 -0.003952 0.096457 -0.087833 -0.033332 +0.032633 -0.028593 0.053980 0.004859 0.027062 +0.027726 -0.054113 0.046789 -0.047480 -0.022139 +0.006309 0.013074 0.001745 0.000719 -0.068648 +-0.039339 0.124991 -0.017031 0.104387 0.075424 +-0.064776 0.049930 0.021317 -0.031441 0.064129 +-0.081324 -0.071417 -0.036637 -0.054516 0.069005 +-0.034336 -0.097799 0.042552 0.103137 0.014131 +0.086508 0.031131 -0.032366 0.059489 -0.003838 +-0.064570 -0.002930 0.012624 0.042919 0.062446 +0.044061 0.055589 0.003834 -0.094630 0.085990 +-0.053889 -0.024564 -0.026389 -0.016842 -0.060025 +-0.074654 0.030141 -0.008240 -0.045068 -0.051917 +-0.152218 0.035234 0.028967 0.032527 0.062252 +0.000908 -0.036356 -0.081610 -0.001575 0.014623 +-0.004478 0.064008 -0.087800 0.081273 -0.017113 +-0.018705 0.033443 -0.058350 -0.122667 -0.057365 +0.033540 -0.050441 0.124594 0.013386 0.053846 +-0.043376 -0.002266 -0.008195 -0.033995 0.053108 +-0.040370 -0.064239 0.077268 -0.002621 -0.059563 +-0.046177 0.004964 0.033231 0.064375 0.001192 +0.114583 -0.058848 0.061280 0.006693 0.036098 +0.009875 0.035834 -0.018310 -0.036184 -0.014992 +0.069939 0.059780 0.016602 0.073982 -0.035990 +-0.015685 0.078068 0.050322 -0.088097 -0.105328 +-0.025670 -0.057722 -0.013893 0.006662 0.048590 +0.078264 0.016992 -0.038464 -0.047615 0.099275 +0.010093 -0.039867 0.011067 -0.011289 0.010908 +-0.115702 0.003261 0.019257 -0.044432 0.040269 +0.018630 0.024500 0.039527 -0.019008 0.039507 +-0.072659 0.078072 -0.050083 -0.037195 -0.134288 +0.019462 0.000276 -0.077134 0.027231 0.091209 +-0.050042 -0.033161 0.001557 -0.033891 -0.049683 +0.056345 -0.048181 0.069910 -0.020048 -0.046249 +-0.039646 -0.128983 0.089155 -0.075828 0.037947 +0.004400 0.018311 0.016766 0.013464 -0.103994 +-0.006838 0.049909 0.006876 0.039950 0.026768 +0.027940 0.106751 -0.086738 -0.030655 -0.023916 +0.054319 -0.087527 -0.016511 -0.107128 0.027059 +-0.002389 0.030765 0.000550 0.071481 0.033998 +0.036687 0.048116 0.010056 -0.080424 -0.053276 +-0.000327 -0.054330 0.094151 0.063155 0.020931 +-0.026860 0.016310 -0.024435 -0.073159 0.050455 +0.022409 -0.008454 -0.035545 0.054995 -0.048738 +-0.044119 0.073997 0.039168 -0.014561 -0.032013 +0.028242 0.039841 0.075847 -0.017028 0.060085 +-0.021478 0.038475 -0.145149 -0.060014 -0.014315 +0.056108 0.032615 -0.097225 0.033835 0.051055 +0.042640 0.045231 0.000360 -0.041305 -0.108117 +-0.023348 -0.045772 0.038096 0.000486 -0.013393 +-0.093532 0.016559 0.001345 -0.008241 -0.068229 +0.010724 0.006837 0.077785 0.024403 -0.089797 +0.019810 0.041552 0.064900 0.067216 0.122533 +-0.033019 0.073688 0.001023 0.040220 0.079306 +-0.033084 -0.028731 -0.066533 0.015167 0.078774 +0.036633 -0.011276 -0.029348 0.033478 0.000076 +-0.011424 0.089071 0.107503 -0.027201 -0.024133 +-0.086237 -0.015807 0.067867 -0.026911 0.055025 +0.003279 -0.076609 -0.022878 -0.065051 0.117459 +-0.064757 -0.048837 -0.006132 0.015775 -0.025174 +-0.012054 -0.017396 -0.008215 0.026521 -0.033990 +0.045441 0.100425 0.005545 -0.063862 0.021216 +0.038286 0.073333 -0.080698 0.015085 -0.070552 +-0.073377 -0.065780 -0.028242 0.031930 0.034800 +0.014232 0.011229 0.097374 -0.050100 -0.132752 +0.011148 -0.042578 0.076114 0.024497 -0.012283 +0.120806 -0.036672 0.010487 -0.089491 -0.070409 +-0.010691 -0.003941 0.028773 0.005044 -0.130679 +0.045320 0.101038 0.007190 0.023122 -0.032858 +0.071021 0.085183 -0.064280 -0.039826 0.069093 +-0.045199 -0.056327 -0.038230 -0.030074 0.020018 +0.043187 -0.037153 0.053548 0.081616 -0.046930 +0.041026 -0.013232 -0.029798 -0.007515 -0.009780 +-0.014618 -0.049999 0.086479 -0.000441 0.122169 +0.000547 -0.072517 0.024520 -0.173329 0.033337 +-0.032822 -0.039451 -0.029459 -0.010553 -0.014511 +-0.042816 0.043535 0.098090 -0.011974 -0.009803 +-0.011320 0.103835 0.068587 0.016565 0.009926 +-0.038017 -0.036161 -0.141386 -0.056138 -0.087531 +0.012520 0.001341 -0.028710 0.134825 -0.022612 +0.025072 0.059725 -0.059548 -0.077144 -0.055577 +0.008583 0.014431 0.160366 -0.000317 0.069355 +0.021539 -0.030848 -0.001411 0.003884 -0.021168 +-0.002315 -0.031485 0.058421 -0.069080 -0.089460 +-0.074381 0.044224 0.078251 0.015334 -0.018453 +0.024757 -0.006325 -0.030304 0.041022 0.051034 +-0.000912 0.014462 -0.042230 -0.034329 0.049998 +0.042384 0.055463 -0.026732 0.016663 -0.070257 +0.027628 0.032582 0.025606 0.007339 -0.016995 +-0.014641 -0.013348 -0.035777 -0.048054 0.072409 +0.073357 0.019992 -0.053669 -0.099428 0.009662 +0.053875 -0.084206 -0.028164 0.001825 -0.007384 +-0.118351 0.036128 -0.052874 0.044796 -0.008440 +0.034462 0.021959 0.038695 -0.029505 -0.010005 +0.006580 -0.019193 -0.033304 -0.006948 -0.032920 +-0.035370 -0.048525 -0.089756 0.086975 0.071726 +-0.061466 -0.022927 0.037104 -0.115937 -0.074302 +0.095124 0.034074 0.041596 -0.019002 -0.078886 +-0.046289 -0.026431 0.075125 -0.085653 0.030848 +-0.087457 -0.013738 -0.079060 0.085171 -0.076996 +-0.026743 0.040359 0.001789 0.092574 -0.022293 +0.036215 0.020128 -0.057905 0.020242 0.017234 +-0.015028 -0.102072 -0.050335 -0.106620 -0.024631 +-0.035796 -0.019773 0.029319 0.102570 0.030958 +0.052784 0.035726 -0.058017 -0.006419 -0.004020 +-0.014277 -0.047373 0.048700 0.111928 0.002486 +0.008505 0.051728 -0.097055 -0.122271 0.071235 +0.003188 -0.039588 -0.076039 0.021148 -0.078617 +-0.065872 0.029089 -0.000290 0.000898 -0.140194 +0.058506 -0.007075 0.002829 -0.061576 0.057297 +0.022539 -0.043176 -0.078264 -0.026623 0.050164 +-0.067814 0.043950 -0.089140 0.025451 0.015987 +-0.021710 -0.023764 -0.037703 -0.092210 -0.086925 +-0.088289 0.020833 0.085474 0.007660 0.032167 +-0.047200 -0.148647 -0.011014 -0.056924 -0.066650 +0.000222 0.031116 0.120665 0.017924 -0.052237 +0.024475 0.057260 0.023098 0.039613 0.002833 +0.015113 0.005702 -0.065102 0.150484 0.040642 +-0.062865 0.018220 -0.104305 -0.058038 0.078032 +0.062938 -0.043059 -0.041551 0.090274 -0.090255 +0.003055 0.024771 0.053662 0.023982 -0.007128 +-0.022873 0.016118 0.029948 -0.005441 0.027042 +0.035737 -0.062768 0.026554 -0.001648 0.046026 +-0.015209 -0.061640 0.080279 0.035525 -0.062174 +-0.071438 -0.038252 0.017523 0.005805 0.027560 +0.022277 0.116677 0.082862 -0.023075 0.020718 +0.028369 -0.000644 -0.106525 -0.000025 -0.058375 +0.061774 -0.034461 -0.117604 0.015663 0.025243 +0.050739 -0.035373 0.050164 -0.097896 -0.016953 +-0.005625 -0.011887 0.038968 0.009589 0.020354 +0.073417 -0.037194 0.001085 -0.082529 -0.002741 +0.018895 0.000683 -0.005260 0.037680 -0.057914 +0.012065 0.095507 -0.006422 0.038327 0.053359 +-0.034912 0.104532 -0.034267 -0.091475 -0.037716 +-0.084581 -0.011088 -0.054143 0.048128 0.015983 +0.020394 -0.028289 -0.010829 0.083357 -0.051892 +0.095076 0.000131 -0.014931 0.032836 0.067972 +-0.033453 -0.011655 0.043489 0.044985 0.063936 +-0.002184 -0.038102 0.055724 -0.108760 -0.005538 +-0.065997 0.004333 -0.074726 -0.015630 -0.015614 +-0.126012 0.028542 0.044984 -0.082637 -0.073741 +-0.053097 0.043995 0.064370 -0.042989 0.078666 +0.032226 -0.050840 -0.030220 -0.007436 -0.034516 +0.018953 0.031855 -0.118774 0.087949 -0.022126 +-0.018807 0.026136 -0.060837 -0.058430 -0.043270 +-0.023841 -0.001635 0.100076 -0.051546 0.008906 +-0.018942 -0.046607 -0.031680 -0.056224 0.042606 +0.027052 -0.054425 0.104195 -0.058465 -0.062190 +-0.009973 0.010150 0.018185 0.049565 -0.005886 +0.094118 0.002006 0.034862 -0.013054 0.093378 +-0.068149 0.010758 -0.011233 -0.061272 0.036668 +0.049859 -0.008436 0.036689 0.126919 -0.002194 +0.048726 0.081941 -0.048791 -0.035094 -0.075793 +0.038586 -0.043391 0.024660 0.042400 0.074817 +0.074537 0.022976 -0.091022 -0.044301 0.025592 +0.019796 -0.129796 0.029916 0.017043 -0.041798 +-0.122413 0.049991 0.006262 -0.014011 -0.015763 +-0.024958 0.007419 0.020053 -0.006102 -0.004461 +-0.047792 0.040663 -0.058097 0.018616 -0.023217 +0.001382 0.001452 -0.062222 0.051898 0.052539 +-0.068723 -0.000916 0.071418 -0.060541 -0.020258 +0.063725 0.074490 0.080845 -0.023018 -0.006902 +-0.045143 -0.078702 0.018868 -0.044159 0.011980 +0.025938 0.021655 0.025290 0.063764 -0.132708 +-0.035846 0.091140 -0.021667 0.037332 0.035687 +-0.056994 0.140855 -0.102945 -0.006009 0.023620 +0.000204 -0.022699 -0.019046 -0.095351 0.050022 +-0.004054 -0.019058 -0.006429 0.068069 0.054649 +0.022500 0.029309 0.030159 -0.011081 -0.085224 +-0.029775 -0.097594 0.132106 0.026943 0.016069 +-0.012230 0.046209 -0.034177 -0.048993 0.094154 +-0.006547 -0.043268 -0.100110 0.130569 -0.083928 +0.008317 0.041995 -0.020555 0.004803 -0.056359 +0.023566 0.050093 0.044221 0.017323 0.073761 +0.000300 -0.034851 -0.062557 0.003592 -0.037316 +-0.023709 -0.011929 -0.063727 0.008558 0.029238 +0.012654 0.027199 -0.057145 -0.011774 -0.078417 +-0.053560 -0.003741 0.037455 -0.039273 -0.042025 +-0.002715 -0.030644 0.024806 0.010899 -0.041167 +0.026322 -0.013442 0.040313 0.057461 -0.057587 +0.046460 0.004776 0.094893 0.063931 -0.013181 +-0.024787 0.046427 0.000830 0.004541 0.070036 +0.012732 0.022279 -0.046965 -0.012615 0.106753 +0.032489 -0.016696 -0.061242 0.021789 -0.044774 +0.022712 0.030946 0.067933 -0.021075 -0.043324 +-0.010231 -0.077078 0.089327 -0.073913 0.129378 +0.001532 -0.043316 -0.016732 -0.026599 0.046714 +-0.088765 -0.101898 -0.000950 -0.012357 0.078311 +-0.025387 -0.053598 0.022292 0.050494 -0.007031 +0.067206 0.032304 -0.012170 -0.015225 0.029593 +-0.011657 0.043622 -0.062834 0.042909 0.003119 +-0.005148 -0.106709 0.013981 0.016710 0.024731 +-0.050424 0.039756 0.053237 -0.088869 -0.030557 +0.019223 -0.011248 0.001772 0.041389 -0.019693 +0.032684 -0.038816 -0.003782 -0.038112 -0.064818 +-0.036779 0.002321 -0.011310 -0.005428 -0.097258 +-0.068507 0.117705 0.010296 0.057410 -0.042191 +0.060044 0.076100 0.070634 -0.052272 0.109450 +-0.024491 -0.060570 -0.062604 -0.023828 0.043683 +-0.008675 0.020641 0.026445 0.122122 -0.030590 +0.007406 -0.006945 -0.038838 0.022271 0.036487 +-0.008083 -0.015591 0.089045 0.103083 0.080265 +0.048011 0.008577 -0.024779 -0.098878 0.047757 +-0.034944 -0.071262 -0.029632 0.058633 -0.031833 +-0.086670 0.020910 0.017850 -0.060040 -0.000118 +0.072375 0.123805 0.028335 0.006174 0.050778 +0.022055 -0.013090 -0.021358 -0.030207 -0.129857 +-0.009686 -0.036702 -0.094352 0.083990 -0.027328 +0.022973 0.088840 -0.029830 -0.041108 0.007991 +0.010351 0.043580 0.088045 0.019792 0.034260 +-0.018485 -0.026954 0.001393 -0.028881 -0.009226 +-0.007746 -0.080511 -0.012092 -0.026729 -0.115592 +-0.019491 0.098337 0.046778 0.072298 -0.078237 +0.005173 0.056223 -0.004141 0.066867 0.056189 +0.017966 0.044171 0.000676 -0.045110 0.018200 +0.032009 0.030245 -0.024198 0.053369 -0.032949 +0.005817 0.101192 0.004770 -0.022792 0.027114 +0.010600 -0.037525 -0.040021 0.003401 0.139637 +0.013348 -0.003801 -0.031619 -0.055232 -0.000905 +0.059632 -0.125609 -0.015414 0.054802 -0.053951 +-0.064755 0.024768 0.023636 0.018903 -0.000431 +-0.029042 0.021020 0.004843 -0.036543 -0.029041 +-0.023141 0.025949 -0.071411 -0.019207 0.007088 +0.038696 -0.038765 -0.019290 0.071608 0.100669 +0.002161 -0.019148 -0.033723 -0.110313 -0.048374 +0.036294 -0.011707 0.027523 -0.005146 -0.049367 +-0.011778 -0.100402 0.063310 -0.031106 0.021885 +-0.095761 -0.080098 0.004308 0.033965 -0.080439 +-0.023927 0.055660 0.007395 0.124410 -0.073291 +0.004189 0.060944 -0.045152 -0.060831 0.024748 +0.002404 -0.137119 -0.070340 -0.011515 -0.026093 +0.074911 -0.008646 -0.046756 0.070610 0.043733 +0.056208 -0.004307 -0.017910 -0.044341 -0.049322 +-0.031960 -0.031297 0.041787 0.064553 0.010380 +-0.009674 -0.056380 -0.131194 -0.102372 0.013069 +-0.040055 -0.101666 -0.095641 0.031396 -0.040243 +-0.044960 0.107223 -0.038146 0.043004 -0.091273 +0.008832 0.035095 0.018303 -0.033024 0.111336 +-0.012516 -0.088527 -0.138520 -0.042476 0.043839 +-0.066586 0.012378 -0.100214 0.030453 -0.045537 +-0.058136 -0.024370 0.006936 -0.057720 -0.111712 +-0.062832 -0.049461 0.055617 0.032267 -0.008208 +-0.024939 -0.062605 0.007490 -0.019889 -0.032406 +-0.002685 -0.018727 0.104523 0.024688 -0.046299 +0.058710 0.060194 0.045739 0.021202 -0.014056 +0.012044 0.058266 -0.001396 0.021628 0.093785 +-0.015184 0.056542 -0.100357 0.020669 0.075524 +0.037202 -0.028476 -0.004358 0.088662 -0.013431 +0.058653 0.069303 0.068988 0.033660 -0.062939 +0.018950 -0.056021 0.021534 -0.016087 0.075798 +0.048597 -0.010444 0.007248 -0.063630 0.010521 +-0.014106 -0.074996 -0.000773 0.053311 -0.048215 +-0.002735 -0.017992 -0.002647 0.020040 0.029636 +-0.022757 0.078272 0.023803 -0.057204 0.024134 +0.064828 0.052842 -0.109740 -0.016306 -0.097522 +0.035253 -0.097609 -0.069816 0.027249 0.039346 +-0.007883 0.014192 0.087185 -0.137182 -0.071137 +0.013525 0.010840 0.070855 0.012224 0.018564 +-0.008135 -0.046474 0.058225 -0.040550 -0.011424 +-0.027632 -0.035317 0.023198 0.038554 -0.081506 +-0.012968 0.096501 0.027391 0.100326 0.005492 +-0.058045 0.112112 0.002180 -0.025343 0.025626 +-0.099536 -0.061595 -0.061651 -0.027489 -0.010581 +-0.017782 -0.053973 -0.034355 0.078629 0.008211 +0.072702 0.071223 -0.044680 0.012444 -0.044745 +-0.139050 0.003441 0.000913 0.094752 0.048346 +-0.007363 0.025892 0.010184 -0.176655 0.133261 +0.001621 -0.024628 -0.030137 -0.007947 -0.085652 +-0.029719 0.022053 0.013686 -0.080132 -0.026124 +-0.070528 0.051163 0.066954 0.055796 0.025845 +-0.010124 -0.065017 -0.069344 -0.022724 -0.000369 +0.053467 0.016636 -0.040196 0.075376 -0.016667 +-0.029877 0.004811 -0.023632 -0.097696 0.009076 +0.002224 -0.010353 0.064867 -0.044772 0.077105 +-0.055734 -0.018593 0.032803 -0.059184 0.036008 +-0.007975 -0.100334 0.044830 -0.020643 -0.039421 +-0.010042 0.007773 0.099620 0.108164 0.029716 +0.078106 -0.011285 0.030783 0.081425 0.047785 +-0.040324 0.065464 -0.037268 -0.020200 -0.013981 +0.005168 0.027259 -0.021859 0.088221 -0.057304 +0.044425 0.092606 0.044230 -0.055754 -0.033767 +-0.019787 -0.048782 0.003298 0.018153 0.021226 +0.068475 -0.047841 -0.084262 -0.076417 0.054885 +-0.017738 -0.064677 -0.017373 -0.033227 -0.010808 +-0.146013 0.005243 -0.037539 -0.015601 0.022925 +-0.011193 0.044758 0.012972 -0.010808 0.024612 +-0.056295 0.056909 -0.080235 -0.047137 -0.029242 +0.056368 -0.002198 -0.035936 0.027306 0.075325 +-0.064563 0.000437 -0.011783 -0.026348 -0.005163 +0.082637 0.004076 0.084051 -0.032954 0.031309 +-0.006451 -0.094091 0.012843 -0.029321 0.020598 +0.015005 -0.014363 0.013016 0.075182 -0.086563 +-0.024242 0.085406 -0.009668 0.002995 0.003827 +0.027577 0.119405 -0.019147 0.005101 -0.010265 +0.032537 -0.051797 -0.040632 -0.068586 0.019971 +-0.056266 0.018425 -0.035550 0.044019 -0.018450 +0.013988 -0.007499 -0.030389 -0.047227 -0.036402 +-0.019853 -0.021715 0.089123 0.033422 0.051031 +-0.043643 0.004053 0.039026 -0.092898 0.069717 +0.002242 -0.073405 -0.022716 0.065550 -0.109492 +-0.065737 0.051307 -0.007900 -0.001899 -0.038721 +0.061064 0.068115 0.108020 -0.005186 0.091419 +0.038141 0.068502 -0.119719 -0.032776 -0.034200 +0.022829 0.022600 -0.114802 0.021444 0.011983 +-0.010708 0.025008 0.016734 -0.058795 -0.121062 +-0.020649 -0.036630 0.056523 -0.002163 0.027921 +-0.063293 0.012239 0.014511 0.034178 -0.056068 +-0.063080 0.014943 0.080895 0.063737 -0.133859 +0.016385 0.042840 0.046425 0.058005 0.035977 +-0.084512 0.057576 -0.010982 0.060681 0.072678 +-0.008045 0.001068 -0.085375 -0.058554 0.098160 +0.011639 0.009086 -0.053064 0.074379 -0.027243 +-0.013015 0.121189 0.047177 -0.009998 -0.034644 +-0.007092 -0.012841 0.075861 0.011568 0.086842 +0.045432 -0.079240 -0.025773 -0.009674 0.064448 +-0.018079 -0.118996 0.009565 -0.016846 -0.011029 +-0.006024 0.033095 0.005964 -0.000340 -0.012580 +0.081590 0.052148 -0.008312 -0.076947 0.027736 +0.018812 0.136957 -0.054412 -0.040884 -0.124297 +-0.047994 -0.081925 -0.033440 0.118449 0.044842 +0.004569 -0.006306 0.075165 -0.038914 -0.081500 +0.038445 -0.078834 0.047793 -0.013885 0.006954 +0.039465 -0.031245 0.038253 -0.039471 -0.057441 +0.034043 -0.029460 0.017171 0.000194 -0.094801 +0.013428 0.116396 0.026097 0.041725 0.007773 +-0.017706 0.115162 -0.031613 -0.010630 0.042917 +-0.039768 -0.139730 -0.048469 -0.000045 0.028945 +-0.004139 -0.081954 0.003386 0.115256 -0.049927 +0.077924 0.020540 -0.017751 0.003371 -0.011666 +-0.022988 -0.072458 0.027132 0.049961 0.112610 +0.047083 -0.041033 0.043690 -0.084367 0.071528 +-0.011307 -0.010002 -0.059736 0.049793 -0.043057 +-0.038207 0.109289 0.066216 -0.043249 -0.011953 +-0.042904 0.111380 0.021751 0.023150 0.051803 +-0.041532 -0.082754 -0.165799 -0.145192 -0.159015 +-0.036957 -0.008840 -0.028641 0.105964 0.006864 +0.029247 0.059193 0.009831 -0.144329 -0.047501 +-0.014033 0.041089 0.095670 -0.051674 0.049619 +0.031086 -0.026835 -0.015872 -0.041019 -0.016594 +-0.047321 -0.050941 0.108942 -0.059399 -0.094262 +-0.082008 0.021291 0.061910 0.073377 -0.015244 +0.057463 0.023209 -0.065966 0.034032 0.111775 +-0.021516 0.014300 -0.031041 -0.012892 0.024486 +0.045971 0.041949 0.025017 -0.003197 -0.044689 +0.046157 0.053074 -0.010276 -0.022357 0.014208 +-0.059017 -0.049325 0.007655 0.034365 0.071554 +0.043755 -0.026127 -0.068545 -0.041093 -0.027706 +0.042534 -0.059878 -0.006088 0.036135 -0.000512 +-0.141426 0.019792 0.031442 0.038225 -0.087692 +-0.006095 0.062862 0.064053 -0.026935 -0.004107 +-0.015518 0.018237 -0.054342 0.025962 -0.043604 +-0.041405 -0.044407 -0.066543 0.052842 0.123468 +0.018775 -0.097456 0.021557 -0.111244 -0.022276 +0.087995 0.020846 0.009786 -0.024442 -0.000924 +-0.021387 -0.115466 0.059505 -0.084840 -0.018622 +-0.039091 0.041857 -0.059951 0.027552 -0.106180 +-0.013005 0.077819 -0.057001 0.037112 -0.006017 +0.017069 0.035373 -0.036667 0.041547 0.030229 +-0.017543 -0.020408 -0.084738 -0.062925 -0.014286 +-0.003367 -0.001926 0.040560 0.163635 0.057733 +0.052600 0.014935 -0.041074 -0.038673 -0.009607 +0.035704 -0.049327 0.051517 0.079677 0.024194 +-0.021034 -0.014069 -0.062355 -0.078356 0.049042 +-0.028768 -0.088463 -0.035194 0.027880 -0.078732 +-0.051166 0.029644 0.064622 -0.002258 -0.067584 +0.014417 0.014299 0.025278 -0.095873 0.081486 +0.018230 -0.014653 -0.093112 -0.067755 0.006200 +-0.038621 0.033831 -0.065313 0.022443 0.016583 +-0.013554 -0.003383 -0.003813 -0.038565 -0.079906 +-0.054026 -0.097241 0.089312 -0.012968 0.081033 +-0.047581 -0.080574 -0.024559 -0.018898 -0.082106 +0.008601 -0.028523 0.100338 0.112593 -0.048526 +0.027421 0.024654 -0.000988 0.060571 -0.007538 +0.008276 0.041800 -0.035683 0.044325 0.088914 +0.019003 0.052585 -0.106627 -0.043862 0.018154 +0.061095 -0.055270 -0.060593 0.071565 -0.023743 +-0.010098 0.052293 0.067864 0.013882 -0.062200 +-0.017320 0.007520 -0.015594 -0.023894 0.092727 +0.029631 -0.013572 0.043058 -0.024937 0.054426 +-0.006383 -0.060407 0.031096 0.077251 -0.051193 +-0.028054 0.013443 -0.006446 0.025674 0.011140 +0.025108 0.078829 0.096347 -0.120869 0.009600 +-0.016833 -0.041386 -0.147598 0.012379 -0.080149 +-0.001507 -0.061584 -0.069511 0.053464 -0.028698 +0.050460 0.034750 0.053162 -0.062058 -0.000099 +0.013018 -0.014428 0.008787 -0.021213 0.031728 +0.032305 -0.106213 0.027220 -0.042487 -0.013001 +0.042839 -0.025383 -0.014866 0.006080 -0.055914 +-0.004772 0.111496 -0.048142 0.101228 -0.000113 +-0.007065 0.108619 -0.026644 -0.081066 0.026279 +-0.049199 0.003818 -0.043697 0.009844 0.051099 +-0.021007 -0.012906 -0.013888 0.109787 -0.054136 +0.054741 0.002659 -0.080186 0.041342 -0.004960 +-0.009585 -0.090940 0.035445 0.084784 0.071802 +0.004212 0.000051 0.061246 -0.179092 0.004524 +-0.066032 -0.062309 -0.052999 0.003717 -0.054731 +-0.063044 0.065802 0.005675 -0.083010 0.009338 +-0.050599 0.044865 0.069794 0.035892 0.069365 +0.077322 -0.037515 -0.101389 -0.032958 -0.023327 +0.004893 0.076975 -0.094625 0.108672 -0.084543 +0.029133 0.033581 -0.097391 -0.099645 -0.008470 +0.047506 0.014070 0.037599 -0.039370 0.027529 +-0.037487 -0.030513 0.001358 -0.109004 0.006393 +0.046480 -0.005807 0.072837 -0.015338 -0.034187 +-0.036067 0.007979 0.057660 0.043930 0.022410 +0.054219 -0.000956 0.022423 0.048054 0.091746 +-0.006642 0.030166 -0.048592 -0.040789 -0.005702 +0.007988 0.043955 -0.019103 0.106518 0.024012 +0.042589 0.059798 -0.006033 -0.026617 -0.048288 +0.015792 -0.114984 0.000601 -0.000354 0.067489 +0.038969 0.014313 -0.064460 -0.002179 0.051347 +-0.002092 -0.105852 -0.031092 -0.032437 -0.000174 +-0.128927 -0.008284 -0.009141 -0.076672 -0.015283 +-0.049413 0.056280 0.045565 -0.006905 0.022082 +-0.085801 0.050952 -0.050910 -0.017483 0.005888 +-0.006170 -0.061465 -0.030951 0.035802 0.015739 +-0.083792 -0.044795 0.060723 -0.030343 -0.069566 +0.030676 0.038387 0.050804 0.004892 0.017579 +-0.044803 -0.090476 -0.017970 -0.069598 0.035520 +0.006056 0.044354 -0.061744 0.058806 -0.130744 +-0.057101 0.099578 -0.045874 -0.002499 0.046826 +0.049723 0.098173 -0.082881 0.073610 -0.011594 +-0.009669 -0.094859 -0.037445 -0.119323 0.065051 +-0.015284 -0.026778 0.005845 0.048246 0.025717 +0.028300 0.003404 -0.007273 -0.021871 -0.079752 +-0.013062 -0.126858 0.059483 0.049526 0.036093 +-0.056998 -0.003159 -0.043116 -0.016197 0.089723 +0.016100 -0.051512 -0.060459 0.061427 -0.060520 +-0.010836 0.070291 -0.004533 0.015834 -0.031588 +0.046681 0.024603 0.057986 -0.000132 0.098934 +-0.017240 0.002476 -0.113392 0.016989 0.001335 +-0.009243 0.021430 -0.088867 0.016496 0.036539 +-0.024722 0.027988 -0.025209 -0.037811 -0.070416 +-0.027312 -0.042762 0.085979 -0.017748 0.001795 +-0.038652 -0.032652 0.049244 -0.003571 -0.092866 +0.021843 -0.080697 0.081009 0.019897 -0.063178 +0.025596 0.016382 0.119656 0.092436 -0.016244 +-0.023622 -0.006095 -0.013438 0.039393 0.098847 +0.026872 0.057469 -0.033557 -0.019961 0.171557 +0.009244 -0.003066 -0.087323 0.039711 -0.024124 +0.027198 0.088494 0.108382 0.011044 -0.127500 +-0.035575 -0.083203 0.035144 -0.032137 0.120334 +0.002031 -0.020743 0.003890 -0.046130 0.060318 +-0.032118 -0.093914 0.036450 0.036482 -0.003628 +-0.045976 -0.020514 0.020744 0.028721 0.002437 +0.114939 0.051708 0.055899 -0.024311 0.024351 +-0.064421 0.084144 -0.108787 0.030475 -0.042867 +0.008077 -0.063222 -0.026071 0.061247 -0.016598 +0.011100 0.007787 0.023799 -0.068735 -0.056142 +0.025938 -0.060156 0.050084 0.037444 -0.022008 +0.010303 -0.098972 -0.052827 -0.061667 -0.068986 +-0.011902 -0.042759 -0.084042 -0.002067 -0.151469 +-0.017637 0.134014 -0.026226 0.026110 0.007490 +0.021463 0.079145 0.014098 -0.019123 0.079837 +-0.010640 -0.040407 -0.116967 -0.015889 0.022180 +-0.005119 -0.014871 0.057013 0.068658 -0.079078 +0.058641 -0.006509 -0.034086 -0.022005 0.041557 +0.016029 -0.003335 0.062705 0.037826 0.092035 +0.047014 0.007296 -0.014070 -0.130533 -0.001078 +0.025557 -0.063677 -0.037435 0.030993 -0.040663 +-0.133077 0.001203 0.087675 -0.028956 0.005954 +0.030377 0.094103 0.031530 0.029501 0.058250 +0.043750 0.005780 -0.081652 -0.046912 -0.071344 +0.049909 -0.017203 -0.105850 0.077672 0.063239 +0.015203 0.080354 -0.019175 -0.126004 0.012938 +0.004638 -0.013389 0.087621 -0.010466 0.023940 +-0.002703 -0.035427 -0.059936 -0.035946 0.018749 +0.025763 -0.100231 0.035256 0.021093 -0.102097 +-0.023912 0.065319 0.051327 0.052308 0.008324 +0.018600 0.027370 -0.019629 0.003753 0.074711 +-0.009465 0.042899 -0.007945 -0.044091 0.057014 +0.043860 0.063015 -0.053778 0.033882 -0.018588 +-0.007623 0.070289 0.017506 -0.028443 -0.016436 +-0.016131 -0.087520 -0.000211 0.013207 0.081102 +0.026870 0.010280 -0.039354 -0.085402 0.005385 +0.045387 -0.075274 0.005158 0.013437 -0.061107 +-0.123832 -0.006790 0.046660 0.021633 0.005414 +-0.004335 -0.011498 0.029755 -0.025547 -0.002465 +0.008431 0.032361 -0.039776 0.018846 -0.007647 +-0.002531 -0.054317 -0.034538 0.095049 0.040090 +-0.016239 -0.046115 0.006000 -0.083863 -0.018887 +0.001956 -0.005777 0.053960 0.003049 -0.028290 +-0.017755 -0.044904 0.084936 -0.038020 0.048751 +-0.036897 -0.069299 0.003508 0.029780 -0.079610 +-0.085660 0.060685 -0.006321 0.078501 0.006878 +-0.000940 0.062341 -0.042279 -0.015673 0.013762 +-0.029805 -0.051092 -0.117256 -0.046978 -0.012383 +0.024326 -0.000611 -0.046838 0.087711 0.032932 +0.089398 -0.013201 -0.035642 -0.013591 -0.019974 +0.002673 -0.016622 0.070976 0.074861 0.005584 +0.013705 0.013057 -0.070513 -0.132482 0.011905 +-0.021242 -0.092172 -0.098335 -0.045995 -0.077946 +-0.013171 0.148310 0.023267 -0.011841 -0.094360 +-0.008329 0.001195 -0.000926 -0.099253 0.141073 +0.039201 0.001784 -0.135018 -0.082677 0.044641 +-0.005949 -0.030037 -0.085312 0.049127 0.014847 +-0.013469 -0.002593 -0.056090 -0.045962 -0.191274 +-0.041064 -0.030590 0.082413 0.061704 0.022132 +0.035533 -0.066234 0.034454 -0.009588 -0.050467 +-0.029761 -0.016491 0.067872 0.038969 -0.039014 +0.057543 0.047087 0.043850 0.039443 0.054508 +0.058856 0.109195 -0.043374 0.070615 0.089501 +0.024405 0.045632 -0.080334 -0.004657 0.067992 +0.068464 -0.013325 0.052791 0.040606 -0.016031 +0.043482 0.025913 0.030708 0.051020 -0.058413 +0.012923 -0.031961 -0.001425 0.025659 0.065492 +0.081425 -0.018210 0.009682 -0.008238 0.027227 +-0.047221 -0.123710 0.027984 0.046569 -0.051906 +-0.013099 -0.010653 -0.030766 0.027285 0.060770 +-0.039564 0.053122 0.066810 -0.114075 0.054466 +0.054259 0.024216 -0.045685 -0.001518 -0.082578 +-0.026337 -0.055608 -0.075956 0.054064 0.026871 +0.015694 0.016757 0.129806 -0.052800 -0.016678 +0.048569 -0.001337 0.027199 0.004454 0.027064 +0.019218 -0.065149 0.034752 -0.071056 -0.047284 +-0.001601 -0.021741 0.012135 -0.006775 -0.080880 +-0.033474 0.068299 0.002424 0.082260 0.038960 +-0.030455 0.105682 0.013086 -0.054492 0.067646 +-0.084988 -0.031769 -0.005191 -0.045479 0.025036 +-0.054564 -0.097375 0.013290 0.107239 -0.037042 +0.136211 0.054048 -0.044849 0.071688 0.021370 +-0.065162 -0.020715 -0.035790 0.090635 0.057812 +-0.008215 0.061018 -0.000019 -0.085259 0.052848 +-0.027541 -0.005643 -0.052940 -0.038511 -0.027902 +-0.041703 0.075862 0.013165 -0.059187 -0.036318 +-0.141024 0.082443 0.069711 -0.013203 0.014406 +0.030125 -0.045500 -0.041806 0.002497 0.025155 +0.017453 0.003895 -0.083765 0.104400 0.011102 +-0.048345 0.018909 -0.030988 -0.072003 -0.023689 +0.039778 -0.011208 0.089401 -0.003381 0.064581 +-0.037057 0.017900 0.009406 -0.035557 0.007209 +-0.003241 -0.108553 0.107998 -0.002787 -0.041577 +-0.001725 0.010872 0.036545 0.091885 0.044958 +0.069362 -0.032205 0.088568 0.031341 0.039043 +0.010331 0.015777 -0.034748 -0.023237 0.005678 +0.045804 0.043555 0.039834 0.109120 -0.055790 +-0.015894 0.100543 0.050280 -0.072103 -0.045188 +-0.011023 -0.045609 0.030003 -0.010336 0.063708 +0.019876 0.039063 -0.034557 -0.076987 0.129728 +0.030980 -0.069793 0.006613 -0.009915 -0.020373 +-0.069965 0.002061 0.000541 -0.052867 0.092944 +0.006017 0.032142 0.001437 0.012183 0.032717 +-0.116354 0.039141 -0.103482 -0.032555 -0.058604 +0.051576 -0.057991 -0.087256 0.032997 0.087854 +-0.040337 -0.024261 0.038911 -0.077252 -0.039797 +0.081800 0.001805 0.100735 0.013940 0.003214 +-0.061214 -0.144295 0.008308 -0.079288 0.011819 +-0.009353 0.021735 0.041214 0.036036 -0.075607 +-0.035037 0.053300 0.014234 0.024169 0.037498 +0.041347 0.073833 -0.068231 -0.042470 0.014760 +0.033778 -0.058964 -0.006533 -0.067729 -0.003610 +-0.018476 0.009825 -0.029418 0.050496 0.036382 +0.060848 0.025206 -0.004172 -0.075537 -0.012303 +-0.004545 -0.052962 0.118191 0.014623 0.029139 +0.011171 0.016876 -0.013963 -0.059052 0.080971 +0.002827 -0.003879 -0.049140 0.078897 -0.085060 +-0.088602 0.131228 0.004221 -0.011391 -0.071427 +0.017718 0.070627 0.054229 -0.044273 0.070835 +0.025214 0.000275 -0.196338 -0.055537 -0.009349 +0.028434 0.030911 -0.087382 0.065504 0.032241 +0.011778 0.089297 0.008448 -0.051996 -0.159620 +-0.008923 -0.062831 0.056001 0.025205 -0.012758 +-0.071953 -0.005149 0.018063 -0.014935 -0.030631 +0.013403 0.008570 0.080274 0.062037 -0.129636 +0.011472 0.077844 0.062828 0.098467 0.066360 +-0.086768 0.078864 0.029290 -0.000317 0.128502 +0.004070 -0.025683 -0.096323 -0.046173 0.149402 +0.030056 -0.030776 -0.044512 0.070740 -0.008688 +0.014318 0.073530 0.097921 0.001865 -0.050654 +-0.033176 -0.025587 0.089396 -0.054027 0.105766 +0.000104 -0.058115 -0.051152 -0.028157 0.079932 +-0.060212 -0.086791 0.029739 -0.006208 -0.054993 +-0.004691 0.017634 -0.011116 0.051677 -0.039065 +0.062654 0.079876 0.012684 -0.029185 -0.019667 +0.012281 0.089665 -0.044542 0.013976 -0.055887 +-0.029754 -0.078267 -0.023077 0.060156 0.047758 +-0.017389 0.027009 0.061441 -0.041074 -0.115783 +0.058611 -0.060866 0.113852 0.028394 -0.032204 +0.051306 -0.045035 0.012411 -0.104662 -0.067768 +0.005348 -0.053385 0.029868 0.023673 -0.127300 +0.010816 0.112224 -0.017053 0.061578 -0.040140 +0.049130 0.081442 -0.020925 -0.013124 0.049795 +0.000088 -0.080273 -0.041920 -0.006154 0.026384 +-0.017665 -0.029077 0.028767 0.109973 -0.064974 +0.016728 0.012762 -0.017789 -0.018455 -0.027535 +-0.026842 -0.082729 0.081654 0.058251 0.101281 +0.008607 -0.074243 0.030006 -0.114336 0.077834 +-0.042818 -0.047540 -0.040810 0.016980 0.009716 +-0.019924 0.025318 0.094241 -0.026210 -0.040988 +0.003781 0.101619 0.098932 0.076552 0.025069 +0.010124 -0.042034 -0.095420 -0.072274 -0.061223 +-0.025071 -0.016132 -0.047999 0.172624 -0.036838 +0.011581 0.054710 -0.035830 -0.120277 -0.100100 +-0.057028 0.006910 0.118464 -0.022154 0.025012 +-0.017797 -0.033263 -0.008283 -0.003727 -0.043563 +-0.003699 -0.095741 0.060120 -0.083925 -0.090614 +-0.052209 0.069252 0.084102 0.031573 -0.065150 +0.048194 0.013857 -0.000901 0.082968 0.075239 +-0.023543 -0.017918 -0.034752 -0.020715 0.045946 +0.025948 0.035884 -0.001330 0.030377 -0.069708 +0.037228 0.064584 -0.011534 0.004775 -0.031321 +-0.023894 -0.066680 -0.017407 -0.031766 0.082944 +0.029780 -0.020334 -0.059467 -0.105484 -0.011107 +0.107375 -0.081264 -0.085535 0.015847 0.011785 +-0.147292 0.091983 -0.035194 0.018371 -0.019603 +0.000643 0.026524 0.033881 -0.031605 -0.026151 +-0.015905 0.025076 -0.040237 -0.015447 -0.036770 +-0.023092 -0.008956 -0.094738 0.052213 0.066411 +-0.014003 -0.038628 0.067782 -0.113461 -0.048569 +0.077947 -0.029368 0.029847 0.032522 -0.053873 +-0.009694 -0.066035 0.097838 -0.080553 0.014786 +-0.041721 0.042424 -0.067096 0.086017 -0.083068 +-0.031687 0.049261 0.011088 0.055956 -0.042553 +0.064152 0.032740 -0.042521 0.032623 0.026468 +-0.060446 -0.061420 -0.040101 -0.072435 -0.035127 +-0.015938 -0.056502 -0.012235 0.159594 0.036828 +0.014961 0.039926 -0.052046 -0.008302 -0.025221 +-0.019677 -0.050264 0.064556 0.090868 0.045306 +-0.056054 0.027715 -0.051663 -0.105423 0.043022 +0.028868 -0.059945 -0.078316 -0.022563 -0.067438 +-0.015459 0.051782 0.012461 -0.017353 -0.111666 +0.047354 0.038969 0.018721 -0.042239 0.086618 +0.047663 -0.009423 -0.062622 -0.054796 0.027821 +-0.055863 0.015206 -0.063846 0.042120 0.051280 +0.000880 -0.064353 -0.006378 -0.079885 -0.085024 +-0.060682 -0.023010 0.052677 0.020476 0.036878 +-0.022570 -0.097679 0.024609 -0.051637 -0.023871 +0.018994 -0.008905 0.163821 0.035607 -0.004083 +0.029753 0.070722 0.065015 0.036317 0.015253 +-0.018487 0.021981 -0.052297 0.101195 0.046329 +-0.018899 0.076923 -0.090549 -0.069408 0.052880 +0.072613 0.016603 0.009898 0.038810 -0.097531 +0.011528 0.033681 0.044555 0.022445 -0.040337 +-0.006570 0.016912 0.017289 -0.010643 0.054567 +0.039843 -0.082038 0.051662 -0.036190 0.056489 +-0.013943 -0.108354 0.074006 0.095726 -0.069664 +-0.034176 -0.043247 0.007026 -0.014616 0.018185 +0.005567 0.064569 0.062030 -0.061575 0.033160 +0.003638 0.043355 -0.092562 -0.001359 -0.118802 +0.034657 -0.080892 -0.115509 0.051575 -0.016477 +0.073726 -0.028197 0.101744 -0.091687 -0.002308 +0.003490 -0.025382 0.023563 0.013144 -0.007840 +0.098021 -0.089215 0.043236 -0.056307 0.013368 +0.056472 0.016004 0.007337 0.008555 -0.046066 +-0.000940 0.088476 -0.003382 0.056229 0.011333 +0.025841 0.126240 -0.050253 -0.071801 -0.036593 +-0.113256 -0.027423 -0.077799 -0.003365 0.042368 +-0.007708 -0.040673 -0.002409 0.091194 -0.002389 +0.089456 -0.007822 -0.034486 0.016810 0.021491 +-0.021203 -0.054528 0.050001 0.028679 0.059435 +-0.034908 0.003863 0.053342 -0.072845 0.001339 +-0.054033 0.012885 -0.065048 -0.045609 -0.058860 +-0.076548 0.032086 0.025364 -0.136995 -0.019692 +-0.014073 0.049843 0.053275 -0.021054 0.051495 +0.005986 -0.032989 -0.055326 -0.031727 -0.023301 +0.052516 0.011953 -0.114987 0.050477 -0.086649 +0.029069 0.034181 -0.055159 -0.036203 -0.045128 +0.001147 -0.008622 0.073690 -0.077472 0.037649 +-0.023539 -0.019114 0.007866 -0.053950 0.029809 +0.002350 -0.026481 0.147821 -0.047601 -0.036813 +-0.037253 0.033533 0.027495 0.047206 -0.008682 +0.052569 -0.038196 0.009663 -0.000160 0.096707 +-0.058192 0.000390 -0.047017 -0.034486 0.014275 +0.016853 0.040124 0.061386 0.115421 0.015532 +0.083606 0.081646 -0.014130 -0.065768 -0.049301 +0.046979 -0.074307 -0.000569 0.043637 0.041337 +0.036121 0.073310 -0.066751 -0.075889 0.042658 +-0.033533 -0.145897 0.036198 0.008869 -0.000721 +-0.096931 0.083547 -0.053221 -0.059850 0.044181 +-0.047437 0.017891 0.054674 -0.007182 -0.021841 +-0.057955 0.025656 -0.022698 0.003117 0.006525 +0.054665 -0.016601 -0.070885 0.038416 0.036323 +-0.106994 -0.070705 0.076054 -0.096182 0.017493 +0.019099 0.040334 0.095834 0.024157 -0.012504 +-0.036345 -0.054321 0.024473 -0.042893 0.045064 +0.020362 0.013309 -0.022876 0.136195 -0.126968 +-0.008470 0.104812 -0.060638 0.042024 0.051826 +-0.046516 0.068780 -0.166211 0.010537 -0.020067 +-0.016696 -0.031551 -0.045680 -0.140254 0.023460 +0.019033 -0.007193 0.020098 0.033574 0.032849 +-0.009729 0.029711 0.035164 -0.031548 -0.069463 +-0.068795 -0.076409 0.084793 0.058786 0.033407 +-0.055633 0.057879 -0.064890 -0.085820 0.141134 +-0.032456 -0.044056 -0.052030 0.080704 -0.065311 +-0.029210 0.031372 -0.005285 0.001060 -0.066081 +-0.002741 0.043095 0.081838 0.016630 0.083339 +-0.027374 -0.002893 -0.096649 -0.007570 -0.027971 +0.023363 -0.012161 -0.079953 0.015753 0.010524 +0.011885 0.035772 -0.053325 -0.031173 -0.135173 +-0.008628 -0.004336 0.065589 -0.022764 -0.012130 +-0.022211 -0.014175 0.049009 -0.008368 -0.051407 +0.003391 -0.045775 0.040152 0.019404 -0.076654 +-0.003267 0.015085 0.089489 0.060779 0.030779 +-0.008577 0.025139 -0.005374 0.038636 0.058301 +0.018353 -0.010357 -0.012618 -0.013865 0.082768 +0.012199 -0.031424 -0.049425 0.036742 -0.023385 +0.016261 0.046336 0.082459 -0.046018 -0.072305 +0.007065 -0.052342 0.072695 -0.082325 0.056070 diff --git a/src/codebook/lspvqexp3.txt b/src/codebook/lspvqexp3.txt new file mode 100644 index 0000000..04cd64b --- /dev/null +++ b/src/codebook/lspvqexp3.txt @@ -0,0 +1,2049 @@ +5 2048 +-0.136198 0.024151 -0.063695 0.003294 0.028292 +0.058532 0.000407 0.081822 0.109613 0.092702 +0.002289 -0.004336 -0.001953 0.032305 -0.008448 +-0.035198 -0.023077 -0.052002 -0.025974 -0.085171 +0.004385 -0.026216 -0.018253 -0.018256 0.012774 +0.006358 0.026024 -0.087778 0.011771 -0.078083 +0.007874 0.003175 -0.052089 0.064003 -0.042512 +0.014535 0.006232 -0.033255 -0.045854 -0.107260 +0.004491 0.019560 0.061050 0.029138 0.036281 +-0.078731 -0.044440 -0.048337 -0.025092 0.081402 +-0.007244 -0.049045 0.058090 0.066585 0.018635 +-0.075770 0.063007 -0.000503 -0.135694 -0.037603 +-0.054068 -0.104063 0.005153 0.006977 0.008814 +-0.020893 -0.019060 -0.070042 0.004665 0.090232 +-0.015010 0.032240 0.000378 -0.002297 0.004771 +-0.040127 -0.041383 0.105462 -0.015007 -0.029958 +0.009637 0.050721 -0.064000 0.070794 -0.027916 +0.001217 -0.095625 0.095422 -0.058274 0.030180 +0.047937 -0.040794 -0.018864 0.036107 -0.038520 +-0.035711 -0.046199 -0.031081 -0.090591 -0.073785 +0.068495 -0.021466 0.055625 0.027533 -0.056869 +0.059775 -0.041632 -0.096969 -0.057469 -0.082582 +0.076556 -0.075055 0.014253 -0.024721 -0.110025 +0.039510 0.002922 0.001583 -0.081297 -0.054432 +0.036638 0.106348 -0.029202 0.053259 0.060782 +-0.053679 0.039323 0.097200 0.001035 0.086560 +-0.023819 -0.121783 -0.029909 0.046493 -0.020142 +0.049289 0.084407 0.081999 -0.002632 -0.023474 +-0.049136 -0.022296 0.090649 0.036711 -0.056647 +0.006248 0.061232 0.007889 -0.075399 0.015312 +0.057416 0.103818 -0.016070 0.040505 -0.001189 +0.114331 -0.090671 0.090784 0.004698 -0.078036 +-0.096890 0.084786 0.041716 0.042491 -0.057462 +-0.014909 -0.032684 0.071338 -0.025083 0.051331 +0.050537 -0.069533 -0.037126 0.032846 0.025729 +-0.047775 0.055988 -0.018972 -0.025690 -0.027975 +-0.017970 0.023020 0.098593 0.004612 0.013157 +0.044770 0.015091 -0.069310 -0.062427 -0.021413 +-0.022487 0.105120 0.052485 0.089068 -0.015127 +-0.069327 -0.005520 -0.039356 -0.065169 -0.081883 +0.077729 0.024051 0.008893 0.135290 0.036535 +-0.016512 -0.061216 -0.051545 0.019876 0.044939 +-0.119244 -0.030603 -0.021134 0.038262 0.002980 +-0.079101 0.080099 0.036993 -0.067815 -0.008885 +-0.054560 -0.014317 0.093316 0.100385 -0.001690 +0.052346 -0.004258 -0.013592 -0.042301 0.049842 +0.092826 0.061851 0.027621 -0.024069 -0.059213 +0.031617 -0.009108 0.022338 -0.063250 -0.097158 +-0.008177 -0.030577 -0.107136 0.017774 0.059538 +-0.053438 0.008281 -0.008953 -0.207584 0.041500 +0.006693 -0.093889 -0.039108 0.040752 0.020200 +0.005813 -0.021241 -0.046317 -0.019980 -0.037740 +0.134550 0.018885 -0.020492 0.033445 -0.004411 +0.000456 -0.030901 -0.058047 -0.081834 -0.007611 +0.006314 0.008851 0.070179 0.003036 -0.035749 +0.067106 -0.087172 0.047680 -0.058147 -0.011858 +-0.043608 -0.020841 0.038136 -0.031081 0.185361 +-0.054055 -0.067146 0.097240 -0.082580 0.051439 +0.003624 -0.133423 0.011530 0.119056 -0.043475 +-0.001737 0.110875 0.038530 -0.027030 0.053434 +0.000648 -0.029320 0.121211 0.029589 -0.039707 +-0.068850 0.000408 -0.032227 -0.003072 0.052231 +0.034923 0.080837 -0.037156 -0.094754 0.014542 +-0.005315 -0.054038 0.012812 -0.027090 -0.001601 +-0.083437 0.019212 -0.016505 0.046104 0.038554 +0.072309 -0.011739 0.059850 -0.056206 0.073386 +0.135263 0.000286 -0.060518 0.036391 -0.060506 +-0.027527 -0.000692 0.036739 -0.066074 -0.088864 +0.005166 -0.054854 -0.003007 -0.010121 0.027824 +-0.036967 -0.100932 -0.182594 -0.013910 0.014657 +0.023979 0.055629 -0.054566 0.106056 -0.079044 +-0.037983 -0.044929 0.043735 -0.085774 -0.009132 +-0.024985 -0.071464 0.051902 0.102450 0.054042 +-0.016588 -0.074683 -0.064110 0.056690 0.110680 +-0.064499 -0.033720 0.024264 0.088022 0.031179 +-0.015453 0.035079 0.044771 -0.043409 -0.047855 +0.078062 -0.091048 0.052298 0.018898 0.005019 +-0.054365 0.080023 -0.065458 -0.065704 0.014520 +-0.003386 0.001319 -0.046118 -0.010700 0.008233 +-0.030496 -0.072516 0.051522 -0.020414 -0.101831 +0.017761 0.038077 -0.114244 0.041726 0.083964 +-0.016531 -0.129688 -0.014288 -0.122167 0.063062 +0.116380 -0.065367 -0.038604 0.095723 -0.036360 +-0.066306 0.014726 -0.011596 -0.005770 -0.048796 +0.090592 -0.004417 0.009466 0.098691 -0.066093 +0.001754 -0.005848 -0.043066 -0.037892 0.031807 +-0.022616 -0.021159 0.045873 0.028421 -0.085595 +0.049794 -0.001914 0.008752 -0.077905 0.029994 +0.044235 0.064398 0.005282 -0.003674 0.086059 +-0.032460 0.015037 -0.007206 -0.036713 0.011909 +-0.017113 -0.061523 -0.001698 0.001480 -0.052389 +-0.005496 0.081887 0.018394 0.005492 -0.048520 +-0.036485 0.006979 0.121328 0.069020 -0.093697 +-0.035414 0.025382 0.033335 -0.042742 0.078618 +0.022150 0.100313 -0.081797 -0.006077 -0.036600 +0.043498 -0.047693 0.080861 -0.041208 -0.074855 +-0.034519 0.006730 0.150509 0.059429 -0.003976 +-0.059532 -0.022218 0.071419 -0.051453 0.008904 +0.063565 -0.107466 -0.026643 -0.009845 0.097906 +-0.094940 0.057756 -0.085002 0.019603 -0.098395 +0.015610 0.000806 0.058999 -0.025760 0.036316 +0.071066 0.030579 -0.066243 -0.023751 -0.060747 +0.067731 0.090313 0.041003 0.076536 -0.012685 +0.069395 0.035647 -0.112161 -0.075184 0.003099 +-0.017065 0.018376 0.017104 0.109557 0.049888 +-0.047698 -0.041877 -0.000537 0.051347 -0.003682 +-0.016370 -0.001696 -0.010154 0.067477 -0.036583 +-0.020092 0.048256 0.084878 -0.100501 -0.035380 +0.008671 -0.122585 0.038716 -0.002197 -0.101482 +0.037247 -0.032842 -0.068559 -0.021387 0.014449 +0.027927 0.060964 -0.048375 0.028367 0.038134 +-0.014885 -0.092447 -0.081616 -0.015822 -0.134913 +-0.021274 0.013697 -0.035055 0.055911 0.033111 +-0.034970 -0.015798 -0.007119 -0.076467 0.028984 +-0.014502 -0.124275 0.021441 0.078607 0.002858 +-0.042356 -0.003098 0.045995 0.031341 -0.016968 +0.041560 0.019148 0.004700 0.005637 0.093016 +0.063490 -0.048735 -0.069068 -0.034088 -0.028215 +0.045350 0.075594 0.037776 0.024450 -0.071678 +0.087072 0.009286 -0.023885 0.019862 -0.012771 +-0.029248 -0.016036 -0.089092 0.074240 0.169069 +-0.033409 0.026100 -0.024626 -0.043863 0.098736 +0.012158 -0.077333 -0.083731 0.013768 -0.080944 +-0.060470 0.037407 -0.013690 0.007337 -0.001188 +0.005453 0.026261 0.119036 0.043940 0.046011 +-0.035860 0.008540 -0.113766 -0.097502 0.024057 +0.024457 0.118827 -0.001543 -0.064711 -0.007631 +0.049637 -0.101928 -0.002462 0.054230 -0.044736 +-0.067470 0.078729 -0.034003 0.014536 -0.022247 +0.161762 -0.041209 0.037097 -0.052532 -0.031344 +0.061129 0.020176 -0.066030 0.038964 0.022928 +-0.014012 -0.030939 -0.092443 0.002874 -0.114395 +-0.010621 -0.005537 0.018042 -0.045648 0.044588 +0.007453 0.095088 -0.128336 0.107088 -0.032186 +-0.047594 0.046694 0.039679 0.083442 -0.088060 +0.060757 0.082896 0.037419 -0.092975 -0.054674 +0.022723 -0.030652 0.025581 0.033843 0.085935 +-0.020876 -0.055952 -0.103915 -0.073020 0.045301 +0.020552 0.047020 0.047981 0.150138 -0.041783 +-0.081206 0.015811 0.025886 -0.105666 0.097623 +-0.026606 -0.109640 0.031300 -0.029835 0.007132 +-0.004757 0.036673 -0.113804 -0.044055 0.015492 +0.016617 0.050138 -0.020709 0.070749 0.016487 +-0.041772 -0.059857 0.040483 0.002005 -0.030924 +0.045135 0.114146 -0.077004 0.040268 0.014157 +-0.007526 -0.029177 0.064663 -0.093478 0.103127 +0.041264 -0.004835 0.013205 0.110399 -0.026498 +-0.107188 -0.024533 -0.071115 -0.052007 -0.006395 +0.030684 -0.035133 0.019891 0.033587 -0.028437 +-0.019472 -0.016122 -0.099020 -0.052317 -0.029623 +0.023893 -0.019150 0.042703 -0.007384 -0.135429 +-0.008658 0.020311 0.016085 -0.113980 -0.001115 +-0.036113 0.054423 0.008653 -0.007789 0.077924 +-0.129044 -0.005070 0.011282 0.013904 0.077014 +-0.025623 -0.031789 -0.073370 0.010481 -0.041819 +0.008182 0.065192 0.027333 -0.034730 -0.026375 +-0.073571 -0.019647 0.040694 -0.003020 -0.065061 +-0.014276 0.079966 0.003562 -0.144068 0.054787 +-0.022846 0.071080 -0.036877 -0.012692 -0.082166 +-0.006918 -0.096688 0.095501 0.064056 0.007213 +-0.036690 0.026213 0.059957 0.047896 0.003414 +0.000914 0.015446 0.098563 -0.056379 0.137143 +0.018164 -0.076211 -0.070196 0.001563 0.047637 +-0.049087 0.114850 -0.090803 -0.012260 -0.036278 +0.029559 0.002293 0.037244 0.047064 0.038113 +0.070849 0.065524 -0.021498 0.000989 -0.091111 +-0.036143 0.076107 0.016355 0.059505 -0.023400 +-0.048163 0.004599 0.025481 -0.093492 -0.022306 +0.020409 0.023572 -0.001520 0.059761 0.064734 +-0.032331 -0.014971 -0.032497 -0.010585 0.008900 +-0.085173 -0.038940 0.017863 0.073312 -0.032050 +-0.026419 0.012730 0.067669 -0.005028 -0.054256 +-0.019721 -0.049805 0.080959 0.050680 0.057457 +-0.006579 -0.003248 -0.080847 -0.103158 0.064238 +0.082133 0.070334 -0.026602 -0.064571 0.042901 +0.017513 -0.081866 -0.016501 -0.088344 0.022655 +0.009335 -0.047461 -0.005181 0.060236 0.032349 +-0.056626 -0.022179 -0.044705 -0.131625 -0.028104 +-0.026924 -0.045874 0.036424 0.026185 0.023864 +-0.028118 -0.018505 0.018550 0.000643 -0.055726 +0.101839 -0.037958 0.031116 0.110118 0.009110 +0.112021 -0.038578 -0.104082 -0.042272 0.040893 +0.028742 -0.028607 0.080643 0.003287 -0.063413 +0.099046 -0.029956 0.002892 -0.067344 -0.016823 +0.008602 0.017513 -0.014264 -0.041185 0.124856 +-0.054844 -0.072185 0.033952 -0.096401 0.046007 +-0.020749 -0.046471 0.003558 0.082125 -0.096910 +0.025411 0.127329 0.076666 0.068718 0.005743 +0.043603 -0.056968 0.086610 0.010153 -0.036367 +-0.068722 0.024772 -0.000639 -0.052051 0.074796 +0.019967 0.077602 -0.034771 -0.009789 -0.023551 +0.047117 -0.066717 -0.066348 -0.063558 0.008220 +-0.027567 0.036273 -0.067110 0.028847 0.089473 +0.083247 0.004591 0.077405 -0.082932 -0.013968 +0.079836 -0.052437 -0.080184 0.015535 0.000867 +-0.020465 0.038101 0.029256 0.027121 -0.094745 +0.022846 0.000927 0.004314 -0.039488 0.016252 +-0.016129 -0.000925 -0.125901 0.037569 -0.012151 +0.050660 0.036394 -0.018283 0.058805 -0.009276 +0.002687 -0.029775 -0.002892 -0.018790 -0.068265 +-0.026723 -0.038695 0.067644 0.027095 0.104267 +-0.033127 -0.092325 -0.101391 0.051657 0.047692 +-0.039487 0.017442 -0.007204 0.106333 -0.026736 +-0.026984 0.048252 0.041384 -0.002131 0.042443 +0.019367 -0.077827 0.019452 -0.004992 0.095049 +-0.020183 0.054128 -0.089501 -0.106767 0.133742 +0.003715 0.065993 -0.010120 0.002578 0.010632 +-0.104027 -0.092526 0.051102 -0.064092 0.007341 +0.037981 0.005348 -0.098388 0.082010 0.023682 +0.101454 -0.074181 0.022470 -0.047488 0.034728 +0.054519 -0.059484 -0.055491 0.133582 0.009556 +-0.120963 -0.043837 0.028549 0.025534 0.028904 +0.108670 -0.032038 0.012596 0.038519 -0.012244 +0.003888 0.019393 -0.076558 -0.013031 -0.019858 +-0.006786 -0.020230 0.044975 0.034040 -0.032445 +0.099970 -0.025120 -0.012044 -0.058520 0.081664 +-0.018743 0.028691 0.017459 0.030523 0.121595 +-0.045728 -0.044359 0.002157 0.025037 0.043565 +-0.027940 -0.112422 0.019525 0.012089 -0.036526 +0.012809 0.102396 0.061700 0.009053 -0.006318 +-0.073644 0.052544 0.093009 0.002094 -0.048500 +-0.067838 0.044219 0.004622 -0.021517 0.144798 +0.000396 0.028552 -0.047957 0.022072 -0.044059 +0.022301 -0.046990 0.069399 -0.022723 0.001209 +-0.061132 0.035083 0.054456 -0.053667 0.023348 +-0.021700 0.035612 0.078641 -0.067377 0.046902 +0.103671 -0.042167 -0.039490 0.027663 0.018158 +-0.034924 0.044647 -0.017309 0.013019 -0.075672 +0.016417 0.018863 -0.005962 -0.054108 -0.028444 +0.033930 -0.024540 -0.021060 0.018088 -0.079446 +0.004808 0.042524 0.042005 0.062594 -0.020936 +0.045898 -0.007873 -0.067501 -0.079291 -0.053730 +-0.044782 0.007470 -0.003636 0.041779 0.032024 +-0.055764 -0.025299 -0.042428 0.043255 0.061536 +-0.028270 0.031312 -0.055603 0.078003 -0.007771 +-0.035400 0.019441 0.101450 -0.047446 -0.021123 +-0.003012 -0.065746 0.021167 0.028415 -0.039012 +0.078986 0.041230 -0.109603 -0.053586 0.081713 +0.069524 0.086261 0.032415 0.020301 0.008172 +-0.050007 -0.043252 0.032538 -0.040149 -0.060186 +-0.036647 0.074839 -0.067704 0.105038 0.016407 +-0.017166 -0.040157 -0.034379 -0.045783 0.036121 +0.006989 -0.053621 -0.014310 0.130029 0.014339 +0.010984 -0.049323 0.011801 0.024418 -0.061108 +0.048945 0.020936 -0.016709 0.036678 0.056799 +-0.032054 -0.081596 -0.020000 -0.014900 -0.016931 +0.025720 0.030371 0.054373 0.041972 -0.103673 +0.072505 -0.008653 -0.038498 -0.082343 -0.011659 +0.008214 -0.051158 -0.011619 0.011396 0.073440 +-0.028140 -0.085370 -0.083429 -0.059579 0.093532 +0.017281 -0.029324 -0.063027 0.036276 -0.035917 +-0.062731 0.083485 0.034826 -0.016723 0.041119 +0.006462 0.063240 0.106462 0.005405 0.014198 +-0.107371 0.016648 -0.039299 -0.060254 0.066074 +0.010798 0.104663 -0.026071 -0.092536 -0.049821 +0.052302 -0.111521 -0.028997 -0.044881 -0.058612 +-0.066180 0.063782 -0.087613 0.131044 0.079319 +0.051549 -0.031150 0.050463 0.014022 0.072812 +0.040951 -0.008242 -0.035076 -0.012706 -0.007732 +-0.087407 -0.043003 -0.051495 -0.005909 -0.078253 +0.024556 -0.000301 -0.002836 0.000471 0.036449 +-0.033227 0.013122 -0.041830 0.053473 -0.062823 +0.001698 0.056414 -0.009009 0.074868 -0.031437 +0.061142 0.034153 0.037913 -0.016467 -0.112529 +-0.042555 0.004865 0.068299 0.039970 0.035002 +-0.032275 -0.054429 -0.110647 -0.004981 0.106602 +-0.009971 -0.070226 0.011717 0.078195 -0.004486 +-0.053666 0.032253 0.019880 -0.063381 -0.011499 +-0.021161 -0.147358 0.022501 0.026856 0.014878 +0.071720 -0.018691 -0.078472 0.006781 0.128504 +0.009349 0.032300 0.024117 0.093683 -0.001689 +-0.038787 -0.022119 0.025894 -0.051130 -0.029077 +-0.003509 0.056923 -0.043564 0.047755 0.029228 +0.094577 -0.059873 0.105327 -0.045681 0.020128 +0.019571 -0.053714 -0.026005 0.082821 0.010883 +-0.090635 -0.046160 0.015147 -0.060630 -0.025114 +0.065345 -0.062635 0.033608 -0.000239 -0.055078 +0.028179 0.007232 -0.132300 -0.058511 -0.027521 +0.009924 -0.057576 0.037098 -0.048222 -0.067691 +0.025807 0.005481 0.053364 -0.071026 0.002704 +-0.019833 0.056496 -0.012323 0.054975 0.053260 +-0.058168 -0.002745 0.051808 0.007857 0.072213 +-0.028508 -0.100966 -0.066436 0.094923 -0.032702 +0.016386 0.144962 0.060276 -0.060885 0.045013 +-0.008694 -0.035070 0.077187 0.011427 -0.039974 +0.041845 0.095921 -0.012129 -0.069502 0.058053 +0.016498 0.068097 -0.063723 0.058607 -0.084662 +0.051080 -0.084087 0.061664 -0.014378 -0.020357 +-0.101420 0.018380 0.026201 0.021273 0.001716 +0.018280 -0.048955 0.114013 0.007403 0.073650 +-0.007198 -0.073071 -0.043345 -0.025399 0.062280 +-0.057043 0.007375 -0.057945 0.001682 -0.068288 +-0.004458 0.057944 0.019870 0.030319 0.023300 +0.023258 0.038816 -0.075939 0.024401 -0.008493 +-0.088976 0.084875 -0.004901 0.107413 0.036685 +-0.017576 0.049893 -0.017089 -0.076959 -0.047043 +0.012304 0.096589 0.020081 0.055371 0.026179 +-0.031262 -0.023054 -0.062863 0.022469 0.026254 +-0.081002 0.001604 -0.067115 0.089364 -0.044846 +-0.104635 0.022051 0.024153 -0.050297 -0.090473 +-0.111208 -0.014747 0.065056 0.064524 0.014978 +-0.018009 -0.045181 -0.036814 -0.049839 0.101556 +0.123355 0.029904 0.046059 0.075873 0.023800 +0.018950 -0.069598 -0.023833 -0.044717 -0.059289 +0.005309 -0.050755 -0.129767 0.090909 0.049327 +0.034593 -0.024217 -0.013090 -0.120429 0.018611 +0.035730 -0.069972 -0.020352 0.040567 -0.008846 +-0.035745 -0.012086 -0.029290 -0.031875 -0.022851 +0.126885 0.093804 -0.041337 0.064417 0.012827 +-0.006103 -0.064712 -0.034377 -0.072895 -0.024513 +0.024964 0.025126 0.053845 -0.032844 -0.040164 +0.057226 -0.047268 0.002180 -0.030810 -0.046649 +-0.011612 -0.016914 0.019534 -0.045647 0.103552 +-0.019784 -0.059284 0.034278 -0.052666 0.063638 +-0.030288 -0.052341 -0.018891 0.060842 -0.038845 +0.029390 0.061982 0.049711 -0.034509 0.014359 +-0.001671 -0.096474 0.111850 -0.008201 -0.039744 +-0.018012 -0.003881 -0.008624 -0.032458 0.060460 +0.046820 0.050558 -0.004330 -0.043328 0.024076 +0.020855 -0.064731 0.003784 -0.011162 -0.039018 +-0.064459 0.004758 -0.065784 0.046246 0.009026 +0.061065 0.051008 0.060159 -0.028994 0.058623 +0.065914 -0.082042 -0.137623 0.009165 -0.028321 +0.013924 0.038290 0.064550 -0.076981 -0.104556 +0.057766 -0.047215 -0.025831 -0.014589 0.040468 +-0.018660 -0.044675 -0.134278 -0.019992 0.000064 +-0.007643 0.019573 -0.005029 0.139097 -0.058444 +0.015872 -0.061714 0.054845 -0.093905 -0.023694 +-0.069868 -0.051634 0.093449 0.116722 0.041075 +-0.031597 -0.064630 -0.001604 -0.011889 0.114102 +-0.038392 -0.043996 0.036345 0.159256 0.042733 +-0.014768 0.023374 0.091565 -0.062174 0.008748 +0.027552 -0.065067 0.043484 0.029833 0.068407 +0.062921 0.100413 -0.044081 -0.047093 0.012867 +-0.021198 0.053674 -0.074601 0.009988 -0.000368 +0.004615 -0.031012 0.126258 -0.044950 -0.053716 +0.068829 0.028389 -0.081499 0.096576 0.111555 +0.032580 -0.091888 0.004783 -0.058619 0.103336 +0.023528 -0.067561 -0.052227 0.060540 -0.008415 +-0.134399 -0.003137 -0.005498 0.000696 -0.064610 +0.103028 -0.016839 0.054380 0.058673 -0.018968 +-0.030411 0.004030 -0.022930 -0.074504 -0.005768 +-0.040922 -0.056206 0.026643 0.091472 -0.046289 +0.024551 0.006847 -0.043098 -0.076632 0.023143 +-0.027690 0.058150 -0.033455 -0.000947 0.108861 +-0.053902 -0.004117 -0.000733 -0.004552 0.018160 +-0.015632 -0.075342 -0.057899 0.043216 -0.030867 +-0.025610 0.087151 0.015012 -0.058812 -0.077554 +-0.057877 0.030875 0.088541 0.068489 -0.037517 +-0.013136 0.003726 0.026354 -0.076145 0.081871 +0.009685 0.049282 -0.053126 -0.041669 -0.055971 +0.070689 -0.000302 0.030654 -0.059458 -0.032358 +-0.073479 0.014645 0.057040 0.060111 0.026122 +-0.021404 -0.035383 0.105578 -0.064143 0.009201 +0.067302 -0.018682 -0.018425 0.053502 0.095608 +-0.089642 0.061823 -0.049713 0.118868 -0.071061 +0.033484 0.020846 0.017472 0.009132 0.017367 +0.095422 0.015719 -0.042701 -0.059963 -0.093737 +0.065153 0.040501 0.070592 0.084313 0.023778 +0.011293 0.022143 -0.078417 -0.072724 0.022472 +-0.047887 0.042426 0.002790 0.080670 0.045298 +-0.124868 -0.052373 -0.036868 0.080892 0.053132 +-0.029773 -0.038766 -0.021131 0.028890 -0.019483 +-0.031257 0.013785 0.114016 -0.019299 -0.095540 +-0.081494 -0.108033 0.072808 0.034714 -0.046113 +0.018918 0.025646 -0.012081 -0.029184 0.035413 +0.062215 0.094361 -0.038357 0.004033 0.061858 +-0.040066 -0.073778 -0.039352 -0.026946 -0.078584 +-0.027017 -0.016385 -0.070475 0.068096 0.031208 +0.024912 -0.031301 0.028130 -0.092740 0.010887 +0.080067 -0.086228 -0.002645 0.062014 0.039789 +-0.000913 -0.002893 0.021215 0.025308 -0.079170 +0.021198 0.011411 -0.029445 0.021288 0.028934 +-0.012482 -0.093791 -0.086795 -0.065003 -0.091575 +0.042822 0.048190 0.027573 0.016672 -0.031582 +0.084478 -0.026855 0.002037 -0.003986 -0.032282 +-0.037516 0.024939 0.006645 0.069559 0.096001 +-0.009324 -0.020647 0.016115 -0.002890 0.099816 +0.035798 -0.055626 -0.082205 0.061510 -0.137040 +-0.003237 0.086092 -0.015616 0.038825 0.025940 +-0.009435 -0.039900 0.130411 0.041684 0.029411 +-0.053212 0.035136 -0.038974 -0.068479 -0.014046 +-0.052464 0.114330 0.014803 -0.043086 -0.031898 +0.114055 -0.094015 0.000194 0.005274 -0.032729 +-0.061821 0.146682 -0.033636 0.052702 -0.025910 +0.076647 0.000572 0.089946 0.018515 -0.012439 +0.057567 -0.023096 -0.066766 0.029717 -0.021521 +-0.048165 0.037444 -0.026950 -0.054050 -0.122571 +0.003033 -0.021280 0.058783 -0.065330 0.032047 +0.016007 0.003629 -0.102811 0.075806 -0.028556 +-0.051245 0.032001 0.006924 0.046225 -0.066944 +0.026360 0.071868 0.000989 -0.051417 -0.082284 +0.007536 -0.005941 0.054340 0.097832 0.059470 +0.005201 -0.029254 -0.063891 -0.032060 0.063113 +0.005567 -0.038440 0.079032 0.117269 -0.027965 +-0.018444 0.021519 0.056596 -0.077845 -0.001929 +0.018144 -0.117195 0.021022 -0.078031 0.060201 +0.068169 0.033446 -0.116183 0.024450 0.054125 +0.043263 0.043637 -0.024388 0.028606 -0.043272 +-0.076651 -0.044322 0.043529 -0.032600 -0.022496 +-0.028618 0.105767 -0.131078 0.022952 0.032809 +0.014704 -0.078921 0.053414 -0.130561 0.025975 +-0.006145 -0.020377 0.002576 0.111120 -0.027416 +-0.056800 -0.034249 -0.102732 -0.077605 -0.054125 +0.013938 -0.018912 0.031272 0.045116 0.009640 +-0.000666 -0.010171 -0.101812 -0.086048 -0.079481 +0.012556 -0.025093 -0.037932 0.018846 -0.121557 +0.019521 0.077648 0.062764 -0.080462 -0.006901 +-0.022906 0.106898 -0.001186 -0.033179 0.083120 +-0.108465 0.004729 -0.004907 -0.051941 0.019890 +-0.052798 -0.048321 -0.039992 0.011392 0.022231 +0.052123 0.053230 0.008893 -0.021235 -0.021543 +-0.052336 -0.002642 0.014048 0.021729 -0.071873 +0.008583 0.063055 -0.005700 -0.130218 -0.004615 +0.001933 0.068978 0.002830 0.041471 -0.075840 +0.058590 -0.105352 0.109710 -0.008703 0.046126 +-0.058564 0.044743 0.028326 -0.017021 -0.043831 +-0.006378 0.002489 0.083015 -0.017479 0.032458 +0.075359 -0.070133 -0.094634 0.004253 0.050570 +-0.084605 0.081302 0.020066 -0.026905 -0.070421 +0.027450 0.006091 0.038101 0.058759 -0.022035 +0.075718 0.034255 -0.003008 0.013391 -0.039205 +-0.027185 0.117021 0.026809 0.017619 -0.048835 +0.013076 -0.001288 -0.041201 -0.077396 -0.060871 +0.003384 0.082249 0.080509 0.073375 0.032946 +-0.020732 -0.036562 -0.005218 0.006654 0.017449 +-0.070219 -0.067294 -0.000185 0.046725 -0.032632 +-0.114281 0.007061 0.027082 -0.042412 -0.035359 +-0.017030 -0.081911 0.091617 -0.001734 0.040171 +0.029232 0.022946 -0.023063 -0.099398 0.088196 +0.134224 0.037312 -0.010897 0.015441 0.048401 +0.036710 -0.079633 0.068283 -0.095899 -0.076950 +0.031388 -0.049701 -0.078358 0.071239 0.093230 +-0.047640 -0.059715 -0.006775 -0.091115 -0.004787 +0.029706 -0.062712 0.001230 0.035511 0.012170 +-0.035826 -0.020972 -0.004566 -0.054826 -0.080743 +0.043183 -0.019993 -0.009134 0.093461 0.062293 +0.055956 -0.052129 -0.076380 -0.112243 0.065413 +0.075567 0.019848 0.094121 0.021786 -0.068644 +0.060691 -0.037556 0.053416 -0.063583 -0.009116 +0.059647 0.033059 0.008383 -0.057678 0.106669 +-0.086182 -0.028844 0.069038 -0.050651 0.045613 +-0.022872 -0.050951 0.020221 0.009049 -0.129767 +-0.034033 0.103312 0.070048 -0.008972 0.021930 +-0.019606 -0.031561 0.065822 0.016592 -0.009995 +-0.028203 0.056913 -0.043993 -0.020496 0.028610 +0.050871 0.070498 -0.045548 -0.038539 -0.050789 +0.065005 -0.048246 0.011105 -0.026236 0.004123 +-0.069629 0.029918 -0.108123 -0.018902 0.020385 +0.012121 0.000873 0.079758 -0.028851 -0.001646 +0.048281 -0.044204 -0.025910 -0.031220 0.006049 +-0.039981 0.031852 -0.007419 -0.008198 -0.105351 +0.021943 -0.009020 0.041415 -0.051481 0.064758 +-0.066937 0.070473 -0.128350 0.059786 -0.012980 +0.046171 -0.005175 -0.054847 0.066448 -0.057361 +0.015253 -0.020476 0.048261 -0.069168 -0.074295 +-0.072588 -0.042977 0.018592 0.070496 0.114648 +0.010817 -0.128853 -0.097246 0.020464 0.031236 +-0.024940 0.041108 0.011415 0.087818 -0.043080 +0.025168 0.025134 0.027778 -0.030419 -0.017191 +-0.010787 -0.089466 0.006383 0.016841 0.083765 +0.008103 0.031762 -0.065297 -0.043194 0.060151 +-0.031870 0.035064 -0.027919 0.019804 0.031581 +0.015682 -0.090393 0.054461 -0.051669 -0.020003 +-0.006273 0.029554 -0.052349 0.122862 0.052590 +0.053436 -0.092575 -0.038422 -0.014132 0.025596 +-0.007446 -0.068838 -0.100706 0.110571 -0.074217 +-0.124216 -0.046391 -0.001952 -0.035192 0.056849 +0.049815 -0.000716 0.078561 0.103458 -0.031106 +0.004277 0.053141 -0.013453 -0.014118 -0.043585 +0.037082 -0.072984 0.085005 0.059632 -0.092468 +0.070536 0.024296 0.032733 -0.064865 0.050807 +0.048457 0.051588 0.064615 0.014068 0.107732 +-0.036905 -0.023656 0.039094 -0.021163 0.016683 +-0.033733 -0.099111 -0.053957 0.004493 -0.052760 +-0.012367 0.103975 0.055514 -0.018205 -0.077832 +-0.018229 0.099840 0.043099 0.026033 -0.127892 +0.005209 0.115289 0.030702 -0.090228 0.102291 +-0.036231 0.059027 -0.073456 0.025828 -0.058846 +0.023155 -0.021831 0.050419 -0.052958 -0.025641 +-0.057417 -0.038855 0.069655 0.009463 -0.011469 +-0.001709 0.032146 0.133188 -0.084494 0.022112 +0.105454 -0.037301 -0.006059 -0.002167 0.033760 +-0.067749 0.052323 -0.002914 0.042408 -0.038078 +0.080983 0.032390 -0.013515 -0.017162 -0.001944 +0.018212 -0.057337 -0.024336 0.003385 -0.053031 +0.007656 0.093900 0.019898 0.057621 -0.016597 +0.028536 0.010449 -0.048939 -0.132260 -0.015093 +-0.032383 0.042496 0.006198 0.022980 0.050028 +-0.091286 0.046546 -0.012873 0.053569 0.100661 +0.001121 0.033644 -0.044783 0.040892 -0.007458 +0.015227 0.057715 0.135154 -0.011532 -0.048523 +-0.020718 -0.100767 0.060073 0.082344 -0.067297 +0.052855 0.019105 -0.072241 -0.034480 0.046910 +0.028509 0.105159 -0.005862 -0.006672 0.031437 +-0.044146 -0.049556 0.015169 -0.001790 -0.082293 +-0.043861 0.020628 -0.082354 0.150955 -0.022192 +-0.053152 -0.023628 -0.040518 -0.032409 0.040596 +-0.072007 -0.085815 0.034433 0.062865 0.051963 +0.007741 -0.008439 0.034908 -0.009552 -0.032946 +0.043386 0.024843 0.020463 0.077839 0.109446 +-0.033733 -0.111561 -0.077032 -0.028750 -0.004143 +0.027687 -0.006467 0.011063 0.043189 -0.123963 +0.091285 0.045529 -0.007055 -0.051180 -0.054342 +0.012612 -0.032042 0.014321 0.047055 0.140528 +-0.069055 -0.048973 -0.035481 -0.091096 0.061054 +-0.017211 -0.042891 -0.047427 0.050343 -0.010907 +-0.031955 0.062361 0.017419 -0.036013 -0.002721 +0.041131 0.024163 0.089626 0.022372 0.009373 +-0.095530 0.047262 -0.031783 -0.036250 -0.009977 +-0.021451 0.082581 -0.051394 -0.022879 -0.034885 +0.076878 -0.111199 -0.010824 0.015104 0.028609 +-0.085213 0.147576 -0.065340 0.019676 0.072754 +0.082529 0.036091 0.076516 0.052432 0.071795 +0.008287 -0.036426 -0.009891 0.029857 0.002193 +-0.003334 -0.028181 -0.037997 -0.010828 -0.075271 +-0.009274 -0.000105 0.026357 -0.014523 -0.000196 +0.045930 0.012760 -0.088269 0.009968 -0.079905 +0.046175 0.009370 -0.000002 0.029935 -0.042887 +0.023842 0.018746 -0.006990 0.008271 -0.090227 +0.030612 0.016519 0.081049 0.009339 0.055323 +-0.044325 0.004172 -0.068893 -0.045980 0.077715 +0.001175 -0.046950 0.036603 0.091690 -0.007926 +-0.030905 0.059344 0.015477 -0.098726 -0.013555 +-0.055799 -0.077539 -0.011439 -0.004065 0.054785 +0.034376 0.008123 -0.066323 0.015381 0.051534 +-0.029072 0.008390 -0.021483 0.034645 -0.015101 +-0.032733 -0.053135 0.072680 -0.018542 0.019239 +0.037756 0.062391 -0.075094 0.101033 0.003228 +0.041719 -0.083617 0.062272 -0.023256 0.039273 +0.009314 -0.036930 -0.022348 0.054612 -0.061547 +-0.057502 -0.045821 -0.027136 -0.057127 -0.040360 +0.066291 0.009189 0.032460 -0.001094 -0.054085 +0.006575 -0.054172 -0.130758 -0.090713 -0.002316 +0.034393 -0.052381 0.012536 0.038109 -0.081767 +0.085920 0.009447 -0.009120 -0.115802 -0.024373 +-0.009739 0.098210 -0.050578 0.009031 0.067793 +-0.102503 0.070893 0.048610 0.025783 0.070098 +-0.082345 -0.110272 -0.069934 0.039617 -0.015865 +0.093134 0.050931 0.078967 0.014464 0.014646 +-0.080307 -0.028843 0.108070 -0.021868 -0.059963 +-0.033823 0.075594 0.036621 -0.060586 0.034463 +0.062713 0.100354 -0.048699 0.006569 -0.054387 +0.085716 -0.042197 0.055028 -0.023813 -0.019848 +-0.128971 0.064906 -0.014135 0.053208 -0.054020 +0.012192 -0.023224 0.086982 0.002569 0.081299 +0.043572 -0.052176 -0.053337 0.001834 -0.002848 +-0.073999 0.045245 -0.072961 0.011777 -0.001025 +-0.038850 0.021979 0.082271 0.023871 -0.014373 +0.066920 0.022695 -0.046891 -0.028261 0.005879 +-0.066511 0.074096 0.039110 0.046744 -0.001032 +-0.028041 0.019515 -0.079802 -0.098550 -0.057732 +0.050261 0.061069 -0.014075 0.084526 0.061622 +-0.011750 -0.051429 -0.073887 -0.004920 0.014058 +-0.107882 -0.029024 -0.096352 0.047279 -0.040754 +-0.069567 0.060745 0.075817 -0.045723 -0.101709 +-0.047723 -0.030640 0.056081 0.076466 0.002197 +-0.010621 0.007690 -0.030150 -0.067986 0.062739 +0.117024 0.061613 0.012656 0.043682 -0.031102 +0.018671 -0.047947 -0.040784 -0.089523 -0.106392 +-0.005815 -0.001616 -0.068421 0.027810 0.057644 +-0.008067 -0.006506 0.039180 -0.154508 -0.011541 +0.033405 -0.122890 -0.013528 0.038364 -0.001838 +-0.004906 -0.046275 -0.038730 -0.031623 -0.003879 +0.152370 -0.022857 -0.072307 0.029362 0.058441 +0.009357 -0.022712 -0.075829 -0.057416 -0.038179 +0.011980 0.029996 0.082156 0.024194 -0.072075 +0.072125 -0.051638 0.039224 -0.086809 -0.049036 +-0.016999 -0.028023 -0.045506 -0.030265 0.170708 +-0.044189 -0.166394 0.095599 -0.078305 0.024710 +-0.012502 -0.049717 0.030435 0.149411 -0.047396 +-0.004166 0.092334 0.002567 0.003784 0.058999 +-0.014837 -0.013693 0.116725 -0.016922 -0.014098 +-0.026542 0.025453 -0.072587 -0.010040 0.040512 +0.061390 0.063914 -0.059682 -0.091206 -0.018253 +-0.019787 -0.066510 0.016750 -0.053649 -0.028817 +-0.092221 0.050852 -0.009044 0.047829 -0.002441 +0.018727 0.036731 0.089017 -0.091873 0.088367 +0.109395 0.014861 -0.097044 -0.015050 0.009286 +0.002921 0.027523 0.011728 -0.046926 -0.098498 +0.000836 -0.056539 0.023297 0.018001 0.049131 +0.004675 0.001073 -0.170749 0.014371 0.034021 +0.020092 0.037851 -0.028229 0.102064 -0.048952 +-0.025833 -0.026058 0.012805 -0.114410 -0.051993 +0.013397 -0.036918 0.089997 0.157135 0.083396 +-0.039602 -0.080711 -0.021277 0.053202 0.071289 +-0.109812 0.002914 -0.015096 0.091661 0.031649 +0.001854 0.034905 0.032772 -0.002794 -0.042979 +0.068519 -0.063135 0.013342 -0.006060 0.046252 +0.017425 0.141501 -0.060676 -0.083881 0.048423 +-0.023162 0.027077 -0.098028 -0.014739 0.010480 +-0.022374 -0.086942 0.100437 -0.075083 -0.115201 +0.007563 0.033322 -0.103828 0.051361 0.024684 +-0.004454 -0.055777 -0.046699 -0.082728 0.073797 +0.055443 -0.143092 -0.037825 0.078811 0.036497 +-0.077281 -0.008325 0.013544 -0.017594 -0.041641 +0.047789 -0.034492 -0.002379 0.073826 -0.075772 +-0.009782 0.050561 -0.019115 -0.056305 -0.001601 +-0.034683 0.008058 0.060254 0.034221 -0.132588 +0.051493 -0.015100 -0.031876 -0.051222 0.000989 +0.047049 0.026343 -0.041914 -0.036045 0.095869 +-0.062112 -0.018423 0.003773 -0.027867 -0.010398 +-0.048280 -0.036537 -0.017897 -0.005851 -0.058694 +-0.014345 0.061231 0.015028 -0.034773 -0.062937 +-0.000104 0.042883 0.145663 0.087783 -0.037200 +0.016255 0.036518 0.046461 -0.034405 0.079881 +0.035236 0.059227 -0.075679 -0.016770 -0.068794 +0.070744 -0.037727 0.127718 -0.021398 -0.046414 +-0.032597 0.063874 0.097691 0.026403 -0.004663 +-0.087849 -0.026770 0.144388 -0.048131 0.031670 +0.106295 -0.065269 -0.040652 -0.014211 0.056560 +-0.043383 0.070554 -0.010791 0.053436 -0.111118 +0.031068 0.016914 0.052035 0.004705 -0.005330 +0.034760 -0.023902 -0.025479 -0.020657 -0.051098 +0.009155 0.063415 0.088456 0.063249 -0.036212 +-0.000009 0.037196 -0.081303 -0.097243 -0.019263 +0.029158 0.050108 0.039763 0.121192 0.042011 +-0.067899 -0.051989 -0.021537 0.068444 0.027782 +-0.016312 -0.019484 -0.002050 0.053199 0.005392 +-0.008887 0.011627 0.044619 -0.090553 -0.063460 +0.004298 -0.096710 0.054118 0.026422 -0.054091 +0.011429 0.013193 -0.050806 -0.014131 0.048069 +0.073934 0.058524 -0.027092 0.000422 0.030744 +-0.027127 -0.040621 -0.081295 -0.132942 -0.174424 +-0.009461 0.028177 -0.035784 0.088923 0.029507 +-0.031399 0.023611 -0.016887 -0.076838 0.033483 +0.030485 -0.089706 0.003531 0.109110 0.014393 +-0.057547 -0.003360 0.039022 0.000441 -0.017536 +0.010777 0.032913 0.009826 0.011260 0.063002 +0.039884 -0.084768 -0.091794 -0.019418 0.001947 +0.035580 0.092377 0.044137 -0.039732 -0.073936 +0.074461 -0.026009 -0.018411 0.052151 -0.023017 +-0.074733 -0.019706 -0.045403 0.041498 0.114826 +-0.062412 -0.015496 -0.008802 0.010005 0.134097 +-0.006114 -0.127624 -0.111323 0.020666 -0.044975 +-0.039706 0.068792 0.011916 0.016754 -0.000454 +-0.010497 0.014889 0.070891 0.116098 0.021857 +-0.085198 0.023739 -0.088592 -0.046397 -0.013729 +-0.021026 0.161165 0.011340 -0.032323 -0.022466 +0.071886 -0.105818 0.021622 0.083276 -0.011759 +-0.053961 0.111353 -0.063359 0.048522 0.020913 +0.155966 -0.097759 0.067338 0.004069 0.048556 +0.039733 0.024807 -0.036450 0.026902 -0.001497 +0.008231 0.007538 -0.082664 -0.024402 -0.130124 +0.001341 0.009836 0.031207 -0.007516 0.063997 +0.013111 0.044756 -0.108910 0.036952 -0.038516 +0.032064 0.054737 0.021054 0.090083 -0.095331 +0.086201 0.072386 0.002048 -0.084090 -0.123429 +0.036048 -0.020936 -0.001486 0.048416 0.057746 +-0.007902 -0.025902 -0.039170 -0.090144 0.033093 +-0.037429 -0.008878 0.031789 0.108803 -0.001264 +-0.067338 0.047247 -0.010053 -0.104491 0.019316 +-0.038488 -0.110868 -0.017281 -0.069637 0.003541 +0.034292 0.055001 -0.090837 -0.028732 0.016192 +0.056000 0.072632 -0.022204 0.040858 0.031991 +-0.034742 -0.035448 0.019035 -0.013232 -0.014398 +-0.006173 0.109096 -0.049988 0.013882 0.005876 +-0.010246 -0.017441 0.025300 -0.098996 0.052687 +0.025387 0.000912 -0.009639 0.084043 -0.052007 +-0.083781 -0.030439 -0.073927 0.007538 0.012090 +0.066881 -0.025604 0.016332 0.037268 -0.033802 +-0.015458 -0.021930 -0.070557 -0.051580 0.012924 +-0.009009 -0.017953 0.042537 -0.020288 -0.091337 +-0.024530 0.040526 0.056023 -0.110282 0.026677 +-0.038359 0.097050 0.014986 0.037195 0.054785 +-0.083630 0.055443 -0.035272 0.003855 0.043706 +-0.057062 -0.037280 -0.046268 0.022056 -0.034342 +0.003546 0.055713 0.011998 0.006224 -0.025227 +-0.088934 -0.028368 0.079334 -0.001505 -0.127990 +-0.061598 0.084053 0.025380 -0.096473 0.067390 +-0.020260 0.092217 -0.018618 0.027917 -0.048252 +0.031415 -0.091387 0.090810 0.045103 -0.026705 +-0.064460 0.002074 0.031180 0.067323 -0.016903 +-0.005864 -0.003330 0.069051 -0.033416 0.082203 +0.044956 -0.053755 -0.137252 -0.046061 0.093635 +-0.088599 0.097969 -0.032264 -0.086639 -0.091644 +0.033056 0.016076 0.011350 0.037895 0.004198 +0.044101 0.049833 -0.032485 0.037383 -0.129242 +-0.042353 0.109453 -0.005173 0.074401 -0.070002 +-0.005799 0.052127 0.027453 -0.100450 -0.058706 +0.015240 0.069141 0.015929 0.041277 0.055504 +-0.023227 -0.001112 0.002065 0.012704 0.036834 +-0.089424 -0.016815 0.074728 0.052480 -0.044368 +-0.072117 0.037136 0.079468 -0.038248 -0.057019 +0.003825 -0.069667 0.055439 0.014255 0.032135 +-0.036398 0.060844 -0.051464 -0.103545 0.071708 +0.063325 0.075800 0.002963 -0.013314 0.045130 +0.020282 -0.083516 0.014408 -0.071592 -0.027531 +-0.010278 -0.013934 -0.042730 0.072202 0.007273 +-0.019582 -0.018122 0.004112 -0.129409 0.026095 +-0.031100 -0.041493 0.001026 0.068622 0.045611 +-0.016275 0.007467 0.007254 0.005397 -0.030822 +0.027449 -0.020425 0.019762 0.122976 0.047420 +0.032987 0.001328 -0.098351 -0.053497 0.013908 +0.029366 0.013866 0.122783 0.041198 -0.068939 +0.102145 -0.006101 0.037359 -0.057573 0.015037 +0.049004 -0.008177 -0.020529 -0.022026 0.125989 +-0.072538 -0.037701 0.022874 -0.032248 0.015711 +-0.012920 -0.043093 -0.039808 0.025999 -0.059643 +-0.020747 0.120412 0.058354 0.038064 0.023366 +0.022306 -0.008795 0.096772 0.019502 -0.021527 +-0.031783 0.042640 -0.012099 -0.056425 0.052337 +0.040885 0.076375 -0.024182 -0.007386 0.006375 +0.012472 -0.048071 -0.011689 -0.054259 0.004254 +-0.041141 0.023551 -0.047763 0.040648 0.055189 +0.041209 0.026372 0.083642 -0.041189 0.018401 +0.098897 -0.079038 -0.058140 -0.021688 -0.004584 +0.008362 0.050981 0.027989 0.004290 -0.077892 +0.079784 0.022189 -0.000950 -0.028833 0.038684 +-0.020911 0.002112 -0.089285 -0.009057 -0.044291 +0.067770 0.023611 -0.010856 0.057004 -0.068496 +0.028960 -0.012273 0.005375 -0.038117 -0.075004 +0.002103 0.002426 0.056212 0.025731 0.113254 +-0.069929 -0.080474 -0.089722 -0.019285 0.039492 +-0.047136 -0.038086 -0.013093 0.104245 -0.014991 +0.002220 0.028745 -0.014120 -0.003022 0.024545 +0.002795 -0.099925 0.077130 -0.017081 0.101062 +-0.062377 0.063615 -0.060597 -0.033619 0.126293 +-0.014254 0.057849 -0.017270 0.000255 0.046692 +-0.054974 -0.092568 0.028597 -0.061007 -0.049412 +0.026217 -0.012099 -0.046248 0.055666 0.060678 +0.069724 -0.056332 -0.008145 -0.067284 0.012714 +0.050454 -0.036820 -0.038474 0.094104 -0.025727 +-0.075576 -0.039175 0.010329 0.008010 0.003823 +0.101716 -0.042132 0.070715 0.035590 0.040456 +0.006306 0.001003 -0.055836 0.007729 -0.026461 +-0.015636 -0.027037 0.017196 0.048239 -0.066902 +0.090990 0.022012 -0.017646 -0.098129 0.037112 +0.005951 0.024530 0.021647 -0.014662 0.107048 +-0.087049 -0.037337 0.044913 0.024889 0.092117 +0.019813 -0.103273 -0.011622 0.001294 -0.057107 +-0.019526 0.055974 0.039931 -0.006568 -0.007790 +-0.048103 0.049238 0.061609 0.006077 -0.075369 +-0.009412 0.048275 0.009865 -0.081620 0.092182 +-0.017333 0.064175 -0.040670 0.004648 -0.022311 +0.003981 -0.066772 0.051258 -0.003877 -0.019203 +-0.071235 0.039869 0.084219 -0.012268 0.000880 +-0.047928 0.058804 0.087149 -0.026185 0.038879 +0.064338 -0.035073 -0.023367 0.048265 0.050703 +-0.021562 0.045307 -0.009582 -0.003124 -0.020818 +0.022634 -0.009844 0.002915 -0.015520 -0.030355 +0.083917 -0.031796 -0.047661 0.008159 -0.040844 +0.028545 0.035008 0.057934 0.053669 -0.054020 +0.035223 0.042440 -0.036255 -0.096245 -0.051155 +-0.029984 0.014055 0.019736 0.048158 0.004093 +-0.025898 -0.014328 0.002510 0.028365 0.085207 +0.006077 0.002203 -0.027505 0.047570 -0.017349 +-0.020587 0.067784 0.099796 -0.026735 -0.024473 +-0.025703 -0.094091 0.031649 0.029644 0.003411 +0.058308 0.049034 -0.068172 -0.115474 0.069425 +0.033811 0.118472 0.050946 0.053623 0.078579 +-0.019271 -0.065324 0.045402 -0.037870 -0.047215 +-0.005675 0.086373 -0.014768 0.145929 0.037386 +-0.014700 -0.049202 0.023594 -0.056698 0.023680 +-0.033374 -0.061027 -0.059854 0.138963 0.011599 +0.001533 -0.035748 -0.008464 0.032284 -0.039337 +0.081951 -0.006716 -0.010483 0.112224 0.090494 +-0.038372 -0.067773 -0.036190 -0.038843 -0.011294 +0.090443 0.048152 0.042218 0.056232 -0.093971 +0.122476 -0.005575 -0.036654 -0.029043 -0.034003 +0.022275 -0.033887 -0.060285 0.004531 0.075150 +-0.065225 -0.097285 -0.022983 -0.069686 0.069205 +-0.001642 -0.056254 -0.077585 0.025569 -0.054803 +-0.100539 0.093912 0.080158 -0.002782 0.010494 +-0.006143 0.026757 0.145882 -0.004906 0.028979 +-0.109082 0.071364 -0.005886 -0.068041 0.037065 +-0.018060 0.065418 -0.041926 -0.102324 -0.083326 +0.011189 -0.087023 -0.052738 -0.029586 -0.017342 +-0.039294 0.027361 -0.091183 0.088291 0.045424 +0.057392 -0.021108 0.072939 0.049198 0.122993 +0.038302 -0.020317 -0.005652 0.011269 -0.001771 +-0.047838 -0.064151 -0.069358 0.022155 -0.083435 +0.003546 0.019317 0.007896 0.030876 0.029493 +-0.015680 0.011502 -0.079687 0.043705 -0.076931 +0.007474 0.001457 0.006085 0.047001 -0.040679 +0.038183 0.030132 -0.015742 -0.043583 -0.066149 +-0.013762 -0.006024 0.029832 0.027818 0.040294 +-0.027094 -0.024302 -0.105055 -0.022415 0.045939 +0.003325 -0.031412 0.002150 0.091557 0.040350 +-0.023031 0.051570 -0.004636 -0.046863 -0.032721 +-0.001379 -0.136365 0.030118 -0.015619 0.060966 +0.051409 0.002981 -0.085911 0.034787 0.092612 +-0.024351 0.032927 -0.011889 0.047216 0.013262 +-0.031903 -0.008671 0.062494 -0.057320 -0.025303 +-0.026174 0.061109 -0.031321 0.063430 -0.001627 +0.033534 -0.042932 0.077354 -0.044685 0.038110 +0.029437 -0.011422 -0.026351 0.079037 -0.011110 +-0.065906 -0.012694 0.002666 -0.081176 0.007352 +0.047210 -0.022385 0.022590 0.004000 -0.056449 +0.028936 -0.002388 -0.119043 0.000528 -0.022876 +0.000565 -0.041766 0.035570 -0.010223 -0.055419 +-0.003717 0.050681 0.042119 -0.073103 -0.034640 +-0.019828 0.077821 -0.007847 0.115964 0.095672 +-0.057148 -0.022559 0.035308 -0.042327 0.097345 +-0.034233 -0.054020 -0.057557 0.089841 0.009229 +0.070683 0.108539 0.046246 -0.050120 -0.008497 +-0.056988 -0.048306 0.068906 0.015296 -0.073327 +0.020887 0.044562 -0.007768 -0.071345 0.057720 +0.027704 0.094761 -0.024903 0.058677 -0.054592 +0.045246 -0.128952 0.028581 0.009761 -0.036013 +-0.137353 0.034736 0.027748 0.045031 0.020522 +-0.032682 -0.010848 0.135840 -0.008210 0.064445 +0.016483 -0.066692 -0.036966 -0.018892 0.037266 +-0.055969 -0.000146 -0.070159 -0.043813 -0.035507 +0.007295 0.067471 0.062439 0.031139 0.004051 +0.081763 0.058234 -0.080642 0.039998 -0.014646 +-0.020107 0.121620 -0.031533 0.049787 0.048427 +-0.027995 0.017340 -0.036722 -0.027766 -0.072522 +0.016754 0.116377 -0.007417 0.117559 -0.023170 +-0.036028 -0.013555 -0.057848 -0.006776 0.057208 +-0.080437 -0.067988 -0.044028 0.086414 -0.051744 +-0.073007 0.043810 0.014807 -0.049665 -0.049222 +-0.085317 -0.073906 0.084214 0.028253 0.022565 +0.061129 -0.008498 -0.065248 -0.093368 0.125544 +0.101010 0.030100 0.021030 0.003998 -0.000819 +0.051523 -0.052633 -0.031029 -0.086071 -0.030398 +-0.049646 -0.039065 -0.114362 0.111554 -0.013322 +0.060882 -0.037407 -0.007392 -0.128509 0.069699 +0.010662 -0.095924 0.004877 0.022956 -0.003608 +-0.040638 0.005864 -0.025032 0.003803 -0.033060 +0.104406 0.009014 -0.070791 0.101107 -0.010706 +0.018493 -0.060775 -0.046556 -0.102536 -0.058762 +0.013012 0.047639 0.074284 -0.021771 -0.071480 +0.121697 -0.062576 -0.061069 -0.084239 -0.030672 +-0.053509 -0.072509 0.029717 -0.075666 0.119601 +-0.071159 -0.064371 0.049556 -0.006955 0.050790 +-0.014936 -0.030424 -0.029046 0.095626 -0.053380 +0.026242 0.084580 0.046043 -0.013774 0.048761 +-0.003036 -0.055345 0.130574 0.072416 -0.040259 +-0.012252 0.029803 -0.017821 -0.029420 0.057413 +0.036485 0.041237 -0.032473 -0.046230 0.000440 +-0.003955 -0.066533 0.009267 0.004057 0.002718 +-0.054960 0.012076 -0.051431 -0.001750 0.015747 +0.067251 0.037864 0.116071 -0.012828 0.063945 +0.065686 0.005781 -0.102444 0.050582 -0.006415 +-0.022414 0.010021 0.095137 -0.034063 -0.154439 +0.018933 -0.026790 -0.009372 -0.025828 0.058756 +0.008035 -0.025525 -0.090140 -0.012845 -0.008559 +0.017881 -0.039468 -0.051786 0.088240 -0.081061 +0.017134 -0.000603 0.072990 -0.106103 -0.045466 +-0.026151 -0.003544 0.108411 0.044002 0.070681 +-0.065841 -0.096530 -0.055378 0.015170 0.126129 +-0.048244 0.006173 0.013564 0.196118 -0.046276 +-0.026911 0.046123 0.060438 -0.042470 -0.007582 +0.086581 -0.077901 0.057108 -0.013982 0.095961 +0.013568 0.081727 -0.063919 -0.008458 0.020099 +0.015455 0.049515 -0.048905 -0.006740 0.017709 +-0.023263 -0.011752 0.104977 -0.091749 -0.072352 +0.041545 0.027311 -0.061505 0.073899 0.057681 +0.060911 -0.048034 -0.006742 -0.018161 0.082492 +0.044955 -0.030697 -0.042272 0.060646 0.025253 +-0.095552 -0.007674 -0.037376 -0.042828 -0.028071 +0.078704 0.034767 0.003569 0.103759 -0.017217 +-0.006459 -0.003174 -0.006884 -0.052177 0.000067 +-0.000080 0.002880 0.067251 0.077245 -0.083559 +0.043695 0.037396 0.005392 -0.085654 0.021389 +0.037997 0.095932 -0.028364 -0.033582 0.112597 +-0.047949 0.014115 0.027626 0.006558 0.055128 +-0.035469 -0.081510 -0.015853 0.031846 -0.003825 +-0.019678 0.109423 0.054030 -0.050997 -0.017309 +-0.027511 -0.012712 0.078270 0.073890 -0.036127 +0.007627 0.021692 0.029178 -0.076480 0.035985 +-0.013671 0.074729 -0.070079 -0.041782 -0.003345 +0.081644 -0.007541 0.018661 -0.069248 -0.082554 +-0.066409 0.041793 0.088394 0.023002 0.031839 +-0.004239 -0.055445 0.153536 -0.029606 0.011440 +0.120925 -0.031292 0.009491 0.023924 0.097333 +-0.064946 0.044945 -0.036368 0.075204 -0.043170 +0.084879 0.044759 0.026172 0.014565 0.045921 +0.045467 -0.017067 -0.028516 -0.030039 -0.097097 +0.033711 0.032445 0.072773 0.052865 -0.002100 +0.007495 0.042950 -0.042792 -0.074042 -0.011530 +-0.056728 0.042999 0.092369 0.099547 0.013443 +-0.054306 -0.043025 -0.068623 0.095940 0.074227 +-0.079501 -0.007941 0.000413 0.032496 -0.031837 +-0.016260 0.033024 0.064746 -0.017847 -0.104087 +0.000197 -0.151410 0.074026 -0.001001 -0.031403 +0.046221 0.036460 -0.040808 -0.021449 0.032127 +0.079554 0.080997 -0.076818 -0.019398 0.037202 +-0.001902 -0.080469 -0.020903 -0.017046 -0.093414 +-0.063198 0.002218 -0.041482 0.114007 -0.001262 +0.004609 -0.045369 -0.012778 -0.106632 -0.009353 +0.046742 -0.093363 -0.020190 0.070943 0.104612 +-0.026496 0.030245 0.036531 0.049474 -0.034971 +0.010070 -0.016557 -0.015930 0.036066 0.046365 +-0.059709 -0.083439 -0.099145 -0.024957 -0.044832 +0.031623 0.022393 0.012334 -0.009649 -0.050844 +0.126142 0.023320 0.052720 0.016504 -0.047781 +0.002926 0.004861 -0.060239 0.050008 0.098520 +-0.050552 -0.025407 -0.003390 -0.014939 0.068650 +0.032517 -0.092568 -0.058102 0.078834 -0.068898 +0.001143 0.108254 0.006322 0.014800 -0.012314 +0.050222 -0.034504 0.174248 0.025459 -0.002951 +-0.040868 0.022522 -0.081662 -0.051546 0.029154 +-0.001469 0.154137 0.010623 0.000752 0.036767 +0.113304 -0.068389 0.029430 0.054651 -0.072835 +-0.063281 0.122269 -0.028825 -0.023612 0.018427 +0.073886 -0.005629 0.074243 -0.013698 0.036158 +0.027137 -0.008779 -0.051317 0.034729 0.011425 +-0.005290 0.084381 -0.046825 -0.054925 -0.134575 +-0.007420 -0.034384 0.032822 -0.006816 0.016250 +0.013071 0.022288 -0.116225 0.121282 -0.061502 +-0.022397 0.009282 0.013596 0.083516 -0.068117 +0.018270 0.070016 -0.019013 -0.055558 -0.038255 +0.048457 -0.023579 0.050451 0.085665 0.035829 +0.005139 -0.053830 -0.068741 -0.045650 0.019271 +-0.039606 -0.040208 0.113025 0.137240 -0.039967 +-0.050847 0.011254 0.031376 -0.087299 0.036520 +0.012497 -0.096540 -0.005847 -0.023409 0.055187 +0.047393 -0.016958 -0.127368 0.014126 0.013071 +0.042850 0.030065 -0.005283 -0.003391 -0.012498 +-0.063424 -0.066634 -0.007857 -0.012463 -0.048025 +-0.038726 0.093465 -0.068296 -0.004955 0.020647 +0.064345 -0.025818 0.123250 -0.113614 0.042799 +0.012083 0.019991 -0.011713 0.093276 -0.018115 +-0.069842 -0.040684 -0.062936 -0.036833 -0.057289 +0.048571 -0.021162 0.059277 0.027594 0.031567 +0.004623 0.013103 -0.070462 -0.031843 -0.062285 +0.003964 -0.043003 0.001089 0.007283 -0.094012 +0.089866 0.071995 0.101778 -0.112357 0.012040 +-0.072256 0.086698 0.032881 -0.033458 0.098016 +-0.082535 0.048160 0.026744 -0.027036 0.025903 +-0.042452 -0.094755 -0.054770 0.004509 0.015786 +0.053114 0.051959 0.021238 -0.079127 -0.025941 +-0.061221 -0.032380 0.000678 0.034720 -0.119877 +-0.029004 0.038623 -0.037611 -0.139319 -0.005737 +0.041081 0.129303 -0.021741 0.027442 -0.123106 +0.038200 -0.064672 0.083376 0.032648 0.033742 +-0.048851 0.029052 0.025199 0.023531 -0.025856 +-0.003336 0.029494 0.075111 -0.010905 0.064079 +0.037642 -0.035068 -0.084707 0.026922 0.022164 +-0.068680 0.075838 -0.025633 -0.004398 -0.115237 +-0.004548 -0.002381 0.026301 0.068400 -0.006462 +0.121501 0.071558 -0.029120 0.004560 -0.059715 +0.020657 0.160004 -0.003257 0.029479 -0.040264 +-0.009405 0.008581 -0.016967 -0.102333 -0.102278 +-0.030081 0.075670 0.078504 0.112244 0.066878 +-0.024548 -0.067136 -0.004662 -0.026166 0.044337 +-0.066652 -0.078118 0.000364 0.038618 -0.076186 +-0.089846 -0.017872 0.072022 -0.066259 -0.059455 +-0.028736 -0.093805 0.079006 0.023036 -0.015992 +-0.045002 -0.004511 -0.021728 -0.091307 0.072076 +0.104573 0.051663 0.037822 0.009659 0.091841 +-0.000223 -0.070248 0.002859 -0.085403 -0.067834 +-0.010392 -0.032752 -0.036464 0.047626 0.061988 +-0.020766 -0.098673 0.010533 -0.120437 -0.028288 +-0.010613 -0.086247 -0.006349 0.031765 0.038227 +-0.042501 0.012368 0.001644 -0.053936 -0.052854 +0.040412 0.006924 0.010332 0.084276 0.018472 +0.030309 -0.012747 -0.071598 -0.111819 0.023998 +0.087829 0.061878 0.094608 -0.037238 -0.050664 +0.036768 -0.026142 0.028210 -0.019029 -0.007024 +0.056710 -0.012442 0.005440 -0.103556 0.139787 +-0.138355 -0.040445 0.025577 -0.107722 0.078150 +-0.001450 -0.071658 -0.025306 0.038319 -0.103037 +-0.028321 0.098830 0.057603 -0.007905 0.078051 +-0.009903 -0.025356 0.086842 0.012796 0.022952 +-0.014137 0.064001 -0.027812 -0.039279 0.060983 +0.027092 0.074119 -0.010385 -0.012999 -0.057892 +0.027647 -0.079000 0.021994 -0.032696 -0.014011 +-0.042864 0.021318 -0.117190 0.023970 0.036325 +0.057969 0.007604 0.135989 -0.027874 0.036906 +0.067047 -0.008885 -0.080445 -0.027705 0.003494 +-0.016421 0.020609 -0.029576 0.029755 -0.109042 +0.078601 -0.014246 0.028812 -0.022730 0.042634 +-0.037523 0.028199 -0.083746 0.036775 -0.009971 +0.037147 0.014445 -0.058619 0.061398 -0.011282 +-0.015391 0.000460 0.008396 -0.046827 -0.027835 +-0.014145 -0.069296 0.027030 0.067044 0.087990 +-0.003414 -0.125998 -0.042444 -0.033398 0.047298 +-0.084005 0.001739 0.050690 0.114059 -0.044072 +0.002756 0.040246 0.024529 -0.045169 0.010004 +-0.037919 -0.092984 0.039383 0.031606 0.079460 +0.010879 0.059048 -0.072431 -0.003405 0.086399 +0.008666 0.031679 -0.042362 0.054428 0.060492 +-0.022185 -0.099806 0.129259 -0.080670 -0.043866 +0.012856 0.013568 -0.033243 0.095598 0.093044 +0.062030 -0.075113 -0.037729 -0.060376 0.060004 +0.031119 -0.061372 -0.096201 0.101855 -0.016822 +-0.082510 -0.060718 -0.033015 -0.027222 0.007231 +0.062973 -0.041640 0.109215 0.081676 -0.013847 +-0.013324 0.027366 -0.033590 -0.046803 -0.039116 +0.061055 -0.037717 0.065252 0.078148 -0.053763 +0.050494 -0.011958 0.033369 -0.107018 0.057087 +-0.015111 0.079702 0.078616 0.051406 0.103170 +-0.055713 -0.031900 0.039951 0.010658 0.030803 +-0.032401 -0.161199 -0.006920 -0.041844 -0.054552 +0.068517 0.125210 0.080621 0.013543 -0.033413 +-0.044663 0.074392 0.035932 0.023301 -0.045912 +-0.009902 0.066933 0.032801 -0.049038 0.095407 +-0.039521 0.112499 -0.074490 0.036163 -0.044197 +0.018696 -0.011558 0.057933 -0.025639 -0.061431 +-0.081026 0.005753 0.057683 -0.011585 0.006821 +-0.006872 0.098313 0.119539 -0.081953 0.004434 +0.067413 -0.006236 0.002746 0.014715 0.026754 +-0.037853 0.034309 -0.028443 0.026642 -0.037707 +0.066061 0.019234 0.029629 -0.015190 -0.012766 +0.027166 -0.042834 -0.056186 -0.009603 -0.083747 +0.050175 0.073412 0.007110 0.043388 -0.043870 +0.042677 0.025735 -0.094635 -0.142996 -0.099443 +-0.025460 0.022178 0.045321 0.069113 0.054570 +-0.064131 0.000827 0.011239 0.039192 0.080176 +-0.032389 -0.013939 -0.064993 0.048795 -0.022851 +-0.004958 0.060895 0.123682 -0.068608 -0.074900 +-0.019889 -0.062160 0.073126 0.058232 -0.032283 +0.081527 -0.007318 -0.072361 0.003923 0.047891 +0.057147 0.118678 -0.020847 -0.014802 -0.015634 +-0.052605 -0.036531 0.034867 -0.078556 -0.111584 +-0.003560 0.003142 -0.024669 0.173160 0.032364 +-0.053222 -0.023754 -0.040899 -0.047008 -0.003696 +-0.033042 -0.093138 -0.004980 0.112166 0.080717 +-0.010216 -0.006619 0.021922 0.016601 -0.003126 +0.051343 0.053954 -0.046302 0.038985 0.078694 +-0.030092 -0.107599 -0.081002 -0.105924 0.002939 +0.011743 0.034846 0.003716 0.065184 -0.117462 +0.164375 0.073700 -0.033512 -0.050132 0.014156 +-0.000174 -0.023948 -0.024012 -0.006934 0.108972 +-0.059460 -0.048846 -0.012336 -0.051560 0.072806 +-0.018567 -0.058139 -0.097127 0.057960 -0.003780 +-0.069194 0.099784 0.014634 0.002396 0.004753 +0.054780 0.066215 0.126638 0.054455 0.006893 +-0.141807 0.059586 -0.018459 -0.063126 -0.022803 +-0.035254 0.069275 -0.013827 -0.071276 -0.003613 +0.069290 -0.132719 0.008038 -0.042340 0.029226 +-0.111912 0.046898 -0.082164 0.046524 0.042479 +0.097773 -0.009098 0.059874 0.073312 0.066974 +0.019922 0.006528 -0.012465 0.012819 -0.009649 +-0.002277 -0.027303 -0.050759 -0.050323 -0.080025 +-0.003253 -0.006990 -0.002405 -0.013040 -0.007020 +0.025178 0.055844 -0.116797 0.017350 -0.095996 +0.027313 0.001295 -0.036475 0.035209 -0.050719 +0.013403 0.027367 -0.033867 -0.020572 -0.083462 +0.026022 0.029014 0.068306 0.059719 0.045583 +-0.102670 -0.014676 -0.070060 -0.007867 0.061628 +0.021102 -0.044131 0.078378 0.066952 0.012162 +-0.059452 0.052841 -0.010660 -0.090335 -0.061320 +-0.052210 -0.080353 0.003880 -0.025212 0.019020 +-0.010473 0.007817 -0.044796 0.000027 0.083904 +0.006729 0.028716 -0.007627 0.008946 -0.012966 +-0.049870 -0.073154 0.092609 -0.040256 -0.020294 +0.003554 0.076666 -0.067856 0.042000 -0.009122 +0.044476 -0.118767 0.080698 -0.076039 0.023373 +0.024567 -0.033258 -0.036048 0.044153 -0.019221 +-0.018260 -0.035700 -0.029634 -0.065584 -0.049991 +0.042902 -0.000452 0.031084 0.045586 -0.065013 +0.072242 -0.014513 -0.122642 -0.018067 -0.052772 +0.066880 -0.103725 0.037586 0.013011 -0.086527 +0.032019 0.010695 0.027327 -0.089804 -0.030002 +0.010910 0.113012 -0.008852 0.024520 0.099760 +-0.077270 0.018171 0.079814 0.035008 0.127627 +-0.025609 -0.178637 -0.034357 0.054347 -0.012604 +0.043660 0.062421 0.068757 0.002273 0.000552 +-0.055697 0.010254 0.102285 0.024048 -0.044425 +-0.004860 0.053366 0.013063 -0.098388 0.046218 +0.043926 0.077559 -0.036943 0.060936 -0.016764 +0.098322 -0.041365 0.092078 0.019431 -0.039793 +-0.118098 0.023995 0.053538 0.015639 -0.041697 +-0.011851 -0.052177 0.084977 -0.050669 0.070218 +0.030401 -0.076060 -0.020483 0.012783 0.033816 +-0.050769 0.057281 -0.040092 -0.021298 -0.002690 +-0.001729 0.035744 0.065206 -0.002257 0.015864 +0.044906 0.045612 -0.081326 -0.040729 -0.018151 +-0.048153 0.086870 0.077712 0.059363 -0.027251 +-0.089240 0.025410 -0.036539 -0.067019 -0.057377 +0.058057 0.070889 -0.015866 0.124536 0.012038 +-0.007238 -0.051026 -0.027541 0.019248 0.026927 +-0.083553 -0.025718 -0.042635 0.058541 -0.011741 +-0.059778 0.065660 0.061292 -0.086725 -0.032482 +-0.047209 -0.027933 0.087677 0.047367 0.001582 +0.051308 -0.018242 -0.025264 -0.062026 0.074843 +0.088969 0.059484 0.048905 -0.025787 -0.015960 +0.010270 -0.030210 0.036763 -0.093327 -0.114689 +0.013105 -0.035443 -0.085439 0.043021 0.056988 +-0.020390 -0.008308 0.009722 -0.148341 0.081086 +0.010332 -0.101445 -0.021486 0.078663 0.025110 +0.007874 -0.023882 -0.034158 0.002488 -0.015558 +0.158690 -0.025837 -0.011736 0.035542 0.005703 +0.001555 -0.019753 -0.040038 -0.051161 -0.002844 +0.041149 0.021540 0.062971 0.012070 -0.035360 +0.091865 -0.090158 0.020460 -0.046615 -0.038100 +0.002630 -0.055311 0.026706 -0.008623 0.155705 +-0.030212 -0.117746 0.084958 -0.087229 0.092780 +-0.011810 -0.084822 -0.029035 0.127892 -0.065824 +0.008357 0.089638 0.003467 -0.034364 0.040506 +-0.001934 -0.050401 0.105320 0.007386 -0.011020 +-0.055669 0.029633 -0.034990 -0.028782 0.050039 +0.059295 0.118394 -0.033924 -0.132036 0.012985 +0.000793 -0.035658 0.031224 -0.040614 -0.014333 +-0.054078 0.015577 -0.031608 0.071981 0.019771 +0.079765 -0.007986 0.076487 -0.077172 0.119140 +0.102976 -0.039809 -0.092140 0.032478 -0.070501 +-0.026617 -0.016197 0.009189 -0.039295 -0.117914 +0.014457 -0.061592 0.025979 -0.028542 0.042043 +-0.029473 -0.031444 -0.158578 -0.003258 0.058182 +0.072344 0.052910 -0.092808 0.085354 -0.079413 +-0.044358 -0.041179 0.072986 -0.129686 -0.025728 +-0.005197 -0.108115 0.063915 0.073996 0.057224 +0.000050 -0.069751 -0.062690 0.026183 0.084719 +-0.052197 -0.011673 0.032435 0.084752 0.060158 +-0.031241 0.023120 0.048633 -0.025976 -0.032094 +0.051737 -0.070951 0.034497 0.003743 0.019843 +-0.055829 0.115532 -0.098594 -0.066675 0.048946 +0.003976 -0.010224 -0.071617 0.007215 0.017134 +-0.023828 -0.066295 0.084251 -0.039425 -0.074279 +-0.010390 0.058722 -0.091528 0.073371 0.071531 +-0.005671 -0.076154 -0.032125 -0.137305 0.071102 +0.068984 -0.088661 -0.037098 0.081501 -0.013426 +-0.093305 0.025622 -0.014982 0.007427 -0.068188 +0.064271 -0.035807 0.026492 0.107054 -0.095956 +-0.008699 0.021743 -0.031579 -0.040618 0.022948 +-0.006215 -0.028661 0.082129 0.022510 -0.090809 +0.032763 -0.014948 -0.000344 -0.068665 0.009455 +0.064722 0.101146 0.018141 -0.019456 0.082955 +-0.033054 0.018056 -0.025308 -0.023021 -0.006592 +-0.027499 -0.079456 -0.014152 0.030881 -0.059661 +-0.023889 0.075852 0.004376 -0.014776 -0.035516 +-0.031784 0.056947 0.125839 0.039811 -0.082984 +-0.015402 0.040202 0.031099 -0.040303 0.047701 +0.050471 0.082637 -0.118070 -0.024705 -0.027053 +0.042555 -0.045217 0.043471 -0.044274 -0.055532 +-0.050709 0.038372 0.139423 0.034228 0.044240 +-0.049598 -0.006876 0.084222 -0.084035 0.029679 +0.024672 -0.099431 -0.061796 0.004907 0.127399 +-0.065852 0.032572 -0.083461 0.040649 -0.064464 +0.021261 0.012978 0.043311 -0.006692 0.029174 +0.033834 0.010903 -0.049322 -0.023014 -0.053063 +0.050601 0.079776 0.017751 0.090575 -0.044427 +0.037446 0.038015 -0.114311 -0.116158 0.028262 +-0.049840 -0.001403 0.022194 0.134131 0.092987 +-0.066064 -0.014258 -0.007936 0.069423 0.006734 +-0.036449 -0.006999 0.014668 0.062054 -0.033927 +-0.037695 0.031955 0.072185 -0.067258 -0.065412 +-0.030677 -0.153131 0.064817 0.020761 -0.114634 +0.046484 -0.012249 -0.045214 -0.032565 0.032724 +0.038377 0.052687 -0.074746 0.015211 0.031545 +-0.001416 -0.092829 -0.036780 -0.058636 -0.153621 +-0.019035 0.008907 -0.020006 0.073795 0.064152 +-0.000207 -0.014885 0.001697 -0.075230 0.026080 +0.012374 -0.089499 0.037475 0.064069 0.017655 +-0.032040 -0.028499 0.036399 0.038500 -0.014121 +0.034750 -0.002062 -0.015799 0.000062 0.074059 +0.038031 -0.076502 -0.082402 -0.051544 -0.043409 +0.052959 0.046017 0.047906 -0.000054 -0.062527 +0.077616 -0.011144 -0.036095 0.006758 0.006522 +-0.023224 -0.010642 -0.107560 0.051291 0.103622 +-0.051956 -0.008535 -0.042995 -0.030987 0.123523 +0.039493 -0.107293 -0.068566 0.006004 -0.077249 +-0.049696 0.040608 0.002098 -0.005654 0.027282 +-0.009389 0.042181 0.088705 0.055663 0.013492 +-0.021941 -0.005352 -0.129536 -0.049372 0.006692 +0.010255 0.107988 0.009301 -0.029104 -0.027292 +0.015083 -0.122624 0.012460 0.056717 -0.065848 +-0.097599 0.064951 -0.063651 0.037039 -0.031919 +0.160199 -0.025996 -0.003930 -0.047321 0.027398 +0.043702 0.013525 -0.061810 0.010431 0.014853 +0.001414 -0.021460 -0.143900 -0.026666 -0.116995 +-0.024697 -0.005896 0.048756 -0.053298 0.041329 +0.012695 0.052326 -0.133818 0.105903 0.031440 +-0.035969 0.050106 0.022116 0.126387 -0.109337 +0.072036 0.100468 -0.005336 -0.056878 -0.046406 +0.015972 -0.014095 -0.004362 0.051363 0.094242 +-0.044797 -0.027049 -0.074056 -0.081706 0.012076 +-0.021437 0.047597 0.088166 0.121074 -0.053524 +-0.101688 0.029406 0.050242 -0.066960 0.062052 +-0.035998 -0.084834 0.048189 -0.024642 0.023264 +-0.011644 0.041881 -0.143927 -0.036006 0.064384 +0.021606 0.052025 -0.023292 0.037743 0.004852 +-0.027128 -0.078095 0.017231 -0.009425 -0.026275 +0.007197 0.096964 -0.068860 0.060880 0.037649 +0.014117 -0.065558 0.047350 -0.098632 0.083283 +0.045025 0.025416 0.038291 0.099379 -0.057242 +-0.098262 -0.004438 -0.093149 -0.017525 -0.064476 +0.025479 -0.016529 0.020430 0.012592 -0.009811 +-0.015037 0.005498 -0.076398 -0.034881 -0.007594 +0.028415 -0.040315 0.028704 -0.028492 -0.105515 +0.018470 0.042456 0.045301 -0.147209 0.007810 +-0.047688 0.032497 -0.008208 0.017988 0.084280 +-0.102271 0.004685 -0.018636 -0.003214 0.061342 +-0.034608 -0.028335 -0.058715 -0.016027 -0.027108 +0.008836 0.088808 0.038542 -0.020970 0.000400 +-0.050920 -0.007459 0.061998 -0.024563 -0.091152 +-0.014850 0.115523 0.022779 -0.107846 0.019813 +-0.004600 0.099048 -0.029527 -0.031147 -0.061377 +0.023544 -0.134421 0.066807 0.032147 0.021599 +-0.043477 0.029615 0.039209 0.024621 0.019526 +-0.002071 0.031970 0.101991 -0.003775 0.121976 +-0.006993 -0.073412 -0.104010 -0.006442 0.062073 +-0.052770 0.070835 -0.091445 -0.041991 -0.068768 +0.059883 0.020621 0.042259 0.038888 0.021605 +0.042693 0.038667 -0.040035 0.004977 -0.076466 +-0.022332 0.056801 -0.000212 0.035708 -0.032640 +-0.038064 0.006782 -0.009894 -0.100385 -0.033497 +0.025298 0.034269 0.027448 0.077164 0.050701 +-0.027548 -0.022455 -0.035381 0.018361 -0.004348 +-0.069287 -0.017294 -0.004310 0.071591 -0.054832 +-0.053949 -0.001929 0.071395 -0.015681 -0.038443 +-0.044016 -0.048662 0.078642 0.014355 0.048150 +-0.009957 0.032861 -0.075294 -0.123870 0.026265 +0.093728 0.046174 -0.009184 -0.050917 0.079102 +0.050699 -0.110383 -0.040917 -0.086311 0.012596 +0.001827 -0.059395 -0.048207 0.063786 0.026565 +-0.077077 -0.004569 -0.044546 -0.099623 0.006256 +-0.016101 -0.027424 0.017338 0.024906 0.015827 +-0.027372 -0.017107 0.034566 -0.019851 -0.035154 +0.065204 -0.032861 -0.006305 0.115986 0.005671 +0.060617 -0.019162 -0.098096 -0.042694 0.047107 +0.037104 -0.008058 0.084632 -0.004556 -0.101542 +0.075086 -0.009191 0.004624 -0.043225 -0.002498 +0.032484 0.053384 0.011807 -0.035382 0.158001 +-0.043066 -0.071159 0.039828 -0.062471 0.016281 +-0.043445 -0.029971 -0.014564 0.054938 -0.076111 +0.022672 0.108672 0.099046 0.018104 0.033550 +0.027144 -0.053217 0.067212 0.035840 -0.020805 +-0.064595 0.009953 -0.011147 -0.063721 0.036759 +0.018701 0.102409 -0.031796 0.011001 -0.023883 +0.028968 -0.057157 -0.042508 -0.052145 0.008972 +-0.065914 0.070920 -0.087959 0.024752 0.079740 +0.056457 0.008541 0.080771 -0.042955 -0.022030 +0.077296 -0.087393 -0.065077 0.010062 -0.035395 +-0.023652 0.009169 0.016281 0.043270 -0.112518 +0.024860 -0.024549 0.016927 -0.028905 0.029316 +-0.008912 -0.016575 -0.120884 0.023903 -0.054407 +0.044132 0.038152 0.018656 0.065922 -0.016132 +-0.006389 -0.043456 -0.005277 -0.038377 -0.043256 +-0.028775 -0.034704 0.041058 0.024792 0.075342 +-0.087680 -0.084754 -0.123797 0.069380 0.046858 +-0.058807 0.032247 -0.003162 0.075858 -0.011643 +-0.015012 0.064356 0.018978 -0.013598 0.027903 +-0.019744 -0.072473 0.036145 -0.023830 0.091601 +0.000445 0.030482 -0.087404 -0.045375 0.130636 +0.016918 0.057383 -0.002236 0.019154 0.035447 +-0.068637 -0.064903 0.079540 -0.091132 -0.027111 +0.020001 -0.002105 -0.063610 0.085303 0.021592 +0.135112 -0.114788 0.011338 -0.012485 0.059281 +0.089211 -0.036178 -0.066274 0.112956 0.046283 +-0.074477 -0.051750 0.031961 0.038617 0.011847 +0.114117 -0.067782 0.028677 0.047877 0.009921 +0.018292 0.016738 -0.056403 -0.038710 -0.010604 +0.020050 -0.022217 0.056833 0.036114 -0.051337 +0.155982 0.012794 -0.028857 -0.120583 0.084902 +0.013151 0.029339 0.004512 0.029269 0.158467 +-0.059083 -0.044942 -0.002369 0.025053 0.077484 +-0.006987 -0.128357 0.000998 0.000658 -0.008066 +0.002694 0.078402 0.051558 0.026018 -0.035135 +-0.051516 0.093206 0.075687 0.007585 -0.030493 +-0.042801 0.024643 0.035323 -0.068825 0.138089 +-0.012481 0.043826 -0.059032 -0.004079 -0.057181 +0.030592 -0.043929 0.081829 -0.034370 -0.027097 +-0.043916 0.028082 0.040159 -0.023825 0.016659 +-0.040314 0.027255 0.066119 -0.088450 0.079633 +0.085602 -0.045368 -0.019169 0.063621 0.015908 +-0.012968 0.043077 -0.011652 -0.009363 -0.072419 +0.041253 0.015117 -0.000599 -0.038888 -0.015197 +0.070823 -0.013167 -0.026186 0.024055 -0.072483 +-0.003924 0.013391 0.055366 0.084999 -0.038449 +0.043468 0.030321 -0.071656 -0.068751 -0.085100 +-0.045854 -0.012937 0.001146 0.029160 0.007917 +-0.038722 -0.013069 -0.022602 0.017646 0.050031 +-0.034069 0.004746 -0.045839 0.088322 -0.033433 +-0.049425 0.044323 0.135449 -0.033950 -0.006189 +0.008117 -0.074632 0.033319 0.057707 -0.034315 +0.061949 0.058279 -0.069064 -0.024633 0.083634 +0.044328 0.065502 0.039147 0.045297 0.010853 +-0.035928 -0.034367 0.029180 -0.079893 -0.056124 +-0.021337 0.069848 -0.042840 0.100637 -0.021594 +-0.017056 -0.026458 -0.005396 -0.038921 0.024334 +-0.013119 -0.040654 -0.019092 0.122318 0.060562 +0.014946 -0.017839 0.014916 0.007557 -0.055684 +0.085343 0.020079 -0.020189 0.024923 0.038626 +-0.008572 -0.098936 -0.015287 -0.036331 -0.030196 +0.029395 0.068464 0.062459 0.007118 -0.121145 +0.090713 0.018611 -0.060202 -0.064626 -0.026447 +0.020572 -0.066985 -0.020928 0.046500 0.071362 +-0.032780 -0.113550 -0.035570 -0.046101 0.123381 +-0.000637 -0.030887 -0.085549 0.058943 -0.047480 +-0.069392 0.133001 0.039940 -0.054277 0.026772 +0.012818 0.061828 0.101149 -0.034239 0.018944 +-0.101441 0.071801 -0.065653 -0.058695 0.062080 +0.017518 0.111010 -0.059046 -0.054110 -0.031295 +0.055930 -0.143458 -0.044617 -0.023186 -0.013649 +-0.111579 0.040441 -0.065712 0.110422 0.014995 +0.035371 0.001600 0.051063 -0.002833 0.096648 +0.023072 0.007446 -0.027126 -0.021716 0.006914 +-0.066680 -0.023776 -0.033004 0.018842 -0.100090 +0.006577 -0.009435 0.014480 0.005289 0.027268 +-0.023355 -0.000517 -0.035704 0.018493 -0.073805 +0.007356 0.036041 -0.026668 0.057975 -0.046666 +0.054676 0.021222 0.006590 -0.020075 -0.091969 +-0.024459 -0.004411 0.080089 0.014146 0.047996 +-0.013099 -0.028560 -0.086210 -0.038070 0.115542 +-0.029380 -0.069424 0.000189 0.102273 0.014531 +-0.058430 0.045176 -0.004636 -0.048318 0.011492 +-0.070572 -0.166966 0.056891 0.042773 0.015200 +0.025472 0.000731 -0.061858 -0.008651 0.108291 +0.012505 0.032344 0.012567 0.062585 0.015632 +-0.026488 -0.012319 0.030187 -0.052121 0.002827 +-0.017721 0.065865 -0.047380 0.020409 0.023943 +0.079766 -0.046306 0.060273 -0.027458 0.038828 +0.032883 -0.043636 0.000901 0.075220 -0.005792 +-0.090456 -0.041894 0.002536 -0.104333 -0.034913 +0.038532 -0.048225 0.033342 -0.011078 -0.035938 +0.000390 0.038012 -0.135572 -0.025786 -0.050179 +0.001333 -0.078764 0.020818 -0.022520 -0.065079 +0.013806 0.009337 0.024640 -0.064068 -0.007668 +-0.005821 0.054794 0.006679 0.052490 0.085097 +-0.084449 0.026105 0.043027 -0.006820 0.063480 +-0.005166 -0.108834 -0.074395 0.066384 0.003385 +0.002689 0.152176 0.074065 -0.025017 0.001996 +-0.026355 -0.035760 0.063399 -0.010722 -0.053613 +0.040833 0.083154 0.032094 -0.074978 0.040456 +0.007659 0.060872 -0.050901 0.029009 -0.066327 +0.040735 -0.106153 0.073500 -0.025479 -0.054887 +-0.075445 0.009415 0.016203 0.012388 0.014428 +0.000457 -0.036095 0.143621 0.046534 0.106183 +-0.039550 -0.060834 -0.058729 -0.030704 0.046588 +-0.069071 0.044146 -0.047632 -0.019171 -0.064829 +0.017817 0.047929 0.039073 0.022116 0.021014 +0.033732 0.050846 -0.059942 0.004345 -0.029985 +-0.080140 0.129440 0.031031 0.084146 0.016015 +-0.036682 0.044772 -0.049258 -0.056682 -0.051988 +0.039973 0.080584 0.002750 0.080571 0.017418 +-0.049233 -0.050745 -0.078517 0.041796 0.028714 +-0.073271 -0.009924 -0.046737 0.077202 -0.089452 +-0.100286 0.026524 0.025935 -0.000519 -0.108153 +-0.097136 -0.011694 0.088312 0.041746 0.052188 +0.026268 -0.054000 -0.039524 -0.030580 0.094436 +0.083377 0.058849 0.024027 0.068118 0.022595 +0.041719 -0.067897 0.005738 -0.058511 -0.080953 +-0.011827 -0.008352 -0.136686 0.077343 0.036266 +0.035162 -0.013237 -0.040135 -0.166246 0.029329 +0.031590 -0.082787 -0.003165 0.022566 -0.029527 +-0.026857 -0.030669 -0.012846 -0.014703 -0.024941 +0.097289 0.062474 -0.023270 0.071516 0.026007 +0.012490 -0.079323 -0.064277 -0.101304 -0.014965 +0.038609 0.050228 0.059018 -0.054583 -0.037042 +0.088943 -0.050793 -0.023046 -0.036841 -0.049866 +0.006089 -0.012353 0.050822 -0.044544 0.133501 +-0.044647 -0.060379 0.051279 -0.028470 0.068335 +-0.008481 -0.078112 -0.022666 0.077373 -0.024423 +0.000007 0.064437 0.062147 -0.038681 0.032008 +-0.017525 -0.067472 0.114370 0.020743 -0.076853 +-0.017874 0.001327 -0.014704 -0.014656 0.034577 +0.024361 0.056274 0.006448 -0.028830 0.044899 +0.016576 -0.044087 -0.010917 -0.013797 -0.018111 +-0.065385 -0.007719 -0.037632 0.031813 0.021400 +0.049162 0.020931 0.037485 -0.026412 0.056338 +0.036907 -0.042904 -0.132436 0.043098 -0.041228 +-0.035680 0.034986 0.047873 -0.072791 -0.131274 +0.044610 -0.023411 -0.025045 0.005907 0.046734 +-0.032724 -0.061008 -0.111818 0.015564 -0.002133 +-0.015445 -0.011766 -0.048157 0.139974 -0.079607 +0.004936 -0.033105 0.052832 -0.087579 -0.040662 +-0.055766 -0.026403 0.102134 0.084616 0.064986 +-0.020826 -0.077346 -0.025393 -0.002277 0.084614 +-0.053523 -0.091453 0.022927 0.150824 -0.002083 +-0.001161 0.030663 0.060472 -0.050918 0.018421 +0.027526 -0.091037 0.070144 0.040963 0.090458 +0.030099 0.071509 -0.062928 -0.052351 0.030143 +-0.026417 0.032481 -0.045066 0.000111 -0.004684 +-0.002093 -0.014278 0.173191 -0.019552 -0.072985 +0.033124 0.074779 -0.053669 0.106059 0.090086 +0.039197 -0.065054 0.025258 -0.050488 0.068107 +0.037370 -0.074734 -0.072895 0.041719 -0.026666 +-0.116776 -0.050593 -0.022049 0.019100 -0.052687 +0.077699 0.002538 0.021642 0.069070 -0.025842 +-0.025721 0.004558 -0.051248 -0.059783 -0.021367 +-0.043714 -0.040732 0.063823 0.074918 -0.079342 +0.050195 0.021249 -0.028816 -0.061727 0.018248 +0.005884 0.050434 -0.021363 -0.018341 0.100200 +-0.041043 -0.005428 0.011984 -0.030931 0.026453 +0.005239 -0.089215 -0.046851 0.018966 -0.029878 +-0.019543 0.106899 0.047058 -0.097279 -0.091117 +-0.029152 0.017775 0.066229 0.079262 -0.009853 +0.015344 0.002972 0.005261 -0.068619 0.065134 +0.021325 0.052198 -0.040335 -0.031105 -0.022038 +0.046868 -0.008746 0.024060 -0.039353 -0.043527 +-0.053729 0.048245 0.078712 0.063353 0.054853 +0.000893 -0.011563 0.116159 -0.043972 0.030272 +0.054786 -0.024768 -0.040403 0.056841 0.146419 +-0.034807 0.057094 -0.054852 0.104343 -0.076770 +0.050072 0.052860 0.019579 -0.001424 0.015739 +0.065242 -0.006303 -0.020658 -0.036628 -0.138792 +0.038907 0.049015 0.064288 0.105084 -0.009955 +-0.013576 0.042749 -0.058027 -0.060563 0.018986 +-0.042694 0.055557 0.029964 0.088314 0.017075 +-0.098025 -0.059071 -0.029354 0.030490 0.045049 +-0.039481 -0.016714 -0.028323 0.051148 -0.033224 +-0.012870 -0.002631 0.095782 -0.018745 -0.067411 +-0.067803 -0.096432 0.048605 0.001590 -0.007541 +0.020762 0.011888 -0.020905 -0.048766 0.049192 +0.094934 0.090567 -0.064939 0.021130 0.094459 +-0.009557 -0.060711 -0.057713 -0.034265 -0.053583 +-0.016969 -0.012648 -0.063332 0.105446 0.016028 +-0.006489 -0.023448 0.027450 -0.092041 -0.002328 +0.038286 -0.093578 0.014068 0.045683 0.038064 +-0.013579 0.012105 0.031264 0.028629 -0.053522 +0.018638 0.010295 -0.019741 0.051773 0.021102 +-0.003833 -0.088492 -0.107650 -0.039638 -0.042960 +0.017232 0.033768 0.024773 0.031441 -0.026193 +0.102995 -0.003033 0.013478 -0.022850 -0.045542 +-0.043058 0.040213 -0.037024 0.062912 0.127046 +0.001959 -0.029856 0.021744 -0.024546 0.073822 +0.034590 -0.034810 -0.073281 0.037715 -0.086249 +-0.031013 0.094574 -0.014633 0.035329 -0.001586 +-0.004488 -0.022600 0.105074 0.068271 0.014684 +-0.069910 0.035216 -0.046091 -0.056792 0.016636 +-0.031304 0.104876 0.015142 -0.014980 -0.018234 +0.076863 -0.070661 -0.018752 0.021078 -0.015693 +-0.082177 0.139823 -0.020936 0.000788 -0.047650 +0.086463 0.003184 0.053978 0.016598 0.005082 +0.037579 -0.007222 -0.068342 0.001780 -0.016838 +0.000034 0.019368 -0.028889 -0.073195 -0.167931 +-0.002740 -0.051503 0.060666 -0.048875 0.013166 +-0.002367 0.018484 -0.088268 0.058154 -0.005778 +-0.019212 0.030488 -0.007580 0.042345 -0.062956 +0.013296 0.040910 0.018849 -0.062445 -0.062359 +-0.004222 -0.003121 0.026069 0.075825 0.086917 +0.019144 -0.018779 -0.072348 -0.063072 0.046388 +0.009524 -0.032045 0.075619 0.076314 -0.042349 +-0.026193 -0.003729 0.066560 -0.103338 -0.004071 +-0.000469 -0.090470 0.033564 -0.067881 0.027775 +0.040936 0.054314 -0.123113 -0.001763 0.032899 +0.028282 0.057689 -0.011369 0.021664 -0.023786 +-0.104368 -0.070997 0.059588 -0.014596 -0.042435 +0.003429 0.090193 -0.113362 -0.007873 0.011799 +0.036299 -0.059670 0.054351 -0.084675 0.034819 +-0.007507 -0.018723 -0.009649 0.092970 0.008836 +-0.028752 -0.044170 -0.070934 -0.103397 -0.030638 +0.048533 -0.032645 0.020691 0.053664 0.011144 +-0.021593 0.015401 -0.085379 -0.058031 -0.078320 +-0.003648 -0.010436 -0.012911 -0.007136 -0.134525 +0.030251 0.042795 0.087389 -0.092708 -0.026287 +-0.039855 0.155791 -0.013492 -0.036665 0.072298 +-0.133309 -0.003156 0.013287 -0.012142 0.018020 +-0.071518 -0.038880 -0.026195 0.009773 -0.006971 +0.044349 0.079337 0.015294 -0.035758 -0.003607 +-0.058092 0.001525 0.042209 0.047862 -0.061178 +0.014357 0.093707 0.022406 -0.118850 -0.034213 +0.019269 0.070424 -0.016998 0.021550 -0.094794 +0.004962 -0.108204 0.128671 0.015466 0.031554 +-0.080559 0.041092 0.022039 0.001186 -0.022630 +-0.043310 0.005192 0.074769 -0.022963 0.039941 +0.055086 -0.081362 -0.064870 0.040274 0.052633 +-0.062993 0.085037 -0.010420 -0.016774 -0.052155 +0.002576 0.013639 0.061713 0.041734 -0.008138 +0.080793 0.024851 -0.042037 0.019932 -0.048494 +-0.029059 0.146206 0.042139 0.033378 -0.021081 +-0.014080 0.001144 -0.016467 -0.076606 -0.056525 +0.005355 0.079452 0.043451 0.085716 0.029884 +-0.042582 -0.055446 0.005137 0.000476 0.001691 +-0.041210 -0.077759 0.022581 0.046845 -0.028540 +-0.120802 -0.013263 0.072039 -0.031588 -0.006830 +-0.040167 -0.125914 0.088795 0.022744 0.055951 +0.003326 0.027383 -0.028722 -0.123214 0.059791 +0.097070 0.030682 -0.019252 0.000330 0.082240 +0.006364 -0.113196 0.035671 -0.063923 -0.075420 +0.017812 -0.046079 -0.059540 0.093696 0.056472 +-0.031904 -0.065015 -0.019089 -0.091007 0.031632 +0.018500 -0.054687 0.032704 0.040721 0.012163 +-0.041854 -0.010613 -0.017039 -0.028850 -0.061295 +0.029279 0.000022 -0.023031 0.084704 0.032995 +0.000464 -0.042280 -0.122277 -0.133466 0.058700 +0.095073 0.044206 0.068361 0.039925 -0.039455 +0.043618 -0.033785 0.035086 -0.056425 0.019711 +0.049265 0.053168 0.030600 -0.096642 0.090726 +-0.078183 -0.002747 0.032400 -0.043278 0.040809 +-0.019946 -0.088229 0.027009 0.056114 -0.113044 +-0.020901 0.076359 0.059245 0.016714 0.040966 +-0.010584 -0.003554 0.056159 0.010151 0.000010 +-0.027039 0.073329 -0.015462 -0.016179 0.013943 +0.075066 0.067462 -0.030769 -0.024755 -0.022212 +0.040264 -0.071337 0.009512 -0.045952 0.023049 +-0.094656 0.057345 -0.124101 -0.007720 0.037588 +0.036110 -0.011456 0.089645 -0.007765 0.014716 +0.059788 -0.047648 -0.019740 -0.007164 -0.013816 +-0.060158 0.013439 0.002759 -0.025340 -0.091571 +0.043341 -0.028869 0.026551 -0.031854 0.060505 +-0.049549 0.033978 -0.109503 0.068308 -0.028080 +0.053928 -0.022460 -0.086171 0.086833 -0.045654 +0.000759 -0.010999 0.026013 -0.046809 -0.054160 +-0.030739 -0.041475 -0.010348 0.057903 0.106187 +-0.031967 -0.136159 -0.056033 0.020976 0.056817 +-0.030310 0.060592 0.045537 0.086963 -0.032719 +0.018689 0.033949 0.017964 -0.019455 0.008378 +0.014325 -0.124934 -0.010142 0.033116 0.066121 +-0.008592 0.059328 -0.090438 -0.060148 0.065598 +-0.010732 0.014210 -0.046081 0.019411 0.040325 +-0.012140 -0.084611 0.064608 -0.023209 -0.018978 +0.028244 -0.000390 -0.070852 0.136445 0.055833 +0.034530 -0.106636 -0.049748 -0.043837 0.056670 +-0.020391 -0.027277 -0.125403 0.082621 -0.064172 +-0.085208 -0.034925 0.000691 -0.016798 0.037357 +0.058365 -0.014015 0.051315 0.078205 0.001672 +0.009538 0.041777 0.001519 -0.031501 -0.027967 +0.008286 -0.051667 0.045953 0.057151 -0.083565 +0.099401 0.052489 0.027972 -0.093449 0.022696 +0.014953 0.056948 0.062741 0.024005 0.076825 +-0.029857 -0.002820 0.046866 -0.002247 0.022284 +-0.005875 -0.120877 -0.029880 0.030478 -0.074641 +0.026517 0.141968 0.041939 -0.017604 -0.063098 +-0.042315 0.108332 0.077079 0.042498 -0.093786 +-0.000624 0.109876 0.061671 -0.037131 0.145507 +-0.015339 0.059306 -0.094584 0.004561 -0.031261 +0.003112 -0.004144 0.054816 -0.035342 -0.020048 +-0.055998 -0.008131 0.096183 0.002903 0.002243 +-0.024465 -0.011484 0.122067 -0.117424 0.061629 +0.100785 -0.008995 -0.021311 -0.034915 0.028992 +-0.065386 0.062233 0.009424 0.013652 -0.066035 +0.068604 0.015424 -0.016048 -0.028882 -0.021780 +0.034733 -0.052918 -0.046384 0.003918 -0.037747 +0.012883 0.061961 0.011614 0.047979 -0.020950 +0.012662 -0.003597 -0.016134 -0.114584 -0.032846 +-0.025773 0.029225 0.029423 0.035929 0.050919 +-0.093288 0.024548 0.026469 0.086567 0.069788 +-0.015915 0.014888 -0.054796 0.032121 0.010392 +0.010094 0.027316 0.105326 -0.033913 -0.034646 +-0.047655 -0.119467 0.014906 0.070898 -0.051722 +0.085920 0.026450 -0.048565 -0.048393 0.040708 +0.013886 0.115144 0.000426 0.025815 0.028617 +-0.076183 -0.060818 0.007730 -0.030613 -0.106233 +0.008414 0.008274 -0.071702 0.123060 -0.014131 +-0.075611 -0.006558 -0.031029 -0.038394 0.018650 +-0.068219 -0.088628 0.017122 0.073322 0.003094 +0.023978 -0.022533 0.052647 0.005485 -0.022853 +0.047387 0.058945 -0.012186 0.049493 0.117395 +-0.008681 -0.136174 -0.057438 -0.017543 -0.020215 +0.064213 -0.018764 0.030830 0.026967 -0.104162 +0.097321 0.026515 -0.008192 -0.071056 -0.023457 +0.037214 -0.028805 0.019265 0.010163 0.118572 +-0.083174 -0.026261 -0.079021 -0.109716 0.081199 +-0.001821 -0.039505 -0.064758 0.022196 -0.008395 +-0.056773 0.070319 0.039957 -0.024091 -0.012671 +0.043873 0.034859 0.113349 0.002335 -0.016767 +-0.117575 0.038224 -0.016650 -0.007249 -0.028289 +-0.020867 0.099598 -0.027205 -0.047643 -0.022079 +0.062869 -0.095742 0.004349 -0.009783 -0.009631 +-0.114174 0.101698 -0.020882 0.032183 0.046772 +0.066030 0.023138 0.031676 0.048789 0.064708 +0.016049 -0.022143 -0.026033 0.014811 0.017879 +0.005234 -0.011470 -0.061933 0.012402 -0.073904 +-0.008574 0.011810 0.022041 -0.034666 0.015863 +0.032824 0.011302 -0.083572 0.034152 -0.049572 +0.046696 -0.004826 -0.026282 0.006930 -0.036282 +0.018845 0.023008 -0.022702 0.002839 -0.056809 +0.046756 -0.012044 0.093032 0.037759 0.053581 +-0.068607 -0.014841 -0.102444 -0.056353 0.054083 +0.022493 -0.027398 0.044342 0.073545 -0.016381 +-0.030891 0.080430 0.020741 -0.064660 -0.030998 +-0.064001 -0.094590 -0.012708 0.031636 0.033664 +0.017650 -0.020332 -0.049802 0.010802 0.048687 +-0.014333 0.032177 -0.003331 0.031214 -0.009314 +-0.043033 -0.047137 0.054111 -0.030505 -0.006532 +0.021755 0.050908 -0.056081 0.074478 0.019301 +0.003105 -0.097554 0.054912 -0.016068 0.031570 +0.019298 -0.067236 -0.010230 0.065782 -0.048545 +-0.032341 -0.039446 -0.004134 -0.054109 -0.014461 +0.064470 -0.004466 0.064183 -0.013807 -0.040371 +0.012385 -0.043869 -0.179654 -0.075267 -0.058833 +0.027833 -0.078315 0.006233 0.019417 -0.100407 +0.057753 0.000717 0.032416 -0.121474 -0.047213 +-0.015720 0.092246 -0.059387 0.040603 0.109440 +-0.058153 0.071202 0.030939 0.049569 0.087021 +-0.076095 -0.131564 -0.027353 -0.000486 -0.015803 +0.104552 0.088105 0.072307 -0.020686 0.043142 +-0.089957 0.000627 0.140513 0.006435 -0.023427 +-0.000585 0.090754 0.029188 -0.057282 0.010274 +0.075187 0.111159 -0.057877 0.069809 -0.050756 +0.062932 -0.036407 0.050992 0.009269 -0.006383 +-0.106503 0.017063 0.008141 0.064195 -0.045832 +0.011576 -0.041847 0.061264 -0.005204 0.058984 +0.021548 -0.048377 -0.044097 0.010789 0.013451 +-0.063551 0.063079 -0.080144 -0.027762 -0.017784 +-0.023803 0.027775 0.060824 0.001841 -0.009369 +0.061007 0.032254 -0.064190 -0.006988 -0.010230 +-0.038793 0.076776 0.045814 0.049754 0.027771 +-0.047904 0.017897 -0.052309 -0.106778 -0.037221 +0.011510 0.060085 -0.009615 0.096725 0.047490 +-0.010900 -0.074275 -0.061489 0.016070 0.006262 +-0.121827 0.005654 -0.050379 0.042456 -0.027064 +-0.068110 0.106922 0.068599 -0.034845 -0.067145 +-0.036874 -0.041315 0.035902 0.059175 0.013939 +0.008294 -0.000352 -0.046255 -0.058090 0.089826 +0.091060 0.092701 0.009236 0.013325 -0.019194 +0.039376 -0.018583 -0.016868 -0.096550 -0.086377 +-0.016296 0.002608 -0.083265 0.049964 0.042836 +-0.011462 -0.046261 0.084247 -0.180528 0.034023 +0.041962 -0.128842 -0.057438 0.031753 -0.013294 +-0.008752 -0.054893 -0.036386 -0.004605 -0.020903 +0.113550 0.017158 -0.063971 0.047456 0.033803 +0.026820 -0.033048 -0.057221 -0.039801 -0.029135 +0.004112 0.055166 0.080631 0.011347 -0.039214 +0.069633 -0.057947 0.018314 -0.110810 -0.006258 +0.011057 -0.058755 -0.016184 -0.078348 0.154720 +-0.056156 -0.110551 0.114867 -0.031689 0.014677 +0.024109 -0.060048 0.019844 0.109975 -0.045339 +0.002565 0.067118 0.019907 0.004995 0.078815 +-0.017892 0.015592 0.118138 0.009682 -0.024624 +-0.025684 0.027247 -0.044912 -0.011851 0.057506 +0.106751 0.066538 -0.073230 -0.069470 -0.044869 +-0.007738 -0.078232 0.000098 -0.056553 -0.000261 +-0.069574 0.025403 -0.032460 0.042204 -0.009414 +0.024336 0.002379 0.084422 -0.062254 0.070007 +0.083297 0.011215 -0.087554 0.008854 -0.031248 +-0.019485 0.015117 0.019539 -0.018885 -0.091190 +0.006668 -0.029364 0.010585 0.004194 0.053285 +-0.032862 0.007750 -0.181078 0.014752 -0.032591 +0.035286 0.052475 -0.044255 0.152326 -0.034986 +0.001871 -0.048154 0.032533 -0.150372 -0.061009 +0.025623 -0.057468 0.099245 0.098809 0.047259 +-0.017644 -0.089718 -0.052981 0.060000 0.050683 +-0.093984 -0.012007 0.021790 0.115572 0.011056 +-0.005239 0.022166 0.036556 -0.019139 -0.017723 +0.036182 -0.053160 0.008506 0.003654 0.035883 +-0.011143 0.126442 -0.042372 -0.049170 0.021566 +-0.034390 0.004133 -0.083543 0.003794 0.003199 +0.023898 -0.058139 0.097937 -0.021906 -0.118046 +-0.009779 0.053140 -0.086424 0.032891 0.040964 +0.003078 -0.054441 -0.008601 -0.059920 0.074604 +0.120587 -0.102501 -0.066840 0.070391 0.032323 +-0.084081 -0.025867 0.003136 -0.037883 -0.064963 +0.077565 -0.011987 -0.030929 0.076324 -0.096244 +-0.003417 0.038221 -0.027320 -0.034091 0.001490 +-0.007638 -0.034015 0.052893 0.055546 -0.147361 +0.042258 -0.020035 -0.017400 -0.076711 -0.017528 +0.045540 0.051725 -0.024199 -0.035180 0.069090 +-0.066211 0.016712 0.012236 -0.023556 -0.008512 +-0.043404 -0.040132 0.006223 0.020953 -0.040829 +-0.031888 0.063196 0.044618 -0.021241 -0.065557 +0.013691 0.016905 0.113755 0.054933 -0.021644 +0.016741 0.030625 0.010121 -0.037365 0.072566 +0.006060 0.080380 -0.086262 -0.033079 -0.082250 +0.087161 -0.049737 0.100611 -0.073241 -0.060578 +-0.018873 0.076177 0.146262 0.031684 -0.014816 +-0.074152 0.012492 0.111905 -0.037241 0.036831 +0.091650 -0.058779 -0.035497 0.009717 0.105238 +-0.068452 0.050555 -0.035241 0.038942 -0.086304 +0.055772 0.028480 0.055647 -0.013345 0.009719 +0.060855 -0.009449 -0.029466 -0.039618 -0.045775 +0.012008 0.093753 0.059452 0.084398 -0.063094 +0.003659 0.074625 -0.110159 -0.075540 -0.006386 +0.010137 0.032774 0.014827 0.166347 0.079179 +-0.032299 -0.047524 -0.033098 0.052546 0.023211 +-0.005083 -0.040770 0.010451 0.047465 -0.015315 +-0.001296 0.006073 0.070897 -0.060137 -0.051576 +-0.032384 -0.082914 0.047391 0.018599 -0.072054 +0.020109 0.006570 -0.072222 -0.028125 0.023991 +0.073458 0.052141 -0.039550 0.020745 -0.004247 +-0.027316 -0.026412 -0.050898 -0.048547 -0.135601 +-0.022268 0.038434 -0.006989 0.106829 0.013384 +0.000746 0.016253 -0.014804 -0.086222 0.017979 +0.043413 -0.078404 0.050130 0.105998 0.009523 +-0.080688 -0.029072 0.043530 0.018815 -0.027097 +0.017270 0.008265 0.029905 0.025756 0.068311 +0.010413 -0.062141 -0.092435 -0.009085 -0.011445 +0.024539 0.076003 0.038136 -0.010407 -0.045941 +0.082228 -0.001579 -0.035917 0.064558 -0.023500 +-0.063481 0.003930 -0.067573 0.030233 0.098224 +-0.042799 0.003064 0.009816 -0.008225 0.109707 +-0.034960 -0.080238 -0.123786 0.048109 -0.059473 +-0.055367 0.057060 -0.001238 0.030381 0.025074 +0.006831 0.017900 0.111674 0.097968 0.015896 +-0.050238 0.041727 -0.107658 -0.072374 -0.018776 +0.001860 0.159151 -0.015443 -0.046034 -0.062151 +0.065586 -0.066719 0.031320 0.059675 -0.022808 +-0.066461 0.086303 -0.026658 0.070774 0.006480 +0.159805 -0.035879 0.058009 0.012928 -0.008505 +0.051041 -0.000692 -0.022889 0.039547 0.001201 +-0.030295 0.029145 -0.073169 -0.019964 -0.102560 +-0.021646 -0.009084 0.039313 -0.008758 0.059413 +0.019112 0.068432 -0.154269 0.042342 -0.017110 +0.003279 0.087898 0.002044 0.110066 -0.076844 +0.041884 0.035740 -0.001247 -0.094360 -0.090406 +0.040890 -0.028718 0.013704 0.031084 0.040651 +-0.028325 -0.027470 -0.060171 -0.069388 0.051373 +-0.010018 0.016317 0.030962 0.131065 -0.012443 +-0.085994 0.023695 0.036048 -0.123378 0.017394 +-0.014188 -0.147008 0.010122 -0.048605 0.011567 +0.011549 0.033481 -0.087698 -0.007977 0.012262 +0.046426 0.046093 -0.000803 0.034084 0.024231 +-0.011190 -0.037156 0.022545 0.009116 -0.021868 +0.000176 0.161431 -0.066441 -0.004212 0.008997 +-0.027580 -0.039554 0.047688 -0.114080 0.037481 +0.021017 -0.015449 0.023651 0.076890 -0.062376 +-0.089367 -0.035901 -0.117304 -0.014988 -0.004232 +0.065798 -0.038753 0.006615 0.027216 0.000892 +-0.043842 -0.027915 -0.077769 -0.025289 0.007296 +0.021684 -0.008098 0.034493 0.002195 -0.089680 +0.015447 0.014866 0.063536 -0.107947 0.040356 +-0.049353 0.085041 -0.019010 0.017126 0.054466 +-0.095573 0.040640 0.005208 0.001846 0.046985 +-0.060406 -0.059147 -0.078410 0.032047 -0.027762 +0.023664 0.067476 0.025927 0.004505 -0.005180 +-0.107366 -0.052865 0.059971 0.018624 -0.086019 +-0.038792 0.082042 -0.009606 -0.082518 0.048899 +-0.032272 0.118434 -0.029891 0.014012 -0.078772 +0.071631 -0.124648 0.096824 0.071580 -0.014951 +-0.078224 0.028148 0.050459 0.044666 -0.016543 +-0.039821 -0.016072 0.087706 -0.056648 0.087416 +0.030016 -0.076113 -0.101181 -0.049336 0.048944 +-0.063956 0.087916 -0.036885 -0.059650 -0.044808 +0.054549 0.006956 0.033701 0.030349 -0.017304 +0.057616 0.016137 -0.052723 0.039906 -0.101393 +-0.068763 0.099576 0.006264 0.083677 -0.032515 +-0.006446 0.031066 0.009386 -0.132131 -0.067080 +0.049843 0.065652 0.020336 0.046760 0.071347 +-0.013796 -0.001044 -0.022677 0.019523 0.014154 +-0.120083 -0.039608 0.050937 0.066017 -0.034193 +-0.069836 0.025969 0.058877 -0.033911 -0.021741 +0.005164 -0.037563 0.051151 0.030827 0.041654 +-0.050675 0.032902 -0.056904 -0.083309 0.051372 +0.092971 0.070309 0.017775 -0.033610 0.023024 +0.044912 -0.113795 0.009331 -0.100912 -0.024567 +0.000589 -0.023568 -0.041534 0.046948 0.019053 +-0.031982 -0.010104 -0.033008 -0.120085 0.014601 +-0.013314 -0.032777 0.022640 0.053925 0.056793 +-0.009301 0.011372 0.004027 -0.017398 -0.055177 +0.038121 -0.000187 0.037310 0.135976 0.012337 +0.060620 -0.032842 -0.103898 -0.068672 0.001160 +0.043004 -0.011293 0.085530 0.053401 -0.086065 +0.123377 0.016620 0.045728 -0.034590 -0.014069 +0.081166 0.009573 0.008541 0.007549 0.143099 +-0.050664 -0.045174 0.012225 -0.052408 0.008760 +-0.016453 -0.030851 -0.052611 0.054134 -0.086747 +-0.068170 0.152077 0.049576 0.035454 0.051824 +0.042151 -0.013574 0.070619 0.043677 -0.011524 +-0.051292 0.065538 -0.002312 -0.036357 0.061560 +0.011089 0.083280 -0.022801 -0.035830 0.007115 +0.022494 -0.033816 -0.026885 -0.055802 0.037931 +-0.067432 0.034696 -0.048668 0.025237 0.063419 +0.052414 0.002888 0.073912 -0.070773 0.030231 +0.098077 -0.052981 -0.038547 -0.044533 0.015899 +-0.006684 0.059142 0.015994 -0.010569 -0.114343 +0.049113 0.011781 0.007813 -0.023202 0.027226 +-0.048228 0.023363 -0.119744 -0.005880 -0.047102 +0.056647 0.043309 -0.020351 0.078326 -0.050033 +0.004297 -0.004014 -0.008930 -0.041817 -0.061743 +-0.031268 0.020567 0.053127 0.035109 0.095886 +-0.022695 -0.103689 -0.101536 -0.035350 0.033822 +-0.071528 -0.027884 -0.013301 0.135256 -0.057997 +-0.006784 0.025162 0.014105 -0.008340 0.036569 +-0.047669 -0.071591 0.074153 -0.001441 0.118717 +-0.038919 0.054650 -0.101206 -0.019929 0.096971 +0.019005 0.066319 -0.033069 -0.010263 0.057814 +-0.038319 -0.115955 0.048866 -0.085605 -0.005601 +0.066517 -0.010474 -0.068925 0.056969 0.055565 +0.068964 -0.047482 -0.006419 -0.087153 0.047383 +0.032670 -0.032209 -0.036239 0.140438 -0.038488 +-0.103112 -0.063917 0.016553 0.017109 -0.018945 +0.071205 -0.057507 0.036017 0.043139 0.045741 +0.011471 0.019692 -0.031466 -0.001430 -0.027755 +-0.010061 -0.028245 0.031925 0.070075 -0.044640 +0.079725 -0.005444 -0.055716 -0.081872 0.035299 +-0.020415 0.060898 0.037726 -0.007902 0.118692 +-0.091406 -0.074996 0.014883 -0.011479 0.096472 +-0.004637 -0.120365 0.011661 -0.019123 -0.055083 +-0.021707 0.080305 0.062197 -0.007888 -0.014681 +-0.064206 0.034037 0.066576 0.037499 -0.089224 +-0.027816 0.038300 -0.009289 -0.093182 0.126160 +0.000015 0.066641 -0.028392 0.023167 -0.021511 +0.010571 -0.044084 0.057444 0.012462 0.005604 +-0.062572 0.054520 0.053554 0.005974 0.010050 +-0.037332 0.047516 0.066630 -0.035787 0.074909 +0.066925 -0.030867 -0.053629 0.022622 0.033939 +-0.033606 0.038370 0.006718 0.000847 -0.048333 +0.027340 -0.025685 0.007564 -0.047322 -0.016881 +0.054471 -0.017126 -0.063705 0.008150 -0.059374 +0.010814 0.037617 0.025879 0.059782 -0.064248 +0.042565 0.025815 -0.028591 -0.064574 -0.034454 +-0.031756 0.000598 0.011630 0.073568 0.026113 +-0.014567 0.003799 -0.014072 0.027953 0.071711 +-0.011735 0.014001 -0.022183 0.070160 -0.007010 +-0.049052 0.104807 0.111959 -0.037082 -0.007329 +-0.011153 -0.073166 0.045311 0.040814 -0.001227 +0.040666 0.038813 -0.049173 -0.078035 0.061429 +0.063840 0.120475 0.035684 0.029819 0.046868 +-0.017290 -0.035945 0.064987 -0.053189 -0.049460 +-0.030434 0.069244 -0.015774 0.136658 -0.012690 +0.005401 -0.045873 0.006291 -0.075787 0.046146 +-0.001969 -0.104323 -0.047978 0.150326 0.032908 +-0.004080 -0.012965 -0.015875 0.014424 -0.040690 +0.098688 0.025183 -0.017974 0.072128 0.070408 +-0.030717 -0.065297 -0.073385 -0.051253 -0.014989 +0.058581 0.033837 0.014225 0.031069 -0.081646 +0.089555 -0.017678 -0.068486 -0.040654 -0.051917 +0.047272 -0.042437 -0.042350 0.019696 0.085122 +-0.053413 -0.122905 -0.021426 -0.039696 0.051817 +0.020410 -0.050261 -0.093654 -0.001174 -0.043672 +-0.102482 0.084668 0.098393 -0.052216 0.050107 +-0.005196 0.034413 0.122643 -0.031565 0.066945 +-0.079300 0.072369 -0.011993 -0.035713 0.023269 +-0.002546 0.076113 -0.067724 -0.084767 -0.053840 +0.037939 -0.091041 -0.026871 -0.009130 -0.021081 +-0.067836 0.022012 -0.052138 0.083855 0.065835 +0.061174 -0.015388 0.100602 -0.009214 0.131331 +0.048374 -0.020733 -0.009385 -0.013658 0.012043 +-0.057898 -0.017737 -0.088355 0.024991 -0.079612 +0.000356 0.019063 0.032476 0.022195 0.010063 +-0.017095 0.024040 -0.080464 0.063948 -0.114944 +0.012612 0.022171 -0.005737 0.035304 -0.061207 +0.055311 0.033024 0.010681 -0.035592 -0.053947 +-0.011004 -0.012254 0.055221 0.045545 0.049084 +0.005046 -0.005400 -0.115901 -0.044796 0.068701 +-0.005781 -0.031080 0.037791 0.097212 0.026378 +-0.032777 0.026666 0.006559 -0.032347 -0.025736 +-0.039802 -0.165807 0.007831 0.003219 0.090520 +0.051658 -0.027677 -0.121531 0.016080 0.074249 +-0.017031 0.055987 0.005024 0.056572 0.006367 +-0.029525 -0.005725 0.069335 -0.024541 -0.003936 +-0.050003 0.053274 -0.052184 0.045028 0.014532 +0.039597 -0.056809 0.094737 -0.048726 0.081476 +0.030138 -0.008376 0.001189 0.059831 -0.018934 +-0.069575 0.002414 -0.006677 -0.061422 -0.024261 +0.061177 -0.023449 -0.000323 -0.012054 -0.074484 +0.038383 0.021929 -0.101717 -0.022789 -0.036563 +0.013636 -0.063362 0.053011 0.004735 -0.077306 +0.008396 0.043986 0.028657 -0.067441 -0.008945 +-0.037043 0.071514 -0.037839 0.077754 0.066277 +-0.065319 -0.001333 0.067596 -0.021862 0.099395 +-0.063958 -0.082056 -0.044809 0.063666 0.000060 +0.046881 0.121405 0.030877 -0.008566 0.007738 +-0.043809 -0.049349 0.046172 0.040387 -0.045205 +0.007940 0.060687 -0.036544 -0.076121 0.042696 +-0.003337 0.102081 -0.040222 0.067540 -0.025542 +0.030041 -0.090029 0.041031 0.020329 -0.012727 +-0.089279 0.046642 0.018999 0.055650 0.032822 +-0.052350 -0.055869 0.123885 -0.019014 0.088042 +0.001830 -0.080700 -0.023798 -0.021378 0.007657 +-0.042996 0.023456 -0.055210 -0.018485 -0.033292 +-0.016446 0.052880 0.043571 0.032302 -0.006553 +0.054726 0.057637 -0.079728 0.030525 -0.045654 +-0.016583 0.136252 -0.001399 0.088342 0.059925 +-0.018644 0.033899 -0.026838 -0.060676 -0.084264 +-0.007612 0.086537 -0.000185 0.091345 0.006932 +-0.012308 -0.029627 -0.057073 -0.008780 0.039234 +-0.044963 -0.042058 -0.067929 0.074154 -0.051802 +-0.061304 0.020025 0.026829 -0.086288 -0.076261 +-0.069406 -0.050920 0.124796 0.022026 0.010977 +0.038169 -0.027398 -0.073580 -0.056630 0.093880 +0.081911 0.024440 0.008606 0.033419 -0.000580 +0.033675 -0.032327 -0.007767 -0.065309 -0.050057 +-0.050072 -0.014708 -0.100502 0.074529 0.005808 +0.016991 -0.022397 -0.012659 -0.102715 0.069860 +0.007505 -0.098626 0.017930 0.000660 0.030909 +-0.019108 -0.001078 -0.038606 -0.007684 -0.046485 +0.070639 0.016330 -0.034902 0.085208 0.016702 +0.031560 -0.039036 -0.086796 -0.116810 -0.043757 +0.027858 0.024031 0.045674 -0.036231 -0.081680 +0.085800 -0.045662 -0.023544 -0.087212 -0.075608 +-0.015723 -0.040238 0.013265 -0.085104 0.106223 +-0.082075 -0.107869 0.056348 -0.031110 0.053637 +0.000135 -0.037700 -0.055809 0.094526 -0.021978 +0.034525 0.054227 0.053019 0.003097 0.040872 +-0.039125 -0.085945 0.154564 0.038990 -0.027547 +0.001012 0.012970 -0.012585 -0.008224 0.076006 +0.057344 0.055498 -0.015305 -0.064045 -0.009027 +0.028053 -0.055613 0.019793 0.005156 -0.005730 +-0.081848 0.009551 -0.035835 -0.005885 -0.006310 +0.056241 0.074335 0.101385 -0.045124 0.075779 +0.098255 -0.025349 -0.135871 0.068593 0.018442 +0.008761 -0.006857 0.032026 -0.041062 -0.176540 +-0.003354 -0.030120 -0.024455 -0.009820 0.053273 +-0.013461 -0.013288 -0.112246 0.007427 0.011505 +0.000211 -0.007304 -0.033855 0.097950 -0.118398 +0.030054 0.000253 0.110782 -0.135596 -0.057368 +-0.016542 -0.002743 0.078980 0.080403 0.081391 +-0.047818 -0.058659 -0.050242 0.012663 0.083037 +-0.061626 0.019808 -0.007693 0.160145 0.019543 +0.010731 0.046526 0.068954 -0.024462 -0.015987 +0.057362 -0.091820 0.016953 0.016968 0.076250 +0.018441 0.111365 -0.067091 -0.018485 0.053164 +0.005666 0.035169 -0.035022 -0.006122 -0.002602 +-0.047379 -0.023841 0.119826 -0.069174 -0.036278 +0.066394 0.057299 -0.074109 0.057609 0.038296 +0.057444 -0.029816 0.022335 -0.034234 0.104815 +0.048829 -0.043111 -0.072490 0.067468 0.004571 +-0.110285 -0.021601 -0.020759 -0.012685 -0.017656 +0.126982 0.016916 -0.004567 0.107105 -0.027552 +0.007144 -0.013052 -0.020950 -0.061707 -0.025117 +-0.020557 -0.015960 0.045201 0.121070 -0.089963 +0.035852 0.025505 -0.020181 -0.106140 0.001278 +-0.003190 0.085573 -0.040587 -0.057134 0.092945 +-0.049909 0.014414 0.010498 -0.020042 0.053348 +-0.005743 -0.065367 -0.017619 0.024990 -0.016761 +-0.001102 0.081298 0.066867 -0.051868 -0.045101 +-0.008798 0.003830 0.082195 0.041312 -0.048878 +0.029855 0.023388 0.029924 -0.050988 0.039197 +-0.009097 0.043885 -0.079323 -0.043981 -0.028178 +0.066419 0.012794 0.059244 -0.059898 -0.071819 +-0.106012 0.055735 0.110205 0.053225 -0.000572 +-0.024268 -0.039276 0.113882 -0.011410 0.026499 +0.086180 -0.011966 0.013046 0.031127 0.066167 +-0.027553 0.060671 -0.045735 0.060949 -0.051384 +0.048136 0.029615 0.023552 0.009801 0.050664 +0.065347 -0.026945 -0.067001 -0.022261 -0.108076 +0.060158 0.041960 0.067335 0.052471 -0.029246 +0.005009 0.007741 -0.052254 -0.083086 -0.017223 +-0.052633 0.052579 0.067865 0.153710 0.017808 +-0.087647 -0.021298 -0.079632 0.070262 0.044472 +-0.050379 -0.010528 -0.002296 0.013103 -0.019826 +-0.007796 0.016897 0.056191 0.006326 -0.079428 +-0.036621 -0.124708 0.063044 -0.022890 -0.045545 +0.041047 0.025474 -0.028608 0.002726 0.048077 +0.099637 0.066892 -0.070620 0.001304 0.013309 +-0.014646 -0.054310 -0.000625 -0.041803 -0.102217 +-0.045571 -0.015019 -0.026224 0.105191 0.032885 +-0.000149 -0.033313 0.006390 -0.078169 -0.030753 +0.041211 -0.066981 0.004327 0.092330 0.071230 +-0.029542 0.036311 0.054269 0.022893 -0.046259 +-0.001621 -0.003966 0.005826 0.056342 0.042238 +-0.028467 -0.044194 -0.112504 -0.019352 -0.056343 +0.025104 0.017498 0.028931 0.016630 -0.061128 +0.115505 0.002142 0.019876 0.014986 -0.066700 +0.002735 0.027334 -0.033263 0.031449 0.112566 +-0.025718 -0.017066 -0.019976 -0.036001 0.083541 +0.048068 -0.073969 -0.035121 0.039966 -0.077883 +-0.015535 0.089870 0.023998 0.011277 0.010489 +0.033555 -0.012483 0.127157 0.027709 0.014969 +-0.033730 0.006080 -0.048319 -0.052745 0.027066 +-0.021685 0.115020 0.006318 -0.021548 0.021575 +0.090884 -0.054542 -0.015574 0.030923 -0.068692 +-0.095404 0.092367 -0.049371 -0.007959 0.012304 +0.123951 0.014405 0.082998 -0.023011 0.029154 +0.017924 -0.006151 -0.084050 0.033509 -0.002582 +0.024225 0.045534 -0.034178 -0.026409 -0.121581 +0.007469 -0.024266 0.049937 -0.020242 0.021756 +-0.020005 0.017806 -0.083185 0.089127 -0.055074 +-0.034134 0.018495 -0.014900 0.084470 -0.088049 +0.012587 0.053323 -0.003416 -0.081639 -0.022685 +0.028673 -0.041773 0.034449 0.070890 0.057659 +0.017152 -0.036172 -0.093521 -0.025296 0.035162 +0.029819 -0.039228 0.085181 0.163548 -0.001854 +-0.029758 0.022943 0.021209 -0.070771 0.014429 +-0.013368 -0.088799 -0.009255 -0.052504 0.041099 +0.025723 0.001161 -0.107366 -0.001012 0.033565 +0.044131 0.035694 -0.021740 0.002649 0.007424 +-0.085656 -0.093763 -0.001170 -0.025695 -0.037360 +-0.044626 0.064499 -0.071805 -0.003962 0.048891 +0.024092 -0.027384 0.095833 -0.090763 0.002000 +0.023459 0.019764 -0.029245 0.119488 0.005968 +-0.096712 -0.071733 -0.047297 -0.074321 -0.062880 +0.035501 -0.027280 0.037144 0.008541 0.020241 +0.018467 -0.015675 -0.095340 -0.027954 -0.069184 +-0.012559 -0.010226 -0.008974 0.014176 -0.089107 +0.055689 0.060512 0.073656 -0.081115 0.028454 +-0.087380 0.077056 -0.016938 -0.014435 0.091481 +-0.117469 0.042015 0.041204 -0.038524 0.004206 +-0.062655 -0.068726 -0.052024 -0.002012 -0.016652 +0.058910 0.036081 0.033210 -0.054379 0.003673 +-0.091615 -0.001601 0.019547 0.062960 -0.110025 +-0.019088 0.071235 -0.039133 -0.103127 0.005287 +0.019768 0.106127 -0.017072 -0.008543 -0.093660 +0.044248 -0.053844 0.097968 0.000346 0.012930 +-0.032294 0.027944 0.021196 0.006513 -0.001250 +-0.020211 0.039251 0.067859 0.020349 0.058248 +0.024609 -0.074146 -0.100418 0.030150 0.026229 +-0.039773 0.099169 0.008735 -0.011164 -0.109708 +0.001230 0.003111 0.054746 0.076006 0.018527 +0.098756 0.017060 -0.025289 -0.006160 -0.078352 +0.002616 0.144579 -0.020766 0.062239 -0.016518 +-0.035809 -0.021765 -0.035105 -0.144630 -0.095066 +0.010952 0.046460 0.068649 0.085352 0.087482 +-0.033104 -0.048980 -0.018280 -0.014775 0.025770 +-0.111625 -0.092460 0.005859 0.075107 -0.062936 +-0.085897 0.005900 0.055026 -0.087076 -0.027440 +-0.033017 -0.063979 0.066972 0.028398 0.010265 +-0.030890 -0.001574 -0.045533 -0.106812 0.113658 +0.104903 0.004971 0.028534 -0.023905 0.074634 +-0.025588 -0.100482 -0.029403 -0.070372 -0.062718 +-0.020418 -0.021403 -0.043078 0.080410 0.075037 +-0.035154 -0.074551 -0.013207 -0.145218 -0.000997 +-0.014570 -0.065138 0.008479 0.044833 0.024817 +-0.038683 0.006048 0.032395 -0.031666 -0.059782 +0.070540 0.001925 0.005314 0.060966 0.028570 +0.041891 -0.035393 -0.044033 -0.087988 0.022861 +0.054156 0.027545 0.100860 -0.032365 -0.073861 +0.047055 -0.005439 0.042181 -0.028039 0.007216 +0.034289 -0.013035 0.012785 -0.068215 0.102120 +-0.090059 -0.035706 0.026737 -0.089429 0.038438 +-0.040128 -0.077000 -0.054932 0.048963 -0.127689 +-0.020587 0.094010 0.104367 -0.014378 0.068899 +0.007536 -0.012966 0.078066 0.039371 0.013971 +-0.019439 0.083877 -0.042991 -0.046952 0.039415 +0.055981 0.076150 -0.000417 -0.001657 -0.048929 +0.046983 -0.072438 -0.012301 -0.047275 -0.023350 +-0.059164 -0.003587 -0.100107 0.007189 0.060971 +0.042822 -0.008493 0.134842 -0.044502 -0.010541 +0.089334 -0.016620 -0.048559 -0.027560 -0.005511 +-0.032724 0.034262 -0.042951 0.017548 -0.145421 +0.056398 -0.006331 0.030847 0.001640 0.057797 +-0.063806 -0.000882 -0.091910 0.016087 -0.019546 +0.061433 0.036856 -0.056495 0.069485 -0.031554 +-0.012055 0.017768 0.015448 -0.074610 -0.037352 +-0.004122 -0.064702 0.053976 0.074254 0.134606 +-0.001169 -0.110572 -0.031859 0.002913 0.016777 +-0.083814 0.052146 0.036174 0.103645 -0.024775 +-0.005335 0.048662 0.002436 -0.040366 0.023406 +-0.028113 -0.087518 0.030981 0.017198 0.042213 +0.009268 0.022638 -0.091913 -0.007325 0.067826 +0.007175 0.039739 -0.030746 0.019636 0.060134 +0.002597 -0.074017 0.092250 -0.059181 -0.016534 +-0.011358 -0.017007 -0.017703 0.102970 0.122663 +0.057377 -0.041987 -0.053837 -0.031373 0.063014 +0.006671 -0.090650 -0.138471 0.106533 0.010497 +-0.102967 -0.075716 -0.038511 -0.071066 0.017321 +0.093836 -0.006301 0.118555 0.061346 0.013449 +-0.000558 0.009959 -0.026395 -0.028150 -0.032041 +0.044864 -0.060691 0.041780 0.046048 -0.051785 +0.062238 0.004872 0.030879 -0.128966 0.012667 +0.023845 0.078065 0.044196 0.046742 0.148868 +-0.030628 -0.042491 0.021535 -0.011918 0.043483 +-0.047778 -0.117530 -0.005429 -0.008792 -0.098801 +0.020009 0.106857 0.089897 0.024663 -0.061028 +-0.015371 0.069471 0.045508 0.046334 -0.069530 +0.010731 0.072915 0.065071 -0.058529 0.071085 +-0.012683 0.094842 -0.090176 0.065021 -0.044033 +0.019140 -0.012000 0.092585 -0.034244 -0.040555 +-0.084684 -0.011832 0.061629 0.009146 0.027188 +-0.026891 0.080725 0.088536 -0.084517 0.044584 +0.093624 -0.016766 0.021101 -0.002887 0.009587 +-0.068241 0.007223 -0.040467 0.035718 -0.043998 +0.050133 0.003764 0.010389 -0.000348 -0.020485 +0.049700 -0.066152 -0.041930 -0.021767 -0.077931 +0.035116 0.108204 0.024456 0.032605 -0.043283 +0.024511 0.009921 -0.031396 -0.173419 -0.049078 +-0.014906 0.036522 0.041073 0.061298 0.024532 +-0.074779 -0.013084 0.018258 0.041618 0.044657 +-0.018537 0.007319 -0.066448 0.027570 -0.032981 +-0.024516 0.092119 0.129643 -0.016032 -0.072728 +-0.044848 -0.084876 0.072567 0.089222 -0.006042 +0.077927 0.001985 -0.041619 -0.009227 0.069988 +0.088912 0.133137 -0.016458 0.008841 0.031287 +-0.047102 -0.083683 0.030843 -0.112282 -0.103671 +-0.006459 -0.031852 -0.057190 0.207145 -0.002174 +-0.047509 -0.051560 -0.034172 -0.058751 0.014904 +-0.055125 -0.123573 -0.025949 0.094512 0.035410 +0.003286 0.008369 0.029091 0.023530 -0.021963 +0.056787 0.037285 -0.041070 0.012945 0.109131 +-0.012940 -0.088290 -0.060557 -0.064861 0.027757 +0.012384 0.004678 -0.022211 0.059852 -0.089239 +0.120404 0.036099 -0.023853 -0.025676 0.001845 +0.000298 -0.029950 -0.027028 0.027301 0.128816 +-0.046314 -0.030039 0.011273 -0.059749 0.055640 +0.001351 -0.032191 -0.091552 0.054641 0.010980 +-0.105128 0.083057 0.017517 0.006971 -0.014256 +0.046500 0.060555 0.099997 0.034081 0.044797 +-0.117689 0.049576 -0.059663 -0.109523 0.015561 +-0.039089 0.097102 -0.015266 -0.057401 0.015861 +0.029363 -0.123492 0.017355 -0.025359 0.005924 diff --git a/src/codebook/newamp1_energy_q.txt b/src/codebook/newamp1_energy_q.txt new file mode 100644 index 0000000..d2653f3 --- /dev/null +++ b/src/codebook/newamp1_energy_q.txt @@ -0,0 +1,17 @@ +1 16 +10.000000 +12.500000 +15.000000 +17.500000 +20.000000 +22.500000 +25.000000 +27.500000 +30.000000 +32.500000 +35.000000 +37.500000 +40.000000 +42.500000 +45.000000 +47.500000 diff --git a/src/codebook/newamp2_energy_q.txt b/src/codebook/newamp2_energy_q.txt new file mode 100644 index 0000000..ec9f74d --- /dev/null +++ b/src/codebook/newamp2_energy_q.txt @@ -0,0 +1,9 @@ +1 8 +0.100000 +5.000000 +10.000000 +15.000000 +20.000000 +30.000000 +37.500000 +42.500000 diff --git a/src/codebook/train_120_1.txt b/src/codebook/train_120_1.txt new file mode 100644 index 0000000..a98133c --- /dev/null +++ b/src/codebook/train_120_1.txt @@ -0,0 +1,513 @@ +20 512 + 6.7484 7.6125 6.0332 5.2789 1.5239 2.2353 2.0748 0.5289 0.8748 2.5432 -2.2863 -3.1910 -0.0434 -1.9857 -3.3605 0.7069 -5.9493 -0.5672 -0.6798 -18.0977 + 4.0503 3.9086 2.9225 2.3773 0.6580 -0.4363 -0.0644 2.4063 1.3428 2.4542 0.5275 0.9820 -1.3277 0.6811 0.0273 -0.1838 -0.0222 -0.6478 -2.2405 -17.4152 + 13.3284 12.1212 10.6531 9.8214 11.0388 15.8120 19.7110 16.5488 16.1068 15.8771 7.2553 4.2486 -6.0036 -12.5476 -20.1299 -28.2803 -25.3971 -21.7907 -11.5143 -26.8590 + 21.4405 18.4703 17.8693 14.9679 11.2994 6.4906 4.7717 0.1959 -0.8801 1.8991 1.9793 -4.9755 -7.7852 -10.0492 -8.5295 -8.2893 -4.1203 -12.4072 -16.1660 -26.1817 + 4.0023 3.8279 1.2681 1.0053 0.7002 -0.3886 3.4465 -1.4055 -6.7846 -2.3345 -2.9050 -0.1344 3.4192 2.4319 10.0096 3.9279 0.6807 0.3220 -3.8325 -17.2565 + 29.8276 21.1543 12.7853 13.0246 5.8164 3.7469 2.4198 0.1510 -4.5449 5.2695 11.7552 -4.8954 -6.0291 -8.9780 4.9650 -10.6540 -12.5363 -21.6056 -18.2985 -23.3739 + 4.8610 5.1207 6.5382 9.8638 15.4754 18.8192 14.8018 10.7685 12.4401 14.0392 2.9200 -3.7283 -9.7213 -13.5526 -16.0730 -13.7571 -5.4267 -12.2552 -14.5143 -26.6193 + 3.0429 3.0335 4.4785 5.6483 5.3476 5.7519 3.5651 4.9007 4.9672 -0.7330 -0.6458 6.5888 5.2957 -2.0068 -6.0189 -7.2145 2.5545 -5.8358 -7.4936 -25.2263 + 5.9384 7.0203 10.7433 15.2477 14.8437 8.0949 3.1384 -0.0014 -0.1756 2.1601 8.1029 0.4123 -6.8062 -9.6038 -6.2302 0.4409 -8.9878 -10.1638 -4.6903 -29.4840 + 7.1880 6.1134 5.4021 10.5427 17.0718 14.5658 6.8632 2.2257 0.4412 3.8257 9.0388 -1.1212 -6.7639 -9.2412 -8.6575 -2.9951 -8.6659 -9.4220 -6.6046 -29.8068 + 9.8859 4.3889 3.6253 3.2033 4.6563 4.5967 1.8747 -0.0037 3.2114 3.8854 3.1501 0.8523 -5.2830 -8.4603 -5.1159 -3.9157 6.9800 -1.5270 -6.0421 -19.9624 + 7.6208 10.1888 12.8648 16.4838 14.9269 7.8064 3.5594 -2.8048 -3.6303 -10.8596 -7.1254 -2.8890 5.4295 -2.5015 -5.5359 -2.9934 -6.5980 -7.1493 -4.9387 -21.8545 + 12.7227 17.1387 21.7055 19.8068 12.1832 5.8645 -2.4103 -3.8445 -5.5496 -5.5608 -0.2010 5.1772 -1.4666 -6.6602 -1.2573 -3.1593 -10.7925 -14.3751 -12.0047 -27.3167 + 7.4465 7.8765 9.4912 12.2074 12.1631 11.4780 7.6294 2.6922 0.1566 -2.1903 -1.5699 -1.8031 2.2555 -1.5591 -7.9267 -10.3612 -5.5432 -5.5673 -10.0797 -26.7960 + 0.3749 1.9725 2.6868 6.3326 8.9635 12.8113 13.6523 14.0916 11.2443 1.2914 -1.9954 -2.9443 -4.6718 -4.3132 -3.4613 -8.1105 -7.9033 -7.0956 -6.5898 -26.3361 + 10.3072 10.6822 8.8253 4.8992 4.3627 8.8165 9.7824 3.7264 0.4265 0.6068 3.0934 2.9121 -0.6717 -5.8045 -1.7344 -9.1008 -8.8333 -6.0633 -11.2321 -25.0005 + 10.6992 14.8060 18.9665 22.4210 21.8710 15.6647 10.6160 12.1366 14.0479 7.0707 -3.8212 -12.1770 -16.1111 -19.3389 -18.8315 -17.5346 -7.9646 -9.4592 -17.5614 -25.5000 + 9.9592 11.7001 14.2704 14.1434 7.3322 4.2766 -0.0567 -2.7113 -5.7358 -6.7390 -5.9067 -0.1939 4.8177 -3.9810 -7.2528 -3.2695 -1.5685 -7.8940 -6.3355 -14.8548 + 17.6322 19.5153 22.4362 16.2943 10.4698 2.5066 -2.3936 -5.3770 -7.9766 -9.8004 -12.9640 -13.1015 -9.8076 -5.7565 1.8732 0.4843 3.3621 -1.0048 -4.8377 -21.5543 + 9.9491 17.4987 23.2236 17.3142 6.8072 6.6873 1.9421 1.1415 2.9409 6.8470 2.4633 -7.2869 -8.9792 -3.3155 -0.1918 -11.8037 -18.6298 -12.6475 -9.7620 -24.1984 + 9.2080 9.9971 12.5064 20.0609 20.9647 10.9574 7.4360 4.4943 4.8454 11.0636 1.8176 -7.3479 -12.5617 -15.3912 -11.5022 -5.0309 -14.7556 -15.4294 -6.4150 -24.9176 + 7.7917 9.3291 11.8185 15.3501 19.3235 20.6869 19.8160 14.6028 10.2893 9.9407 9.8534 3.6182 2.7695 -5.2735 -19.7962 -24.6834 -27.0316 -25.6805 -24.9149 -27.8096 + 0.1108 3.1261 6.8163 12.4528 16.9192 10.8153 2.6109 -0.2652 -4.8897 -6.1056 -7.3218 -4.4594 4.3004 3.7728 -2.8276 -0.0458 1.0104 -6.4884 -6.4860 -23.0456 + 12.9442 10.3059 3.1303 2.1611 1.4795 2.7580 6.9527 8.4487 7.1533 1.4465 -0.9113 -3.9971 -4.9090 -5.3881 -3.1011 -0.4922 -1.1819 -5.3279 -8.2374 -23.2345 + 25.0945 17.8572 8.9500 2.7040 0.2187 1.4115 0.7421 0.5831 -0.3096 0.9334 -2.9667 -4.0352 -2.8473 -4.8594 -4.5863 -4.4311 -2.8466 -4.4808 -5.1669 -21.9645 + 14.6124 19.7986 21.2066 15.7620 8.7509 3.7653 -0.5239 -3.8894 -6.8522 -8.4979 -8.1879 -5.8438 0.5485 6.7415 0.4745 2.6750 -10.3676 -15.0245 -12.2357 -22.9125 + 11.9959 12.9771 17.1177 21.5310 16.8892 10.8731 9.7276 8.5106 12.9569 2.2512 -6.9324 -13.2124 -16.5380 -18.0518 -16.6252 -9.7038 -6.1220 -8.7542 -6.8998 -21.9905 + 12.8107 14.5670 13.4289 7.1693 3.4265 3.1397 2.5457 -1.2214 -0.3887 2.4506 3.9777 0.9056 -6.9195 -7.3811 -3.2619 -0.3714 2.6266 -6.3479 -12.2319 -28.9244 + 2.6437 2.2575 3.8643 6.0625 10.9091 16.9554 21.5045 12.7233 9.3579 9.4439 12.8585 4.4528 -2.4283 -4.7330 -2.2502 -11.3098 -18.5273 -22.4570 -23.1304 -28.1976 + 10.5757 10.9392 14.0126 18.2101 14.3745 8.6896 4.9080 1.0411 2.3482 7.2221 4.5440 -5.0353 -11.2852 -13.0882 -10.9600 -3.0288 -9.5005 -10.2217 -6.6739 -27.0717 + 14.6172 4.5412 13.3824 9.2916 19.2818 13.6563 14.4089 10.1260 1.6926 3.9361 -0.6461 -5.1244 -9.3641 -13.9807 -11.4128 -11.8597 -0.8237 -20.3149 -12.3561 -19.0515 + 4.0591 4.6177 7.7662 6.8737 9.4052 10.1099 12.8714 8.1202 6.6015 7.9224 1.7548 -1.6325 -4.8379 -5.0955 -2.1947 -8.4220 -11.8799 -10.7107 -12.0066 -23.3222 + -3.3385 -1.1297 3.0554 4.9769 3.8625 8.6998 8.0974 -0.5519 -1.0699 -5.4771 -4.7235 -4.8192 7.1236 -0.4895 -2.0107 0.1838 3.5180 3.2804 3.1904 -22.3779 + 10.9362 15.2821 18.1297 12.4682 2.6895 -1.2007 -1.7676 -6.1681 -6.0524 -5.8064 -3.1002 4.3237 2.0263 -5.5109 1.0348 -0.4760 -4.6274 1.4107 -7.5329 -26.0586 + 27.0648 22.2199 14.8908 7.7845 2.8689 -0.0364 0.0683 -0.1186 -1.6323 -2.4217 -4.0112 -2.3476 -5.4442 -5.8509 -6.4386 -6.2558 -6.7739 -5.9348 -7.0916 -20.5398 + 4.3156 -0.2499 1.1824 2.8225 8.1910 5.2798 2.2597 -3.0043 -5.0382 -5.2727 -4.0013 2.6952 8.1245 -1.1517 -1.8957 2.4603 3.0897 -1.0817 -0.1353 -18.5898 + 17.5894 22.9315 26.4862 22.1620 13.7474 13.5177 15.2005 16.3224 4.9523 -4.2419 -8.3503 -12.4022 -12.6698 -6.7159 -16.2122 -20.1926 -20.5969 -16.0749 -12.5173 -22.9353 + 6.5871 8.0443 8.4339 11.3345 17.3665 13.4455 6.9211 2.0512 -0.7348 -1.2898 1.0076 8.4862 -0.3360 -6.4714 -5.9432 -4.1602 -12.1155 -12.4645 -10.9269 -29.2355 + 19.0066 20.3716 18.0417 9.4806 4.8058 0.3359 -4.1091 -8.1930 -8.9962 -9.7495 -13.2924 -8.6275 -4.9424 6.0502 -6.8142 -7.1166 -3.0922 8.8016 5.6937 -17.6547 + 4.7309 -6.5949 4.9914 7.3489 9.0188 4.1567 7.1949 0.4917 5.0462 7.5219 1.5314 -15.3803 5.3130 -0.0983 -7.0327 -1.2671 -0.4646 -1.6442 -0.7446 -24.1190 + 13.7639 5.1424 5.3193 3.8945 3.9574 1.4034 0.1896 -4.0608 -2.5264 -4.9434 2.8459 2.6311 -2.7915 -3.7842 -0.3711 0.5487 5.3766 -4.3496 -3.2801 -18.9656 + 12.6752 14.7799 16.2157 18.6944 14.1390 7.0937 3.8206 -2.4778 -3.9766 -4.4531 -2.8711 3.2148 0.6800 -9.1748 -10.1600 -6.0557 -0.8581 -9.2828 -14.0109 -27.9924 + 15.0025 18.2042 22.4086 21.6195 14.2308 10.5772 6.7291 6.0463 11.7877 8.4162 -3.4731 -11.2708 -15.6923 -17.5613 -14.5235 -4.5248 -17.8954 -18.3529 -10.3105 -21.4173 + 2.5368 2.8687 8.7229 5.2089 8.9671 2.8847 -1.3535 -4.4273 -4.9060 -7.8939 -15.4750 -10.4797 -4.4811 6.5892 9.9939 12.9078 3.2705 1.3246 3.7883 -20.0468 + 8.5207 11.8364 16.4466 19.9166 16.0662 8.4129 4.3290 -0.8928 -3.7592 -5.4071 -4.2870 0.4615 9.9611 5.8190 1.7969 -7.7765 -17.3073 -19.5235 -17.7924 -26.8211 + 3.0595 10.0158 11.1623 5.9413 3.1988 -2.1129 0.3528 -3.0158 -2.3599 -1.3347 -1.0479 3.9189 7.8019 3.0538 -1.6139 0.8043 -4.9290 -6.9959 -7.2918 -18.6077 + 17.8476 19.4332 25.4614 19.1508 12.2748 9.4543 6.1101 3.6929 2.9336 5.5407 -9.2238 -17.0071 -20.8856 -22.9308 -21.1711 -15.0234 4.8627 2.2867 -2.1943 -20.6125 + 9.6165 8.8018 11.1694 14.6183 18.4154 13.4481 7.1580 4.1650 1.8242 0.9521 5.1356 4.0270 -5.9523 -12.0202 -14.3055 -10.5893 -2.8308 -12.2805 -13.3723 -27.9806 + 13.4166 16.7617 20.6572 22.0976 15.9129 10.6410 5.4061 3.1570 -0.7256 1.2303 5.9463 5.1273 3.4864 1.6884 -10.9215 -19.5567 -22.8693 -20.4758 -24.0420 -26.9379 + 8.0404 15.9476 21.0441 15.0820 8.2842 3.1036 -0.2419 -4.2559 -6.0751 -7.4529 -5.5847 1.5520 8.3483 3.3751 -1.0503 -10.4691 -11.9360 -5.5738 -6.8713 -25.2662 + 19.9950 20.2102 18.7443 12.7220 5.8592 3.8088 0.4504 -1.5876 -0.0425 -3.0873 5.5382 -0.1499 -5.8500 -7.9372 -6.2374 -0.2643 -15.0702 -16.9914 -9.3644 -20.7458 + -2.6024 -7.4950 -1.2522 3.5119 3.9726 3.4991 2.4457 3.2158 -0.1830 -1.7087 -7.3996 -6.8962 -5.2421 -7.5762 -9.1433 6.6126 10.5297 10.4556 18.2991 -13.0433 + 0.8317 2.2343 3.6899 5.6335 5.8479 6.4330 6.0022 5.3630 2.3387 -0.5344 -1.0716 0.6509 -0.7175 -4.0229 -6.0631 -4.7546 -1.9700 -4.6226 0.0933 -15.3616 + -9.3660 -6.9175 -4.9307 -3.1828 -1.6587 -1.4971 -0.1586 0.6208 0.5169 2.4709 4.6017 5.3127 4.5449 3.2690 3.7590 3.4511 3.8260 3.9369 4.8805 -13.4790 + -1.1830 0.5095 1.1754 2.3109 2.2722 1.3243 1.6529 -0.1799 -0.2874 -1.2863 -2.2761 -1.5668 -1.2037 -2.4367 -3.9243 -2.1186 2.3502 1.4312 9.5827 -6.1467 + 9.2349 10.7650 18.1608 20.6655 13.5769 5.4902 3.0323 -1.0259 -0.5010 1.7689 10.3810 12.0253 9.1922 -4.9615 -15.0315 -19.9651 -21.4377 -17.6800 -6.4577 -27.2328 + 10.6391 10.7983 11.4949 16.5329 19.2664 13.6129 6.1846 2.4573 -3.1501 -7.1814 -7.9387 -2.6238 4.6419 -5.9113 -9.3510 -7.0591 -3.2275 -10.2820 -10.5308 -28.3726 + 18.6364 19.3874 19.5930 14.3075 9.4402 3.6045 -1.9801 -5.5352 -9.0094 -10.9308 -12.7345 -14.0779 -10.9593 -3.8674 6.3753 9.5959 -1.4018 -7.4988 -6.1435 -16.8015 + 9.4969 11.3591 11.5468 7.8918 4.7217 3.0266 4.2145 2.2878 1.2224 5.6903 10.6919 4.2718 0.7184 -3.7583 -6.7954 -8.0558 -7.9668 -10.2861 -12.5018 -27.7759 + 1.9805 4.9512 7.0160 7.8284 8.7891 8.0863 7.7994 7.9865 8.6027 13.1944 14.7771 11.0643 2.1716 -5.7171 -10.9834 -8.7615 -16.8907 -14.3039 -17.4732 -30.1175 + 7.4683 9.4924 11.1231 14.0490 15.3387 7.9538 5.2116 -0.0275 -3.0014 0.1050 0.6547 7.9660 -2.3476 -7.0894 -4.6113 -2.0949 -15.9720 -16.2041 -7.4758 -20.5386 + 4.8388 4.2032 3.5738 6.4994 10.8701 16.7006 14.8672 6.7149 3.1448 0.6167 2.5321 7.5899 1.6456 -3.0073 -4.4465 -2.3406 -11.2907 -15.6965 -17.0827 -29.9328 + 9.8208 5.5733 3.2835 2.3197 5.4502 9.1113 10.3794 8.6442 6.0107 6.4897 4.2548 1.1709 -4.1757 -9.6942 -10.5243 -11.8609 -10.0641 -3.4488 -2.2532 -20.4873 + 5.8783 5.8851 7.6595 5.2009 5.1000 1.9820 2.2615 1.4023 -1.1079 1.1247 3.7199 2.8362 -0.5182 1.4421 1.5607 -8.4521 -3.7106 -1.6008 -5.2750 -25.3888 + 13.8298 17.3228 17.9494 18.8765 12.6415 7.5326 5.2828 1.0300 -1.0231 -5.4994 -6.6194 -2.5155 4.6895 -3.4515 -7.2113 -4.1051 -13.7542 -14.3604 -11.8611 -28.7541 + -8.8559 -3.0649 2.2249 4.9828 6.4170 6.9906 9.9342 12.0149 12.2463 14.3103 18.4345 6.3234 4.2404 -2.7341 -6.9396 -10.7644 -10.1668 -12.3674 -16.3891 -26.8371 + 10.9983 13.5279 16.2801 19.6892 16.9475 11.0028 3.9633 1.1799 -2.0078 -0.9850 2.7247 -0.1311 -6.6215 -8.5890 -4.3971 -11.9543 -15.4358 -13.3278 -4.8427 -28.0217 + 7.2013 9.1028 13.1142 19.8377 22.5360 16.6528 11.8330 10.3141 12.9885 15.8372 9.0995 8.4627 1.1838 -14.4656 -21.4397 -23.6775 -22.5547 -24.8595 -24.4974 -26.6692 + -8.4073 -6.6779 -3.9580 -1.6241 -2.1470 -2.2867 -2.2534 -3.0205 -4.5931 -2.5545 -2.1350 -1.3098 1.1053 -1.1397 1.2170 6.2234 3.6093 9.8015 23.5766 -3.4260 + 9.6955 11.4467 15.0851 15.4765 9.8267 3.5490 -0.5777 -2.7726 -5.1878 -5.7225 -4.4558 0.4969 9.2914 5.8917 6.4235 -4.2514 -11.0149 -9.4893 -13.0444 -30.6665 + 2.9943 1.4307 0.8714 2.2925 2.1145 2.9148 2.4003 1.9382 1.6662 -2.3476 -2.0877 -1.9322 3.3342 1.7171 -0.9114 3.2785 1.7852 1.4651 -1.3549 -21.5695 + 7.7138 9.3400 11.7519 14.3217 14.9762 11.0903 9.9040 9.3599 10.4611 6.3795 -3.9927 -7.6734 -12.4888 -12.1729 -5.7999 -5.5417 -9.5690 -9.5926 -7.6846 -30.7825 + 4.4498 9.2290 15.0677 17.9679 11.2745 2.6730 -0.9888 -5.6255 -7.5349 -8.4589 -8.4510 -5.5027 1.7669 4.3143 -4.8629 -2.0721 4.6797 -5.0125 -4.4213 -18.4923 + 11.1829 12.4396 12.7925 12.6901 8.0150 3.4089 1.7847 -0.2306 -2.0077 -1.0178 2.2167 -0.4542 -8.4111 -8.9029 -8.0861 -3.9439 -6.2512 -2.2635 -2.1307 -20.8306 + -0.0237 3.5900 4.5144 3.8794 5.7527 11.0182 8.9091 7.1863 7.0702 7.1782 4.7799 0.6784 -4.3508 -5.3991 -6.5953 -5.6132 -9.5378 -5.6903 -1.3834 -25.9632 + -2.7117 -1.4799 1.2116 2.3262 3.7406 3.7668 1.2697 0.2086 0.7399 -1.3479 -2.2145 -3.7982 4.9747 -0.4583 -1.7465 -0.9161 7.2119 0.8965 -0.2723 -11.4012 + 7.6123 10.5335 16.3125 23.5319 21.6117 16.3290 18.2001 16.9715 0.9425 -7.0707 -12.7338 -16.0871 -18.4761 -17.8994 -14.8763 -4.8440 -8.9433 -6.8294 -0.8772 -23.4080 + 9.1763 3.0851 4.6724 8.0499 14.6517 16.8559 10.4532 11.9797 13.2732 7.6578 -1.4245 -7.0469 -11.9925 -15.0269 -14.7577 -15.9057 -2.4494 -8.2002 -4.4694 -18.5819 + -0.3793 0.7119 0.4558 1.7011 3.1548 7.4097 8.6888 7.5902 9.1020 7.3493 9.7346 15.2626 6.8726 -0.7975 0.8553 -9.6815 -9.3426 -14.3122 -13.9791 -30.3963 + 5.2988 6.3406 1.2009 3.3308 2.0290 2.8107 1.0030 0.4513 -1.4458 3.0391 1.2595 -9.2407 1.3164 1.9175 0.7738 1.8301 0.5948 -0.9497 -2.7482 -18.8117 + 23.5623 25.0580 25.0568 22.4174 16.4713 14.4026 11.1159 5.0250 -1.0266 -8.5971 -10.1924 -9.6120 -11.8638 -13.7028 -4.2000 -6.0100 -12.7481 -18.5497 -22.5946 -24.0120 + -5.0424 -4.2120 -3.2703 -0.4028 1.8335 3.2012 2.3768 2.0802 0.6396 0.2079 0.1418 -0.1844 2.5056 -0.2078 -1.3169 -0.2911 0.8140 1.7717 5.2809 -5.9255 + 7.6330 9.9835 15.1303 18.9128 13.0001 5.9224 1.3978 -3.1674 -6.4703 -8.3713 -7.7470 -5.2412 1.6661 5.3754 0.9111 2.2634 -7.6214 -11.2828 -5.6474 -26.6470 + 15.3965 19.4488 18.3928 11.4564 4.0261 0.4604 -4.6326 -9.8409 -11.0926 -12.7123 -13.1035 -12.3357 -8.4063 1.3638 7.8807 5.5655 3.4210 0.7205 5.4867 -21.4953 + 4.0267 4.8087 7.0895 9.6094 12.6372 17.6545 19.7244 17.4364 13.7517 13.9367 6.0059 -4.5448 -9.4075 -13.3403 -13.6620 -10.1856 -10.5214 -17.1512 -19.3146 -28.5537 + 26.5287 22.7007 21.6748 17.6005 11.9372 12.6653 5.4749 -6.1299 -8.9419 -6.9620 -5.7222 -5.6209 -8.6350 -10.0876 -8.1562 -7.7238 -5.4233 -10.0839 -13.1237 -21.9717 + 3.9740 4.1572 5.7242 12.4480 17.3522 11.6512 5.2405 1.2103 0.5569 2.7329 9.6369 -0.5073 -5.1263 -2.7956 -0.7621 -3.7186 -1.7764 -8.4788 -18.8985 -32.6208 + 6.8442 11.6517 15.0164 13.0383 3.5465 0.5949 -3.0134 -7.5262 -8.2082 -8.6101 -7.2813 -1.2345 9.2720 5.1011 6.0543 -0.9163 -4.5878 3.4588 -4.8078 -28.3926 + 7.8637 4.0004 -2.9380 2.0521 2.2442 -0.4633 1.8855 1.9277 -0.6295 1.3834 1.2896 1.0703 -0.4938 1.5669 0.0079 -1.5584 -2.0070 0.9263 -0.4846 -17.6435 + 5.8623 7.6023 7.9357 8.1933 9.8252 14.3094 18.5980 17.6310 14.1029 11.3791 8.9224 4.7903 -4.5730 -11.3683 -17.8078 -14.2065 -11.2294 -16.2936 -23.1509 -30.5225 + -1.7942 -0.0063 1.9950 3.6026 3.2262 0.8396 2.3621 2.3730 0.2704 0.4107 0.3605 1.3362 -2.3048 -2.1177 -2.8566 0.0808 -2.4432 2.0828 10.0173 -17.4341 + 16.0587 21.3030 20.2092 12.2290 4.0091 1.0523 -3.6402 -8.1002 -8.5006 -10.1681 -9.7303 -7.7995 -1.2107 8.9891 5.5157 1.2399 -8.3907 -7.4334 -1.1958 -24.4366 + 15.8248 21.2415 22.3705 19.6523 12.6511 4.9800 2.0524 1.2562 -2.0002 -7.0989 -8.4866 -8.1644 -3.6111 2.9801 -6.3159 -7.3905 -2.5939 -11.1587 -18.1433 -28.0453 + 11.4701 14.8919 19.2495 17.1766 9.1256 4.6224 0.3569 -3.6692 -6.2969 -8.7664 -7.4764 -1.7487 3.4354 -4.0219 -5.5797 1.1971 -7.0079 -5.6899 -4.9140 -26.3546 + 4.0502 6.3561 7.7528 13.2425 22.1071 16.8285 10.8539 9.9555 11.6373 14.4871 1.0686 -6.0140 -8.7291 -9.9474 -5.2420 -14.0196 -19.6200 -16.4317 -13.2116 -25.1241 + 14.0747 12.9823 14.7396 18.3580 20.8024 21.6686 20.4893 18.2777 14.8271 4.2101 -4.6228 -5.0852 -8.9555 -9.9704 -14.4886 -22.2364 -24.8924 -24.6202 -19.9776 -25.5806 + 6.5756 6.5342 9.0959 14.5314 20.6452 22.1123 17.0555 14.5823 18.4626 9.7441 0.1482 -4.4759 -4.9624 -0.2271 -12.9306 -21.6336 -23.8195 -22.7039 -21.8165 -26.9179 + -2.4130 -0.2375 2.8918 5.5011 6.7427 5.7418 5.0778 5.1858 4.3188 3.4462 4.3416 1.8899 2.3449 -0.9372 -1.2877 -2.8414 -4.0969 -5.4193 -7.2573 -22.9920 + 18.6934 11.3904 9.2311 9.3832 5.4199 3.6295 -0.1793 0.6487 -3.5589 -4.0062 -6.2031 0.6797 0.8497 -5.8255 -3.0197 -0.8407 3.4120 -4.6925 -10.2551 -24.7566 + -1.1447 1.5640 1.4686 1.7604 1.7234 2.3262 4.7312 2.6246 3.8383 6.5465 3.3830 1.7225 -1.7619 -1.0275 -1.1491 1.9434 -4.9663 -2.3871 -2.8449 -18.3507 + 14.1023 13.5650 10.1510 8.7911 7.7313 7.6480 9.2651 8.0399 4.9244 6.1141 5.5459 -0.9256 -6.1550 -7.0836 -8.6484 -9.0926 -9.2649 -13.5303 -12.0852 -29.0925 + 9.8451 13.4743 16.9269 13.4623 5.8133 1.7553 -0.7487 -3.9831 -8.1249 -9.5689 -8.7611 -6.3983 -0.6612 10.9895 12.8583 0.3283 -8.6023 -10.4136 -5.9048 -22.2865 + 19.2227 18.1307 15.9732 13.2757 8.9377 4.0318 2.7371 2.4204 4.8079 5.9436 -1.6587 -5.6682 -8.2354 -8.6156 -5.7373 -5.9194 -13.5825 -11.1928 -9.7272 -25.1435 + 9.7172 12.7596 17.7880 19.5982 13.1714 6.9756 4.2961 1.3629 -0.4383 4.9630 8.7840 0.9395 -2.9094 0.8700 -9.7739 -17.6442 -19.7626 -14.0983 -10.0576 -26.5411 + 19.7847 26.9921 27.0885 20.9467 13.4352 6.9927 3.8926 5.5073 6.3950 3.6410 -3.5260 -9.9366 -12.2833 -15.4366 -15.2739 -13.4030 -13.6697 -14.5223 -14.0162 -22.6082 + -4.7450 -2.3439 -1.2527 0.2681 2.5169 3.0271 3.2731 1.1854 -1.4898 -2.2085 0.9214 6.1154 5.0556 7.1405 5.3972 1.8235 -0.1874 -0.9732 -2.7856 -20.7382 + 2.7354 2.9846 4.5226 11.0075 16.9767 9.7039 5.0497 0.2367 -2.2382 -2.2319 3.3972 5.8953 -3.5572 -7.9222 -5.1006 4.0687 -6.7980 -6.9512 -1.5062 -30.2728 + 1.8923 1.9933 1.7272 1.4697 2.1029 2.7198 2.2271 0.4083 1.4890 2.3633 0.0136 -3.1335 -1.8351 -3.4645 -2.5082 0.1244 -0.6305 -0.2515 2.6670 -9.3744 + 7.3147 10.8559 16.3202 21.3322 15.5047 5.7917 2.0324 -0.5787 -3.8385 -3.1611 4.7722 6.9085 -0.8153 0.2585 0.5455 -11.9753 -19.4608 -19.4821 -11.0006 -21.3242 + -4.8271 -2.3317 -0.8263 -0.6913 0.0284 2.1785 4.8530 2.4866 0.5257 1.0973 0.9581 2.0508 -0.0850 -0.3240 -2.1544 -3.6769 8.2530 1.6818 2.7619 -11.9586 + 28.0344 21.3292 26.7011 15.9009 17.4755 11.8357 5.0600 6.5559 -4.3031 -3.5802 -8.7494 -8.4692 -7.5683 -2.5689 -10.7488 -16.5549 -18.6071 -16.7713 -13.4451 -21.5263 + 11.4465 12.5754 14.6510 12.0835 5.3520 1.6789 2.3021 -2.4719 -2.0905 -0.5169 -2.1754 -2.9241 -2.7917 2.0815 1.0635 -3.6587 -4.7680 -6.8125 -8.2348 -26.7899 + 11.1007 8.9165 11.8079 11.0313 1.9749 -0.9229 -2.4670 -6.7769 -9.1537 -10.4373 -8.8596 -6.3617 0.2425 8.3330 2.9722 9.5504 -3.2943 -3.1680 4.4488 -18.9367 + 12.7055 18.2073 17.6143 9.1957 1.5762 -1.0952 -4.9687 -6.1290 -7.3791 -7.2053 -4.3066 3.6014 9.8467 10.7313 -1.8676 -11.4282 -13.9225 -8.1802 2.6837 -19.6797 + 0.8368 -1.7610 0.4628 2.3612 5.1160 7.7374 9.4921 4.3865 6.1712 5.6238 6.3738 5.3491 2.7348 5.4859 4.6651 -8.4273 -10.9892 -8.6750 -10.7619 -26.1822 + 12.9582 16.0251 19.0637 18.9347 12.6765 7.8161 3.8112 0.9397 6.1611 7.4639 -2.5194 -7.1391 -10.2242 -10.1934 -4.1747 -5.7525 -14.4868 -8.2946 -13.9643 -29.1013 + 29.3165 26.9707 19.9517 12.4469 7.3647 2.8794 1.4068 -2.4963 -5.4012 -4.1083 -5.2153 -6.4891 -5.9548 -6.4872 -6.6510 -6.7351 -9.9422 -8.4833 -11.8558 -20.5171 + 7.6646 7.8496 5.3460 3.4574 6.3183 1.1408 3.1494 5.1045 0.2373 1.0847 -0.4320 -0.3662 -0.3503 -0.5473 -8.1949 -0.9695 -1.7599 -3.3828 -3.0248 -22.3253 + 7.0587 8.6157 9.7452 14.4294 20.8498 17.0788 7.0614 2.4228 -0.5017 -1.0215 3.1054 5.3564 -3.4904 -7.3987 -7.4398 -7.0656 -8.8032 -12.8630 -18.8666 -28.2731 + 5.7670 -2.6937 9.6459 -0.7839 10.7523 2.7960 -2.6113 -3.2915 -6.2928 -7.6167 -12.6729 -5.4796 5.0447 13.7582 10.3050 4.5191 -1.3433 5.4917 -1.7375 -23.5567 +-11.2311 -7.9712 -5.4028 -3.3542 -3.1975 -4.2245 -3.9952 -5.3576 -5.3493 -4.8108 -5.4962 -2.9288 2.5785 4.7736 13.8058 17.8731 9.8332 14.9500 11.0220 -11.5171 + 2.8142 1.3603 4.2714 4.8975 4.3374 -3.4231 3.1881 5.0714 3.9705 6.2234 3.7268 5.2790 1.3825 -7.6582 -2.9268 2.0075 -4.0570 -5.6086 1.2855 -26.1418 + 4.9776 6.4457 7.7463 9.3687 9.5559 9.1954 6.3666 4.9237 2.1719 1.7788 1.4634 -0.3859 -6.1409 -5.3778 -2.6336 -2.5068 -8.3667 -7.0441 -11.2867 -20.2514 + 10.0472 11.9967 16.4907 19.9334 16.2325 9.2915 4.3130 0.7097 -4.0959 -8.1186 -10.5064 -10.3134 -5.2102 1.0801 -1.5982 -3.8949 1.2501 -7.5248 -12.9333 -27.1495 + 17.0433 19.1713 22.6813 17.1064 8.7516 4.3917 -0.7236 -5.3026 -7.9288 -8.3773 -7.4784 -3.7859 -2.5186 0.0200 -1.5465 0.1954 -10.7830 -12.0301 -3.0579 -25.8283 + 18.6591 22.3501 23.5831 19.0252 13.9063 13.3289 9.0463 -3.2346 1.2718 1.4619 -4.3706 -7.4089 -10.7710 -11.8151 -0.8947 -8.7094 -22.3259 -8.0672 -18.5235 -26.5118 + 3.2886 3.8514 1.5062 4.9096 3.9001 3.8964 -0.6349 -1.5534 -1.3119 -2.3130 -1.8455 -3.5666 -2.6094 3.4411 -1.0089 -3.0556 4.5250 3.3979 1.1349 -15.9520 + -5.6652 -3.8931 -1.8885 1.6299 2.3371 2.0746 2.1285 0.4372 0.0031 4.2521 5.2010 3.3227 2.8933 1.9467 2.1449 0.9405 2.1680 2.3807 -1.3113 -21.1022 + 21.7270 24.2953 23.2112 13.4917 7.3423 1.4843 -3.1924 -4.8355 -10.3896 -11.3960 -12.8133 -11.6304 -9.9774 -2.6034 3.7943 3.5260 -4.2988 -6.0579 0.3494 -22.0269 + 7.1102 6.3521 11.6650 18.7864 16.7459 8.3216 5.8454 4.3436 9.4868 7.7601 -3.1382 -10.3196 -14.1642 -15.1634 -11.6972 -1.8200 -7.1959 -8.5258 -1.8553 -22.5374 + 14.2212 17.8028 21.4842 24.9383 24.9854 22.3982 21.3770 20.9687 13.4315 0.0683 -9.1695 -13.1215 -13.8982 -14.9798 -18.1636 -20.5802 -22.0396 -23.0260 -22.3178 -24.3795 + 8.9039 9.7955 9.3225 11.7206 17.8844 21.1802 19.2262 17.3421 13.9029 7.3860 -2.6995 -8.3297 -10.1319 -8.7756 -6.0590 -8.7597 -15.4747 -24.0243 -25.5723 -26.8375 + 3.8554 4.2234 6.2441 12.5445 18.1461 14.0699 5.9992 2.7220 1.0526 2.1813 9.5825 3.3502 -4.3618 -5.0291 0.5610 -10.3142 -15.3449 -12.7063 -7.6401 -29.1358 + -8.9085 -6.1917 -3.8341 0.0473 -0.3559 -1.0455 0.4343 0.7424 0.1788 -2.4081 -1.5815 0.7755 2.7896 -0.3538 0.5914 4.7530 5.3039 5.5717 8.4610 -4.9697 + 6.0177 9.1902 12.5400 17.6650 18.0833 11.1113 3.6376 -0.9348 -2.4340 -3.3221 -2.4870 5.4750 6.1443 -3.6923 -2.5169 -0.6902 -11.0083 -16.8129 -17.3554 -28.6106 + 12.6629 16.5188 17.0120 11.3763 2.7817 -0.7077 -5.5288 -8.1972 -9.1883 -10.5072 -9.3239 -6.2042 2.0877 8.3448 2.7802 8.4635 -5.0126 -9.0230 -5.5900 -12.7449 + 26.6077 25.1133 19.7421 13.7493 7.5294 4.8418 5.8235 5.9404 3.3399 4.8147 -1.6758 -4.4299 -7.1722 -6.5470 -9.6023 -9.9251 -17.0327 -19.5694 -18.7525 -22.7953 + 9.3391 15.4719 19.7226 13.6838 5.7655 2.9423 -0.2309 -3.0447 -5.0071 -3.6430 3.6089 8.1171 -1.0555 -2.5360 2.0952 -6.4482 -11.0547 -9.9411 -11.5931 -26.1921 + 6.7164 12.9088 8.1465 2.9974 -1.5306 3.7966 4.6355 0.1956 -4.4054 2.5643 -3.5126 -0.4027 0.5107 -1.6406 0.9829 -5.6846 -0.0083 -4.8894 -3.3272 -18.0535 + 1.8584 3.5453 10.7864 10.3313 8.8364 11.3153 12.6550 8.0839 10.2072 14.1247 0.1105 4.9955 5.9811 7.9709 7.5141 -6.0319 -21.0185 -23.4977 -32.6987 -35.0693 + 13.1044 15.4062 17.5958 18.0756 11.3524 4.3670 2.6428 0.8781 0.0399 6.6751 8.2361 -2.6757 -10.1776 -9.8299 -3.1506 -9.5151 -14.3971 -6.2859 -13.5883 -28.7532 + 0.0688 2.2921 6.5965 8.3598 8.2327 8.6486 7.1471 7.1631 4.4823 3.4067 11.3001 9.5567 0.6574 -2.5849 -6.7404 -8.6614 -8.6399 -12.0189 -13.1958 -26.0705 + 9.5134 11.1944 14.6379 21.3303 20.9351 12.8622 5.9234 3.0673 0.5662 2.8569 7.4992 -0.6339 -9.8527 -12.4761 -11.2573 -4.7464 -13.5940 -18.0638 -14.8928 -24.8691 + 5.5904 5.1588 4.7053 4.3271 5.8271 9.5093 8.4110 1.6453 -2.2667 -2.6767 -1.4248 -1.1260 2.4114 -1.8009 -4.8190 -8.2201 -2.9355 -0.2567 -0.3488 -21.7105 + 0.4175 1.2148 5.1829 9.3743 9.7458 5.9476 5.0377 2.5369 -2.7391 -8.8960 -11.0818 -7.0650 -7.4393 -1.4335 10.1963 9.6385 5.0133 -4.2894 -3.8725 -17.4890 + 8.8274 9.1037 13.6965 18.9331 20.4960 15.7102 9.1227 5.5813 1.7546 1.3849 6.9672 6.4807 5.2247 4.2668 -9.8256 -18.2374 -24.2455 -24.1902 -22.7864 -28.2649 +-10.4296 -11.2348 -7.6061 -8.6646 -7.9499 -6.1250 -4.3918 -6.8877 -5.4461 -2.2579 -1.3507 2.2980 4.8244 12.7426 12.4434 14.4927 14.8125 12.9871 9.6224 -11.8790 + 8.8890 12.0408 17.2338 23.3492 22.1801 17.3250 16.4611 18.6109 12.0359 -2.1102 -7.5218 -11.7288 -11.4854 -7.6790 -11.7033 -21.2349 -23.6258 -19.3358 -7.8566 -23.8442 + -7.7648 -7.6325 -5.9874 -5.7763 -5.5038 -4.9788 -3.5524 -3.9264 -4.7269 -2.6727 -1.6911 -0.4884 1.8633 1.5449 3.1375 9.0909 11.6855 13.4220 16.9117 -2.9544 + 17.5979 21.0040 20.3690 15.7264 13.3239 13.0722 13.4678 1.7577 -6.0904 -6.9925 -8.3415 -10.6335 -9.5482 -1.5234 3.9870 -6.9271 -17.4878 -18.4739 -8.9267 -25.3608 + 6.1805 4.1462 3.5010 2.7230 3.9708 8.1302 9.4910 3.6927 2.9790 2.0598 -0.6100 -1.6298 -2.5238 -2.5441 -3.9959 -2.7189 -3.9403 -3.9477 -4.9568 -20.0067 + 7.7322 4.4707 5.2320 7.8782 9.1005 5.4418 6.0577 3.7093 0.1939 -0.2785 1.1984 -2.6011 0.6595 2.7395 -0.9452 -4.5096 -8.4529 -6.4501 -6.8768 -24.2995 + -6.4169 -3.8203 -3.3676 -1.3384 0.0068 -0.0917 -0.6540 -1.1092 -2.2062 -2.8976 -3.0409 -2.6706 2.9750 6.3064 7.4779 12.0806 5.7715 5.5715 0.9432 -13.5194 + 7.6067 9.3813 13.4849 19.9139 22.7781 18.4350 15.9140 18.9134 10.1002 -4.3291 -8.2178 -13.6741 -15.7040 -16.5313 -14.1193 -3.7115 -13.7922 -12.8183 -7.7992 -25.8309 + 4.7167 3.8923 5.7519 8.0369 12.8563 16.7380 15.0698 9.7568 7.4623 7.4165 7.7550 1.1797 -6.3964 -6.5897 -1.5093 -9.7231 -17.0341 -15.7607 -12.6623 -30.9568 + 9.6098 13.4286 18.7280 18.1791 9.8536 3.5779 1.4841 0.4639 -0.5329 2.6536 9.8742 -3.2808 -8.9269 -11.0817 -6.3122 -2.5681 -15.3236 -12.3977 -1.9946 -25.4341 + 3.8990 7.6431 13.4623 16.8504 10.0821 3.4259 -0.1709 -4.7791 -8.1809 -9.2214 -8.3021 -5.9798 2.0125 6.9915 1.4712 6.5493 -3.7836 -4.9571 1.3613 -28.3737 + 13.9079 16.7984 20.6342 24.6533 24.3507 19.3643 17.9172 18.3920 11.7020 0.0010 -10.1043 -14.9084 -18.2285 -20.4094 -21.5267 -19.7383 -13.5385 -9.5045 -16.6159 -23.1465 + 7.1797 11.3922 15.7490 19.3949 17.3819 10.7478 7.3006 6.1472 9.1598 11.0073 4.7816 -2.4892 -3.7349 -3.7521 -1.7971 -9.8976 -22.2914 -25.7550 -23.0236 -27.5010 + 5.6600 8.4600 10.4652 12.1954 14.9914 18.5645 17.0459 10.3163 4.8130 2.3220 0.5889 4.1108 1.2082 -9.3950 -13.7061 -13.1090 -10.1060 -11.3113 -21.8744 -31.2396 + -1.8886 -0.7563 0.4909 4.9127 6.9239 5.1456 6.2254 6.4299 5.1768 9.1990 13.2223 5.4194 -3.0538 -4.7242 -5.1855 -3.7939 -7.3421 -6.1816 -4.3871 -25.8328 + 11.3455 9.9507 8.1659 6.0877 1.4526 0.9704 4.7975 4.0208 -0.5941 2.5357 1.5340 -4.3306 -1.6103 -4.4373 -0.0323 -2.6725 -2.0195 -3.5278 -6.3697 -25.2666 + -0.8009 5.6194 7.0974 6.1331 7.2063 7.4038 4.5741 8.4379 4.2968 7.9137 13.0725 2.3362 0.6963 -2.4917 -4.9374 -7.2728 -8.2160 -9.6329 -14.4558 -26.9800 + 9.4449 12.4990 15.8206 17.3018 10.9373 5.5366 0.8716 -1.2105 -2.4770 -3.4484 1.0611 6.1591 -1.7466 -7.5929 -6.9295 -2.1338 -8.9361 -10.3674 -6.3554 -28.4344 + 11.5326 10.9047 16.3163 21.0845 11.9757 7.0511 0.8356 -4.9870 -6.9450 -9.2309 -9.7748 -8.2038 -2.2957 5.5139 -5.4119 -2.7410 2.4166 -7.4497 -6.0628 -24.5286 + 9.3064 9.3678 11.2235 13.9991 14.4345 11.1982 6.3282 1.4131 -2.6884 -7.1825 -11.0075 -12.3749 -9.2573 -6.0414 2.3206 4.6097 3.5670 -3.2208 -9.5445 -26.4507 + -6.7163 -6.0323 -3.7943 0.8820 3.6629 4.3198 4.7402 4.0799 4.8854 5.8718 8.3927 9.6825 10.5717 3.8917 0.9125 -1.2807 -3.7018 -5.7570 -8.2525 -26.3582 + 10.2748 11.6455 16.3809 20.1490 18.2488 12.7899 10.3972 8.0106 -0.6794 -6.4024 -9.7054 -13.5667 -14.6497 -16.1902 -6.9531 0.2117 -0.7067 -1.2331 -10.6728 -27.3488 + 13.3782 16.3500 15.3612 8.9247 3.4890 -0.7729 -2.6106 -7.5432 -8.0129 -7.6140 -7.8535 -2.4356 6.5050 -4.5887 -3.2816 5.8982 -1.3889 0.3111 0.3606 -24.4762 + 10.0811 14.1057 20.3635 24.0314 20.3690 17.0236 16.4460 19.2548 6.0111 -3.4365 -9.9143 -13.0905 -15.0150 -11.4726 -6.6405 -10.0976 -14.6658 -19.9459 -19.4800 -23.9274 + -7.1817 -5.5458 -1.6137 0.8007 1.9284 2.5116 0.3432 3.3359 0.2833 -1.3305 -2.4960 -1.6366 -2.6968 3.6695 6.8225 4.4926 6.1940 6.7541 2.2072 -16.8418 + 9.6326 11.3478 14.3982 20.7665 19.7772 12.3406 6.1933 1.0438 -1.1521 -1.5860 1.8440 7.8419 -1.5328 -9.8703 -10.1973 -2.2440 -12.0413 -18.5948 -20.6014 -27.3660 + 1.5056 1.6880 4.2152 9.5291 17.0514 16.2096 8.5432 4.2111 4.4898 11.7231 5.5770 -4.8191 -7.5020 -5.9733 -0.7664 -10.2798 -14.8967 -9.8638 -3.1062 -27.5357 + 15.2115 17.9992 21.5012 24.9136 19.1760 15.8798 16.4094 17.8040 5.9025 -3.3769 -10.4408 -15.3738 -18.5882 -19.7882 -17.7007 -14.2386 -13.9566 -13.8247 -5.8162 -21.6922 + 12.1911 17.2966 17.4896 10.6943 3.5061 -0.1018 -2.5405 -6.3143 -7.6095 -8.5828 -7.4501 -2.2275 8.4004 0.0230 -1.6734 2.8727 -8.2243 -7.2548 -0.5950 -19.8998 + -0.4264 0.0708 1.9133 6.0904 12.7810 17.8469 12.0313 4.9753 4.2790 6.9401 10.3052 0.2003 -6.7328 -10.0168 -10.0292 -2.7869 -5.6536 -9.3242 -6.0818 -26.3818 + 7.8387 12.9821 20.1116 21.8527 15.0291 10.4182 9.9996 12.5177 11.6815 -0.1048 -5.5624 -6.4577 -2.0918 -6.3498 -17.7376 -20.9015 -21.1073 -13.6752 -3.7477 -24.6953 + 18.0184 21.7405 20.2020 16.4376 12.3859 12.2417 12.1975 6.3324 -4.4281 -11.4734 -5.9353 -8.8421 -10.3280 -4.7973 3.4477 1.4017 -15.9637 -17.1346 -16.9459 -28.5571 + 8.9922 8.4069 10.2569 10.5303 10.1285 4.9362 1.8698 -0.0537 -5.3906 -5.9983 -4.6797 1.6021 -1.9697 -5.3874 -2.3336 -0.9265 -2.7071 -2.3523 -3.3933 -21.5307 + 0.1643 -2.2100 -0.9888 -3.4801 -0.5275 -1.4680 -0.5683 -1.5514 -0.4216 0.5034 -0.8521 -2.7835 0.5014 -1.2182 -0.7495 5.2974 5.8643 8.2766 6.0259 -9.8143 + 7.6720 8.0788 9.1059 14.2217 21.6149 24.6272 15.4198 12.7487 14.5686 14.3925 0.6524 -7.7122 -12.3140 -13.4374 -8.0366 -14.9387 -21.7305 -22.0625 -19.3233 -23.5474 + 2.2815 1.7578 -0.6674 1.7705 0.4755 0.4978 -1.3799 -2.1107 -2.6075 -3.5652 -2.8715 -6.8295 -1.7109 2.8096 -0.7449 2.5543 8.6739 -0.5359 6.8846 -4.6821 + 18.2027 16.9209 12.1191 7.6862 3.0545 0.5751 -1.6156 -1.2378 -3.1289 -4.2377 -5.6464 -5.0994 -5.0515 -1.2417 1.1802 1.1938 0.3821 -6.3202 -6.4152 -21.3203 + 3.5023 4.9407 6.5095 8.9494 13.2647 15.1725 11.9431 6.2423 1.1652 -1.6313 -2.9929 -1.9072 3.4422 2.8306 -3.2309 -5.3351 -2.3238 -10.7536 -17.8375 -31.9502 + 4.7778 10.3180 13.9538 16.0868 9.1380 2.9991 -0.6627 -4.2067 -5.6625 -4.9839 -1.2287 7.7334 9.3244 7.4153 -4.1228 -11.6166 -8.7569 -5.6012 -5.8002 -29.1044 + -3.8341 -1.3838 -0.9472 -0.4209 1.7906 4.2155 2.2324 4.3091 1.1357 8.4456 9.7973 6.3722 2.6068 0.3293 0.1016 -0.3203 -4.2313 -3.6986 -3.9405 -22.5593 + 7.9933 10.9520 14.6109 19.7867 15.1983 6.5296 4.9056 0.7415 -0.5271 -0.1092 6.9036 12.3792 7.7901 2.0866 -9.1117 -12.3605 -5.7793 -23.1437 -29.0076 -29.8384 + 25.8990 23.1895 19.6721 15.4616 9.3167 5.4831 6.1546 7.4477 4.2279 -1.3757 -8.0309 -11.4646 -10.4795 -7.5543 -4.2227 -6.0439 -16.4547 -16.3865 -13.0397 -21.7998 + 5.9702 6.6918 8.5551 14.7594 15.5278 10.2403 6.0423 1.7099 -0.1415 0.4245 5.8906 10.2752 2.9571 1.0304 -7.5844 -15.4930 -16.0321 -8.3602 -12.0263 -30.4370 + 0.2377 1.2490 0.9118 1.8024 3.7548 4.8963 5.1515 4.2684 0.3786 0.5058 0.4839 -0.9914 1.4073 1.1727 -2.9065 -4.4307 -6.9456 -0.2385 0.3969 -11.1044 + 4.9017 3.2442 -1.2482 -1.2472 -2.0773 -5.4371 0.3708 4.1825 12.1289 1.2950 -2.3136 -3.1723 -0.4429 -1.6571 -9.7455 6.5626 13.4075 7.0987 -2.0865 -23.7642 + 26.5958 8.4474 11.9082 11.6976 1.4010 -0.2500 3.9848 3.6429 -6.0468 2.5341 -5.2699 -11.5085 3.8103 -6.3108 -2.4679 2.1530 -6.3876 -7.1780 -8.4060 -22.3496 + 2.2962 0.8041 0.8352 6.6150 14.5461 15.0856 3.2964 0.5549 -1.6557 -2.0236 2.8955 7.5016 -1.2031 -5.6899 -4.7833 1.2942 -7.3403 -8.3771 -4.0417 -20.6100 + -3.1520 -0.4969 6.6485 7.8768 5.5605 6.5283 5.6337 4.1543 13.9779 2.7762 6.1398 -3.7070 -1.7982 -2.8944 -6.0041 -6.5265 -11.4873 -1.5122 6.0580 -27.7754 + -8.0020 -4.6131 -0.7821 3.3160 4.4465 4.7754 2.8155 1.0612 4.8060 6.0492 5.9390 3.1446 2.8568 -0.6657 -2.6961 -2.1500 -0.9756 -0.2816 -1.9847 -17.0594 + 12.4378 17.8157 22.2857 21.4926 15.3987 11.6565 8.4610 -5.9608 -14.7466 -15.8101 -21.8850 -17.3295 -13.0545 -3.3503 5.7314 1.5346 1.1396 -7.5940 -1.8366 -16.3862 + 0.8964 0.1937 0.1104 1.6479 5.6517 12.1890 10.2771 4.4234 1.0502 -0.5311 1.2594 6.8796 5.2931 -3.9156 -6.0500 -0.9098 -4.2858 -6.9837 -7.0958 -20.1002 + 19.8439 13.4280 9.6622 10.6650 8.0950 5.5066 1.7572 -1.0429 -0.8012 -2.8142 -0.4934 1.3117 0.5243 -6.1730 -8.1290 -6.3324 -1.5063 -10.0417 -9.1390 -24.3207 + -2.7279 -1.7097 -1.1534 1.6639 5.7537 6.7942 10.6044 12.5105 10.6069 10.0936 6.6639 5.7680 -0.0784 -3.9348 -2.0808 -2.5423 -7.7730 -12.2311 -11.4054 -24.8224 + 10.1275 12.1619 16.2723 20.8127 20.9740 14.8019 10.1842 6.5306 4.4543 7.4531 12.2713 6.9620 6.8204 -5.0668 -18.1362 -24.0479 -25.9037 -25.4208 -24.3890 -26.8618 + -9.9466 -6.5695 -9.8093 -1.7391 0.0580 3.2073 7.0375 2.3619 -1.1764 -5.8692 0.3050 -4.2033 11.2777 -0.3904 7.8268 9.8649 4.7504 6.9825 7.6743 -21.6424 + 14.0137 16.9699 19.0697 15.0058 7.0268 5.9083 2.9474 2.1595 3.8159 7.2602 11.3975 7.5965 1.6600 -6.7074 -13.8401 -15.7435 -16.6488 -16.4066 -16.4466 -29.0384 + 6.2399 3.2858 -0.2213 -1.4923 1.3132 3.9330 3.5221 2.8631 1.3615 -0.0790 -1.0125 -1.0737 -0.3033 -0.8480 -0.4749 -1.1495 0.1031 -0.2090 -1.3002 -14.4580 + 14.6593 20.5101 23.6344 20.8409 12.5620 6.6891 3.7103 -0.8534 -3.6042 -5.9363 -7.0110 -3.7764 1.6775 -5.6072 -12.2281 -10.8044 -4.3275 -11.1148 -14.7836 -24.2367 + 17.5445 22.4817 15.1353 12.5880 5.1049 1.9643 5.3928 -3.5987 -0.4750 11.7373 12.9388 -3.8264 -3.5752 -8.3127 9.4226 -10.0441 -20.2747 -19.0638 -21.8010 -23.3385 + 11.5639 14.1176 19.1780 24.7909 18.2344 11.0457 8.2594 6.6617 7.5852 14.1840 12.1883 7.8148 -0.4947 -16.4472 -21.5615 -22.7378 -21.8493 -21.9703 -24.9810 -25.5820 + 7.3833 6.5793 5.7205 10.2722 16.6567 15.1599 9.5922 5.5668 5.0234 9.3817 5.3741 -5.1082 -9.8091 -12.3432 -12.5495 -6.2366 -5.9929 -8.3697 -6.8581 -29.4426 + 0.3726 -5.6285 -3.2253 2.1557 3.8332 12.1538 14.6059 12.3634 15.7294 17.0679 4.8054 -1.6834 -7.5585 -11.9417 -12.8749 -9.7037 -1.2933 -5.8852 -6.0304 -17.2623 + 12.4589 17.5375 23.1698 18.7129 9.0574 6.8369 3.3366 -0.7668 -3.5028 -5.8079 -2.0422 3.5413 -5.4920 -15.4559 -14.9601 -7.1860 -2.1139 -10.3945 -4.5301 -22.3991 + 7.7831 5.9803 3.3957 1.1363 0.6624 -0.3876 -1.2270 0.5350 0.3563 5.2276 9.1991 8.9238 2.6320 -1.9335 -4.2120 -2.5342 -1.0999 -4.9168 -4.9485 -24.5720 + 12.7865 11.7808 12.0132 12.7418 11.7725 11.2618 10.9064 7.0094 3.3808 -2.3233 -4.5714 -6.7413 -8.0255 -8.7048 -10.9950 -7.0616 -9.3710 -7.6597 -4.9100 -23.2897 + 7.4583 10.3954 16.3813 20.3810 16.5656 9.1371 4.5296 4.0559 6.8658 9.8043 0.1187 -6.6202 -8.4161 -2.4957 -9.4787 -16.3418 -17.6122 -13.1639 -7.5007 -24.0638 + 10.5778 12.5102 15.4500 16.2510 14.1076 12.4513 11.9259 10.4537 6.3771 1.6824 -3.8825 -5.5239 -8.8633 -8.0708 -4.6460 -3.2386 -13.9943 -17.4761 -15.8823 -30.2093 + 16.5450 21.4563 20.0130 10.5420 0.7521 -0.1817 -5.7313 -0.2690 -4.1817 -0.5968 6.2079 4.1626 -0.4622 5.1095 -10.2058 -16.0783 -19.9597 -11.6630 4.3789 -19.8380 + 0.6538 1.9228 2.2930 5.2351 12.5744 11.0394 7.4850 0.8228 -3.4564 -5.0324 -2.9456 4.4755 9.6050 1.6136 0.0025 -0.9954 -6.7769 -7.8860 -2.9330 -27.6973 + 14.1315 17.7109 22.9482 25.5022 19.8506 12.4355 10.8121 14.0608 12.2635 -2.6541 -11.3457 -15.5204 -18.0730 -18.7390 -15.7720 -7.2576 -9.9721 -9.7355 -17.1060 -23.5400 + -5.7314 -4.0590 1.0581 0.9805 1.3616 2.7093 6.3692 11.6381 12.0180 9.1818 6.8001 1.9409 3.0785 -2.5335 -5.7990 -0.6774 0.8325 -4.7436 -7.1073 -27.3175 + -1.0640 0.7851 2.7160 6.1021 12.1198 15.4431 10.3026 4.0089 1.9648 -0.0384 2.4993 9.2599 1.9572 -4.2838 -3.1953 -1.1928 -7.8283 -8.5999 -10.0789 -30.8773 + -5.6296 -4.3307 -2.3209 -0.8933 0.2894 -1.9304 -2.0575 -2.7780 -6.2185 -5.9192 -6.6197 -5.5076 1.7000 -2.2417 6.7340 9.7221 5.4135 15.4230 16.2356 -9.0706 + 21.8983 23.2393 21.5176 17.3026 15.6381 10.7095 -4.6739 -9.4131 -7.3736 -9.6360 -10.3893 -7.6173 -3.6940 2.4229 12.3234 -14.8401 -14.2133 -12.8790 -4.4302 -25.8921 + 11.8056 15.6560 20.2939 16.8416 9.1858 2.5617 2.6711 -1.0207 -1.4500 -0.2437 6.6714 6.5193 -0.4136 -1.1308 -3.7531 -13.8441 -14.3531 -10.4897 -18.0817 -27.4259 + 55.7273 39.9360 26.2526 15.0127 6.4718 0.7391 -2.3157 -3.1939 -2.9475 -3.3569 -5.3235 -7.9446 -10.6626 -13.1662 -14.2100 -14.4691 -14.4121 -13.8376 -15.6433 -22.6564 + 3.7665 2.9173 4.2496 1.8470 7.9023 14.8241 11.0448 3.4540 2.7173 -3.8368 2.5626 4.5604 2.9217 -9.5401 -8.3622 -8.8234 -1.4224 -0.0449 -2.7094 -28.0285 + -9.3983 -8.0419 -4.4832 1.9754 -0.3749 4.6985 6.4445 3.4462 1.2139 4.1530 -6.0488 0.4383 7.0647 3.8491 2.7818 -2.6890 2.0052 6.3893 4.3086 -17.7324 + 10.6303 13.7716 17.1718 20.1678 12.2486 3.3600 2.4058 -2.5934 -4.8765 -6.0115 -4.6562 -0.7932 8.0003 -2.2840 -3.8243 0.1863 -9.1648 -14.9839 -14.0940 -24.6607 + 16.6586 21.6444 20.8223 12.8954 8.1955 4.1214 1.5648 -2.8573 -5.5724 -6.5555 -5.8004 -2.3591 4.8330 -0.2831 0.7092 -9.8961 -15.4807 -12.0228 -6.1807 -24.4365 + 6.2715 7.1856 9.0377 12.3924 19.0793 22.2584 18.7678 12.6682 9.6569 13.2645 2.9549 -2.9501 -4.4734 -4.2440 -12.7065 -19.5653 -21.3156 -21.7041 -19.8037 -26.7746 + 6.6118 7.9766 9.5899 16.7112 22.8331 15.9736 8.1328 4.9522 3.0471 7.2666 11.8402 -1.4154 -4.2808 -5.2523 -8.9476 -17.0691 -18.3281 -12.6216 -21.0003 -26.0198 + 17.3127 17.4868 17.7344 12.4834 5.8856 4.6009 1.0730 -2.7678 -2.0723 -0.4628 -3.7999 -5.8370 -8.6148 -7.6108 -6.5104 -2.5688 -1.6184 -6.1466 -7.5013 -21.0659 + 3.4054 5.0769 7.0766 9.8006 20.0250 22.5645 11.5478 6.2329 4.4723 6.4844 10.6573 0.2331 -6.2477 -11.0870 -10.3507 -4.2484 -15.1989 -19.0756 -16.4193 -24.9492 + 4.7627 -2.1833 -2.2828 -3.7716 2.8453 7.5100 11.3439 6.1880 0.3611 -1.2837 -10.2990 -7.9318 -4.0985 1.3582 6.4088 6.3304 9.4372 -0.3781 -7.0962 -17.2205 + 0.0639 1.7461 3.2578 7.1373 14.2936 21.0383 16.8137 10.1108 14.3040 14.1399 0.3676 -6.3231 -10.5295 -12.7919 -9.1838 -2.4821 -12.1068 -13.6518 -9.1740 -27.0298 + 6.2012 6.2177 8.6617 15.7008 20.0807 16.3263 9.7644 7.6670 11.6809 8.6315 -2.6559 -7.4948 -10.0457 -10.1131 -6.9875 -12.9972 -15.7760 -10.0148 -6.4425 -28.4048 + 8.4071 5.8192 3.5662 1.9627 2.4472 1.8597 -0.7370 2.3814 0.1779 1.4958 2.9385 -6.0143 -2.3152 0.3049 -1.7145 0.7158 -1.3399 -5.1439 2.0438 -16.8555 + 7.4409 3.3788 6.5115 14.5248 13.0646 4.0268 -1.1894 -5.0999 -7.6910 -8.4282 -7.9356 -3.3516 6.9774 0.9806 -1.3988 5.5785 -3.1694 -5.2282 1.6484 -20.6401 + 11.6728 5.2904 7.2713 8.1521 8.6202 4.8390 1.9077 -2.7604 -4.5028 -8.9428 -12.4662 -11.0383 -4.7642 4.2903 3.3702 1.0547 5.8752 0.7203 -0.1952 -18.3942 + 1.7662 2.1132 0.6823 0.5069 -0.7694 -0.5730 -0.6749 0.4539 -2.3850 -0.8937 3.2905 1.9366 4.8907 8.8910 3.4773 1.6832 -0.3850 -1.0325 -5.4486 -17.5299 + 11.1327 8.1369 5.9398 7.2387 9.0755 13.7563 15.6715 10.9671 4.3603 6.5521 8.2784 8.2998 -3.5109 -8.8874 -13.5723 -11.9565 -11.2912 -14.9059 -15.3573 -29.9274 + 17.2359 18.8517 18.1626 16.5245 13.3466 10.8703 8.4673 4.7337 2.6350 0.0183 1.1954 4.7388 -2.9359 -6.0731 -7.4347 -16.3769 -19.9350 -20.0072 -15.2078 -28.8095 + 15.9881 16.1253 11.9372 8.7157 5.3883 4.3873 5.5095 5.6589 0.5361 -1.1208 -4.8170 -4.8077 -4.2337 -3.8897 -5.7866 -5.1486 -6.6937 -4.6271 -8.1104 -25.0113 + 10.5287 10.4645 11.0189 12.4921 10.2092 2.1803 0.6775 -1.9607 -7.8737 -8.5232 -10.8456 -10.0601 -9.5234 -5.7091 4.1283 1.9979 4.9082 2.3842 -1.6831 -14.8109 + 6.8712 7.1195 7.8478 9.0102 7.5469 4.9121 6.0618 3.0705 0.6628 1.7728 2.7140 6.3541 3.1029 -4.2377 -6.3687 -2.2545 -6.3865 -11.4164 -9.6711 -26.7119 + 16.6601 22.0460 20.3084 13.4923 8.0021 8.7024 10.1260 10.4026 4.1888 -3.7328 -6.1710 -10.8693 -16.0494 -7.8483 0.2833 3.3381 -13.0116 -16.9474 -14.2501 -28.6704 + -1.6472 -1.5329 -0.7265 -0.8590 1.5500 3.3445 6.0600 5.7678 2.9402 4.2316 1.8384 -2.4116 1.7488 -1.1846 0.2843 -0.4495 1.5215 -2.2191 -1.2847 -16.9723 + 5.4499 9.2168 13.6525 18.6245 21.2266 16.3225 10.2029 13.7648 16.3433 7.8345 -0.8506 -3.0654 0.8282 -4.7895 -14.3191 -13.6263 -16.5382 -25.7242 -26.3799 -28.1733 + 5.4928 7.2730 11.4735 16.9546 13.9651 4.9178 1.4991 -1.5005 -3.3689 -4.2367 1.4622 8.4912 0.6337 -0.2593 0.3732 -7.8143 -10.1871 -7.5615 -7.0778 -30.5301 + 6.6781 5.8903 6.7632 9.1810 8.8397 9.7239 8.7155 7.7970 6.3227 3.4228 0.2514 0.1110 -1.6716 -5.4364 -5.9387 -8.2352 -7.5149 -7.0855 -8.8552 -28.9591 + 11.8209 17.4970 19.5821 14.6674 8.7810 10.5929 17.1599 11.1304 -1.5934 -2.4291 -7.1040 -7.2023 -9.3009 -11.7782 -8.5498 -11.3872 -9.7560 -0.1211 -12.0128 -29.9970 + 10.1575 12.1948 14.9933 16.4447 14.1842 8.2787 4.1829 1.5996 -0.4007 2.6686 4.5920 3.8070 -0.5362 -2.8498 -6.0317 -8.0974 -11.2561 -15.9690 -16.7096 -31.2528 + 17.3728 16.5602 12.1580 2.2953 -0.7338 -2.2088 -3.0060 -3.4950 -5.7703 -1.8968 -4.1417 -2.2550 -0.4691 -0.6536 -2.4783 -1.3584 1.1130 -1.5486 -2.1800 -17.3041 + 10.9509 14.6912 20.9171 20.7445 13.3882 9.0276 8.4810 10.4480 11.1634 -1.3107 -8.8976 -12.4550 -14.1419 -12.2168 -8.1653 -9.1840 -14.6536 -10.7798 -3.3490 -24.6582 + -4.2511 -4.3180 -6.4235 -4.0719 -2.3887 -3.1485 -4.2032 -3.5194 -7.5010 -5.4107 -2.3368 0.6165 -2.5480 -6.5746 5.7100 1.8165 14.8553 24.3830 15.8024 -6.4884 + 6.8815 10.8626 15.3667 14.4704 2.5878 0.6962 -3.7687 -7.2033 -9.3334 -10.5308 -9.6190 -8.2135 -3.3921 8.1225 8.7748 9.4979 -0.1825 -3.9609 2.5378 -23.5939 + 10.7457 13.4613 16.3838 18.1633 11.9764 6.2322 2.2046 -1.6815 -5.4025 -5.3261 -1.9194 5.7850 7.0183 8.8506 -7.0398 -15.8090 -17.0181 -9.4482 -9.5562 -27.6203 + 4.4895 6.7459 11.3127 18.7251 18.1351 6.5502 1.1677 -1.0341 -3.9953 -2.3382 3.5745 11.8555 2.9192 6.0596 -4.8984 -13.0118 -16.2470 -15.0252 -10.6982 -24.2871 + 10.1449 10.3471 14.7490 16.1718 16.9528 11.3815 6.8749 1.4265 -2.7864 -6.1956 -8.0139 -7.8556 -2.8591 4.0596 5.4548 3.3633 -10.2166 -16.2406 -18.8135 -27.9450 + 9.5266 9.8619 11.6564 16.1435 22.5856 19.0228 9.5649 5.1013 3.9082 6.9523 9.4453 -4.8784 -10.6008 -16.0258 -16.6123 -14.7740 -6.6639 -13.8342 -16.3927 -23.9867 + -2.8166 -0.2578 2.8925 4.4555 5.6756 4.6914 3.4417 3.4041 1.8890 1.8575 -0.5242 1.9867 0.9536 -0.9744 -1.4010 -2.1961 -1.2827 -2.3186 -2.1481 -17.3281 + 6.5757 10.4876 15.8653 20.5177 18.3749 8.4114 4.7411 0.5009 -2.9659 -4.1461 -4.5681 -0.6566 5.8038 -2.3737 -8.5532 -6.5787 -2.8561 -13.7548 -17.8769 -26.9485 + 7.1295 8.3469 8.9916 14.7649 20.5000 15.5149 7.3359 0.6792 -1.5195 -5.0373 0.9468 7.0372 -4.0339 -9.7787 -8.9444 -0.8558 -12.0386 -13.0157 -7.1764 -28.8465 + -6.3643 -3.5600 -0.9853 1.3808 3.5164 4.4752 4.2783 4.1699 0.4058 -0.8097 -0.9913 3.1386 9.3653 -1.1057 -1.2662 0.7587 1.7985 -2.7481 1.1071 -16.5641 + 10.8441 6.1056 4.5464 11.5523 11.5304 4.8593 1.2036 0.6177 -6.5224 -11.5032 -13.3278 -7.1852 -1.6717 9.2735 6.7578 -0.9050 -7.2789 -6.0827 3.0089 -15.8228 + 2.4300 2.4475 8.1825 8.1925 2.2974 10.8311 15.5690 1.4027 0.3290 -0.4366 6.3648 1.0487 -0.9166 -8.1367 -8.1915 -9.5690 -3.4184 0.0616 -4.9205 -23.5675 + 18.5545 22.2390 21.2685 17.0100 9.6982 4.7320 4.3296 7.5541 8.1889 7.8498 0.4258 -3.7349 -6.3446 -8.3581 -11.0931 -16.2715 -16.4055 -15.8123 -17.4410 -26.3892 + 5.3049 3.9686 5.5462 12.1792 19.9309 17.0320 8.3644 7.8784 10.6383 15.3943 3.6647 -0.1421 3.0499 -3.2605 -15.9284 -20.0685 -19.5084 -15.1548 -11.4151 -27.4740 + -4.1173 -2.8993 -1.1226 2.7523 4.1168 4.2377 1.6192 1.4859 2.7141 0.4810 0.9555 -0.9423 1.2205 0.5970 0.3948 0.4670 2.1347 1.5199 1.6806 -17.2954 + 15.7137 20.9924 24.3419 24.5468 20.7453 18.1011 19.1224 15.9122 12.9399 8.1629 -8.2323 -12.3399 -17.0242 -22.3729 -23.1787 -23.2286 -17.6989 -10.8077 -20.3082 -25.3873 + -1.2634 1.8562 5.1481 8.6050 8.7868 9.5351 6.6634 3.8160 -0.1296 -4.6560 -0.5036 -0.2003 1.6621 -1.6607 -2.8913 -4.8208 0.3233 -5.1066 -6.1044 -19.0592 + 10.6986 11.8307 11.5659 12.4490 11.1880 6.9008 2.6629 3.0301 3.4569 5.3227 2.5092 -1.0853 -3.8118 -7.0840 -4.9747 -7.3629 -11.0099 -5.9887 -11.0008 -29.2965 + 13.6712 17.1821 19.2431 13.3261 5.9589 0.4984 0.3670 -2.3834 -3.2315 -2.1198 4.8356 0.4745 -8.1763 -11.1278 -9.8688 -0.1733 -8.1227 -9.3563 -5.3546 -15.6426 + -5.7735 -2.5076 -1.5044 -1.1663 0.0004 2.3285 2.2748 3.5509 0.5101 -3.3403 0.8431 1.7502 3.2945 -0.4888 1.3903 4.0779 1.6571 2.3564 6.2297 -15.4829 + 9.1796 11.0931 14.7746 19.7918 17.0503 10.0451 7.8355 5.3063 5.9805 11.7545 10.2992 6.2216 2.6489 -6.8542 -15.2068 -16.6927 -14.0990 -23.4163 -26.3767 -29.3354 + 4.4691 6.3690 7.7808 12.8470 20.5705 17.7665 9.4381 6.2778 2.4431 5.0549 9.9596 3.2883 -2.2059 2.0400 -4.0438 -15.0151 -19.7303 -18.2469 -20.2388 -28.8235 + 25.3208 24.3974 22.6154 19.5733 14.8131 10.5701 9.4361 4.3748 -1.5593 -4.3511 -14.7283 -17.6258 -0.9520 -8.5196 -7.3624 -3.2510 -9.9332 -17.3271 -21.4343 -24.0570 + 22.3042 16.1278 12.0077 14.7975 10.7206 8.3648 8.0610 10.1267 7.5498 1.8723 -3.9201 -8.2481 -10.1623 -11.3760 -12.7367 -5.0050 -3.3744 -11.9178 -17.4700 -27.7220 + 4.0018 3.5852 3.3315 5.3461 4.3656 2.8461 -0.0206 -2.5696 0.1895 5.1002 3.3534 0.2158 1.3297 -0.9671 -0.5937 -1.9855 -1.7054 -1.7064 -4.2453 -19.8713 + -0.1820 0.3377 2.3741 5.1705 4.8793 2.2995 4.3309 2.2662 0.4173 -0.8843 6.0098 9.0178 2.9640 -0.8977 -1.5385 -6.1656 -4.1289 -4.7989 -1.1105 -20.3607 + 7.6526 7.4466 4.8852 0.6442 1.5298 0.3141 2.6136 0.1768 0.3184 1.5717 0.2364 -0.4716 -4.0283 -1.7854 1.1771 -1.1242 0.5833 -0.2901 -4.6526 -16.7979 + 19.3739 25.1966 25.2676 19.4367 10.1976 2.4144 -1.1928 -4.0638 -8.7478 -10.5230 -11.0799 -12.5634 -10.0392 -5.3666 3.7592 3.3440 0.1212 -8.8586 -13.7562 -22.9202 + 9.6043 10.5410 12.3377 19.7574 26.3167 19.8022 16.1636 16.4176 17.5852 2.8061 -5.6826 -11.1198 -15.0897 -15.5002 -11.1047 -14.2676 -20.4525 -20.5783 -15.3843 -22.1521 + 12.9015 20.6704 27.9257 24.9274 19.2594 24.2150 19.1475 0.5334 -3.3152 -12.4822 -15.0498 -16.9033 -19.2802 -17.1972 -9.8015 -9.8416 -13.7988 -8.2071 -2.2124 -21.4912 + 14.4389 13.4012 16.1103 14.9288 9.7959 11.0171 12.0893 -1.4171 -9.8704 -8.5713 -15.4225 -18.6377 -16.5003 -13.9403 1.0172 8.7826 2.1557 -0.7217 -0.1613 -18.4945 + 3.2298 2.2245 4.4788 6.2407 6.6193 4.0854 3.5648 2.2977 2.4361 0.5689 -4.6553 -1.2701 -2.8888 -2.1474 -1.0212 -1.5878 -0.7381 0.5436 -4.6923 -17.2887 + 12.1886 11.0008 17.9358 24.3010 22.2969 15.0778 12.8771 17.0838 11.2261 -0.0847 -7.9648 -13.0993 -17.1559 -19.7583 -18.6302 -14.9903 -5.4184 -14.9564 -12.1370 -19.7926 + 18.1628 19.7982 21.7942 23.1496 22.2974 18.3029 13.8973 12.5987 14.0955 8.3018 -1.2018 -2.7097 -5.1243 -15.5625 -20.9814 -25.9011 -25.5502 -25.1062 -24.3739 -25.8874 + 5.1200 2.6682 2.7787 5.1220 7.7683 7.6609 0.3239 -0.5597 -2.1976 -4.2025 -2.3433 5.4581 3.3195 -4.6819 -7.7339 -5.9433 6.7709 -3.0093 -0.4617 -15.8570 + 3.1474 3.9068 4.6743 6.1980 3.9172 5.5703 3.7560 5.3815 6.4792 7.4263 4.0188 -0.9053 -2.9276 -4.2640 -3.8751 -2.5664 -3.8921 -5.7279 -7.3914 -22.9261 + 7.7606 7.9634 9.2590 13.4058 20.9130 19.2571 11.4285 9.1142 10.4227 12.6605 1.3940 -7.8667 -12.9049 -16.1586 -15.3321 -7.7158 -10.1835 -11.8246 -14.2319 -27.3607 + 9.9378 9.7046 10.1765 13.1670 9.5151 2.2155 -0.0456 0.0357 -0.3521 -1.2640 0.0667 3.9496 -0.7853 0.9935 1.7327 -2.1738 -2.4763 -8.9075 -14.5354 -30.9548 + 9.4566 14.4761 17.5184 16.5421 10.8319 4.8634 3.7958 1.0301 -0.7413 -4.7772 0.1278 10.6261 1.7256 -4.7562 -1.8151 -1.2979 -10.9708 -19.1139 -21.0656 -26.4558 + 4.1609 4.3674 5.1630 10.4393 19.9966 22.0365 15.0772 16.7404 13.2009 0.0579 -7.2967 -13.1855 -16.4671 -16.2778 -13.5417 -3.6468 -7.6575 -10.0591 -0.8708 -22.2374 + 9.2619 9.2850 10.6963 10.0411 5.3819 1.8030 1.0922 -0.3660 -0.8976 -3.1810 -0.6819 -3.8642 -8.4569 -8.9974 -5.5095 -1.9498 -5.7587 -2.8793 9.9987 -15.0177 + 16.0944 15.0736 17.4290 17.1266 16.3425 13.9152 -0.3124 -3.4633 -3.3349 -5.5676 1.0220 7.3152 5.0978 0.8308 -5.9027 -14.3898 -14.2461 -12.2320 -23.5828 -27.2154 + 2.0137 5.7764 10.2219 14.9245 16.5703 10.5235 3.0729 -1.4882 -7.2050 -6.2506 -5.1311 1.5065 6.9953 -1.4430 1.8240 -1.5831 -9.7701 -7.7954 -0.2269 -32.5358 + 0.8118 3.1428 4.1975 8.8492 17.1316 16.9999 8.6244 -0.0326 -4.9530 -5.2292 -0.1353 6.3691 -2.1837 -2.6835 3.8299 -6.3313 -4.7140 -0.2060 -11.6261 -31.8615 + 16.0656 15.8566 16.2660 14.0919 7.2745 1.1478 0.5592 -3.1884 -2.7528 -3.9872 -1.5200 -5.6031 -7.1936 -11.6082 -9.9024 -5.9648 -1.2652 -4.4434 -0.5317 -13.3008 + 6.0546 7.8172 12.5175 18.9740 18.6314 12.5099 8.6741 7.3229 9.6232 16.1584 9.3568 6.3688 5.3827 -10.1648 -19.1392 -25.0842 -25.6307 -21.0082 -12.2957 -26.0685 + 8.7645 5.7385 7.3877 9.4659 8.7034 6.7927 2.2815 1.6420 0.5587 -0.7987 1.2054 8.0228 11.5479 4.5805 -6.4932 -9.4841 -11.6576 -7.6077 -9.5897 -31.0604 + 13.5337 13.1762 15.6646 19.9549 24.3470 21.3479 19.5471 19.3675 13.3653 -0.5856 -8.6584 -13.2572 -16.9863 -17.9847 -20.7708 -15.4798 -11.0509 -15.4702 -16.1382 -23.9221 + 9.4656 10.0639 11.4433 14.6680 18.7771 15.2024 9.3195 5.1370 1.9578 0.3561 3.7670 8.6933 1.3200 -4.9956 -10.6736 -14.3320 -17.7829 -18.0592 -14.3140 -30.0137 + 1.5799 4.3053 2.3818 2.8910 -1.2059 -0.8300 -0.1903 -0.1292 1.0233 3.9206 3.9828 2.2978 3.2320 -2.5703 -2.6923 -1.3776 2.9213 0.1727 -0.5110 -19.2019 + 6.8519 4.8647 1.9844 2.2401 3.7555 1.5005 -1.3694 0.5704 2.1485 0.7600 0.6917 -1.0898 1.8295 -1.7615 0.1607 -2.4085 0.4928 -1.2003 -0.2145 -19.8066 + 26.8652 27.9313 22.2964 13.2728 4.9234 4.9750 10.5105 12.7213 4.9587 -6.5278 -2.0124 -3.4059 -5.9594 -7.3378 -10.2568 -18.1183 -18.7465 -15.1523 -18.6899 -22.2476 + 11.7015 12.5524 16.8036 20.5917 17.3325 11.6535 7.9132 3.4464 6.4909 8.4604 0.1120 -8.6770 -13.3036 -17.0534 -16.5775 -11.3553 -3.4540 -9.9071 -10.9540 -25.7760 + 20.0026 21.9415 20.1743 15.7692 9.6829 6.6171 12.1877 15.1379 6.9729 -2.6223 -11.9260 -8.0030 -5.4775 -7.9242 -14.3282 -6.4602 -11.9823 -18.5276 -14.5214 -26.7133 + 8.4727 10.3130 16.1554 22.5237 20.4885 15.1245 10.9192 10.3785 14.0959 8.6752 -2.6735 -8.1503 -8.9174 -2.4684 -9.1899 -21.2524 -22.7439 -18.1241 -17.6618 -25.9650 + 16.4001 11.0790 6.5408 3.9922 0.9638 0.6155 0.1321 -0.0033 -1.5205 -0.5347 0.0838 -0.8675 -0.2837 -1.6297 -1.6342 -2.7530 -2.7291 -3.0597 -3.9086 -20.8833 + 12.8347 13.9930 15.6832 15.4917 10.9362 11.4157 15.6476 4.3710 -10.8720 4.3584 -2.6363 -7.3238 -10.3423 -4.3725 0.4684 7.2994 -11.0045 -18.8176 -14.2499 -32.8805 + 12.3323 15.8058 21.8399 24.3008 14.4087 10.9930 7.8357 8.0265 12.8222 14.2335 5.8155 6.0731 -6.0593 -17.6762 -22.1263 -23.2555 -24.2165 -21.7123 -15.9183 -23.5226 + 5.7344 5.3389 3.8374 3.4190 2.8812 1.7219 0.1439 1.8580 -0.5349 2.0653 -5.3722 2.7017 1.0724 -0.8636 -1.4371 0.4192 -0.6553 -2.1126 -0.7370 -19.4805 + 8.7871 8.8914 10.5080 13.7939 18.1053 18.3809 13.6037 9.9123 6.2489 7.8891 6.4768 -2.8713 -8.9109 -11.1699 -11.8847 -5.8137 -11.8112 -19.3777 -21.5409 -29.2171 + 21.2487 22.5877 21.7624 19.0832 14.4498 8.3623 6.4664 3.1545 -0.2860 -1.9696 -3.9389 -1.8288 -3.7243 -9.6176 -13.7865 -15.0846 -11.3343 -12.9399 -16.9243 -25.6805 + 15.5067 16.3749 16.3110 12.8646 5.4498 2.4274 -1.0299 -3.2700 -3.2357 -0.0252 7.5399 -0.6948 -6.2588 -9.1664 -6.8883 0.7600 -11.6902 -9.9820 -1.1495 -23.8436 + 15.5548 17.3265 20.2482 21.9118 17.7825 12.4436 8.5947 8.3626 10.7582 6.8704 -2.6150 -7.1451 -11.7102 -15.2112 -16.7335 -10.8661 -12.1430 -16.7183 -19.7849 -26.9260 + 9.7348 18.6985 22.2000 9.7733 3.5414 -0.9890 -5.4561 -5.4928 -8.4760 -6.8757 -4.1569 6.8951 2.1633 -1.2892 3.0483 -7.4717 -12.0842 -7.7317 1.0735 -17.1050 + 6.6628 6.9628 9.2890 7.3292 2.0881 -0.1054 -1.5163 -4.7058 -4.4988 -5.4883 -6.5025 -2.6194 5.9468 -1.1287 -0.4851 5.3144 -1.6440 -1.6601 4.2795 -17.5182 + 11.7595 13.0074 13.6551 14.3417 13.9024 11.5890 9.9365 4.1950 -1.2916 -2.3847 -1.5414 -3.1381 -5.4213 -4.9864 0.0096 0.2286 -7.5940 -13.3606 -21.1287 -31.7780 + 16.5560 21.1528 18.2294 14.8217 11.7211 5.8948 0.1128 -5.7142 0.4819 3.4296 -7.6731 -15.2596 -14.0910 -4.3450 4.2359 -1.2610 -8.7829 -14.4366 -8.1323 -16.9402 + -9.6162 -5.8920 -0.4336 -0.0688 3.9825 0.7100 -1.9156 -3.0982 -4.8027 -4.2612 -2.6264 1.0431 5.5418 11.1806 9.5552 5.0905 3.5862 4.3463 5.8670 -18.1885 + 9.2493 12.5210 14.8487 20.3042 16.9267 10.5281 5.4085 -1.4152 -5.3054 -5.3250 -4.1371 2.4443 0.8006 -8.0900 -7.9314 -5.9206 -13.5877 -13.0043 -4.8031 -23.5116 + 5.9148 6.0122 7.7679 11.9347 14.3202 11.1880 5.7941 0.6362 -0.9006 -3.7616 -1.0465 6.3361 0.5894 -7.7629 -9.2778 -6.0898 -0.4740 -7.4253 -3.1780 -30.5771 + 9.0470 12.9059 18.1346 24.2631 23.6353 19.2579 20.8877 17.0355 3.1774 -5.2773 -10.0473 -14.9178 -17.5773 -16.4551 -11.9394 -9.6664 -11.9143 -7.0063 -19.2353 -24.3080 + 11.6229 13.7686 16.3077 18.9730 21.2077 21.1770 18.6717 15.5260 14.4577 10.9286 -2.0523 -9.7658 -14.1470 -18.3895 -20.2191 -19.9491 -14.1791 -17.4745 -18.9708 -27.4939 + -1.2854 -2.7859 2.0352 3.8729 2.5634 1.1875 2.9803 3.4105 0.6928 -0.5396 -6.4408 -2.1739 4.1284 -0.7168 -3.4324 -5.3047 2.1060 6.1169 6.1700 -12.5844 + 3.6719 5.1933 3.4330 2.0915 1.7090 4.9193 7.5225 11.4575 7.7921 1.1072 -1.3846 0.6720 -0.8916 -0.5196 -2.8857 -5.7085 -3.7344 -4.4707 -6.4364 -23.5377 + 5.0076 6.0603 5.6858 5.8716 4.9796 4.3510 3.2343 -0.0278 -1.6006 -3.6879 -3.6306 -0.3994 -2.7867 -5.8602 -4.3815 -4.1661 1.9375 0.0251 1.7605 -12.3723 + 1.5611 2.5677 6.9184 12.7642 12.9002 7.6294 1.5737 -0.4407 -4.6258 -3.3019 -0.3274 9.4821 8.3473 7.1185 0.9099 -4.2945 -2.0947 -5.5952 -16.6889 -34.4035 +-10.0770 -9.2074 -7.5499 -5.3349 -2.0639 0.7289 3.3239 5.0911 7.8838 10.9963 10.2149 9.1756 7.3923 3.8453 -0.9308 -1.4293 -1.7749 -2.4954 -0.6350 -17.1538 + 11.6964 15.7897 21.5631 25.0743 21.2867 19.0704 20.7015 14.1826 0.0839 -7.4606 -11.2687 -14.0743 -15.6804 -14.7951 -10.8010 -12.5161 -17.6133 -13.8075 -7.4286 -24.0031 + -6.9283 -6.6188 -5.8684 -5.5056 -3.6164 -2.5751 -3.3395 -0.3521 -3.7955 -8.6077 -6.1256 -4.7755 -5.6371 1.9017 5.4236 6.9088 17.0056 9.6477 17.8081 5.0500 + 1.0400 4.3584 5.7473 5.9965 7.1951 11.1543 16.3999 17.9219 13.7898 8.5105 6.6032 8.3888 3.1208 -8.4853 -12.1692 -10.3091 -9.4060 -16.3383 -22.0676 -31.4510 + 4.0785 3.7601 3.2477 4.5535 2.8617 2.8959 4.0341 3.3572 -6.7255 5.4042 2.4187 1.2230 0.1581 -3.0654 -1.9472 0.8423 -1.1312 1.2092 -3.2861 -23.8888 + 7.3239 6.9150 9.3764 18.0744 16.9415 9.6050 5.2932 1.9763 2.0297 6.2840 11.8379 10.9565 8.5711 -5.0433 -15.8094 -21.0356 -22.5868 -18.9436 -8.4281 -23.3379 + -1.7885 -4.8321 -3.3241 0.9574 -0.7694 -4.0018 -4.5674 -4.5260 -2.6221 4.0186 7.6808 10.9687 1.1618 6.5552 7.2914 5.9801 0.8194 -0.4241 1.0077 -19.5855 + 2.5382 2.7665 6.6332 9.6977 12.0223 5.6888 5.2502 -0.0648 0.1790 1.7261 3.6718 4.6019 -4.2546 -5.2838 -8.6175 -3.5030 -2.8900 -5.1451 -3.1562 -21.8607 + -1.7959 -1.6410 -1.3048 -1.9856 -1.1093 -0.5878 -1.7759 -0.7425 -2.7139 -3.3222 -3.9402 -1.9787 -4.1788 -1.9573 -0.0518 0.6181 5.7386 8.4544 14.2974 -0.0227 + 1.9227 3.4879 4.9261 5.1627 4.2257 4.6417 3.0455 -0.4550 -1.9330 -4.6665 -6.5225 -3.7829 -5.2713 -1.4162 3.7054 5.6573 7.0460 2.7847 -1.9201 -20.6381 + 5.4951 4.1184 5.0794 4.1307 2.3794 0.0327 -0.8237 -1.5895 -3.7505 -6.6385 -6.0766 -2.2466 -0.4080 -4.9327 -5.8400 -1.6035 0.3752 6.5602 12.3259 -6.5875 + 6.8048 2.6542 8.2117 4.3594 9.5824 4.9978 9.2805 5.4616 0.1801 2.8218 4.8979 8.0336 1.3602 -0.8584 3.0641 -6.3167 -11.4947 -13.9096 -9.3665 -29.7643 + 20.4394 23.8508 19.9523 13.4804 4.7063 -0.8810 2.3157 4.3508 4.6054 2.6117 -2.8160 -5.7052 -5.0189 -10.4846 -14.5942 -12.8055 -6.1098 -12.0585 -7.7055 -18.1337 + 9.9351 14.3502 19.5530 16.3727 7.0796 2.9949 -1.1604 -3.2246 -3.9592 -2.8637 3.6007 8.3194 1.5624 4.0080 -6.2282 -13.2960 -15.2078 -10.4525 -5.9946 -25.3891 + 5.5354 4.2644 3.4234 3.5650 3.9406 1.8276 0.2709 0.3493 -0.0020 -0.7304 1.8692 2.1692 -1.3779 -0.9234 -5.0911 0.1335 -1.1518 -0.8308 -1.2357 -16.0052 + 14.7180 8.4248 6.7389 6.9731 8.7963 12.7964 14.6589 10.3137 3.2909 -3.7235 -5.8542 -6.9864 -6.8348 -4.2701 -4.4326 -5.4747 0.7281 -9.3904 -11.2298 -29.2424 + 9.1842 9.7851 10.8472 12.9244 10.6955 6.8423 4.6037 0.7650 -2.0301 -2.7855 1.3686 5.5053 -1.4464 -8.6948 -6.8949 -4.4565 -9.3587 -11.9106 -7.0277 -17.9162 + 9.5187 11.0469 10.8992 10.5477 12.4336 17.9310 22.0092 22.1029 21.2249 17.7472 4.1368 -3.9142 -11.6583 -18.8125 -22.4708 -24.5855 -14.9292 -12.6855 -22.7109 -27.8313 + 12.0341 16.6419 15.8489 10.0396 3.3655 -1.8695 -5.2143 -9.4106 -10.9745 -12.0991 -12.0450 -11.1231 -7.2635 0.0306 12.4231 12.6061 4.1888 -1.9085 0.6831 -15.9537 + -1.3674 -0.5228 -4.0775 -3.8100 -1.0761 13.7500 19.2044 15.7231 9.5615 7.9996 6.5298 3.6199 0.5658 -1.3324 -7.5527 -6.3571 -7.0946 -6.2162 -8.1181 -29.4293 + 7.3145 11.1318 15.8219 21.2414 19.7326 13.4391 10.1286 13.1458 13.5220 4.5818 -4.9865 -10.4663 -12.4137 -8.4915 -7.5278 -14.5074 -14.9519 -10.6855 -18.9716 -27.0572 + -2.6938 -1.0116 0.5434 -0.5197 1.2510 2.7810 -3.1452 2.3461 1.3093 1.0916 0.2998 1.6109 9.4326 9.1761 -2.9635 -1.3175 -1.3459 -2.3687 -0.4622 -14.0137 + -0.6799 -0.1341 0.7366 1.5016 2.3553 1.9877 1.8684 -1.1687 -1.7388 -0.3259 3.2899 3.7096 2.8005 -0.4016 0.0798 0.8146 0.2490 -0.5574 0.0812 -14.4681 + -4.5962 -1.7335 2.2323 4.9758 4.1965 6.1120 6.3004 -0.2420 -0.4268 -3.4101 -1.9343 1.8578 -0.3352 -3.5061 -2.9167 0.7871 0.7063 -1.6356 3.3878 -9.8196 + 13.1227 13.7568 12.0750 11.2378 13.9543 15.7037 14.8582 9.5334 0.1292 -3.0889 -7.7565 -10.9896 -5.4579 -2.1373 0.1387 -11.7169 -13.0933 -7.4977 -12.3640 -30.4077 + 29.3087 22.8979 20.4744 14.9176 7.8398 2.3822 -3.7671 1.0563 -3.5131 2.1709 4.1060 -2.4865 -7.3802 -9.3667 -9.8213 -8.8247 -9.4073 -14.9259 -16.1530 -19.5079 + 8.2477 12.7093 19.4580 20.8257 15.6422 8.6762 4.5782 4.1335 5.6439 14.7051 12.4104 11.4909 -6.3291 -17.1032 -20.7835 -24.4558 -22.5241 -14.5649 -5.2278 -27.5328 + 0.7217 4.0954 5.2473 1.5270 1.7119 3.5822 -1.4614 0.8720 -1.3606 -1.4757 -0.4869 1.0336 -0.7433 2.0743 0.6152 -7.1442 0.5920 6.3583 2.8714 -18.6301 + 20.3582 21.7378 21.8475 15.5031 8.5323 5.5254 -0.6584 -4.0833 -5.5901 -5.8466 -2.2597 3.0499 -4.1864 -7.3615 -5.3521 -8.6549 -8.7165 -10.8646 -9.6599 -23.3202 + 7.9037 5.3843 2.5963 1.7924 -4.1648 1.1119 1.0025 0.4959 -1.4533 -3.0047 0.7379 1.8636 2.4329 0.9500 -0.1706 -0.3177 0.7889 1.1735 -0.4730 -18.6499 + -1.9942 -2.2404 1.0361 1.1275 2.4246 0.9687 -0.7731 -0.4350 2.7773 4.6081 2.2666 5.9874 1.4863 -4.3135 -1.0943 3.1059 -4.9201 3.6382 1.5522 -15.2082 + 15.5189 17.8940 20.2047 21.1613 16.5719 9.8830 6.2072 1.5961 -2.8649 -4.2350 -1.2109 1.6294 -0.3114 -6.2890 -6.6470 -6.6461 -16.7097 -18.4834 -19.5782 -27.6908 + 4.5707 9.9453 16.9194 16.3836 7.5074 1.7185 -1.6704 -4.6470 -7.1710 -7.5216 -6.2372 -1.4728 9.1990 4.5872 4.2446 -3.1203 -10.1462 -8.9093 -2.0237 -22.1562 + 10.2043 6.2265 8.0480 6.0822 2.9673 -0.2686 -0.4905 -3.3479 -4.2925 -4.0224 -2.6407 -3.8742 0.6899 3.7007 5.8631 8.8480 -1.0855 -6.5692 -4.1304 -21.9079 + 12.9155 18.0966 19.8262 14.0767 6.9947 1.6106 -0.8791 -6.2102 -7.3162 -10.2835 -10.9883 -8.3441 -1.6557 0.0080 -5.7847 1.4192 -5.5022 -4.2471 3.9784 -17.7147 + 5.1637 8.0679 12.5738 17.5701 14.9252 4.1592 0.9276 -0.3161 0.0005 3.6819 10.2605 3.1026 -2.7955 -2.8307 -1.1861 -9.2862 -11.7976 -5.3295 -15.7634 -31.1274 + 6.9673 6.7974 6.1367 10.4782 15.9809 13.2295 4.9742 0.4813 -4.1310 -5.6911 -5.9712 -1.2511 7.3306 2.6442 0.3224 -0.8372 -7.4799 -9.3018 -8.5882 -32.0913 + 13.1396 12.9563 12.3478 9.0857 2.3849 -0.8490 -1.4825 -4.2362 -7.2804 -7.4639 -6.8853 -6.4479 -4.2443 -8.2231 -3.9022 0.4289 0.1896 3.7001 6.9697 -10.1879 + 15.3330 18.1603 22.1112 21.6848 13.1886 10.5333 8.8464 9.6626 12.4137 13.9577 10.1420 -0.2864 -11.4409 -16.9791 -19.7494 -15.6645 -19.7643 -22.5000 -23.5283 -26.1208 + 6.8457 -6.8649 5.4271 5.2712 -1.3685 5.0072 1.5557 0.4655 -8.6121 0.8133 -3.3697 -1.5367 2.2231 2.7614 0.6905 -0.9517 3.9757 2.5271 6.8378 -21.6975 + 4.0198 5.3861 1.4690 -2.5892 -0.7717 2.5302 1.6444 0.6228 0.0646 3.2916 3.8112 -0.6089 2.1623 0.1459 0.1339 0.1325 -1.6768 -0.5331 -0.5013 -18.7335 + -7.1586 -2.6175 0.5796 4.1833 -1.3849 0.3608 -8.9238 -4.4835 -1.6026 -5.1856 -8.3891 -1.4730 9.5706 -8.3291 11.6042 11.1480 -0.2734 4.8182 12.1074 -4.5509 + 12.6166 14.8923 16.2633 17.1269 18.2744 19.2870 16.5858 10.4162 6.9131 6.3384 2.9142 -1.3754 -10.9051 -16.4865 -19.5016 -17.7616 -6.9047 -16.5161 -23.1066 -29.0706 + 10.8009 12.8094 14.6516 18.7246 16.6285 12.1161 8.7229 6.4887 7.8806 10.1330 4.1720 -4.3839 -6.8368 -8.8011 -8.4415 -14.6175 -16.9291 -13.3638 -20.2402 -29.5143 + 6.2190 6.4291 6.1608 8.0273 9.8018 9.8514 6.5431 7.0773 5.8326 5.6116 8.2150 7.4679 -0.2957 -6.5386 -7.9000 -7.1888 -10.2895 -12.2362 -14.0338 -28.7541 + 8.0266 9.6417 12.2059 15.4655 15.3945 10.4886 6.7757 2.3300 3.3664 6.5551 2.3159 -4.1967 -9.2962 -11.8145 -9.9788 0.0400 -6.7484 -6.4088 -11.3916 -32.7710 + -6.0361 -3.7035 -0.2831 1.4674 0.7756 0.3247 -0.7445 -0.5024 -2.1341 2.7813 -0.1459 -3.5635 -3.9893 -4.2930 -0.5948 5.6527 2.1314 14.0267 12.5554 -13.7247 +-14.2301 -11.8469 -5.4438 -2.2899 3.4911 0.4713 0.7187 -2.7114 -1.5588 -2.8210 -0.0887 1.5060 2.8286 9.3500 12.2742 8.0817 12.1298 7.7574 3.4239 -21.0423 + 10.2809 9.4545 10.3039 12.6386 19.4980 22.5798 19.2258 15.3342 18.1620 10.8305 -3.6184 -11.2472 -16.1533 -19.0561 -21.3742 -19.1215 -7.0133 -13.0322 -12.3255 -25.3663 + -7.1992 -4.0950 -0.4752 -0.0397 -1.2923 1.2680 2.1020 -2.0159 0.5678 -4.1475 -2.2860 1.2468 2.9160 3.7433 -3.5078 6.2645 5.1466 3.3947 11.0482 -12.6391 + -1.4558 2.6350 2.5261 -0.4261 7.9067 7.3761 10.5050 2.1413 -4.1382 -2.8818 6.9021 5.4317 4.9534 4.5363 -2.8372 -3.4508 -1.0165 -1.6706 -9.0235 -28.0132 + 5.4483 7.0338 8.8713 13.9617 19.3432 16.5740 12.5536 13.7232 15.1487 4.1979 -4.0767 -8.9863 -10.9482 -13.1722 -11.3412 -7.4945 -4.4916 -3.5707 -22.8865 -29.8879 + 12.0309 14.2862 17.8716 18.2606 13.3426 8.9006 1.3455 -9.4180 -11.1012 -15.4444 -17.4768 -17.9985 -12.4515 -5.2431 8.8612 5.5913 6.3114 -1.1018 0.2013 -16.7679 + 16.8689 16.8256 18.5632 14.4683 8.2457 2.7262 1.7491 0.4673 -4.4682 -6.2835 -4.3280 2.1966 -4.4856 -9.6447 -7.5807 2.0175 -9.6747 -9.7002 -3.6650 -24.2978 + 10.3443 9.5624 9.5859 9.3945 7.7097 5.9502 5.4955 7.0578 3.8970 1.8002 2.9026 0.8300 -0.8072 -3.4283 -8.7861 -9.4681 -7.6897 -10.0581 -8.5829 -25.7097 + 8.4589 13.9060 18.3570 21.8577 20.8363 13.5168 7.0018 3.5585 0.2984 -4.3657 -7.6435 -5.4526 -6.4991 -0.0823 -10.9834 -14.4890 -9.9873 -4.5713 -15.9935 -27.7237 + -2.7942 -1.0695 -0.1214 2.5877 1.5098 1.0893 1.5717 3.2131 6.2989 10.9335 9.8682 8.6743 4.8838 1.8707 -1.0579 -3.7852 -5.7917 -7.6708 -7.9578 -22.2525 + 25.1784 20.8581 17.0052 12.9557 7.7424 3.9815 6.0072 3.4663 -1.9041 -8.1079 -11.4077 -11.8642 -8.7727 4.7601 2.8284 -7.3135 -15.0133 -13.8178 -7.5999 -18.9821 + 13.6088 10.9215 11.1892 11.7633 13.2294 6.3264 1.9267 -1.7303 -3.3278 -4.4979 -7.2855 -3.9683 5.3311 -1.6679 -8.5378 -6.9275 2.8396 -8.2151 -5.8206 -25.1573 + 20.0774 19.5893 17.1250 15.9021 10.2327 5.8537 4.1551 8.7468 6.2824 -1.6643 -0.8142 -5.7458 -5.8553 -6.7971 -4.8129 0.1863 -14.4064 -22.1846 -19.7857 -26.0848 + 1.9579 3.5459 5.6047 9.8227 17.1510 16.9383 8.2371 2.3829 -0.9137 -2.6491 -2.1733 3.0262 6.5399 -2.8952 -2.9389 -0.9532 -9.2242 -11.9604 -12.7131 -28.7857 + 2.7147 5.0851 5.9010 8.2492 9.0379 12.5344 15.7585 7.9343 2.8699 -7.6515 -7.5935 -7.0792 -7.0329 -0.2973 -4.1153 0.8146 0.8342 -8.0293 -6.0641 -23.8708 + -1.8671 0.2021 1.1744 3.3514 3.8114 4.6535 6.4708 5.5903 4.6873 6.1200 7.1503 10.8820 10.1467 5.0564 -4.0471 -7.0223 -5.8028 -7.0328 -13.2761 -30.2485 + 14.4582 17.2732 16.2772 7.1332 0.6525 -4.4947 -7.7910 -9.8395 -12.5801 -10.7856 -8.8712 -4.2717 7.2719 0.7198 1.5521 3.5804 -2.9845 0.1717 6.3548 -13.8266 + 28.6852 25.8888 20.5479 11.1546 4.6177 1.8681 3.9247 1.2950 -2.9240 4.3050 4.3461 -5.4196 -7.8904 -10.2821 -8.2802 -13.9910 -11.2895 -12.5380 -13.7725 -20.2458 + 6.9489 8.2782 12.9177 18.1269 10.1196 2.5932 -1.2838 -5.9588 -9.0612 -10.7381 -10.6395 -8.4104 -4.0818 7.0965 0.3344 2.1418 2.2817 -3.7137 1.6102 -18.5618 + 6.2919 7.1483 7.7499 10.3266 12.7585 21.8234 21.7899 13.6697 7.2737 9.3185 13.4418 -0.1530 -6.4198 -9.4554 -7.4143 -12.4542 -21.2295 -24.5545 -24.4585 -25.4529 + 3.2078 1.1604 2.3820 7.1676 15.6309 19.6735 9.8897 7.8474 10.1305 10.4050 -1.8220 -9.0708 -12.7476 -14.2980 -11.7869 -3.2366 -4.1439 -6.6114 -0.0121 -23.7655 + 4.9484 5.9562 10.0092 16.2669 12.9260 3.9525 0.4920 -2.9838 -4.7825 -5.0706 -3.0972 4.4166 5.1484 -3.0885 -2.2935 1.8467 -6.6209 -8.5405 -3.2672 -26.2180 + 9.1190 11.7308 15.3181 20.5759 15.7183 7.6900 3.7341 -3.2723 -6.7161 -9.0437 -8.0703 -0.5930 6.4087 3.5269 3.0413 -8.4178 -14.7425 -12.7049 -6.9905 -26.3121 + 1.4852 -0.6829 -1.5690 -0.2848 5.5052 12.8631 6.4129 0.4626 -3.5500 -5.4162 -3.9006 -1.4888 7.5205 5.6490 1.1393 5.5204 -1.2344 -6.2194 -3.0728 -19.1390 + 11.9158 15.3244 18.2371 17.8689 12.9861 8.5734 2.6935 -0.4620 -0.3115 4.3187 1.8359 -6.5328 -11.3944 -12.3343 -10.2127 -3.2123 -10.7404 -11.6243 -6.0915 -20.8377 + -1.1406 4.4681 1.0243 1.7567 0.8452 1.0568 1.7113 1.4304 8.2151 0.5703 1.2053 -5.7909 -4.3638 0.9165 -4.5872 3.4354 6.9859 3.9875 -3.5121 -18.2142 + 18.8171 22.5033 16.7157 10.3549 3.9514 1.6962 -0.6346 -5.9992 -6.8816 -7.3001 -7.9076 -4.3326 4.9348 4.6458 0.9437 -3.5521 -9.3640 -2.4386 -11.4118 -24.7409 + -0.9409 0.5904 2.2794 4.9547 5.8743 8.7846 11.0088 11.1838 11.6958 14.1355 8.9116 2.5256 -1.8779 -5.6262 -5.5753 -9.1754 -9.0981 -12.4659 -11.4699 -25.7149 + 0.4141 2.8215 2.0838 3.1886 4.2216 1.7188 4.6179 2.9704 1.6545 -2.8460 -0.9511 2.6537 -1.8008 0.9825 1.2384 1.5282 -0.7271 -3.0940 -0.8090 -19.8659 + 6.0430 4.6516 4.3017 7.7179 6.7963 6.2910 8.7476 8.7592 7.7014 12.1586 8.0227 -1.3414 -6.0075 -8.1097 -6.8511 -6.6141 -5.8068 -8.7086 -9.3302 -28.4218 + 7.1395 6.4611 6.4770 6.5752 5.7360 5.6174 3.8338 -0.3402 -1.9803 -2.2319 -4.1316 -3.2411 -2.2252 4.1950 1.9636 -1.7425 0.5431 -3.5115 -6.8529 -22.2844 + 17.8843 21.4402 20.6904 15.9517 9.7051 2.5656 -1.5516 -7.4554 -8.8729 -10.2263 -8.6781 -5.1896 -0.7045 -6.7680 -8.2898 -6.9326 1.3954 -3.2208 -6.0504 -15.6928 + 10.6767 10.3544 18.1231 11.2879 6.1413 -0.3610 -2.4504 -5.1076 -4.9943 -4.9704 -2.3126 5.9757 0.9523 -4.2427 -2.5152 4.9197 -8.3019 -9.0057 0.3384 -24.5078 + 9.9161 11.8977 18.2327 24.4645 22.2618 14.5543 11.0874 11.6473 16.7269 16.7802 10.9221 4.3259 -12.8739 -20.0422 -22.5408 -24.1296 -20.9142 -22.6765 -24.3668 -25.2731 + 9.4023 7.3715 11.9062 12.5120 7.0268 13.6459 7.2747 2.8388 14.6515 22.1573 24.2647 6.5863 -1.1334 -12.1075 -18.8356 -21.0343 -18.7149 -21.3705 -23.1378 -23.3040 + 6.1154 6.8878 8.0486 2.0830 11.4555 24.4875 10.2548 8.5452 8.1934 -4.1865 11.8854 1.3485 1.9895 -14.5678 -11.0286 -3.4615 1.3428 -19.7548 -24.2069 -25.4313 + 10.3570 12.8522 17.3265 22.8368 16.6859 10.9743 8.2198 6.8557 9.3432 12.2609 5.1561 1.5410 1.3448 -11.6896 -19.8579 -22.4891 -19.3409 -16.0157 -19.9891 -26.3720 + -2.2958 -3.0198 2.5524 6.5326 5.0549 2.8939 1.6085 1.4431 -0.1701 -2.0055 1.1867 -1.3016 -2.2987 6.1240 3.0188 -0.9646 2.6135 4.0735 0.2584 -25.3041 + 3.3425 -4.9398 1.7857 0.9810 8.2974 13.8760 7.3422 4.3951 4.0317 8.9378 9.1371 -1.7588 -9.1168 -12.4667 -12.0238 -9.0772 4.3501 -0.6556 4.4305 -20.8684 + 2.6724 2.4627 -2.5441 -3.3045 -4.2917 -1.4508 1.5865 -1.0572 -2.1109 1.4870 -1.0006 3.5002 3.7107 1.3794 -1.6261 0.0378 2.0162 0.3261 3.2452 -5.0385 + 3.1268 4.8784 8.6218 13.5865 14.1019 7.2490 1.4764 0.4142 -1.4440 -0.1256 6.7242 13.6333 7.9001 5.1808 -8.7618 -15.9427 -17.5740 -13.2732 -3.9031 -25.8689 + 8.7515 17.2518 23.5164 15.7690 8.1574 4.9814 0.5026 -0.4621 -1.5217 2.4458 11.1982 12.8925 8.2107 -10.1894 -18.8969 -20.9839 -19.6436 -9.2705 -7.3159 -25.3934 + 11.7980 12.1448 14.6065 20.2682 20.5368 14.0544 8.9695 7.1447 9.3182 10.2279 -1.3945 -9.8630 -14.2310 -14.2600 -11.2940 -5.3186 -14.6453 -16.0278 -14.7441 -27.2906 + 8.3692 9.6882 12.8542 17.3005 21.1340 18.5917 11.2777 5.5517 0.5470 -2.3437 -2.3633 -0.2054 0.7833 -4.4844 -5.7547 -6.4185 -15.2118 -20.9890 -20.6002 -27.7265 + 3.2540 3.5495 5.6572 11.4443 18.6822 14.2818 7.9623 5.8581 7.6636 11.2380 10.4719 -0.3434 -0.9127 0.3323 -9.6682 -12.3368 -7.0303 -17.5040 -22.5944 -30.0053 + 10.5668 4.7765 4.8789 5.9385 13.1029 20.5979 14.5257 8.6496 2.4271 -1.1640 1.2029 9.4957 -0.0200 -12.5730 -14.8513 -9.4220 -4.4288 -12.9535 -14.3720 -26.3782 + 3.6092 2.1429 -0.2581 2.1516 6.0252 4.4742 4.3520 2.9527 3.6102 2.6901 -0.0942 2.2564 1.3309 -0.5758 -1.1090 0.1191 -0.1180 -0.1015 -5.5503 -27.9075 + 8.4206 12.6530 18.9633 23.9855 21.2540 9.7237 1.5121 -0.7361 0.7545 -1.5581 2.4158 9.9186 6.7278 3.6705 -12.4971 -19.8574 -23.2581 -23.7200 -10.9203 -27.4525 + 22.1951 16.4633 13.2055 7.4970 2.2280 -2.4528 8.7730 10.6870 4.9929 1.1178 -5.3802 -8.2471 -5.7256 -8.8078 -8.3540 1.5835 1.5054 -11.6521 -13.9564 -25.6726 + -7.9053 -6.5840 -6.0103 -4.8986 -4.2425 -4.7462 -6.7261 -8.5401 -8.6906 -8.8402 -5.6306 -0.7673 8.6501 5.0800 13.9798 11.4953 10.0314 17.4290 14.9683 -8.0522 + 11.9359 8.4098 2.8637 0.1621 4.2653 2.6990 1.2433 -1.9101 -2.5608 -4.4372 -0.7370 5.0345 2.4512 -1.2451 -4.6924 -2.0267 0.3932 -0.7445 -1.8229 -19.2813 + -1.3202 3.8184 7.4609 11.6391 16.2849 25.4929 15.8707 1.4126 12.3759 21.2527 8.1587 -3.8943 -14.7860 -10.6930 -17.9239 -16.3824 -1.7644 -13.0054 -19.3451 -24.6522 + 9.8443 9.9627 12.5201 13.7261 10.3992 6.6290 2.9281 -0.7644 -3.9695 -5.3737 -8.3704 -7.5382 -1.7207 5.7599 1.9410 -0.8146 0.5436 -5.6632 -12.2155 -27.8236 + 6.4290 4.7082 3.9317 3.1702 -1.6353 -3.6078 -6.3150 -9.1986 -10.3233 -9.8065 -5.8063 -1.3404 -0.7673 -2.2448 -1.2797 7.1795 3.2561 15.5273 14.8629 -6.7401 + 23.9506 22.1558 17.7456 14.4350 8.3329 3.1023 4.3134 8.6024 3.8015 -3.9642 -10.7800 -9.6229 -10.8860 -10.6376 -8.0083 4.7524 -6.4851 -13.7226 -12.4871 -24.5980 + 9.5760 11.4366 12.9012 14.4846 16.8425 19.5473 19.7042 15.2736 12.0272 11.0446 7.4677 1.1314 -9.0848 -18.3215 -23.8214 -23.1710 -19.9932 -10.2715 -17.3599 -29.4137 + -3.4431 -3.1613 -1.9102 -0.6935 1.3870 1.2966 -1.0892 -2.4642 -3.0407 -4.4927 -5.4209 -4.2773 -0.5358 0.4090 1.2794 5.8990 14.3402 3.7638 11.1512 -8.9972 + 15.2464 18.8014 25.3166 19.5775 11.0313 6.5896 5.6381 2.9552 5.1185 13.2540 13.6736 8.5584 -8.3365 -15.9401 -20.3756 -21.2859 -21.2275 -19.3217 -15.1325 -24.1407 + 3.1035 6.1792 5.0462 3.5926 7.0741 6.4046 9.9419 7.7684 4.2113 3.6277 6.5092 5.5900 -1.7178 -6.4492 -7.8871 -6.9582 -5.1379 -8.3058 -10.5436 -22.0490 + -0.7280 0.5704 3.9717 5.9469 6.0780 4.0770 1.2426 -1.3458 -3.2314 -4.6819 -6.2378 -5.0198 -1.2080 10.5808 2.6382 3.7712 3.8446 -1.7555 -1.1558 -17.3572 + 5.3326 5.4267 9.8240 16.2001 13.6887 6.9510 1.1917 -1.6723 -2.5788 -2.7648 2.6931 5.4843 -4.2095 -9.6143 -6.2919 3.6211 -3.8754 -6.5263 -5.2823 -27.5977 + 2.5771 3.4727 5.4467 8.8349 9.8870 12.1341 12.0826 7.7444 4.5255 0.7889 -2.0382 -4.7604 -5.7542 -4.6241 -2.4718 -4.0958 -6.2797 -4.6267 -9.5398 -23.3031 + 14.7846 16.0256 18.4400 18.7731 12.4129 9.2087 4.9463 5.2837 7.9434 9.1983 5.6775 1.0431 -7.1678 -12.3799 -13.9635 -9.4290 -13.5075 -18.2553 -21.2672 -27.7670 + 14.0860 12.6160 17.7362 22.8480 13.2766 7.4189 5.7487 1.8704 2.3287 6.7312 16.7040 13.9396 0.1199 -14.2720 -18.2397 -22.3862 -24.8172 -19.6941 -10.4326 -25.5823 + 1.2702 -1.2740 -3.7100 -0.5628 -4.5219 -4.4580 -7.7100 -8.3547 -7.0524 -3.3805 -3.0927 1.9780 6.7217 16.8392 12.2288 6.1018 4.3647 3.7046 7.0648 -16.1569 + -1.5691 -0.6625 0.8145 2.7114 4.5683 6.3808 5.3169 3.3697 3.7409 -1.1329 1.3502 1.4333 7.1092 8.0819 7.4140 -0.3489 -3.5222 -5.2023 -8.9373 -30.9159 + 8.8791 11.5486 17.4354 21.9590 18.7721 13.0614 12.3597 15.8383 7.9901 -4.7504 -11.1404 -17.0402 -20.1418 -20.5768 -16.8543 -10.2710 3.5082 1.5897 -6.0317 -26.1349 + 1.4924 2.3041 3.6995 3.9735 2.9478 1.4182 -0.1153 -0.7081 -1.6935 -4.7155 -3.8966 -1.0552 4.3924 3.5582 4.7903 3.4573 4.4498 3.7588 -4.9783 -23.0800 + 19.7104 23.5312 26.4663 21.1276 13.4352 11.0142 11.5216 12.6431 11.6620 1.8352 -2.6313 -2.1531 -10.9044 -16.4683 -19.1821 -21.4207 -21.6631 -20.6795 -14.5440 -23.3003 + -7.3825 -5.1236 -2.0803 -0.3985 -2.1515 -3.3191 -2.5398 -3.6553 -4.6673 0.2450 -1.1380 0.4163 -5.0235 -3.1123 1.6781 0.5456 9.2542 19.9831 16.2303 -7.7611 + 2.5108 2.1845 2.6268 3.2213 4.7277 4.9151 4.4068 2.5115 -1.2667 -1.0470 -0.5840 3.1980 11.3786 3.1343 -1.5396 -0.7790 -4.2909 -5.9553 -4.0558 -25.2973 + 1.3099 3.8149 5.9305 6.0290 6.2561 6.5634 6.5483 2.2558 2.8164 5.8479 6.7553 3.8567 2.7371 -0.0626 -3.8527 -5.1436 -5.5124 -7.3236 -9.2045 -29.6219 + 6.9414 7.8896 11.9174 19.4391 22.8159 17.5130 12.8967 11.7403 13.3801 0.6255 -8.6365 -13.1338 -15.0777 -14.1269 -8.2615 -12.9862 -16.1846 -10.2908 -1.8314 -24.6297 + 13.6675 18.7539 23.7644 23.5665 14.5584 8.2788 5.9566 3.8037 5.8231 9.3954 3.8096 -3.7071 -3.0809 -2.7965 -15.3910 -22.2338 -22.7083 -19.7578 -17.2327 -24.4698 + 6.8878 4.6215 4.0830 1.7534 6.3161 9.3030 9.1793 1.8539 -3.8953 -6.2684 -7.2830 -6.1167 0.8013 5.3564 -0.9241 -2.6976 1.7576 -1.1627 -4.9125 -18.6528 + 11.5366 9.1379 9.1023 13.3107 15.2931 8.4262 2.0019 -1.8545 -5.3470 -10.4980 -13.1650 -8.7617 -2.8037 6.5213 -2.9746 -1.1653 2.8950 -3.9002 -0.4074 -27.3478 + 8.1149 5.2054 4.7193 10.9119 14.2393 9.7159 2.7743 0.0628 -0.9042 2.5046 6.2675 4.5297 -1.7121 -2.7212 -6.4591 -8.2032 -12.1525 -9.7960 -4.5542 -22.5432 + 10.4270 10.1489 7.8411 6.9092 5.2675 3.1553 3.1860 0.3063 0.4719 -0.8710 -0.6868 -1.1505 -4.6137 -2.9984 -2.9661 -2.8540 -3.0302 -2.2057 -5.9823 -20.3547 + 16.5991 18.8180 20.4139 16.0812 15.2582 13.6000 9.7730 4.8200 7.2670 0.5444 -5.1929 -8.9752 -12.2178 -15.2451 -9.0857 -9.6324 -11.9042 -7.0554 -15.8485 -28.0175 + 6.9984 7.5807 9.7172 14.2935 21.1422 18.8026 13.0729 13.6068 15.6061 5.7873 -4.4176 -10.6630 -14.9625 -15.2760 -12.1485 -4.9859 -13.8661 -15.0801 -8.9505 -26.2577 + 4.8529 5.9107 5.9519 3.1046 -0.7986 -3.8000 -3.3218 -6.5949 -9.5964 -7.6925 -7.0336 -3.5031 2.4411 -0.1901 9.1699 13.0532 0.4243 10.9470 3.0406 -16.3654 + 2.3975 0.4924 3.8005 6.1460 0.9043 2.1381 -0.0106 2.9239 -11.7677 -3.8359 -3.4925 0.8716 3.4740 -2.8287 -3.8786 1.2858 6.8931 -2.1701 3.3894 -6.7326 + -3.5428 -1.3900 0.9285 2.4806 2.9675 0.7980 0.9612 0.2854 -2.0562 -1.3222 -1.9025 -0.0059 8.6474 4.6327 1.6964 0.3984 0.9512 1.7069 1.4812 -17.7159 + 17.4798 18.9995 21.9699 20.6967 14.4015 9.2408 9.2963 4.6834 -0.5765 -2.0466 -4.6870 -8.1340 -10.8400 -6.9387 -4.9129 -2.3346 -9.5282 -16.6374 -22.8620 -27.2700 + 30.2051 29.0816 22.7010 15.9702 13.2347 12.3034 7.9736 1.7110 -2.9050 -5.8220 -9.0457 -11.4933 -10.9824 -10.7128 -9.7198 -11.4470 -12.1083 -14.3720 -14.3489 -20.2236 + 4.3667 5.6948 7.6382 9.1345 7.9965 5.9946 4.8983 4.5838 1.3099 -1.1182 -2.4032 -2.5986 -0.3123 -3.8248 -3.3874 -4.6492 -2.5381 -4.1010 -4.4278 -22.2567 + 13.3799 15.9919 18.2801 18.5738 14.5051 15.0610 12.6361 1.8684 -4.4789 -7.5763 -7.3687 -5.7285 -8.7693 -10.0970 -1.0795 0.7696 -6.5956 -14.5402 -16.2583 -28.5735 + 1.2989 -0.2985 -0.1264 2.2528 6.1919 9.0850 11.5888 9.6084 6.4565 4.6999 3.8291 -3.1433 -2.0178 -5.4377 -3.5892 -2.4088 -3.4525 -6.5279 -6.8848 -21.1245 + 6.6990 6.9952 6.9900 10.6461 18.1760 23.4925 20.7738 19.3068 14.5258 4.1679 -5.0313 -10.5967 -15.7569 -18.7535 -19.3572 -18.4953 -9.1098 -8.3084 -3.5080 -22.8561 + 0.3614 -3.0919 -2.2049 0.2924 3.5194 12.3203 10.5339 6.5081 2.9888 3.7587 9.6208 6.5139 -3.3458 -8.5883 -8.7468 -4.7300 1.1707 -5.5824 -3.0982 -18.2001 + 3.6833 5.1669 7.0034 5.1138 6.2451 5.1324 2.9024 -0.2756 0.6913 0.7688 2.7471 -3.0081 -4.2841 -1.6790 0.6913 -2.2915 -1.1739 -2.5591 -2.7007 -22.1738 + 11.4726 11.0663 10.8078 10.4446 10.6033 12.3965 13.0646 7.6243 1.8855 -2.1733 -3.8981 -0.7658 2.9887 -2.4982 -10.2150 -14.2533 -12.1696 -5.4330 -8.3400 -32.6080 + -6.7179 -4.6131 -3.1636 0.0876 0.6888 1.0614 0.5541 -3.5030 -3.5922 -2.2597 -0.8136 6.0096 11.8925 2.9252 -1.1450 -0.4619 -0.0294 2.9522 6.4894 -6.3616 + 5.3482 3.7310 5.0957 3.1029 1.6780 3.1184 0.5161 -3.5018 -4.5034 -6.3519 -7.8639 -5.6580 -5.1767 -2.3928 0.1325 3.3098 7.8210 11.9881 4.4190 -14.8118 + 8.2697 5.8835 6.0215 10.4427 12.0342 7.5709 3.5443 -1.0166 -4.1313 -6.5619 -5.0660 -0.8575 7.1102 -0.6052 -4.0956 0.6756 0.8926 -4.2551 -6.4788 -29.3772 + 2.0192 3.9566 4.9448 8.0890 14.6263 15.3545 12.2775 10.3302 7.2993 12.5826 7.7803 -2.3944 -7.4949 -10.2984 -9.7837 -7.3581 -7.2692 -6.1954 -16.7366 -31.7295 + 12.8428 15.9200 16.2497 11.8540 3.8000 -1.0057 -2.5059 -6.5320 -8.3900 -9.9165 -9.6596 -6.0113 1.0447 13.8469 7.3566 -4.1906 -11.0801 -8.0052 3.2361 -18.8537 + 17.2020 18.6360 23.3502 20.5862 15.5823 12.7495 6.4445 -6.6661 -9.1710 -15.5663 -21.8272 -18.4838 -16.7082 -14.2582 2.8891 3.6115 -0.4823 -0.0577 2.5754 -20.4057 + 11.2405 16.2045 19.5245 19.0279 10.8160 4.2621 0.0074 -4.8018 -7.7494 -9.5065 -10.8518 -10.4718 -6.2617 1.5892 9.5055 4.0459 -4.2300 -9.8946 -9.4119 -23.0441 + 21.5981 16.6548 9.2131 4.2901 -2.7752 -6.0814 -5.7172 -6.8518 -5.3057 -3.6255 1.9348 7.8994 -1.3260 -8.0365 -10.6481 -6.5275 -3.0468 3.5257 5.6627 -10.8371 + 2.3529 1.9098 1.1705 -1.0129 0.2322 -2.1724 -2.7849 -0.3004 1.1108 2.9625 0.3261 -2.0946 1.0272 3.4696 1.9753 1.1513 2.4885 2.1442 0.7739 -14.7298 + -1.7003 -2.4848 -2.4346 4.7038 24.9669 27.0962 7.9463 4.7152 0.1920 -0.8991 -0.8489 9.9068 -2.4800 -9.4907 -11.9321 -1.8570 -6.2441 -11.0862 -11.2891 -16.7804 + 14.9206 17.9220 23.4494 28.4771 23.9338 22.5858 21.7793 9.3991 -3.6346 -10.2702 -14.3748 -16.3264 -19.3026 -18.4585 -17.3134 -12.2710 -10.5930 -10.9994 -7.9141 -21.0092 + 10.8472 9.9985 8.1012 5.6373 0.7372 0.0745 -0.8638 -1.7933 -2.9142 -3.0150 -2.2427 -0.7782 -2.5201 -6.2197 -5.1933 0.2777 -5.0155 0.2927 4.1108 -9.5213 + 11.2774 17.5024 20.7927 14.9512 8.8893 5.3831 1.1126 -0.5407 -1.8226 -0.7548 3.8991 14.1917 11.4189 -2.2812 -13.1711 -17.2396 -15.8893 -13.7806 -15.9376 -28.0009 + -1.8142 -1.3801 -0.2831 1.3820 1.7722 1.4623 -1.2023 -3.2113 -5.2345 -6.7523 -4.9565 -2.8637 4.0779 -2.6764 0.8821 14.4958 8.5614 4.5439 7.9060 -14.7091 + 10.5077 13.8832 19.5676 20.8530 17.7078 12.7109 11.5269 8.0218 2.2318 -5.7244 -10.1683 -12.8120 -14.9230 -10.7023 -2.0109 -8.3963 -10.2008 -5.4032 -10.7793 -25.8902 + -0.2509 1.3469 0.6421 2.6377 6.0659 4.3721 5.3520 3.9824 -1.7069 -2.0895 -5.2191 -1.5370 -3.3737 1.3384 4.0383 10.2321 1.6548 -3.2413 -5.1470 -19.0973 + 6.4953 9.3365 14.1057 20.6271 16.1168 7.3580 1.4929 -2.7587 -4.0681 -3.9748 1.3672 8.9105 -0.9200 -5.3133 0.3345 -6.1299 -12.7503 -9.3229 -13.4612 -27.4454 + 0.6201 2.4328 4.9760 9.2545 15.4025 12.2971 5.7680 5.0077 4.0499 4.2155 9.7060 7.7493 5.8274 0.3852 -5.9984 -11.5236 -7.3050 -10.3504 -20.7971 -31.7176 + -3.7294 -1.4413 -3.7524 -4.5904 -3.2743 0.7360 -3.2763 -4.8007 -0.6213 4.9030 10.4614 11.0474 17.3494 -0.7763 5.4732 0.7769 1.2498 -0.7639 -2.1070 -22.8638 + 6.7163 9.2255 12.3187 17.6924 17.6404 11.8940 7.0991 4.2645 4.3021 9.9874 5.8382 -3.4579 -6.9519 -4.8090 -2.1538 -14.0697 -18.7474 -17.3320 -11.2745 -28.1824 + 14.7156 19.4663 14.7897 6.5422 1.1728 -2.3524 -4.9286 -7.8168 -8.8525 -9.4747 -10.7274 -8.5129 -4.4565 7.8312 0.0283 4.0451 1.6338 -1.3894 4.4306 -16.1441 + 19.0680 22.0875 24.6110 22.0341 17.3706 15.8785 14.1658 11.9508 4.4308 -1.1373 -6.4223 -10.3244 -11.8572 -13.5064 -14.4779 -15.1004 -15.5216 -16.8251 -22.0101 -24.4145 + 9.0336 19.0176 24.4867 24.6758 18.9461 11.7838 7.6427 4.7750 1.2864 0.4513 1.8155 -1.2592 -9.2086 -14.2929 -15.7555 -13.6408 -7.7748 -14.5157 -21.5902 -25.8770 + 1.4827 0.2805 -0.3810 1.4732 8.2340 8.1707 10.0600 8.3087 4.1212 2.7249 3.5821 7.9718 3.7426 -2.6511 -5.3909 -4.4519 -4.5293 -6.7232 -8.9602 -27.0648 + 10.5705 10.6700 11.7791 12.1925 10.0236 6.6964 5.1163 2.6148 4.7648 2.5521 -3.9125 -7.4628 -9.6721 -9.3307 -9.9466 -8.0895 1.1968 -3.8200 -3.4846 -22.4580 + 7.5905 8.3863 11.5587 16.2565 22.0088 23.0422 17.8049 13.1018 17.1694 13.5769 -0.2381 -1.8062 1.5806 -10.3901 -20.8106 -24.7914 -25.0524 -24.3552 -19.3769 -25.2554 + 7.3275 11.6160 16.6781 15.5131 8.1538 4.8147 -1.7134 -2.9599 -6.5688 -7.0695 -0.9248 5.3367 -4.5080 -7.1758 -3.4270 -3.5021 -8.7907 -5.2842 1.7479 -19.2635 + 8.6994 13.7488 20.2706 15.6056 8.0300 2.7906 -2.4915 -6.3762 -9.0577 -10.4892 -11.7811 -10.7422 -7.7494 -0.3422 10.0858 3.8928 3.9680 -2.0796 -2.0561 -23.9265 + -1.8066 -1.3696 1.0493 1.3711 1.9691 1.1999 -1.8646 -1.9643 -1.7749 -1.3390 -3.3717 3.1526 1.2109 0.7990 0.4966 2.5531 3.3704 2.3429 4.9229 -10.9469 + 4.0689 7.4175 12.6940 18.0600 16.5869 9.3259 4.5282 2.8636 1.6428 4.7328 12.4121 9.1212 6.2302 0.0152 -12.5596 -17.7355 -18.6999 -12.7970 -17.6503 -30.2571 + 0.8292 2.6495 1.8804 4.1439 5.6667 5.7021 4.9475 6.8868 6.7950 8.0289 10.5666 8.6874 1.8534 -2.2297 -6.3646 -6.7900 -8.1505 -9.3082 -10.0423 -25.7522 + 7.1022 3.8236 1.8946 4.4230 4.7840 4.6315 5.8219 2.7914 1.6501 0.4344 2.2205 4.0071 0.0326 -2.6285 -2.5436 -3.5874 -3.6688 -4.2155 -7.0087 -19.9643 + 0.1242 12.2019 4.3084 4.2478 1.9093 0.6288 1.1102 1.5269 2.2918 5.1362 2.1955 -5.7687 1.1936 -1.4469 0.2971 -4.6605 0.8522 1.2017 -3.9848 -23.3647 + -5.1159 -1.2775 2.5260 4.1265 3.4097 -1.7194 -0.8844 -1.4795 -5.4958 -6.8537 -1.5398 0.9661 -2.3240 -4.8943 8.2925 3.4432 -1.7853 6.3100 13.4410 -9.1454 + 3.9898 4.3777 4.2357 3.0453 3.7447 2.5019 1.1011 -0.4780 -2.4003 -0.6497 0.8291 0.2117 0.0985 -0.2133 0.3830 -1.7850 -1.0322 -2.1328 -1.6069 -14.2203 + 11.3622 14.7416 16.8859 15.0883 9.9488 8.7692 4.3995 -2.0242 -2.6878 -1.0092 0.7764 -2.2298 -4.0840 -8.1165 -6.2525 -5.2064 -7.0092 -6.7164 -9.2528 -27.3833 + 3.6579 2.8996 4.0461 8.3701 17.0082 23.3625 16.2578 7.1955 17.3887 6.3999 -4.2883 -9.9015 -12.7556 -12.3388 -5.4680 -10.3674 -10.9476 -10.1432 -6.0175 -24.3585 + 7.5312 5.8939 4.3265 4.0014 2.9087 1.6542 2.9601 3.9087 1.3700 -2.9778 -0.8059 -0.8752 -0.9920 -0.8125 -0.8336 -0.0306 -2.6451 -2.7999 -4.2986 -17.4834 + 15.3876 20.0855 22.6771 20.6277 15.1509 8.8202 3.6289 -2.1904 -8.5688 -13.1818 -15.2549 -15.0083 -12.7233 -8.7307 0.5974 4.3829 -2.2770 -0.0304 -7.8902 -25.5026 + 23.6589 23.2539 20.3520 15.1761 11.4144 5.8059 5.4712 1.3160 0.0827 -2.4308 -7.0613 -6.1765 -1.8534 5.6004 -1.4387 -15.4564 -17.3870 -18.8680 -17.3832 -24.0763 + 11.6709 14.1123 21.1753 25.8068 20.7082 14.0630 14.1588 17.9220 14.6153 4.8179 3.3194 0.4690 -11.4997 -19.1991 -21.5666 -21.4213 -21.1902 -22.3547 -22.1566 -23.4508 + 4.6799 3.0606 1.6539 6.2007 -2.0201 3.0954 0.5569 3.2707 1.3312 0.0725 1.8286 -5.9667 2.6570 -0.0978 -1.2174 -2.2597 0.2234 1.4765 -4.2077 -14.3379 + 9.3104 11.8578 14.9832 13.1906 8.5578 4.2616 -0.4942 -3.0677 -3.2171 -5.1322 -1.7298 6.6384 -0.8475 -8.0712 -9.5863 -5.8386 2.6610 -8.3104 -6.0285 -19.1373 + 2.2896 3.8587 4.9224 8.6357 13.9236 17.8222 15.7427 11.5211 7.5272 9.1679 9.7247 5.7451 0.5275 0.3504 -6.2281 -12.9212 -14.0843 -20.5964 -26.6432 -31.2855 + 18.9039 18.0327 13.6297 9.7561 7.4319 5.3744 2.9646 1.7415 0.6716 0.6859 2.7446 0.5342 -4.3187 -6.1877 -6.9311 -9.8734 -11.9041 -9.1281 -8.9591 -25.1690 + 6.4513 6.7843 9.4438 12.9549 16.4801 14.9093 8.2954 1.6877 -2.5193 -4.4922 -6.7348 -6.9853 -4.6783 0.7181 1.0483 -5.1128 -1.1161 -7.5305 -12.3980 -27.2058 diff --git a/src/codebook/train_120_2.txt b/src/codebook/train_120_2.txt new file mode 100644 index 0000000..1ca0059 --- /dev/null +++ b/src/codebook/train_120_2.txt @@ -0,0 +1,513 @@ +20 512 + -1.2668 -1.2477 -0.0681 3.8419 -0.0693 -1.7919 -1.5943 0.8402 0.1550 -3.1526 -3.0204 0.7337 -0.2603 1.6590 0.0230 5.5893 -2.4959 1.9604 -0.6348 0.7999 + 2.6673 1.4923 1.1408 -0.7478 -1.0755 -1.3421 -0.4884 0.2535 0.2951 1.5088 1.9447 -2.6620 2.3751 1.5298 4.1357 -6.5630 -2.1766 -2.7535 -0.7706 1.2362 + -0.6415 -0.4348 -1.2178 -0.9870 -1.1057 -2.1421 -2.3594 -0.4977 -4.1484 -4.7120 5.5425 3.0695 3.6610 2.9729 2.4379 -1.6136 -1.3052 2.1342 1.9164 -0.5692 + 1.5930 -1.1175 -1.2476 1.6203 2.5315 2.3427 -0.5223 -3.1063 -2.1739 -1.4774 -2.6108 -3.5842 -0.3828 -0.1511 0.8929 2.5717 -1.7657 1.8954 6.0193 -1.3272 + -0.2102 -0.3681 -1.2724 -1.1520 -0.3715 -0.5633 -2.5238 -1.7680 4.7356 5.6452 0.8620 0.8750 -0.8932 -1.5918 -1.4047 -0.0720 -0.6080 -0.7876 1.3972 0.0717 + 5.1178 -1.5391 -4.2881 -1.9745 1.3515 2.4014 0.9329 3.4647 -2.4062 -0.4224 2.8708 -1.6053 -3.1492 -2.6783 -2.6937 -4.4645 1.8599 -0.5456 3.8910 3.8770 + -1.7119 -1.0101 -0.5002 -1.7849 -0.4884 0.2279 -0.8335 -1.0083 -1.2819 0.1129 -1.3674 -1.3338 0.9290 3.0765 2.6339 3.5627 -2.2713 0.6565 -1.2099 3.6022 + -1.5938 -1.3264 0.9856 2.8765 2.3700 1.2528 1.2586 -1.2453 -1.3974 -1.4988 -1.6309 -1.2183 -0.1625 -0.8690 0.0030 -2.0081 1.3580 2.9585 3.3396 -3.4520 + -1.3680 -0.6304 -2.5755 -1.2397 4.9487 2.7251 1.4675 -0.1832 -0.3932 1.4723 1.7410 0.6216 -1.0849 -0.7112 -0.3751 -1.7539 0.1222 1.9858 -0.5248 -4.2444 + -1.2786 -0.2384 0.6718 2.9763 -1.6959 6.4607 -3.9459 -2.0560 -2.7306 -0.2583 0.0389 -3.6271 -4.0721 0.8260 0.8112 2.8769 2.2400 0.5444 0.3571 2.0995 + 2.5196 2.3359 1.6620 0.6250 -1.0528 -0.9133 1.8668 1.2853 1.4368 1.4676 1.1301 1.3664 1.1076 -3.2853 -0.4530 0.4467 -4.7302 -3.8149 -3.9866 0.9865 + 0.1738 1.2940 1.3514 -0.3684 -0.7078 -0.2329 1.3467 -1.0678 -0.0262 0.2448 -0.8418 -0.3910 2.7415 2.9948 -4.5965 -0.1192 0.2496 0.4684 0.0669 -2.5805 + 0.2482 -1.3236 -1.4810 0.9433 3.4287 2.2233 8.9344 -1.1138 0.4585 -3.7470 3.0416 -2.7394 2.2880 1.6598 -3.6439 0.0633 -2.7363 -1.2617 -3.1924 -2.0500 + 1.4672 -1.3248 -0.5511 1.4512 -0.4710 -1.2381 2.9453 -2.3244 2.3249 -2.1969 0.9414 -1.9926 0.5254 0.0792 -3.2076 -2.4140 3.5291 3.5738 -0.0613 -1.0556 + 1.5560 0.0091 0.0770 2.8542 -1.4594 -2.0102 0.5440 2.8119 -0.2925 -0.7111 0.9589 -1.6923 -1.8606 1.1040 -1.6733 -0.0895 3.6894 2.7628 -6.9922 0.4138 + -1.5539 0.6820 1.4458 0.4297 -0.4115 -1.3266 0.5024 -0.6975 -0.3820 1.2840 0.9597 -1.0561 2.2198 0.1292 1.4343 3.0313 -3.9845 0.6776 0.3380 -3.7217 + -2.0283 -1.5216 1.0103 4.8788 3.7028 4.4000 -0.3076 2.4853 2.2296 -1.5213 0.4360 -5.9903 -2.6578 -2.3985 -2.0127 1.3737 -3.7950 2.3105 -0.2099 -0.3839 + -1.7339 -0.9861 -0.2078 -1.2579 2.5808 -0.9255 3.2388 1.0999 3.6754 4.6424 1.9111 1.4716 2.7531 -0.2725 -0.3573 -0.5392 -4.2109 -6.4662 -2.3713 -2.0442 + 0.7177 1.4094 0.7205 6.8683 1.7836 7.1562 -2.9368 3.4036 -0.6064 2.3377 2.8714 -7.0408 -9.7129 4.1278 -3.4444 -5.9919 5.5073 -0.8996 -7.5142 1.2434 + 0.8042 1.5886 0.8754 -0.4378 0.2336 0.0424 -0.1245 0.0847 0.6402 2.6508 1.6375 -3.2393 -2.2823 -2.1435 -1.5628 0.4271 2.2571 2.5048 -1.5933 -2.3629 + 0.6292 1.1956 0.8357 -0.8634 -0.1796 1.8589 0.6940 2.8309 2.5569 -0.4253 0.2913 0.7772 1.4180 3.4210 -1.9468 4.2236 -7.3361 -3.7802 -3.5980 -2.6029 + 1.9034 -0.7126 -2.3343 0.2344 3.6545 3.9405 3.0203 0.1937 -1.1906 -1.9012 -0.6667 -1.2590 -1.1021 -2.6650 0.1400 -1.4183 -1.2342 0.0547 0.1519 1.1906 + -3.6125 -2.2485 -1.0820 -1.9912 -1.1521 -2.2527 -2.5383 0.9320 1.1572 2.0230 1.6579 1.3763 6.4432 2.1652 -2.0259 1.9724 3.2824 -0.4615 -1.1909 -2.4539 + -1.1530 -2.1790 -0.7355 -2.0941 0.6246 1.7502 -3.3266 -3.4374 -2.6486 -2.2938 0.9286 1.3396 -2.1323 0.2739 1.2664 4.4111 1.3864 3.9050 2.8286 1.2861 + -1.9752 0.7423 2.4137 1.8854 -1.1393 -2.5802 -2.9355 -3.6740 -1.8244 0.3099 6.1403 4.6215 -2.0636 -3.7172 -0.9400 1.4240 -0.3669 2.0205 0.6217 1.0369 + -0.1561 3.9621 -1.3649 0.2912 3.5366 0.8537 -0.9376 -3.7333 -6.5447 -1.2107 3.3183 2.5758 1.9693 -4.8690 0.6212 0.0985 1.5746 0.2433 -2.6173 2.3890 + 0.6849 -1.1521 -2.0382 -0.8953 0.8771 1.1996 -0.9704 -1.3679 -1.1460 0.0582 0.2636 -1.9785 0.5235 1.6427 0.6362 0.7411 5.6052 -0.3533 0.6579 -2.9883 + 0.5989 -3.9928 -2.1937 3.8742 2.0056 2.3132 -0.4478 -2.0855 -4.3607 -2.1260 5.3544 1.9827 5.3407 -0.8346 -2.4624 1.1729 -4.3825 0.7623 -1.9429 1.4240 + -3.3103 0.0394 2.0113 2.6733 1.2484 -0.2186 0.1156 -0.4856 2.4501 0.8179 -1.1164 -2.1952 -0.9719 2.0728 0.4002 1.1891 1.7518 -1.2571 -3.3136 -1.9012 + 1.8860 6.9767 2.4311 -2.0414 3.9100 5.5378 -1.7478 -0.8304 2.8523 -1.4075 0.1309 1.8232 -2.8868 -7.5003 -3.4867 -3.2756 -2.8584 6.2611 -7.4682 1.6940 + 3.5074 1.3392 1.0862 2.9814 0.8158 -2.6160 -2.3837 -0.8255 -0.1595 2.0087 -2.8876 -2.4727 -1.3574 -1.2864 -1.5711 -1.0772 0.4648 2.7262 2.1044 -0.3970 + -0.1430 -0.9788 -2.1195 -0.7774 4.0804 3.7123 1.5082 0.2869 -2.5968 -2.0127 1.5147 3.7486 3.2447 0.6959 0.3308 -2.4516 -3.4598 -4.1669 -0.6870 0.2709 + 0.0724 0.3235 -1.9536 -2.7454 -3.3392 -1.9023 -1.0150 0.7511 -0.0539 -2.8386 5.2737 5.1053 1.4372 1.4046 1.4504 2.4912 -2.6526 -0.6188 -0.6530 -0.5369 + -6.9550 1.3233 4.3542 2.9502 0.9929 -0.1186 -0.8657 -2.3452 3.5061 2.8348 -4.1741 -4.1264 4.6970 3.0117 -0.2849 -8.0081 3.4452 0.7819 -2.7443 1.7251 + -4.0878 -0.8849 -4.7521 5.0067 -3.3510 -4.8233 -6.6328 4.8752 -0.7474 3.8614 2.6271 0.9119 1.0371 2.2968 4.3160 -3.7042 0.9900 0.4960 4.7952 -2.2300 + 0.5901 2.0654 1.7824 -0.5570 0.4874 2.7659 0.8232 -0.1306 -0.6795 -1.3143 -1.2480 0.9969 2.0563 0.1625 0.7346 0.0223 -1.6836 -2.9087 -4.1058 0.1406 + -0.5074 -0.8373 -0.8579 -0.0460 -0.0854 -1.4221 -0.6935 2.5302 2.2014 2.2225 0.5896 1.2715 -0.7624 -2.7997 -5.3296 4.0372 3.2176 -1.4146 -1.3705 0.0565 + -3.8190 -1.1051 1.5169 -0.5542 -1.5591 0.2921 -2.1144 1.6664 2.8275 0.7745 2.6977 4.4021 -0.2010 0.0685 1.3158 -0.8045 -5.9834 1.7874 -2.1592 0.9509 + 0.6749 -0.0635 0.3751 0.6561 0.4718 -2.3144 -4.9191 -3.0907 0.5499 -0.3498 1.2370 2.6699 1.5353 1.6809 1.2117 -1.3733 0.0977 1.3610 0.0102 -0.4207 + 0.8139 -2.9454 -1.1694 1.1826 3.5742 4.3331 1.4143 1.7017 -1.2428 4.8459 -4.4642 -0.0684 -1.7273 -0.1932 -2.6041 -1.4272 0.2873 -0.9676 -0.1422 -1.2013 + -1.8690 1.2475 -2.8884 -0.3842 -0.3588 2.7759 -2.0060 -2.2023 -2.6599 -2.5791 -3.1221 3.2645 1.8131 2.8630 6.3144 -4.2619 0.7589 -0.7608 4.8657 -0.8104 + 2.3449 0.3057 -2.2411 -1.3084 0.6572 -0.3790 0.2674 0.5337 0.4996 0.8832 2.3616 3.9339 4.7846 -2.7473 -0.5167 -0.0864 0.9288 -4.3018 -4.0903 -1.8294 + 2.9658 2.7467 -1.9276 -4.0009 -0.7257 -0.6616 -2.0255 -1.2898 0.3022 1.5810 3.0521 2.5790 -3.2369 -0.4791 0.4455 0.1138 1.1032 0.9003 -1.5708 0.1285 + 5.2204 -2.8190 0.8203 0.5992 -1.3205 -2.1549 5.0256 -1.6050 0.5506 -2.8092 -0.2831 -1.6376 -1.8233 -0.0177 2.5319 2.0586 0.9166 -1.5417 -0.3071 -1.4039 + 0.1090 -0.1359 -0.4821 -0.5060 -1.1903 -0.1205 1.3010 0.0989 0.2280 1.3298 1.4648 0.7280 0.0076 -1.4837 -0.1633 1.2525 0.9437 -0.0019 -3.9783 0.5988 + -4.0941 -3.4220 0.4966 -5.4678 6.0636 1.1749 -0.1830 3.3518 3.5480 1.4243 2.5791 -5.9065 -1.8723 -1.6703 1.3990 6.8845 1.8643 -1.2344 -3.7475 -1.1880 + 3.5819 1.2282 -0.2187 -0.8194 -0.0683 0.6784 0.9405 -0.1871 -1.0635 -2.3089 -1.7476 -2.3377 -1.8039 -0.2123 0.7402 0.8810 0.7063 -3.8015 4.2698 1.5426 + -0.7508 -2.5319 -1.4606 1.0638 -3.8848 1.2060 2.6878 -1.2315 -0.1629 -2.2730 -3.3361 -1.6208 1.9855 3.4308 -0.2120 -1.4559 -0.3738 2.3568 2.3629 4.2004 + 1.5564 1.6137 1.4225 1.6668 1.3266 0.0460 0.1831 -0.3664 -1.4348 2.5690 2.2918 1.6955 1.6680 -1.3807 -1.0884 -1.0980 -0.5844 -1.0295 -3.6955 -5.3616 + 1.7128 -1.8066 -4.0653 -3.8214 -0.9531 3.4797 0.7961 -2.4955 -2.7851 0.0025 0.7872 1.0652 1.5456 -0.4352 1.9173 4.6258 0.3691 -0.1501 -0.2351 0.4458 + -1.6777 -3.1299 -1.6947 -1.1535 -2.1999 -3.2226 -0.9846 -2.1533 -0.6467 2.0938 2.1307 2.9065 1.5181 3.0875 0.0486 -0.2157 1.3461 0.7741 2.7320 0.4413 + -2.0098 -0.0651 -1.1313 -3.1454 -1.8173 0.4664 2.3278 3.1806 -3.0726 -1.5969 3.6994 0.6478 -0.6833 1.0635 1.1405 6.7102 -4.8934 -4.2029 3.4752 -0.0933 + 3.0911 3.1320 3.6764 1.2247 2.0977 -0.4399 -3.9470 1.4276 -0.2596 0.5511 -6.4999 -0.9385 3.2215 1.7397 -2.0786 -2.6160 -3.0150 -2.0586 1.9218 -0.2304 + 0.5955 -0.9572 -3.8115 -1.2133 0.9600 3.0247 8.6360 5.7851 6.1244 0.7094 -2.4410 -1.1712 -1.7901 -3.5399 -2.8318 -2.5468 -4.9596 -0.6022 0.6141 -0.5845 + 12.5835 1.8094 0.1352 1.7718 0.9427 -1.3690 7.1277 0.0421 -2.3404 -4.6650 1.4653 -2.4880 2.6056 -10.3828 -8.1067 4.1108 -1.2481 -1.8330 -2.7827 2.6214 + 2.9658 -0.2617 0.2806 -0.2164 2.8550 1.9755 -3.5301 -1.2350 0.9311 0.8713 -2.2265 -0.6005 2.6386 2.7666 -2.3603 -2.5163 1.6854 1.0161 -7.8883 2.8489 + -0.9445 0.6006 -1.3214 -5.0651 -2.1702 -0.0289 0.1003 2.2883 0.0424 3.4686 2.0494 1.6327 -1.6152 0.1220 -2.8666 -2.2261 4.9579 -2.2581 -2.7323 5.9663 + -1.3666 -0.2364 -0.3999 -0.9988 -2.0227 -0.0610 -0.5411 -2.2113 -0.2283 -1.7150 1.0239 4.2760 1.9603 -3.0526 -2.5894 0.8611 5.2528 3.4951 -2.2336 0.7875 + 4.7609 3.7023 0.7955 -3.1291 -1.3671 0.8798 -0.9947 0.2668 0.5762 -0.9479 -4.5541 -0.6922 0.0699 -5.8412 4.2302 5.0652 1.3544 -2.4661 -0.6224 -1.0865 + -2.6815 -0.9958 1.6109 -1.7618 -2.5561 1.0357 -1.5863 -2.2811 3.4491 1.1806 -0.2855 -0.1380 -0.0202 5.6861 0.8289 -1.0913 0.5986 -1.1493 3.2455 -3.0884 + 1.7353 3.1908 5.0898 -0.4602 0.0751 -2.1427 -5.0910 -3.1667 -3.3291 1.9531 0.4802 -4.8101 2.2518 2.4380 0.6439 -7.3548 -0.0689 1.8997 5.7170 0.9491 + -1.1588 -3.1119 -3.4525 0.2538 1.3345 -1.0500 -0.3870 -0.0472 0.1522 4.0806 2.8886 3.8741 -1.9507 -2.9183 -0.3828 -0.0805 0.4136 1.1466 -3.1863 3.5818 + -4.1654 -5.7362 -5.0041 -0.9889 4.1884 4.8135 1.5658 -2.3781 0.8425 7.5151 7.3977 3.9243 0.6283 0.9194 -5.0741 -1.9566 0.2100 -4.9786 0.8760 -2.5989 + -5.3114 2.2992 -1.9803 1.2150 9.1545 -2.1960 -2.8749 9.6686 0.5512 -4.1700 -1.1338 -4.1549 1.6645 -3.1643 -1.7800 4.9896 0.3390 -0.0421 -1.0391 -2.0347 + 1.0740 2.1840 0.9247 2.0617 -2.1994 -4.0653 -1.5118 -0.9397 1.3781 2.9104 -0.8864 8.5382 0.5495 -3.5922 -0.2482 -0.5485 -0.9604 -1.8453 -3.1808 0.3575 + 3.5141 2.7621 1.2101 -0.3665 -1.1827 -0.5351 0.4822 0.7598 0.8241 1.4976 -0.8943 -2.8067 -2.3512 -2.0448 0.3706 -0.9201 -3.9192 1.1431 0.4761 1.9809 + -1.7817 1.1939 -1.2195 1.7524 -4.7374 1.1520 0.0973 1.5475 2.2848 -7.7870 2.0346 0.5213 2.8861 3.1077 1.1974 2.3936 -1.4248 -0.2888 -1.4706 -1.4588 + -0.7677 -2.0426 -2.9918 -1.8722 -1.4336 0.4207 1.4107 1.0509 -0.1714 0.2221 1.3054 0.5884 3.1454 1.8747 0.1510 -0.5701 0.5457 2.7058 -0.0854 -3.4859 + 1.6593 1.0024 0.3202 1.0267 -0.2368 0.1208 -0.7272 -1.0487 0.2686 -1.0197 -1.3131 4.1829 1.0297 1.7779 -3.0898 -0.7777 -4.5532 2.1765 -0.3100 -0.4886 + 2.9341 -0.2895 -2.4210 0.9438 2.9490 1.2447 -0.4279 -0.4133 -0.2487 0.6464 0.1859 -0.8613 0.0690 -2.0024 -3.5783 -0.9123 -2.3469 0.3089 5.3909 -1.1710 + 13.8818 0.6217 -0.6459 -3.4218 0.8331 0.8918 2.2009 4.0596 -3.0380 -7.3862 -3.2105 -2.2108 4.7972 -5.3735 3.8870 -1.8190 -0.5123 0.9752 -3.6921 -0.8383 + 0.2536 -11.0226 4.4625 -7.9396 8.6657 2.6088 -1.0215 0.4492 -5.0641 2.7194 1.1735 2.2070 3.3733 -0.2605 5.5319 3.5989 0.2759 -3.6185 -2.9338 -3.4591 + -0.2533 -1.2245 -1.1924 -0.1962 0.6099 -2.1289 -2.0002 -2.0390 -1.5592 0.7879 0.1165 -0.9325 -1.5485 0.4552 0.3883 1.9054 2.3495 3.9138 2.3594 0.1886 + 0.1750 3.7528 1.6899 -4.3270 -5.0437 -3.1410 -4.7768 -1.9628 -4.5893 5.9435 -9.6773 -0.4601 3.0571 1.2797 0.1161 3.5574 3.7157 -2.0222 5.9308 6.7823 + -0.6999 -2.9933 -3.6606 -0.6207 -1.4032 -1.1364 0.2530 -0.9004 -2.7685 -4.3142 -0.7561 0.8142 -0.4715 0.8444 2.0053 0.5983 3.3363 4.4913 6.9146 0.4673 + 1.0959 -0.0886 0.2379 3.2725 1.2016 -1.1581 -1.3640 -0.6268 -0.3678 0.9051 0.7593 -2.2902 -1.4578 0.6349 0.5115 -4.4984 2.2315 2.2535 -2.7867 1.5345 + 3.6055 3.8842 2.1794 -0.7568 -1.0500 -2.1686 -0.6731 -2.0718 0.8001 -0.6819 1.1112 0.5707 -2.4862 3.1489 2.6767 2.5134 -1.9147 -4.1519 -2.4548 -2.0802 + -1.9388 -0.7447 -0.8349 0.1123 0.1251 -1.3476 -2.6413 -0.4770 5.6864 -1.8563 -3.3514 -0.5309 -1.6295 -1.3453 -0.4664 4.5930 1.1909 2.9264 0.9356 1.5944 + 0.5951 -0.4177 -0.1304 0.5462 -1.3265 1.4534 1.6425 0.9730 0.8946 2.1586 4.2557 0.8968 -5.0524 -1.9576 2.6089 0.6571 0.7918 -2.2504 -4.5907 -1.7480 + -1.6456 -2.0706 -2.4462 -2.5983 -2.5056 2.0863 -0.9159 -0.8806 -0.8052 -0.7776 1.0285 0.4522 1.5131 3.4530 4.9330 -2.7752 1.7750 2.1982 -0.0181 -0.0006 + 2.2117 0.6658 -0.1647 -0.7769 -0.3291 -0.0686 3.1830 1.8603 1.0488 -0.7866 -1.0352 1.6465 0.2395 0.3989 -1.2496 -1.9498 -2.6996 -7.5216 1.3320 3.9951 + 1.0405 1.3681 2.7153 3.0279 2.8206 1.9933 -1.5434 -2.0223 -1.0490 -1.2756 -0.1434 0.2554 0.8858 1.3178 0.3714 3.5670 -3.1912 -1.0147 -3.0243 -6.0993 + -0.8348 -2.4017 -3.6731 -2.0399 -0.2474 -1.0640 -1.1488 1.3352 2.8367 5.1498 -0.0673 1.7148 2.0672 0.7800 -2.8302 2.8981 -0.7525 1.3119 -2.4119 -0.6222 + 3.0927 2.0509 2.4548 -1.3001 -3.9942 -0.7486 2.8523 0.1569 -4.3404 -10.5627 4.2087 4.2968 2.7013 -1.1646 0.2008 -2.4272 1.8708 0.5192 -2.3092 2.4416 + 0.6449 -3.5216 -3.8362 2.1329 -1.2999 0.6434 -2.5079 3.1409 -0.9430 2.1409 -0.9005 2.6639 5.8420 2.2508 -0.1834 -3.5407 -2.0329 -1.9827 -0.2675 1.5565 + 5.1512 4.1361 0.9497 -3.1897 -6.0608 -4.8346 -0.7128 -2.1849 -2.1809 0.1265 0.3295 0.2665 1.1233 -0.4722 2.7945 1.1909 0.4093 1.9529 0.6380 0.5674 + -2.0255 1.8944 3.2610 -0.6543 -0.1603 1.6419 1.8339 -4.1284 -1.6495 -7.4417 2.7611 3.0349 -5.4696 5.3754 0.2729 5.1700 0.7296 -0.1265 -1.6533 -2.6659 + -7.1882 -6.8851 -0.9549 2.6573 1.6288 -0.3149 -2.2361 1.6706 4.0565 3.2723 -2.0478 -0.6505 2.7769 4.9536 1.8310 -4.1026 -0.8540 2.2409 0.8671 -0.7209 + 0.8703 1.1461 2.9551 0.5102 0.4539 9.1307 -3.4339 -1.5513 -2.2902 -4.1038 -6.0580 -0.8757 3.5830 2.5081 -1.9449 0.3605 0.8645 0.6768 -0.2206 -2.5809 + -4.5091 -1.0618 1.6342 0.5890 1.0199 0.7070 -0.4636 -0.7393 -2.0902 -4.3948 -1.8491 2.8967 1.9263 0.6394 4.9955 3.9485 -0.2145 -1.3652 -1.4955 -0.1736 + -1.2527 -0.6868 0.0359 0.5854 0.7286 -0.5988 -1.0892 -1.2358 -0.5524 -1.8766 -4.8554 1.3154 3.0969 1.2141 0.4785 0.5435 0.9660 0.9526 2.5969 -0.3662 + -3.4429 -2.5359 -0.7902 1.6794 1.3950 0.9304 0.5281 2.0451 -0.2820 -0.7620 -2.3113 -2.5279 -1.2407 -4.6199 3.9276 -1.3637 2.0692 2.0266 2.4150 2.8601 + -0.0841 -1.4504 -2.5295 -2.1914 0.0160 -1.5806 -3.8581 -1.8751 1.2410 1.4792 -0.0268 -3.0304 1.1672 3.1034 -0.0043 -1.7750 1.0722 5.8103 3.7335 0.7830 + -1.2601 -0.9248 -0.9753 -1.1580 -0.4657 0.9286 0.4457 -0.7164 2.9298 6.0232 1.1288 -9.2201 -2.6002 1.0866 3.5907 -0.3994 -0.8783 -0.4493 3.0463 -0.1320 + -2.6865 -1.7683 0.5719 4.2697 0.4434 0.9403 -0.1787 -3.9995 -1.4954 -2.9666 0.5871 0.7458 -0.5643 -3.3758 2.4009 1.3630 3.2345 2.9305 0.6423 -1.0943 + 0.2605 -0.1269 0.1894 0.8801 5.6065 4.4842 -0.3360 1.6337 -1.0080 2.2349 -1.3371 -3.4195 -1.5849 3.4658 -2.7632 -2.8878 0.2535 -1.0857 -3.4858 -0.9736 + 0.5903 -1.1309 -3.8731 -2.8181 0.6957 -2.1930 -3.7976 -0.1684 0.3131 0.8609 0.0568 -0.1356 5.9915 2.3704 3.9840 0.5840 -1.9366 -2.6479 0.4937 2.7608 + -1.4917 0.6707 -1.8279 0.4736 -4.3226 7.6508 -0.6770 -1.0388 1.6577 3.4357 2.1210 -1.6783 -1.9394 -0.4857 0.0446 -2.1769 -1.5641 1.5895 1.4750 -1.9161 + -2.4617 -1.4865 0.9268 3.7356 1.9298 -1.0879 -0.9003 -0.6573 -0.4536 1.1463 2.5279 -0.9025 -2.1547 0.5579 -1.4546 -2.5618 -1.1020 1.7633 4.9058 -2.2707 + 3.2436 2.0698 1.3674 -1.4618 -0.4269 1.2764 0.3160 1.2237 0.7208 1.5117 1.4584 -0.5527 -0.7757 -2.7217 -4.0792 1.8261 2.7197 -3.9546 -1.7508 -2.0101 + 0.2659 1.9357 0.5705 -1.8509 -5.0017 -3.7512 -2.7574 0.2996 -1.1250 0.6895 2.7521 3.7090 3.4556 6.5334 -3.5389 -3.8970 -2.9436 0.7650 1.5177 2.3717 + -1.2532 -0.7651 -0.7634 -1.6900 -2.3167 -1.0574 0.9291 -0.7963 -1.4770 -1.6646 0.5558 0.7009 3.4059 9.2719 1.4172 2.4588 -0.7901 -3.7873 -1.0613 -1.3173 + 3.2264 0.6063 -2.4159 -3.8529 -1.9936 2.6889 2.5115 0.8341 0.8209 1.2008 0.7255 -2.1489 -1.1543 -0.6443 2.0479 -0.7011 -0.5619 -0.0820 0.5538 -1.6613 + 0.8900 0.2673 1.2328 -0.1459 2.5186 2.3429 -0.5461 -0.5497 1.9452 5.1637 1.5156 -3.9805 -1.5621 -1.5331 -2.7711 -2.2357 0.7958 -1.6083 -2.3152 0.5758 + 4.0233 3.7838 3.0862 2.4680 -0.8644 -2.4804 -0.9694 -1.9035 -3.4966 -3.9590 -3.9724 -1.2080 -1.6237 0.7915 0.4354 0.8419 1.1287 1.8538 2.3476 -0.2827 + -0.5315 1.6742 2.6296 -0.5391 -1.8812 2.7171 6.8646 3.9934 -2.0577 -0.8537 -4.3316 -2.4473 -2.8864 -0.3456 -1.9169 -1.4494 0.4578 1.9608 -0.1673 -0.8898 + -2.1559 -2.4800 -1.5001 1.3457 3.3362 2.6367 1.4331 2.3397 3.7557 3.4063 1.6588 1.2723 -0.3658 0.5614 -2.5827 -5.6096 -3.4952 -4.1966 -1.5564 2.1965 + 0.1567 -1.6324 -1.8735 -2.1011 0.8687 2.8596 1.0227 5.0782 -3.8186 -0.4012 -1.0627 -1.0858 2.3105 2.5822 -1.0014 -0.6915 1.2628 0.1273 -4.3120 1.7113 + 0.5493 0.1877 -0.3065 0.0805 0.1700 -0.4682 -0.7192 0.7521 1.1935 -1.2445 0.5061 3.0407 3.3122 2.9044 2.0613 -2.6946 -2.8479 -1.4855 -3.4536 -1.5377 + 1.2611 1.2112 -0.4954 1.5849 2.8817 0.5597 -3.2189 -1.8993 -2.3996 0.0235 -0.9270 -1.1263 -1.6443 -3.5163 -1.2543 1.8410 4.5628 1.0754 -0.1607 1.6406 + -0.8759 -1.6975 0.2532 6.4042 -3.4246 -2.9858 1.9661 -3.2513 -4.0109 -0.5134 2.5545 -3.0437 -2.1093 -3.6915 4.1398 6.0036 -1.3456 1.3628 -1.0285 5.2940 + 8.8405 -7.2360 2.8239 7.1563 -1.4248 -8.0410 -1.9196 1.8187 -0.9320 -3.1134 1.9133 4.5783 5.5866 -1.7440 -0.1615 -9.2039 4.4457 -2.5424 2.5822 -3.4268 + -1.9594 -0.1440 -0.0014 -0.5248 -1.2740 1.9184 0.2637 0.9658 3.9879 -1.7646 0.8739 3.6824 -1.4748 -0.5493 4.1940 -0.5892 0.9704 -2.3393 -5.2036 -1.0319 + -1.8153 -0.8777 -1.3975 -2.8688 -1.3150 0.6005 2.0795 2.0158 -0.0187 2.3273 5.2446 3.1910 0.5420 -1.0394 1.3294 -4.6550 -1.5318 -1.6999 0.2573 -0.3684 + 4.3069 1.2137 -1.8464 -3.0026 -0.9539 3.1554 3.4215 2.0922 0.4828 1.6102 1.1857 1.5577 -1.8593 -2.9907 -3.0640 -4.6355 -1.6614 1.3592 1.5116 -1.8833 + 0.6407 1.1519 1.5429 -0.7369 -1.7269 -1.6671 -0.1290 -0.7049 0.8116 -1.2198 -4.0157 -5.1437 -3.1965 2.3418 0.7111 2.6992 0.5585 1.9829 4.9644 1.1355 + 0.6364 2.1072 0.9870 -5.1572 -4.3363 -1.0839 -1.3521 1.8709 0.8132 -0.2938 -0.2079 -2.5242 -0.8999 2.3401 0.7392 3.1549 3.0568 -1.1375 0.0963 1.1908 + -0.0136 -2.4241 -0.4209 1.6339 3.4114 3.5889 -1.4100 -3.5651 3.1831 2.0426 0.5548 -2.0177 1.6429 -3.2634 1.5780 -4.1305 -0.9389 0.1651 0.4588 -0.0751 + 2.0687 0.8544 -0.3821 -0.1978 1.0057 2.3289 3.0174 -0.3330 2.0178 -0.6679 -0.1993 -1.9170 1.6018 -0.3834 0.6526 1.9588 0.3355 -2.0462 -4.1767 -5.5379 + 2.7809 0.2282 0.4820 1.9051 -1.7350 -3.4716 -3.3685 -1.3005 0.1251 -1.5366 -1.9516 -2.1469 1.2541 3.7123 3.0390 0.8154 2.3154 2.5014 0.0685 -3.7166 + -2.7442 -0.5589 1.8753 0.2528 -1.7122 -1.5279 0.3471 1.3429 -0.0809 -1.0979 -0.5556 2.8899 0.2864 2.1800 1.7006 -3.4442 -2.6681 2.9174 1.9107 -1.3132 + 1.1471 -0.3191 -2.5131 -2.6788 2.7236 4.0318 2.9420 3.1336 1.5351 0.4800 -0.0086 -1.0945 -1.1975 -0.4758 0.1588 -0.4970 -0.2437 -3.5219 -3.3061 -0.2958 + -0.6947 -3.5085 -2.7613 0.0475 0.2365 -2.4104 -0.4597 -0.9262 -0.2261 1.8983 0.9162 0.3544 -1.0767 2.3229 2.3748 -1.6417 3.4712 -3.6716 0.1472 5.6077 + -1.7531 -0.9915 -0.4352 0.4089 0.1890 -1.7111 -0.6401 -0.9353 -0.5743 0.3365 -0.6869 0.9392 0.8776 -0.2201 0.7815 -1.7487 -0.2509 3.0732 0.2971 3.0442 + -6.4696 -1.5332 1.3136 7.9582 4.7035 0.4178 -1.4784 -2.4577 -0.6662 -2.4183 -3.1348 -2.0591 -4.3423 -0.2080 1.5975 -2.6953 0.1211 4.7779 4.5315 2.0419 + 0.8642 3.0824 1.7461 -0.8529 0.9231 -0.3502 -2.7586 -2.7081 -1.4853 1.1577 2.4953 -2.0279 3.1643 -1.1352 0.2786 -0.1650 2.4230 -0.5282 -0.4006 -3.7227 + -3.9091 0.2639 -0.0395 -5.0339 1.4635 7.9381 -1.8279 -7.5321 1.8947 0.9696 -7.1991 7.7502 4.8838 -5.2722 5.2271 6.4012 -8.2785 -5.8271 0.4487 7.6786 + -0.4051 0.3015 -0.5211 -1.1563 -1.5548 -0.8506 -1.7742 -0.6679 0.3853 3.9695 3.1450 -3.5632 -0.3392 -3.3757 1.3514 4.4934 -1.2754 -0.4248 1.0022 1.2601 + -3.0667 3.2388 3.6288 -0.3263 -3.6989 -4.3941 -3.0073 -2.9882 -2.7834 -3.8873 2.3701 6.1068 1.0432 -2.8444 0.1460 -2.5272 1.8208 2.6818 7.7176 0.7699 + -0.8674 0.6588 -0.0766 1.9350 3.3452 2.7012 0.4707 -0.8282 -0.7703 -3.8252 -2.8814 -0.2389 -1.3895 -0.9376 0.2572 -3.4418 -2.3763 -1.8695 7.4789 2.6558 + 0.8567 1.9741 0.6363 2.1993 1.9072 2.2211 3.7376 -0.0455 1.3289 -1.0736 -4.8817 -4.0284 2.4624 1.0596 -3.8101 -3.8498 0.8895 -0.5176 -2.3743 1.3083 + 3.7465 3.5865 0.1979 0.4072 -1.1714 -1.4598 -2.1688 -1.4971 -1.1953 -2.8028 -1.8515 1.1483 3.7654 -2.6485 1.2635 -2.4929 -1.4965 0.6356 3.3756 0.6583 + -1.7286 -0.6675 0.3769 1.1159 0.0587 1.4828 1.2140 6.0165 1.2212 -3.4526 -2.4321 -0.8616 -2.2663 -0.0017 -0.0046 0.2615 0.0517 -0.8546 0.5801 -0.1095 + 3.4455 1.4668 -0.0851 -2.9245 0.0932 1.2861 1.1250 -0.6317 -4.0005 -4.4206 -1.5097 1.3643 -0.1238 -0.8046 -2.4500 4.2293 2.9297 3.2594 -3.0122 0.7633 + 2.2354 -0.6334 -2.7256 -1.7876 -1.8603 0.6549 0.1244 -1.8100 -1.7636 -2.7665 1.0419 3.6034 2.7187 -5.8124 -0.9848 2.8478 -0.3193 3.4835 2.5353 1.2184 + 3.0602 4.3425 2.4260 -0.5623 -0.8919 -0.2730 1.3901 0.4772 -0.5219 -1.3754 0.4815 2.4087 -5.0472 -5.6009 -2.8901 -2.4607 1.8809 3.5997 3.9232 -4.3669 + -0.0346 -0.2122 -0.2290 -0.9365 -0.4221 -1.9300 -2.3572 -2.9919 -2.2394 3.2115 2.4104 2.4249 -0.5682 1.5001 -1.3857 2.6140 -1.8866 -5.6180 7.3368 1.3135 + -0.4484 -1.1107 -1.9143 -1.2992 -0.5392 -1.0181 -0.6562 0.5186 -0.7919 -1.4379 -4.0959 2.4107 1.5417 0.0557 3.4844 1.7096 -0.8275 1.7994 2.0983 0.5209 + -0.4549 0.1830 0.2262 -2.2572 -1.5931 -0.7026 2.6431 2.6098 4.0381 -0.4805 -2.9134 -3.5443 -0.6536 -2.1551 2.0956 1.2393 0.2979 0.9155 -2.0621 2.5682 + -0.1092 -1.2889 -2.5682 -2.3378 -1.7259 -0.5628 -0.6114 -2.8295 -2.5690 -3.3678 -2.2669 0.6023 0.3823 5.9006 5.7607 1.9871 0.6942 1.2471 3.2445 0.4186 + 0.6515 1.8638 -0.3444 -2.0169 -0.6995 -2.9879 -2.4596 -1.0847 -0.8686 -2.3776 2.0331 4.8909 4.1694 1.2690 1.4079 1.9289 1.8820 -0.9986 -3.0198 -3.2390 + 1.7936 1.2201 -1.9231 -2.6761 1.6107 7.0585 8.8031 2.9894 -2.3291 -6.5825 -1.5641 3.0126 -4.0096 -4.0332 -0.6223 -0.5985 -0.8359 1.2689 0.3585 -2.9410 + -1.2384 -0.3295 2.3565 3.0657 3.2204 1.0890 -0.5456 0.1283 2.9904 -0.0970 -5.2104 -1.5801 -2.5751 -2.3243 -0.3014 2.6881 0.5623 -1.5424 -1.9388 1.5825 + -2.6631 -2.8705 -3.6445 -0.1511 1.0369 4.6018 2.7993 -0.5794 -0.1152 0.9196 4.1279 -0.7083 -3.1505 -2.1870 -2.5145 -0.8667 1.9629 3.7810 1.8562 -1.6347 + -3.7832 -0.9972 1.0298 0.8253 -2.4369 -3.3827 -2.6892 -0.8231 -1.0820 -0.0375 -0.7937 -1.8433 -0.5302 3.8146 2.3123 1.6122 4.1004 5.6672 -1.0450 0.0824 + -0.1000 -2.0200 -0.5383 2.2917 0.8366 -2.2105 -0.8495 2.1052 3.4989 -0.0827 -0.3031 -1.7154 1.3463 5.4572 -3.0939 -0.0935 -1.1704 -5.2410 2.4300 -0.5476 + -3.7789 -1.9485 1.8338 2.9833 0.6807 1.8337 5.1432 -0.4532 0.5973 -0.6042 0.8753 -1.5014 0.4292 -2.2709 -1.2993 -0.1667 -1.6955 1.1932 -6.0865 4.2353 + -0.4920 0.0568 -2.6837 -3.2294 -0.2920 -0.6790 2.7843 3.0219 1.7934 -2.2037 -3.0967 1.8829 0.5782 -1.6334 1.9235 4.5606 -4.2261 -0.0121 2.2982 -0.3517 + -0.6429 2.5139 2.3667 2.2000 -1.8905 -1.3195 -0.0575 -0.6720 2.8832 0.3828 0.9744 2.9334 -0.6053 3.2595 2.5269 0.0016 -5.8119 -0.9627 -4.8744 -3.2058 + 0.8584 0.9302 0.3630 -0.3058 -0.9190 -1.1142 -3.3748 -2.6210 0.9921 -0.0440 -0.2277 0.8060 1.7478 2.0581 0.3900 4.4187 5.8430 -6.6138 -3.1191 -0.0680 + 0.3281 -0.0986 -1.1173 -1.9481 -2.4515 -1.0863 -1.3545 1.1448 2.8412 3.7501 2.6741 2.7224 1.8554 1.4018 -3.7195 -2.9142 -1.2068 -4.2062 2.9680 0.4170 + 0.2181 -1.3017 -1.3715 -0.9326 -1.1639 -0.6082 2.2905 2.1838 3.1530 3.3746 2.0088 -0.8055 -1.0486 0.7007 -1.7960 -0.3898 -2.4327 -2.4057 -2.1793 2.5060 + -2.4912 -0.4925 1.9418 -0.6320 -1.0125 1.8048 -1.5360 -1.7457 -0.3001 0.5912 0.4548 -1.4661 -1.5177 -0.5917 5.6377 -3.6558 1.8798 3.7139 3.0715 -3.6543 + -1.0770 1.7774 3.6503 0.2492 -2.5625 -1.2989 0.3077 -1.4511 -0.7454 -1.0293 0.9281 -0.0970 -1.4180 0.5544 2.0070 3.1415 2.3666 -0.7117 -2.8143 -1.7770 + -1.8815 -2.2795 -1.1580 1.0865 -0.0453 1.6476 0.0859 -1.8231 -0.7599 -1.0013 0.0173 -0.6116 0.0110 0.6057 0.1048 0.3920 2.8241 -0.4223 -0.2920 3.4995 + 0.0544 2.8654 4.0202 1.6845 -1.8534 -2.9185 -1.4228 -3.6388 -2.0210 -2.4342 -3.4254 -1.7961 2.7218 6.6019 2.2780 -0.0758 -2.1727 1.0645 -0.3083 0.7762 + -4.2733 -4.7209 -2.5347 -4.1434 -2.3709 0.1195 0.9517 -1.8672 1.5567 3.4133 0.9511 6.1534 5.0591 3.3617 4.3448 -0.8335 0.0697 -1.2096 -2.2085 -1.8188 + 0.0539 1.0537 0.6965 0.7551 -2.3328 -4.4085 -1.7944 4.6582 -1.8228 -0.3800 0.4342 0.9079 1.1727 -0.2538 -0.9787 1.6403 0.3758 0.2889 -1.0679 1.0017 + 0.9075 0.5642 -0.6092 -2.8652 -3.3111 -1.2627 1.6981 0.5866 2.5675 2.8589 1.6024 2.0917 0.4354 1.0342 1.2054 -2.7817 -0.5893 0.0883 -2.8199 -1.4010 + 0.8980 -0.3869 -0.4833 2.6033 -0.0884 -0.3699 7.2953 1.6809 0.8531 1.6498 -4.4993 0.0072 -1.9421 -1.8001 -2.5825 -3.6475 -2.3221 0.6178 0.3128 2.2040 + -6.0307 -1.3653 -0.3786 0.0247 0.6616 0.7676 3.3234 3.0965 0.7765 -0.6097 1.0441 -0.9142 1.6186 -9.2158 -4.2017 2.5866 2.2875 2.0945 2.8697 1.5646 + -0.3542 -0.0280 4.1718 2.5282 6.0404 2.9659 -1.0269 -1.4497 -5.6815 -3.9178 -3.9280 -6.4467 -2.5804 -4.6703 -1.3963 3.1437 4.3980 -0.5477 2.7035 6.0758 + -1.5432 3.8376 1.4210 -1.1449 0.4892 1.3172 -2.0383 -2.2564 -2.1791 3.0272 -4.0284 -1.3615 -1.9716 -4.9880 3.8800 2.5715 -2.8049 5.2429 -2.0992 4.6290 + 1.9112 0.2401 1.2090 1.9221 -0.5051 2.0731 -0.8317 -1.4381 1.1319 0.2604 4.8570 -4.2486 -4.2343 -0.1445 2.6106 1.1135 -3.4590 -1.7688 1.2613 -1.9600 + -4.6396 -2.9689 0.9238 0.7657 0.5574 -0.3650 -3.7022 -4.0756 -5.0362 0.3243 3.1880 1.7270 -0.7319 2.9308 3.7592 2.6099 -0.3181 4.3233 1.9146 -1.1863 + 0.1980 -2.2883 0.9330 3.8033 -3.0797 0.0635 -1.8773 -1.7344 -1.0161 0.1560 -0.1661 -3.8927 -0.3658 0.3316 1.1226 1.9542 -1.0490 -2.2906 3.6658 5.5322 + -0.8058 -0.9870 1.9765 0.8081 -0.8891 1.6549 -1.7178 -0.2062 -0.6134 3.7968 2.8384 4.3753 1.2045 -6.0029 -1.5145 -3.5656 0.8785 -0.8278 0.9419 -1.3448 + -1.9513 2.4604 2.9573 3.3043 2.2986 1.0394 -0.4185 -0.0890 -0.2841 2.2073 1.6514 0.3367 -1.0792 -1.4676 -0.8850 1.7747 0.0695 -7.9932 -5.3486 1.4171 + -2.8766 -0.2007 0.3439 0.7801 -0.0362 -1.8832 1.2162 3.7611 1.5511 -0.2914 4.4891 2.4265 0.5170 1.2791 -3.0822 -4.3172 2.1550 -1.7349 -2.5924 -1.5044 + -1.3853 -0.5001 0.6365 -1.9167 -1.9693 -1.6932 -2.5123 -3.1209 -1.5363 3.8772 1.7176 4.5613 2.2969 -1.7507 -0.4549 2.7398 -2.2572 -0.1132 1.3625 2.0183 + -0.2587 0.7517 0.0083 -1.5665 -2.9108 -3.8211 -5.3272 -2.2879 -3.3006 3.2010 3.9688 4.6713 3.8047 3.4665 0.6502 0.9612 0.0958 -1.5002 1.1994 -1.8059 + -0.0767 -2.8888 -3.8572 -1.6523 2.8392 3.7128 0.7093 -0.0657 0.9823 -1.6073 -2.1810 -1.5064 -0.6392 2.2679 1.7322 -1.1001 1.0422 1.4078 2.4192 -1.5382 + 2.1069 1.6101 -0.6015 -1.1106 -0.0731 0.3657 2.1738 0.6411 -3.2826 -4.2217 0.0005 4.1333 2.9287 4.0221 -1.0117 -7.1186 -0.3700 1.5812 0.1654 -1.9391 + -3.3989 -5.4211 -3.3823 0.1417 -0.2090 -2.9282 3.8367 5.4395 2.1603 -1.6658 -0.0286 3.8151 -1.6236 -0.4057 -0.8473 2.3634 0.3434 0.0424 -0.3374 2.1055 + 3.8095 -5.8994 -4.2159 -2.8701 5.1790 -4.6791 -5.6257 0.4437 3.5907 6.0531 -2.4206 -0.6190 2.0474 3.5867 7.1475 -4.6633 4.1906 1.2868 -11.1492 4.8074 + -5.2857 -2.3511 1.8870 -1.8753 -2.8109 0.3363 -1.9008 -0.4090 0.8741 -0.4525 -6.3796 0.4485 2.7092 2.5765 4.4129 4.7975 -0.3228 3.7712 2.7353 -2.7608 + -3.9913 -5.9775 -2.6898 8.0565 3.5971 1.2374 3.4590 0.3338 0.6958 -1.1912 -2.2406 -2.0748 0.0857 3.9701 1.1276 1.2332 0.6559 -3.8152 0.9255 -3.3971 + -2.4876 -2.5150 -2.0296 -1.0642 1.0080 0.6973 -1.7376 -1.5703 1.5923 -0.7283 -0.1226 -1.7315 2.4167 -0.4425 -1.5075 3.8846 0.5544 0.8966 4.6270 0.2600 + 2.8767 0.9007 0.0796 -2.1662 -1.5086 1.0148 -1.3370 0.8661 0.0749 1.4614 3.1800 2.1743 -1.6449 -2.7523 -2.7644 2.2901 -1.9100 -4.8716 -2.0883 6.1248 + 3.6336 2.1044 0.4628 -0.6805 -0.0353 -2.3281 1.0902 3.0334 -1.9070 -2.0882 -2.9673 0.1514 0.3556 -1.0151 -5.4063 2.3884 2.5624 -3.2553 3.9458 -0.0449 + -1.3869 -1.5992 1.4579 1.4992 1.7691 0.8878 0.9518 0.7305 -1.5050 -1.6287 -1.6402 -0.3868 2.7983 -2.2046 -0.5051 0.1956 7.1623 2.4667 -5.9139 -3.1488 + -3.5734 -7.3577 -7.1566 -1.3669 4.3200 2.1415 0.4237 -0.1707 3.4434 2.6751 2.2337 0.4895 2.5968 1.0123 -0.9145 -1.1189 0.9048 2.1474 0.4312 -1.1607 + -5.2465 -1.6283 -2.7428 -3.2948 -2.2122 4.3049 4.7808 4.7619 0.2262 -0.6089 1.1643 3.3590 -2.1676 0.2134 -1.1502 1.4193 1.4168 0.3538 -2.8694 -0.0796 + -3.4905 1.2508 2.0451 0.4490 3.1300 4.3899 0.1675 -1.3519 -0.0668 0.4245 -1.7121 0.2301 -2.2070 0.3069 3.1491 -7.5721 2.7986 3.8554 -4.1493 -1.6472 + 1.5232 1.5300 -1.0621 -1.4488 -0.8044 -0.3900 1.3086 -2.5549 -4.3776 0.5264 2.2421 -0.5299 -2.7363 4.9582 1.0929 1.1601 2.8351 1.9896 -4.9813 -0.2808 + 6.5366 -2.5283 -5.5972 -3.4516 -0.2385 1.8382 -1.6024 0.2804 8.8284 4.4416 -6.1238 3.7728 3.4763 2.9323 -2.3678 -5.5110 -4.9901 -0.1283 0.0084 0.4242 + 1.9342 1.5660 2.2346 1.0331 -0.6035 -0.4461 0.0271 0.7571 1.1796 0.2963 -0.9807 -0.5607 -1.4711 -2.5426 -4.1871 2.4178 0.2030 -1.7949 -3.6655 4.6035 + 2.2188 0.9702 -1.9037 -2.3323 -0.9270 -0.7473 0.4463 4.0069 3.2380 1.6378 1.5850 -1.9473 -1.2130 -2.1935 -1.9102 -3.3249 2.6456 1.0820 -1.3884 0.0570 + 1.8633 1.2717 1.6148 0.3758 2.9711 -0.8914 -1.2864 1.1672 2.0355 1.2245 -3.7030 3.7200 -3.0675 -1.9250 2.2356 -0.7355 0.5128 -4.4528 -2.9595 0.0288 + -2.2984 -0.5209 0.3609 2.6675 -3.6910 -0.3519 6.3822 3.0237 -0.1277 -2.2553 1.0403 0.9970 -1.3107 -1.9745 -0.1646 4.8839 0.1333 -1.3256 -3.4240 -2.0441 + -2.3190 2.2812 1.2138 -1.1727 -3.3340 -5.2226 3.6390 2.5124 -1.5642 3.4166 0.5330 1.8016 -0.3986 -2.9233 -3.7394 0.9982 -0.0060 -1.6833 4.3443 1.6231 + -2.2576 -2.6516 -1.1317 -1.2013 0.7393 0.1827 -1.2343 -3.2192 2.3728 2.7817 1.6779 0.8901 0.5320 1.4647 3.7014 7.0412 -2.6912 -2.5104 -1.2474 -3.2389 + -1.7690 -1.9167 -2.8243 0.8559 1.6454 0.6817 0.5231 -1.2522 -2.6542 -3.2288 -0.2864 0.0091 0.5513 -0.6182 -3.9328 4.4973 6.4951 0.4313 1.6808 1.1116 + -0.2744 -1.5780 -1.8323 -1.2019 -0.3620 1.2906 -0.2832 -1.9105 -0.8966 0.8634 -0.4648 -2.3172 -1.9676 -1.7065 0.8232 -2.4736 3.5667 5.3037 4.3018 1.1191 + -0.4003 -1.4016 -2.6548 -3.2373 -2.1471 -0.9075 -1.1057 1.1084 0.0584 0.6994 -2.2697 0.1501 -0.0187 -0.2177 -1.1214 2.5501 5.4533 5.8815 -0.4561 0.0366 + 2.4755 2.6766 3.3810 2.8797 -1.3067 -1.2604 0.4792 -1.5575 -2.0569 -1.1560 -1.3594 -0.7176 0.2831 1.2557 -0.1965 -2.5773 0.8488 0.4905 -3.0053 0.4234 + -0.5334 -1.6405 -1.4903 -1.2901 -2.0368 -2.4054 -2.0422 -1.2649 -0.3204 2.3946 2.8987 2.5774 -1.9494 -5.6321 2.8212 3.6550 3.9850 1.2152 1.3991 -0.3406 + -1.8395 -0.9841 -0.1468 -2.7046 0.5709 -0.0486 2.3079 -3.1973 5.7249 -2.0537 -0.8947 -0.5513 -1.5588 -0.0660 1.7712 1.4939 0.7539 0.8995 0.7376 -0.2144 + -2.1136 -6.4960 4.0091 -2.7287 -2.8520 0.0889 4.2865 1.1559 1.4489 2.3747 -0.2811 -1.6675 -2.1043 2.4825 1.5983 3.0151 1.4924 1.4598 1.4466 -6.6156 + 0.3044 0.5145 0.8314 -0.5726 -1.4732 0.5522 1.0454 0.7132 -0.3595 0.4703 4.9451 2.9593 3.4319 -1.7835 -2.7963 -3.6604 -2.7125 1.2113 -5.0055 1.3846 + 2.3458 3.2640 1.8110 0.4827 -1.6195 1.9882 1.8256 3.5857 4.1301 1.6235 -5.1588 -3.8052 -1.7214 -1.0231 1.3522 -0.3858 -5.6155 -1.3895 -1.6421 -0.0480 + 3.7883 2.2512 0.5915 3.6595 3.6582 1.2917 -2.0747 3.0623 -4.8462 -9.6783 -4.7828 -4.1622 -5.2776 -1.2559 2.3471 0.9386 6.0401 4.8334 -1.7435 1.3593 + -0.5609 -1.1658 -2.4817 -6.5550 -4.6100 -0.2509 0.7628 -0.8368 3.8495 3.9220 3.0356 2.0951 1.5781 3.7313 2.8834 -1.2291 -3.4270 1.5639 1.6072 -3.9116 + -1.4268 0.2383 2.3216 0.1248 2.0796 1.5987 0.8138 -0.2165 -2.9254 -1.2364 4.4075 -3.3005 -5.5475 2.3771 2.6523 1.5551 2.5380 1.7514 -3.2529 -4.5520 + -0.7746 0.9904 0.2665 0.8152 1.7416 -1.7222 -3.8193 0.6115 3.8698 -1.5065 -1.1919 -1.2590 -0.9540 1.8722 -0.1520 -4.1283 -0.5510 0.1951 0.7420 4.9546 + -4.9471 -2.6326 -0.7296 -2.9661 3.2611 5.2949 1.3584 -0.3484 0.0238 -0.5367 1.0370 -2.4283 -1.4686 5.4446 2.1704 -0.2969 -1.9436 4.7301 0.0591 -5.0816 + 0.8281 -1.2416 -3.3762 -3.9320 -1.3993 -3.0591 -0.9292 2.5927 2.1047 2.4478 0.5704 1.2666 0.5289 -0.2372 1.2696 3.8278 3.1348 1.0903 -4.3525 -1.1346 + -0.7430 -0.7480 -1.2610 -0.7625 1.0816 1.6556 1.2019 2.2812 3.2082 1.5688 -1.3094 -2.0639 -2.5822 -2.2528 -1.3400 -1.6246 0.6375 2.8900 1.4778 -1.3150 + 0.8081 -1.3233 1.3342 -0.4629 2.2543 -1.7177 1.7285 2.2425 -4.4738 0.6367 1.5497 -1.2988 0.3335 -1.1590 0.1744 -4.2648 5.1183 0.3072 -2.6556 0.8684 + 4.0404 1.9094 -0.2474 -1.1600 -0.9167 -2.2516 3.9300 2.7965 0.9719 -0.3105 2.6858 -1.8089 -6.0898 -5.0707 2.0812 -0.0971 -1.5043 0.0458 -1.0273 2.0234 + 0.1375 0.2390 1.2366 1.5253 1.5536 1.1452 -3.3801 -3.1595 -2.7411 1.0175 6.4814 1.4661 -1.2521 -3.3744 -3.5432 -5.4270 -1.3071 4.3703 3.6696 1.3422 + -0.0191 0.4401 -0.0551 1.2610 4.9915 1.8859 4.2946 2.2533 1.2460 -0.3261 -1.8245 0.5397 -0.9620 -2.4208 -1.3984 1.3654 -2.3100 -4.0785 -1.5595 -3.3235 + -4.1713 -3.8609 -3.6233 -2.2953 0.4590 -0.2721 -0.1506 -1.7078 0.0356 1.5074 1.0712 0.7854 0.7858 0.0168 -0.8160 0.0810 0.5445 4.5197 7.1653 -0.0742 + -2.9674 -1.4650 1.0679 3.2208 3.0814 -0.6959 -0.9252 1.0871 0.1680 -0.9317 -0.6966 -1.1041 2.3656 1.0874 -0.7021 -0.5843 -5.9540 -1.0591 4.3651 0.6421 + -2.3881 -1.1722 -0.2878 -1.3100 0.1054 2.7187 3.1286 1.3950 2.5138 0.8551 -1.0485 -2.7991 -1.7081 -1.9009 -0.2092 -1.1297 5.4416 0.9634 -4.8359 1.6679 + 0.3475 0.6761 -0.9160 -3.3303 -2.5114 -1.3053 -2.4606 -1.5909 -0.1066 1.2867 0.1087 0.6627 -0.9380 -2.1561 -4.1442 0.5530 3.6775 4.3771 4.5604 3.2095 + 1.8172 1.9142 1.3748 -1.2576 -1.3958 0.4060 -0.4725 -1.2643 0.8079 -0.6725 -3.4257 -3.2969 2.8901 -0.0329 4.2131 0.8390 -2.3538 -2.2196 3.3371 -1.2078 + 1.9496 3.6573 4.2326 1.1863 1.8389 -0.7982 -0.8176 0.9762 -2.1796 -2.4082 0.4600 -2.1099 -0.1300 5.8933 -3.2271 1.4122 -3.0287 -5.0286 0.1022 -1.9807 + 0.7977 0.4131 0.7926 0.7439 -2.7150 -3.1860 -1.6061 -0.5456 3.5797 0.0724 -0.4993 0.4656 -0.7994 -0.5991 0.0862 3.6997 -0.5342 -0.3047 0.9064 -0.7678 + 1.0025 0.1292 1.8299 -0.2181 -0.3367 2.6298 -1.6812 -0.7903 1.0473 -0.5336 -4.1833 2.6382 0.9480 -0.3031 -1.3062 -0.6706 1.4954 1.1070 -3.9483 1.1443 + -2.8220 -2.9373 -1.7368 -1.1113 0.7976 1.0210 2.2881 1.7823 -1.6829 -2.1388 -0.0636 0.6047 1.3691 0.5354 -2.8472 1.9900 -0.2414 -1.8409 2.3664 4.6674 + 0.8100 0.5306 3.2216 2.7904 2.3222 -0.0940 -1.2977 0.6699 -0.3153 -2.0729 -0.4524 0.1611 0.0422 -0.9458 -1.6284 -1.0590 0.4113 -0.2203 -0.7025 -2.1711 + 0.6469 2.9521 -0.5269 -2.8396 -2.8290 -0.4167 -2.6035 -1.8694 -1.2710 -1.1950 -0.6111 -1.1719 -0.0843 4.1129 3.9912 -0.9572 -5.8704 3.6319 4.0418 2.8690 + -1.7675 0.6361 2.5132 2.0830 1.8929 -1.5061 -3.5844 -4.2969 -2.8299 -0.6870 0.8308 1.3968 0.3529 4.0998 -1.6161 1.3306 0.5600 -0.5129 -1.6573 2.7621 + -4.0964 -1.5173 1.2551 0.2978 1.5682 0.3497 -1.4315 -2.0554 -0.5756 2.5392 0.7900 3.4286 -2.9558 -1.7034 -0.8459 1.0513 5.1871 -2.5294 1.2695 -0.0257 + 0.0328 -1.2155 -1.2836 -0.9363 -1.2229 -1.6930 -1.8595 0.3399 -1.5276 -1.0107 6.4040 -1.9072 0.7733 0.6079 2.8719 3.0211 2.3070 -3.5448 0.3434 -0.5002 + -6.6638 -3.5679 2.7288 3.1465 -1.8044 -3.2026 0.3954 1.5738 0.6840 -0.5029 1.1915 -2.4277 -2.8920 -0.4612 0.5352 2.0495 4.9107 0.7993 0.1809 3.3270 + -7.7693 -2.7271 -0.5302 -1.6862 -2.6750 -4.1941 6.2224 4.1406 1.2187 -0.8566 3.2170 2.7593 3.3324 -2.3093 -1.4924 1.2643 -2.9807 2.3328 4.6730 -1.9398 + -0.3214 0.7654 1.4453 1.0347 0.7854 -0.0281 0.6653 2.1756 2.5539 2.4886 2.8291 -2.3264 -5.6113 -4.1472 -2.1955 -0.1794 -0.8897 -2.9162 2.0658 1.8062 + 0.0689 -0.0814 0.5156 -0.9104 1.9645 1.4890 -0.7622 -1.4287 1.4489 2.2731 1.0561 3.0605 2.5928 -3.3062 -2.8865 -3.6767 -3.9506 -2.1727 -0.4806 5.1867 + -2.7262 -0.4080 -7.2353 0.2532 -1.7494 4.8406 2.4161 -8.2402 -0.3311 1.0612 3.3760 -0.5373 3.2052 3.7144 -2.9286 10.7765 4.9188 -8.1638 -0.8809 -1.3612 + 3.8706 1.5102 0.3780 -7.4590 -0.9006 2.4899 2.4680 -2.4184 -1.4186 0.2908 2.1056 2.4328 4.2260 -3.9887 -6.7913 -1.0651 2.4289 0.5874 4.8024 -3.5488 + -1.2691 -4.1749 -2.7407 1.4930 1.4665 -0.9212 -1.4630 -5.1747 -2.2251 0.8474 0.8540 6.6525 0.1651 -0.5706 -0.3287 3.1547 -1.4600 0.8291 2.5923 2.2733 + 3.8347 2.4921 1.8361 2.4264 0.2839 -2.7167 0.2831 -0.5469 -0.6398 0.3108 1.0194 -2.1389 -0.8456 -4.7666 -2.5049 1.2075 -5.6326 1.3761 3.1197 1.6020 + -3.7739 -1.8529 0.6063 -0.8541 -1.6370 3.6233 0.8975 1.9643 3.5106 -0.3623 -2.4744 -0.7625 -0.7853 -1.5705 0.2237 -0.6207 0.0761 -0.4742 1.5632 2.7029 + 1.1570 0.8704 1.6827 1.2654 -0.5848 -2.6900 -2.6615 -0.9589 -1.6641 -2.7103 -1.4381 -0.4901 1.8045 -1.5216 -1.1394 5.0021 4.1235 1.5550 -3.7877 2.1859 + 2.5420 1.6423 0.7395 0.8846 0.9016 2.7752 3.3824 2.5574 0.4625 -2.0442 -1.8686 -0.1860 -1.7933 -5.0038 -3.5773 -1.2917 -2.0519 -1.8556 1.0146 2.7701 + -4.4081 -3.4569 -0.8021 0.2773 2.5574 2.3862 1.3118 0.1408 0.6688 1.9053 -1.5497 -0.5855 1.2457 -0.5521 0.9630 -2.2470 -2.8924 -3.7430 6.1844 2.5961 + 0.4138 -4.3685 -4.3743 3.3166 1.9814 -1.9703 -1.1246 -1.8788 1.8555 2.5293 -0.6354 0.3032 3.9855 0.4439 -1.3412 -2.6733 1.5434 2.8406 -1.3900 0.5430 + -0.9949 0.7752 0.5153 -0.3382 0.7590 -0.3806 0.6362 -0.0446 0.6992 -2.3407 -2.2180 -0.8794 1.9075 1.9883 2.6403 1.4665 1.1384 1.9497 -0.4373 -6.8420 + -0.3690 1.5979 3.6520 2.5947 0.9915 -0.4587 -1.5761 -1.3889 -0.8595 -0.0002 0.3336 2.0392 1.9215 -1.5962 -2.1409 -2.1868 -2.0225 -6.9604 4.1862 2.2427 + 0.7081 1.2472 1.2274 -0.7827 -1.3963 0.1531 1.0164 1.1220 1.4236 4.7449 4.1970 -1.6566 1.4602 -0.4324 -5.0812 -4.6776 -3.2034 0.2020 -0.8325 0.5609 + -0.8996 -1.1981 -0.4982 -3.3678 -3.1656 -0.4840 -1.6889 1.4162 1.8691 1.8944 0.6984 2.1971 0.7659 -0.3399 -1.0540 -1.9648 4.8986 2.2357 -0.4350 -0.8795 + -3.0303 -1.1024 -3.6351 1.8563 2.2581 0.9526 -1.3180 1.0520 0.9676 1.4472 -0.2536 1.6459 0.5539 2.7964 -2.3045 3.1405 -0.8848 -0.5008 -4.0553 0.4143 + -2.0566 0.3509 1.5804 -0.1468 -1.2009 -5.1236 -1.6316 -0.6083 -0.2262 -3.8727 -1.4106 4.1461 2.8353 5.5841 2.0344 -1.3445 -0.2669 1.6597 0.4425 -0.7448 + 0.4237 5.5027 3.4466 -0.9733 1.1101 0.3187 0.4016 -0.8934 -4.1773 1.2529 -1.0141 1.7716 -1.4207 2.0071 -6.7629 -1.4260 -0.8769 -1.9766 2.0620 1.2241 + 0.5250 0.4342 -1.3517 -2.8754 -3.0586 0.6098 2.2679 1.4929 1.4608 3.1011 1.5060 -4.8013 -7.5268 -0.6504 -0.5030 2.7780 2.8557 1.0462 3.4571 -0.7675 + 3.5730 1.8714 -0.1581 -1.7722 -0.3433 -2.7056 -3.0806 -1.9100 -3.1355 1.0548 -1.9906 0.4699 0.0873 2.5566 -0.1726 -0.8702 2.1464 4.3968 5.0995 -5.1171 + -0.6968 -1.4896 -0.0495 0.8149 1.4216 -0.0327 -1.7535 -2.2313 -0.3210 1.9568 4.8784 -1.9324 -1.8058 -2.6431 -3.7316 0.3685 1.1306 4.9893 -0.2577 1.3848 + -1.4341 -1.1497 -1.8056 0.1413 2.5710 2.9390 0.7055 -0.4196 -0.2614 0.1608 -0.6195 -0.3637 4.1643 0.3576 0.0984 2.2749 0.4728 -7.3150 -0.1921 -0.3248 + -4.2895 -7.0396 -4.8802 -1.5844 1.4442 1.8886 0.5829 0.1608 -2.6352 -1.0632 0.4985 3.2097 6.3270 9.0622 8.0546 -0.4311 2.1200 -2.0642 -2.9293 -6.4319 + -2.8918 -0.9105 -1.1049 -1.3358 0.0333 -0.4429 1.1140 3.2177 -0.2479 -0.9423 2.0518 -3.4204 -3.3752 -1.5080 4.5184 3.5104 0.8370 0.3279 4.1906 -3.6215 + 1.1012 2.8300 4.9338 4.9135 -1.4413 -4.6933 -2.9852 -2.2104 -2.0709 -0.2446 -1.7323 0.4460 -0.3491 0.7293 1.2549 1.5520 -1.6591 -0.0263 -1.3091 0.9607 + -3.8105 -2.2705 -0.4801 0.0030 -1.0835 -0.8967 -1.8480 4.3428 2.2775 1.1261 1.5948 4.4091 3.5564 -2.1928 -2.8051 -1.2385 -1.6399 -0.9968 0.5731 1.3796 + 4.5581 4.2833 0.3675 -0.5438 1.9400 3.0816 0.3261 -0.8096 -2.6679 -2.1086 -0.8131 -4.9186 -3.6340 5.7405 0.0185 0.6308 2.5276 -4.0355 -1.8846 -2.0583 + -1.2863 -0.2640 -0.1222 1.8197 -0.8215 -1.4173 6.3047 -1.3136 2.0735 -0.1627 3.0262 1.5599 -2.3044 -2.9292 -2.1284 -0.0060 -0.2974 -0.4468 0.2977 -1.5818 + -0.3043 -4.9833 -4.4641 1.6692 5.7638 4.6547 3.7525 -0.9610 -3.9550 -2.2488 0.7885 4.2621 3.6322 2.1375 -6.9698 1.9153 2.5541 -3.4886 -0.8469 -2.9081 + 1.6869 -2.2603 -5.3537 -1.9240 -2.3796 2.8412 5.8922 -3.3838 0.7866 3.3273 0.7220 4.1493 -2.8075 1.2195 -4.1220 2.7912 5.5751 -0.9361 -3.7960 -2.0281 + 1.8743 1.5687 0.9347 -0.0119 5.1974 -0.9505 -1.5819 -0.0387 -0.2355 2.4835 -2.7180 -2.1816 -1.0347 -1.5606 -1.4552 0.4355 -1.6713 -3.1551 -0.2146 4.3156 + -0.5064 0.6473 1.6157 0.4031 -0.7786 0.4664 2.3609 -0.8533 -2.7426 0.0584 3.6047 -1.3728 0.0256 -2.0089 0.7575 -3.1106 -1.7839 0.9710 1.5709 0.6757 + -0.1854 -0.4792 0.2327 0.5721 1.3762 0.9344 1.6367 0.2158 0.6455 0.9744 -3.1471 -5.2734 -4.3577 3.1646 3.1365 2.2803 1.2303 -1.9960 -1.5643 0.6037 + 1.5540 2.1016 2.3825 0.8004 -2.0847 -2.7548 -1.5073 0.1971 -0.2707 -0.7690 -1.8324 -0.6385 -4.5361 -6.8801 5.4599 2.6660 1.1252 2.2850 1.3862 1.3159 + -2.3092 8.5984 0.5061 -0.6741 -2.4670 3.2934 -0.6680 2.0327 0.6889 -1.8602 -0.9325 -1.2001 -4.3458 -2.5628 0.6948 -1.1889 0.4479 2.5950 1.2931 -1.9416 + 0.8421 1.5717 0.5751 0.5951 0.4783 -2.2142 0.3553 6.0828 3.0287 -2.3343 -3.2264 -0.7759 -2.0090 -0.3873 -2.4778 0.6768 -3.4990 -0.8957 4.2903 -0.6766 + -0.6942 8.6603 -5.4134 -0.8727 -0.3504 -3.3092 -0.5586 -0.2913 2.8905 -3.0583 -2.9724 -1.7470 3.3250 -1.1022 -4.4193 7.6704 0.5149 -0.7173 -3.6000 6.0453 + 0.6802 1.0947 1.2451 3.8611 4.5266 1.8951 0.7625 6.2260 2.5223 4.8966 1.8380 -0.3753 1.3861 -7.5361 -6.8810 -3.7307 -4.9193 -2.5727 -4.5778 -0.3414 + -1.4648 -1.9631 -1.4302 3.2813 2.7021 -1.3306 -3.5822 -3.4123 -2.6251 -2.5540 -2.9830 1.7868 1.1612 1.7944 0.6471 3.7619 3.5844 -0.4360 2.9666 0.0957 + -2.6065 -0.4815 3.7667 3.2609 1.4317 5.8806 0.0973 -3.3441 -3.2874 -4.9485 -1.6589 0.7537 0.3424 0.9215 3.8135 -4.2041 -1.8751 -0.8917 1.0067 2.0227 + 4.0705 -1.6316 -3.7042 -1.3612 1.3654 1.6949 -0.0461 -0.4280 2.9316 0.2615 -3.3312 0.4341 1.2323 -0.8543 -0.8620 -4.8579 -6.1758 3.1382 4.9340 3.1899 + -4.1097 -4.1313 -2.7947 -1.2657 -0.6757 0.0158 -0.2664 -0.7288 -2.8256 -1.9407 0.4965 2.0938 4.2596 1.7443 2.0920 3.1468 3.6217 1.9383 0.0884 -0.7586 + -0.5474 3.7117 4.4423 -1.1991 -3.2034 0.2008 -1.1999 -0.3645 -0.3658 -1.5068 4.3945 -0.5362 -1.4209 -0.9138 -0.0750 -0.9590 3.3133 2.7513 -7.0608 0.5385 + -0.2792 1.0180 0.1758 4.6409 0.9990 0.8572 -2.2212 -4.3593 1.0210 5.0992 3.1964 1.4429 -1.7425 -0.9214 -2.3245 -1.3975 -6.8773 2.8027 -1.1862 0.0560 + 1.7064 0.3215 -0.2518 0.0527 -2.5377 -4.4163 -3.0416 -0.1822 -1.1887 -2.9410 0.6761 3.4948 1.6101 1.2626 0.2612 5.6220 -3.9114 -1.0915 4.1888 0.3661 + -1.7866 -1.1389 -0.0309 -0.9349 0.3853 1.9195 0.2339 0.3886 0.9745 1.4208 2.5313 4.3943 -4.6360 -2.5445 -2.1898 -2.5330 -0.3527 4.7621 0.5928 -1.4558 + 7.8057 -3.8468 0.8827 0.8768 -4.7631 -5.1731 0.0664 5.3199 -1.7890 -4.3428 1.9966 2.9221 -4.5512 5.1760 0.5820 -0.2561 -0.2887 0.6505 -0.8654 -0.4024 + -2.5780 -0.0834 0.1440 -1.6096 -4.1370 -4.8240 -1.6968 2.0832 4.4015 2.3414 0.0326 -1.7738 3.0088 2.5338 2.2405 0.7822 -3.4270 2.3235 0.3274 -0.0892 + 2.1843 2.5930 1.3745 1.7373 2.8715 2.7285 -1.1274 -0.1783 0.9497 1.0004 -0.2974 -0.2919 0.6463 0.2228 -1.5085 -5.8708 -3.6910 -0.8536 -2.5539 0.0647 + -1.6643 -0.8616 0.2098 2.2486 4.6647 3.8540 2.3834 1.3656 -0.2611 -0.7523 -0.2703 2.8630 1.1570 -1.6263 -4.3844 -3.5346 -0.0484 -0.8649 -4.9645 0.4867 + 0.6824 1.0939 0.6691 0.3291 -0.2396 -0.9714 -0.9487 0.4056 -0.8422 -1.0662 -0.8121 -1.8756 1.8363 1.0681 3.7568 2.7493 -2.2790 1.4171 -4.9986 0.0258 + -2.0461 -1.9677 -1.8134 -2.6831 -3.0621 -1.6874 2.2873 0.6491 1.7878 1.1808 1.5028 -1.1540 -1.2923 -0.0603 -3.5107 6.4917 4.0814 1.4288 0.0396 -0.1721 + 1.7926 0.6400 0.0107 -3.4114 12.2384 -4.2391 -4.1672 -5.5139 -1.6966 5.3015 -0.9447 -4.0014 3.1093 5.2076 5.6201 2.3962 -5.3615 -1.8057 -0.2628 -4.9121 + 1.2301 -0.2653 0.0535 -2.1294 -3.7763 -2.5405 -1.3165 1.3892 1.1754 1.8095 2.3931 -0.5310 -0.8291 0.5926 -0.2725 -7.2218 1.8619 3.8534 3.4226 1.1011 + -4.1789 -3.5276 -0.8324 -0.4176 -2.4000 0.0369 0.9853 5.4189 -1.8625 4.5416 -0.0534 -2.2531 -1.8390 3.0263 1.3992 -0.9141 -0.2291 0.6856 2.4454 -0.0313 + -6.4975 -4.6128 -3.3675 -4.8986 -0.8354 2.3584 -0.6088 4.1352 0.6068 0.7211 0.2750 -2.0557 0.4476 2.7831 4.6078 -0.4014 5.9849 2.1061 1.2312 -1.9795 + 1.3230 1.1384 1.2773 1.7150 -0.7509 -3.8269 -1.1290 -0.1851 -3.0673 2.4551 -1.8006 -0.5768 2.5367 -0.4358 1.0236 2.8956 4.5161 -0.4242 -3.2309 -3.4534 + -0.3567 2.4123 4.0459 3.3988 2.0862 -2.1774 -5.1260 -1.0930 -2.2588 -0.1938 0.5021 -0.2723 1.0175 -2.6722 0.0196 -1.3546 -1.6702 0.8080 0.6509 2.2336 + -3.1316 -2.5501 -0.7668 1.9764 1.8647 -0.0801 0.9053 0.9563 -1.0947 0.3992 -1.9982 2.2428 2.0122 -5.4193 -2.6261 -0.7274 0.7121 1.7109 3.9486 1.6660 + -7.9949 4.0953 3.7255 -1.4546 8.0933 1.7853 -4.2627 4.4208 9.6075 -2.0281 -0.5418 -3.5660 -1.9219 -6.8006 -1.4426 -1.8720 6.0536 -6.8174 0.7937 0.1276 + -1.9787 -1.0115 0.4548 -0.6009 1.0489 -0.3883 -3.8168 3.5539 1.8044 -0.8020 2.2377 4.0130 2.5264 2.9341 2.9402 3.1940 -12.1756 -4.5827 0.7140 -0.0649 + -2.6937 -0.9969 0.6136 -0.2092 0.1112 0.1733 0.0276 0.6804 -4.1810 0.4835 3.1126 -0.8365 -1.6005 3.1133 -1.3297 -0.4657 2.8302 2.7130 -2.7204 1.1750 + -4.2305 -1.0868 0.5304 -0.1415 -1.2124 -0.8981 -0.8790 -0.8763 -0.9777 1.0148 4.1145 2.1714 1.2310 -1.6938 -1.4429 1.2355 6.6877 0.2382 -3.2655 -0.5189 + -2.1503 -3.4325 -3.4567 -1.0918 0.5993 0.3527 0.3437 0.2288 0.7821 1.0173 2.2607 -0.9887 -0.3595 4.4457 3.7070 1.5475 -3.7173 0.7682 -0.5101 -0.3462 + -3.7019 -3.2897 -0.3993 1.1225 4.7873 3.2500 -1.8347 -2.0699 0.0727 1.2966 -0.1512 1.4478 -2.4263 -0.3987 -2.4159 -3.3225 2.8445 0.7735 0.8954 3.5197 + 0.0807 -1.1966 -2.9464 0.8465 1.6234 1.1215 1.2824 3.7187 2.3234 -3.7329 -7.3924 -3.2192 -4.4371 -4.8564 3.1927 2.3654 4.5154 -1.0330 4.4531 3.2910 + 0.0329 2.1961 1.8627 0.5090 -2.3566 -3.1635 -1.4865 -3.4766 -3.4834 -4.5095 -2.4040 -5.5450 7.4389 3.1752 2.6905 4.3345 1.8695 -0.0444 -0.0458 2.4056 + -4.2525 -4.2615 -2.8448 -1.4174 -1.4188 -1.0941 0.0321 2.7304 1.6246 3.7714 3.6887 2.3979 1.9374 0.7696 -7.0469 0.1811 3.9202 4.8839 -3.2038 -0.3977 + -0.4109 -0.9615 -1.1887 -1.3425 -1.0669 -2.7829 -2.9395 1.2890 1.6984 -0.5601 1.6775 -0.5469 -0.8102 -0.2298 -0.7565 0.3451 3.1792 2.2226 4.5535 -1.3689 + -5.7264 -3.6531 -1.3521 0.1463 1.7110 3.1890 0.7838 -1.0176 -0.2195 1.4384 0.0207 -0.4968 -1.0491 0.1749 1.0739 2.0378 1.3580 1.2360 0.4429 -0.0980 + 0.7773 -0.8979 -1.2165 -1.9337 -2.9157 -4.0101 -0.3148 -4.6460 -4.2945 4.1770 5.5969 1.4549 3.5448 1.4079 -0.8343 -3.2017 5.5239 2.2268 -0.3838 -0.0607 + -0.6985 -0.6307 2.4635 -0.5381 -0.2883 3.4018 2.1088 2.9180 -0.5123 -0.9613 0.0579 -4.3385 -3.8027 1.0743 5.0578 -1.8280 -2.2439 -4.7171 0.9386 2.5388 + -4.5218 0.1558 2.8380 2.3948 -1.9436 0.6339 -0.7954 1.9788 1.5836 1.1696 -4.5526 -0.5640 1.4447 7.0584 -6.8023 -4.5393 -6.0449 -0.5031 6.1354 4.8739 + 0.3624 -1.2047 -2.0776 -1.5816 -0.7523 -0.4259 1.9866 -0.1702 -0.4710 -1.9514 -1.5113 -0.2099 2.7070 3.8409 4.1635 -1.6517 0.8031 3.1180 -4.9637 -0.0100 + 3.3248 2.1375 1.3785 0.2103 3.0519 1.4244 0.2968 -0.3016 -1.2728 0.9142 0.2763 0.9396 2.3345 -1.6742 -3.9431 -3.4421 -2.5066 -1.7463 1.1359 -2.5381 + 7.3832 7.8862 -6.4414 -8.9767 0.1372 -3.3099 3.3247 -2.2516 -2.6663 1.5419 7.2572 -0.6762 -1.4552 3.0048 6.9210 -8.5959 -2.6649 2.5301 -0.7893 -2.1588 + 1.3303 0.1631 -2.4438 -1.2379 0.9953 2.7203 1.9038 1.2786 0.3887 2.8669 0.3680 -0.1846 5.6338 2.1238 -1.0482 -5.2051 -1.0787 -7.2281 -1.5184 0.1722 + 0.1645 -0.9895 -2.0311 -3.1149 -3.2980 -2.1249 2.0221 2.1048 -0.3058 -1.0676 -2.5289 -1.4215 -1.7517 2.9140 4.1244 -0.6494 2.6877 3.2611 2.5839 -0.5792 + -0.4639 -1.9119 -0.6903 1.0816 1.7980 1.1866 0.4220 1.5316 0.8944 -2.9810 5.6782 3.5367 -0.9955 2.4778 -1.9477 -3.1693 -0.0340 -1.9442 -1.8186 -2.6506 + -3.9601 -3.1838 -1.3333 -0.9936 0.4708 1.8640 0.2776 -3.5639 -1.8523 3.8979 6.3274 1.9935 2.4867 -0.2835 -0.1329 -0.9778 1.4936 2.4315 0.5084 -5.4702 + -1.9007 -8.9624 0.7258 -2.6244 1.8683 0.7413 8.1690 -2.3570 -4.2143 -5.3821 5.3979 -0.3396 -0.0209 2.4866 -1.7903 8.5769 -2.6396 -4.5135 0.4288 6.3503 + 2.3682 1.2735 1.0581 0.7198 -1.3884 -1.1783 2.7862 -0.3150 -4.4216 1.0457 0.8020 0.2322 -1.8255 0.9933 1.5522 4.2681 -3.4105 -1.8681 -3.1691 0.4773 + 0.1022 3.5273 4.7298 1.5753 -3.6041 -2.4060 0.8414 1.2204 1.0785 1.4517 0.9533 1.0682 -0.0095 -1.2482 -3.7150 -1.4924 0.0586 0.2151 -3.5086 -0.8381 + 2.6097 1.3046 0.1797 -0.8433 -0.8002 -0.6737 -0.7817 -0.0181 -1.8564 -0.0021 1.7429 2.1363 2.4019 0.8520 -1.2013 -2.3776 0.1614 -1.6535 0.2922 -1.4730 + -1.1555 -1.9989 -3.7971 -3.5419 -1.7702 5.6208 1.6756 -3.4769 -2.2174 -0.5921 -2.9465 2.4449 3.2181 2.5732 0.5741 1.4008 -1.6104 2.6683 4.0017 -1.0706 + 2.6808 2.4971 2.2595 2.6039 2.5012 2.7248 0.3061 -0.5761 -0.0415 -2.4607 -1.2162 -0.0800 -2.7145 -3.3777 0.3468 1.3821 -2.9010 -0.5334 -2.3262 -1.0750 + -1.4573 -0.7869 0.2356 -0.1795 -1.7997 -2.4756 -0.7083 -1.2917 -0.2409 1.8121 2.3854 -0.0780 -2.6742 0.8926 3.1169 2.4329 -3.2335 1.5184 1.6752 0.8566 + 1.3578 1.5299 1.0786 -1.5960 -3.3648 -1.6673 1.3592 5.7139 -0.3364 -0.8154 -1.0911 0.3285 1.2167 -6.5169 3.5759 0.3841 -3.4189 2.2520 -0.3564 0.3665 + -3.9427 -4.1692 -3.9599 -2.7914 -2.7852 0.8501 2.1268 3.1929 2.9997 0.9798 3.7115 2.7044 0.8023 -1.3597 -0.1213 1.8505 0.8537 2.3570 0.4425 -3.7419 + 1.1259 1.7278 1.7181 1.0824 0.9378 2.2855 -0.4426 -2.0998 0.2868 -2.3258 -2.4774 -3.5030 -2.1920 -0.0403 0.0689 -2.1823 -1.7516 0.3348 2.6371 4.8097 + 2.6282 3.1949 1.4763 -1.8168 -2.3026 -0.1157 -0.0177 1.6877 0.8500 0.1002 -0.5211 1.2286 1.5164 -0.6411 -0.9348 -3.1872 0.1863 -3.1762 -3.7899 3.6345 + 0.6239 1.6179 1.2014 0.2608 -1.9920 4.7736 2.9884 -1.6687 -1.5700 -3.2904 2.3265 0.1217 -0.6529 1.1537 -1.3430 -3.2660 -0.7427 -0.3946 -0.8553 0.7078 + -2.5785 3.3274 0.7827 -1.1641 0.3099 2.0930 -3.8923 -2.1233 -0.2174 -1.0352 2.3827 3.2008 -1.3061 -1.3553 2.0138 -4.8137 2.2926 -0.4492 0.2262 2.3061 + 0.7030 -0.6796 0.6702 1.2330 0.3286 -1.1249 -0.2281 0.9008 -0.4257 1.5252 0.1413 3.8708 -2.7125 -0.1048 -1.3046 -2.6469 -1.7645 -0.4236 2.6448 -0.6022 + -2.0396 0.9147 3.7884 2.4844 -0.2561 -2.4529 1.8969 -0.1479 0.6950 -1.2549 -4.9008 -1.2459 0.9313 0.6906 5.2636 -1.1277 -0.2394 -2.2895 -2.5856 1.8753 + 1.6780 -1.6532 -2.7599 -2.2450 0.5197 -1.6003 4.4426 1.0934 -0.3109 0.9191 -3.4242 1.3304 -1.5208 -0.9853 -0.2434 3.9418 0.4425 -2.2543 4.6335 -2.0037 + 2.2658 -0.6139 -1.3935 -0.0563 -2.9550 -1.9056 3.4601 -0.3817 -1.6475 -0.2910 -0.5503 1.7727 0.0114 2.6384 2.8574 0.5346 -5.4829 -2.6161 0.9580 3.3952 + -2.9553 0.0039 3.9564 2.2087 -0.9348 -1.5953 -1.3780 0.1552 -2.1548 0.7917 1.8242 1.6997 -1.8826 -0.8677 -0.7876 -0.2152 2.3842 2.1467 1.7116 -4.1110 + 0.7023 1.9303 1.0064 0.0165 5.4286 -1.1464 -1.0459 -2.0088 -1.2634 -2.1806 -0.6159 0.3372 3.4050 -1.1188 -2.8596 -2.3910 -0.5550 5.4226 -1.0697 -1.9937 + -0.8683 0.0341 1.1306 -1.3868 -1.9833 2.9612 -0.7025 0.9705 -3.1777 4.1388 0.7353 0.3664 2.0843 0.2998 -0.4050 -1.1895 3.2137 -5.0324 1.1351 -2.3244 + -1.0092 0.5101 2.3070 2.1852 1.5304 -1.7001 1.6095 -1.4570 -3.9762 -1.6422 -0.2532 1.3474 0.8974 0.9819 -2.2295 4.7058 -2.0380 3.1038 -2.5420 -2.3311 + 1.9713 1.0803 -1.0686 -1.2321 0.3041 -0.5899 -1.6032 -0.6543 -2.1903 -2.1676 0.3844 0.2905 -0.5787 -1.1285 -3.3703 -0.5637 0.3705 2.2696 8.3763 0.1004 + -2.3313 3.6108 -3.7738 2.3534 -6.3897 3.9802 2.8098 6.2413 2.5170 5.1260 2.4541 -1.7202 -4.9921 -5.7179 -3.3204 5.3271 2.0124 -5.7657 0.7907 -3.2116 + 0.3230 1.0311 1.3660 0.9706 2.0785 2.0724 -0.0151 -0.8301 -1.1195 -2.8044 -0.9819 0.0417 0.0944 -1.2077 -2.2323 4.1593 1.4207 -2.7654 -0.5102 -1.0909 + 1.0182 0.5812 0.3232 1.7040 1.6371 0.0882 0.7883 2.0623 -2.4549 -1.7632 -0.0828 0.1245 -1.0882 -0.0487 -2.0254 -0.8118 -5.9132 2.5533 0.4880 2.8199 + -2.1755 -1.4110 0.7926 3.1903 3.2045 1.4005 2.2246 0.4995 1.4795 1.0003 1.4155 -1.8108 -1.7649 -2.0289 -4.9177 1.9399 0.4644 -0.6846 -2.6827 -0.1356 + -2.3372 -0.8774 1.8295 2.5713 0.4237 -1.6200 0.7250 1.2049 -2.5557 -1.7837 -2.0535 1.8608 2.0142 1.1559 0.4140 -2.2055 2.6316 -1.0207 -0.4407 0.0634 + -6.4760 2.3566 6.2881 1.1780 2.2768 0.5492 3.6691 1.5956 1.5393 0.8045 -2.4474 -1.1396 -3.0192 -2.8013 2.1788 0.9584 -4.0593 -1.3318 -0.6033 -1.5164 + -0.2224 3.1469 4.1918 -1.5853 -2.9401 2.4424 -2.0556 -1.6902 1.4657 -1.4987 -4.5783 -3.9175 1.8499 2.5001 -2.9926 -3.1367 4.3814 2.8761 -0.3135 2.0766 + 0.2838 0.7448 1.5373 1.7127 1.9184 1.9954 1.4552 0.6636 -0.0775 -1.4076 -2.7023 -2.4765 -6.0615 -4.2297 -2.8214 4.4402 0.5975 1.2302 2.2798 0.9178 + 0.1873 0.8058 1.4948 0.4584 -0.6762 -2.1053 -0.4098 -0.9510 -0.4347 -0.3909 -1.0508 -2.5837 -1.0389 -4.2899 -4.0647 3.8453 2.2675 2.8481 4.5950 1.4936 + 6.4165 4.7690 2.1643 -0.5306 -1.7418 -1.1821 0.4655 2.4797 -1.0005 -2.7835 0.6462 1.0540 0.1648 -0.2195 -1.2133 -1.6876 -0.2896 -1.1843 -4.2375 -2.0895 + 0.6591 -2.4247 -3.5305 -2.0684 0.7993 0.5286 -1.0223 -0.9537 0.6266 1.4075 1.4620 1.6652 1.3324 -0.3799 1.6047 -0.4030 -1.4183 -0.7574 3.5079 -0.6351 + -0.7402 -0.5022 -0.0104 -0.1501 0.0126 -0.8303 -0.6338 0.0643 0.7573 4.3586 2.2234 -0.7379 3.8453 0.8151 2.8221 -1.4249 -1.4011 -3.5524 -6.4818 1.5666 + 1.2970 2.6835 1.2613 -1.8292 -0.9390 -1.6773 -1.9287 1.2477 1.3854 -1.9138 -1.0744 1.6338 -4.8418 -0.5580 -1.2900 5.2745 -2.7458 2.6939 -0.9625 2.2835 + 1.8861 3.1363 4.0321 1.7435 0.5233 -0.7855 2.0137 0.8065 1.2174 -4.0074 0.5860 -1.0339 -6.4815 -6.1251 1.1641 -3.9644 -6.3895 7.8222 2.0846 1.7715 + 3.9399 2.2907 1.6049 0.7588 -0.5727 -0.4203 1.1669 0.6185 -0.3417 1.2484 1.5946 1.7091 -1.8086 -4.7596 -2.8399 -3.9325 -2.0296 -0.6780 -0.7509 3.2019 + -0.3222 0.6190 2.2698 6.3269 5.8198 2.6992 0.0601 -0.5335 -1.7361 -3.6667 0.2231 -2.3194 -2.0166 2.4960 0.1420 -3.4765 -2.9842 -0.3195 -1.1974 -2.0840 + 1.2403 -2.3646 -2.0313 0.7252 3.2474 2.8194 3.1981 0.9009 1.1286 -0.9170 -2.4531 -2.4020 1.6229 2.3317 -1.4971 0.7586 -3.2903 -2.1223 -1.2864 0.3911 + 2.1547 -0.4814 -1.6208 -0.2568 3.7660 2.5927 -0.5335 0.5221 2.1027 -1.7193 -2.1878 -1.5973 0.4487 -3.0208 -3.0695 -0.2839 1.2100 -4.2182 4.8800 1.3123 + -0.8216 0.0172 1.0117 1.8195 2.2767 0.0322 -4.7072 -3.7244 0.2876 1.2946 -1.1268 -2.0514 -0.3229 1.5642 2.8282 1.4525 -0.2405 0.3745 -0.8299 0.8658 + -0.5885 -0.7711 -0.1566 0.2456 -1.1305 -2.1400 -1.5832 -2.7023 2.6573 2.8982 -1.9439 -1.4435 3.2616 3.0544 -1.0646 -0.2393 0.2808 -0.6774 -3.3509 5.3938 + -2.1609 4.7541 2.6519 2.9104 -0.9771 -3.4464 1.3102 4.9024 3.0997 0.1198 -0.6878 -5.0516 -2.6241 -0.1390 0.3260 -3.7625 -4.6033 5.7644 -2.7192 0.3330 + -0.0774 0.0212 1.7356 2.6966 3.8703 -1.2640 -2.2040 -3.8688 -2.8745 -0.3830 -1.2433 2.7247 1.1808 0.5913 3.3839 -2.9426 0.1962 -0.6047 -3.1975 2.2593 + -1.7694 -0.8337 -1.4857 1.6357 3.0084 1.4757 0.7496 0.4982 -0.8638 1.0294 3.8151 2.5480 -0.4944 -5.1598 -4.1575 1.6819 -0.9028 -3.0629 2.9081 -0.6201 + -4.1737 -1.1372 0.4218 -0.3980 -0.2873 -2.0904 -1.4241 1.1799 4.8192 5.5695 2.1240 -1.9634 -0.1503 -0.2208 -2.6623 -1.2140 1.5287 0.1773 -0.4832 0.3844 + 1.1759 3.6352 3.0816 -1.1382 -0.8341 -1.2549 1.7627 -0.2610 -1.7582 -4.6767 -1.9887 0.8806 -0.2903 -2.9331 -3.3697 0.3291 -2.5313 6.3991 2.6926 1.0793 + 3.1054 0.5446 -2.7707 -3.1154 -2.4354 -2.1091 -1.9215 1.5263 -0.5089 -2.1954 -3.0602 -1.7502 2.0283 3.0940 3.1639 6.0315 0.1168 -2.3219 2.2755 0.3024 + 1.4017 0.2037 -0.1188 0.3630 -1.7809 1.2589 -0.0416 0.1426 -0.2900 -0.0669 -0.9365 -1.7637 -4.6543 4.5857 0.7173 -1.2893 0.7992 1.8632 0.4734 -0.8667 + -0.6645 0.3054 -0.1583 0.3900 0.1223 1.1996 4.2148 1.7843 2.7706 0.9297 -1.0663 1.2711 -0.1675 -0.5861 -2.5452 -2.9107 1.2640 0.2394 -4.6672 -1.7254 + 1.3908 0.5115 -0.8577 0.3878 0.7710 1.2838 -1.2112 -1.2930 -1.9359 -2.3893 -2.5796 1.2692 3.1933 -0.2748 0.2489 3.4206 -5.3967 -3.2312 2.6326 4.0600 + -3.1151 -2.4768 -1.4409 0.0820 -0.0650 0.8542 2.7545 0.8481 2.7775 3.2925 -1.1392 -0.5600 5.6459 -1.5505 0.7937 -0.2372 -3.8294 -1.7699 -1.1681 0.3038 + -1.4631 -1.5744 -1.0602 1.2727 5.2755 0.7411 2.6424 0.9111 -1.5443 -0.8217 -2.4580 -1.9627 -0.3229 -0.7005 -0.1842 1.4410 1.1190 -0.0388 -1.7254 0.4532 + 2.6735 -0.1320 -2.0731 -1.2667 -0.0059 0.4063 1.1045 -0.6500 0.2919 -0.2343 -0.1432 0.5161 -1.3203 -1.9223 -1.8439 -0.3541 2.5902 0.7807 0.9691 0.6136 + -2.5760 -2.1039 3.3039 7.5737 4.8510 -1.9280 1.3509 -0.0624 1.3149 2.3856 -2.8836 1.6777 1.6919 -0.2315 2.0672 -1.6292 -7.7877 -7.8864 -2.4230 3.2949 + 0.1825 1.4326 1.8802 -0.7600 -3.5028 -2.0654 -2.5905 -1.9780 -1.3931 -2.0377 2.0912 -0.7666 -1.6801 0.1901 1.3312 -0.8245 -0.8221 9.1933 2.6121 -0.4925 + 0.6596 0.5183 0.0656 0.6099 0.2170 -0.2483 0.3752 0.0528 -1.3550 -1.9590 -3.0746 -2.7901 1.7480 0.0667 -1.3253 1.8365 1.2016 0.6331 1.5502 1.2179 + 1.5180 -2.8697 -3.0225 1.1901 1.2949 1.2425 -0.2655 -1.0124 0.1504 0.9476 0.8294 0.4980 -4.6214 -0.4714 2.3140 0.5042 0.0042 0.6173 0.0250 1.1274 + 5.2946 0.9166 -1.6961 2.6183 3.7503 -0.5464 -0.4536 -2.5804 0.7239 -3.0443 -0.9745 -0.5296 -1.2153 0.2578 -4.9483 0.2574 1.6442 -1.7218 -1.0182 3.2654 + -0.3113 0.1627 0.2010 -0.6825 0.4894 0.3705 0.5406 -0.5307 2.3413 3.1334 -0.2531 0.7289 0.0127 0.8411 -0.5394 -1.5751 -4.4648 3.3442 -1.3619 -2.4473 + 0.7892 1.6007 2.2451 -0.0142 -1.8268 1.0211 1.1632 -0.4310 0.4809 0.7681 -0.3119 -3.1840 1.8621 0.7982 3.9396 5.5125 -9.0182 -7.2338 1.4720 0.3673 + 4.5691 3.1984 0.4848 -1.6299 -1.5279 -0.4613 -0.3940 -0.7641 -0.7740 -1.4705 -2.0718 -3.7739 -3.8204 -2.0882 0.9538 2.3794 3.3309 2.1292 0.9829 0.7475 + -1.7639 -2.1300 1.8133 5.4637 4.9096 0.4400 -0.2077 -3.2872 -2.8010 -3.3973 1.4612 -0.7884 -0.4468 0.3167 3.0330 3.6546 1.5554 -2.1172 -5.0158 -0.6924 + -0.9691 2.1549 0.9464 -1.8955 -2.4830 0.5229 1.0573 -0.1544 -2.7731 -1.7762 -1.2133 0.4997 -0.4040 0.0598 2.1564 0.9676 0.1749 -0.3066 1.3334 2.1020 + 0.1735 -0.6351 -2.2851 0.3979 2.1071 0.8723 -1.4327 2.7248 2.2122 -3.8366 -6.8693 2.9956 2.2340 0.2392 4.5854 0.8064 -0.4877 -1.9451 0.1604 -2.0173 + -3.0467 -2.6229 -0.6828 -1.5402 -4.5504 -0.6274 -1.5654 -1.1048 -5.0244 1.2208 4.3959 1.7152 0.8404 2.3104 3.9110 1.3725 3.6004 -1.5868 -0.0242 3.0095 + 4.6972 -2.0723 3.7478 -0.0539 -1.3604 -1.6975 -5.1051 4.5477 7.4910 0.8111 -1.5236 -2.0035 -2.3201 -1.9156 -1.8399 2.7039 1.1102 2.7618 0.1987 -8.1775 + 4.2697 2.1482 1.1807 -0.8188 -0.0158 -0.9415 -3.1934 -7.6652 -5.2761 -0.4096 0.8289 -0.6591 -0.1321 -2.2645 2.6890 3.5308 -0.1860 2.2844 2.1691 2.4613 + -2.6176 -1.9646 -0.3365 0.4490 1.7890 3.0096 1.2687 0.1913 0.7099 3.1055 2.4376 1.5156 0.2027 -3.2954 -0.8316 0.6250 2.5125 -1.9645 -4.7360 -2.0703 + 0.9801 -1.1590 -1.1869 -1.8206 -2.6697 -2.2474 -1.9247 1.3390 0.7955 3.2786 2.1796 1.2439 3.8310 0.9791 -3.7027 -2.0691 -3.3297 3.4700 4.0219 -2.0091 + -1.9305 1.1296 2.7892 3.5086 -0.4192 1.8621 -2.4767 -4.5620 -1.3151 -0.4855 0.2130 4.0896 -0.2763 2.9118 1.5789 -0.3477 -0.8200 5.6054 -7.8822 -3.1730 + 3.5183 4.1815 1.9981 -0.8261 -1.4369 -0.3881 1.0213 -3.8793 -3.6636 2.2621 1.1803 1.7727 -0.7985 -1.2902 -5.0777 -1.2307 0.3381 4.4122 -1.4815 -0.6120 + 4.0477 1.4256 -1.6604 -3.5999 -1.9136 -0.3445 0.3946 1.6694 1.2905 0.9828 0.5724 -0.1289 1.3498 1.3379 0.2067 0.3656 0.2492 -1.2128 -3.2905 -1.7416 + -2.0178 -2.6699 -1.3526 0.2496 0.4148 -0.8854 1.0823 -0.6203 1.2579 0.4148 -2.2346 -0.4015 1.4157 4.8809 6.6230 -3.5608 -1.8735 -4.5603 3.5038 0.3340 + 1.4937 -1.5420 -2.3850 3.1706 1.4707 0.1938 0.5057 3.8806 -0.0936 0.3334 0.4606 1.4472 -0.9030 -1.4318 3.5118 -5.2689 -1.4235 -1.2997 0.0053 -2.1257 + -3.6561 0.1855 0.3705 1.1645 0.2341 -0.8092 2.3980 -0.3274 -0.4576 -1.1851 -3.8496 2.0281 -3.3309 0.9466 -0.0780 1.0318 4.0737 2.6190 -0.3495 -1.0083 + -0.1238 -0.3756 -0.3626 -1.1974 -3.0280 -3.3983 -3.5184 -2.8303 -0.2464 -1.0525 0.7469 1.1667 1.9967 2.0536 5.8842 4.6720 0.6593 -0.2270 -1.2558 0.4368 + 1.4898 -0.0036 2.1872 4.7731 5.3388 2.1104 0.8610 -1.9286 -4.4764 -2.9139 -5.8875 0.1502 2.3687 -3.3444 1.8016 2.0118 0.3480 1.5855 -1.0664 -5.4053 + -0.2559 -0.0970 0.6606 -3.0637 -4.0503 -2.5522 0.2345 0.1786 -0.3244 -2.5706 1.7286 2.2086 1.6927 2.7400 1.9340 -0.1619 5.4140 3.6846 -5.1534 -2.2469 + 0.7337 0.6464 -0.7291 -0.8337 -0.3024 0.3377 1.5178 1.0116 2.5850 0.9759 -1.3970 -3.2182 -3.6906 -0.0798 3.4993 -1.9939 -5.3046 1.4115 4.7666 0.0639 + -2.9601 -0.9321 -1.3007 -4.5012 -0.6859 1.6271 0.8938 1.8188 2.7147 2.4868 2.4402 0.6577 1.2040 2.0247 0.2523 1.3499 1.0757 -5.3086 -0.2223 -2.6347 + 1.2887 2.2547 3.3766 1.8575 -1.7910 -1.7548 1.5265 2.7964 1.2240 1.9720 0.2687 1.8100 3.1328 -2.5860 -2.7821 -3.9778 -2.4086 -2.0066 -0.0746 -4.1265 + 0.8108 -0.0118 0.3510 0.2469 -0.3564 -0.0688 2.2772 2.9983 0.0220 -0.8672 -4.8310 -2.0824 0.0877 2.2501 0.0661 -8.6456 -1.6422 4.8643 2.3157 2.2152 + -2.3502 1.9923 1.6641 -2.2786 3.4633 2.6050 -3.0058 1.5172 -5.3190 -0.9994 -2.4221 0.2495 3.8898 -2.0580 1.1705 0.4058 -1.2798 2.5712 -0.5349 0.7192 + 5.2963 2.7580 0.0542 -1.8363 0.6217 3.1975 0.8761 0.6926 0.1889 -2.2049 -2.6639 -2.3949 -0.4550 0.9028 0.9417 -2.3200 -1.6049 2.2215 -3.0876 -1.1840 + 0.0332 0.6867 -0.5444 -2.6560 -2.3272 -1.9975 2.7492 3.4613 1.2531 2.2970 0.6826 1.6161 0.8081 -2.8567 -0.2510 3.1363 -4.7699 -0.8591 1.4746 -1.9362 + 0.1179 0.1304 -0.0905 -0.0885 0.5876 2.0857 -0.3875 -1.3306 -0.8957 -0.1982 0.8458 -0.0513 -2.2349 -5.5634 7.5385 3.9965 -1.0630 -1.5645 -2.1020 0.2680 + 1.5416 0.4773 -0.0338 0.6704 0.3091 -0.0982 -0.8312 -1.8586 -2.1668 -3.0698 -3.6621 -2.8717 -0.1465 2.9749 3.0473 2.3156 -0.0362 0.7605 1.1471 1.5312 + -1.4651 -1.1492 -0.6700 -0.6012 -0.1247 1.1550 -0.2106 -1.2695 -0.4411 1.1446 4.1491 2.6600 1.3124 1.6069 0.6316 -0.4851 -2.5715 -4.3867 -1.0040 1.7189 + 0.2437 0.6555 0.3411 0.8466 -1.7425 -0.1636 6.1311 0.6211 -2.7030 -1.5009 -0.1744 0.8660 1.3589 1.2490 1.1273 -2.7402 -0.0949 -1.5440 -1.8610 -0.9159 + 4.3927 3.3672 0.9009 -1.2521 0.6230 -0.5206 0.8245 -0.9087 -1.8374 0.0097 -3.1469 -2.4307 -3.0482 0.2541 1.9480 5.7092 -3.3716 -3.2953 2.6836 -0.9014 + 2.2171 0.1913 -1.6779 -0.9585 -1.3241 0.2292 1.4881 2.7969 0.2756 -3.8207 -2.4695 -0.3208 2.3024 2.5414 -0.1815 -0.2933 2.0837 0.9892 -1.0861 -2.9823 + 0.1186 0.1645 -0.3865 -0.8001 -0.3047 -2.3398 -0.6229 -0.0641 0.8491 1.7026 -1.1341 -2.0704 -0.3123 0.1814 3.8820 1.2943 0.4627 -0.5672 0.5181 -0.5712 + -0.1015 -2.3234 -2.3520 0.9949 2.2704 0.9946 0.3560 0.9113 0.1017 -0.4530 0.8520 -1.0302 0.8806 0.3674 -2.6615 -4.8900 -2.9475 1.9045 2.6392 4.4864 + 2.3941 1.7010 1.9067 0.4931 -1.4348 -2.6074 -1.1597 -1.0504 -3.0460 -2.8157 -0.6597 -0.5920 -0.3406 -1.1230 -0.8586 4.9381 2.8734 1.4518 2.5923 -2.6625 + -0.8669 1.9301 3.2551 6.1577 2.0399 2.6785 0.7380 -0.3115 4.7391 1.4868 -6.0175 -7.4317 -4.5623 -0.8590 3.8966 -0.1349 -2.5476 -0.0080 -1.4441 -2.7383 + -1.8064 0.5147 0.5800 -2.6271 -3.9359 -2.9321 -2.4785 0.6104 -1.7343 -0.3653 -0.3024 0.2350 2.3057 1.9998 2.2392 1.9124 3.0438 -0.2241 5.1672 -2.2020 + 1.8580 3.3342 3.0400 1.0670 0.2251 0.5480 1.7906 0.7871 1.2850 -0.3795 -2.0150 -2.3713 0.5611 0.5214 -0.8547 0.0171 -1.8463 -2.7006 -1.7828 -3.0844 + 1.4841 -0.8100 -2.4242 -1.8509 -0.9746 -1.0553 4.8924 1.3818 -1.8605 -4.3708 -2.0142 6.4457 0.9506 -0.5924 0.1104 2.4175 -0.6754 -0.8459 -0.1554 -0.0530 + -0.0877 -0.9877 -1.7358 0.3853 1.1022 1.2975 4.3189 -1.9877 -3.1833 1.0392 0.1796 4.1158 1.4650 -1.6177 1.6123 -4.1615 -3.2584 1.2187 -4.3136 4.5989 + 0.4487 -0.1107 -2.0381 -0.2337 2.5745 2.8339 -0.0417 1.4413 -1.4483 -1.1675 -6.2515 -6.9360 -3.2717 4.8492 0.9246 -0.9750 4.1724 1.7821 1.3820 2.0655 + 0.1081 -0.6949 0.1665 0.6685 0.8790 0.7273 0.1766 -0.0005 -0.2218 -0.4294 0.4489 -0.4843 0.2008 2.1975 4.5024 -1.0296 -1.2026 -2.5547 -1.0944 -2.3636 + 2.3396 2.1543 2.2429 4.7578 0.8390 -0.8895 4.6297 0.4985 -2.3653 2.1787 -1.0612 -0.8953 -6.2919 0.5546 -0.4272 -0.9670 -1.9781 -0.4692 -5.5295 0.6795 + 0.1530 -2.1926 2.1973 4.5005 -1.3453 1.3286 -2.0310 1.0783 -1.3510 -0.7983 0.6783 -3.4857 5.3977 -3.6561 -3.5986 6.0882 0.1428 -0.9697 3.0219 -5.1583 + -2.6086 -0.0766 2.7222 2.0552 2.4096 3.0319 1.0596 -0.1283 -0.8104 -0.2732 -1.4259 -4.0229 -1.4469 -1.6716 -1.1861 -0.9216 0.6780 -0.0004 2.0118 0.6041 + 1.8333 3.1078 -1.8097 1.1817 3.7643 0.5185 1.9828 -0.3454 1.2321 -1.0494 -6.2996 3.9399 -4.6043 2.7296 -2.2906 -1.7821 -0.5503 -0.1687 1.5615 -2.9514 + -1.9822 -1.7870 -2.0807 -0.6471 1.7376 -0.7108 -0.9897 0.1273 -1.5435 -3.4080 1.1979 3.2003 1.0189 -0.9731 -1.0790 -1.9655 3.5511 1.2692 3.4593 1.6049 + 1.8097 0.7952 2.3044 2.0422 0.0385 -1.4890 -2.6817 -2.4115 -2.0814 -4.7349 1.3168 5.2099 2.0691 0.2209 -0.3967 -1.3910 -0.0825 -1.3970 -1.3074 2.1664 + -0.6317 -0.6961 -1.7818 1.7212 1.8896 0.7627 6.4133 0.0239 -2.0812 -0.6340 -0.8745 -0.8436 -3.5167 -3.0992 -0.4403 -5.0217 5.7819 4.7221 -2.9383 1.2443 + -0.8542 -4.8873 -5.4381 -4.2630 -4.1290 0.7749 4.7768 0.2842 0.3115 -0.2820 0.2149 -0.1804 0.6193 5.7873 5.1866 -1.3257 -3.0389 -1.9693 8.9711 -0.5589 + -1.7203 0.3016 0.2697 0.0913 0.2499 2.9554 0.3320 0.0927 -3.0516 1.3578 -0.8456 1.2764 0.1248 3.9102 2.8147 -2.3847 -6.7532 -2.2614 1.9868 1.2535 + 2.3588 1.8978 1.0798 1.0217 0.8258 -0.3312 0.8967 -0.1754 -0.3981 1.0150 -0.3879 -0.8493 -1.2690 -1.1797 1.5079 -0.1598 -2.3607 1.1269 2.6480 -7.2674 + 1.1746 4.6165 5.4940 3.4461 -3.9021 -1.6050 -0.1323 -0.9380 -0.4156 -1.9000 -0.2856 -1.2349 -3.6515 -2.9147 0.0530 1.1469 0.2371 -1.3253 3.8834 -1.7466 + -2.2758 1.8844 4.6711 2.2076 -1.3597 -0.4741 0.4627 -0.0358 -0.0017 -1.0258 -0.6957 -1.0270 1.1372 -2.6040 -3.0616 -4.3523 1.6973 1.9314 1.1807 1.7410 + 1.9665 1.3206 -0.1069 0.8467 1.1209 2.6581 1.0313 -0.7646 -0.9327 -0.4666 1.3979 -1.1019 -2.4235 -8.2049 1.1737 4.9310 0.7484 0.2664 -6.0708 2.6104 + 1.1852 -1.5416 -3.6491 4.4048 -6.7437 4.6469 1.6802 1.2910 2.2789 2.7610 1.3944 -0.7732 -5.8136 4.4421 -2.2039 0.8414 -5.8722 -4.6747 -3.6578 10.0038 + -3.9689 -0.5502 1.1683 -2.1974 -1.9082 0.1416 1.6772 0.3260 3.7162 2.4168 2.6207 -1.7735 1.5236 0.3480 -0.3569 4.1471 1.4471 -0.6226 -8.1997 0.0448 + 0.6532 1.4910 1.2058 1.7096 2.3950 1.7319 -1.5483 -1.8447 -2.2888 0.7634 3.2796 1.6709 -4.9985 -3.0829 -1.1211 1.2229 -0.2209 -1.1940 1.9569 -1.7811 + -1.9523 -4.3005 -4.5837 1.0346 1.2567 1.0099 3.2344 2.8332 1.1895 -1.5164 -2.2052 -1.2334 -1.4331 2.1022 2.3179 5.6712 2.1958 -2.0504 -2.5243 -1.0460 + -1.1815 -1.5300 -0.6842 -0.5633 -2.6867 -1.4016 0.6359 -2.0170 -1.2970 -1.6432 -1.0489 -1.3764 -1.1731 -0.5962 3.5229 5.3595 3.1187 3.4061 0.3009 0.8550 + -3.1382 -0.6280 -0.8774 -0.9941 0.9435 0.9619 0.8520 -3.3796 -3.2423 -1.3758 3.3040 2.2194 1.0056 2.5348 -0.2996 0.9762 -3.7819 -0.3936 5.7234 -0.4105 + -3.2428 -5.3967 -1.5226 4.3711 2.0836 2.1112 0.7032 -4.0183 -12.6551 -15.4852 0.9361 9.2253 10.5424 3.4081 3.4337 -0.7556 1.6657 0.8127 4.5992 -0.8160 + 1.8248 0.0419 0.5248 1.8646 -1.2814 -2.6618 -0.0669 0.1817 2.2151 -0.8152 5.1179 2.3104 3.6555 -8.7128 -2.0790 1.0629 -0.0963 -1.5473 0.4756 -2.0146 + -0.1111 0.3482 -0.0235 -0.7175 -0.1449 -0.3857 -0.8724 0.4592 0.4980 0.2237 0.3924 0.2623 -0.5426 0.9370 -0.6701 0.1600 0.1978 1.4707 -0.4540 -1.0274 + -0.9442 -0.4989 -0.2375 -0.5991 -1.2414 -0.4327 -0.2055 -0.5191 2.6955 3.9938 -2.7275 1.8004 1.9744 1.7067 -0.5541 -5.7033 0.6046 -1.4009 -1.3782 3.6669 + -0.8575 0.6722 1.8197 2.2695 1.4265 -1.5445 -1.7430 -1.5937 2.0470 -0.1126 0.3473 1.4243 0.9317 -1.3895 -1.0640 0.4664 -0.0706 -3.0958 -1.0532 1.1198 + 0.9735 -3.1553 -4.9524 -1.8534 0.7715 2.4911 5.1271 0.4320 -4.1146 1.1236 2.7184 2.0135 1.9444 1.7813 1.8232 -2.6267 -5.6361 0.3774 1.0979 -0.3363 + 1.9497 1.0413 -1.2191 -0.8636 0.0511 -0.3375 -0.5315 -1.0284 2.1218 -5.0828 1.0827 -2.2172 -1.3936 0.4537 3.3006 0.9962 -1.2147 0.0930 -2.8723 5.6705 + -3.0064 -0.6690 1.9882 3.1451 0.5101 1.4897 6.0735 3.0322 0.7197 2.5823 0.9024 -1.3595 -0.6102 -4.4164 -5.2345 0.5038 -1.7243 -1.0135 0.3868 -3.2999 + -1.3127 -0.5603 -0.4395 -0.5779 -1.3273 -0.7737 1.1446 2.1363 0.5709 -0.9646 0.1742 -0.3429 0.7079 -1.3617 -0.1807 0.8278 4.5177 -3.6128 1.9484 -0.5738 + 4.9592 5.5662 -1.4308 2.4625 -1.3728 0.3179 2.5142 -3.1176 -3.0793 2.5866 -6.0767 -3.0209 -1.0428 3.7946 3.4423 -3.9407 3.8680 -5.8781 -3.2612 2.7097 + 1.8752 4.6096 2.6992 0.0622 1.9683 -1.5159 -0.2846 2.0429 5.1916 0.0415 0.4228 0.2499 -1.8859 -1.2282 -1.8414 -3.2239 -2.8594 -2.2718 -1.9470 -2.1050 + -0.4172 -0.0660 -0.7815 -1.3234 1.6425 1.5960 0.1952 2.8005 1.8348 -0.0556 -1.7528 -0.3330 2.5351 3.2175 -0.0237 -2.6102 -2.3993 -0.4569 0.2104 -3.8124 + 0.5340 -7.1325 7.3739 -7.1474 5.0035 4.0837 1.7481 0.6285 2.1470 3.3649 3.4871 -4.6213 5.3643 -0.8361 2.3067 -0.6517 -4.1528 -4.1599 -0.0969 -7.2432 + 6.4977 -1.8922 6.0123 2.6649 3.9019 -2.9401 -5.9544 6.5995 -3.7727 -1.3909 -4.1986 0.3151 1.1248 0.2299 1.4836 -7.4381 0.2549 4.7727 -2.9947 -3.2755 + 0.0546 0.0075 0.5596 0.2523 -2.3268 -4.5642 -3.6799 -0.8395 2.7336 3.7088 2.7486 2.6118 1.5065 0.0463 0.4170 -0.5592 1.5006 -0.4534 -1.6715 -2.0529 + 2.9815 2.4495 1.7545 3.2822 2.8844 2.5666 0.0398 1.6192 2.6128 3.3153 -4.7284 -2.6356 -1.7561 -4.3333 -3.6328 -2.9815 -0.9212 -0.8755 -0.3601 -1.2811 + -0.8024 1.2002 3.2220 -0.7626 -2.1102 -1.0525 -1.8044 0.6518 -0.3024 1.2038 0.2348 0.2257 -2.8991 -1.6610 1.3306 -0.9177 -2.5629 -0.6077 5.6868 1.7272 + -0.1833 -0.3751 0.5635 0.1503 -0.2949 -0.6821 1.4873 -1.2805 -1.3007 -0.6803 0.0098 0.9789 1.7868 3.5914 0.8184 1.0857 6.4677 -3.3457 -6.7060 -2.0913 + 4.2126 1.0339 -0.8906 0.9053 2.8206 3.1913 0.4808 1.7342 1.1617 0.7387 3.7928 -0.7288 -6.1883 -1.6937 -4.9005 -3.6291 -0.7611 -1.4035 -0.2407 0.3643 + -8.3754 -2.2519 1.3080 1.8062 0.8850 1.6497 2.0880 2.7261 0.2633 -0.5998 0.5979 0.7034 0.9960 2.9711 0.1650 0.8745 -0.1614 -0.6875 -1.3556 -3.6024 + 1.4188 1.0202 1.5256 1.6620 0.7476 -1.4390 -3.4051 -1.8780 0.4521 -3.9741 0.7867 -0.3719 -2.3721 -1.0437 0.6801 -0.2011 -3.0818 2.9062 4.2361 2.3315 + 0.1054 -2.6122 -4.3807 -5.3145 -0.2846 4.3842 3.0170 3.8061 0.7110 -1.0498 -0.2574 -0.9802 0.3402 1.2503 2.5457 -7.8042 -0.1469 2.8259 3.0062 0.8386 + 5.2058 7.1080 4.9534 -1.2430 -6.6855 -3.7117 -6.1961 -2.1515 -0.5576 -1.6169 5.7678 7.7780 -3.9195 1.0323 -4.8749 2.1979 -6.6948 5.7018 -1.1809 -0.9126 + 5.0054 3.2246 2.7220 2.5774 0.3515 -0.4988 -0.6659 -1.1531 -0.3512 -0.2899 -1.1677 0.8076 -0.0710 -1.3279 -1.8820 -2.0262 -1.5275 -2.2770 -2.2582 0.8080 + -0.3421 -2.1542 -1.9404 1.9715 2.0717 1.2690 -0.5900 2.8831 2.5295 -0.0718 1.0132 -2.1895 0.9449 0.2787 2.8471 3.2171 -2.0622 -4.9892 -4.8142 0.1278 + -3.5648 -4.5220 -3.8219 -0.0484 2.5590 3.3348 4.6892 3.0890 3.1738 2.4402 -0.3648 -2.0478 -1.8476 0.1171 -0.1749 -2.2364 0.1988 -2.2378 0.6726 0.5920 + -2.5566 -0.8410 -0.4280 -0.4406 -0.5726 -0.3279 -1.8710 -2.4830 2.8140 4.1548 -1.1877 -1.2228 1.1741 0.7041 -4.1128 0.8974 1.6460 2.7315 1.4956 0.4265 + 0.6395 0.6244 0.2175 0.2548 -0.6436 -1.4509 -1.2471 -1.8889 -1.6984 0.6300 -0.0902 -1.4274 1.6267 2.2897 -1.4907 -1.0863 -0.5990 -0.3234 4.5402 1.1229 + -3.0281 -3.4576 0.2465 1.1848 -0.3128 -1.4112 -1.7883 -2.4368 -3.6604 0.2309 4.1432 0.2306 3.9874 1.3414 -2.9661 0.2318 1.3943 2.8996 1.0512 2.1197 + -6.4523 -0.8108 3.0394 2.9265 1.7276 -0.6852 -1.3401 -1.2086 0.2339 0.6323 0.9584 -0.4322 -0.4865 1.1438 3.9792 -0.5978 -3.3409 -0.0134 0.1557 0.5712 + 0.8836 0.6632 -0.5682 1.0909 1.0200 0.2143 1.7898 0.4314 -1.2105 -1.6888 -2.8939 1.5904 1.4323 5.0287 -2.4090 -2.6282 -1.2927 -1.8499 -3.8726 4.2691 + 2.7571 0.5054 0.5914 -0.4593 -1.9535 -2.8534 -5.1043 -5.0146 0.3167 1.9210 1.9920 1.2596 1.2329 -1.0134 -2.2148 -0.9619 3.3405 0.4893 1.9185 3.2509 + -7.8257 -8.0514 -2.2922 4.6049 1.7841 0.2877 2.4600 0.2299 0.3961 0.7952 4.9841 0.5914 -3.3601 1.4043 5.5671 2.2508 0.0018 1.5100 -2.0511 -3.2867 + 1.5686 1.2169 -0.6391 -2.6751 -3.0325 -3.9104 -2.5516 -0.9763 6.3909 -1.3255 1.3817 1.7409 2.2064 2.8908 0.3118 0.3554 0.3092 -0.0695 -2.5566 -0.6363 + 1.1784 0.7886 1.7506 3.8841 0.1097 -3.4846 -1.1668 -0.2517 -0.3004 -0.0493 2.0270 0.2092 1.5440 3.4255 0.2943 -0.8517 -1.6072 -4.0976 -5.8976 2.4958 + 0.9988 2.8848 3.2891 3.3681 1.4676 3.2906 1.3735 1.1970 0.4611 -0.5875 1.7464 0.9583 0.5681 -1.4825 -4.2976 -3.2226 -2.3712 -7.0782 -2.8558 0.2917 + -0.2746 -0.1545 -0.1213 -1.7658 -0.9647 -0.8990 -2.2776 -1.6043 2.1487 5.2377 -7.3002 -1.2976 0.8951 2.6087 1.9104 0.8944 4.2107 2.4289 -0.6124 -3.0624 + 4.5993 2.8908 2.6348 2.5753 3.5423 -1.3467 -3.6340 -1.3719 -1.5896 -1.7807 0.4182 -0.4869 -0.0081 -1.7322 -5.0302 -4.0281 3.2297 0.1854 0.7317 0.2006 + -3.2143 -2.4079 2.3832 -1.4835 -2.9589 -4.3471 -9.4701 -8.6980 2.2131 11.9939 3.4222 5.6731 1.0493 0.9347 3.1770 3.6996 -0.0115 2.2951 -2.8928 -1.3571 + 2.2986 0.5686 -2.7234 0.0628 3.3595 3.0322 1.2528 0.1697 0.2877 -3.1109 -4.5198 4.2898 4.5477 -0.5365 -2.9437 -1.7760 -3.4896 -0.4971 0.5506 -0.8230 + 0.0226 -1.9088 -4.1034 -3.5139 1.8311 6.6465 1.9042 -0.2585 0.4811 -1.3603 -0.8669 -2.6469 -2.4021 -2.3699 -1.0708 1.8059 0.3697 0.3642 3.4726 3.6036 + 1.8666 0.3455 -0.4415 1.4530 2.1752 0.4141 0.9988 0.9339 2.0369 0.0808 -1.3138 -1.2683 0.1032 0.3074 0.3794 -2.2480 -4.4451 -2.7006 1.2456 0.0770 + -0.9714 0.8948 -0.5528 -1.5023 -2.1884 -1.6190 -2.6643 0.3765 5.2588 1.9474 4.7336 6.0668 0.9206 -6.1173 0.2687 4.2344 -2.7801 4.7836 -5.9468 -5.1428 + -3.5447 -2.6492 -1.1225 1.1104 -0.6763 -0.3734 0.7874 2.9348 3.7914 3.3802 -3.0687 -1.7645 -1.7552 0.4322 1.5566 3.1434 -2.9717 0.2913 0.3294 0.1693 + 2.3099 -0.6833 -2.4051 -0.8700 -0.1793 -0.7055 -1.1773 0.0766 -2.2742 -3.5734 -2.1986 0.6775 0.1605 0.0083 4.2284 1.3025 3.7892 -0.0746 -0.9582 2.5465 + 0.9486 0.1048 1.8316 3.4918 2.1758 1.1342 1.0848 2.4632 0.0993 -1.9453 -1.1703 -1.6274 -2.0353 0.8991 0.4736 -4.0911 -2.9565 -2.3552 -2.1133 3.5874 + 0.6208 3.4997 6.2697 4.2107 1.2652 2.1894 1.1355 -2.5271 -2.9525 0.0535 0.3829 -2.5199 -2.9063 -2.7287 -1.9607 1.4600 1.2748 0.4400 -4.8467 -2.3602 + 0.5243 2.9289 2.2684 0.4191 -2.1542 -0.2881 -0.2706 0.6758 5.4475 1.1883 -2.5477 -6.5024 -4.1506 0.6656 0.9576 -1.2352 1.0736 -4.8441 2.5699 3.2741 + -0.7794 1.1463 3.5016 1.1120 0.8485 -1.0628 -0.8132 3.8405 -0.3344 1.2653 0.4357 0.5494 -2.5741 -2.4964 -3.4166 -4.9706 4.8271 -4.7341 1.1838 2.4711 + 1.8447 1.0979 -1.7573 0.3863 -0.5133 -3.1578 0.0583 -0.5417 4.1974 -4.6030 0.1241 -3.2329 4.6242 -4.6647 -2.4610 0.5959 3.2183 -1.2626 5.6612 0.3859 + -2.3894 -1.0328 1.7896 5.5648 5.2220 1.8869 1.0956 -0.1977 3.2983 0.9466 -2.0813 -0.1679 -0.5816 -0.1714 -2.7510 1.1951 1.5496 1.6400 -5.0073 -9.8080 + 0.7738 -1.7298 -3.2257 -0.3183 1.9284 1.7227 0.8166 0.9095 0.5332 -0.5016 -1.2660 -1.9608 2.0035 -2.6922 3.7039 0.8905 -0.7247 2.7531 -3.0591 -0.5571 + -0.0748 -0.5070 -0.2516 1.7723 1.4041 4.3520 1.7022 1.0990 -1.4641 -2.3620 3.1174 0.5476 1.5192 -1.9294 -4.9678 0.2919 -3.1451 1.3976 -0.5997 -1.9017 + -0.3043 -4.5751 -6.4864 -2.8079 2.8553 1.4264 -0.6290 0.8259 1.1617 -0.8255 -1.1913 -0.9336 -0.8179 -0.6841 2.7254 1.9190 4.4832 2.4919 2.0452 -0.6788 + 2.9368 3.5644 3.7164 3.7726 0.3148 -2.5071 -1.0177 0.4365 0.4818 -2.1099 -3.0728 -1.1823 -1.8323 -2.5460 -3.2217 -2.5081 0.1068 -0.3340 2.0018 3.0001 + 2.0122 -0.8437 -0.0894 -3.5669 0.2151 1.3672 -1.1852 2.2748 0.2674 2.1266 -4.5961 -3.5181 1.6410 4.2095 -4.0873 0.0362 3.5548 -2.6567 1.8468 0.9915 + -2.9528 1.3693 1.3737 3.6447 4.6399 3.0004 -0.4081 -0.5069 -2.0885 -2.1563 0.7639 0.4790 -2.4821 1.6495 0.8280 -0.4457 -4.8607 3.5285 3.1896 -8.5655 + -4.4449 -2.6584 -0.3396 2.7055 3.1313 2.6691 -0.1405 -2.6920 1.1380 5.9263 0.1508 -2.5031 -2.5963 -2.2339 -0.4387 2.7348 0.1166 -2.0958 -0.1884 1.7591 + -0.4506 -2.2585 -2.0183 -1.2141 2.3804 5.1371 -0.1012 0.7185 -1.9558 -5.5843 1.7274 2.5676 1.3295 -2.3148 3.4722 0.9168 0.3809 -1.2468 -0.6805 -0.8055 + -0.5741 -1.3187 -1.6054 -1.8387 -3.0009 -2.2631 1.6411 1.0542 0.8630 1.3059 0.6660 0.5171 -0.9355 -1.8837 0.8703 0.3850 -0.0855 0.2754 4.4605 1.4674 + 4.0853 2.9178 0.0251 -1.7053 -2.9819 -2.0918 -1.9947 -0.8293 -0.6373 0.5052 2.1796 2.6733 -1.7046 -0.6344 1.3620 -0.4864 -2.0884 -1.6708 1.5012 1.5754 + -1.5635 2.8252 -0.9149 -3.0463 -4.7327 2.7084 1.1209 0.7968 0.7865 -1.2527 -0.1248 2.6941 2.7972 2.2336 -0.0652 -0.4532 -2.9265 -0.0560 -0.4324 -0.3945 + 2.4620 0.7164 -1.5674 -3.1513 -1.6402 2.4149 2.9010 2.5761 3.2262 0.0749 -4.5314 -3.4112 0.2922 1.0743 0.0408 -1.5976 -0.5032 0.6577 0.7598 -0.7940 + 1.9710 1.1730 -0.6838 -2.2094 -1.9356 1.4952 -2.0825 -0.2927 0.7657 -1.8337 4.4472 -3.8324 0.7557 0.0732 -3.6271 -1.9071 4.3140 2.4552 -0.0317 0.9857 + 3.7325 2.7934 1.0157 -1.7096 -2.8454 -1.8953 -0.7562 0.3146 -0.3781 -1.0020 -1.6158 -0.3984 -0.0573 0.9972 1.0112 -1.0599 0.0370 3.6124 1.1087 -2.9047 + -1.4832 -1.9899 -0.8731 -0.9330 -2.9066 2.3820 -0.1603 -0.7170 -1.1285 -0.9274 2.1578 6.4011 -1.6535 2.3099 -1.6654 3.7268 0.0883 -1.8527 -0.5184 -0.2568 + 0.6353 1.3687 1.8257 0.3226 -0.8766 1.0000 1.0853 1.2934 0.8779 1.7553 1.1543 -2.0442 -1.6763 -0.4593 0.9294 -1.2072 -2.2593 -0.6144 -2.8074 -0.3032 + -1.2070 -1.3475 -1.8312 -1.7806 -2.9611 -3.1818 2.9332 -0.1240 0.1906 2.9202 -1.8371 1.0525 -2.0319 2.7074 -2.1979 -1.3072 -0.5591 3.0013 2.6600 4.9011 + -5.1303 3.3870 -3.7967 -1.9466 -5.3864 -1.1368 -0.5684 3.7351 -0.5755 -3.2378 -4.4250 2.0350 3.9372 5.4701 -2.7768 5.9464 6.6849 -3.7875 1.9948 -0.4230 + -1.3037 -1.9678 -3.1520 -1.4018 0.2092 2.8010 2.0760 -0.3324 1.0911 0.9050 1.7187 3.4255 1.0022 3.5722 -3.5224 -4.7658 -1.0745 0.2766 1.2898 -0.8471 + 1.9772 -2.9635 -3.0240 -2.2547 0.1703 1.7771 -1.6073 -3.1859 1.5410 1.4356 0.9203 3.9297 4.2495 5.7007 -4.0193 -0.8612 1.6423 0.8844 -5.1605 -1.1517 + 2.9132 0.8992 -1.0688 -1.5448 -0.9185 0.4003 -1.7700 -2.7768 -1.4639 0.2261 0.7139 1.7997 3.0514 3.3204 0.6803 0.9792 -0.2717 -2.6450 -0.2252 -2.2988 + -2.9741 -2.4804 -3.0116 -3.1521 0.1074 1.3714 0.6662 2.0637 1.7849 -0.4611 -0.7720 -1.6172 0.8203 3.4203 0.8069 2.2581 3.2451 0.5915 -2.2429 -0.4245 + -0.8028 -0.2290 0.2137 -0.4319 0.5580 0.2543 0.9172 0.8892 -0.4807 -1.2827 0.9202 1.1454 -1.6931 -3.6479 0.4568 3.9049 1.2435 2.6145 0.7928 -5.3425 + 2.6190 1.9162 0.9769 -0.1078 -0.4290 -0.3650 -2.8284 -4.4494 -5.9910 -4.8405 0.7110 -0.4595 0.2195 3.3942 0.9527 -1.8867 3.8742 3.7699 1.2150 1.7087 + 1.8829 0.7201 0.6607 -0.0626 -1.1940 -1.4411 -0.0944 0.1172 -0.7491 -0.3712 -2.5287 -2.1899 -1.2280 -1.4906 -0.5689 -1.4885 2.7842 4.0586 -1.1367 4.3200 + 4.6710 0.9897 -0.6156 -0.6851 -1.4120 4.1532 4.4321 1.1339 -1.0985 0.5736 1.4085 -4.6356 -3.3117 -1.5968 -3.4345 -0.7293 -0.0528 -0.3096 -3.6684 4.1880 + -2.5398 -1.3830 0.0979 1.9654 3.5192 -0.0522 -3.2870 -3.8507 0.6356 -0.9850 -3.0198 -3.7269 -0.8310 1.9829 1.8339 -0.8073 0.2152 2.0459 6.1180 2.0688 + 0.4962 3.2227 3.5953 1.3395 -3.4218 -4.9933 -1.9981 0.9513 -1.0998 -2.7535 1.3298 -0.6976 0.0716 0.7392 5.8854 -4.3047 2.1890 1.9699 -2.4444 -0.0765 + -5.8327 1.1129 0.8081 5.6003 5.5684 4.7020 2.8089 0.4347 1.1649 -4.9188 -11.4465 -1.3196 0.4225 -2.4705 0.3286 -0.0113 8.7340 -2.1220 -2.1264 -1.4373 + -1.6231 -1.3969 -2.0111 -1.2620 4.3084 -1.2012 1.2341 0.1866 0.0635 -2.6548 2.3896 1.8088 0.0290 -4.3105 3.9166 -0.0331 -0.3748 -2.4710 1.0435 2.3583 + 0.6310 1.3989 1.5277 0.7608 1.0894 1.7235 2.0681 2.3537 0.9918 1.2164 -0.3325 -2.2666 0.1756 0.1615 0.5196 -2.6730 -7.1201 -2.9272 -5.4551 6.1563 + 7.8768 5.4153 -2.5369 0.0405 4.1259 -0.2108 -4.6599 -0.9803 -1.3472 -5.5873 0.0334 -6.0975 -0.7915 0.7551 -0.1575 2.8766 -3.5702 -0.2561 4.0100 1.0615 diff --git a/src/codec2.c b/src/codec2.c new file mode 100644 index 0000000..e0726d8 --- /dev/null +++ b/src/codec2.c @@ -0,0 +1,2306 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2.c + AUTHOR......: David Rowe + DATE CREATED: 21/8/2010 + + Codec2 fully quantised encoder and decoder functions. If you want use + codec2, the codec2_xxx functions are for you. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2010 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "defines.h" +#include "codec2_fft.h" +#include "sine.h" +#include "nlp.h" +#include "dump.h" +#include "lpc.h" +#include "quantise.h" +#include "phase.h" +#include "interp.h" +#include "postfilter.h" +#include "codec2.h" +#include "lsp.h" +#include "newamp2.h" +#include "codec2_internal.h" +#include "machdep.h" +#include "bpf.h" +#include "bpfb.h" + +#include "debug_alloc.h" + +/*---------------------------------------------------------------------------* \ + + FUNCTION HEADERS + +\*---------------------------------------------------------------------------*/ + +void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]); +void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, + COMP Aw[], float gain); +void codec2_encode_3200(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_3200(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_2400(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_2400(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_1600(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_1600(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_1400(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_1400(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_1300(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_1300(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est); +void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_1200(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_encode_450(struct CODEC2 *c2, unsigned char * bits, short speech[]); +void codec2_decode_450(struct CODEC2 *c2, short speech[], const unsigned char * bits); +void codec2_decode_450pwb(struct CODEC2 *c2, short speech[], const unsigned char * bits); +static void ear_protection(float in_out[], int n); + + + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_create + AUTHOR......: David Rowe + DATE CREATED: 21/8/2010 + + Create and initialise an instance of the codec. Returns a pointer + to the codec states or NULL on failure. One set of states is + sufficient for a full duuplex codec (i.e. an encoder and decoder). + You don't need separate states for encoders and decoders. See + c2enc.c and c2dec.c for examples. + +\*---------------------------------------------------------------------------*/ + + +//Don't create CODEC2_MODE_450PWB for Encoding as it has undefined behavior ! +struct CODEC2 * codec2_create(int mode) +{ + struct CODEC2 *c2; + int i,l; + + // ALL POSSIBLE MODES MUST BE CHECKED HERE! + // we test if the desired mode is enabled at compile time + // and return NULL if not + + if (false == ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_450, mode) + || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, mode) + ) ) + { + return NULL; + } + + c2 = (struct CODEC2*)MALLOC(sizeof(struct CODEC2)); + if (c2 == NULL) + return NULL; + + c2->mode = mode; + + /* store constants in a few places for convenience */ + + if (CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, mode) == 0) { + c2->c2const = c2const_create(8000, N_S); + }else{ + c2->c2const = c2const_create(16000, N_S); + } + c2->Fs = c2->c2const.Fs; + int n_samp = c2->n_samp = c2->c2const.n_samp; + int m_pitch = c2->m_pitch = c2->c2const.m_pitch; + + c2->Pn = (float*)MALLOC(2*n_samp*sizeof(float)); + if (c2->Pn == NULL) { + return NULL; + } + c2->Sn_ = (float*)MALLOC(2*n_samp*sizeof(float)); + if (c2->Sn_ == NULL) { + FREE(c2->Pn); + return NULL; + } + c2->w = (float*)MALLOC(m_pitch*sizeof(float)); + if (c2->w == NULL) { + FREE(c2->Pn); + FREE(c2->Sn_); + return NULL; + } + c2->Sn = (float*)MALLOC(m_pitch*sizeof(float)); + if (c2->Sn == NULL) { + FREE(c2->Pn); + FREE(c2->Sn_); + FREE(c2->w); + return NULL; + } + + for(i=0; iSn[i] = 1.0; + c2->hpf_states[0] = c2->hpf_states[1] = 0.0; + for(i=0; i<2*n_samp; i++) + c2->Sn_[i] = 0; + c2->fft_fwd_cfg = codec2_fft_alloc(FFT_ENC, 0, NULL, NULL); + c2->fftr_fwd_cfg = codec2_fftr_alloc(FFT_ENC, 0, NULL, NULL); + make_analysis_window(&c2->c2const, c2->fft_fwd_cfg, c2->w,c2->W); + make_synthesis_window(&c2->c2const, c2->Pn); + c2->fftr_inv_cfg = codec2_fftr_alloc(FFT_DEC, 1, NULL, NULL); + c2->prev_f0_enc = 1/P_MAX_S; + c2->bg_est = 0.0; + c2->ex_phase = 0.0; + + for(l=1; l<=MAX_AMP; l++) + c2->prev_model_dec.A[l] = 0.0; + c2->prev_model_dec.Wo = TWO_PI/c2->c2const.p_max; + c2->prev_model_dec.L = PI/c2->prev_model_dec.Wo; + c2->prev_model_dec.voiced = 0; + + for(i=0; iprev_lsps_dec[i] = i*PI/(LPC_ORD+1); + } + c2->prev_e_dec = 1; + + c2->nlp = nlp_create(&c2->c2const); + if (c2->nlp == NULL) { + return NULL; + } + + c2->lpc_pf = 1; c2->bass_boost = 1; c2->beta = LPCPF_BETA; c2->gamma = LPCPF_GAMMA; + + c2->xq_enc[0] = c2->xq_enc[1] = 0.0; + c2->xq_dec[0] = c2->xq_dec[1] = 0.0; + + c2->smoothing = 0; + c2->se = 0.0; c2->nse = 0; + c2->user_rate_K_vec_no_mean_ = NULL; + c2->post_filter_en = true; + + c2->bpf_buf = (float*)MALLOC(sizeof(float)*(BPF_N+4*c2->n_samp)); + assert(c2->bpf_buf != NULL); + for(i=0; in_samp; i++) + c2->bpf_buf[i] = 0.0; + + c2->softdec = NULL; + c2->gray = 1; + + /* newamp1 initialisation */ + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { + mel_sample_freqs_kHz(c2->rate_K_sample_freqs_kHz, NEWAMP1_K, ftomel(200.0), ftomel(3700.0) ); + int k; + for(k=0; kprev_rate_K_vec_[k] = 0.0; + c2->eq[k] = 0.0; + } + c2->eq_en = false; + c2->Wo_left = 0.0; + c2->voicing_left = 0;; + c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 0, NULL, NULL); + c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 1, NULL, NULL); + } + + /* newamp2 initialisation */ + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) { + n2_mel_sample_freqs_kHz(c2->n2_rate_K_sample_freqs_kHz, NEWAMP2_K); + int k; + for(k=0; kn2_prev_rate_K_vec_[k] = 0.0; + } + c2->Wo_left = 0.0; + c2->voicing_left = 0;; + c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 0, NULL, NULL); + c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 1, NULL, NULL); + } + /* newamp2 PWB initialisation */ + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { + n2_mel_sample_freqs_kHz(c2->n2_pwb_rate_K_sample_freqs_kHz, NEWAMP2_16K_K); + int k; + for(k=0; kn2_pwb_prev_rate_K_vec_[k] = 0.0; + } + c2->Wo_left = 0.0; + c2->voicing_left = 0;; + c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 0, NULL, NULL); + c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 1, NULL, NULL); + } + + c2->fmlfeat = NULL; c2->fmlmodel = NULL; + + // make sure that one of the two decode function pointers is empty + // for the encode function pointer this is not required since we always set it + // to a meaningful value + + c2->decode = NULL; + c2->decode_ber = NULL; + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) + { + c2->encode = codec2_encode_3200; + c2->decode = codec2_decode_3200; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) + { + c2->encode = codec2_encode_2400; + c2->decode = codec2_decode_2400; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) + { + c2->encode = codec2_encode_1600; + c2->decode = codec2_decode_1600; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) + { + c2->encode = codec2_encode_1400; + c2->decode = codec2_decode_1400; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) + { + c2->encode = codec2_encode_1300; + c2->decode_ber = codec2_decode_1300; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) + { + c2->encode = codec2_encode_1200; + c2->decode = codec2_decode_1200; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) + { + c2->encode = codec2_encode_700c; + c2->decode = codec2_decode_700c; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) + { + c2->encode = codec2_encode_450; + c2->decode = codec2_decode_450; + } + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) + { + //Encode PWB doesn't make sense + c2->encode = codec2_encode_450; + c2->decode = codec2_decode_450pwb; + } + + + return c2; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_destroy + AUTHOR......: David Rowe + DATE CREATED: 21/8/2010 + + Destroy an instance of the codec. + +\*---------------------------------------------------------------------------*/ + +void codec2_destroy(struct CODEC2 *c2) +{ + assert(c2 != NULL); + FREE(c2->bpf_buf); + nlp_destroy(c2->nlp); + codec2_fft_free(c2->fft_fwd_cfg); + codec2_fftr_free(c2->fftr_fwd_cfg); + codec2_fftr_free(c2->fftr_inv_cfg); + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { + codec2_fft_free(c2->phase_fft_fwd_cfg); + codec2_fft_free(c2->phase_fft_inv_cfg); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) { + codec2_fft_free(c2->phase_fft_fwd_cfg); + codec2_fft_free(c2->phase_fft_inv_cfg); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { + codec2_fft_free(c2->phase_fft_fwd_cfg); + codec2_fft_free(c2->phase_fft_inv_cfg); + } + FREE(c2->Pn); + FREE(c2->Sn); + FREE(c2->w); + FREE(c2->Sn_); + FREE(c2); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_bits_per_frame + AUTHOR......: David Rowe + DATE CREATED: Nov 14 2011 + + Returns the number of bits per frame. + +\*---------------------------------------------------------------------------*/ + +int codec2_bits_per_frame(struct CODEC2 *c2) { + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) + return 64; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) + return 48; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) + return 64; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) + return 56; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) + return 52; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) + return 48; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) + return 28; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) + return 18; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) + return 18; + + return 0; /* shouldn't get here */ +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_bytes_per_frame + DATE CREATED: April 2021 + + Returns the number of bytes per frame. Useful for allocated storage for + codec2_encode()/codec2_decode(). Note the number of bits may not be a + multiple of 8, therefore some bits in the last byte may be unused. + +\*---------------------------------------------------------------------------*/ + +int codec2_bytes_per_frame(struct CODEC2 *c2) { + return (codec2_bits_per_frame(c2)+7)/8; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_samples_per_frame + AUTHOR......: David Rowe + DATE CREATED: Nov 14 2011 + + Returns the number of speech samples per frame. + +\*---------------------------------------------------------------------------*/ + +int codec2_samples_per_frame(struct CODEC2 *c2) { + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) + return 160; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) + return 160; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) + return 320; + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) + return 640; + return 0; /* shouldn't get here */ +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode + AUTHOR......: David Rowe + DATE CREATED: Nov 14 2011 + + Take an input buffer of speech samples, and compress them to a packed buffer + of bytes. + +\*---------------------------------------------------------------------------*/ + +void codec2_encode(struct CODEC2 *c2, unsigned char *bytes, short speech[]) +{ + assert(c2 != NULL); + assert(c2->encode != NULL); + + c2->encode(c2, bytes, speech); + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_decode + AUTHOR......: David Rowe + DATE CREATED: Nov 14 2011 + + Take an input packed buffer of bytes, and decode them to a buffer of speech + samples. + +\*---------------------------------------------------------------------------*/ + +void codec2_decode(struct CODEC2 *c2, short speech[], const unsigned char *bytes) +{ + codec2_decode_ber(c2, speech, bytes, 0.0); +} + +void codec2_decode_ber(struct CODEC2 *c2, short speech[], const unsigned char *bits, float ber_est) +{ + assert(c2 != NULL); + assert(c2->decode != NULL || c2->decode_ber != NULL); + + if (c2->decode != NULL) + { + c2->decode(c2, speech, bits); + } + else + { + c2->decode_ber(c2, speech, bits, ber_est); + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_3200 + AUTHOR......: David Rowe + DATE CREATED: 13 Sep 2012 + + Encodes 160 speech samples (20ms of speech) into 64 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm twice. On the + first frame we just send the voicing bits. On the second frame we + send all model parameters. Compared to 2400 we encode the LSP + differences, a larger number of bits for the LSP(d)s and scalar + (non-VQ) quantisation for pitch and energy. + + The bit allocation is: + + Parameter bits/frame + ------------------------------------------------------ + Harmonic magnitudes (LSP differerences) 50 + Pitch (Wo) 7 + Energy 5 + Voicing (10ms update) 2 + TOTAL 64 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_3200(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float ak[LPC_ORD+1]; + float lsps[LPC_ORD]; + float e; + int Wo_index, e_index; + int lspd_indexes[LPC_ORD]; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* first 10ms analysis frame - we just want voicing */ + + analyse_one_frame(c2, &model, speech); + pack(bits, &nbit, model.voiced, 1); + + /* second 10ms analysis frame */ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); + pack(bits, &nbit, Wo_index, WO_BITS); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + e_index = encode_energy(e, E_BITS); + pack(bits, &nbit, e_index, E_BITS); + + encode_lspds_scalar(lspd_indexes, lsps, LPC_ORD); + for(i=0; ic2const, Wo_index, WO_BITS); + model[1].L = PI/model[1].Wo; + + e_index = unpack(bits, &nbit, E_BITS); + e[1] = decode_energy(e_index, E_BITS); + + for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); + e[0] = interp_energy(c2->prev_e_dec, e[1]); + + /* LSPs are sampled every 20ms so we interpolate the frame in + between, then recover spectral amplitudes */ + + interpolate_lsp_ver2(&lsps[0][0], c2->prev_lsps_dec, &lsps[1][0], 0.5, LPC_ORD); + + for(i=0; i<2; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + } + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[1]; + c2->prev_e_dec = e[1]; + for(i=0; iprev_lsps_dec[i] = lsps[1][i]; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_2400 + AUTHOR......: David Rowe + DATE CREATED: 21/8/2010 + + Encodes 160 speech samples (20ms of speech) into 48 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm twice. On the + first frame we just send the voicing bit. On the second frame we + send all model parameters. + + The bit allocation is: + + Parameter bits/frame + -------------------------------------- + Harmonic magnitudes (LSPs) 36 + Joint VQ of Energy and Wo 8 + Voicing (10ms update) 2 + Spare 2 + TOTAL 48 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_2400(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float ak[LPC_ORD+1]; + float lsps[LPC_ORD]; + float e; + int WoE_index; + int lsp_indexes[LPC_ORD]; + int i; + int spare = 0; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* first 10ms analysis frame - we just want voicing */ + + analyse_one_frame(c2, &model, speech); + pack(bits, &nbit, model.voiced, 1); + + /* second 10ms analysis frame */ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + WoE_index = encode_WoE(&model, e, c2->xq_enc); + pack(bits, &nbit, WoE_index, WO_E_BITS); + + encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); + for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); + + for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); + e[0] = interp_energy(c2->prev_e_dec, e[1]); + + /* LSPs are sampled every 20ms so we interpolate the frame in + between, then recover spectral amplitudes */ + + interpolate_lsp_ver2(&lsps[0][0], c2->prev_lsps_dec, &lsps[1][0], 0.5, LPC_ORD); + for(i=0; i<2; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + + /* dump parameters for deep learning experiments */ + + if (c2->fmlfeat != NULL) { + /* 10 LSPs - energy - Wo - voicing flag - 10 LPCs */ + fwrite(&lsps[i][0], LPC_ORD, sizeof(float), c2->fmlfeat); + fwrite(&e[i], 1, sizeof(float), c2->fmlfeat); + fwrite(&model[i].Wo, 1, sizeof(float), c2->fmlfeat); + float voiced_float = model[i].voiced; + fwrite(&voiced_float, 1, sizeof(float), c2->fmlfeat); + fwrite(&ak[i][1], LPC_ORD, sizeof(float), c2->fmlfeat); + } + } + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[1]; + c2->prev_e_dec = e[1]; + for(i=0; iprev_lsps_dec[i] = lsps[1][i]; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_1600 + AUTHOR......: David Rowe + DATE CREATED: Feb 28 2013 + + Encodes 320 speech samples (40ms of speech) into 64 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm 4 times: + + frame 0: voicing bit + frame 1: voicing bit, Wo and E + frame 2: voicing bit + frame 3: voicing bit, Wo and E, scalar LSPs + + The bit allocation is: + + Parameter frame 2 frame 4 Total + ------------------------------------------------------- + Harmonic magnitudes (LSPs) 0 36 36 + Pitch (Wo) 7 7 14 + Energy 5 5 10 + Voicing (10ms update) 2 2 4 + TOTAL 14 50 64 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_1600(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float lsps[LPC_ORD]; + float ak[LPC_ORD+1]; + float e; + int lsp_indexes[LPC_ORD]; + int Wo_index, e_index; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* frame 1: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, speech); + pack(bits, &nbit, model.voiced, 1); + + /* frame 2: - voicing, scalar Wo & E -------------------------------*/ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); + pack(bits, &nbit, Wo_index, WO_BITS); + + /* need to run this just to get LPC energy */ + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + e_index = encode_energy(e, E_BITS); + pack(bits, &nbit, e_index, E_BITS); + + /* frame 3: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + /* frame 4: - voicing, scalar Wo & E, scalar LSPs ------------------*/ + + analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); + pack(bits, &nbit, Wo_index, WO_BITS); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + e_index = encode_energy(e, E_BITS); + pack(bits, &nbit, e_index, E_BITS); + + encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); + for(i=0; ic2const, Wo_index, WO_BITS); + model[1].L = PI/model[1].Wo; + + e_index = unpack(bits, &nbit, E_BITS); + e[1] = decode_energy(e_index, E_BITS); + + model[2].voiced = unpack(bits, &nbit, 1); + + model[3].voiced = unpack(bits, &nbit, 1); + Wo_index = unpack(bits, &nbit, WO_BITS); + model[3].Wo = decode_Wo(&c2->c2const, Wo_index, WO_BITS); + model[3].L = PI/model[3].Wo; + + e_index = unpack(bits, &nbit, E_BITS); + e[3] = decode_energy(e_index, E_BITS); + + for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); + e[0] = interp_energy(c2->prev_e_dec, e[1]); + interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); + e[2] = interp_energy(e[1], e[3]); + + /* LSPs are sampled every 40ms so we interpolate the 3 frames in + between, then recover spectral amplitudes */ + + for(i=0, weight=0.25; i<3; i++, weight += 0.25) { + interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); + } + for(i=0; i<4; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + } + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[3]; + c2->prev_e_dec = e[3]; + for(i=0; iprev_lsps_dec[i] = lsps[3][i]; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_1400 + AUTHOR......: David Rowe + DATE CREATED: May 11 2012 + + Encodes 320 speech samples (40ms of speech) into 56 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm 4 times: + + frame 0: voicing bit + frame 1: voicing bit, joint VQ of Wo and E + frame 2: voicing bit + frame 3: voicing bit, joint VQ of Wo and E, scalar LSPs + + The bit allocation is: + + Parameter frame 2 frame 4 Total + ------------------------------------------------------- + Harmonic magnitudes (LSPs) 0 36 36 + Energy+Wo 8 8 16 + Voicing (10ms update) 2 2 4 + TOTAL 10 46 56 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_1400(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float lsps[LPC_ORD]; + float ak[LPC_ORD+1]; + float e; + int lsp_indexes[LPC_ORD]; + int WoE_index; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* frame 1: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, speech); + pack(bits, &nbit, model.voiced, 1); + + /* frame 2: - voicing, joint Wo & E -------------------------------*/ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + /* need to run this just to get LPC energy */ + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + + WoE_index = encode_WoE(&model, e, c2->xq_enc); + pack(bits, &nbit, WoE_index, WO_E_BITS); + + /* frame 3: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + /* frame 4: - voicing, joint Wo & E, scalar LSPs ------------------*/ + + analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + WoE_index = encode_WoE(&model, e, c2->xq_enc); + pack(bits, &nbit, WoE_index, WO_E_BITS); + + encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); + for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); + + model[2].voiced = unpack(bits, &nbit, 1); + + model[3].voiced = unpack(bits, &nbit, 1); + WoE_index = unpack(bits, &nbit, WO_E_BITS); + decode_WoE(&c2->c2const, &model[3], &e[3], c2->xq_dec, WoE_index); + + for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); + e[0] = interp_energy(c2->prev_e_dec, e[1]); + interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); + e[2] = interp_energy(e[1], e[3]); + + /* LSPs are sampled every 40ms so we interpolate the 3 frames in + between, then recover spectral amplitudes */ + + for(i=0, weight=0.25; i<3; i++, weight += 0.25) { + interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); + } + for(i=0; i<4; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + } + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[3]; + c2->prev_e_dec = e[3]; + for(i=0; iprev_lsps_dec[i] = lsps[3][i]; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_1300 + AUTHOR......: David Rowe + DATE CREATED: March 14 2013 + + Encodes 320 speech samples (40ms of speech) into 52 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm 4 times: + + frame 0: voicing bit + frame 1: voicing bit, + frame 2: voicing bit + frame 3: voicing bit, Wo and E, scalar LSPs + + The bit allocation is: + + Parameter frame 2 frame 4 Total + ------------------------------------------------------- + Harmonic magnitudes (LSPs) 0 36 36 + Pitch (Wo) 0 7 7 + Energy 0 5 5 + Voicing (10ms update) 2 2 4 + TOTAL 2 50 52 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_1300(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float lsps[LPC_ORD]; + float ak[LPC_ORD+1]; + float e; + int lsp_indexes[LPC_ORD]; + int Wo_index, e_index; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* frame 1: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, speech); + pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); + + /* frame 2: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); + + /* frame 3: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); + pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); + + /* frame 4: - voicing, scalar Wo & E, scalar LSPs ------------------*/ + + analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); + pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); + + Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); + pack_natural_or_gray(bits, &nbit, Wo_index, WO_BITS, c2->gray); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + e_index = encode_energy(e, E_BITS); + pack_natural_or_gray(bits, &nbit, e_index, E_BITS, c2->gray); + + encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); + for(i=0; igray); + } + + assert(nbit == (unsigned)codec2_bits_per_frame(c2)); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_decode_1300 + AUTHOR......: David Rowe + DATE CREATED: 11 May 2012 + + Decodes frames of 52 bits into 320 samples (40ms) of speech. + +\*---------------------------------------------------------------------------*/ + +void codec2_decode_1300(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est) +{ + MODEL model[4]; + int lsp_indexes[LPC_ORD]; + float lsps[4][LPC_ORD]; + int Wo_index, e_index; + float e[4]; + float snr; + float ak[4][LPC_ORD+1]; + int i,j; + unsigned int nbit = 0; + float weight; + COMP Aw[FFT_ENC]; + + assert(c2 != NULL); + + /* only need to zero these out due to (unused) snr calculation */ + + for(i=0; i<4; i++) + for(j=1; j<=MAX_AMP; j++) + model[i].A[j] = 0.0; + + /* unpack bits from channel ------------------------------------*/ + + /* this will partially fill the model params for the 4 x 10ms + frames */ + + model[0].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); + model[1].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); + model[2].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); + model[3].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); + + Wo_index = unpack_natural_or_gray(bits, &nbit, WO_BITS, c2->gray); + model[3].Wo = decode_Wo(&c2->c2const, Wo_index, WO_BITS); + model[3].L = PI/model[3].Wo; + + e_index = unpack_natural_or_gray(bits, &nbit, E_BITS, c2->gray); + e[3] = decode_energy(e_index, E_BITS); + + for(i=0; igray); + } + decode_lsps_scalar(&lsps[3][0], lsp_indexes, LPC_ORD); + check_lsp_order(&lsps[3][0], LPC_ORD); + bw_expand_lsps(&lsps[3][0], LPC_ORD, 50.0, 100.0); + + if (ber_est > 0.15) { + model[0].voiced = model[1].voiced = model[2].voiced = model[3].voiced = 0; + e[3] = decode_energy(10, E_BITS); + bw_expand_lsps(&lsps[3][0], LPC_ORD, 200.0, 200.0); + //fprintf(stderr, "soft mute\n"); + } + + /* interpolate ------------------------------------------------*/ + + /* Wo, energy, and LSPs are sampled every 40ms so we interpolate + the 3 frames in between */ + + for(i=0, weight=0.25; i<3; i++, weight += 0.25) { + interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); + interp_Wo2(&model[i], &c2->prev_model_dec, &model[3], weight, c2->c2const.Wo_min); + e[i] = interp_energy2(c2->prev_e_dec, e[3],weight); + } + + /* then recover spectral amplitudes */ + + for(i=0; i<4; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + + /* dump parameters for deep learning experiments */ + + if (c2->fmlfeat != NULL) { + /* 10 LSPs - energy - Wo - voicing flag - 10 LPCs */ + fwrite(&lsps[i][0], LPC_ORD, sizeof(float), c2->fmlfeat); + fwrite(&e[i], 1, sizeof(float), c2->fmlfeat); + fwrite(&model[i].Wo, 1, sizeof(float), c2->fmlfeat); + float voiced_float = model[i].voiced; + fwrite(&voiced_float, 1, sizeof(float), c2->fmlfeat); + fwrite(&ak[i][1], LPC_ORD, sizeof(float), c2->fmlfeat); + } + } + + #ifdef DUMP + dump_lsp_(&lsps[3][0]); + dump_ak_(&ak[3][0], LPC_ORD); + #endif + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[3]; + c2->prev_e_dec = e[3]; + for(i=0; iprev_lsps_dec[i] = lsps[3][i]; + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_1200 + AUTHOR......: David Rowe + DATE CREATED: Nov 14 2011 + + Encodes 320 speech samples (40ms of speech) into 48 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm four times: + + frame 0: voicing bit + frame 1: voicing bit, joint VQ of Wo and E + frame 2: voicing bit + frame 3: voicing bit, joint VQ of Wo and E, VQ LSPs + + The bit allocation is: + + Parameter frame 2 frame 4 Total + ------------------------------------------------------- + Harmonic magnitudes (LSPs) 0 27 27 + Energy+Wo 8 8 16 + Voicing (10ms update) 2 2 4 + Spare 0 1 1 + TOTAL 10 38 48 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + float lsps[LPC_ORD]; + float lsps_[LPC_ORD]; + float ak[LPC_ORD+1]; + float e; + int lsp_indexes[LPC_ORD]; + int WoE_index; + int i; + int spare = 0; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + /* frame 1: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, speech); + pack(bits, &nbit, model.voiced, 1); + + /* frame 2: - voicing, joint Wo & E -------------------------------*/ + + analyse_one_frame(c2, &model, &speech[c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + /* need to run this just to get LPC energy */ + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + + WoE_index = encode_WoE(&model, e, c2->xq_enc); + pack(bits, &nbit, WoE_index, WO_E_BITS); + + /* frame 3: - voicing ---------------------------------------------*/ + + analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + /* frame 4: - voicing, joint Wo & E, scalar LSPs ------------------*/ + + analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); + pack(bits, &nbit, model.voiced, 1); + + e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); + WoE_index = encode_WoE(&model, e, c2->xq_enc); + pack(bits, &nbit, WoE_index, WO_E_BITS); + + encode_lsps_vq(lsp_indexes, lsps, lsps_, LPC_ORD); + for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); + + model[2].voiced = unpack(bits, &nbit, 1); + + model[3].voiced = unpack(bits, &nbit, 1); + WoE_index = unpack(bits, &nbit, WO_E_BITS); + decode_WoE(&c2->c2const, &model[3], &e[3], c2->xq_dec, WoE_index); + + for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); + e[0] = interp_energy(c2->prev_e_dec, e[1]); + interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); + e[2] = interp_energy(e[1], e[3]); + + /* LSPs are sampled every 40ms so we interpolate the 3 frames in + between, then recover spectral amplitudes */ + + for(i=0, weight=0.25; i<3; i++, weight += 0.25) { + interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); + } + for(i=0; i<4; i++) { + lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); + aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, + c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); + apply_lpc_correction(&model[i]); + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); + } + + /* update memories for next frame ----------------------------*/ + + c2->prev_model_dec = model[3]; + c2->prev_e_dec = e[3]; + for(i=0; iprev_lsps_dec[i] = lsps[3][i]; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_700c + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Version c of 700 bit/s codec that uses newamp1 fixed rate VQ of amplitudes. + + Encodes 320 speech samples (40ms of speech) into 28 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm four times: + + frame 0: nothing + frame 1: nothing + frame 2: nothing + frame 3: 18 bit 2 stage VQ (9 bits/stage), 4 bits energy, + 6 bit scalar Wo/voicing. No spare bits. + + Voicing is encoded using the 0 index of the Wo quantiser. + + The bit allocation is: + + Parameter frames 1-3 frame 4 Total + ----------------------------------------------------------- + Harmonic magnitudes (rate k VQ) 0 18 18 + Energy 0 4 4 + log Wo/voicing 0 6 6 + TOTAL 0 28 28 + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + int indexes[4], i, M=4; + unsigned int nbit = 0; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + + for(i=0; in_samp]); + } + + int K = 20; + float rate_K_vec[K], mean; + float rate_K_vec_no_mean[K], rate_K_vec_no_mean_[K]; + + newamp1_model_to_indexes(&c2->c2const, + indexes, + &model, + rate_K_vec, + c2->rate_K_sample_freqs_kHz, + K, + &mean, + rate_K_vec_no_mean, + rate_K_vec_no_mean_, &c2->se, c2->eq, c2->eq_en); + c2->nse += K; + +#ifndef CORTEX_M4 + /* dump features for deep learning experiments */ + if (c2->fmlfeat != NULL) { + fwrite(&mean, 1, sizeof(float), c2->fmlfeat); + fwrite(rate_K_vec_no_mean, K, sizeof(float), c2->fmlfeat); + fwrite(rate_K_vec_no_mean_, K, sizeof(float), c2->fmlfeat); + MODEL model_; memcpy(&model_, &model, sizeof(model)); + float rate_K_vec_[K]; + for(int k=0; kc2const, &model_, rate_K_vec_, c2->rate_K_sample_freqs_kHz, K); + fwrite(&model_.A, MAX_AMP, sizeof(float), c2->fmlfeat); + } + if (c2->fmlmodel != NULL) + fwrite(&model,sizeof(MODEL),1,c2->fmlmodel); +#endif + + pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0); + pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0); + pack_natural_or_gray(bits, &nbit, indexes[2], 4, 0); + pack_natural_or_gray(bits, &nbit, indexes[3], 6, 0); + + assert(nbit == (unsigned)codec2_bits_per_frame(c2)); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_decode_700c + AUTHOR......: David Rowe + DATE CREATED: August 2015 + + Decodes frames of 28 bits into 320 samples (40ms) of speech. + +\*---------------------------------------------------------------------------*/ + +void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char * bits) +{ + MODEL model[4]; + int indexes[4]; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + /* unpack bits from channel ------------------------------------*/ + + indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[2] = unpack_natural_or_gray(bits, &nbit, 4, 0); + indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); + + int M = 4; + COMP HH[M][MAX_AMP+1]; + float interpolated_surface_[M][NEWAMP1_K]; + + newamp1_indexes_to_model(&c2->c2const, + model, + (COMP*)HH, + (float*)interpolated_surface_, + c2->prev_rate_K_vec_, + &c2->Wo_left, + &c2->voicing_left, + c2->rate_K_sample_freqs_kHz, + NEWAMP1_K, + c2->phase_fft_fwd_cfg, + c2->phase_fft_inv_cfg, + indexes, + c2->user_rate_K_vec_no_mean_, + c2->post_filter_en); + + + for(i=0; ifmlfeat != NULL) { + /* We use standard nb_features=55 feature records for compatibility with train_lpcnet.py */ + float features[55] = {0}; + /* just using 18/20 for compatibility with LPCNet, coarse scaling for NN input */ + for(int j=0; j<18; j++) + features[j] = (interpolated_surface_[i][j]-30)/40; + int pitch_index = 21 + 2.0*M_PI/model[i].Wo; + features[36] = 0.02*(pitch_index-100); + features[37] = model[i].voiced; + fwrite(features, 55, sizeof(float), c2->fmlfeat); + } + + /* 700C is a little quieter so lets apply some experimentally derived audio gain */ + synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], &HH[i][0], 1.5); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_energy_700c + AUTHOR......: Jeroen Vreeken + DATE CREATED: Jan 2017 + + Decodes energy value from encoded bits. + +\*---------------------------------------------------------------------------*/ + +float codec2_energy_700c(struct CODEC2 *c2, const unsigned char * bits) +{ + int indexes[4]; + unsigned int nbit = 0; + + assert(c2 != NULL); + + /* unpack bits from channel ------------------------------------*/ + + indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[2] = unpack_natural_or_gray(bits, &nbit, 4, 0); + indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); + + float mean = newamp1_energy_cb[0].cb[indexes[2]]; + mean -= 10; + if (indexes[3] == 0) + mean -= 10; + + return POW10F(mean/10.0); +} + +float codec2_energy_450(struct CODEC2 *c2, const unsigned char * bits) +{ + int indexes[4]; + unsigned int nbit = 0; + + assert(c2 != NULL); + + /* unpack bits from channel ------------------------------------*/ + + indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); + //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); + indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); + + float mean = newamp2_energy_cb[0].cb[indexes[2]]; + mean -= 10; + if (indexes[3] == 0) + mean -= 10; + + return POW10F(mean/10.0); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_get_energy() + AUTHOR......: Jeroen Vreeken + DATE CREATED: 08/03/2016 + + Extract energy value from an encoded frame. + +\*---------------------------------------------------------------------------*/ + +float codec2_get_energy(struct CODEC2 *c2, const unsigned char *bits) +{ + assert(c2 != NULL); + assert( + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) || + ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) + ); + MODEL model; + float xq_dec[2] = {}; + int e_index, WoE_index; + float e = 0.0f; + unsigned int nbit; + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) { + nbit = 1 + 1 + WO_BITS; + e_index = unpack(bits, &nbit, E_BITS); + e = decode_energy(e_index, E_BITS); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) { + nbit = 1 + 1; + WoE_index = unpack(bits, &nbit, WO_E_BITS); + decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) { + nbit = 1 + 1 + WO_BITS; + e_index = unpack(bits, &nbit, E_BITS); + e = decode_energy(e_index, E_BITS); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) { + nbit = 1 + 1; + WoE_index = unpack(bits, &nbit, WO_E_BITS); + decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) { + nbit = 1 + 1 + 1 + 1 + WO_BITS; + e_index = unpack_natural_or_gray(bits, &nbit, E_BITS, c2->gray); + e = decode_energy(e_index, E_BITS); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) { + nbit = 1 + 1; + WoE_index = unpack(bits, &nbit, WO_E_BITS); + decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { + e = codec2_energy_700c(c2, bits); + } + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { + e = codec2_energy_450(c2, bits); + } + + return e; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_encode_450 + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + 450 bit/s codec that uses newamp2 fixed rate VQ of amplitudes. + + Encodes 320 speech samples (40ms of speech) into 28 bits. + + The codec2 algorithm actually operates internally on 10ms (80 + sample) frames, so we run the encoding algorithm four times: + + frame 0: nothing + frame 1: nothing + frame 2: nothing + frame 3: 9 bit 1 stage VQ, 3 bits energy, + 6 bit scalar Wo/voicing/plosive. No spare bits. + + If a plosive is detected the frame at the energy-step is encoded. + + Voicing is encoded using the 000000 index of the Wo quantiser. + Plosive is encoded using the 111111 index of the Wo quantiser. + + The bit allocation is: + + Parameter frames 1-3 frame 4 Total + ----------------------------------------------------------- + Harmonic magnitudes (rate k VQ) 0 9 9 + Energy 0 3 3 + log Wo/voicing/plosive 0 6 6 + TOTAL 0 18 18 + + +\*---------------------------------------------------------------------------*/ + +void codec2_encode_450(struct CODEC2 *c2, unsigned char * bits, short speech[]) +{ + MODEL model; + int indexes[4], i,h, M=4; + unsigned int nbit = 0; + int plosiv = 0; + float energydelta[M]; + int spectralCounter; + + assert(c2 != NULL); + + memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); + for(i=0; in_samp]); + energydelta[i] = 0; + spectralCounter = 0; + for(h = 0;h<(model.L);h++){ + //only detect above 300 Hz + if(h*model.Wo*(c2->c2const.Fs/2000.0)/M_PI > 0.3){ + energydelta[i] = (double)energydelta[i] + (double)20.0*log10(model.A[10]+1E-16); + spectralCounter = spectralCounter+1; + } + + } + energydelta[i] = energydelta[i] / spectralCounter ; + } + //Constants for plosive Detection tdB = threshold; minPwr = from below this level plosives have to rise + float tdB = 15; //not fixed can be changed + float minPwr = 15; //not fixed can be changed + if((c2->energy_prev)((c2->energy_prev)+tdB)){ + + plosiv = 1; + } + if(energydelta[0](energydelta[0]+tdB)){ + + plosiv = 2; + } + if(energydelta[1](energydelta[1]+tdB)){ + + plosiv = 3; + } + if(energydelta[2](energydelta[2]+tdB)){ + + plosiv = 4; + } + if(plosiv != 0 && plosiv != 4){ + analyse_one_frame(c2, &model, &speech[(plosiv-1)*c2->n_samp]); + } + + c2->energy_prev = energydelta[3]; + + + int K = 29; + float rate_K_vec[K], mean; + float rate_K_vec_no_mean[K], rate_K_vec_no_mean_[K]; + if(plosiv > 0){ + plosiv = 1; + } + newamp2_model_to_indexes(&c2->c2const, + indexes, + &model, + rate_K_vec, + c2->n2_rate_K_sample_freqs_kHz, + K, + &mean, + rate_K_vec_no_mean, + rate_K_vec_no_mean_, + plosiv); + + + pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0); + //pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0); + pack_natural_or_gray(bits, &nbit, indexes[2], 3, 0); + pack_natural_or_gray(bits, &nbit, indexes[3], 6, 0); + + assert(nbit == (unsigned)codec2_bits_per_frame(c2)); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_decode_450 + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + +\*---------------------------------------------------------------------------*/ + +void codec2_decode_450(struct CODEC2 *c2, short speech[], const unsigned char * bits) +{ + MODEL model[4]; + int indexes[4]; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + /* unpack bits from channel ------------------------------------*/ + + indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); + //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); + indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); + + int M = 4; + COMP HH[M][MAX_AMP+1]; + float interpolated_surface_[M][NEWAMP2_K]; + int pwbFlag = 0; + + newamp2_indexes_to_model(&c2->c2const, + model, + (COMP*)HH, + (float*)interpolated_surface_, + c2->n2_prev_rate_K_vec_, + &c2->Wo_left, + &c2->voicing_left, + c2->n2_rate_K_sample_freqs_kHz, + NEWAMP2_K, + c2->phase_fft_fwd_cfg, + c2->phase_fft_inv_cfg, + indexes, + 1.5, + pwbFlag); + + + for(i=0; in_samp*i], &model[i], &HH[i][0], 1.5); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: codec2_decode_450pwb + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + Decodes the 450 codec data in pseudo wideband at 16kHz samplerate. + +\*---------------------------------------------------------------------------*/ + +void codec2_decode_450pwb(struct CODEC2 *c2, short speech[], const unsigned char * bits) +{ + MODEL model[4]; + int indexes[4]; + int i; + unsigned int nbit = 0; + + assert(c2 != NULL); + + /* unpack bits from channel ------------------------------------*/ + + indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); + //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); + indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); + indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); + + int M = 4; + COMP HH[M][MAX_AMP+1]; + float interpolated_surface_[M][NEWAMP2_16K_K]; + int pwbFlag = 1; + + newamp2_indexes_to_model(&c2->c2const, + model, + (COMP*)HH, + (float*)interpolated_surface_, + c2->n2_pwb_prev_rate_K_vec_, + &c2->Wo_left, + &c2->voicing_left, + c2->n2_pwb_rate_K_sample_freqs_kHz, + NEWAMP2_16K_K, + c2->phase_fft_fwd_cfg, + c2->phase_fft_inv_cfg, + indexes, + 1.5, + pwbFlag); + + + for(i=0; in_samp*i], &model[i], &HH[i][0], 1.5); + } +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: synthesise_one_frame() + AUTHOR......: David Rowe + DATE CREATED: 23/8/2010 + + Synthesise 80 speech samples (10ms) from model parameters. + +\*---------------------------------------------------------------------------*/ + +void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, COMP Aw[], float gain) +{ + int i; + + if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode) ) { + /* newamp1/2, we've already worked out rate L phase */ + COMP *H = Aw; + phase_synth_zero_order(c2->n_samp, model, &c2->ex_phase, H); + } else { + /* LPC based phase synthesis */ + COMP H[MAX_AMP+1]; + sample_phase(model, H, Aw); + phase_synth_zero_order(c2->n_samp, model, &c2->ex_phase, H); + } + + postfilter(model, &c2->bg_est); + synthesise(c2->n_samp, c2->fftr_inv_cfg, c2->Sn_, model, c2->Pn, 1); + + for(i=0; in_samp; i++) { + c2->Sn_[i] *= gain; + } + + ear_protection(c2->Sn_, c2->n_samp); + + for(i=0; in_samp; i++) { + if (c2->Sn_[i] > 32767.0) + speech[i] = 32767; + else if (c2->Sn_[i] < -32767.0) + speech[i] = -32767; + else + speech[i] = c2->Sn_[i]; + } + +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: analyse_one_frame() + AUTHOR......: David Rowe + DATE CREATED: 23/8/2010 + + Extract sinusoidal model parameters from 80 speech samples (10ms of + speech). + +\*---------------------------------------------------------------------------*/ + +void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]) +{ + COMP Sw[FFT_ENC]; + float pitch; + int i; + int n_samp = c2->n_samp; + int m_pitch = c2->m_pitch; + + /* Read input speech */ + + for(i=0; iSn[i] = c2->Sn[i+n_samp]; + for(i=0; iSn[i+m_pitch-n_samp] = speech[i]; + + dft_speech(&c2->c2const, c2->fft_fwd_cfg, Sw, c2->Sn, c2->w); + + /* Estimate pitch */ + nlp(c2->nlp, c2->Sn, n_samp, &pitch, Sw, c2->W, &c2->prev_f0_enc); + model->Wo = TWO_PI/pitch; + model->L = PI/model->Wo; + + /* estimate model parameters */ + two_stage_pitch_refinement(&c2->c2const, model, Sw); + + /* estimate phases when doing ML experiments */ + if (c2->fmlfeat != NULL) + estimate_amplitudes(model, Sw, c2->W, 1); + else + estimate_amplitudes(model, Sw, c2->W, 0); + est_voicing_mbe(&c2->c2const, model, Sw, c2->W); + #ifdef DUMP + dump_model(model); + #endif +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: ear_protection() + AUTHOR......: David Rowe + DATE CREATED: Nov 7 2012 + + Limits output level to protect ears when there are bit errors or the input + is overdriven. This doesn't correct or mask bit errors, just reduces the + worst of their damage. + +\*---------------------------------------------------------------------------*/ + +static void ear_protection(float in_out[], int n) { + float max_sample, over, gain; + int i; + + /* find maximum sample in frame */ + + max_sample = 0.0; + for(i=0; i max_sample) + max_sample = in_out[i]; + + /* determine how far above set point */ + + over = max_sample/30000.0; + + /* If we are x dB over set point we reduce level by 2x dB, this + attenuates major excursions in amplitude (likely to be caused + by bit errors) more than smaller ones */ + + if (over > 1.0) { + gain = 1.0/(over*over); + for(i=0; i= 0.0) && (beta <= 1.0)); + assert((gamma >= 0.0) && (gamma <= 1.0)); + c2->lpc_pf = enable; + c2->bass_boost = bass_boost; + c2->beta = beta; + c2->gamma = gamma; +} + + +/* + Allows optional stealing of one of the voicing bits for use as a + spare bit, only 1300 & 1400 & 1600 bit/s supported for now. + Experimental method of sending voice/data frames for FreeDV. +*/ + +int codec2_get_spare_bit_index(struct CODEC2 *c2) +{ + assert(c2 != NULL); + + switch(c2->mode) { + case CODEC2_MODE_1300: + return 2; // bit 2 (3th bit) is v2 (third voicing bit) + break; + case CODEC2_MODE_1400: + return 10; // bit 10 (11th bit) is v2 (third voicing bit) + break; + case CODEC2_MODE_1600: + return 15; // bit 15 (16th bit) is v2 (third voicing bit) + break; + } + + return -1; +} + +/* + Reconstructs the spare voicing bit. Note works on unpacked bits + for convenience. +*/ + +int codec2_rebuild_spare_bit(struct CODEC2 *c2, char unpacked_bits[]) +{ + int v1,v3; + + assert(c2 != NULL); + + v1 = unpacked_bits[1]; + + switch(c2->mode) { + case CODEC2_MODE_1300: + + v3 = unpacked_bits[1+1+1]; + + /* if either adjacent frame is voiced, make this one voiced */ + + unpacked_bits[2] = (v1 || v3); + + return 0; + + break; + + case CODEC2_MODE_1400: + + v3 = unpacked_bits[1+1+8+1]; + + /* if either adjacent frame is voiced, make this one voiced */ + + unpacked_bits[10] = (v1 || v3); + + return 0; + + break; + + case CODEC2_MODE_1600: + v3 = unpacked_bits[1+1+8+5+1]; + + /* if either adjacent frame is voiced, make this one voiced */ + + unpacked_bits[15] = (v1 || v3); + + return 0; + + break; + } + + return -1; +} + +void codec2_set_natural_or_gray(struct CODEC2 *c2, int gray) +{ + assert(c2 != NULL); + c2->gray = gray; +} + +void codec2_set_softdec(struct CODEC2 *c2, float *softdec) +{ + assert(c2 != NULL); + c2->softdec = softdec; +} + +void codec2_open_mlfeat(struct CODEC2 *codec2_state, char *feat_fn, char *model_fn) { + if ((codec2_state->fmlfeat = fopen(feat_fn, "wb")) == NULL) { + fprintf(stderr, "error opening machine learning feature file: %s\n", feat_fn); + exit(1); + } + if (model_fn) { + if ((codec2_state->fmlmodel = fopen(model_fn, "wb")) == NULL) { + fprintf(stderr, "error opening machine learning Codec 2 model file: %s\n", feat_fn); + exit(1); + } + } +} + +#ifndef __EMBEDDED__ +void codec2_load_codebook(struct CODEC2 *codec2_state, int num, char *filename) { + FILE *f; + + if ((f = fopen(filename, "rb")) == NULL) { + fprintf(stderr, "error opening codebook file: %s\n", filename); + exit(1); + } + //fprintf(stderr, "reading newamp1vq_cb[%d] k=%d m=%d\n", num, newamp1vq_cb[num].k, newamp1vq_cb[num].m); + float tmp[newamp1vq_cb[num].k*newamp1vq_cb[num].m]; + int nread = fread(tmp, sizeof(float), newamp1vq_cb[num].k*newamp1vq_cb[num].m, f); + float *p = (float*)newamp1vq_cb[num].cb; + for(int i=0; inse) + return codec2_state->se/codec2_state->nse; + else + return 0; +} + +float *codec2_enable_user_ratek(struct CODEC2 *codec2_state, int *K) { + codec2_state->user_rate_K_vec_no_mean_ = (float*)malloc(sizeof(float)*NEWAMP1_K); + *K = NEWAMP1_K; + return codec2_state->user_rate_K_vec_no_mean_; +} + +void codec2_700c_post_filter(struct CODEC2 *codec2_state, bool en) { + codec2_state->post_filter_en = en; +} + +void codec2_700c_eq(struct CODEC2 *codec2_state, bool en) { + codec2_state->eq_en = en; + codec2_state->se = 0.0; codec2_state->nse = 0; +} diff --git a/src/codec2.h b/src/codec2.h new file mode 100644 index 0000000..0aab21d --- /dev/null +++ b/src/codec2.h @@ -0,0 +1,123 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2.h + AUTHOR......: David Rowe + DATE CREATED: 21 August 2010 + + Codec 2 fully quantised encoder and decoder functions. If you want use + Codec 2, these are the functions you need to call. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2010 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __CODEC2__ +#define __CODEC2__ +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + +#define CODEC2_MODE_3200 0 +#define CODEC2_MODE_2400 1 +#define CODEC2_MODE_1600 2 +#define CODEC2_MODE_1400 3 +#define CODEC2_MODE_1300 4 +#define CODEC2_MODE_1200 5 +#define CODEC2_MODE_700C 8 +#define CODEC2_MODE_450 10 +#define CODEC2_MODE_450PWB 11 + +#ifndef CODEC2_MODE_EN_DEFAULT +#define CODEC2_MODE_EN_DEFAULT 1 +#endif + +// by default we enable all modes +// disable during compile time with -DCODEC2_MODE_1600_EN=0 +// all but CODEC2 1600 are enabled then + +//or the other way round +// -DCODEC2_MODE_EN_DEFAULT=0 -DCODEC2_MODE_1600_EN=1 +// only CODEC2 Mode 1600 + +#if !defined(CODEC2_MODE_3200_EN) + #define CODEC2_MODE_3200_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_2400_EN) + #define CODEC2_MODE_2400_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_1600_EN) + #define CODEC2_MODE_1600_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_1400_EN) + #define CODEC2_MODE_1400_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_1300_EN) + #define CODEC2_MODE_1300_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_1200_EN) + #define CODEC2_MODE_1200_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_700C_EN) + #define CODEC2_MODE_700C_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_450_EN) + #define CODEC2_MODE_450_EN CODEC2_MODE_EN_DEFAULT +#endif +#if !defined(CODEC2_MODE_450PWB_EN) + #define CODEC2_MODE_450PWB_EN CODEC2_MODE_EN_DEFAULT +#endif + +#define CODEC2_MODE_ACTIVE(mode_name, var) ((mode_name##_EN) == 0 ? 0: (var) == mode_name) + +struct CODEC2; + +struct CODEC2 *codec2_create(int mode); +void codec2_destroy(struct CODEC2 *codec2_state); +void codec2_encode(struct CODEC2 *codec2_state, unsigned char bytes[], short speech_in[]); +void codec2_decode(struct CODEC2 *codec2_state, short speech_out[], const unsigned char bytes[]); +void codec2_decode_ber(struct CODEC2 *codec2_state, short speech_out[], const unsigned char *bytes, float ber_est); +int codec2_samples_per_frame(struct CODEC2 *codec2_state); +int codec2_bits_per_frame(struct CODEC2 *codec2_state); +int codec2_bytes_per_frame(struct CODEC2 *codec2_state); + +void codec2_set_lpc_post_filter(struct CODEC2 *codec2_state, int enable, int bass_boost, float beta, float gamma); +int codec2_get_spare_bit_index(struct CODEC2 *codec2_state); +int codec2_rebuild_spare_bit(struct CODEC2 *codec2_state, char unpacked_bits[]); +void codec2_set_natural_or_gray(struct CODEC2 *codec2_state, int gray); +void codec2_set_softdec(struct CODEC2 *c2, float *softdec); +float codec2_get_energy(struct CODEC2 *codec2_state, const unsigned char *bits); + +// support for ML and VQ experiments +void codec2_open_mlfeat(struct CODEC2 *codec2_state, char *feat_filename, char *model_filename); +void codec2_load_codebook(struct CODEC2 *codec2_state, int num, char *filename); +float codec2_get_var(struct CODEC2 *codec2_state); +float *codec2_enable_user_ratek(struct CODEC2 *codec2_state, int *K); + +// 700C post filter and equaliser +void codec2_700c_post_filter(struct CODEC2 *codec2_state, bool en); +void codec2_700c_eq(struct CODEC2 *codec2_state, bool en); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/src/codec2_cohpsk.h b/src/codec2_cohpsk.h new file mode 100644 index 0000000..33ab21d --- /dev/null +++ b/src/codec2_cohpsk.h @@ -0,0 +1,71 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_cohpsk.h + AUTHOR......: David Rowe + DATE CREATED: March 2015 + + Functions that implement a coherent PSK FDM modem. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __CODEC2_COHPSK__ +#define __CODEC2_COHPSK__ + +#define COHPSK_BITS_PER_FRAME 56 +#define COHPSK_NC 7 /* number of carriers */ +#define COHPSK_NOM_SAMPLES_PER_FRAME 600 +#define COHPSK_MAX_SAMPLES_PER_FRAME 625 +#define COHPSK_RS 75 /* symbol rate of each carrier */ +#define COHPSK_FS 7500 /* note this is a weird value to get an integer + oversampling rate */ +#define COHPSK_CLIP 6.5 /* hard clipping for Nc*Nc=14 to reduce PAPR */ +#define COHPSK_SCALE 975 /* suggested scaling for 16 bit shorts */ + +#include "comp.h" +#include "modem_stats.h" + +struct COHPSK; + +extern const int test_bits_coh[]; + +struct COHPSK *cohpsk_create(void); +void cohpsk_destroy(struct COHPSK *coh); +void cohpsk_mod(struct COHPSK *cohpsk, COMP tx_fdm[], int tx_bits[], int nbits); +void cohpsk_clip(COMP tx_fdm[], float clip_thresh, int n); +void cohpsk_demod(struct COHPSK *cohpsk, float rx_bits[], int *sync, COMP rx_fdm[], int *nin_frame); +void cohpsk_get_demod_stats(struct COHPSK *cohpsk, struct MODEM_STATS *stats); +void cohpsk_set_verbose(struct COHPSK *coh, int verbose); +void cohpsk_get_test_bits(struct COHPSK *coh, int rx_bits[]); +void cohpsk_put_test_bits(struct COHPSK *coh, int *state, short error_pattern[], + int *bit_errors, char rx_bits[], int channel); +int cohpsk_error_pattern_size(void); +void cohpsk_set_frame(struct COHPSK *coh, int frame); +void fdmdv_freq_shift_coh(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, float Fs, + COMP *foff_phase_rect, int nin); + +void cohpsk_set_freq_est_mode(struct COHPSK *coh, int used_simple_mode); + +/* used for accessing upper and lower bits before diversity combination */ + +float *cohpsk_get_rx_bits_lower(struct COHPSK *coh); +float *cohpsk_get_rx_bits_upper(struct COHPSK *coh); +void cohpsk_set_carrier_ampl(struct COHPSK *coh, int c, float ampl); + +#endif diff --git a/src/codec2_fdmdv.h b/src/codec2_fdmdv.h new file mode 100644 index 0000000..b93e13e --- /dev/null +++ b/src/codec2_fdmdv.h @@ -0,0 +1,122 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_fdmdv.h + AUTHOR......: David Rowe + DATE CREATED: April 14 2012 + + A 1400 bit/s (nominal) Frequency Division Multiplexed Digital Voice + (FDMDV) modem. Used for digital audio over HF SSB. See + README_fdmdv.txt for more information, and fdmdv_mod.c and + fdmdv_demod.c for example usage. + + The name codec2_fdmdv.h is used to make it unique when "make + installed". + + References: + + [1] http://n1su.com/fdmdv/FDMDV_Docs_Rel_1_4b.pdf + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __FDMDV__ +#define __FDMDV__ + +#include "comp.h" +#include "modem_stats.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* set up the calling convention for DLL function import/export for + WIN32 cross compiling */ + +#ifdef __CODEC2_WIN32__ +#ifdef __CODEC2_BUILDING_DLL__ +#define CODEC2_WIN32SUPPORT __declspec(dllexport) __stdcall +#else +#define CODEC2_WIN32SUPPORT __declspec(dllimport) __stdcall +#endif +#else +#define CODEC2_WIN32SUPPORT +#endif + +#define FDMDV_NC 14 /* default number of data carriers */ +#define FDMDV_NC_MAX 20 /* maximum number of data carriers */ +#define FDMDV_BITS_PER_FRAME 28 /* 20ms frames, for nominal 1400 bit/s */ +#define FDMDV_NOM_SAMPLES_PER_FRAME 160 /* modulator output samples/frame and nominal demod samples/frame */ + /* at 8000 Hz sample rate */ +#define FDMDV_MAX_SAMPLES_PER_FRAME 200 /* max demod samples/frame, use this to allocate storage */ +#define FDMDV_SCALE 825 /* suggested scaling for 16 bit shorts */ +#define FDMDV_FCENTRE 1500 /* Centre frequency, Nc/2 carriers below this, Nc/2 carriers above (Hz) */ + +/* 8 to 18 kHz sample rate conversion */ + +#define FDMDV_OS 2 /* oversampling rate */ +#define FDMDV_OS_TAPS_16K 48 /* number of OS filter taps at 16kHz */ +#define FDMDV_OS_TAPS_8K (FDMDV_OS_TAPS_16K/FDMDV_OS) /* number of OS filter taps at 8kHz */ + +/* 8 to 48 kHz sample rate conversion */ + +#define FDMDV_OS_48 6 /* oversampling rate */ +#define FDMDV_OS_TAPS_48K 48 /* number of OS filter taps at 48kHz */ +#define FDMDV_OS_TAPS_48_8K (FDMDV_OS_TAPS_48K/FDMDV_OS_48) /* number of OS filter taps at 8kHz */ + +/* FDMDV states and stats structures */ + +struct FDMDV; + +struct FDMDV * fdmdv_create(int Nc); +void fdmdv_destroy(struct FDMDV *fdmdv_state); +void fdmdv_use_old_qpsk_mapping(struct FDMDV *fdmdv_state); +int fdmdv_bits_per_frame(struct FDMDV *fdmdv_state); +float fdmdv_get_fsep(struct FDMDV *fdmdv_state); +void fdmdv_set_fsep(struct FDMDV *fdmdv_state, float fsep); + +void fdmdv_mod(struct FDMDV *fdmdv_state, COMP tx_fdm[], int tx_bits[], int *sync_bit); +void fdmdv_demod(struct FDMDV *fdmdv_state, int rx_bits[], int *reliable_sync_bit, COMP rx_fdm[], int *nin); + +void fdmdv_get_test_bits(struct FDMDV *fdmdv_state, int tx_bits[]); +int fdmdv_error_pattern_size(struct FDMDV *fdmdv_state); +void fdmdv_put_test_bits(struct FDMDV *f, int *sync, short error_pattern[], int *bit_errors, int *ntest_bits, int rx_bits[]); + +void fdmdv_get_demod_stats(struct FDMDV *fdmdv_state, struct MODEM_STATS *stats); + +void fdmdv_8_to_16(float out16k[], float in8k[], int n); +void fdmdv_8_to_16_short(short out16k[], short in8k[], int n); +void fdmdv_16_to_8(float out8k[], float in16k[], int n); +void fdmdv_16_to_8_short(short out8k[], short in16k[], int n); +void fdmdv_8_to_48(float out48k[], float in8k[], int n); +void fdmdv_48_to_8(float out8k[], float in48k[], int n); +void fdmdv_8_to_48_short(short out48k[], short in8k[], int n); +void fdmdv_48_to_8_short(short out8k[], short in48k[], int n); + +void fdmdv_freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, COMP *foff_phase_rect, int nin); + +/* debug/development function(s) */ + +void fdmdv_dump_osc_mags(struct FDMDV *f); +void fdmdv_simulate_channel(float *sig_pwr_av, COMP samples[], int nin, float target_snr); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/codec2_fft.c b/src/codec2_fft.c new file mode 100644 index 0000000..841b913 --- /dev/null +++ b/src/codec2_fft.c @@ -0,0 +1,158 @@ +/* + * codec2_fft.c + * + * Created on: 24.09.2016 + * Author: danilo + */ + +#include "codec2_fft.h" + +#include "debug_alloc.h" + +#ifdef USE_KISS_FFT +#include "_kiss_fft_guts.h" + +#else +#if 0 +// caching constants in RAM did not seem to have an effect on performance +// TODO: Decide what to with this code +#define FFT_INIT_CACHE_SIZE 4 +const arm_cfft_instance_f32* fft_init_cache[FFT_INIT_CACHE_SIZE]; + +static const arm_cfft_instance_f32* arm_fft_instance2ram(const arm_cfft_instance_f32* in) +{ + + arm_cfft_instance_f32* out = malloc(sizeof(arm_cfft_instance_f32)); + + if (out) { + memcpy(out,in,sizeof(arm_cfft_instance_f32)); + out->pBitRevTable = malloc(out->bitRevLength * sizeof(uint16_t)); + out->pTwiddle = malloc(out->fftLen * sizeof(float32_t)); + memcpy((void*)out->pBitRevTable,in->pBitRevTable,out->bitRevLength * sizeof(uint16_t)); + memcpy((void*)out->pTwiddle,in->pTwiddle,out->fftLen * sizeof(float32_t)); + } + return out; +} + + +static const arm_cfft_instance_f32* arm_fft_cache_get(const arm_cfft_instance_f32* romfft) +{ + const arm_cfft_instance_f32* retval = NULL; + static int used = 0; + for (int i = 0; fft_init_cache[i] != NULL && i < used; i++) + { + if (romfft->fftLen == fft_init_cache[i]->fftLen) + { + retval = fft_init_cache[i]; + break; + } + } + if (retval == NULL && used < FFT_INIT_CACHE_SIZE) + { + retval = arm_fft_instance2ram(romfft); + fft_init_cache[used++] = retval; + } + if (retval == NULL) + { + retval = romfft; + } + return retval; +} +#endif +#endif + +void codec2_fft_free(codec2_fft_cfg cfg) +{ +#ifdef USE_KISS_FFT + KISS_FFT_FREE(cfg); +#else + FREE(cfg); +#endif +} + +codec2_fft_cfg codec2_fft_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem) +{ + codec2_fft_cfg retval; +#ifdef USE_KISS_FFT + retval = kiss_fft_alloc(nfft, inverse_fft, mem, lenmem); +#else + retval = MALLOC(sizeof(codec2_fft_struct)); + retval->inverse = inverse_fft; + switch(nfft) + { + case 128: + retval->instance = &arm_cfft_sR_f32_len128; + break; + case 256: + retval->instance = &arm_cfft_sR_f32_len256; + break; + case 512: + retval->instance = &arm_cfft_sR_f32_len512; + break; +// case 1024: +// retval->instance = &arm_cfft_sR_f32_len1024; +// break; + default: + abort(); + } + // retval->instance = arm_fft_cache_get(retval->instance); +#endif + return retval; +} + +codec2_fftr_cfg codec2_fftr_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem) +{ + codec2_fftr_cfg retval; +#ifdef USE_KISS_FFT + retval = kiss_fftr_alloc(nfft, inverse_fft, mem, lenmem); +#else + retval = MALLOC(sizeof(codec2_fftr_struct)); + retval->inverse = inverse_fft; + retval->instance = MALLOC(sizeof(arm_rfft_fast_instance_f32)); + arm_rfft_fast_init_f32(retval->instance,nfft); + // memcpy(&retval->instance->Sint,arm_fft_cache_get(&retval->instance->Sint),sizeof(arm_cfft_instance_f32)); +#endif + return retval; +} +void codec2_fftr_free(codec2_fftr_cfg cfg) +{ +#ifdef USE_KISS_FFT + KISS_FFT_FREE(cfg); +#else + FREE(cfg->instance); + FREE(cfg); +#endif +} + +// there is a little overhead for inplace kiss_fft but this is +// on the powerful platforms like the Raspberry or even x86 PC based ones +// not noticeable +// the reduced usage of RAM and increased performance on STM32 platforms +// should be worth it. +void codec2_fft_inplace(codec2_fft_cfg cfg, codec2_fft_cpx* inout) +{ + +#ifdef USE_KISS_FFT + // decide whether to use the local stack based buffer for in + // or to allow kiss_fft to allocate RAM + // second part is just to play safe since first method + // is much faster and uses less RAM + if (cfg->nfft <= 512) + { + kiss_fft_cpx in[512]; + memcpy(in,inout,cfg->nfft*sizeof(kiss_fft_cpx)); + kiss_fft(cfg, in, (kiss_fft_cpx*)inout); + } + else + { + kiss_fft(cfg, (kiss_fft_cpx*)inout, (kiss_fft_cpx*)inout); + } +#else + arm_cfft_f32(cfg->instance,(float*)inout,cfg->inverse,1); + if (cfg->inverse) + { + arm_scale_f32((float*)inout,cfg->instance->fftLen,(float*)inout,cfg->instance->fftLen*2); + } + +#endif +} diff --git a/src/codec2_fft.h b/src/codec2_fft.h new file mode 100644 index 0000000..66e8ca2 --- /dev/null +++ b/src/codec2_fft.h @@ -0,0 +1,105 @@ +/* + * codec2_fft.h + * + * Created on: 17.09.2016 + * Author: danilo + */ + +#ifndef DRIVERS_FREEDV_CODEC2_FFT_H_ +#define DRIVERS_FREEDV_CODEC2_FFT_H_ + +#include +#include +#include +#include +#include + +#ifndef FDV_ARM_MATH + #define USE_KISS_FFT +#else + #include "arm_math.h" + #include "arm_const_structs.h" +#endif + +#include "defines.h" +#include "comp.h" + + +typedef COMP codec2_fft_cpx; +#include "kiss_fftr.h" + +#ifdef USE_KISS_FFT + #include "kiss_fft.h" + typedef kiss_fftr_cfg codec2_fftr_cfg; + typedef kiss_fft_cfg codec2_fft_cfg; + typedef kiss_fft_scalar codec2_fft_scalar; +#else + typedef float32_t codec2_fft_scalar; + typedef struct { + arm_rfft_fast_instance_f32* instance; + int inverse; + } codec2_fftr_struct; + + typedef codec2_fftr_struct* codec2_fftr_cfg; + + typedef struct { + const arm_cfft_instance_f32* instance; + int inverse; + } codec2_fft_struct; + typedef codec2_fft_struct* codec2_fft_cfg; +#endif + + + +static inline void codec2_fftr(codec2_fftr_cfg cfg, codec2_fft_scalar* in, codec2_fft_cpx* out) +{ + +#ifdef USE_KISS_FFT + kiss_fftr(cfg, in, (kiss_fft_cpx*)out); +#else + arm_rfft_fast_f32(cfg->instance,in,(float*)out,cfg->inverse); + out->imag = 0; // remove out[FFT_ENC/2]->real stored in out[0].imag +#endif +} + +static inline void codec2_fftri(codec2_fftr_cfg cfg, codec2_fft_cpx* in, codec2_fft_scalar* out) +{ +#ifdef USE_KISS_FFT + kiss_fftri(cfg, (kiss_fft_cpx*)in, out); +#else + arm_rfft_fast_f32(cfg->instance,(float*)in,out,cfg->inverse); + // arm_scale_f32(out,cfg->instance->fftLenRFFT,out,cfg->instance->fftLenRFFT); +#endif + +} + +codec2_fft_cfg codec2_fft_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem); +codec2_fftr_cfg codec2_fftr_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem); +void codec2_fft_free(codec2_fft_cfg cfg); +void codec2_fftr_free(codec2_fftr_cfg cfg); + + +static inline void codec2_fft(codec2_fft_cfg cfg, codec2_fft_cpx* in, codec2_fft_cpx* out) +{ + +#ifdef USE_KISS_FFT + kiss_fft(cfg, (kiss_fft_cpx*)in, (kiss_fft_cpx*)out); +#else + memcpy(out,in,cfg->instance->fftLen*2*sizeof(float)); + arm_cfft_f32(cfg->instance,(float*)out,cfg->inverse, 1); + // TODO: this is not nice, but for now required to keep changes minimal + // however, since main goal is to reduce the memory usage + // we should convert to an in place interface + // on PC like platforms the overhead of using the "inplace" kiss_fft calls + // is neglectable compared to the gain in memory usage on STM32 platforms + if (cfg->inverse) + { + arm_scale_f32((float*)out,cfg->instance->fftLen,(float*)out,cfg->instance->fftLen*2); + } +#endif +} + +void codec2_fft_inplace(codec2_fft_cfg cfg, codec2_fft_cpx* inout); + + +#endif diff --git a/src/codec2_fifo.c b/src/codec2_fifo.c new file mode 100644 index 0000000..a2d3c30 --- /dev/null +++ b/src/codec2_fifo.c @@ -0,0 +1,150 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_fifo.c + AUTHOR......: David Rowe + DATE CREATED: Oct 15 2012 + + A FIFO design useful in gluing the FDMDV modem and codec together in + integrated applications. The unittest/tfifo indicates these + routines are thread safe without the need for syncronisation + object, e.g. a different thread can read and write to a fifo at the + same time. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include "codec2_fifo.h" + +struct FIFO { + short *buf; + short *pin; + short *pout; + int nshort; +}; + +// standard create function +struct FIFO *codec2_fifo_create(int nshort) { + short *buf = (short*)malloc(sizeof(short)*nshort); + assert(buf != NULL); + return codec2_fifo_create_buf(nshort, buf); +} + +// alternate create function where buffer is externally supplied +struct FIFO *codec2_fifo_create_buf(int nshort, short* buf) { + struct FIFO *fifo; + assert(buf != NULL); + fifo = (struct FIFO *)malloc(sizeof(struct FIFO)); + assert(fifo != NULL); + + fifo->buf = buf; + fifo->pin = fifo->buf; + fifo->pout = fifo->buf; + fifo->nshort = nshort; + + return fifo; +} + +void codec2_fifo_destroy(struct FIFO *fifo) { + assert(fifo != NULL); + free(fifo->buf); + free(fifo); +} + +int codec2_fifo_write(struct FIFO *fifo, short data[], int n) { + int i; + short *pdata; + short *pin = fifo->pin; + + assert(fifo != NULL); + assert(data != NULL); + + if (n > codec2_fifo_free(fifo)) { + return -1; + } + else { + + /* This could be made more efficient with block copies + using memcpy */ + + pdata = data; + for(i=0; ibuf + fifo->nshort)) + pin = fifo->buf; + } + fifo->pin = pin; + } + + return 0; +} + +int codec2_fifo_read(struct FIFO *fifo, short data[], int n) +{ + int i; + short *pdata; + short *pout = fifo->pout; + + assert(fifo != NULL); + assert(data != NULL); + + if (n > codec2_fifo_used(fifo)) { + return -1; + } + else { + + /* This could be made more efficient with block copies + using memcpy */ + + pdata = data; + for(i=0; ibuf + fifo->nshort)) + pout = fifo->buf; + } + fifo->pout = pout; + } + + return 0; +} + +int codec2_fifo_used(const struct FIFO * const fifo) +{ + short *pin = fifo->pin; + short *pout = fifo->pout; + unsigned int used; + + assert(fifo != NULL); + if (pin >= pout) + used = pin - pout; + else + used = fifo->nshort + (unsigned int)(pin - pout); + + return used; +} + +int codec2_fifo_free(const struct FIFO * const fifo) +{ + // available storage is one less than nshort as prd == pwr + // is reserved for empty rather than full + + return fifo->nshort - codec2_fifo_used(fifo) - 1; +} diff --git a/src/codec2_fifo.h b/src/codec2_fifo.h new file mode 100644 index 0000000..57e3b96 --- /dev/null +++ b/src/codec2_fifo.h @@ -0,0 +1,57 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_fifo.h + AUTHOR......: David Rowe + DATE CREATED: Oct 15 2012 + + A FIFO design useful in gluing the FDMDV modem and codec together in + integrated applications. + + The name codec2_fifo.h is used to make it unique when "make + installed". + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __FIFO__ +#define __FIFO__ + +#ifdef __cplusplus +extern "C" { +#endif + +struct FIFO; + +struct FIFO *codec2_fifo_create(int nshort); +struct FIFO *codec2_fifo_create_buf(int nshort, short* buf); +void codec2_fifo_destroy(struct FIFO *fifo); +int codec2_fifo_write(struct FIFO *fifo, short data[], int n); +int codec2_fifo_read(struct FIFO *fifo, short data[], int n); + +/* Return the number of bytes stored in the FIFO */ +int codec2_fifo_used(const struct FIFO * const fifo); + +/* Return the space available in the FIFO */ +int codec2_fifo_free(const struct FIFO * const fifo); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/codec2_fm.h b/src/codec2_fm.h new file mode 100644 index 0000000..36faece --- /dev/null +++ b/src/codec2_fm.h @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_fm.h + AUTHOR......: David Rowe + DATE CREATED: February 2015 + + Functions that implement analog FM, see also octave/fm.m. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __CODEC2_FM__ +#define __CODEC2_FM__ + +#include "comp.h" + +struct FM { + float Fs; /* setme: sample rate */ + float fm_max; /* setme: maximum modulation frequency */ + float fd; /* setme: maximum deviation */ + float fc; /* setme: carrier frequency */ + COMP *rx_bb; + COMP rx_bb_filt_prev; + float *rx_dem_mem; + float tx_phase; + int nsam; + COMP lo_phase; +}; + +struct FM *fm_create(int nsam); +void fm_destroy(struct FM *fm_states); +void fm_demod(struct FM *fm, float rx_out[], float rx[]); +void fm_mod(struct FM *fm, float tx_in[], float tx_out[]); +void fm_mod_comp(struct FM *fm_states, float tx_in[], COMP tx_out[]); + +#endif + diff --git a/src/codec2_internal.h b/src/codec2_internal.h new file mode 100644 index 0000000..b23ecaa --- /dev/null +++ b/src/codec2_internal.h @@ -0,0 +1,109 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_internal.h + AUTHOR......: David Rowe + DATE CREATED: April 16 2012 + + Header file for Codec2 internal states, exposed via this header + file to assist in testing. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __CODEC2_INTERNAL__ +#define __CODEC2_INTERNAL__ +#include + +#include "codec2_fft.h" +#include "newamp1.h" +#include "newamp2.h" + +struct CODEC2 { + int mode; + C2CONST c2const; + int Fs; + int n_samp; + int m_pitch; + codec2_fft_cfg fft_fwd_cfg; /* forward FFT config */ + codec2_fftr_cfg fftr_fwd_cfg; /* forward real FFT config */ + float *w; /* [m_pitch] time domain hamming window */ + float W[FFT_ENC]; /* DFT of w[] */ + float *Pn; /* [2*n_samp] trapezoidal synthesis window */ + float *bpf_buf; /* buffer for band pass filter */ + float *Sn; /* [m_pitch] input speech */ + float hpf_states[2]; /* high pass filter states */ + void *nlp; /* pitch predictor states */ + int gray; /* non-zero for gray encoding */ + + codec2_fftr_cfg fftr_inv_cfg; /* inverse FFT config */ + float *Sn_; /* [2*n_samp] synthesised output speech */ + float ex_phase; /* excitation model phase track */ + float bg_est; /* background noise estimate for post filter */ + float prev_f0_enc; /* previous frame's f0 estimate */ + MODEL prev_model_dec; /* previous frame's model parameters */ + float prev_lsps_dec[LPC_ORD]; /* previous frame's LSPs */ + float prev_e_dec; /* previous frame's LPC energy */ + + int lpc_pf; /* LPC post filter on */ + int bass_boost; /* LPC post filter bass boost */ + float beta; /* LPC post filter parameters */ + float gamma; + + float xq_enc[2]; /* joint pitch and energy VQ states */ + float xq_dec[2]; + + int smoothing; /* enable smoothing for channels with errors */ + float *softdec; /* optional soft decn bits from demod */ + + /* newamp1 states */ + + float rate_K_sample_freqs_kHz[NEWAMP1_K]; + float prev_rate_K_vec_[NEWAMP1_K]; + float Wo_left; + int voicing_left; + codec2_fft_cfg phase_fft_fwd_cfg; + codec2_fft_cfg phase_fft_inv_cfg; + float se; /* running sum of squared error */ + unsigned int nse; /* number of terms in sum */ + float *user_rate_K_vec_no_mean_; /* optional, user supplied vector for quantisation experiments */ + bool post_filter_en; + float eq[NEWAMP1_K]; /* optional equaliser */ + bool eq_en; + + /*newamp2 states (also uses newamp1 states )*/ + float energy_prev; + float n2_rate_K_sample_freqs_kHz[NEWAMP2_K]; + float n2_prev_rate_K_vec_[NEWAMP2_K]; + float n2_pwb_rate_K_sample_freqs_kHz[NEWAMP2_16K_K]; + float n2_pwb_prev_rate_K_vec_[NEWAMP2_16K_K]; + + /* used to dump features for deep learning experiments */ + FILE *fmlfeat, *fmlmodel; + + /* encode/decode function pointers for the selected mode */ + void (*encode)(struct CODEC2 *c2, unsigned char * bits, short speech[]); + void (*decode)(struct CODEC2 *c2, short speech[], const unsigned char * bits); + void (*decode_ber)(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est); +}; + +// test and debug +void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]); +void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, + COMP Aw[], float gain); +#endif diff --git a/src/codec2_math.h b/src/codec2_math.h new file mode 100644 index 0000000..31e4880 --- /dev/null +++ b/src/codec2_math.h @@ -0,0 +1,70 @@ +#ifndef CODEC2_MATH_H +#define CODEC2_MATH_H + +//========================================================================== +// Name: codec2_math.h +// +// Purpose: A wrapper around architecture specific math libraries +// used on embedded devices to improve Codec2 performance. +// Created: May 15, 2022 +// Authors: Mooneer Salem +// +// License: +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License version 2.1, +// as published by the Free Software Foundation. This program is +// distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program; if not, see . +// +//========================================================================== + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif // __cplusplus + +#include "comp.h" + +//========================================================================== +// Note: the functions in this file must be implemented in your code if you +// intend on using Codec2 in a non-ARM based embedded device. Otherwise, +// linker errors will occur. For ARM, a default implementation of these +// functions exists in codec2_math_arm.c. +//========================================================================== + +//========================================================================== +/// Calculates the dot product of two real-valued float vectors. +/// +/// @param leftHandSideRealVector A pointer to the first vector to use for the dot product. +/// @param rightHandSideRealVector A pointer to the second vector to use for the dot product. +/// @param vectorLength The length of the vector. Both vectors should be at least this long. +/// @param resultReal A pointer to the variable in which to store the scalar result. +/// +//========================================================================== +void codec2_dot_product_f32(float* leftHandSideRealVector, float* rightHandSideRealVector, size_t vectorLength, float* resultReal); + +//========================================================================== +/// Calculates the dot product of two complex-valued float vectors. +/// +/// @param leftHandSideComplexVector A pointer to the first vector to use for the dot product. +/// @param rightHandSideComplexVector A pointer to the second vector to use for the dot product. +/// @param vectorLength The length of the vector. Both vectors should be at least this long. +/// @param resultReal A pointer to the variable in which to store the real component of the result. +/// @param resultImag A pointer to the variable in which to store the imaginary component of the result. +/// +//========================================================================== +void codec2_complex_dot_product_f32(COMP* leftHandSideComplexVector, COMP* rightHandSideComplexVector, size_t vectorLength, float* resultReal, float* resultImag); + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif // CODEC2_MATH_H diff --git a/src/codec2_math_arm.c b/src/codec2_math_arm.c new file mode 100644 index 0000000..b14ad3a --- /dev/null +++ b/src/codec2_math_arm.c @@ -0,0 +1,57 @@ +//========================================================================== +// Name: codec2_math_arm.c +// +// Purpose: A wrapper around architecture specific math libraries +// used on ARM embedded devices to improve Codec2 performance. +// Created: May 15, 2022 +// Authors: Mooneer Salem +// +// License: +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License version 2.1, +// as published by the Free Software Foundation. This program is +// distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program; if not, see . +// +//========================================================================== + +#if defined(__EMBEDDED__) && defined(__ARM_ARCH) +#include "codec2_math.h" +#include "arm_math.h" + +//========================================================================== +/// Calculates the dot product of two real-valued float vectors. +/// +/// @param leftHandSideRealVector A pointer to the first vector to use for the dot product. +/// @param rightHandSideRealVector A pointer to the second vector to use for the dot product. +/// @param vectorLength The length of the vector. Both vectors should be at least this long. +/// @param resultReal A pointer to the variable in which to store the scalar result. +//========================================================================== +void codec2_dot_product_f32(float* leftHandSideRealVector, float* rightHandSideRealVector, size_t vectorLength, float* resultReal) +{ + arm_dot_prod_f32(leftHandSideRealVector, rightHandSideRealVector, vectorLength, resultReal); +} + +//========================================================================== +/// Calculates the dot product of two complex-valued float vectors. +/// +/// @param leftHandSideComplexVector A pointer to the first vector to use for the dot product. +/// @param rightHandSideComplexVector A pointer to the second vector to use for the dot product. +/// @param vectorLength The length of the vector. Both vectors should be at least this long. +/// @param resultReal A pointer to the variable in which to store the real component of the result. +/// @param resultImag A pointer to the variable in which to store the imaginary component of the result. +/// +/// @note Each array of floats is organized with even elements being real and odd elements imaginary. +//========================================================================== +void codec2_complex_dot_product_f32(COMP* leftHandSideComplexVector, COMP* rightHandSideComplexVector, size_t vectorLength, float* resultReal, float* resultImag) +{ + arm_cmplx_dot_prod_f32((float*)leftHandSideComplexVector, (float*)rightHandSideComplexVector, vectorLength, resultReal, resultImag); +} + +#endif // defined(__EMBEDDED__) && defined(__ARM_ARCH) diff --git a/src/codec2_ofdm.h b/src/codec2_ofdm.h new file mode 100644 index 0000000..0804ba0 --- /dev/null +++ b/src/codec2_ofdm.h @@ -0,0 +1,107 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: codec2_ofdm.h + AUTHORS.....: David Rowe & Steve Sampson + DATE CREATED: June 2017 + + External user references to the modem library. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2017 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef CODEC2_OFDM_H +#define CODEC2_OFDM_H + +/* Includes */ + +#include +#include + +#include "comp.h" +#include "modem_stats.h" + +/* Defines */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define OFDM_PEAK 16384 /* peak level of OFDM TX signal */ +#define OFDM_CLIP (32767*0.35) /* experimentally derived constant to reduce PAPR to about 8dB */ + +#define UN_SYNC 0 /* Used with the ofdm_set_sync() */ +#define AUTO_SYNC 1 +#define MANUAL_SYNC 2 + +#define AUTO_PHASE_EST 0 +#define LOCKED_PHASE_EST 1 + +#define LOW_BW 0 +#define HIGH_BW 1 + +struct OFDM_CONFIG; +struct OFDM; + +/* create and destroy modem states */ + +struct OFDM *ofdm_create(const struct OFDM_CONFIG * config); +void ofdm_destroy(struct OFDM *); +void ofdm_init_mode(char mode[], struct OFDM_CONFIG *config); + +/* signal processing */ + +void ofdm_mod(struct OFDM *, COMP *, const int *); +void ofdm_demod(struct OFDM *, int *, COMP *); +void ofdm_demod_shorts(struct OFDM *, int *, short *, float); +int ofdm_sync_search(struct OFDM *, COMP *); +int ofdm_sync_search_shorts(struct OFDM *, short *, float); +void ofdm_sync_state_machine(struct OFDM *, uint8_t *); +void ofdm_sync_state_machine2(struct OFDM *, uint8_t *); + +/* getters */ + +struct OFDM_CONFIG *ofdm_get_config_param(struct OFDM *ofdm); +int ofdm_get_nin(struct OFDM *); +int ofdm_get_samples_per_frame(struct OFDM *ofdm); +int ofdm_get_samples_per_packet(struct OFDM *ofdm); +int ofdm_get_max_samples_per_frame(struct OFDM *ofdm); +int ofdm_get_bits_per_frame(struct OFDM *ofdm); +int ofdm_get_bits_per_packet(struct OFDM *ofdm); +int ofdm_get_phase_est_bandwidth_mode(struct OFDM *ofdm); + +/* option setters */ + +void ofdm_set_verbose(struct OFDM *, int); +void ofdm_set_timing_enable(struct OFDM *, bool); +void ofdm_set_foff_est_enable(struct OFDM *, bool); +void ofdm_set_phase_est_enable(struct OFDM *, bool); +void ofdm_set_phase_est_bandwidth_mode(struct OFDM *ofdm, int val); +void ofdm_set_off_est_hz(struct OFDM *, float); +void ofdm_set_sync(struct OFDM *, int); +void ofdm_set_tx_bpf(struct OFDM *, bool); +void ofdm_set_dpsk(struct OFDM *ofdm, bool val); +void ofdm_set_packets_per_burst(struct OFDM *ofdm, int packetsperburst); + +void ofdm_print_info(struct OFDM *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/cohpsk.c b/src/cohpsk.c new file mode 100644 index 0000000..b7ce633 --- /dev/null +++ b/src/cohpsk.c @@ -0,0 +1,1433 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: cohpsk.c + AUTHOR......: David Rowe + DATE CREATED: March 2015 + + Functions that implement a coherent PSK FDM modem. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/*---------------------------------------------------------------------------*\ + + INCLUDES + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include + +#include "codec2_cohpsk.h" +#include "cohpsk_defs.h" +#include "cohpsk_internal.h" +#include "fdmdv_internal.h" +#include "pilots_coh.h" +#include "comp_prim.h" +#include "kiss_fft.h" +#include "linreg.h" +#include "rn_coh.h" +#include "test_bits_coh.h" + +#include "debug_alloc.h" + +static COMP qpsk_mod[] = { + { 1.0, 0.0}, + { 0.0, 1.0}, + { 0.0,-1.0}, + {-1.0, 0.0} +}; + +static int sampling_points[] = {0, 1, 6, 7}; + +void corr_with_pilots(float *corr_out, float *mag_out, struct COHPSK *coh, int t, float f_fine); +void update_ct_symb_buf(COMP ct_symb_buf[][COHPSK_NC*COHPSK_ND], COMP ch_symb[][COHPSK_NC*COHPSK_ND]); + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------* \ + + FUNCTION....: cohpsk_create + AUTHOR......: David Rowe + DATE CREATED: Marcg 2015 + + Create and initialise an instance of the modem. Returns a pointer + to the modem states or NULL on failure. One set of states is + sufficient for a full duplex modem. + +\*---------------------------------------------------------------------------*/ + +struct COHPSK *cohpsk_create(void) +{ + struct COHPSK *coh; + struct FDMDV *fdmdv; + int r,c,p,i; + float freq_hz, result; + float tau = 2.0f * M_PI; + + assert(COHPSK_NC == PILOTS_NC); + assert(COHPSK_NOM_SAMPLES_PER_FRAME == (COHPSK_M*NSYMROWPILOT)); + assert(COHPSK_MAX_SAMPLES_PER_FRAME == (COHPSK_M*NSYMROWPILOT+COHPSK_M/P)); + assert(COHPSK_NSYM == NSYM); /* as we want to use the tx sym mem on fdmdv */ + assert(COHPSK_NT == NT); + + coh = (struct COHPSK*)MALLOC(sizeof(struct COHPSK)); + if (coh == NULL) + return NULL; + + /* set up buffer of tx pilot symbols for coh demod on rx */ + + for(r=0; r<2*NPILOTSFRAME; ) { + for(p=0; ppilot2[r][c] = pilots_coh[p][c]; + } + } + } + + /* Clear symbol buffer memory */ + + for (r=0; rct_symb_buf[r][c].real = 0.0; + coh->ct_symb_buf[r][c].imag = 0.0; + } + } + + coh->ff_phase.real = 1.0; coh->ff_phase.imag = 0.0; + coh->sync = 0; + coh->frame = 0; + coh->ratio = 0.0; + coh->nin = COHPSK_M; + + /* clear sync window buffer */ + + for (i=0; ich_fdm_frame_buf[i].real = 0.0; + coh->ch_fdm_frame_buf[i].imag = 0.0; + } + + /* set up fdmdv states so we can use those modem functions */ + + /* + * NC*ND -1 Realize that the function creates a sync carrier (+1), + * or one more carrier than asked for. We ignore any initialization + * inside of fdmdv and take care of that here, using the whole + * NC*ND number of carriers to be used in cohpsk. + */ + fdmdv = fdmdv_create((COHPSK_NC*COHPSK_ND) - 1); + + fdmdv->fsep = COHPSK_RS*(1.0 + COHPSK_EXCESS_BW); + + for(c=0; cphase_tx[c].real = 1.0; + fdmdv->phase_tx[c].imag = 0.0; + + /* note non-linear carrier spacing to help PAPR, works v well in conjunction with CLIP */ + + freq_hz = fdmdv->fsep*( -(COHPSK_NC*COHPSK_ND)/2 - 0.5f + powf(c + 1.0f, 0.98f) ); + result = tau * freq_hz/COHPSK_FS; + + fdmdv->freq[c].real = cosf(result); + fdmdv->freq[c].imag = sinf(result); + fdmdv->freq_pol[c] = result; + + //printf("c: %d %f %f\n",c,freq_hz,fdmdv->freq_pol[c]); + for(i=0; irx_filter_memory[c][i].real = 0.0; + coh->rx_filter_memory[c][i].imag = 0.0; + } + + /* optional per-carrier amplitude weighting for testing */ + + coh->carrier_ampl[c] = 1.0; + } + + result = tau * FDMDV_FCENTRE/COHPSK_FS; + fdmdv->fbb_rect.real = cosf(result); + fdmdv->fbb_rect.imag = sinf(result); + fdmdv->fbb_pol = result; + + coh->fdmdv = fdmdv; + + coh->sig_rms = coh->noise_rms = 0.0; + + for(c=0; crx_symb[r][c].real = 0.0; + coh->rx_symb[r][c].imag = 0.0; + } + } + + coh->verbose = 0; + + /* disable optional logging by default */ + + coh->rx_baseband_log = NULL; + coh->rx_baseband_log_col_index = 0; + coh->rx_filt_log = NULL; + coh->rx_filt_log_col_index = 0; + coh->ch_symb_log = NULL; + coh->ch_symb_log_r = 0; + coh->rx_timing_log = NULL; + coh->rx_timing_log_index = 0; + + /* test frames */ + + coh->ptest_bits_coh_tx = coh->ptest_bits_coh_rx[0] = coh->ptest_bits_coh_rx[1] = (int*)test_bits_coh; + coh->ptest_bits_coh_end = (int*)test_bits_coh + sizeof(test_bits_coh)/sizeof(int); + + return coh; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_destroy + AUTHOR......: David Rowe + DATE CREATED: March 2015 + + Destroy an instance of the modem. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_destroy(struct COHPSK *coh) +{ + fdmdv_destroy(coh->fdmdv); + assert(coh != NULL); + FREE(coh); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: bits_to_qpsk_symbols() + AUTHOR......: David Rowe + DATE CREATED: March 2015 + + Rate Rs modulator. Maps bits to parallel DQPSK symbols and inserts pilot symbols. + +\*---------------------------------------------------------------------------*/ + +void bits_to_qpsk_symbols(COMP tx_symb[][COHPSK_NC*COHPSK_ND], int tx_bits[], int nbits) +{ + int i, r, c, p_r, data_r, d, diversity; + short bits; + + /* check allowed number of bits supplied matches number of QPSK + symbols in the frame */ + + assert( (NSYMROW*COHPSK_NC*2 == nbits) || (NSYMROW*COHPSK_NC*2*COHPSK_ND == nbits)); + + /* if we input twice as many bits we don't do diversity */ + + if (NSYMROW*COHPSK_NC*2 == nbits) { + diversity = 1; /* diversity mode */ + } + else { + diversity = 2; /* twice as many bits, non diversity mode */ + } + + /* + Insert two rows of Nc pilots at beginning of data frame. + + Organise QPSK symbols into a NSYMBROWS rows by PILOTS_NC*ND cols matrix, + each column is a carrier, time flows down the cols...... + + Note: the "& 0x1" prevents and non binary tx_bits[] screwing up + our lives. Call me defensive. + + sqrtf(ND) term ensures the same energy/symbol for different + diversity factors. + */ + + r = 0; + for(p_r=0; p_r<2; p_r++) { + for(c=0; cpilot2[p][pc], ct_symb_buf[sampling_points[p]][c]); + } + + linreg(&m, &b, x, y, NPILOTSFRAME+2); + for(r=0; rphi_[r][c] = atan2f(yfit.imag, yfit.real); + } + + /* amplitude estimation */ + + mag = 0.0f; + for(p=0; pamp_[r][c] = amp_; + } + } + + /* now correct phase of data symbols */ + + for(c=0; cphi_[r][c]); phi_rect.imag = -sinf(coh->phi_[r][c]); + coh->rx_symb[r][c] = cmult(ct_symb_buf[NPILOTSFRAME + r][c], phi_rect); + i = c*NSYMROW + r; + rx_symb_linear[i] = coh->rx_symb[r][c]; + } + } + + /* and finally optional diversity combination, note output is soft decn a "1" is < 0 */ + + for(c=0; crx_symb[r][c]; + for (d=1; drx_symb[r][c + COHPSK_NC*d]); + } + rot = cmult(div_symb, pi_on_4); + i = c*NSYMROW + r; + rx_bits[2*i+1] = rot.real; + rx_bits[2*i] = rot.imag; + + /* demodulate bits from upper and lower carriers separately for test purposes */ + + assert(COHPSK_ND == 2); + + i = c*NSYMROW + r; + rot = cmult(coh->rx_symb[r][c], pi_on_4); + coh->rx_bits_lower[2*i+1] = rot.real; + coh->rx_bits_lower[2*i] = rot.imag; + rot = cmult(coh->rx_symb[r][c + COHPSK_NC], pi_on_4); + coh->rx_bits_upper[2*i+1] = rot.real; + coh->rx_bits_upper[2*i] = rot.imag; + } + } + + + /* estimate RMS signal and noise */ + + mag = 0.0f; + for(i=0; isig_rms = mag/(NSYMROW*COHPSK_NC*COHPSK_ND); + + sum_x = 0.0f; + sum_xx = 0.0f; + n = 0; + for (i=0; i coh->sig_rms) { + sum_x += s.imag; + sum_xx += s.imag*s.imag; + n++; + } + } + + noise_var = 0.0f; + if (n > 1) { + noise_var = (n*sum_xx - sum_x*sum_x)/(n*(n-1)); + } + coh->noise_rms = sqrtf(noise_var); + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: tx_filter_and_upconvert_coh() + AUTHOR......: David Rowe + DATE CREATED: May 2015 + + Given NC symbols construct M samples (1 symbol) of NC filtered + and upconverted symbols. + + TODO: work out a way to merge with fdmdv version, e.g. run time define M/NSYM, + and run unittests on fdmdv and cohpsk modem afterwards. + +\*---------------------------------------------------------------------------*/ + +void tx_filter_and_upconvert_coh(COMP tx_fdm[], int Nc, const COMP tx_symbols[], + COMP tx_filter_memory[][COHPSK_NSYM], + COMP phase_tx[], COMP freq[], + COMP *fbb_phase, COMP fbb_rect) +{ + int c; + int i,j,k; + float acc; + COMP gain; + COMP tx_baseband; + COMP two = {2.0, 0.0}; + float mag; + + gain.real = sqrtf(2.0)/2.0; + gain.imag = 0.0; + + for(i=0; ireal /= mag; + fbb_phase->imag /= mag; + + /* shift memory, inserting zeros at end */ + + for(i=0; ict_symb_buf[t+sampling_points[p]][c]); + acorr = cadd(acorr, fcmult(coh->pilot2[p][pc], f_corr)); + mag += cabsolute(f_corr); + } + corr += cabsolute(acorr); + } + + *corr_out = corr; + *mag_out = mag; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: frame_sync_fine_freq_est() + AUTHOR......: David Rowe + DATE CREATED: April 2015 + + Returns an estimate of frame sync (coarse timing) offset and fine + frequency offset, advances to next sync state if we have a reliable + match for frame sync. + +\*---------------------------------------------------------------------------*/ + +void frame_sync_fine_freq_est(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*COHPSK_ND], int sync, int *next_sync) +{ + int t; + float f_fine, mag, max_corr, max_mag, corr, result; + float tau = 2.0f * M_PI; + + update_ct_symb_buf(coh->ct_symb_buf, ch_symb); + + /* sample pilots at start of this frame and start of next frame */ + + if (sync == 0) { + + /* sample correlation over 2D grid of time and fine freq points */ + + max_corr = 0.0; max_mag = 1E-12; + for (f_fine=-20; f_fine<=20; f_fine+=0.25) { + for (t=0; t= max_corr) { + max_corr = corr; + max_mag = mag; + coh->ct = t; + coh->f_fine_est = f_fine; + } + } + } + + + result = coh->f_fine_est * tau / COHPSK_RS; + + coh->ff_rect.real = cosf(result); + coh->ff_rect.imag = -sinf(result); + if (coh->verbose) + fprintf(stderr, " [%d] fine freq f: %6.2f max_ratio: %f ct: %d\n", coh->frame, (double)coh->f_fine_est, (double)max_corr/(double)max_mag, coh->ct); + + if (max_corr/max_mag > 0.9) { + if (coh->verbose) + fprintf(stderr, " [%d] encouraging sync word!\n", coh->frame); + coh->sync_timer = 0; + *next_sync = 1; + } + else { + *next_sync = 0; + } + coh->ratio = max_corr/max_mag; + } +} + + +void update_ct_symb_buf(COMP ct_symb_buf[][COHPSK_NC*COHPSK_ND], COMP ch_symb[][COHPSK_NC*COHPSK_ND]) +{ + int r, c, i; + + /* update memory in symbol buffer */ + + for(r=0; rct, coh->f_fine_est); + coh->ratio = fabsf(corr)/mag; + + // printf("%f\n", cabsolute(corr)/mag); + + if (fabsf(corr)/mag < 0.8) + coh->sync_timer++; + else + coh->sync_timer = 0; + + if (coh->sync_timer == 10) { + if (coh->verbose) + fprintf(stderr," [%d] lost sync ....\n", coh->frame); + next_sync = 0; + } + } + + sync = next_sync; + + return sync; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_mod() + AUTHOR......: David Rowe + DATE CREATED: 5/4/2015 + + COHPSK modulator, take a frame of COHPSK_BITS_PER_FRAME or + 2*COHPSK_BITS_PER_FRAME bits and generates a frame of + COHPSK_NOM_SAMPLES_PER_FRAME modulated symbols. + + if nbits == COHPSK_BITS_PER_FRAME, diveristy mode is used, if nbits + == 2*COHPSK_BITS_PER_FRAME diversity mode is not used. + + The output signal is complex to support single sided frequency + shifting, for example when testing frequency offsets in channel + simulation. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_mod(struct COHPSK *coh, COMP tx_fdm[], int tx_bits[], int nbits) +{ + struct FDMDV *fdmdv = coh->fdmdv; + COMP tx_symb[NSYMROWPILOT][COHPSK_NC*COHPSK_ND]; + COMP tx_onesym[COHPSK_NC*COHPSK_ND]; + int r,c; + + bits_to_qpsk_symbols(tx_symb, tx_bits, nbits); + + for(r=0; rcarrier_ampl[c], tx_symb[r][c]); + tx_filter_and_upconvert_coh(&tx_fdm[r*COHPSK_M], COHPSK_NC*COHPSK_ND , tx_onesym, fdmdv->tx_filter_memory, + fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_clip() + AUTHOR......: David Rowe + DATE CREATED: May 2015 + + Hard clips a complex signal magnitude (Hilbert Clipping) to improve PAPR. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_clip(COMP tx_fdm[], float clip_thresh, int n) +{ + COMP sam; + float mag; + int i; + + for(i=0; i clip_thresh) { + sam = fcmult(clip_thresh/mag, sam); + } + tx_fdm[i] = sam; + } + } + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdm_downconvert_coh + AUTHOR......: David Rowe + DATE CREATED: May 2015 + + Frequency shift each modem carrier down to NC baseband signals. + + TODO: try to combine with fdmdv version, carefully re-test fdmdv modem. + +\*---------------------------------------------------------------------------*/ + +void fdm_downconvert_coh(COMP rx_baseband[][COHPSK_M+COHPSK_M/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin) +{ + int i,c; + float mag; + + /* maximum number of input samples to demod */ + + assert(nin <= (COHPSK_M+COHPSK_M/P)); + + /* downconvert */ + + for (c=0; c 4 || \ + (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || \ + (__GNUC_MINOR__ == 6 && \ + __GNUC_PATCHLEVEL__ > 0))) +#define USE_VECTOR_OPS 1 +#elif __clang_major__ > 3 || \ + (__clang_minor__ == 3 && (__clang_minor__ > 7 || \ + (__clang_minor__ == 7 && \ + __clang_patchlevel__ > 0))) +#define USE_VECTOR_OPS 1 +#endif + +#if USE_VECTOR_OPS + +#ifdef __ARM_NEON +#include "arm_neon.h" + +typedef float32x4_t float4; +#else +/* Vector of 4 floating point numbers for use by the below function */ +typedef float float4 __attribute__ ((vector_size (16))); +#endif // __ARM_NEON + +#endif /* USE_VECTOR_OPS */ + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: rx_filter_coh() + AUTHOR......: David Rowe + DATE CREATED: May 2015 + + cohpsk version of fdmdv.c rx_filter function. + + TODO: see if we can merge the two! Will require re-testing of fdmdv modem. + +\*---------------------------------------------------------------------------*/ + +inline extern void rx_filter_coh(COMP rx_filt[COHPSK_NC*COHPSK_ND][P+1], int Nc, COMP rx_baseband[COHPSK_NC*COHPSK_ND][COHPSK_M+COHPSK_M/P], COMP rx_filter_memory[COHPSK_NC*COHPSK_ND][COHPSK_NFILTER], int nin) +{ + int c,i,j,k,l; + int n=COHPSK_M/P; + + /* rx filter each symbol, generate P filtered output samples for + each symbol. Note we keep filter memory at rate M, it's just + the filter output at rate P */ + + for(i=0, j=0; ireal /= mag; + foff_phase_rect->imag /= mag; +} + + +void rate_Fs_rx_processing(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*COHPSK_ND], COMP ch_fdm_frame[], float *f_est, int nsymb, int nin, int freq_track) +{ + struct FDMDV *fdmdv = coh->fdmdv; + int r, c, i, ch_fdm_frame_index; + COMP rx_fdm_frame_bb[COHPSK_M+COHPSK_M/P]; + COMP rx_baseband[COHPSK_NC*COHPSK_ND][COHPSK_M+COHPSK_M/P]; + COMP rx_filt[COHPSK_NC*COHPSK_ND][P+1]; + float env[NT*P], rx_timing; + COMP rx_onesym[COHPSK_NC*COHPSK_ND]; + float beta, g; + COMP adiff, amod_strip, mod_strip; + + ch_fdm_frame_index = 0; + rx_timing = 0; + + for (r=0; rfbb_phase_rx, nin); + ch_fdm_frame_index += nin; + fdm_downconvert_coh(rx_baseband, COHPSK_NC*COHPSK_ND, rx_fdm_frame_bb, fdmdv->phase_rx, fdmdv->freq, nin); + rx_filter_coh(rx_filt, COHPSK_NC*COHPSK_ND, rx_baseband, coh->rx_filter_memory, nin); + rx_timing = rx_est_timing(rx_onesym, fdmdv->Nc, rx_filt, fdmdv->rx_filter_mem_timing, env, nin, COHPSK_M); + + for(c=0; cNc+1; c++) { + //printf("rx_onesym[%d] %f %f prev_rx_symbols[%d] %f %f\n", c, rx_onesym[c].real, rx_onesym[c].imag, + // fdmdv->prev_rx_symbols[c].real, fdmdv->prev_rx_symbols[c].imag); + adiff = cmult(rx_onesym[c], cconj(fdmdv->prev_rx_symbols[c])); + fdmdv->prev_rx_symbols[c] = rx_onesym[c]; + + /* 4th power strips QPSK modulation, by multiplying phase by 4 + Using the abs value of the real coord was found to help + non-linear issues when noise power was large. */ + + amod_strip = cmult(adiff, adiff); + amod_strip = cmult(amod_strip, amod_strip); + amod_strip.real = fabsf(amod_strip.real); + mod_strip = cadd(mod_strip, amod_strip); + } + //printf("modstrip: %f %f\n", mod_strip.real, mod_strip.imag); + + /* loop filter made up of 1st order IIR plus integrator. Integerator + was found to be reqd */ + + fdmdv->foff_filt = (1.0f-beta)*fdmdv->foff_filt + beta*atan2f(mod_strip.imag, mod_strip.real); + //printf("foff_filt: %f angle: %f\n", fdmdv->foff_filt, atan2f(mod_strip.imag, mod_strip.real)); + *f_est += g*fdmdv->foff_filt; + } + + /* Optional logging used for testing against Octave version */ + + if (coh->rx_baseband_log) { + assert(nin <= (COHPSK_M+COHPSK_M/P)); + for(c=0; crx_baseband_log[c*coh->rx_baseband_log_col_sz + coh->rx_baseband_log_col_index + i] = rx_baseband[c][i]; + } + } + coh->rx_baseband_log_col_index += nin; + assert(coh->rx_baseband_log_col_index <= coh->rx_baseband_log_col_sz); + } + + if (coh->rx_filt_log) { + for(c=0; crx_filt_log[c*coh->rx_filt_log_col_sz + coh->rx_filt_log_col_index + i] = rx_filt[c][i]; + } + } + coh->rx_filt_log_col_index += nin/(COHPSK_M/P); + } + + if (coh->ch_symb_log) { + for(c=0; cch_symb_log[coh->ch_symb_log_r*COHPSK_NC*COHPSK_ND + c] = ch_symb[r][c]; + } + coh->ch_symb_log_r++; + } + + if (coh->rx_timing_log) { + coh->rx_timing_log[coh->rx_timing_log_index] = rx_timing; + coh->rx_timing_log_index++; + //printf("rx_timing_log_index: %d\n", coh->rx_timing_log_index); + } + + /* we only allow a timing shift on one symbol per frame */ + + if (nin != COHPSK_M) + nin = COHPSK_M; + } + + coh->rx_timing = rx_timing; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_demod() + AUTHOR......: David Rowe + DATE CREATED: 5/4/2015 + + COHPSK demodulator, takes an array of (nominally) nin_frame = + COHPSK_NOM_SAMPLES_PER_FRAME modulated samples, returns an array of + COHPSK_BITS_PER_FRAME bits. + + The input signal is complex to support single sided frequency shifting + before the demod input (e.g. click to tune feature). + +\*---------------------------------------------------------------------------*/ + +void cohpsk_demod(struct COHPSK *coh, float rx_bits[], int *sync_good, COMP rx_fdm[], int *nin_frame) +{ + COMP ch_symb[NSW*NSYMROWPILOT][COHPSK_NC*COHPSK_ND]; + int i, j, sync, anext_sync, next_sync, nin, r, c; + float max_ratio, f_est; + + assert(*nin_frame <= COHPSK_MAX_SAMPLES_PER_FRAME); + + next_sync = sync = coh->sync; + + for (i=0; ich_fdm_frame_buf[i] = coh->ch_fdm_frame_buf[i+*nin_frame]; + //printf("nin_frame: %d i: %d i+nin_frame: %d\n", *nin_frame, i, i+*nin_frame); + for (j=0; ich_fdm_frame_buf[i] = rx_fdm[j]; + //printf("i: %d j: %d rx_fdm[0]: %f %f\n", i,j, rx_fdm[0].real, rx_fdm[0].imag); + + /* if out of sync do Initial Freq offset estimation using NSW frames to flush out filter memories */ + + if (sync == 0) { + + /* we can test +/- 20Hz, so we break this up into 3 tests to cover +/- 60Hz */ + + max_ratio = 0.0; + f_est = 0.0; + for (coh->f_est = FDMDV_FCENTRE-40.0; coh->f_est <= FDMDV_FCENTRE+40.0; coh->f_est += 40.0) { + + if (coh->verbose) + fprintf(stderr, " [%d] acohpsk.f_est: %f +/- 20\n", coh->frame, (double)coh->f_est); + + /* we are out of sync so reset f_est and process two frames to clean out memories */ + + rate_Fs_rx_processing(coh, ch_symb, coh->ch_fdm_frame_buf, &coh->f_est, NSW*NSYMROWPILOT, COHPSK_M, 0); + for (i=0; ict_symb_buf, &ch_symb[i*NSYMROWPILOT]); + } + frame_sync_fine_freq_est(coh, &ch_symb[(NSW-1)*NSYMROWPILOT], sync, &anext_sync); + + if (anext_sync == 1) { + //printf(" [%d] acohpsk.ratio: %f\n", f, coh->ratio); + if (coh->ratio > max_ratio) { + max_ratio = coh->ratio; + f_est = coh->f_est - coh->f_fine_est; + next_sync = anext_sync; + } + } + } + + if (next_sync == 1) { + + /* we've found a sync candidate! + re-process last NSW frames with adjusted f_est then check again */ + + coh->f_est = f_est; + + if (coh->verbose) + fprintf(stderr, " [%d] trying sync and f_est: %f\n", coh->frame, (double)coh->f_est); + + rate_Fs_rx_processing(coh, ch_symb, coh->ch_fdm_frame_buf, &coh->f_est, NSW*NSYMROWPILOT, COHPSK_M, 0); + for (i=0; ict_symb_buf, &ch_symb[i*NSYMROWPILOT]); + } + /* + for(i=0; ict_symb_buf[i][0].real, coh->ct_symb_buf[i][0].imag); + } + */ + frame_sync_fine_freq_est(coh, &ch_symb[(NSW-1)*NSYMROWPILOT], sync, &next_sync); + + if (fabsf(coh->f_fine_est) > 2.0) { + if (coh->verbose) + fprintf(stderr, " [%d] Hmm %f is a bit big :(\n", coh->frame, (double)coh->f_fine_est); + next_sync = 0; + } + } + + if (next_sync == 1) { + /* OK we are in sync! + demodulate first frame (demod completed below) */ + + if (coh->verbose) + fprintf(stderr, " [%d] in sync! f_est: %f ratio: %f \n", coh->frame, (double)coh->f_est, (double)coh->ratio); + for(r=0; rct_symb_ff_buf[r][c] = coh->ct_symb_buf[coh->ct+r][c]; + } + } + + /* If in sync just do sample rate processing on latest frame */ + + if (sync == 1) { + rate_Fs_rx_processing(coh, ch_symb, rx_fdm, &coh->f_est, NSYMROWPILOT, coh->nin, 1); + frame_sync_fine_freq_est(coh, ch_symb, sync, &next_sync); + + for(r=0; r<2; r++) + for(c=0; cct_symb_ff_buf[r][c] = coh->ct_symb_ff_buf[r+NSYMROWPILOT][c]; + for(; rct_symb_ff_buf[r][c] = coh->ct_symb_buf[coh->ct+r][c]; + } + + /* if we are in sync complete demodulation with symbol rate processing */ + + *sync_good = 0; + if ((next_sync == 1) || (sync == 1)) { + qpsk_symbols_to_bits(coh, rx_bits, coh->ct_symb_ff_buf); + *sync_good = 1; + } + + sync = sync_state_machine(coh, sync, next_sync); + coh->sync = sync; + + /* work out how many samples we need for the next call to account + for differences in tx and rx sample clocks */ + + nin = COHPSK_M; + if (sync == 1) { + if (coh->rx_timing > COHPSK_M/P) + nin = COHPSK_M + COHPSK_M/P; + if (coh->rx_timing < -COHPSK_M/P) + nin = COHPSK_M - COHPSK_M/P; + } + coh->nin = nin; + *nin_frame = (NSYMROWPILOT-1)*COHPSK_M + nin; + //if (coh->verbose) + // fprintf(stderr, "%f %d %d\n", coh->rx_timing, nin, *nin_frame); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_fs_offset() + AUTHOR......: David Rowe + DATE CREATED: May 2015 + + Simulates small Fs offset between mod and demod. + +\*---------------------------------------------------------------------------*/ + +int cohpsk_fs_offset(COMP out[], COMP in[], int n, float sample_rate_ppm) +{ + double f; + double tin = 0.0; + double step = 1.0 + sample_rate_ppm/1E6; + int t1, t2; + int tout = 0; + + while (tin < (double) n) { + t1 = (int) floor(tin); + t2 = (int) ceil(tin); + f = tin - (double) t1; + + out[tout].real = ((double)1.0-f)*(double)in[t1].real + f*(double)in[t2].real; + out[tout].imag = ((double)1.0-f)*(double)in[t1].imag + f*(double)in[t2].imag; + + tin += step; + tout++; + //printf("tin: %f tout: %d f: %f\n", tin, tout, f); + } + + return tout; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_get_demod_stats() + AUTHOR......: David Rowe + DATE CREATED: 14 June 2015 + + Fills stats structure with a bunch of demod information. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_get_demod_stats(struct COHPSK *coh, struct MODEM_STATS *stats) +{ + float new_snr_est; + +#ifndef __EMBEDDED__ + float spi_4 = M_PI/4.0f; + COMP pi_4; + pi_4.real = cosf(spi_4); + pi_4.imag = sinf(spi_4); +#endif + + stats->Nc = COHPSK_NC*COHPSK_ND; + assert(stats->Nc <= MODEM_STATS_NC_MAX); + new_snr_est = 20.0f * log10f((coh->sig_rms+1E-6f)/(coh->noise_rms+1E-6f)) - 10.0f*log10f(3000.0f/700.0f); + stats->snr_est = 0.9f*stats->snr_est + 0.1f*new_snr_est; + + //fprintf(stderr, "sig_rms: %f noise_rms: %f snr_est: %f\n", coh->sig_rms, coh->noise_rms, stats->snr_est); + stats->sync = coh->sync; + stats->foff = coh->f_est - FDMDV_FCENTRE; + stats->rx_timing = coh->rx_timing; + stats->clock_offset = 0.0f; /* TODO - implement clock offset estimation */ + +#ifndef __EMBEDDED__ + assert(NSYMROW <= MODEM_STATS_NR_MAX); + stats->nr = NSYMROW; + for(int c=0; crx_symbols[r][c] = cmult(coh->rx_symb[r][c], pi_4); + } + } +#endif +} + + +void cohpsk_set_verbose(struct COHPSK *coh, int verbose) +{ + assert(coh != NULL); + coh->verbose = verbose; +} + + +void cohpsk_set_frame(struct COHPSK *coh, int frame) +{ + assert(coh != NULL); + coh->frame = frame; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_get_test_bits() + AUTHOR......: David Rowe + DATE CREATED: June 2015 + + Returns a frame of known test bits. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_get_test_bits(struct COHPSK *coh, int rx_bits[]) +{ + memcpy(rx_bits, coh->ptest_bits_coh_tx, sizeof(int)*COHPSK_BITS_PER_FRAME); + coh->ptest_bits_coh_tx += COHPSK_BITS_PER_FRAME; + if (coh->ptest_bits_coh_tx >=coh->ptest_bits_coh_end) { + coh->ptest_bits_coh_tx = (int*)test_bits_coh; + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cohpsk_put_test_bits() + AUTHOR......: David Rowe + DATE CREATED: June 2015 + + Accepts bits from demod and attempts to sync with the known + test_bits sequence. When synced measures bit errors. + + Has states to track two separate received test sequences based on + channel 0 or 1. + +\*---------------------------------------------------------------------------*/ + +void cohpsk_put_test_bits(struct COHPSK *coh, int *state, short error_pattern[], + int *bit_errors, char rx_bits_char[], int channel) +{ + int i, next_state, anerror; + int rx_bits[COHPSK_BITS_PER_FRAME]; + + assert((channel == 0) || (channel == 1)); + int *ptest_bits_coh_rx = coh->ptest_bits_coh_rx[channel]; + + for(i=0; i 1)) { + fprintf(stderr, "i: %d rx_bits: %d ptest_bits_coh_rx: %d\n", i, rx_bits[i], ptest_bits_coh_rx[i]); + } + *bit_errors += anerror; + error_pattern[i] = anerror; + } + + /* state logic */ + + next_state = *state; + + if (*state == 0) { + if (*bit_errors < 4) { + next_state = 1; + ptest_bits_coh_rx += COHPSK_BITS_PER_FRAME; + if (ptest_bits_coh_rx >= coh->ptest_bits_coh_end) { + ptest_bits_coh_rx = (int*)test_bits_coh; + } + } + } + + /* if 5 frames with large BER reset test frame sync */ + + if (*state > 0) { + if (*bit_errors > 8) { + if (*state == 6) + next_state = 0; + else + next_state = *state+1; + } + else + next_state = 1; + } + + if (*state > 0) { + ptest_bits_coh_rx += COHPSK_BITS_PER_FRAME; + if (ptest_bits_coh_rx >= coh->ptest_bits_coh_end) { + ptest_bits_coh_rx = (int*)test_bits_coh; + } + } + + //fprintf(stderr, "state: %d next_state: %d bit_errors: %d\n", *state, next_state, *bit_errors); + + *state = next_state; + coh->ptest_bits_coh_rx[channel] = ptest_bits_coh_rx; +} + + +int cohpsk_error_pattern_size(void) { + return COHPSK_BITS_PER_FRAME; +} + + +float *cohpsk_get_rx_bits_lower(struct COHPSK *coh) { + return coh->rx_bits_lower; +} + +float *cohpsk_get_rx_bits_upper(struct COHPSK *coh) { + return coh->rx_bits_upper; +} + +void cohpsk_set_carrier_ampl(struct COHPSK *coh, int c, float ampl) { + assert(c < COHPSK_NC*COHPSK_ND); + coh->carrier_ampl[c] = ampl; + fprintf(stderr, "cohpsk_set_carrier_ampl: %d %f\n", c, (double)ampl); +} diff --git a/src/cohpsk_defs.h b/src/cohpsk_defs.h new file mode 100644 index 0000000..a03bfe7 --- /dev/null +++ b/src/cohpsk_defs.h @@ -0,0 +1,9 @@ +/* Generated by write_pilot_file() Octave function */ + +#define NSYMROW 4 /* number of data symbols on each row (i.e. each carrier) */ +#define NS 4 /* number of data symbols between pilots */ +#define NPILOTSFRAME 2 /* number of pilot symbols on each row */ +#define PILOTS_NC 7 /* number of carriers */ + +#define NSYMROWPILOT 6 /* length of row after pilots inserted */ + diff --git a/src/cohpsk_demod.c b/src/cohpsk_demod.c new file mode 100644 index 0000000..c79dd93 --- /dev/null +++ b/src/cohpsk_demod.c @@ -0,0 +1,258 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: cohpsk_demod.c + AUTHOR......: David Rowe + DATE CREATED: April 6 2015 + + Given an input file of raw file (8kHz, 16 bit shorts) of COHPSK modem samples, + outputs a file of bits (note one bit per int, not compressed). + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "codec2_cohpsk.h" +#include "cohpsk_defs.h" +#include "cohpsk_internal.h" +#include "codec2_fdmdv.h" +#include "octave.h" + +#include "debug_alloc.h" + +#define LOG_FRAMES 100 +#define SYNC_FRAMES 12 /* sync state uses up extra log storage as we reprocess several times */ + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; irx_timing_log = (float*)MALLOC(sizeof(float)*SYNC_FRAMES*logframes*NSYMROWPILOT); + assert(cohpsk->rx_timing_log != NULL); + } + + log_data_r = 0; + frames = 0; + + nin_frame = COHPSK_NOM_SAMPLES_PER_FRAME; + while(fread(rx_fdm_scaled, sizeof(short), nin_frame, fin) == nin_frame) { + frames++; + cohpsk_set_frame(cohpsk, frames); + + /* scale and demod */ + + for(i=0; irx_bits_lower[i] < 0.0; + fwrite(rx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout); + for(i=0; irx_bits_upper[i] < 0.0; + fwrite(rx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout); + } + else { + for(i=0; irx_bits_lower[i]; + fwrite(rx_bits_double, sizeof(double), COHPSK_BITS_PER_FRAME, fout); + for(i=0; irx_bits_upper[i]; + fwrite(rx_bits_double, sizeof(double), COHPSK_BITS_PER_FRAME, fout); + } + } + + if (oct) { + for(r=0; ramp_[r][c]; + rx_phi_log[log_data_r*COHPSK_NC*COHPSK_ND+c] = cohpsk->phi_[r][c]; + rx_symb_log[log_data_r*COHPSK_NC*COHPSK_ND+c] = cohpsk->rx_symb[r][c]; + } + } + + f_est_log[frames-1] = cohpsk->f_est; + ratio_log[frames-1] = cohpsk->ratio; + //fprintf(stderr,"ratio: %f\n", cohpsk->ratio); + + //printf("frames: %d log_data_r: %d\n", frames, log_data_r); + if (frames == logframes) + oct = 0; + } + } + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + + if (fout == stdout) fflush(stdout); + } + + fclose(fin); + fclose(fout); + + /* optionally dump Octave files */ + + if (foct != NULL) { + octave_save_float(foct, "rx_amp_log_c", (float*)rx_amp_log, log_data_r, COHPSK_NC*COHPSK_ND, COHPSK_NC*COHPSK_ND); + octave_save_float(foct, "rx_phi_log_c", (float*)rx_phi_log, log_data_r, COHPSK_NC*COHPSK_ND, COHPSK_NC*COHPSK_ND); + octave_save_complex(foct, "rx_symb_log_c", (COMP*)rx_symb_log, log_data_r, COHPSK_NC*COHPSK_ND, COHPSK_NC*COHPSK_ND); + octave_save_float(foct, "rx_timing_log_c", (float*)cohpsk->rx_timing_log, 1, cohpsk->rx_timing_log_index, cohpsk->rx_timing_log_index); + octave_save_float(foct, "f_est_log_c", f_est_log, 1, logframes, logframes); + octave_save_float(foct, "ratio_log_c", ratio_log, 1, logframes, logframes); + fclose(foct); + } + + cohpsk_destroy(cohpsk); + + + return 0; +} diff --git a/src/cohpsk_get_test_bits.c b/src/cohpsk_get_test_bits.c new file mode 100644 index 0000000..87ee380 --- /dev/null +++ b/src/cohpsk_get_test_bits.c @@ -0,0 +1,87 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: cohpsk_put_test_bits.c + AUTHOR......: David Rowe + DATE CREATED: April 2015 + + Generates a file of test bits, useful for input to cohpsk_mod. + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_cohpsk.h" +#include "test_bits_coh.h" + +int main(int argc, char *argv[]) +{ + FILE *fout; + int tx_bits[COHPSK_BITS_PER_FRAME]; + char tx_bits_char[COHPSK_BITS_PER_FRAME]; + int numBits, nFrames, n; + int *ptest_bits_coh, *ptest_bits_coh_end, i; + + if (argc < 2) { + printf("usage: %s OutputOneCharPerBitFile numBits\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[1],"wb")) == NULL ) { + fprintf(stderr, "Error opening output file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + ptest_bits_coh = (int*)test_bits_coh; + ptest_bits_coh_end = (int*)test_bits_coh + sizeof(test_bits_coh)/sizeof(int); + numBits = atoi(argv[2]); + nFrames = numBits/COHPSK_BITS_PER_FRAME; + + for(n=0; n= ptest_bits_coh_end) { + ptest_bits_coh = (int*)test_bits_coh; + } + + for(i=0; i. +*/ + +#ifndef __COHPSK_INTERNAL__ +#define __COHPSK_INTERNAL__ + +#define NCT_SYMB_BUF (2*NSYMROWPILOT+2) +#define COHPSK_ND 2 /* diversity factor ND 1 is no diveristy, ND we have original plus + one copy */ +#define NSW 4 /* number of sync window frames */ +#define COHPSK_M 100 /* oversampling rate */ +#define COHPSK_NSYM 6 +#define COHPSK_NFILTER (COHPSK_NSYM*COHPSK_M) +#define COHPSK_EXCESS_BW 0.5 /* excess BW factor of root nyq filter */ +#define COHPSK_NT 5 /* number of symbols we estimate timing over */ + +#include "fdmdv_internal.h" +#include "kiss_fft.h" + +struct COHPSK { + COMP ch_fdm_frame_buf[NSW*NSYMROWPILOT*COHPSK_M]; /* buffer of several frames of symbols from channel */ + float pilot2[2*NPILOTSFRAME][COHPSK_NC]; + float phi_[NSYMROWPILOT][COHPSK_NC*COHPSK_ND]; /* phase estimates for this frame of rx data symbols */ + float amp_[NSYMROW][COHPSK_NC*COHPSK_ND]; /* amplitude estimates for this frame of rx data symbols */ + COMP rx_symb[NSYMROWPILOT][COHPSK_NC*COHPSK_ND]; /* demodulated symbols */ + float f_est; + COMP rx_filter_memory[COHPSK_NC*COHPSK_ND][COHPSK_NFILTER]; + COMP ct_symb_buf[NCT_SYMB_BUF][COHPSK_NC*COHPSK_ND]; + int ct; /* coarse timing offset in symbols */ + float rx_timing; /* fine timing for last symbol in frame */ + int nin; /* number of samples to input for next symbol */ + float f_fine_est; + COMP ff_rect; + COMP ff_phase; + COMP ct_symb_ff_buf[NSYMROWPILOT+2][COHPSK_NC*COHPSK_ND]; + int sync; + int sync_timer; + + int frame; + float ratio; + + float sig_rms; + float noise_rms; + + struct FDMDV *fdmdv; + + int verbose; + + int *ptest_bits_coh_tx; + int *ptest_bits_coh_rx[2]; + int *ptest_bits_coh_end; + + /* counting bit errors using pilots */ + + int npilotbits; + int npilotbiterrors; + + /* optional log variables used for testing Octave to C port */ + + COMP *rx_baseband_log; + int rx_baseband_log_col_index; + int rx_baseband_log_col_sz; + + COMP *rx_filt_log; + int rx_filt_log_col_index; + int rx_filt_log_col_sz; + + COMP *ch_symb_log; + int ch_symb_log_r; + int ch_symb_log_col_sz; + + float *rx_timing_log; + int rx_timing_log_index; + + /* demodulated bits before diversity combination for test/instrumentation purposes */ + + float rx_bits_lower[COHPSK_BITS_PER_FRAME]; + float rx_bits_upper[COHPSK_BITS_PER_FRAME]; + + /* tx amplitude weights for each carrier for test/instrumentation */ + + float carrier_ampl[COHPSK_NC*COHPSK_ND]; + + /* Flag enabling simple freq est mode */ + int freq_est_mode_reduced; +}; + +void bits_to_qpsk_symbols(COMP tx_symb[][COHPSK_NC*COHPSK_ND], int tx_bits[], int nbits); +void qpsk_symbols_to_bits(struct COHPSK *coh, float rx_bits[], COMP ct_symb_buf[][COHPSK_NC*COHPSK_ND]); +void tx_filter_and_upconvert_coh(COMP tx_fdm[], int Nc, const COMP tx_symbols[], + COMP tx_filter_memory[][COHPSK_NSYM], + COMP phase_tx[], COMP freq[], + COMP *fbb_phase, COMP fbb_rect); +void fdm_downconvert_coh(COMP rx_baseband[][COHPSK_M+COHPSK_M/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin); +void frame_sync_fine_freq_est(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*COHPSK_ND], int sync, int *next_sync); +void fine_freq_correct(struct COHPSK *coh, int sync, int next_sync); +int sync_state_machine(struct COHPSK *coh, int sync, int next_sync); +int cohpsk_fs_offset(COMP out[], COMP in[], int n, float sample_rate_ppm); + +#endif diff --git a/src/cohpsk_mod.c b/src/cohpsk_mod.c new file mode 100644 index 0000000..b6e0fb4 --- /dev/null +++ b/src/cohpsk_mod.c @@ -0,0 +1,122 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: cohpsk_mod.c + AUTHOR......: David Rowe + DATE CREATED: April 5 2015 + + Given an input file of bits (note one bit per float, soft decision format), + outputs a raw file (8kHz, 16 bit shorts) of COHPSK modem samples + ready to send over a HF radio channel. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_cohpsk.h" +#include "codec2_fdmdv.h" + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i. +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_cohpsk.h" +#include "octave.h" + +#define LOG_FRAMES 100 + +int main(int argc, char *argv[]) +{ + FILE *fin, *foct; + char rx_bits[COHPSK_BITS_PER_FRAME]; + int state, i, nbits, bit_errors, nerrors; + short error_pattern[COHPSK_BITS_PER_FRAME]; + int error_positions_hist[COHPSK_BITS_PER_FRAME], logframes; + int nerr_log[LOG_FRAMES]; + struct COHPSK *coh; + + for(i=0; i. +*/ + +#ifndef __COMP__ +#define __COMP__ + +/* Complex number */ + +typedef struct { + float real; + float imag; +} COMP; + +#endif diff --git a/src/comp_prim.h b/src/comp_prim.h new file mode 100644 index 0000000..d0f070a --- /dev/null +++ b/src/comp_prim.h @@ -0,0 +1,141 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: comp_prim.h + AUTHOR......: David Rowe + DATE CREATED: Marh 2015 + + Complex number maths primitives. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __COMP_PRIM__ +#define __COMP_PRIM__ + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +inline static COMP cneg(COMP a) +{ + COMP res; + + res.real = -a.real; + res.imag = -a.imag; + + return res; +} + +inline static COMP cconj(COMP a) +{ + COMP res; + + res.real = a.real; + res.imag = -a.imag; + + return res; +} + +inline static COMP cmult(COMP a, COMP b) +{ + COMP res; + + res.real = a.real*b.real - a.imag*b.imag; + res.imag = a.real*b.imag + a.imag*b.real; + + return res; +} + +inline static COMP fcmult(float a, COMP b) +{ + COMP res; + + res.real = a*b.real; + res.imag = a*b.imag; + + return res; +} + +inline static COMP cadd(COMP a, COMP b) +{ + COMP res; + + res.real = a.real + b.real; + res.imag = a.imag + b.imag; + + return res; +} + +inline static float cabsolute(COMP a) +{ + return sqrtf((a.real * a.real) + (a.imag * a.imag) ); +} + +/* + * Euler's formula in a new convenient function + */ +inline static COMP comp_exp_j(float phi){ + COMP res; + res.real = cosf(phi); + res.imag = sinf(phi); + return res; +} + +/* + * Quick and easy complex 0 + */ +inline static COMP comp0(){ + COMP res; + res.real = 0; + res.imag = 0; + return res; +} + +/* + * Quick and easy complex subtract + */ +inline static COMP csub(COMP a, COMP b){ + COMP res; + res.real = a.real-b.real; + res.imag = a.imag-b.imag; + return res; +} + +/* + * Compare the magnitude of a and b. if |a|>|b|, return true, otw false. + * This needs no square roots + */ +inline static int comp_mag_gt(COMP a,COMP b){ + return ((a.real*a.real)+(a.imag*a.imag)) > ((b.real*b.real)+(b.imag*b.imag)); +} + +/* + * Normalize a complex number's magnitude to 1 + */ +inline static COMP comp_normalize(COMP a){ + COMP b; + float av = cabsolute(a); + b.real = a.real/av; + b.imag = a.imag/av; + return b; +} + +#endif diff --git a/src/debug_alloc.h b/src/debug_alloc.h new file mode 100644 index 0000000..8612d88 --- /dev/null +++ b/src/debug_alloc.h @@ -0,0 +1,71 @@ +/* debug_alloc.h + * + * Some macros which can report on malloc results. + * + * Enable with "-D DEBUG_ALLOC" + */ + +#ifndef DEBUG_ALLOC_H +#define DEBUG_ALLOC_H + +#include + +// Debug calls + +#ifdef CORTEX_M4 +extern char * __heap_end; +register char * sp asm ("sp"); +#endif + +#if defined(__EMBEDDED__) +extern void* codec2_malloc(size_t size); +extern void* codec2_calloc(size_t nmemb, size_t size); +extern void codec2_free(void* ptr); +#else +#define codec2_malloc(size) (malloc(size)) +#define codec2_calloc(nmemb, size) (calloc(nmemb, size)) +#define codec2_free(ptr) (free(ptr)) +#endif // defined(__EMBEDDED__) + + static inline void * DEBUG_MALLOC(const char *func, size_t size) { + void *ptr = codec2_malloc(size); + fprintf(stderr, "MALLOC: %s %p %d", func, ptr, (int)size); +#ifdef CORTEX_M4 + + fprintf(stderr, " : sp %p ", sp); +#endif + if (!ptr) fprintf(stderr, " ** FAILED **"); + fprintf(stderr, "\n"); + return(ptr); + } + + static inline void * DEBUG_CALLOC(const char *func, size_t nmemb, size_t size) { + void *ptr = codec2_calloc(nmemb, size); + fprintf(stderr, "CALLOC: %s %p %d %d", func, ptr, (int)nmemb, (int)size); +#ifdef CORTEX_M4 + fprintf(stderr, " : sp %p ", sp); +#endif + if (!ptr) fprintf(stderr, " ** FAILED **"); + fprintf(stderr, "\n"); + return(ptr); + } + static inline void DEBUG_FREE(const char *func, void *ptr) { + codec2_free(ptr); + fprintf(stderr, "FREE: %s %p\n", func, ptr); + } + +#ifdef DEBUG_ALLOC + #define MALLOC(size) DEBUG_MALLOC(__func__, size) + #define CALLOC(nmemb, size) DEBUG_CALLOC(__func__, nmemb, size) + #define FREE(ptr) DEBUG_FREE(__func__, ptr) +#else //DEBUG_ALLOC +// Default to normal calls + #define MALLOC(size) codec2_malloc(size) + + #define CALLOC(nmemb, size) codec2_calloc(nmemb, size) + + #define FREE(ptr) codec2_free(ptr) + +#endif //DEBUG_ALLOC + +#endif //DEBUG_ALLOC_H diff --git a/src/defines.h b/src/defines.h new file mode 100644 index 0000000..ef23d46 --- /dev/null +++ b/src/defines.h @@ -0,0 +1,119 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: defines.h + AUTHOR......: David Rowe + DATE CREATED: 23/4/93 + + Defines and structures used throughout the codec. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __DEFINES__ +#define __DEFINES__ + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +/* General defines */ + +#define N_S 0.01 /* internal proc frame length in secs */ +#define TW_S 0.005 /* trapezoidal synth window overlap */ +#define MAX_AMP 160 /* maximum number of harmonics */ +#ifndef PI +#define PI 3.141592654 /* mathematical constant */ +#endif +#define TWO_PI 6.283185307 /* mathematical constant */ +#define MAX_STR 2048 /* maximum string size */ + +#define FFT_ENC 512 /* size of FFT used for encoder */ +#define FFT_DEC 512 /* size of FFT used in decoder */ +#define V_THRESH 6.0 /* voicing threshold in dB */ +#define LPC_ORD 10 /* LPC order */ +#define LPC_ORD_LOW 6 /* LPC order for lower rates */ + +/* Pitch estimation defines */ + +#define M_PITCH_S 0.0400 /* pitch analysis window in s */ +#define P_MIN_S 0.0025 /* minimum pitch period in s */ +#define P_MAX_S 0.0200 /* maximum pitch period in s */ + +/*---------------------------------------------------------------------------*\ + + TYPEDEFS + +\*---------------------------------------------------------------------------*/ + +/* Structure to hold constants calculated at run time based on sample rate */ + +typedef struct { + int Fs; /* sample rate of this instance */ + int n_samp; /* number of samples per 10ms frame at Fs */ + int max_amp; /* maximum number of harmonics */ + int m_pitch; /* pitch estimation window size in samples */ + int p_min; /* minimum pitch period in samples */ + int p_max; /* maximum pitch period in samples */ + float Wo_min; + float Wo_max; + int nw; /* analysis window size in samples */ + int tw; /* trapezoidal synthesis window overlap */ +} C2CONST; + +/* Structure to hold model parameters for one frame */ + +typedef struct { + float Wo; /* fundamental frequency estimate in radians */ + int L; /* number of harmonics */ + float A[MAX_AMP+1]; /* amplitiude of each harmonic */ + float phi[MAX_AMP+1]; /* phase of each harmonic */ + int voiced; /* non-zero if this frame is voiced */ +} MODEL; + +/* describes each codebook */ + +struct lsp_codebook { + int k; /* dimension of vector */ + int log2m; /* number of bits in m */ + int m; /* elements in codebook */ +#ifdef __EMBEDDED__ /* make sure stored in flash */ + const float *cb; /* The elements */ +#else + float *cb; /* The elements */ +#endif +}; + +extern const struct lsp_codebook lsp_cb[]; +extern const struct lsp_codebook lsp_cbd[]; +extern const struct lsp_codebook lsp_cbjmv[]; +extern const struct lsp_codebook ge_cb[]; +extern const struct lsp_codebook newamp1vq_cb[]; +extern const struct lsp_codebook newamp1_energy_cb[]; +extern const struct lsp_codebook newamp2vq_cb[]; +extern const struct lsp_codebook newamp2_energy_cb[]; + +#ifdef _GNU_SOURCE + #define POW10F(x) exp10f((x)) +#else + #define POW10F(x) expf(2.302585092994046f*(x)) +#endif + +#endif diff --git a/src/deframer.c b/src/deframer.c new file mode 100644 index 0000000..013e069 --- /dev/null +++ b/src/deframer.c @@ -0,0 +1,166 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: deframer.c + AUTHOR......: David Rowe + DATE CREATED: July 2020 + + Command line deframer, obtains UW sync, then extracts frame of data bits. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include "fsk.h" + +unsigned int toInt(char c) +{ + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'A' && c <= 'F') return 10 + c - 'A'; + if (c >= 'a' && c <= 'f') return 10 + c - 'a'; + return -1; +} + +int main(int argc,char *argv[]){ + FILE *fin, *fout; + + if (argc < 5) { + fprintf(stderr,"usage: %s InOneFloatPerLLR OutOneFloatPerLLR frameSizeBits HexUW [--hard]\n",argv[0]); + fprintf(stderr," --hard Treat input and output files as OneBitPerByte hard decisions\n"); + exit(1); + } + + if (strcmp(argv[1],"-") == 0) { + fin = stdin; + } else { + if ((fin = fopen(argv[1],"rb")) == NULL) { + fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); + exit(1); + } + } + + if (strcmp(argv[2],"-") == 0) { + fout = stdout; + } else { + if ((fout = fopen(argv[2],"wb")) == NULL) { + fprintf(stderr,"Couldn't open output file: %s\n", argv[2]); + exit(1); + } + } + + /* extract UW array from hex on command line */ + + size_t framesize = atoi(argv[3]); + char *uw_hex = argv[4]; + uint8_t uw[4*strlen(uw_hex)]; + int uwsize = 0; + for(int c=0; c> (3-i)) & 0x1; /* MSB first */ + assert(uwsize == 4*strlen(uw_hex)); + + fprintf(stderr, "uw_hex: %s uwsize: %d\n", uw_hex, uwsize); + for(int i=0; i= thresh2) { + baduw++; + if (baduw == 3) { + fprintf(stderr, "lost UW!\n"); next_state = 0; + } + } + else baduw = 0; + break; + } + state = next_state; + + if (state == 1) { + fwrite(&inbuf[(best_location+uwsize)*nelement], nelement, framesize, fout); + } + memmove(twoframes, &twoframes[framedsize], framedsize); + memmove(inbuf, &inbuf[nelement*framedsize], nelement*framedsize); + } + + free(inbuf); + fclose(fin); + fclose(fout); + + return 0; +} diff --git a/src/dump.c b/src/dump.c new file mode 100644 index 0000000..ff1977d --- /dev/null +++ b/src/dump.c @@ -0,0 +1,669 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: dump.c + AUTHOR......: David Rowe + DATE CREATED: 25/8/09 + + Routines to dump data to text files for Octave analysis. + +\*---------------------------------------------------------------------------*/ + +/* + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include "defines.h" +#include "comp.h" +#include "dump.h" +#include +#include +#include +#include +#include + +#ifdef DUMP +static int dumpon = 0; + +static FILE *fsn = NULL; +static FILE *fsw = NULL; +static FILE *few = NULL; +static FILE *fsw_ = NULL; +static FILE *fsoftdec = NULL; +static FILE *fmodel = NULL; +static FILE *fqmodel = NULL; +static FILE *fpwb = NULL; +static FILE *fpw = NULL; +static FILE *frw = NULL; +static FILE *flsp = NULL; +static FILE *fweights = NULL; +static FILE *flsp_ = NULL; +static FILE *fmel = NULL; +static FILE *fmel_indexes = NULL; +static FILE *fphase = NULL; +static FILE *fphase_ = NULL; +static FILE *ffw = NULL; +static FILE *fe = NULL; +static FILE *fsq = NULL; +static FILE *fdec = NULL; +static FILE *fsnr = NULL; +static FILE *flpcsnr = NULL; +static FILE *fak = NULL; +static FILE *fak_ = NULL; +static FILE *fbg = NULL; +static FILE *fE = NULL; +static FILE *frk = NULL; +static FILE *fhephase = NULL; + +static char prefix[MAX_STR]; + +void dump_on(char p[]) { + dumpon = 1; + strcpy(prefix, p); +} + +void dump_off(){ + if (fsn != NULL) + fclose(fsn); + if (fsw != NULL) + fclose(fsw); + if (fsw_ != NULL) + fclose(fsw_); + if (few != NULL) + fclose(few); + if (fmodel != NULL) + fclose(fmodel); + if (fsoftdec != NULL) + fclose(fsoftdec); + if (fqmodel != NULL) + fclose(fqmodel); + if (fpwb != NULL) + fclose(fpwb); + if (fpw != NULL) + fclose(fpw); + if (frw != NULL) + fclose(frw); + if (flsp != NULL) + fclose(flsp); + if (fweights != NULL) + fclose(fweights); + if (flsp_ != NULL) + fclose(flsp_); + if (fmel != NULL) + fclose(fmel); + if (fmel_indexes != NULL) + fclose(fmel_indexes); + if (fphase != NULL) + fclose(fphase); + if (fphase_ != NULL) + fclose(fphase_); + if (ffw != NULL) + fclose(ffw); + if (fe != NULL) + fclose(fe); + if (fsq != NULL) + fclose(fsq); + if (fdec != NULL) + fclose(fdec); + if (fsnr != NULL) + fclose(fsnr); + if (flpcsnr != NULL) + fclose(flpcsnr); + if (fak != NULL) + fclose(fak); + if (fak_ != NULL) + fclose(fak_); + if (fbg != NULL) + fclose(fbg); + if (fE != NULL) + fclose(fE); + if (frk != NULL) + fclose(frk); + if (fhephase != NULL) + fclose(fhephase); +} + +void dump_Sn(int m_pitch, float Sn[]) { + int i; + char s[MAX_STR + 7]; + + if (!dumpon) return; + + if (fsn == NULL) { + sprintf(s,"%s_sn.txt", prefix); + fsn = fopen(s, "wt"); + assert(fsn != NULL); + } + + /* split across two lines to avoid max line length problems */ + /* reconstruct in Octave */ + + for(i=0; iWo, model->L); + for(l=1; l<=model->L; l++) { + sprintf(s,"%12f ",model->A[l]); + strcat(line, s); + assert(strlen(line) < MAX_STR*10); + } + for(l=model->L+1; l<=MAX_AMP; l++) { + sprintf(s,"%12f ", 0.0); + strcat(line,s); + assert(strlen(line) < MAX_STR*10); + } + + sprintf(s,"%d\n",model->voiced); + strcat(line,s); + fprintf(fmodel,"%s",line); +} + +void dump_quantised_model(MODEL *model) { + int l; + char s[MAX_STR + 11]; + char line[4096]; + + if (!dumpon) return; + + if (fqmodel == NULL) { + sprintf(s,"%s_qmodel.txt", prefix); + fqmodel = fopen(s, "wt"); + assert(fqmodel != NULL); + } + + sprintf(line,"%12f %12d ", model->Wo, model->L); + for(l=1; l<=model->L; l++) { + sprintf(s,"%12f ",model->A[l]); + strcat(line, s); + assert(strlen(line) < 4096); + } + for(l=model->L+1; l<=MAX_AMP; l++) { + sprintf(s,"%12f ", 0.0); + strcat(line, s); + assert(strlen(line) < 4096); + } + + sprintf(s,"%d\n",model->voiced); + strcat(line, s); + fprintf(fqmodel, "%s", line); +} + +void dump_phase(float phase[], int L) { + int l; + char s[MAX_STR + 10]; + + if (!dumpon) return; + + if (fphase == NULL) { + sprintf(s,"%s_phase.txt", prefix); + fphase = fopen(s, "wt"); + assert(fphase != NULL); + } + + for(l=1; l<=L; l++) + fprintf(fphase,"%f\t",phase[l]); + for(l=L+1; l<=MAX_AMP; l++) + fprintf(fphase,"%f\t",0.0); + fprintf(fphase,"\n"); +} + +void dump_phase_(float phase_[], int L) { + int l; + char s[MAX_STR + 11]; + + if (!dumpon) return; + + if (fphase_ == NULL) { + sprintf(s,"%s_phase_.txt", prefix); + fphase_ = fopen(s, "wt"); + assert(fphase_ != NULL); + } + + for(l=1; l<=L; l++) + fprintf(fphase_,"%f\t",phase_[l]); + for(l=L+1; l. +*/ + +#ifndef __DUMP__ +#define __DUMP__ + +#include "defines.h" +#include "comp.h" +#include "codec2_fft.h" +#include "codec2_internal.h" + +void dump_on(char filename_prefix[]); +void dump_off(); + +void dump_Sn(int m_pitch, float Sn[]); +void dump_Sw(COMP Sw[]); +void dump_Sw_(COMP Sw_[]); +void dump_Ew(COMP Ew[]); +void dump_softdec(float *softdec, int n); + +/* amplitude modelling */ + +void dump_model(MODEL *m); +void dump_quantised_model(MODEL *m); +void dump_Pwn(COMP Pw[]); +void dump_Pw(float Pw[]); +void dump_Rw(float Rw[]); +void dump_lsp(float lsp[]); +void dump_weights(float w[], int ndim); +void dump_lsp_(float lsp_[]); +void dump_mel(float mel[], int order); +void dump_mel_indexes(int mel_indexes[], int order); +void dump_ak(float ak[], int order); +void dump_ak_(float ak[], int order); +void dump_E(float E); +void dump_lpc_snr(float snr); + +/* phase modelling */ + +void dump_snr(float snr); +void dump_phase(float phase[], int L); +void dump_phase_(float phase[], int L); +void dump_hephase(int ind[], int dim); + +/* NLP states */ + +void dump_sq(int m_pitch, float sq[]); +void dump_dec(COMP Fw[]); +void dump_Fw(COMP Fw[]); +void dump_e(float e_hz[]); +#if 0 +void dump_Rk(float Rk[]); +#endif + +/* post filter */ + +void dump_bg(float e, float bg_est, float percent_uv); +void dump_Pwb(float Pwb[]); + +#endif diff --git a/src/fdmdv.c b/src/fdmdv.c new file mode 100644 index 0000000..7aeb4b8 --- /dev/null +++ b/src/fdmdv.c @@ -0,0 +1,2082 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fdmdv.c + AUTHOR......: David Rowe + DATE CREATED: April 14 2012 + + Functions that implement the FDMDV modem. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/*---------------------------------------------------------------------------*\ + + INCLUDES + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include + +#include "fdmdv_internal.h" +#include "codec2_fdmdv.h" +#include "comp_prim.h" +#include "rn.h" +#include "rxdec_coeff.h" +#include "test_bits.h" +#include "pilot_coeff.h" +#include "codec2_fft.h" +#include "hanning.h" +#include "os.h" +#include "machdep.h" + +#include "debug_alloc.h" + +static int sync_uw[] = {1,-1,1,-1,1,-1}; + +static const COMP pi_on_4 = { .70710678118654752439, .70710678118654752439 }; // cosf(PI/4) , sinf(PI/4) + + +/*--------------------------------------------------------------------------* \ + + FUNCTION....: fdmdv_create + AUTHOR......: David Rowe + DATE CREATED: 16/4/2012 + + Create and initialise an instance of the modem. Returns a pointer + to the modem states or NULL on failure. One set of states is + sufficient for a full duplex modem. + +\*---------------------------------------------------------------------------*/ + +struct FDMDV * fdmdv_create(int Nc) +{ + struct FDMDV *f; + int c, i, k; + + assert(NC == FDMDV_NC_MAX); /* check public and private #defines match */ + assert(Nc <= NC); + assert(FDMDV_NOM_SAMPLES_PER_FRAME == M_FAC); + assert(FDMDV_MAX_SAMPLES_PER_FRAME == (M_FAC+M_FAC/P)); + + f = (struct FDMDV*)MALLOC(sizeof(struct FDMDV)); + if (f == NULL) + return NULL; + + f->Nc = Nc; + + f->ntest_bits = Nc*NB*4; + f->current_test_bit = 0; + f->rx_test_bits_mem = (int*)MALLOC(sizeof(int)*f->ntest_bits); + assert(f->rx_test_bits_mem != NULL); + for(i=0; intest_bits; i++) + f->rx_test_bits_mem[i] = 0; + assert((sizeof(test_bits)/sizeof(int)) >= f->ntest_bits); + + f->old_qpsk_mapping = 0; + + f->tx_pilot_bit = 0; + + for(c=0; cprev_tx_symbols[c].real = 1.0; + f->prev_tx_symbols[c].imag = 0.0; + f->prev_rx_symbols[c].real = 1.0; + f->prev_rx_symbols[c].imag = 0.0; + + for(k=0; ktx_filter_memory[c][k].real = 0.0; + f->tx_filter_memory[c][k].imag = 0.0; + } + + /* Spread initial FDM carrier phase out as far as possible. + This helped PAPR for a few dB. We don't need to adjust rx + phase as DQPSK takes care of that. */ + + f->phase_tx[c].real = cosf(2.0*PI*c/(Nc+1)); + f->phase_tx[c].imag = sinf(2.0*PI*c/(Nc+1)); + + f->phase_rx[c].real = 1.0; + f->phase_rx[c].imag = 0.0; + + for(k=0; krx_filter_mem_timing[c][k].real = 0.0; + f->rx_filter_mem_timing[c][k].imag = 0.0; + } + } + f->prev_tx_symbols[Nc].real = 2.0; + + fdmdv_set_fsep(f, FSEP); + f->freq[Nc].real = cosf(2.0*PI*0.0/FS); + f->freq[Nc].imag = sinf(2.0*PI*0.0/FS); + f->freq_pol[Nc] = 2.0*PI*0.0/FS; + + f->fbb_rect.real = cosf(2.0*PI*FDMDV_FCENTRE/FS); + f->fbb_rect.imag = sinf(2.0*PI*FDMDV_FCENTRE/FS); + f->fbb_pol = 2.0*PI*FDMDV_FCENTRE/FS; + f->fbb_phase_tx.real = 1.0; + f->fbb_phase_tx.imag = 0.0; + f->fbb_phase_rx.real = 1.0; + f->fbb_phase_rx.imag = 0.0; + + /* Generate DBPSK pilot Look Up Table (LUT) */ + + generate_pilot_lut(f->pilot_lut, &f->freq[Nc]); + + /* freq Offset estimation states */ + + f->fft_pilot_cfg = codec2_fft_alloc (MPILOTFFT, 0, NULL, NULL); + assert(f->fft_pilot_cfg != NULL); + + for(i=0; ipilot_baseband1[i].real = f->pilot_baseband2[i].real = 0.0; + f->pilot_baseband1[i].imag = f->pilot_baseband2[i].imag = 0.0; + } + f->pilot_lut_index = 0; + f->prev_pilot_lut_index = 3*M_FAC; + + for(i=0; irxdec_lpf_mem[i].real = 0.0; + f->rxdec_lpf_mem[i].imag = 0.0; + } + + for(i=0; ipilot_lpf1[i].real = f->pilot_lpf2[i].real = 0.0; + f->pilot_lpf1[i].imag = f->pilot_lpf2[i].imag = 0.0; + } + + f->foff = 0.0; + f->foff_phase_rect.real = 1.0; + f->foff_phase_rect.imag = 0.0; + + for(i=0; irx_fdm_mem[i].real = 0.0; + f->rx_fdm_mem[i].imag = 0.0; + } + + f->fest_state = 0; + f->sync = 0; + f->timer = 0; + for(i=0; isync_mem[i] = 0; + + for(c=0; csig_est[c] = 0.0; + f->noise_est[c] = 0.0; + } + + f->sig_pwr_av = 0.0; + f->foff_filt = 0.0; + + return f; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_destroy + AUTHOR......: David Rowe + DATE CREATED: 16/4/2012 + + Destroy an instance of the modem. + +\*---------------------------------------------------------------------------*/ + +void fdmdv_destroy(struct FDMDV *fdmdv) +{ + assert(fdmdv != NULL); + codec2_fft_free(fdmdv->fft_pilot_cfg); + FREE(fdmdv->rx_test_bits_mem); + FREE(fdmdv); +} + + +void fdmdv_use_old_qpsk_mapping(struct FDMDV *fdmdv) { + fdmdv->old_qpsk_mapping = 1; +} + + +int fdmdv_bits_per_frame(struct FDMDV *fdmdv) +{ + return (fdmdv->Nc * NB); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_get_test_bits() + AUTHOR......: David Rowe + DATE CREATED: 16/4/2012 + + Generate a frame of bits from a repeating sequence of random data. OK so + it's not very random if it repeats but it makes syncing at the demod easier + for test purposes. + +\*---------------------------------------------------------------------------*/ + +void fdmdv_get_test_bits(struct FDMDV *f, int tx_bits[]) +{ + int i; + int bits_per_frame = fdmdv_bits_per_frame(f); + + for(i=0; icurrent_test_bit]; + f->current_test_bit++; + if (f->current_test_bit > (f->ntest_bits-1)) + f->current_test_bit = 0; + } +} + +float fdmdv_get_fsep(struct FDMDV *f) +{ + return f->fsep; +} + +void fdmdv_set_fsep(struct FDMDV *f, float fsep) { + int c; + float carrier_freq; + + f->fsep = fsep; + + /* Set up frequency of each carrier */ + + for(c=0; cNc/2; c++) { + carrier_freq = (-f->Nc/2 + c)*f->fsep; + f->freq[c].real = cosf(2.0*PI*carrier_freq/FS); + f->freq[c].imag = sinf(2.0*PI*carrier_freq/FS); + f->freq_pol[c] = 2.0*PI*carrier_freq/FS; + } + + for(c=f->Nc/2; cNc; c++) { + carrier_freq = (-f->Nc/2 + c + 1)*f->fsep; + f->freq[c].real = cosf(2.0*PI*carrier_freq/FS); + f->freq[c].imag = sinf(2.0*PI*carrier_freq/FS); + f->freq_pol[c] = 2.0*PI*carrier_freq/FS; + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: bits_to_dqpsk_symbols() + AUTHOR......: David Rowe + DATE CREATED: 16/4/2012 + + Maps bits to parallel DQPSK symbols. Generate Nc+1 QPSK symbols from + vector of (1,Nc*Nb) input tx_bits. The Nc+1 symbol is the +1 -1 +1 + .... BPSK sync carrier. + +\*---------------------------------------------------------------------------*/ + +void bits_to_dqpsk_symbols(COMP tx_symbols[], int Nc, COMP prev_tx_symbols[], int tx_bits[], int *pilot_bit, int old_qpsk_mapping) +{ + int c, msb, lsb; + COMP j = {0.0,1.0}; + + /* Map tx_bits to to Nc DQPSK symbols. Note legacy support for + old (suboptimal) V0.91 FreeDV mapping */ + + for(c=0; creal /= mag; + fbb_phase->imag /= mag; + + /* shift memory, inserting zeros at end */ + + for(i=0; ireal /= mag; + fbb_phase->imag /= mag; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_mod() + AUTHOR......: David Rowe + DATE CREATED: 26/4/2012 + + FDMDV modulator, take a frame of FDMDV_BITS_PER_FRAME bits and + generates a frame of FDMDV_SAMPLES_PER_FRAME modulated symbols. + Sync bit is returned to aid alignment of your next frame. + + The sync_bit value returned will be used for the _next_ frame. + + The output signal is complex to support single sided frequency + shifting, for example when testing frequency offsets in channel + simulation. + +\*---------------------------------------------------------------------------*/ + +void fdmdv_mod(struct FDMDV *fdmdv, COMP tx_fdm[], int tx_bits[], int *sync_bit) +{ + COMP tx_symbols[NC+1]; + PROFILE_VAR(mod_start, tx_filter_and_upconvert_start); + + PROFILE_SAMPLE(mod_start); + bits_to_dqpsk_symbols(tx_symbols, fdmdv->Nc, fdmdv->prev_tx_symbols, tx_bits, &fdmdv->tx_pilot_bit, fdmdv->old_qpsk_mapping); + memcpy(fdmdv->prev_tx_symbols, tx_symbols, sizeof(COMP)*(fdmdv->Nc+1)); + PROFILE_SAMPLE_AND_LOG(tx_filter_and_upconvert_start, mod_start, " bits_to_dqpsk_symbols"); + tx_filter_and_upconvert(tx_fdm, fdmdv->Nc, tx_symbols, fdmdv->tx_filter_memory, + fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); + PROFILE_SAMPLE_AND_LOG2(tx_filter_and_upconvert_start, " tx_filter_and_upconvert"); + + *sync_bit = fdmdv->tx_pilot_bit; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: generate_pilot_fdm() + AUTHOR......: David Rowe + DATE CREATED: 19/4/2012 + + Generate M_FAC samples of DBPSK pilot signal for Freq offset estimation. + +\*---------------------------------------------------------------------------*/ + +void generate_pilot_fdm(COMP *pilot_fdm, int *bit, float *symbol, + float *filter_mem, COMP *phase, COMP *freq) +{ + int i,j,k; + float tx_baseband[M_FAC]; + + /* +1 -1 +1 -1 DBPSK sync carrier, once filtered becomes (roughly) + two spectral lines at +/- RS/2 */ + + if (*bit) + *symbol = -*symbol; + + if (*bit) + *bit = 0; + else + *bit = 1; + + /* filter DPSK symbol to create M_FAC baseband samples */ + + filter_mem[NFILTER-1] = (sqrtf(2)/2) * *symbol; + for(i=0; ireal; + pilot_fdm[i].imag = sqrtf(2)*2*tx_baseband[i] * phase->imag; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: generate_pilot_lut() + AUTHOR......: David Rowe + DATE CREATED: 19/4/2012 + + Generate a 4M sample vector of DBPSK pilot signal. As the pilot signal + is periodic in 4M samples we can then use this vector as a look up table + for pilot signal generation in the demod. + +\*---------------------------------------------------------------------------*/ + +void generate_pilot_lut(COMP pilot_lut[], COMP *pilot_freq) +{ + int pilot_rx_bit = 0; + float pilot_symbol = sqrtf(2.0); + COMP pilot_phase = {1.0, 0.0}; + float pilot_filter_mem[NFILTER]; + COMP pilot[M_FAC]; + int i,f; + + for(i=0; i= 4) + memcpy(&pilot_lut[M_FAC*(f-4)], pilot, M_FAC*sizeof(COMP)); + } + + // create complex conjugate since we need this and only this later on + for (f=0;f<4*M_FAC;f++) + { + pilot_lut[f] = cconj(pilot_lut[f]); + } + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: lpf_peak_pick() + AUTHOR......: David Rowe + DATE CREATED: 20/4/2012 + + LPF and peak pick part of freq est, put in a function as we call it twice. + +\*---------------------------------------------------------------------------*/ + +void lpf_peak_pick(float *foff, float *max, COMP pilot_baseband[], + COMP pilot_lpf[], codec2_fft_cfg fft_pilot_cfg, COMP S[], int nin, + int do_fft) +{ + int i,j,k; + int mpilot; + float mag, imax; + int ix; + float r; + + /* LPF cutoff 200Hz, so we can handle max +/- 200 Hz freq offset */ + + for(i=0; i imax) { + imax = mag; + ix = i; + } + } + r = 2.0*200.0/MPILOTFFT; /* maps FFT bin to frequency in Hz */ + + if (ix >= MPILOTFFT/2) + *foff = (ix - MPILOTFFT)*r; + else + *foff = (ix)*r; + } + + *max = imax; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: rx_est_freq_offset() + AUTHOR......: David Rowe + DATE CREATED: 19/4/2012 + + Estimate frequency offset of FDM signal using BPSK pilot. Note that + this algorithm is quite sensitive to pilot tone level wrt other + carriers, so test variations to the pilot amplitude carefully. + +\*---------------------------------------------------------------------------*/ + +float rx_est_freq_offset(struct FDMDV *f, COMP rx_fdm[], int nin, int do_fft) +{ + int i; +#ifndef FDV_ARM_MATH + int j; +#endif + COMP pilot[M_FAC+M_FAC/P]; + COMP prev_pilot[M_FAC+M_FAC/P]; + float foff, foff1, foff2; + float max1, max2; + + assert(nin <= M_FAC+M_FAC/P); + + /* get pilot samples used for correlation/down conversion of rx signal */ + + for (i=0; ipilot_lut[f->pilot_lut_index]; + f->pilot_lut_index++; + if (f->pilot_lut_index >= 4*M_FAC) + f->pilot_lut_index = 0; + + prev_pilot[i] = f->pilot_lut[f->prev_pilot_lut_index]; + f->prev_pilot_lut_index++; + if (f->prev_pilot_lut_index >= 4*M_FAC) + f->prev_pilot_lut_index = 0; + } + + /* + Down convert latest M_FAC samples of pilot by multiplying by ideal + BPSK pilot signal we have generated locally. The peak of the + resulting signal is sensitive to the time shift between the + received and local version of the pilot, so we do it twice at + different time shifts and choose the maximum. + */ + + for(i=0; ipilot_baseband1[i] = f->pilot_baseband1[i+nin]; + f->pilot_baseband2[i] = f->pilot_baseband2[i+nin]; + } + +#ifndef FDV_ARM_MATH + for(i=0,j=NPILOTBASEBAND-nin; ipilot_baseband1[j] = cmult(rx_fdm[i], pilot[i]); + f->pilot_baseband2[j] = cmult(rx_fdm[i], prev_pilot[i]); + } +#else + // TODO: Maybe a handwritten mult taking advantage of rx_fdm[0] being + // used twice would be faster but this is for sure faster than + // the implementation above in any case. + arm_cmplx_mult_cmplx_f32(&rx_fdm[0].real,&pilot[0].real,&f->pilot_baseband1[NPILOTBASEBAND-nin].real,nin); + arm_cmplx_mult_cmplx_f32(&rx_fdm[0].real,&prev_pilot[0].real,&f->pilot_baseband2[NPILOTBASEBAND-nin].real,nin); +#endif + + lpf_peak_pick(&foff1, &max1, f->pilot_baseband1, f->pilot_lpf1, f->fft_pilot_cfg, f->S1, nin, do_fft); + lpf_peak_pick(&foff2, &max2, f->pilot_baseband2, f->pilot_lpf2, f->fft_pilot_cfg, f->S2, nin, do_fft); + + if (max1 > max2) + foff = foff1; + else + foff = foff2; + + return foff; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_freq_shift() + AUTHOR......: David Rowe + DATE CREATED: 26/4/2012 + + Frequency shift modem signal. The use of complex input and output allows + single sided frequency shifting (no images). + +\*---------------------------------------------------------------------------*/ + +void fdmdv_freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, + COMP *foff_phase_rect, int nin) +{ + COMP foff_rect; + float mag; + int i; + + foff_rect.real = cosf(2.0*PI*foff/FS); + foff_rect.imag = sinf(2.0*PI*foff/FS); + for(i=0; ireal /= mag; + foff_phase_rect->imag /= mag; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdm_downconvert + AUTHOR......: David Rowe + DATE CREATED: 22/4/2012 + + Frequency shift each modem carrier down to Nc+1 baseband signals. + +\*---------------------------------------------------------------------------*/ + +void fdm_downconvert(COMP rx_baseband[NC+1][M_FAC+M_FAC/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin) +{ + int i,c; + float mag; + + /* maximum number of input samples to demod */ + + assert(nin <= (M_FAC+M_FAC/P)); + + /* downconvert */ + + for (c=0; c + nin + |--------------------------|---------| + 1 | + phase_rx(c) + + This means winding phase(c) back from this point + to ensure phase continuity. + + */ + + //PROFILE_SAMPLE(windback_start); + windback_phase = -freq_pol[c]*NFILTER; + windback_phase_rect.real = cosf(windback_phase); + windback_phase_rect.imag = sinf(windback_phase); + phase_rx[c] = cmult(phase_rx[c],windback_phase_rect); + //PROFILE_SAMPLE_AND_LOG(downconvert_start, windback_start, " windback"); + + /* down convert all samples in buffer */ + + st = NRX_FDM_MEM-1; /* end of buffer */ + st -= nin-1; /* first new sample */ + st -= NFILTER; /* first sample used in filtering */ + + /* freq shift per dec_rate step is dec_rate times original shift */ + + f_rect = freq[c]; + for(i=0; i P) + rx_timing -= P; + if (rx_timing < -P) + rx_timing += P; + + /* rx_filter_mem_timing contains Nt*P samples (Nt symbols at rate + P), where Nt is odd. Lets use linear interpolation to resample + in the centre of the timing estimation window .*/ + + rx_timing += floorf(NT/2.0)*P; + low_sample = floorf(rx_timing); + fract = rx_timing - low_sample; + high_sample = ceilf(rx_timing); + + //printf("rx_timing: %f low_sample: %d high_sample: %d fract: %f\n", rx_timing, low_sample, high_sample, fract); + + for(c=0; c= 0) && (d.imag >= 0)) { + msb = 0; lsb = 0; + } + if ((d.real < 0) && (d.imag >= 0)) { + msb = 0; lsb = 1; + } + if ((d.real < 0) && (d.imag < 0)) { + if (old_qpsk_mapping) { + msb = 1; lsb = 0; + } else { + msb = 1; lsb = 1; + } + } + if ((d.real >= 0) && (d.imag < 0)) { + if (old_qpsk_mapping) { + msb = 1; lsb = 1; + } else { + msb = 1; lsb = 0; + } + } + rx_bits[2*c] = msb; + rx_bits[2*c+1] = lsb; + } + + /* Extract DBPSK encoded Sync bit and fine freq offset estimate */ + + norm = 1.0/(cabsolute(prev_rx_symbols[Nc])+1E-6); + phase_difference[Nc] = cmult(rx_symbols[Nc], fcmult(norm, cconj(prev_rx_symbols[Nc]))); + if (phase_difference[Nc].real < 0) { + *sync_bit = 1; + ferr = phase_difference[Nc].imag*norm; /* make f_err magnitude insensitive */ + } + else { + *sync_bit = 0; + ferr = -phase_difference[Nc].imag*norm; + } + + /* pilot carrier gets an extra pi/4 rotation to make it consistent + with other carriers, as we need it for snr_update and scatter + diagram */ + + phase_difference[Nc] = cmult(phase_difference[Nc], pi_on_4); + + return ferr; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: snr_update() + AUTHOR......: David Rowe + DATE CREATED: 17 May 2012 + + Given phase differences update estimates of signal and noise levels. + +\*---------------------------------------------------------------------------*/ + +void snr_update(float sig_est[], float noise_est[], int Nc, COMP phase_difference[]) +{ + float s[NC+1]; + COMP refl_symbols[NC+1]; + float n[NC+1]; + int c; + + + /* mag of each symbol is distance from origin, this gives us a + vector of mags, one for each carrier. */ + + for(c=0; cntest_bits; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_put_test_bits() + AUTHOR......: David Rowe + DATE CREATED: 24/4/2012 + + Accepts nbits from rx and attempts to sync with test_bits sequence. + If sync OK measures bit errors. + +\*---------------------------------------------------------------------------*/ + +void fdmdv_put_test_bits(struct FDMDV *f, int *sync, short error_pattern[], + int *bit_errors, int *ntest_bits, int rx_bits[]) +{ + int i,j; + float ber; + int bits_per_frame = fdmdv_bits_per_frame(f); + + /* Append to our memory */ + + for(i=0,j=bits_per_frame; intest_bits-bits_per_frame; i++,j++) + f->rx_test_bits_mem[i] = f->rx_test_bits_mem[j]; + for(i=f->ntest_bits-bits_per_frame,j=0; intest_bits; i++,j++) + f->rx_test_bits_mem[i] = rx_bits[j]; + + /* see how many bit errors we get when checked against test sequence */ + + *bit_errors = 0; + for(i=0; intest_bits; i++) { + error_pattern[i] = test_bits[i] ^ f->rx_test_bits_mem[i]; + *bit_errors += error_pattern[i]; + //printf("%d %d %d %d\n", i, test_bits[i], f->rx_test_bits_mem[i], test_bits[i] ^ f->rx_test_bits_mem[i]); + } + + /* if less than a thresh we are aligned and in sync with test sequence */ + + ber = (float)*bit_errors/f->ntest_bits; + + *sync = 0; + if (ber < 0.2) + *sync = 1; + + *ntest_bits = f->ntest_bits; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freq_state(() + AUTHOR......: David Rowe + DATE CREATED: 24/4/2012 + + Freq offset state machine. Moves between coarse and fine states + based on BPSK pilot sequence. Freq offset estimator occasionally + makes mistakes when used continuously. So we use it until we have + acquired the BPSK pilot, then switch to a more robust "fine" + tracking algorithm. If we lose sync we switch back to coarse mode + for fast re-acquisition of large frequency offsets. + + The sync state is also useful for higher layers to determine when + there is valid FDMDV data for decoding. We want to reliably and + quickly get into sync, stay in sync even on fading channels, and + fall out of sync quickly if tx stops or it's a false sync. + + In multipath fading channels the BPSK sync carrier may be pushed + down in the noise, despite other carriers being at full strength. + We want to avoid loss of sync in these cases. + +\*---------------------------------------------------------------------------*/ + +int freq_state(int *reliable_sync_bit, int sync_bit, int *state, int *timer, int *sync_mem) +{ + int next_state, sync, unique_word, i, corr; + + /* look for 6 symbols (120ms) 101010 of sync sequence */ + + unique_word = 0; + for(i=0; ifbb_phase_rx, *nin); + + /* freq offset estimation and correction */ + + PROFILE_SAMPLE(demod_start); + foff_coarse = rx_est_freq_offset(fdmdv, rx_fdm_bb, *nin, !fdmdv->sync); + PROFILE_SAMPLE_AND_LOG(fdmdv_freq_shift_start, demod_start, " rx_est_freq_offset"); + + if (fdmdv->sync == 0) + fdmdv->foff = foff_coarse; + fdmdv_freq_shift(rx_fdm_fcorr, rx_fdm_bb, -fdmdv->foff, &fdmdv->foff_phase_rect, *nin); + PROFILE_SAMPLE_AND_LOG(down_convert_and_rx_filter_start, fdmdv_freq_shift_start, " fdmdv_freq_shift"); + + /* baseband processing */ + + rxdec_filter(rx_fdm_filter, rx_fdm_fcorr, fdmdv->rxdec_lpf_mem, *nin); + down_convert_and_rx_filter(rx_filt, fdmdv->Nc, rx_fdm_filter, fdmdv->rx_fdm_mem, fdmdv->phase_rx, fdmdv->freq, + fdmdv->freq_pol, *nin, M_FAC/Q); + PROFILE_SAMPLE_AND_LOG(rx_est_timing_start, down_convert_and_rx_filter_start, " down_convert_and_rx_filter"); + fdmdv->rx_timing = rx_est_timing(rx_symbols, fdmdv->Nc, rx_filt, fdmdv->rx_filter_mem_timing, env, *nin, M_FAC); + PROFILE_SAMPLE_AND_LOG(qpsk_to_bits_start, rx_est_timing_start, " rx_est_timing"); + + /* Adjust number of input samples to keep timing within bounds */ + + *nin = M_FAC; + + if (fdmdv->rx_timing > M_FAC/P) + *nin += M_FAC/P; + + if (fdmdv->rx_timing < -M_FAC/P) + *nin -= M_FAC/P; + + foff_fine = qpsk_to_bits(rx_bits, &sync_bit, fdmdv->Nc, fdmdv->phase_difference, fdmdv->prev_rx_symbols, rx_symbols, + fdmdv->old_qpsk_mapping); + memcpy(fdmdv->prev_rx_symbols, rx_symbols, sizeof(COMP)*(fdmdv->Nc+1)); + PROFILE_SAMPLE_AND_LOG(snr_update_start, qpsk_to_bits_start, " qpsk_to_bits"); + snr_update(fdmdv->sig_est, fdmdv->noise_est, fdmdv->Nc, fdmdv->phase_difference); + PROFILE_SAMPLE_AND_LOG(freq_state_start, snr_update_start, " snr_update"); + + /* freq offset estimation state machine */ + + fdmdv->sync = freq_state(reliable_sync_bit, sync_bit, &fdmdv->fest_state, &fdmdv->timer, fdmdv->sync_mem); + PROFILE_SAMPLE_AND_LOG2(freq_state_start, " freq_state"); + fdmdv->foff -= TRACK_COEFF*foff_fine; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: calc_snr() + AUTHOR......: David Rowe + DATE CREATED: 17 May 2012 + + Calculate current SNR estimate (3000Hz noise BW) + +\*---------------------------------------------------------------------------*/ + +float calc_snr(int Nc, float sig_est[], float noise_est[]) +{ + float S, SdB; + float mean, N50, N50dB, N3000dB; + float snr_dB; + int c; + + S = 0.0; + for(c=0; cNc <= MODEM_STATS_NC_MAX); + + stats->Nc = fdmdv->Nc; + stats->snr_est = calc_snr(fdmdv->Nc, fdmdv->sig_est, fdmdv->noise_est); + stats->sync = fdmdv->sync; + stats->foff = fdmdv->foff; + stats->rx_timing = fdmdv->rx_timing; + stats->clock_offset = 0.0; /* TODO - implement clock offset estimation */ + +#ifndef __EMBEDDED__ + stats->nr = 1; + for(int c=0; cNc+1; c++) { + stats->rx_symbols[0][c] = fdmdv->phase_difference[c]; + } +#endif +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_8_to_16() + AUTHOR......: David Rowe + DATE CREATED: 9 May 2012 + + Changes the sample rate of a signal from 8 to 16 kHz. Support function for + SM1000. + +\*---------------------------------------------------------------------------*/ + +void fdmdv_8_to_16(float out16k[], float in8k[], int n8k) +{ + int i,k,l; + float acc; + + /* this version unrolled for specific FDMDV_OS */ + + assert(FDMDV_OS == 2); + + for(i=0; iNc; i++) + fprintf(stderr," %1.3f", (double)cabsolute(f->phase_tx[i])); + fprintf(stderr,"\nfreq[]:\n"); + for(i=0; i<=f->Nc; i++) + fprintf(stderr," %1.3f", (double)cabsolute(f->freq[i])); + fprintf(stderr,"\nfoff_phase_rect: %1.3f", (double)cabsolute(f->foff_phase_rect)); + fprintf(stderr,"\nphase_rx[]:\n"); + for(i=0; i<=f->Nc; i++) + fprintf(stderr," %1.3f", (double)cabsolute(f->phase_rx[i])); + fprintf(stderr, "\n\n"); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: randn() + AUTHOR......: David Rowe + DATE CREATED: 2 August 2014 + + Simple approximation to normal (gaussian) random number generator + with 0 mean and unit variance. + +\*---------------------------------------------------------------------------*/ + +#define RANDN_IT 12 /* This magic number of iterations gives us a + unit variance. I think because var = + (b-a)^2/12 for one uniform random variable, so + for a sum of n random variables it's + n(b-a)^2/12, or for b=1, a = 0, n=12, we get + var = 12(1-0)^2/12 = 1 */ + +static float randn() { + int i; + float rn = 0.0; + + for(i=0; isig_pwr_av: %e target_snr_linear: %f noise_pwr_4000Hz: %e noise_gain: %e\n", + sig_pwr, *sig_pwr_av, target_snr_linear, noise_pwr_4000Hz, noise_gain); + */ +} diff --git a/src/fdmdv_demod.c b/src/fdmdv_demod.c new file mode 100644 index 0000000..c671cd9 --- /dev/null +++ b/src/fdmdv_demod.c @@ -0,0 +1,249 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fdmdv_demod.c + AUTHOR......: David Rowe + DATE CREATED: April 30 2012 + + Given an input raw file (8kHz, 16 bit shorts) of FDMDV modem samples + outputs a file of bits. The output file is assumed to be arranged + as codec frames of 56 bits (7 bytes) which are received as two 28 + bit modem frames. + + Demod states can be optionally logged to an Octave file for display + using the Octave script fdmdv_demod_c.m. This is useful for + checking demod performance. + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_fdmdv.h" +#include "octave.h" +#include "freedv_api.h" + +#include "debug_alloc.h" + +/* lof of information we want to dump to Octave */ + +#define MAX_FRAMES 50*60 /* 1 minute at 50 symbols/s */ + +int main(int argc, char *argv[]) +{ + FILE *fin, *fout; + struct FDMDV *fdmdv; + char *packed_bits; + int *rx_bits; + int *codec_bits; + COMP rx_fdm[FDMDV_MAX_SAMPLES_PER_FRAME]; + short rx_fdm_scaled[FDMDV_MAX_SAMPLES_PER_FRAME]; + int i, bit, byte, c; + int nin, nin_prev; + int sync_bit = 0, reliable_sync_bit; + int sync = 0; + int f; + FILE *foct = NULL; + struct MODEM_STATS stats; + COMP *rx_fdm_log; + int rx_fdm_log_col_index; + COMP *rx_symbols_log; + int sync_log[MAX_FRAMES]; + float rx_timing_log[MAX_FRAMES]; + float foff_log[MAX_FRAMES]; + int sync_bit_log[MAX_FRAMES]; + int rx_bits_log[FDMDV_BITS_PER_FRAME*MAX_FRAMES]; + float snr_est_log[MAX_FRAMES]; + float *rx_spec_log; + int max_frames_reached; + int bits_per_fdmdv_frame; + int bits_per_codec_frame; + int bytes_per_codec_frame; + int Nc; + + if (argc < 2) { + printf("usage: %s InputModemRawFile OutputBitFile [Nc [OctaveDumpFile]]\n", argv[0]); + printf("e.g %s hts1a_fdmdv.raw hts1a.c2\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input modem sample file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output bit file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (argc >= 4) { + Nc = atoi(argv[3]); + + if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { + fprintf(stderr, "Error number of carriers must be between 2 and %d\n", FDMDV_NC_MAX); + exit(1); + } + } + else + Nc = FDMDV_NC; + + fdmdv = fdmdv_create(Nc); + modem_stats_open(&stats); + + bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); + bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); + bytes_per_codec_frame = (bits_per_codec_frame+7)/8; + + /* malloc some buffers that are dependent on Nc */ + + packed_bits = (char*)MALLOC(bytes_per_codec_frame); assert(packed_bits != NULL); + rx_bits = (int*)MALLOC(sizeof(int)*bits_per_codec_frame); assert(rx_bits != NULL); + codec_bits = (int*)MALLOC(2*sizeof(int)*bits_per_fdmdv_frame); assert(codec_bits != NULL); + + /* malloc some of the larger variables to prevent out of stack problems */ + + rx_fdm_log = (COMP*)MALLOC(sizeof(COMP)*FDMDV_MAX_SAMPLES_PER_FRAME*MAX_FRAMES); + assert(rx_fdm_log != NULL); + rx_spec_log = (float*)MALLOC(sizeof(float)*MODEM_STATS_NSPEC*MAX_FRAMES); + assert(rx_spec_log != NULL); + rx_symbols_log = (COMP*)MALLOC(sizeof(COMP)*(Nc+1)*MAX_FRAMES); + assert(rx_fdm_log != NULL); + + f = 0; + nin = FDMDV_NOM_SAMPLES_PER_FRAME; + rx_fdm_log_col_index = 0; + max_frames_reached = 0; + + while(fread(rx_fdm_scaled, sizeof(short), nin, fin) == nin) + { + for(i=0; i. +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_fdmdv.h" + +int main(int argc, char *argv[]) +{ + FILE *fout; + struct FDMDV *fdmdv; + char *packed_bits; + int *tx_bits; + int n, i, bit, byte; + int numBits, nCodecFrames; + int bits_per_fdmdv_frame; + int bits_per_codec_frame; + int bytes_per_codec_frame; + int Nc; + + if (argc < 3) { + printf("usage: %s OutputBitFile numBits [Nc]\n", argv[0]); + printf("e.g %s test.c2 1400\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[1],"wb")) == NULL ) { + fprintf(stderr, "Error opening output bit file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + numBits = atoi(argv[2]); + + if (argc == 4) { + Nc = atoi(argv[3]); + if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { + fprintf(stderr, "Error number of carriers must be btween 2 and %d\n", FDMDV_NC_MAX); + exit(1); + } + } + else + Nc = FDMDV_NC; + + fdmdv = fdmdv_create(Nc); + + bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); + bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); + bytes_per_codec_frame = (bits_per_codec_frame+7)/8; + fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n", + bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame); + + packed_bits = (char*)malloc(bytes_per_codec_frame); + assert(packed_bits != NULL); + tx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); + assert(tx_bits != NULL); + + nCodecFrames = numBits/bits_per_codec_frame; + + for(n=0; n. +*/ + +#ifndef __FDMDV_INTERNAL__ +#define __FDMDV_INTERNAL__ + +#include "comp.h" +#include "codec2_fdmdv.h" +#include "codec2_fft.h" + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +#ifndef PI +#define PI 3.141592654 +#endif +#define FS 8000 /* sample rate in Hz */ +#define FS_VOICE_8K 8000 /* speech sample rate, 8000 Hz */ +#define FS_VOICE_16K 16000 /* speech sample rate, 16000 Hz */ +#define T (1.0/FS) /* sample period in seconds */ +#define RS 50 /* symbol rate in Hz */ +#define NC 20 /* max number of data carriers (plus one pilot in the centre) */ +#define NB 2 /* Bits/symbol for QPSK modulation */ +#define RB (NC*RS*NB) /* bit rate */ +#define M_FAC (FS/RS) /* oversampling factor */ +#define NSYM 6 /* number of symbols to filter over */ +#define NFILTER (NSYM*M_FAC) /* size of tx/rx filters at sample rate M */ + +#define FSEP 75 /* Default separation between carriers (Hz) */ + +#define NT 5 /* number of symbols we estimate timing over */ +#define P 4 /* oversample factor used for initial rx symbol filtering output */ +#define Q (M_FAC/4) /* oversample factor used for initial rx symbol filtering input */ +#define NRXDEC 31 /* number of taps in the rx decimation filter */ + +#define NPILOT_LUT (4*M_FAC) /* number of pilot look up table samples */ +#define NPILOTCOEFF 30 /* number of FIR filter coeffs in LP filter */ +#define NPILOTBASEBAND (NPILOTCOEFF+M_FAC+M_FAC/P) /* number of pilot baseband samples reqd for pilot LPF */ +#define NPILOTLPF (4*M_FAC) /* number of samples we DFT pilot over, pilot est window */ +#define MPILOTFFT 256 + +#define NSYNC_MEM 6 + +#define NRX_FDM_MEM (NFILTER+M_FAC+M_FAC/P) /* size of rx filter memory */ +#define NRXDECMEM (NRXDEC+M_FAC+M_FAC/P) /* size of rx decimation filter memory */ + +/* averaging filter coeffs */ + +#define TRACK_COEFF 0.5 +#define SNR_COEFF 0.9 /* SNR est averaging filter coeff */ + +/*---------------------------------------------------------------------------*\ + + STRUCT for States + +\*---------------------------------------------------------------------------*/ + +struct FDMDV { + + int Nc; + float fsep; + + /* test data (test frame) states */ + + int ntest_bits; + int current_test_bit; + int *rx_test_bits_mem; + + /* Modulator */ + + int old_qpsk_mapping; + int tx_pilot_bit; + COMP prev_tx_symbols[NC+1]; + COMP tx_filter_memory[NC+1][NSYM]; + COMP phase_tx[NC+1]; + COMP freq[NC+1]; + float freq_pol[NC+1]; + + /* Pilot generation at demodulator */ + + COMP pilot_lut[NPILOT_LUT]; + int pilot_lut_index; + int prev_pilot_lut_index; + + /* freq offset estimation states */ + + codec2_fft_cfg fft_pilot_cfg; + COMP pilot_baseband1[NPILOTBASEBAND]; + COMP pilot_baseband2[NPILOTBASEBAND]; + COMP pilot_lpf1[NPILOTLPF]; + COMP pilot_lpf2[NPILOTLPF]; + COMP S1[MPILOTFFT]; + COMP S2[MPILOTFFT]; + + /* baseband to low IF carrier states */ + + COMP fbb_rect; + float fbb_pol; + COMP fbb_phase_tx; + COMP fbb_phase_rx; + + /* freq offset correction states */ + + float foff; + COMP foff_phase_rect; + float foff_filt; + + /* Demodulator */ + + COMP rxdec_lpf_mem[NRXDECMEM]; + COMP rx_fdm_mem[NRX_FDM_MEM]; + COMP phase_rx[NC+1]; + COMP rx_filter_mem_timing[NC+1][NT*P]; + float rx_timing; + COMP phase_difference[NC+1]; + COMP prev_rx_symbols[NC+1]; + + /* sync state machine */ + + int sync_mem[NSYNC_MEM]; + int fest_state; + int sync; + int timer; + + /* SNR estimation states */ + + float sig_est[NC+1]; + float noise_est[NC+1]; + + /* channel simulation */ + + float sig_pwr_av; +}; + +/*---------------------------------------------------------------------------*\ + + FUNCTION PROTOTYPES + +\*---------------------------------------------------------------------------*/ + +void bits_to_dqpsk_symbols(COMP tx_symbols[], int Nc, COMP prev_tx_symbols[], int tx_bits[], int *pilot_bit, int old_qpsk_mapping); +void tx_filter(COMP tx_baseband[NC+1][M_FAC], int Nc, COMP tx_symbols[], COMP tx_filter_memory[NC+1][NSYM]); +void fdm_upconvert(COMP tx_fdm[], int Nc, COMP tx_baseband[NC+1][M_FAC], COMP phase_tx[], COMP freq_tx[], + COMP *fbb_phase, COMP fbb_rect); +void tx_filter_and_upconvert(COMP tx_fdm[], int Nc, COMP tx_symbols[], + COMP tx_filter_memory[NC+1][NSYM], + COMP phase_tx[], COMP freq[], COMP *fbb_phase, COMP fbb_rect); +void generate_pilot_fdm(COMP *pilot_fdm, int *bit, float *symbol, float *filter_mem, COMP *phase, COMP *freq); +void generate_pilot_lut(COMP pilot_lut[], COMP *pilot_freq); +float rx_est_freq_offset(struct FDMDV *f, COMP rx_fdm[], int nin, int do_fft); +void lpf_peak_pick(float *foff, float *max, COMP pilot_baseband[], COMP pilot_lpf[], codec2_fft_cfg fft_pilot_cfg, COMP S[], int nin, int do_fft); +void fdm_downconvert(COMP rx_baseband[NC+1][M_FAC+M_FAC/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin); +void rxdec_filter(COMP rx_fdm_filter[], COMP rx_fdm[], COMP rxdec_lpf_mem[], int nin); +void rx_filter(COMP rx_filt[][P+1], int Nc, COMP rx_baseband[][M_FAC+M_FAC/P], COMP rx_filter_memory[][NFILTER], int nin); +void down_convert_and_rx_filter(COMP rx_filt[NC+1][P+1], int Nc, COMP rx_fdm[], + COMP rx_fdm_mem[], COMP phase_rx[], COMP freq[], + float freq_pol[], int nin, int dec_rate); +float rx_est_timing(COMP rx_symbols[], int Nc, + COMP rx_filt[][P+1], + COMP rx_filter_mem_timing[][NT*P], + float env[], + int nin, + int m); +float qpsk_to_bits(int rx_bits[], int *sync_bit, int Nc, COMP phase_difference[], COMP prev_rx_symbols[], COMP rx_symbols[], int old_qpsk_mapping); +void snr_update(float sig_est[], float noise_est[], int Nc, COMP phase_difference[]); +int freq_state(int *reliable_sync_bit, int sync_bit, int *state, int *timer, int *sync_mem); +float calc_snr(int Nc, float sig_est[], float noise_est[]); + +#endif diff --git a/src/fdmdv_mod.c b/src/fdmdv_mod.c new file mode 100644 index 0000000..b47c543 --- /dev/null +++ b/src/fdmdv_mod.c @@ -0,0 +1,162 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fdmdv_mod.c + AUTHOR......: David Rowe + DATE CREATED: April 28 2012 + + Given an input file of bits outputs a raw file (8kHz, 16 bit shorts) + of FDMDV modem samples ready to send over a HF radio channel. The + input file is assumed to be arranged as codec frames of 56 bits (7 + bytes) which we send as two 28 bit modem frames. + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_fdmdv.h" + +int main(int argc, char *argv[]) +{ + FILE *fin, *fout; + struct FDMDV *fdmdv; + char *packed_bits; + int *tx_bits; + COMP tx_fdm[2*FDMDV_NOM_SAMPLES_PER_FRAME]; + short tx_fdm_scaled[2*FDMDV_NOM_SAMPLES_PER_FRAME]; + int frames; + int i, bit, byte; + int sync_bit; + int bits_per_fdmdv_frame; + int bits_per_codec_frame; + int bytes_per_codec_frame; + int Nc; +#ifdef CHANNEL_SIM + COMP foff_phase_rect; + float foff; +#endif + + if (argc < 3) { + printf("usage: %s InputBitFile OutputModemRawFile [Nc]\n", argv[0]); + printf("e.g %s hts1a.c2 hts1a_fdmdv.raw\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input bit file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (argc == 4) { + Nc = atoi(argv[3]); + + if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { + fprintf(stderr, "Error number of carriers must be between 2 and %d\n", FDMDV_NC_MAX); + exit(1); + } + } + else + Nc = FDMDV_NC; + + fdmdv = fdmdv_create(Nc); + + bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); + bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); + bytes_per_codec_frame = (bits_per_codec_frame+7)/8; + + packed_bits = (char*)malloc(bytes_per_codec_frame); + assert(packed_bits != NULL); + tx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); + assert(tx_bits != NULL); + +#ifdef CHANNEL_SIM + foff = -100; + foff_phase_rect.real = 1.0; foff_phase_rect.imag = 0.0; +#endif + + frames = 0; + + while(fread(packed_bits, sizeof(char), bytes_per_codec_frame, fin) == bytes_per_codec_frame) { + frames++; + + /* unpack bits, MSB first */ + + bit = 7; byte = 0; + for(i=0; i> bit) & 0x1; + bit--; + if (bit < 0) { + bit = 7; + byte++; + } + } + + /* modulate even and odd frames */ + + fdmdv_mod(fdmdv, tx_fdm, tx_bits, &sync_bit); + assert(sync_bit == 1); + + fdmdv_mod(fdmdv, &tx_fdm[FDMDV_NOM_SAMPLES_PER_FRAME], &tx_bits[bits_per_fdmdv_frame], &sync_bit); + assert(sync_bit == 0); + + #ifdef CHANNEL_SIM + /* optional freq shift and channel simulation */ + + fdmdv_freq_shift(tx_fdm, tx_fdm, foff, &foff_phase_rect, 2*FDMDV_NOM_SAMPLES_PER_FRAME); + fdmdv_simulate_channel(&sig_pwr_av, tx_fdm, 2*FDMDV_NOM_SAMPLES_PER_FRAME, 10.0); + #endif + + /* scale and save to disk as shorts */ + + for(i=0; i<2*FDMDV_NOM_SAMPLES_PER_FRAME; i++) + tx_fdm_scaled[i] = FDMDV_SCALE * tx_fdm[i].real; + + fwrite(tx_fdm_scaled, sizeof(short), 2*FDMDV_NOM_SAMPLES_PER_FRAME, fout); + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + + if (fout == stdout) fflush(stdout); + } + + //fdmdv_dump_osc_mags(fdmdv); + + free(tx_bits); + free(packed_bits); + fclose(fin); + fclose(fout); + fdmdv_destroy(fdmdv); + + return 0; +} diff --git a/src/fdmdv_put_test_bits.c b/src/fdmdv_put_test_bits.c new file mode 100644 index 0000000..abda2f9 --- /dev/null +++ b/src/fdmdv_put_test_bits.c @@ -0,0 +1,167 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fdmdv_put_test_bits.c + AUTHOR......: David Rowe + DATE CREATED: 1 May 2012 + + Using a file of packed test bits as input, determines bit error + rate. Useful for testing fdmdv_demod. + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_fdmdv.h" + +int main(int argc, char *argv[]) +{ + FILE *fin; + struct FDMDV *fdmdv; + char *packed_bits; + int *rx_bits; + int i, bit, byte; + int test_frame_sync, bit_errors, total_bit_errors, total_bits, ntest_bits; + int test_frame_sync_state, test_frame_count; + int bits_per_fdmdv_frame; + int bits_per_codec_frame; + int bytes_per_codec_frame; + int Nc; + short *error_pattern; + + if (argc < 2) { + printf("usage: %s InputBitFile [Nc]\n", argv[0]); + printf("e.g %s test.c2\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input bit file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (argc == 3) { + Nc = atoi(argv[2]); + if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { + fprintf(stderr, "Error number of carriers must be between 2 and %d\n", FDMDV_NC_MAX); + exit(1); + } + } + else + Nc = FDMDV_NC; + + fdmdv = fdmdv_create(Nc); + + bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); + bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); + bytes_per_codec_frame = (bits_per_codec_frame+7)/8; + fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n", + bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame); + + packed_bits = (char*)malloc(bytes_per_codec_frame); + assert(packed_bits != NULL); + rx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); + assert(rx_bits != NULL); + + error_pattern = (short*)malloc(fdmdv_error_pattern_size(fdmdv)*sizeof(int)); + assert(error_pattern != NULL); + + total_bit_errors = 0; + total_bits = 0; + test_frame_sync_state = 0; + test_frame_count = 0; + + while(fread(packed_bits, sizeof(char), bytes_per_codec_frame, fin) == bytes_per_codec_frame) { + /* unpack bits, MSB first */ + + bit = 7; byte = 0; + for(i=0; i> bit) & 0x1; + //printf("%d 0x%x %d\n", i, packed_bits[byte], rx_bits[i]); + bit--; + if (bit < 0) { + bit = 7; + byte++; + } + } + + fdmdv_put_test_bits(fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, rx_bits); + + if (test_frame_sync == 1) { + test_frame_sync_state = 1; + test_frame_count = 0; + } + + if (test_frame_sync_state) { + if (test_frame_count == 0) { + total_bit_errors += bit_errors; + total_bits = total_bits + ntest_bits; + printf("+"); + } + else + printf("-"); + test_frame_count++; + if (test_frame_count == 4) + test_frame_count = 0; + } + else + printf("-"); + + fdmdv_put_test_bits(fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, &rx_bits[bits_per_fdmdv_frame]); + + if (test_frame_sync == 1) { + test_frame_sync_state = 1; + test_frame_count = 0; + } + + if (test_frame_sync_state) { + if (test_frame_count == 0) { + total_bit_errors += bit_errors; + total_bits = total_bits + ntest_bits; + printf("+"); + } + else + printf("-"); + test_frame_count++; + if (test_frame_count == 4) + test_frame_count = 0; + } + else + printf("-"); + } + + fclose(fin); + free(error_pattern); + fdmdv_destroy(fdmdv); + + printf("\nbits %d errors %d BER %1.4f\n", total_bits, total_bit_errors, (float)total_bit_errors/(1E-6+total_bits) ); + + if (packed_bits != NULL) free(packed_bits); + + return 0; +} + diff --git a/src/filter.c b/src/filter.c new file mode 100644 index 0000000..ccb58cd --- /dev/null +++ b/src/filter.c @@ -0,0 +1,281 @@ +/* + Copyright (C) 2018 James C. Ahlstrom + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +#include "filter.h" +#include "filter_coef.h" +#include "debug_alloc.h" + +#define cmplx(value) (cosf(value) + sinf(value) * I) + +/* + * This is a library of filter functions. They were copied from Quisk and converted to single precision. + */ + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_filt_cfInit + AUTHOR......: Jim Ahlstrom + DATE CREATED: 27 August 2015 + MODIFIED: 4 June 2018 + + Initialize a FIR filter that has complex samples, and either real or complex coefficients. + +\*---------------------------------------------------------------------------*/ + +void quisk_filt_cfInit(struct quisk_cfFilter * filter, float * coefs, int taps) { + // Prepare a new filter using coefs and taps. Samples are complex. Coefficients can + // be real or complex. + filter->dCoefs = coefs; + filter->cpxCoefs = NULL; + filter->cSamples = (complex float *)MALLOC(taps * sizeof(complex float)); + memset(filter->cSamples, 0, taps * sizeof(complex float)); + filter->ptcSamp = filter->cSamples; + filter->nTaps = taps; + filter->cBuf = NULL; + filter->nBuf = 0; + filter->decim_index = 0; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_filt_destroy + AUTHOR......: Jim Ahlstrom + DATE CREATED: 27 August 2015 + MODIFIED: 4 June 2018 + + Destroy the FIR filter and free all resources. + +\*---------------------------------------------------------------------------*/ + +void quisk_filt_destroy(struct quisk_cfFilter * filter) { + if (filter->cSamples) { + FREE(filter->cSamples); + filter->cSamples = NULL; + } + + if (filter->cBuf) { + FREE(filter->cBuf); + filter->cBuf = NULL; + } + + if (filter->cpxCoefs) { + FREE(filter->cpxCoefs); + filter->cpxCoefs = NULL; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_cfInterpDecim + AUTHOR......: Jim Ahlstrom + DATE CREATED: 27 August 2015 + MODIFIED: 4 June 2018 + + Take an array of samples cSamples of length count, multiply the sample rate + by interp, and then divide the sample rate by decim. Return the new number + of samples. Each specific interp and decim will require its own custom + low pass FIR filter with real coefficients. + +\*---------------------------------------------------------------------------*/ + +int quisk_cfInterpDecim(complex float * cSamples, int count, struct quisk_cfFilter * filter, int interp, int decim) { + // Interpolate by interp, and then decimate by decim. + // This uses the float coefficients of filter (not the complex). Samples are complex. + int i, k, nOut; + float * ptCoef; + complex float * ptSample; + complex float csample; + + if (count > filter->nBuf) { // increase size of sample buffer + filter->nBuf = count * 2; + + if (filter->cBuf) + FREE(filter->cBuf); + + filter->cBuf = (complex float *)MALLOC(filter->nBuf * sizeof(complex float)); + } + + memcpy(filter->cBuf, cSamples, count * sizeof(complex float)); + nOut = 0; + + for (i = 0; i < count; i++) { + // Put samples into buffer left to right. Use samples right to left. + *filter->ptcSamp = filter->cBuf[i]; + + while (filter->decim_index < interp) { + ptSample = filter->ptcSamp; + ptCoef = filter->dCoefs + filter->decim_index; + csample = 0; + + for (k = 0; k < filter->nTaps / interp; k++, ptCoef += interp) { + csample += *ptSample * *ptCoef; + + if (--ptSample < filter->cSamples) + ptSample = filter->cSamples + filter->nTaps - 1; + } + + cSamples[nOut] = csample * interp; + nOut++; + filter->decim_index += decim; + } + + if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) + filter->ptcSamp = filter->cSamples; + + filter->decim_index = filter->decim_index - interp; + } + + return nOut; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_ccfInterpDecim + AUTHOR......: Jim Ahlstrom + DATE CREATED: 7 June 2018 + + Take an array of samples cSamples of length count, multiply the sample rate + by interp, and then divide the sample rate by decim. Return the new number + of samples. Each specific interp and decim will require its own custom + low pass FIR filter with complex coefficients. This filter can be tuned. + + This filter is not currently used. + +\*---------------------------------------------------------------------------*/ +#if 0 +int quisk_ccfInterpDecim(complex float * cSamples, int count, struct quisk_cfFilter * filter, int interp, int decim) { + // Interpolate by interp, and then decimate by decim. + // This uses the complex coefficients of filter (not the real). Samples are complex. + int i, k, nOut; + complex float * ptCoef; + complex float * ptSample; + complex float csample; + + if (count > filter->nBuf) { // increase size of sample buffer + filter->nBuf = count * 2; + if (filter->cBuf) + FREE(filter->cBuf); + filter->cBuf = (complex float *)MALLOC(filter->nBuf * sizeof(complex float)); + } + + memcpy(filter->cBuf, cSamples, count * sizeof(complex float)); + nOut = 0; + + for (i = 0; i < count; i++) { + // Put samples into buffer left to right. Use samples right to left. + *filter->ptcSamp = filter->cBuf[i]; + + while (filter->decim_index < interp) { + ptSample = filter->ptcSamp; + ptCoef = filter->cpxCoefs + filter->decim_index; + csample = 0; + + for (k = 0; k < filter->nTaps / interp; k++, ptCoef += interp) { + csample += *ptSample * *ptCoef; + + if (--ptSample < filter->cSamples) + ptSample = filter->cSamples + filter->nTaps - 1; + } + + cSamples[nOut] = csample * interp; + nOut++; + filter->decim_index += decim; + } + + if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) + filter->ptcSamp = filter->cSamples; + + filter->decim_index = filter->decim_index - interp; + } + + return nOut; +} +#endif + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_cfTune + AUTHOR......: Jim Ahlstrom + DATE CREATED: 4 June 2018 + + Tune a low pass filter with float coefficients into an analytic I/Q bandpass filter + with complex coefficients. The "freq" is the center frequency / sample rate. + If the float coefs represent a low pass filter with bandwidth 1 kHz, the new bandpass + filter has width 2 kHz. The filter can be re-tuned repeatedly. + +\*---------------------------------------------------------------------------*/ + +void quisk_cfTune(struct quisk_cfFilter * filter, float freq) { + float D, tune; + int i; + + if ( ! filter->cpxCoefs) + filter->cpxCoefs = (complex float *)MALLOC(filter->nTaps * sizeof(complex float)); + + tune = 2.0 * M_PI * freq; + D = (filter->nTaps - 1.0) / 2.0; + + for (i = 0; i < filter->nTaps; i++) { + float tval = tune * (i - D); + filter->cpxCoefs[i] = cmplx(tval) * filter->dCoefs[i]; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: quisk_ccfFilter + AUTHOR......: Jim Ahlstrom + DATE CREATED: 4 June 2018 + + Filter complex samples using complex coefficients. The inSamples and outSamples may be + the same array. The loop runs forward over coefficients but backwards over samples. + Therefore, the coefficients must be reversed unless they are created by quisk_cfTune. + Low pass filter coefficients are symmetrical, so this does not usually matter. + +\*---------------------------------------------------------------------------*/ + +void quisk_ccfFilter(complex float * inSamples, complex float * outSamples, int count, struct quisk_cfFilter * filter) { + int i, k; + complex float * ptSample; + complex float * ptCoef; + complex float accum; + + for (i = 0; i < count; i++) { + *filter->ptcSamp = inSamples[i]; + accum = 0; + ptSample = filter->ptcSamp; + ptCoef = filter->cpxCoefs; + + for (k = 0; k < filter->nTaps; k++, ptCoef++) { + accum += *ptSample * *ptCoef; + + if (--ptSample < filter->cSamples) + ptSample = filter->cSamples + filter->nTaps - 1; + } + + outSamples[i] = accum; + + if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) + filter->ptcSamp = filter->cSamples; + } +} + diff --git a/src/filter.h b/src/filter.h new file mode 100644 index 0000000..ba48424 --- /dev/null +++ b/src/filter.h @@ -0,0 +1,48 @@ +/* + Copyright (C) 2018 James C. Ahlstrom + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __FILTER__ +#define __FILTER__ + +#include + +struct quisk_cfFilter { // Structure to hold the static data for FIR filters + float * dCoefs; // real filter coefficients + complex float * cpxCoefs; // complex filter coefficients + int nBuf; // dimension of cBuf + int nTaps; // dimension of dSamples, cSamples, dCoefs + int decim_index; // index of next sample for decimation + complex float * cSamples; // storage for old samples + complex float * ptcSamp; // next available position in cSamples + complex float * cBuf; // auxiliary buffer for interpolation +} ; + +extern int quisk_cfInterpDecim(complex float *, int, struct quisk_cfFilter *, int, int); +extern void quisk_filt_cfInit(struct quisk_cfFilter *, float *, int); +extern void quisk_filt_destroy(struct quisk_cfFilter *); +extern void quisk_cfTune(struct quisk_cfFilter *, float); +extern void quisk_ccfFilter(complex float *, complex float *, int, struct quisk_cfFilter *); + +extern float filtP400S600[100]; +extern float filtP550S750[160]; +extern float filtP650S900[100]; +extern float filtP900S1100[100]; +extern float filtP1100S1300[100]; +extern float filtP200S400[100]; +extern float quiskFilt120t480[480]; + +#endif diff --git a/src/filter_coef.h b/src/filter_coef.h new file mode 100644 index 0000000..d5ad8b4 --- /dev/null +++ b/src/filter_coef.h @@ -0,0 +1,730 @@ +/* + Copyright (C) 2018 James C. Ahlstrom + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/* + These are the coefficients for various FIR filters. A declaration of these filter coefficients is in filter.h. + Multiple filters can use these coefficients because they are read-only. + + Although a sample rate is specified, the filters may be used at other sample rates. For example, if + filtP750S1040 is used at 48000 sps, the pass and stop frequencies are 4500 and 6240 Hz. +*/ + +// Low pass filter, sample rate 8000 hz, 0.2 dB ripple, 100 dB atten, pass 550 Hz, stop 750 Hz. +// Used to build 700D BPF +float filtP550S750[160]={ + 0.000001500540125945, 0.000020553368071006, 0.000052842049763802, 0.000112071233638701, + 0.000202565299657164, 0.000325476960438197, 0.000474396686568771, 0.000633746562372497, 0.000778858561033731, + 0.000878592697224500, 0.000900611877226272, 0.000818750000130019, 0.000621157718914443, 0.000317269738067462, +-0.000058614729046822, -0.000448959090901751, -0.000780751290682747, -0.000978953969922609, -0.000983534965413392, +-0.000766540799920385, -0.000344938705664714, 0.000214927788687815, 0.000804118320944653, 0.001289527679116282, + 0.001541598437149897, 0.001466078039230554, 0.001032493743140772, 0.000291727467744814, -0.000623607913580581, +-0.001518948630011706, -0.002175907515711935, -0.002402252989524116, -0.002082876981631170, -0.001219318501019004, + 0.000053915753894017, 0.001483599323867600, 0.002743518309691092, 0.003504691193108974, 0.003515993126242027, + 0.002676486805582815, 0.001080325423865147, -0.000980649349095093, -0.003062866925046052, -0.004660487490214220, +-0.005321805637618908, -0.004767235761853469, -0.002979877569160189, -0.000242864453416682, 0.002892365745006815, + 0.005707645107750651, 0.007473145256589892, 0.007624527169837005, 0.005921569713871673, 0.002547381438730890, +-0.001883079571618079, -0.006418195698900790, -0.009958090016198632, -0.011502199858687428, -0.010403943660694560, +-0.006572745274759415, -0.000569370325758693, 0.006440667006225166, 0.012881777376768124, 0.017083918451421990, + 0.017661533458054445, 0.013877952730549446, 0.005912685575826365, -0.005037640104142052, -0.016864250576905999, +-0.026855876467499887, -0.032168177048912679, -0.030370760878632559, -0.019967289813872333, -0.000782327027950076, + 0.025871098651626040, 0.057290144048617792, 0.089743290905422241, 0.119038289777397190, 0.141198609990722840, + 0.153125933205703250, 0.153125933205703250, 0.141198609990722840, 0.119038289777397190, 0.089743290905422241, + 0.057290144048617792, 0.025871098651626040, -0.000782327027950076, -0.019967289813872333, -0.030370760878632559, +-0.032168177048912679, -0.026855876467499887, -0.016864250576905999, -0.005037640104142052, 0.005912685575826365, + 0.013877952730549446, 0.017661533458054445, 0.017083918451421990, 0.012881777376768124, 0.006440667006225166, +-0.000569370325758693, -0.006572745274759415, -0.010403943660694560, -0.011502199858687428, -0.009958090016198632, +-0.006418195698900790, -0.001883079571618079, 0.002547381438730890, 0.005921569713871673, 0.007624527169837005, + 0.007473145256589892, 0.005707645107750651, 0.002892365745006815, -0.000242864453416682, -0.002979877569160189, +-0.004767235761853469, -0.005321805637618908, -0.004660487490214220, -0.003062866925046052, -0.000980649349095093, + 0.001080325423865147, 0.002676486805582815, 0.003515993126242027, 0.003504691193108974, 0.002743518309691092, + 0.001483599323867600, 0.000053915753894017, -0.001219318501019004, -0.002082876981631170, -0.002402252989524116, +-0.002175907515711935, -0.001518948630011706, -0.000623607913580581, 0.000291727467744814, 0.001032493743140772, + 0.001466078039230554, 0.001541598437149897, 0.001289527679116282, 0.000804118320944653, 0.000214927788687815, +-0.000344938705664714, -0.000766540799920385, -0.000983534965413392, -0.000978953969922609, -0.000780751290682747, +-0.000448959090901751, -0.000058614729046822, 0.000317269738067462, 0.000621157718914443, 0.000818750000130019, + 0.000900611877226272, 0.000878592697224500, 0.000778858561033731, 0.000633746562372497, 0.000474396686568771, + 0.000325476960438197, 0.000202565299657164, 0.000112071233638701, 0.000052842049763802, 0.000020553368071006, + 0.000001500540125945 +}; + + +/* + Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 400 Hz, stop 600 Hz + Used for datac0/datac1 + Generated using Octave: + + octave:170> h = fir1(99, 1000/8000); + octave:171> save_array_c_header(h,"filtP400S600","t.h") +*/ + +float filtP400S600[100]={ + 0.0002190442859529, + 0.0000253865765807, + -0.0001891607957119, + -0.0004060215259363, + -0.0006000085594001, + -0.0007388342366621, + -0.0007857143550906, + -0.0007055101203620, + -0.0004737796456378, + -0.0000870157214033, + 0.0004284822493668, + 0.0010119603553043, + 0.0015702670713406, + 0.0019880170510650, + 0.0021456291121880, + 0.0019431076070540, + 0.0013256670818267, + 0.0003060762051584, + -0.0010217279135397, + -0.0024824214174461, + -0.0038352454444032, + -0.0048061266813482, + -0.0051327431531073, + -0.0046162222656579, + -0.0031708262919099, + -0.0008619578234589, + 0.0020765315052916, + 0.0052523330844492, + 0.0081546351293169, + 0.0102217640867241, + 0.0109290873716773, + 0.0098852729183138, + 0.0069220529480671, + 0.0021618869962732, + -0.0039502956265373, + -0.0106608379232220, + -0.0169699130332444, + -0.0217388847493965, + -0.0238311162893102, + -0.0222687242579450, + -0.0163838891184744, + -0.0059424763426467, + 0.0087797880290842, + 0.0269827101964810, + 0.0473946488239843, + 0.0683898571372469, + 0.0881575538806286, + 0.1049023332507096, + 0.1170504418131305, + 0.1234349185246360, + 0.1234349185246360, + 0.1170504418131306, + 0.1049023332507097, + 0.0881575538806286, + 0.0683898571372469, + 0.0473946488239843, + 0.0269827101964810, + 0.0087797880290842, + -0.0059424763426467, + -0.0163838891184744, + -0.0222687242579450, + -0.0238311162893102, + -0.0217388847493965, + -0.0169699130332444, + -0.0106608379232220, + -0.0039502956265373, + 0.0021618869962732, + 0.0069220529480671, + 0.0098852729183138, + 0.0109290873716773, + 0.0102217640867241, + 0.0081546351293169, + 0.0052523330844492, + 0.0020765315052916, + -0.0008619578234589, + -0.0031708262919099, + -0.0046162222656579, + -0.0051327431531073, + -0.0048061266813482, + -0.0038352454444032, + -0.0024824214174461, + -0.0010217279135397, + 0.0003060762051584, + 0.0013256670818267, + 0.0019431076070540, + 0.0021456291121880, + 0.0019880170510650, + 0.0015702670713406, + 0.0010119603553043, + 0.0004284822493668, + -0.0000870157214033, + -0.0004737796456378, + -0.0007055101203620, + -0.0007857143550906, + -0.0007388342366621, + -0.0006000085594001, + -0.0004060215259363, + -0.0001891607957119, + 0.0000253865765807, + 0.0002190442859529 +}; + + +/* + Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 650 Hz, stop 900 Hz + Alternate filter for use with 700D and clipper. A little extra bandwidth helps + reduce PAPR. + + Generated using Octave: + octave:170> h = fir1(100, 1500/8000); + octave:171> save_array_c_header(h,"filtP650S900","t.h") +*/ + +float filtP650S900[100]={ + -0.0003447438107989, + -0.0000773443016821, + 0.0002396774493908, + 0.0005183973970710, + 0.0006638187313266, + 0.0005975981831705, + 0.0002897687607439, + -0.0002119524114060, + -0.0007715254253800, + -0.0011873172727259, + -0.0012521109061848, + -0.0008371281604995, + 0.0000296985029260, + 0.0011281958214742, + 0.0020819312900066, + 0.0024705948613571, + 0.0019912318935963, + 0.0006124281900638, + -0.0013451726955418, + -0.0032531555468084, + -0.0043549616066416, + -0.0040377485154437, + -0.0021065223027673, + 0.0010488136629895, + 0.0044817586852605, + 0.0069407381267179, + 0.0072892156498907, + 0.0049639277235708, + 0.0003023755700798, + -0.0054092967401810, + -0.0102368927453788, + -0.0121970459192933, + -0.0099848952803716, + -0.0035856433622624, + 0.0054724953549814, + 0.0143763043146873, + 0.0197915861224756, + 0.0189508548007168, + 0.0107444584473630, + -0.0035511748160051, + -0.0202026606441822, + -0.0337226677294633, + -0.0382279329229346, + -0.0291127865967771, + -0.0045659298430227, + 0.0335371151119154, + 0.0796831473314644, + 0.1257715935323888, + 0.1629350232213685, + 0.1836638608187552, + 0.1836638608187552, + 0.1629350232213685, + 0.1257715935323888, + 0.0796831473314644, + 0.0335371151119154, + -0.0045659298430227, + -0.0291127865967771, + -0.0382279329229346, + -0.0337226677294633, + -0.0202026606441822, + -0.0035511748160051, + 0.0107444584473630, + 0.0189508548007168, + 0.0197915861224756, + 0.0143763043146873, + 0.0054724953549814, + -0.0035856433622624, + -0.0099848952803716, + -0.0121970459192933, + -0.0102368927453788, + -0.0054092967401810, + 0.0003023755700798, + 0.0049639277235708, + 0.0072892156498907, + 0.0069407381267179, + 0.0044817586852605, + 0.0010488136629895, + -0.0021065223027673, + -0.0040377485154437, + -0.0043549616066416, + -0.0032531555468084, + -0.0013451726955418, + 0.0006124281900638, + 0.0019912318935963, + 0.0024705948613571, + 0.0020819312900066, + 0.0011281958214742, + 0.0000296985029260, + -0.0008371281604995, + -0.0012521109061848, + -0.0011873172727259, + -0.0007715254253800, + -0.0002119524114060, + 0.0002897687607439, + 0.0005975981831705, + 0.0006638187313266, + 0.0005183973970710, + 0.0002396774493908, + -0.0000773443016821, + -0.0003447438107989 +}; + +/* + Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 900 Hz, stop 1100 Hz + Initially used to build 700E BPF. + + Generated using Octave: + octave:170> h = fir1(100, 2000/8000); + octave:171> save_array_c_header(h,"filtP900S1100","t.h") +*/ + +float filtP900S1100[]={ + 0.0004418158615696, + 0.0001287637146300, + -0.0002887027062308, + -0.0005878482226797, + -0.0005730851022636, + -0.0001872428398401, + 0.0004164064769556, + 0.0009044243294414, + 0.0009214286447099, + 0.0003198823196113, + -0.0006735180958441, + -0.0014968764631324, + -0.0015397255009494, + -0.0005518542214485, + 0.0010799820573451, + 0.0024224384337026, + 0.0024915418423841, + 0.0009146857642078, + -0.0016601832557821, + -0.0037544126485350, + -0.0038606363852215, + -0.0014507340945908, + 0.0024489243815523, + 0.0055987186471211, + 0.0057705307663451, + 0.0022226683344412, + -0.0035036863386865, + -0.0081289422623303, + -0.0084269758191975, + -0.0033347717101330, + 0.0049319056855186, + 0.0116673991980949, + 0.0122195177108518, + 0.0049860194363942, + -0.0069600525064408, + -0.0169004061958973, + -0.0180041048574631, + -0.0076258897964686, + 0.0101458756070637, + 0.0255847362406635, + 0.0280993703146360, + 0.0125508957876736, + -0.0162678073198399, + -0.0438597596479416, + -0.0516282045539403, + -0.0256831488498926, + 0.0353080736910379, + 0.1173458947603512, + 0.1953111386765199, + 0.2427155307119274, + 0.2427155307119275, + 0.1953111386765199, + 0.1173458947603512, + 0.0353080736910379, + -0.0256831488498926, + -0.0516282045539403, + -0.0438597596479416, + -0.0162678073198399, + 0.0125508957876736, + 0.0280993703146360, + 0.0255847362406635, + 0.0101458756070637, + -0.0076258897964686, + -0.0180041048574631, + -0.0169004061958973, + -0.0069600525064408, + 0.0049860194363942, + 0.0122195177108518, + 0.0116673991980949, + 0.0049319056855186, + -0.0033347717101330, + -0.0084269758191975, + -0.0081289422623303, + -0.0035036863386865, + 0.0022226683344412, + 0.0057705307663451, + 0.0055987186471211, + 0.0024489243815523, + -0.0014507340945908, + -0.0038606363852214, + -0.0037544126485350, + -0.0016601832557821, + 0.0009146857642078, + 0.0024915418423841, + 0.0024224384337026, + 0.0010799820573451, + -0.0005518542214485, + -0.0015397255009494, + -0.0014968764631324, + -0.0006735180958441, + 0.0003198823196113, + 0.0009214286447099, + 0.0009044243294414, + 0.0004164064769556, + -0.0001872428398401, + -0.0005730851022636, + -0.0005878482226797, + -0.0002887027062308, + 0.0001287637146300, + 0.0004418158615696 +}; + +/* + Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 1100 Hz, stop 1300 Hz + Designed for 2020B. + + Generated using Octave: + octave:77> h = fir1(99, 2400/8000); f=500:1500; w=f*pi/4000; H=freqz(h,1,w); + octave:78> clf; plot(f,20*log10(abs(H))); grid; axis([500 1500 -60 10]) + octave:79> save_array_c_header(h,"filtP1100S1300","t.h") +*/ + +float filtP1100S1300[]={ + 0.0002976192596492, + 0.0005268501327879, + 0.0003323197705342, + -0.0001770640927819, + -0.0006221531076115, + -0.0006005231876771, + -0.0000195189229256, + 0.0007355731515642, + 0.0010099584762544, + 0.0004067132502827, + -0.0007585687884437, + -0.0015415736366462, + -0.0010864635373405, + 0.0005254729116986, + 0.0020855203587287, + 0.0021026629812395, + 0.0001529382567188, + -0.0024362700654142, + -0.0033992733694222, + -0.0014410368832294, + 0.0023100278520809, + 0.0047915084415380, + 0.0034240108979541, + -0.0013824387082528, + -0.0059564413269030, + -0.0060581288076594, + -0.0006611518028655, + 0.0064434052119832, + 0.0091346892160535, + 0.0040759939927406, + -0.0056953567245917, + -0.0122613043769937, + -0.0090272691278832, + 0.0030572766146697, + 0.0148523753937746, + 0.0156061208345573, + 0.0022854541227764, + -0.0160929898905979, + -0.0239498761167209, + -0.0116013322861975, + 0.0147513846300672, + 0.0346571639712145, + 0.0277787088019838, + -0.0082808984532188, + -0.0505010122605824, + -0.0613407201912362, + -0.0130972319259225, + 0.0900965824440442, + 0.2087764094817421, + 0.2877718571344791, + 0.2877718571344791, + 0.2087764094817421, + 0.0900965824440442, + -0.0130972319259225, + -0.0613407201912362, + -0.0505010122605824, + -0.0082808984532188, + 0.0277787088019838, + 0.0346571639712145, + 0.0147513846300672, + -0.0116013322861975, + -0.0239498761167209, + -0.0160929898905979, + 0.0022854541227764, + 0.0156061208345573, + 0.0148523753937746, + 0.0030572766146697, + -0.0090272691278832, + -0.0122613043769937, + -0.0056953567245917, + 0.0040759939927406, + 0.0091346892160535, + 0.0064434052119832, + -0.0006611518028655, + -0.0060581288076594, + -0.0059564413269030, + -0.0013824387082528, + 0.0034240108979541, + 0.0047915084415380, + 0.0023100278520809, + -0.0014410368832294, + -0.0033992733694222, + -0.0024362700654142, + 0.0001529382567188, + 0.0021026629812395, + 0.0020855203587287, + 0.0005254729116986, + -0.0010864635373405, + -0.0015415736366462, + -0.0007585687884437, + 0.0004067132502827, + 0.0010099584762544, + 0.0007355731515642, + -0.0000195189229256, + -0.0006005231876771, + -0.0006221531076115, + -0.0001770640927819, + 0.0003323197705342, + 0.0005268501327879, + 0.0002976192596492 +}; + +/* + Low pass prototype, sample rate 8000 Hz, 60dB dB atten. + + Used as an input BPF for datac4 and datac13 + + Generated using Octave: + octave:77> h = fir1(99, 400/8000); f=0:500; w=f*pi/4000; H=freqz(h,1,w); + octave:78> clf; plot(f,20*log10(abs(H))); grid; axis([0 500 -60 10]) + octave:79> save_array_c_header(h,"filtP200S400","t.h") +*/ + +float filtP200S400[]={ + 0.0004961403001099, + 0.0004878954300076, + 0.0004773254753068, + 0.0004613755012320, + 0.0004356367390736, + 0.0003945564225800, + 0.0003317489139155, + 0.0002403980632049, + 0.0001137356780462, + -0.0000544235817172, + -0.0002691144005802, + -0.0005336465184803, + -0.0008490522002088, + -0.0012135843244779, + -0.0016222933008125, + -0.0020667090843560, + -0.0025346513768318, + -0.0030101867721908, + -0.0034737462756490, + -0.0039024104893224, + -0.0042703630503403, + -0.0045495058923843, + -0.0047102228630850, + -0.0047222714599590, + -0.0045557762351127, + -0.0041822920363898, + -0.0035759009450005, + -0.0027143037436366, + -0.0015798651637566, + -0.0001605721201941, + 0.0015491343107337, + 0.0035476892962647, + 0.0058259285585604, + 0.0083668321698320, + 0.0111455063209044, + 0.0141294135724972, + 0.0172788535145399, + 0.0205476868890766, + 0.0238842874108655, + 0.0272326970839423, + 0.0305339530892875, + 0.0337275476120884, + 0.0367529765550393, + 0.0395513291682391, + 0.0420668683822783, + 0.0442485511620683, + 0.0460514395405405, + 0.0474379561100668, + 0.0483789425435863, + 0.0488544860205982, + 0.0488544860205982, + 0.0483789425435863, + 0.0474379561100668, + 0.0460514395405405, + 0.0442485511620683, + 0.0420668683822783, + 0.0395513291682391, + 0.0367529765550394, + 0.0337275476120884, + 0.0305339530892875, + 0.0272326970839423, + 0.0238842874108655, + 0.0205476868890766, + 0.0172788535145399, + 0.0141294135724972, + 0.0111455063209044, + 0.0083668321698320, + 0.0058259285585604, + 0.0035476892962647, + 0.0015491343107337, + -0.0001605721201941, + -0.0015798651637566, + -0.0027143037436366, + -0.0035759009450005, + -0.0041822920363898, + -0.0045557762351127, + -0.0047222714599590, + -0.0047102228630850, + -0.0045495058923843, + -0.0042703630503403, + -0.0039024104893224, + -0.0034737462756490, + -0.0030101867721908, + -0.0025346513768318, + -0.0020667090843560, + -0.0016222933008125, + -0.0012135843244779, + -0.0008490522002088, + -0.0005336465184803, + -0.0002691144005802, + -0.0000544235817172, + 0.0001137356780462, + 0.0002403980632049, + 0.0003317489139155, + 0.0003945564225800, + 0.0004356367390736, + 0.0004613755012320, + 0.0004773254753068, + 0.0004878954300076, + 0.0004961403001099 +}; + +// FIR filter suitable for changing rates 7500 to/from 8000 +// Sample 120000 Hz, pass 2700, stop 3730, ripple 0.1dB, atten 100 dB. Stop 0.03108. +float quiskFilt120t480[480] = { +-0.000005050567303837, -0.000000267011791999, 0.000000197734700398, 0.000001038946634000, + 0.000002322193058869, 0.000004115682735322, 0.000006499942123311, 0.000009551098482930, 0.000013350669444763, + 0.000017966192635412, 0.000023463361155584, 0.000029885221425020, 0.000037271082107518, 0.000045630720487935, + 0.000054970017069384, 0.000065233162392019, 0.000076360900545177, 0.000088271373315159, 0.000100818605854714, + 0.000113853476544409, 0.000127174196746337, 0.000140558396336177, 0.000153744508371709, 0.000166450784469067, + 0.000178368313347299, 0.000189176709991702, 0.000198541881389953, 0.000206128795372885, 0.000211604878787747, + 0.000214655997661182, 0.000214994859281552, 0.000212358734245594, 0.000206539880117977, 0.000197379393194548, + 0.000184780318878738, 0.000168719942655099, 0.000149250512353807, 0.000126511346757621, 0.000100726393185629, + 0.000072210925236429, 0.000041365841965015, 0.000008680571408025, -0.000025277165852799, -0.000059865389594949, +-0.000094384355854646, -0.000128080670195777, -0.000160170174848483, -0.000189854272533545, -0.000216333899003825, +-0.000238836419299503, -0.000256632149501508, -0.000269058714331757, -0.000275541485292432, -0.000275614059005332, +-0.000268937472718753, -0.000255317038867589, -0.000234717772155001, -0.000207273956099563, -0.000173297342436372, +-0.000133280012107173, -0.000087895370243821, -0.000037986085678081, 0.000015440388211825, 0.000071232572821451, + 0.000128114399130489, 0.000184710477990398, 0.000239577162514028, 0.000291234779803098, 0.000338204791740229, + 0.000379047713684221, 0.000412403761615261, 0.000437031818051652, 0.000451848709179591, 0.000455966225408344, + 0.000448726371643413, 0.000429729020814434, 0.000398857326863837, 0.000356297600912998, 0.000302547334727027, + 0.000238422248479072, 0.000165048886226905, 0.000083853091464077, -0.000003462782744354, -0.000094949813106744, +-0.000188451833293202, -0.000281651282503015, -0.000372121907291206, -0.000457387566635848, -0.000534985542936898, +-0.000602532044011899, -0.000657788245032425, -0.000698728981427767, -0.000723604675185869, -0.000731002305621048, +-0.000719899536922384, -0.000689709694056092, -0.000640319946685634, -0.000572115873292030, -0.000485996080304965, +-0.000383371840261246, -0.000266155252511831, -0.000136731311264191, 0.000002082667095075, 0.000147092077716480, + 0.000294790953130229, 0.000441441918072383, 0.000583164190168290, 0.000716029226064227, 0.000836164238172957, + 0.000939856052624227, 0.001023657909064450, 0.001084492755093968, 0.001119751426837743, 0.001127383039339373, + 0.001105974243787613, 0.001054815583369999, 0.000973950761085690, 0.000864209315714227, 0.000727219011746881, + 0.000565398080608305, 0.000381924396468366, 0.000180685902835315, -0.000033793183292569, -0.000256444114966522, +-0.000481764526566339, -0.000703946352348464, -0.000917016099829735, -0.001114986581270253, -0.001292014799874503, +-0.001442563411804926, -0.001561559957317790, -0.001644551048567398, -0.001687846581475964, -0.001688649703502788, +-0.001645167889846890, -0.001556702802350076, -0.001423714708648073, -0.001247857669697092, -0.001031986722557201, +-0.000780131048444402, -0.000497436825078657, -0.000190077210351809, 0.000134868279325909, 0.000469563533327739, + 0.000805591531546815, 0.001134152328775355, 0.001446279849797673, 0.001733071409562941, 0.001985924997799762, + 0.002196778054604388, 0.002358342626407065, 0.002464328098407475, 0.002509648218888532, 0.002490604086803692, + 0.002405037734357425, 0.002252452724297770, 0.002034094661603120, 0.001752990365583534, 0.001413941154886139, + 0.001023470495638453, 0.000589723521647734, 0.000122320866350319, -0.000367832138027160, -0.000868777013398284, +-0.001367771151677059, -0.001851587344265625, -0.002306838088978190, -0.002720317947026380, -0.003079353614002113, +-0.003372155891804708, -0.003588162376578369, -0.003718362558663737, -0.003755596511143005, -0.003694818131674599, +-0.003533315298404129, -0.003270878754553819, -0.002909914962857412, -0.002455496391464944, -0.001915346645364514, +-0.001299757227227888, -0.000621437066532776, 0.000104706515738248, 0.000861849931067767, 0.001631595707499856, + 0.002394368911341672, 0.003129858565588139, 0.003817496679992245, 0.004436963307209760, 0.004968707287606522, + 0.005394469536085115, 0.005697797543539088, 0.005864537618023589, 0.005883292537600076, 0.005745832319314692, + 0.005447447099071761, 0.004987231255534477, 0.004368289529377007, 0.003597859022418248, 0.002687338851256991, + 0.001652226293162047, 0.000511956075882180, -0.000710356149138656, -0.001988263330091648, -0.003292424566049982, +-0.004591123342747130, -0.005850857852106148, -0.007036991266043732, -0.008114450164977267, -0.009048456200082230, +-0.009805276478965942, -0.010352975302354198, -0.010662152577592631, -0.010706650669328861, -0.010464214075017983, +-0.009917087295446811, -0.009052534679222271, -0.007863270920348924, -0.006347789704693751, -0.004510582323649121, +-0.002362238055733795, 0.000080576968834213, 0.002795265196543707, 0.005753566158586979, 0.008921944932552510, + 0.012262093950265378, 0.015731539846483594, 0.019284344624007944, 0.022871886384520687, 0.026443706729191677, + 0.029948406200633094, 0.033334570666910354, 0.036551709955124537, 0.039551189200810140, 0.042287133974308874, + 0.044717290029466283, 0.046803820535016104, 0.048514022996355009, 0.049820951883635139, 0.050703932928426454, + 0.051148959210315710, 0.051148959210315710, 0.050703932928426454, 0.049820951883635139, 0.048514022996355009, + 0.046803820535016104, 0.044717290029466283, 0.042287133974308874, 0.039551189200810140, 0.036551709955124537, + 0.033334570666910354, 0.029948406200633094, 0.026443706729191677, 0.022871886384520687, 0.019284344624007944, + 0.015731539846483594, 0.012262093950265378, 0.008921944932552510, 0.005753566158586979, 0.002795265196543707, + 0.000080576968834213, -0.002362238055733795, -0.004510582323649121, -0.006347789704693751, -0.007863270920348924, +-0.009052534679222271, -0.009917087295446811, -0.010464214075017983, -0.010706650669328861, -0.010662152577592631, +-0.010352975302354198, -0.009805276478965942, -0.009048456200082230, -0.008114450164977267, -0.007036991266043732, +-0.005850857852106148, -0.004591123342747130, -0.003292424566049982, -0.001988263330091648, -0.000710356149138656, + 0.000511956075882180, 0.001652226293162047, 0.002687338851256991, 0.003597859022418248, 0.004368289529377007, + 0.004987231255534477, 0.005447447099071761, 0.005745832319314692, 0.005883292537600076, 0.005864537618023589, + 0.005697797543539088, 0.005394469536085115, 0.004968707287606522, 0.004436963307209760, 0.003817496679992245, + 0.003129858565588139, 0.002394368911341672, 0.001631595707499856, 0.000861849931067767, 0.000104706515738248, +-0.000621437066532776, -0.001299757227227888, -0.001915346645364514, -0.002455496391464944, -0.002909914962857412, +-0.003270878754553819, -0.003533315298404129, -0.003694818131674599, -0.003755596511143005, -0.003718362558663737, +-0.003588162376578369, -0.003372155891804708, -0.003079353614002113, -0.002720317947026380, -0.002306838088978190, +-0.001851587344265625, -0.001367771151677059, -0.000868777013398284, -0.000367832138027160, 0.000122320866350319, + 0.000589723521647734, 0.001023470495638453, 0.001413941154886139, 0.001752990365583534, 0.002034094661603120, + 0.002252452724297770, 0.002405037734357425, 0.002490604086803692, 0.002509648218888532, 0.002464328098407475, + 0.002358342626407065, 0.002196778054604388, 0.001985924997799762, 0.001733071409562941, 0.001446279849797673, + 0.001134152328775355, 0.000805591531546815, 0.000469563533327739, 0.000134868279325909, -0.000190077210351809, +-0.000497436825078657, -0.000780131048444402, -0.001031986722557201, -0.001247857669697092, -0.001423714708648073, +-0.001556702802350076, -0.001645167889846890, -0.001688649703502788, -0.001687846581475964, -0.001644551048567398, +-0.001561559957317790, -0.001442563411804926, -0.001292014799874503, -0.001114986581270253, -0.000917016099829735, +-0.000703946352348464, -0.000481764526566339, -0.000256444114966522, -0.000033793183292569, 0.000180685902835315, + 0.000381924396468366, 0.000565398080608305, 0.000727219011746881, 0.000864209315714227, 0.000973950761085690, + 0.001054815583369999, 0.001105974243787613, 0.001127383039339373, 0.001119751426837743, 0.001084492755093968, + 0.001023657909064450, 0.000939856052624227, 0.000836164238172957, 0.000716029226064227, 0.000583164190168290, + 0.000441441918072383, 0.000294790953130229, 0.000147092077716480, 0.000002082667095075, -0.000136731311264191, +-0.000266155252511831, -0.000383371840261246, -0.000485996080304965, -0.000572115873292030, -0.000640319946685634, +-0.000689709694056092, -0.000719899536922384, -0.000731002305621048, -0.000723604675185869, -0.000698728981427767, +-0.000657788245032425, -0.000602532044011899, -0.000534985542936898, -0.000457387566635848, -0.000372121907291206, +-0.000281651282503015, -0.000188451833293202, -0.000094949813106744, -0.000003462782744354, 0.000083853091464077, + 0.000165048886226905, 0.000238422248479072, 0.000302547334727027, 0.000356297600912998, 0.000398857326863837, + 0.000429729020814434, 0.000448726371643413, 0.000455966225408344, 0.000451848709179591, 0.000437031818051652, + 0.000412403761615261, 0.000379047713684221, 0.000338204791740229, 0.000291234779803098, 0.000239577162514028, + 0.000184710477990398, 0.000128114399130489, 0.000071232572821451, 0.000015440388211825, -0.000037986085678081, +-0.000087895370243821, -0.000133280012107173, -0.000173297342436372, -0.000207273956099563, -0.000234717772155001, +-0.000255317038867589, -0.000268937472718753, -0.000275614059005332, -0.000275541485292432, -0.000269058714331757, +-0.000256632149501508, -0.000238836419299503, -0.000216333899003825, -0.000189854272533545, -0.000160170174848483, +-0.000128080670195777, -0.000094384355854646, -0.000059865389594949, -0.000025277165852799, 0.000008680571408025, + 0.000041365841965015, 0.000072210925236429, 0.000100726393185629, 0.000126511346757621, 0.000149250512353807, + 0.000168719942655099, 0.000184780318878738, 0.000197379393194548, 0.000206539880117977, 0.000212358734245594, + 0.000214994859281552, 0.000214655997661182, 0.000211604878787747, 0.000206128795372885, 0.000198541881389953, + 0.000189176709991702, 0.000178368313347299, 0.000166450784469067, 0.000153744508371709, 0.000140558396336177, + 0.000127174196746337, 0.000113853476544409, 0.000100818605854714, 0.000088271373315159, 0.000076360900545177, + 0.000065233162392019, 0.000054970017069384, 0.000045630720487935, 0.000037271082107518, 0.000029885221425020, + 0.000023463361155584, 0.000017966192635412, 0.000013350669444763, 0.000009551098482930, 0.000006499942123311, + 0.000004115682735322, 0.000002322193058869, 0.000001038946634000, 0.000000197734700398, -0.000000267011791999, +-0.000005050567303837 }; + diff --git a/src/fm.c b/src/fm.c new file mode 100644 index 0000000..e1fbe37 --- /dev/null +++ b/src/fm.c @@ -0,0 +1,290 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fm.c + AUTHOR......: David Rowe + DATE CREATED: February 2015 + + Functions that implement analog FM modulation and demodulation, see + also octave/fm.m. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +#define FILT_MEM 200 + +/*---------------------------------------------------------------------------*\ + + INCLUDES + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include + +#include "codec2_fm.h" +#include "fm_fir_coeff.h" +#include "comp_prim.h" + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fm_create + AUTHOR......: David Rowe + DATE CREATED: 24 Feb 2015 + + Create and initialise an instance of the "modem". Returns a pointer + to the modem states or NULL on failure. One set of states is + sufficient for a full duplex modem. + +\*---------------------------------------------------------------------------*/ + +struct FM *fm_create(int nsam) +{ + struct FM *fm; + + fm = (struct FM*)malloc(sizeof(struct FM)); + if (fm == NULL) + return NULL; + fm->rx_bb = (COMP*)malloc(sizeof(COMP)*(FILT_MEM+nsam)); + assert(fm->rx_bb != NULL); + + fm->rx_bb_filt_prev.real = 0.0; + fm->rx_bb_filt_prev.imag = 0.0; + fm->lo_phase.real = 1.0; + fm->lo_phase.imag = 0.0; + + fm->tx_phase = 0; + + fm->rx_dem_mem = (float*)malloc(sizeof(float)*(FILT_MEM+nsam)); + assert(fm->rx_dem_mem != NULL); + + fm->nsam = nsam; + + return fm; +} + + +void fm_destroy(struct FM *fm_states) +{ + free(fm_states->rx_bb); + free(fm_states->rx_dem_mem); + free(fm_states); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fm_demod + AUTHOR......: David Rowe + DATE CREATED: 24 Feb 2015 + + Demodulate a FM signal to baseband audio. + +\*---------------------------------------------------------------------------*/ + +void fm_demod(struct FM *fm_states, float rx_out[], float rx[]) +{ + float Fs = fm_states->Fs; + float fc = fm_states->fc; + float wc = 2*M_PI*fc/Fs; + float fd = fm_states->fd; + float wd = 2*M_PI*fd/Fs; + COMP *rx_bb = fm_states->rx_bb + FILT_MEM; + COMP wc_rect, rx_bb_filt, rx_bb_diff; + float rx_dem; + /* + float acc; + */ + float *rx_dem_mem = fm_states->rx_dem_mem + FILT_MEM; + int nsam = fm_states->nsam; + float mag; + int i,k; + + wc_rect.real = cosf(wc); wc_rect.imag = -sinf(wc); + + for(i=0; ilo_phase = cmult(fm_states->lo_phase, wc_rect); + rx_bb[i] = fcmult(rx[i], fm_states->lo_phase); + + /* input FIR filter */ + + rx_bb_filt.real = 0.0; rx_bb_filt.imag = 0.0; + + for(k=0; klo_phase.real, fm_states->lo_phase.imag); + //printf("%f %f %f\n", rx[i], rx_bb[i].real, rx_bb[i].imag); + //printf("%f %f\n", rx_bb_filt.real, rx_bb_filt.imag); + /* + Differentiate first, in rect domain, then find angle, this + puts signal on the positive side of the real axis and helps + atan2() behaive. + */ + + rx_bb_diff = cmult(rx_bb_filt, cconj(fm_states->rx_bb_filt_prev)); + fm_states->rx_bb_filt_prev = rx_bb_filt; + + rx_dem = atan2f(rx_bb_diff.imag, rx_bb_diff.real); + + /* limit maximum phase jumps, to remove static type noise at low SNRs */ + + if (rx_dem > wd) + rx_dem = wd; + if (rx_dem < -wd) + rx_dem = -wd; + + rx_dem *= (1/wd); + //printf("%f %f\n", rx_bb_diff.real, rx_bb_diff.imag); + rx_dem_mem[i] = rx_dem; + /* + acc = 0; + for(k=0; klo_phase); + fm_states->lo_phase.real /= mag; + fm_states->lo_phase.imag /= mag; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fm_mod + AUTHOR......: Brady O'Brien + DATE CREATED: Sept. 10 2015 + + Modulate an FM signal from a baseband modulating signal + + struct FM *fm - FM state structure. Can be reused from fm_demod. + float tx_in[] - nsam baseband samples to be modulated + float tx_out[] - nsam samples in which to place the modulated FM + +\*---------------------------------------------------------------------------*/ + +void fm_mod(struct FM *fm_states, float tx_in[], float tx_out[]) { + float Fs = fm_states->Fs; //Sampling freq + float fc = fm_states->fc; //Center freq + float wc = 2*M_PI*fc/Fs; //Center freq in rads/samp + float fd = fm_states->fd; //Max deviation in cycles/samp + float wd = 2*M_PI*fd/Fs; //Max deviation in rads/samp + int nsam = fm_states->nsam; //Samples per batch of modulation + float tx_phase = fm_states->tx_phase; //Transmit phase in rads + float w; //Temp variable for phase of VFO during loop + int i; + + //Go through the samples, spin the oscillator, and generate some FM + for(i=0; i 2*M_PI) + tx_phase -= 2*M_PI; + tx_out[i] = cosf(tx_phase); + } + //Save phase back into state struct + fm_states->tx_phase = tx_phase; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fm_mod + AUTHOR......: Brady O'Brien + DATE CREATED: Sept. 10 2015 + + Modulate an FM signal from a baseband modulating signal. Output signal is + in complex domain + + struct FM *fm - FM state structure. Can be reused from fm_demod. + float tx_in[] - nsam baseband samples to be modulated + COMP tx_out[] - nsam samples in which to place the modulated FM + +\*---------------------------------------------------------------------------*/ + +void fm_mod_comp(struct FM *fm_states, float tx_in[], COMP tx_out[]){ + float Fs = fm_states->Fs; //Sampling freq + float fc = fm_states->fc; //Center freq + float wc = 2*M_PI*fc/Fs; //Center freq in rads/samp + float fd = fm_states->fd; //Max deviation in cycles/samp + float wd = 2*M_PI*fd/Fs; //Max deviation in rads/samp + int nsam = fm_states->nsam; //Samples per batch of modulation + float tx_phase = fm_states->tx_phase; //Transmit phase in rads + float w; //Temp variable for phase of VFO during loop + int i; + + //Go through the samples, spin the oscillator, and generate some FM + for(i=0; i 2*M_PI) + tx_phase -= 2*M_PI; + + tx_out[i].real = cosf(tx_phase); + tx_out[i].imag = sinf(tx_phase); + } + //Save phase back into state struct + fm_states->tx_phase = tx_phase; +} + diff --git a/src/fm_demod.c b/src/fm_demod.c new file mode 100644 index 0000000..bf667d1 --- /dev/null +++ b/src/fm_demod.c @@ -0,0 +1,115 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fm_demod.c + AUTHOR......: David Rowe + DATE CREATED: Feb 24 2015 + + Given an input raw file (44.4 kHz, 16 bit shorts) with a FM signal centered + 11.1 kHz, outputs a file of demodulated audio samples. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_fm.h" +#include "octave.h" + +#define N 160 + +#define TEST_MOD_COMP + +int main(int argc, char *argv[]) +{ + FILE *fin, *fout; + struct FM *fm; + short buf[N*2]; + float rx[N]; +#if defined(TEST_MODE) && !defined(TEST_MODE_COMP) + float rx_out[N]; +#endif + COMP out_comp[N]; + int i; + + if (argc < 2) { + printf("usage: %s InputFMRawFile OutputSpeechRawFile\n", argv[0]); + printf("e.g %s fm.raw fm_demodulated.raw\n", argv[0]); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + fm = fm_create(N); + fm->Fs = 48000.0; + fm->fm_max = 3000.0; + fm->fd = 5000.0; + fm->fc = 0; + + while(fread(buf, sizeof(short), N, fin) == N) { + for(i=0; i. +*/ + +#include +#include +#include +#include +#include +#include + + +#include "fmfsk.h" +#include "modem_probe.h" +#include "comp_prim.h" + +#define STD_PROC_BITS 96 + +/* + * Create a new fmfsk modem instance. + * + * int Fs - sample rate + * int Rb - non-manchester bitrate + * returns - new struct FMFSK on success, NULL on failure + */ +struct FMFSK * fmfsk_create(int Fs,int Rb){ + assert( Fs % (Rb*2) == 0 ); /* Sample freq must be divisible by symbol rate */ + + int nbits = STD_PROC_BITS; + + /* Allocate the struct */ + struct FMFSK *fmfsk = malloc(sizeof(struct FMFSK)); + if(fmfsk==NULL) return NULL; + + /* Set up static parameters */ + fmfsk->Rb = Rb; + fmfsk->Rs = Rb*2; + fmfsk->Fs = Fs; + fmfsk->Ts = Fs/fmfsk->Rs; + fmfsk->N = nbits*2*fmfsk->Ts; + fmfsk->nmem = fmfsk->N+(fmfsk->Ts*4); + fmfsk->nsym = nbits*2; + fmfsk->nbit = nbits; + + /* Set up demod state */ + fmfsk->lodd = 0; + fmfsk->nin = fmfsk->N; + fmfsk->snr_mean = 0; + + float *oldsamps = malloc(sizeof(float)*fmfsk->nmem); + if(oldsamps == NULL){ + free(fmfsk); + return NULL; + } + for(int i=0; inmem; i++) oldsamps[i] = 0.0; + fmfsk->oldsamps = oldsamps; + + fmfsk->stats = (struct MODEM_STATS*)malloc(sizeof(struct MODEM_STATS)); + if (fmfsk->stats == NULL) { + free(oldsamps); + free(fmfsk); + return NULL; + } + + return fmfsk; +} + +/* + * Destroys an fmfsk modem and deallocates memory + */ +void fmfsk_destroy(struct FMFSK *fmfsk){ + free(fmfsk->oldsamps); + free(fmfsk); +} + +/* + * Returns the number of samples that must be fed to fmfsk_demod the next + * cycle + */ +uint32_t fmfsk_nin(struct FMFSK *fmfsk){ + return (uint32_t)fmfsk->nin; +} + +void fmfsk_get_demod_stats(struct FMFSK *fmfsk,struct MODEM_STATS *stats){ + /* copy from internal stats, note we can't overwrite stats completely + as it has other states rqd by caller, also we want a consistent + interface across modem types for the freedv_api. + */ + + stats->clock_offset = fmfsk->stats->clock_offset; + stats->snr_est = fmfsk->stats->snr_est; // TODO: make this SNR not Eb/No + stats->rx_timing = fmfsk->stats->rx_timing; + stats->foff = fmfsk->stats->foff; + +#ifndef __EMBEDDED__ + stats->neyesamp = fmfsk->stats->neyesamp; + stats->neyetr = fmfsk->stats->neyetr; + memcpy(stats->rx_eye, fmfsk->stats->rx_eye, sizeof(stats->rx_eye)); +#endif // !__EMBEDDED__ + + /* these fields not used for FSK so set to something sensible */ + + stats->sync = 0; + stats->nr = fmfsk->stats->nr; + stats->Nc = fmfsk->stats->Nc; +} + +/* + * Modulates nbit bits into N samples to be sent through an FM radio + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * float mod_out[] - Buffer for N samples of modulated FMFSK + * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits + */ + +void fmfsk_mod(struct FMFSK *fmfsk, float fmfsk_out[],uint8_t bits_in[]){ + int i,j; + int nbit = fmfsk->nbit; + int Ts = fmfsk->Ts; + + for(i=0; iTs; + int Fs = fmfsk->Fs; + int Rs = fmfsk->Rs; + int nin = fmfsk->nin; + int N = fmfsk->N; + int nsym = fmfsk->nsym; + int nbit = fmfsk->nbit; + int nmem = fmfsk->nmem; + float *oldsamps = fmfsk->oldsamps; + int nold = nmem-nin; + COMP phi_ft,dphi_ft; /* Phase and delta-phase for fine timing estimator */ + float t; + COMP x; /* Magic fine timing angle */ + float norm_rx_timing,old_norm_rx_timing,d_norm_rx_timing,appm; + int rx_timing,sample_offset; + int next_nin; + float apeven,apodd; /* Approx. prob of even or odd stream being correct */ + float currv,mdiff,lastv; + int neyesamp; + int neyeoffset; + float eye_max; + uint8_t mbit; + float var_signal = 0, var_noise = 0, lastFabsV; + + /* Shift in nin samples */ + memmove(&oldsamps[0] , &oldsamps[nmem-nold], sizeof(float)*nold); + memcpy (&oldsamps[nold], &fmfsk_in[0] , sizeof(float)*nin ); + + /* Allocate memory for filtering */ + float *rx_filt = malloc(sizeof(float)*(nsym+1)*Ts); + + /* Integrate over Ts input symbols at every offset */ + for(i=0; i<(nsym+1)*Ts; i++){ + t=0; + /* Integrate over some samples */ + for(j=i;jnorm_rx_timing; + fmfsk->norm_rx_timing = norm_rx_timing; + + /* Estimate sample clock offset */ + d_norm_rx_timing = norm_rx_timing - old_norm_rx_timing; + + /* Filter out big jumps in due to nin change */ + if(fabsf(d_norm_rx_timing) < .2){ + appm = 1e6*d_norm_rx_timing/(float)nsym; + fmfsk->ppm = .9*fmfsk->ppm + .1*appm; + } + + /* Figure out how far offset the sample points are */ + sample_offset = (Ts/2)+Ts+rx_timing-1; + + /* Request fewer or greater samples next time, if fine timing is far + * enough off. This also makes it possible to tolerate clock offsets */ + next_nin = N; + if(norm_rx_timing > -.2) + next_nin += Ts/2; + if(norm_rx_timing < -.65) + next_nin -= Ts/2; + fmfsk->nin = next_nin; + + /* Make first diff of this round the last sample of the last round, + * for the odd stream */ + lastv = fmfsk->lodd; + lastFabsV = fabs(lastv); + apeven = 0; + apodd = 0; + for(i=0; i0 ? 1 : 0; + lastv = currv; + + // Calculate the signal variance. Note that the mean is zero + var_signal += currv * currv; + + /* Calculate the variance of the noise between samples (symbols). A quick variance estimate + * without calculating mean can be done by differentiating (remove mean) and then + * dividing by 2. Fabs the samples as we are looking at how close the samples are to each + * other as if they were all the same polarity/symbol. */ + currv = fabs(currv); + var_noise += (currv - lastFabsV) * (currv - lastFabsV); + lastFabsV = currv; + + mdiff = mdiff>0 ? mdiff : 0-mdiff; + + /* Put bit in it's stream */ + if((i%2)==1){ + apeven += mdiff; + /* Even stream goes in LSB */ + rx_bits[i>>1] |= mbit ? 0x1 : 0x0; + }else{ + apodd += mdiff; + /* Odd in second-to-LSB */ + rx_bits[i>>1] = mbit ? 0x2 : 0x0; + } + } + + /* Div by 2 to correct variance when doing via differentiation.*/ + var_noise *= 0.5; + + if(apeven>apodd){ + /* Zero out odd bits from output bitstream */ + for(i=0;i>1; + } + + /* Save last sample of int stream for next demod round */ + fmfsk->lodd = lastv; + + /* Save demod statistics */ + fmfsk->stats->Nc = 0; + fmfsk->stats->nr = 0; + + /* Clock offset and RX timing are all we know here */ + fmfsk->stats->clock_offset = fmfsk->ppm; + fmfsk->stats->rx_timing = (float)rx_timing; + + /* Zero out all of the other things */ + fmfsk->stats->foff = 0; + + /* Use moving average to smooth SNR */ + var_signal += 1E-6/3.1; var_noise += 1E-6; /* prevent NAN and bias towards -5dB SNR for zero signal inputs */ + if(fmfsk->snr_mean < 0.1) + fmfsk->snr_mean = (10.0 * log10f(var_signal / var_noise)); + else + fmfsk->snr_mean = 0.9 * fmfsk->snr_mean + 0.1 * (10.0 * log10f(var_signal / var_noise)); + fmfsk->stats->snr_est = fmfsk->snr_mean; + +#ifndef __EMBEDDED__ + /* Collect an eye diagram */ + /* Take a sample for the eye diagrams */ + neyesamp = fmfsk->stats->neyesamp = Ts*4; + neyeoffset = sample_offset+(Ts*2*28); + + fmfsk->stats->neyetr = 8; + for(k=0; kstats->neyetr; k++) + for(j=0; jstats->rx_eye[k][j] = rx_filt[k*neyesamp+neyeoffset+j]; + //fmfsk->stats->rx_eye[k][j] = fmfsk_in[k*neyesamp+neyeoffset+j]; + eye_max = 0; + + /* Normalize eye to +/- 1 */ + for(i=0; istats->neyetr; i++) + for(j=0; jstats->rx_eye[i][j])>eye_max) + eye_max = fabsf(fmfsk->stats->rx_eye[i][j]); + + for(i=0; istats->neyetr; i++) + for(j=0; jstats->rx_eye[i][j] = (fmfsk->stats->rx_eye[i][j]/(2*eye_max))+.5; +#endif // !__EMBEDDED__ + + modem_probe_samp_f("t_norm_rx_timing",&norm_rx_timing,1); + modem_probe_samp_f("t_rx_filt",rx_filt,(nsym+1)*Ts); + + free(rx_filt); +} diff --git a/src/fmfsk.h b/src/fmfsk.h new file mode 100644 index 0000000..4fe3d20 --- /dev/null +++ b/src/fmfsk.h @@ -0,0 +1,111 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fmfsk.h + AUTHOR......: Brady O'Brien + DATE CREATED: 6 February 2016 + + C Implementation of 2FSK+Manchester over FM modulator/demodulator, based + on mancyfsk.m and fmfsk.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __C2FMFSK_H +#define __C2FMFSK_H + +#include +#include "comp.h" +#include "modem_stats.h" + +#define FMFSK_SCALE 16383 + +/* + * fm-me-2fsk state + */ +struct FMFSK{ + /* Static fmfsk parameters */ + int Rb; /* Manchester-encoded bitrate */ + int Rs; /* Raw modem symbol rate */ + int Fs; /* Sample rate */ + int Ts; /* Samples-per-symbol */ + int N; /* Sample processing buffer size */ + int nsym; /* Number of raw modem symbols processed per demod call */ + int nbit; /* Number of bits spit out per demod call */ + int nmem; /* Number of samples kept around between demod calls */ + + /* State kept by demod */ + int nin; /* Number of samples to be demod-ed the next cycle */ + int lodd; /* Last integrated sample for odd bitstream generation */ + float * oldsamps; /* Memory of old samples to make clock-offset-tolerance possible */ + + /* Stats generated by demod */ + float norm_rx_timing; /* RX Timing, used to calculate clock offset */ + int ppm; /* Clock offset in parts-per-million */ + float snr_mean; + + /* Modem stat structure */ + struct MODEM_STATS * stats; +}; + +/* + * Create a new fmfsk modem instance. + * + * int Fs - sample rate + * int Rb - non-manchester bitrate + * returns - new struct FMFSK on success, NULL on failure + */ +struct FMFSK * fmfsk_create(int Fs,int Rb); + +/* + * Destroys an fmfsk modem and deallocates memory + */ +void fmfsk_destroy(struct FMFSK *fmfsk); + +/* + * Deposit demod statistics into a MODEM_STATS struct + */ +void fmfsk_get_demod_stats(struct FMFSK *fmfsk,struct MODEM_STATS *stats); + +/* + * Returns the number of samples that must be fed to fmfsk_demod the next + * cycle + */ +uint32_t fmfsk_nin(struct FMFSK *fmfsk); + +/* + * Modulates nbit bits into N samples to be sent through an FM radio + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * float mod_out[] - Buffer for N samples of modulated FMFSK + * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits + */ +void fmfsk_mod(struct FMFSK *fmfsk, float fmfsk_out[],uint8_t bits_in[]); + + +/* + * Demodulate some number of FMFSK samples. The number of samples to be + * demodulated can be found by calling fmfsk_nin(). + * + * struct FMFSK *fsk - FMFSK config/state struct, set up by fsk_create + * uint8_t rx_bits[] - Buffer for nbit unpacked bits to be written + * float fsk_in[] - nin samples of modualted FMFSK from an FM radio + */ +void fmfsk_demod(struct FMFSK *fmfsk, uint8_t rx_bits[],float fmfsk_in[]); + +#endif diff --git a/src/fmfsk_demod.c b/src/fmfsk_demod.c new file mode 100644 index 0000000..5b12fc1 --- /dev/null +++ b/src/fmfsk_demod.c @@ -0,0 +1,150 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk_demod.c + AUTHOR......: Brady O'Brien + DATE CREATED: 8 January 2016 + + C test driver for fsk_demod in fsk.c. Reads in a stream of 32 bit cpu endian + floats and writes out the detected bits + + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include "fmfsk.h" +#include "modem_stats.h" +#define MODEMPROBE_ENABLE +#include "modem_probe.h" +#include "codec2_fdmdv.h" + +int main(int argc,char *argv[]){ + struct FMFSK *fmfsk; + int Fs,Rb; + struct MODEM_STATS stats; + float loop_time; + int enable_stats = 0; + int stats_ctr = 0; + int stats_loop = 0; + FILE *fin,*fout; + uint8_t *bitbuf; + int16_t *rawbuf; + float *modbuf; + int i,j,t; + + if(argc<4){ + fprintf(stderr,"usage: %s SampleFreq BitRate InputModemRawFile OutputOneBitPerCharFile [S]\n",argv[0]); + exit(1); + } + + /* Extract parameters */ + Fs = atoi(argv[1]); + Rb = atoi(argv[2]); + + /* Open files */ + if(strcmp(argv[3],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[3],"r"); + } + + if(strcmp(argv[4],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[4],"w"); + } + + /* set up FSK */ + fmfsk = fmfsk_create(Fs,Rb); + + if(argc>5){ + if(strcmp(argv[5],"S")==0){ + enable_stats = 1; + loop_time = ((float)fmfsk_nin(fmfsk))/((float)Fs); + stats_loop = (int)(.125/loop_time); + stats_ctr = 0; + } + } + + if(fin==NULL || fout==NULL || fmfsk==NULL){ + fprintf(stderr,"Couldn't open test vector files\n"); + exit(1); + } + + /* allocate buffers for processing */ + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fmfsk->nbit); + rawbuf = (int16_t*)malloc(sizeof(int16_t)*(fmfsk->N+fmfsk->Ts*2)); + modbuf = (float*)malloc(sizeof(float)*(fmfsk->N+fmfsk->Ts*2)); + + /* Demodulate! */ + while( fread(rawbuf,sizeof(int16_t),fmfsk_nin(fmfsk),fin) == fmfsk_nin(fmfsk) ){ + for(i=0;inbit;i++){ + t = (int)bitbuf[i]; + modem_probe_samp_i("t_d_bitout",&t,1); + } + + fwrite(bitbuf,sizeof(uint8_t),fmfsk->nbit,fout); + + if(enable_stats && stats_ctr <= 0){ + fmfsk_get_demod_stats(fmfsk,&stats); + fprintf(stderr,"{\"EbNodB\": %2.2f,\t\"ppm\": %d,",stats.snr_est,(int)stats.clock_offset); + fprintf(stderr,"\t\"f1_est\":%.1f,\t\"f2_est\":%.1f",0.0,0.0); + fprintf(stderr,",\t\"eye_diagram\":["); + for(i=0;i. +*/ + +#include +#include +#include +#include "fmfsk.h" +#include "codec2_fdmdv.h" + +int main(int argc,char *argv[]){ + struct FMFSK *fmfsk; + int Fs,Rb; + int i; + FILE *fin,*fout; + uint8_t *bitbuf; + int16_t *rawbuf; + float *modbuf; + + if(argc<4){ + fprintf(stderr,"usage: %s SampleFreq BitRate InputOneBitPerCharFile OutputModRawFile\n",argv[0]); + exit(1); + } + + /* Extract parameters */ + Fs = atoi(argv[1]); + Rb = atoi(argv[2]); + + if(strcmp(argv[3],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[3],"r"); + } + + if(strcmp(argv[4],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[4],"w"); + } + + + /* set up FMFSK */ + fmfsk = fmfsk_create(Fs,Rb); + + if(fin==NULL || fout==NULL || fmfsk==NULL){ + fprintf(stderr,"Couldn't open test vector files\n"); + exit(1); + } + + /* allocate buffers for processing */ + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fmfsk->nbit); + rawbuf = (int16_t*)malloc(sizeof(int16_t)*fmfsk->N); + modbuf = (float*)malloc(sizeof(float)*fmfsk->N); + + /* Modulate! */ + while( fread(bitbuf,sizeof(uint8_t),fmfsk->nbit,fin) == fmfsk->nbit ){ + fmfsk_mod(fmfsk,modbuf,bitbuf); + for(i=0; iN; i++){ + rawbuf[i] = (int16_t)(modbuf[i]*(float)FDMDV_SCALE); + } + fwrite(rawbuf,sizeof(int16_t),fmfsk->N,fout); + + if(fout == stdin){ + fflush(fout); + } + } + + free(modbuf); + free(rawbuf); + free(bitbuf); + + fmfsk_destroy(fmfsk); + + fclose(fin); + fclose(fout); + + exit(0); +} diff --git a/src/framer.c b/src/framer.c new file mode 100644 index 0000000..6b2b938 --- /dev/null +++ b/src/framer.c @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: framer.c + AUTHOR......: David Rowe + DATE CREATED: July 2020 + + Command line framer, inserts a Unique word into a sequence of + oneBitPerchar bits. + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include "fsk.h" + +unsigned int toInt(char c) +{ + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'A' && c <= 'F') return 10 + c - 'A'; + if (c >= 'a' && c <= 'f') return 10 + c - 'a'; + return -1; +} + +int main(int argc,char *argv[]){ + FILE *fin, *fout; + + if (argc != 5) { + fprintf(stderr,"usage: %s InputBitsOnePerByte OutputBitsOnePerByte frameSizeBits HexUW\n",argv[0]); + exit(1); + } + + if (strcmp(argv[1],"-") == 0) { + fin = stdin; + } else { + if ((fin = fopen(argv[1],"rb")) == NULL) { + fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); + exit(1); + } + } + + if (strcmp(argv[2],"-") == 0) { + fout = stdout; + } else { + if ((fout = fopen(argv[2],"wb")) == NULL) { + fprintf(stderr,"Couldn't open output file: %s\n", argv[2]); + exit(1); + } + } + + /* extract UW array */ + + size_t framesize = atoi(argv[3]); + char *uw_hex = argv[4]; + uint8_t uw[4*strlen(uw_hex)]; + int uwsize = 0; + for(int c=0; c> (3-i)) & 0x1; /* MSB first */ + assert(uwsize == 4*strlen(uw_hex)); + + fprintf(stderr, "uw_hex: %s uwsize: %d\n", uw_hex, uwsize); + for(int i=0; i +#include +#include +#include +#include +#include +#include + +#include "codec2_fdmdv.h" +#include "golay23.h" +#include "codec2.h" +#include "varicode.h" +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "comp_prim.h" +#include "debug_alloc.h" +#include "fdmdv_internal.h" + +void freedv_1600_open(struct freedv *f) { + f->snr_squelch_thresh = 2.0; + f->squelch_en = true; + f->tx_sync_bit = 0; + int Nc = 16; + f->fdmdv = fdmdv_create(Nc); + assert(f->fdmdv != NULL); + golay23_init(); + f->nin = f->nin_prev = FDMDV_NOM_SAMPLES_PER_FRAME; + f->n_nom_modem_samples = 2*FDMDV_NOM_SAMPLES_PER_FRAME; + f->n_nat_modem_samples = f->n_nom_modem_samples; + f->n_max_modem_samples = FDMDV_NOM_SAMPLES_PER_FRAME+FDMDV_MAX_SAMPLES_PER_FRAME; + f->modem_sample_rate = FREEDV_FS_8000; + int nbit = fdmdv_bits_per_frame(f->fdmdv); + f->fdmdv_bits = (int*)MALLOC(nbit*sizeof(int)); + assert(f->fdmdv_bits != NULL); + nbit = 2*fdmdv_bits_per_frame(f->fdmdv); + f->fdmdv_tx_bits = (int*)CALLOC(1, nbit*sizeof(int)); + f->fdmdv_rx_bits = (int*)CALLOC(1, nbit*sizeof(int)); + assert(f->fdmdv_tx_bits != NULL); assert(f->fdmdv_rx_bits != NULL); + f->evenframe = 0; + f->sz_error_pattern = fdmdv_error_pattern_size(f->fdmdv); + + f->speech_sample_rate = FREEDV_FS_8000; + f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); + f->n_speech_samples = codec2_samples_per_frame(f->codec2); + + f->bits_per_modem_frame = fdmdv_bits_per_frame(f->fdmdv); + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->n_codec_frames = 1; + f->tx_payload_bits = MALLOC(f->bits_per_codec_frame); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = MALLOC(f->bits_per_codec_frame); assert(f->rx_payload_bits != NULL); +} + + +void freedv_comptx_fdmdv_1600(struct freedv *f, COMP mod_out[]) { + int i, j; + int data, codeword1, data_flag_index; + COMP tx_fdm[f->n_nat_modem_samples]; + + // spare bit in frame that codec defines. Use this 1 + // bit/frame to send txt messages + + data_flag_index = codec2_get_spare_bit_index(f->codec2); + + if (f->nvaricode_bits) { + f->tx_payload_bits[data_flag_index] = f->tx_varicode_bits[f->varicode_bit_index++]; + f->nvaricode_bits--; + } + + if (f->nvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + if (f->freedv_get_next_tx_char != NULL) { + s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); + f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); + f->varicode_bit_index = 0; + } + } + + /* Protect first 12 out of first 16 excitation bits with (23,12) Golay Code: + + 0,1,2,3: v[0]..v[3] + 4,5,6,7: MSB of pitch + 11,12,13,14: MSB of energy + + */ + + data = 0; + for(i=0; i<8; i++) { + data <<= 1; + data |= f->tx_payload_bits[i]; + } + for(i=11; i<15; i++) { + data <<= 1; + data |= f->tx_payload_bits[i]; + } + codeword1 = golay23_encode(data); + + /* now pack output frame with parity bits at end to make them + as far apart as possible from the data they protect. Parity + bits are LSB of the Golay codeword */ + + for(i=0; ibits_per_codec_frame; i++) + f->fdmdv_tx_bits[i] = f->tx_payload_bits[i]; + for(j=0; ibits_per_codec_frame+11; i++,j++) { + f->fdmdv_tx_bits[i] = (codeword1 >> (10-j)) & 0x1; + } + f->fdmdv_tx_bits[i] = 0; /* spare bit */ + + /* optionally overwrite with test frames */ + + if (f->test_frames) { + fdmdv_get_test_bits(f->fdmdv, f->fdmdv_tx_bits); + fdmdv_get_test_bits(f->fdmdv, &f->fdmdv_tx_bits[f->bits_per_modem_frame]); + } + + /* modulate even and odd frames */ + + fdmdv_mod(f->fdmdv, tx_fdm, f->fdmdv_tx_bits, &f->tx_sync_bit); + assert(f->tx_sync_bit == 1); + + fdmdv_mod(f->fdmdv, &tx_fdm[FDMDV_NOM_SAMPLES_PER_FRAME], &f->fdmdv_tx_bits[f->bits_per_modem_frame], &f->tx_sync_bit); + assert(f->tx_sync_bit == 0); + + assert(2*FDMDV_NOM_SAMPLES_PER_FRAME == f->n_nom_modem_samples); + + for(i=0; in_nom_modem_samples; i++) + mod_out[i] = fcmult(FDMDV_SCALE, tx_fdm[i]); +} + + +int freedv_comprx_fdmdv_1600(struct freedv *f, COMP demod_in[]) { + int bits_per_fdmdv_frame; + int i, j; + int recd_codeword, codeword1, data_flag_index, n_ascii; + short abit[1]; + char ascii_out; + int reliable_sync_bit; + int rx_status = 0; + + COMP ademod_in[f->nin]; + for(i=0; inin; i++) + ademod_in[i] = fcmult(1.0/FDMDV_SCALE, demod_in[i]); + + bits_per_fdmdv_frame = fdmdv_bits_per_frame(f->fdmdv); + + fdmdv_demod(f->fdmdv, f->fdmdv_bits, &reliable_sync_bit, ademod_in, &f->nin); + fdmdv_get_demod_stats(f->fdmdv, &f->stats); + f->sync = f->fdmdv->sync; + f->snr_est = f->stats.snr_est; + + if (reliable_sync_bit == 1) { + f->evenframe = 1; + } + + if (f->sync) { + rx_status = FREEDV_RX_SYNC; + + if (f->evenframe == 0) { + memcpy(f->fdmdv_rx_bits, f->fdmdv_bits, bits_per_fdmdv_frame*sizeof(int)); + } + else { + memcpy(&f->fdmdv_rx_bits[bits_per_fdmdv_frame], f->fdmdv_bits, bits_per_fdmdv_frame*sizeof(int)); + + if (f->test_frames == 0) { + recd_codeword = 0; + for(i=0; i<8; i++) { + recd_codeword <<= 1; + recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); + } + for(i=11; i<15; i++) { + recd_codeword <<= 1; + recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); + } + for(i=f->bits_per_codec_frame; ibits_per_codec_frame+11; i++) { + recd_codeword <<= 1; + recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); + } + codeword1 = golay23_decode(recd_codeword); + f->total_bit_errors += golay23_count_errors(recd_codeword, codeword1); + f->total_bits += 23; + + for(i=0; ibits_per_codec_frame; i++) + f->rx_payload_bits[i] = f->fdmdv_rx_bits[i]; + + for(i=0; i<8; i++) { + f->rx_payload_bits[i] = (codeword1 >> (22-i)) & 0x1; + } + for(i=8,j=11; i<12; i++,j++) { + f->rx_payload_bits[j] = (codeword1 >> (22-i)) & 0x1; + } + + // extract txt msg data bit ------------------------------------------------------------ + + data_flag_index = codec2_get_spare_bit_index(f->codec2); + abit[0] = f->rx_payload_bits[data_flag_index]; + + n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, abit, 1, 1); + if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { + (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); + } + + // reconstruct missing bit we steal for data bit and decode + codec2_rebuild_spare_bit(f->codec2, (char*)f->rx_payload_bits); + + rx_status |= FREEDV_RX_BITS; + } + else { + int test_frame_sync, bit_errors, ntest_bits, k; + short error_pattern[fdmdv_error_pattern_size(f->fdmdv)]; + + for(k=0; k<2; k++) { + /* test frames, so lets sync up to the test frames and count any errors */ + + fdmdv_put_test_bits(f->fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, &f->fdmdv_rx_bits[k*bits_per_fdmdv_frame]); + + if (test_frame_sync == 1) { + f->test_frame_sync_state = 1; + f->test_frame_count = 0; + } + + if (f->test_frame_sync_state) { + if (f->test_frame_count == 0) { + f->total_bit_errors += bit_errors; + f->total_bits += ntest_bits; + if (f->freedv_put_error_pattern != NULL) { + (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, fdmdv_error_pattern_size(f->fdmdv)); + } + } + f->test_frame_count++; + if (f->test_frame_count == 4) + f->test_frame_count = 0; + } + + } + } /* if (test_frames == 0) .... */ + } + + /* note this freewheels if reliable sync disappears on bad channels */ + + if (f->evenframe) + f->evenframe = 0; + else + f->evenframe = 1; + + } /* if (sync) .... */ + + return rx_status; +} diff --git a/src/freedv_2020.c b/src/freedv_2020.c new file mode 100644 index 0000000..135bcd2 --- /dev/null +++ b/src/freedv_2020.c @@ -0,0 +1,342 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_2020.c + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + Functions that implement the FreeDV 2020 modes. + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "fsk.h" +#include "fmfsk.h" +#include "codec2.h" +#include "codec2_fdmdv.h" +#include "varicode.h" +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "comp_prim.h" + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "mpdecode_core.h" +#include "gp_interleaver.h" +#include "ldpc_codes.h" +#include "interldpc.h" +#include "debug_alloc.h" + +extern char *ofdm_statemode[]; + +#ifdef __LPCNET__ +void freedv_2020x_open(struct freedv *f) { + f->speech_sample_rate = FREEDV_FS_16000; + f->snr_squelch_thresh = 4.0; + f->squelch_en = 0; + + struct OFDM_CONFIG ofdm_config; + switch (f->mode) { + case FREEDV_MODE_2020: + ofdm_init_mode("2020", &ofdm_config); + break; + case FREEDV_MODE_2020B: + ofdm_init_mode("2020B", &ofdm_config); + break; + case FREEDV_MODE_2020C: + ofdm_init_mode("2020C", &ofdm_config); + break; + default: + assert(0); + } + + f->ofdm = ofdm_create(&ofdm_config); + + f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); + assert(f->ldpc != NULL); + + ldpc_codes_setup(f->ldpc, f->ofdm->codename); + ldpc_mode_specific_setup(f->ofdm, f->ldpc); + int vq_type; + switch (f->mode) { + case FREEDV_MODE_2020: + vq_type = 1; /* vanilla VQ */ + break; + case FREEDV_MODE_2020B: + vq_type = 2; /* index optimised VQ for increased robustness to single bit errors */ + break; + case FREEDV_MODE_2020C: + vq_type = 2; /* index optimised VQ for increased robustness to single bit errors */ + break; + default: + assert(0); + } + + int coded_syms_per_frame = f->ldpc->coded_bits_per_frame/f->ofdm->bps; + f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); + f->ofdm_nuwbits = f->ofdm->config.nuwbits; + f->ofdm_ntxtbits = f->ofdm->config.txtbits; + assert(f->ofdm_ntxtbits == 4); + + if (f->verbose) { + fprintf(stderr, "f->mode = %d\n", f->mode); + fprintf(stderr, "vq_type = %d\n", vq_type); + fprintf(stderr, "ldpc_data_bits_per_frame = %d\n", f->ldpc->ldpc_data_bits_per_frame); + fprintf(stderr, "ldpc_coded_bits_per_frame = %d\n", f->ldpc->ldpc_coded_bits_per_frame); + fprintf(stderr, "data_bits_per_frame = %d\n", f->ldpc->data_bits_per_frame); + fprintf(stderr, "coded_bits_per_frame = %d\n", f->ldpc->coded_bits_per_frame); + fprintf(stderr, "coded_syms_per_frame = %d\n", f->ldpc->coded_bits_per_frame/f->ofdm->bps); + fprintf(stderr, "ofdm_bits_per_frame = %d\n", f->ofdm_bitsperframe); + fprintf(stderr, "ofdm_nuwbits = %d\n", f->ofdm_nuwbits); + fprintf(stderr, "ofdm_ntxtbits = %d\n", f->ofdm_ntxtbits); + } + + f->codeword_symbols = (COMP*)MALLOC(sizeof(COMP) * coded_syms_per_frame); + assert(f->codeword_symbols != NULL); + + f->codeword_amps = (float*)MALLOC(sizeof(float) * coded_syms_per_frame); + assert(f->codeword_amps != NULL); + + for (int i=0; i< coded_syms_per_frame; i++) { + f->codeword_symbols[i].real = 0.0f; + f->codeword_symbols[i].imag = 0.0f; + f->codeword_amps[i] = 0.0f; + } + + f->nin = f->nin_prev = ofdm_get_samples_per_frame(f->ofdm); + f->n_nat_modem_samples = ofdm_get_samples_per_frame(f->ofdm); + f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); + f->n_max_modem_samples = ofdm_get_max_samples_per_frame(f->ofdm); + f->modem_sample_rate = f->ofdm->config.fs; + f->clip_en = false; + f->sz_error_pattern = f->ofdm_bitsperframe; + + /* storage for pass through audio interpolating filter. These are + the rate FREEDV_FS_8000 modem input samples before interpolation */ + f->passthrough_2020 = CALLOC(1, sizeof(float)*(FDMDV_OS_TAPS_16K + freedv_get_n_max_modem_samples(f))); + assert(f->passthrough_2020 != NULL); + + // make sure we have enough storage for worst case nin with passthrough, in 2020 + // we oversample the 8 kHz input Rx audio to 16 kHz + int nout_max = 2*freedv_get_n_max_modem_samples(f); + assert(nout_max <= freedv_get_n_max_speech_samples(f)); + + f->lpcnet = lpcnet_freedv_create(vq_type); assert(f->lpcnet != NULL); + f->codec2 = NULL; + + /* should be exactly an integer number of Codec frames in a OFDM modem frame */ + assert((f->ldpc->data_bits_per_frame % lpcnet_bits_per_frame(f->lpcnet)) == 0); + + f->n_codec_frames = f->ldpc->data_bits_per_frame/lpcnet_bits_per_frame(f->lpcnet); + f->n_speech_samples = f->n_codec_frames*lpcnet_samples_per_frame(f->lpcnet); + f->bits_per_codec_frame = lpcnet_bits_per_frame(f->lpcnet); + f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; + + f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->rx_payload_bits != NULL); + + /* attenuate audio 12dB as channel noise isn't that pleasant */ + f->passthrough_gain = 0.25; +} + +void freedv_comptx_2020(struct freedv *f, COMP mod_out[]) { + int i, k; + + int data_bits_per_frame = f->ldpc->data_bits_per_frame; + uint8_t tx_bits[data_bits_per_frame]; + + memcpy(tx_bits, f->tx_payload_bits, data_bits_per_frame); + + // Generate Varicode txt bits. Txt bits in OFDM frame come just + // after Unique Word (UW). Txt bits aren't protected by FEC, and need to be + // added to each frame after interleaver as done it's thing + + int nspare = f->ofdm_ntxtbits; + uint8_t txt_bits[nspare]; + + for(k=0; knvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + if (f->freedv_get_next_tx_char != NULL) { + s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); + f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); + f->varicode_bit_index = 0; + } + } + if (f->nvaricode_bits) { + txt_bits[k] = f->tx_varicode_bits[f->varicode_bit_index++]; + f->nvaricode_bits--; + } else txt_bits[k] = 0; + } + + /* optionally replace codec payload bits with test frames known to rx */ + + if (f->test_frames) { + uint8_t payload_data_bits[data_bits_per_frame]; + ofdm_generate_payload_data_bits(payload_data_bits, data_bits_per_frame); + + for (i = 0; i < data_bits_per_frame; i++) { + tx_bits[i] = payload_data_bits[i]; + } + } + + /* OK now ready to LDPC encode, interleave, and OFDM modulate */ + ofdm_ldpc_interleave_tx(f->ofdm, f->ldpc, (complex float*)mod_out, tx_bits, txt_bits); +} + +int freedv_comprx_2020(struct freedv *f, COMP demod_in[]) { + int i, k; + int n_ascii; + char ascii_out; + struct OFDM *ofdm = f->ofdm; + struct LDPC *ldpc = f->ldpc; + + int data_bits_per_frame = ldpc->data_bits_per_frame; + int coded_bits_per_frame = ldpc->coded_bits_per_frame; + int coded_syms_per_frame = ldpc->coded_bits_per_frame/ofdm->bps; + COMP *codeword_symbols = f->codeword_symbols; + float *codeword_amps = f->codeword_amps; + int rx_bits[f->ofdm_bitsperframe]; + short txt_bits[f->ofdm_ntxtbits]; + COMP payload_syms[coded_syms_per_frame]; + float payload_amps[coded_syms_per_frame]; + + int rx_status = 0; + + int Nerrs_raw = 0; + int Nerrs_coded = 0; + int Ncoded; + int iter = 0; + int parityCheckCount = 0; + uint8_t rx_uw[f->ofdm_nuwbits]; + + f->sync = 0; + + // TODO: should be higher for 2020? + float EsNo = 3.0; + + /* looking for modem sync */ + + if (ofdm->sync_state == search) { + ofdm_sync_search(f->ofdm, demod_in); + f->snr_est = -5.0; + } + + /* OK modem is in sync */ + + if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { + rx_status |= FREEDV_RX_SYNC; + if (ofdm->sync_state == trial) rx_status |= FREEDV_RX_TRIAL_SYNC; + + int txt_sym_index = 0; + + ofdm_demod(ofdm, rx_bits, demod_in); + ofdm_extract_uw(ofdm, ofdm->rx_np, ofdm->rx_amp, rx_uw); + ofdm_disassemble_qpsk_modem_packet_with_text_amps(ofdm, ofdm->rx_np, ofdm->rx_amp, payload_syms, payload_amps, txt_bits, &txt_sym_index); + + f->sync = 1; + + assert((f->ofdm_nuwbits+f->ofdm_ntxtbits+coded_bits_per_frame) == f->ofdm_bitsperframe); + + /* newest symbols at end of buffer (uses final i from last loop), note we + change COMP formats from what modem uses internally */ + + for(i=0; i< coded_syms_per_frame; i++) { + codeword_symbols[i] = payload_syms[i]; + codeword_amps[i] = payload_amps[i]; + } + + /* run de-interleaver */ + + COMP codeword_symbols_de[coded_syms_per_frame]; + float codeword_amps_de[coded_syms_per_frame]; + + gp_deinterleave_comp (codeword_symbols_de, codeword_symbols, coded_syms_per_frame); + gp_deinterleave_float(codeword_amps_de , codeword_amps , coded_syms_per_frame); + + float llr[coded_bits_per_frame]; + uint8_t out_char[coded_bits_per_frame]; + + if (f->test_frames) { + Nerrs_raw = count_uncoded_errors(ldpc, &f->ofdm->config, codeword_symbols_de, 0); + f->total_bit_errors += Nerrs_raw; + f->total_bits += f->ofdm_bitsperframe; + } + + symbols_to_llrs(llr, codeword_symbols_de, codeword_amps_de, + EsNo, ofdm->mean_amp, coded_syms_per_frame); + ldpc_decode_frame(ldpc, &parityCheckCount, &iter, out_char, llr); + if (parityCheckCount != ldpc->NumberParityBits) rx_status |= FREEDV_RX_BIT_ERRORS; + + if (f->test_frames) { + uint8_t payload_data_bits[data_bits_per_frame]; + ofdm_generate_payload_data_bits(payload_data_bits, data_bits_per_frame); + count_errors_protection_mode(ldpc->protection_mode, &Nerrs_coded, &Ncoded, payload_data_bits, out_char, data_bits_per_frame); + f->total_bit_errors_coded += Nerrs_coded; + f->total_bits_coded += Ncoded; + if (Nerrs_coded) f->total_packet_errors++; + f->total_packets++; + } else { + memcpy(f->rx_payload_bits, out_char, data_bits_per_frame); + } + + rx_status |= FREEDV_RX_BITS; + + /* If modem is synced we can decode txt bits */ + + for(k=0; kofdm_ntxtbits; k++) { + if (k % 2 == 0 && (f->freedv_put_next_rx_symbol != NULL)) + { + (*f->freedv_put_next_rx_symbol)(f->callback_state_sym, + ofdm->rx_np[txt_sym_index], + ofdm->rx_amp[txt_sym_index]); + txt_sym_index++; + } + + //fprintf(stderr, "txt_bits[%d] = %d\n", k, rx_bits[i]); + n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &txt_bits[k], 1, 1); + if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { + (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); + } + } + + /* estimate uncoded BER from UW. Coded bit errors could + probably be estimated as half of all failed LDPC parity + checks */ + + for(i=0; iofdm_nuwbits; i++) { + if (rx_uw[i] != ofdm->tx_uw[i]) { + f->total_bit_errors++; + } + } + f->total_bits += f->ofdm_nuwbits; + + ofdm_get_demod_stats(f->ofdm, &f->stats, ofdm->rx_np, ofdm->rowsperframe*ofdm->nc); + f->snr_est = f->stats.snr_est; + } + + /* iterate state machine and update nin for next call */ + + f->nin = ofdm_get_nin(ofdm); + ofdm_sync_state_machine(ofdm, rx_uw); + + if ((f->verbose && (ofdm->last_sync_state == search)) || (f->verbose == 2)) { + assert(rx_status <= 15); + fprintf(stderr, "%3d st: %-6s euw: %2d %1d f: %5.1f pbw: %d snr: %4.1f eraw: %3d ecdd: %3d iter: %3d pcc: %3d rxst: %s\n", + f->frames++, ofdm_statemode[ofdm->last_sync_state], ofdm->uw_errors, ofdm->sync_counter, + (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, + f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, rx_sync_flags_to_text[rx_status]); + } + + return rx_status; +} +#endif diff --git a/src/freedv_700.c b/src/freedv_700.c new file mode 100644 index 0000000..235284e --- /dev/null +++ b/src/freedv_700.c @@ -0,0 +1,564 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_700.c + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + Functions that implement the various FreeDV 700 modes, and more generally + OFDM data modes. + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "fsk.h" +#include "fmfsk.h" +#include "codec2.h" +#include "codec2_fdmdv.h" +#include "varicode.h" +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "comp_prim.h" + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "mpdecode_core.h" +#include "gp_interleaver.h" +#include "ldpc_codes.h" +#include "interldpc.h" +#include "debug_alloc.h" +#include "filter.h" + +extern char *ofdm_statemode[]; + +void freedv_700c_open(struct freedv *f) { + f->snr_squelch_thresh = 0.0; + f->squelch_en = false; + + f->cohpsk = cohpsk_create(); + f->nin = f->nin_prev = COHPSK_NOM_SAMPLES_PER_FRAME; + f->n_nat_modem_samples = COHPSK_NOM_SAMPLES_PER_FRAME; // native modem samples as used by the modem + f->n_nom_modem_samples = f->n_nat_modem_samples * FREEDV_FS_8000 / COHPSK_FS;// number of samples after native samples are interpolated to 8000 sps + f->n_max_modem_samples = COHPSK_MAX_SAMPLES_PER_FRAME * FREEDV_FS_8000 / COHPSK_FS + 1; + f->modem_sample_rate = FREEDV_FS_8000; // note weird sample rate tamed by resampling + f->clip_en = true; + f->sz_error_pattern = cohpsk_error_pattern_size(); + f->test_frames_diversity = 1; + + f->ptFilter7500to8000 = (struct quisk_cfFilter *)MALLOC(sizeof(struct quisk_cfFilter)); + f->ptFilter8000to7500 = (struct quisk_cfFilter *)MALLOC(sizeof(struct quisk_cfFilter)); + quisk_filt_cfInit(f->ptFilter8000to7500, quiskFilt120t480, sizeof(quiskFilt120t480)/sizeof(float)); + quisk_filt_cfInit(f->ptFilter7500to8000, quiskFilt120t480, sizeof(quiskFilt120t480)/sizeof(float)); + + f->speech_sample_rate = FREEDV_FS_8000; + f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); + + f->n_codec_frames = 2; + f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->bits_per_modem_frame = f->n_codec_frames*codec2_bits_per_frame(f->codec2); + assert(f->bits_per_modem_frame == COHPSK_BITS_PER_FRAME); + + f->tx_payload_bits = (uint8_t*)MALLOC(f->bits_per_modem_frame*sizeof(char)); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = (uint8_t*)MALLOC(f->bits_per_modem_frame*sizeof(char)); assert(f->rx_payload_bits != NULL); +} + +void freedv_comptx_700c(struct freedv *f, COMP mod_out[]) { + int i; + COMP tx_fdm[f->n_nat_modem_samples]; + int tx_bits[COHPSK_BITS_PER_FRAME]; + + /* earlier modems used one bit per int for unpacked bits */ + for(i=0; itx_payload_bits[i]; + + /* optionally overwrite the codec bits with test frames */ + if (f->test_frames) { + cohpsk_get_test_bits(f->cohpsk, tx_bits); + } + + /* cohpsk modulator */ + cohpsk_mod(f->cohpsk, tx_fdm, tx_bits, COHPSK_BITS_PER_FRAME); + + float gain = 1.0; + if (f->clip_en) { + cohpsk_clip(tx_fdm, COHPSK_CLIP, COHPSK_NOM_SAMPLES_PER_FRAME); + gain = 2.5; + } + for(i=0; in_nat_modem_samples; i++) + mod_out[i] = fcmult(gain*COHPSK_SCALE, tx_fdm[i]); + i = quisk_cfInterpDecim((complex float *)mod_out, f->n_nat_modem_samples, f->ptFilter7500to8000, 16, 15); +} + +// open function for OFDM voice modes +void freedv_ofdm_voice_open(struct freedv *f, char *mode) { + f->snr_squelch_thresh = 0.0; + f->squelch_en = false; + struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); + assert(ofdm_config != NULL); + ofdm_init_mode(mode, ofdm_config); + + f->ofdm = ofdm_create(ofdm_config); + assert(f->ofdm != NULL); + free(ofdm_config); + + ofdm_config = ofdm_get_config_param(f->ofdm); + f->ofdm_bitsperpacket = ofdm_get_bits_per_packet(f->ofdm); + f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); + f->ofdm_nuwbits = ofdm_config->nuwbits; + f->ofdm_ntxtbits = ofdm_config->txtbits; + + f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); + assert(f->ldpc != NULL); + + ldpc_codes_setup(f->ldpc, f->ofdm->codename); + ldpc_mode_specific_setup(f->ofdm, f->ldpc); +#ifdef __EMBEDDED__ + f->ldpc->max_iter = 10; /* limit LDPC decoder iterations to limit CPU load */ +#endif + int Nsymsperpacket = ofdm_get_bits_per_packet(f->ofdm) / f->ofdm->bps; + f->rx_syms = (COMP*)MALLOC(sizeof(COMP) * Nsymsperpacket); + assert(f->rx_syms != NULL); + f->rx_amps = (float*)MALLOC(sizeof(float) * Nsymsperpacket); + assert(f->rx_amps != NULL); + for(int i=0; irx_syms[i].real = f->rx_syms[i].imag = 0.0; + f->rx_amps[i]= 0.0; + } + + f->nin = f->nin_prev = ofdm_get_samples_per_frame(f->ofdm); + f->n_nat_modem_samples = ofdm_get_samples_per_frame(f->ofdm); + f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); + f->n_max_modem_samples = ofdm_get_max_samples_per_frame(f->ofdm); + f->modem_sample_rate = f->ofdm->config.fs; + f->clip_en = false; + f->sz_error_pattern = f->ofdm_bitsperframe; + + f->tx_bits = NULL; /* not used for 700D */ + + f->speech_sample_rate = FREEDV_FS_8000; + f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); + /* should be exactly an integer number of Codec 2 frames in a OFDM modem frame */ + assert((f->ldpc->data_bits_per_frame % codec2_bits_per_frame(f->codec2)) == 0); + + f->n_codec_frames = f->ldpc->data_bits_per_frame/codec2_bits_per_frame(f->codec2); + f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; + + f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->rx_payload_bits != NULL); + + /* attenuate audio 12dB as channel noise isn't that pleasant */ + f->passthrough_gain = 0.25; + + /* should all add up to a complete frame */ + assert((ofdm_config->ns - 1) * ofdm_config->nc * ofdm_config->bps == + f->ldpc->coded_bits_per_frame + ofdm_config->txtbits + f->ofdm_nuwbits); +} + +// open function for OFDM data modes, TODO consider moving to a new +// (freedv_ofdm_data.c) file +void freedv_ofdm_data_open(struct freedv *f) { + struct OFDM_CONFIG ofdm_config; + char mode[32]; + if (f->mode == FREEDV_MODE_DATAC0) strcpy(mode, "datac0"); + if (f->mode == FREEDV_MODE_DATAC1) strcpy(mode, "datac1"); + if (f->mode == FREEDV_MODE_DATAC3) strcpy(mode, "datac3"); + if (f->mode == FREEDV_MODE_DATAC4) strcpy(mode, "datac4"); + if (f->mode == FREEDV_MODE_DATAC13) strcpy(mode, "datac13"); + + ofdm_init_mode(mode, &ofdm_config); + f->ofdm = ofdm_create(&ofdm_config); + assert(f->ofdm != NULL); + + // LDPC set up + f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); + assert(f->ldpc != NULL); + ldpc_codes_setup(f->ldpc, f->ofdm->codename); + ldpc_mode_specific_setup(f->ofdm, f->ldpc); +#ifdef __EMBEDDED__ + f->ldpc->max_iter = 10; /* limit LDPC decoder iterations to limit CPU load */ +#endif + + // useful constants + f->ofdm_bitsperpacket = ofdm_get_bits_per_packet(f->ofdm); + f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); + f->ofdm_nuwbits = ofdm_config.nuwbits; + f->ofdm_ntxtbits = ofdm_config.txtbits; + + /* payload bits per FreeDV API "frame". In OFDM modem nomenclature this is the number of + payload data bits per packet, or the number of data bits in a LDPC codeword */ + f->bits_per_modem_frame = f->ldpc->data_bits_per_frame; + + // buffers for received symbols for one packet/LDPC codeword - may span many OFDM modem frames + int Nsymsperpacket = ofdm_get_bits_per_packet(f->ofdm) / f->ofdm->bps; + f->rx_syms = (COMP*)MALLOC(sizeof(COMP) * Nsymsperpacket); + assert(f->rx_syms != NULL); + f->rx_amps = (float*)MALLOC(sizeof(float) * Nsymsperpacket); + assert(f->rx_amps != NULL); + for(int i=0; irx_syms[i].real = f->rx_syms[i].imag = 0.0; + f->rx_amps[i]= 0.0; + } + + f->nin = f->nin_prev = ofdm_get_nin(f->ofdm); + f->n_nat_modem_samples = ofdm_get_samples_per_packet(f->ofdm); + f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); + /* in burst mode we might jump a preamble frame */ + f->n_max_modem_samples = 2*ofdm_get_max_samples_per_frame(f->ofdm); + f->modem_sample_rate = f->ofdm->config.fs; + f->sz_error_pattern = f->ofdm_bitsperpacket; + + // Note inconsistency: freedv API modem "frame" is a OFDM modem packet + f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); + assert(f->rx_payload_bits != NULL); +} + +/* speech or raw data, complex OFDM modulation out */ +void freedv_comptx_ofdm(struct freedv *f, COMP mod_out[]) { + int i, k; + int nspare; + + /* Generate Varicode txt bits (if used), waren't protected by FEC */ + nspare = f->ofdm_ntxtbits; + uint8_t txt_bits[nspare]; + + for(k=0; knvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + if (f->freedv_get_next_tx_char != NULL) { + s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); + f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); + f->varicode_bit_index = 0; + } + } + if (f->nvaricode_bits) { + txt_bits[k] = f->tx_varicode_bits[f->varicode_bit_index++]; + f->nvaricode_bits--; + } + else txt_bits[k] = 0; + } + + /* optionally replace payload bits with test frames known to rx */ + if (f->test_frames) { + uint8_t payload_data_bits[f->bits_per_modem_frame]; + ofdm_generate_payload_data_bits(payload_data_bits, f->bits_per_modem_frame); + + for (i = 0; i < f->bits_per_modem_frame; i++) { + f->tx_payload_bits[i] = payload_data_bits[i]; + } + } + + /* OK now ready to LDPC encode, interleave, and OFDM modulate */ + ofdm_ldpc_interleave_tx(f->ofdm, f->ldpc, (complex float*)mod_out, f->tx_payload_bits, txt_bits); +} + + +int freedv_comprx_700c(struct freedv *f, COMP demod_in_8kHz[]) { + int i; + int sync; + + int rx_status = 0; + + // quisk_cfInterpDecim() modifies input data so lets make a copy just in case there + // is no sync and we need to echo inpout to output + + // freedv_nin(f): input samples at Fs=8000 Hz + // f->nin: input samples at Fs=7500 Hz + + COMP demod_in[freedv_nin(f)]; + + for(i=0; iptFilter8000to7500, 15, 16); + + for(i=0; inin; i++) + demod_in[i] = fcmult(1.0/COHPSK_SCALE, demod_in[i]); + + float rx_soft_bits[COHPSK_BITS_PER_FRAME]; + + cohpsk_demod(f->cohpsk, rx_soft_bits, &sync, demod_in, &f->nin); + + for(i=0; ibits_per_modem_frame; i++) + f->rx_payload_bits[i] = rx_soft_bits[i] < 0.0f; + + f->sync = sync; + cohpsk_get_demod_stats(f->cohpsk, &f->stats); + f->snr_est = f->stats.snr_est; + + if (sync) { + rx_status = FREEDV_RX_SYNC; + if (f->test_frames == 0) { + rx_status |= FREEDV_RX_BITS; + } + else { + + if (f->test_frames_diversity) { + /* normal operation - error pattern on frame after diveristy combination */ + short error_pattern[COHPSK_BITS_PER_FRAME]; + int bit_errors; + + /* test data, lets see if we can sync to the test data sequence */ + + char rx_bits_char[COHPSK_BITS_PER_FRAME]; + for(i=0; icohpsk, &f->test_frame_sync_state, error_pattern, &bit_errors, rx_bits_char, 0); + if (f->test_frame_sync_state) { + f->total_bit_errors += bit_errors; + f->total_bits += COHPSK_BITS_PER_FRAME; + if (f->freedv_put_error_pattern != NULL) { + (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, COHPSK_BITS_PER_FRAME); + } + } + } + else { + /* calculate error pattern on uncombined carriers - test mode to spot any carrier specific issues like + tx passband filtering */ + + short error_pattern[2*COHPSK_BITS_PER_FRAME]; + char rx_bits_char[COHPSK_BITS_PER_FRAME]; + int bit_errors_lower, bit_errors_upper; + + /* lower group of carriers */ + + float *rx_bits_lower = cohpsk_get_rx_bits_lower(f->cohpsk); + for(i=0; icohpsk, &f->test_frame_sync_state, error_pattern, &bit_errors_lower, rx_bits_char, 0); + + /* upper group of carriers */ + + float *rx_bits_upper = cohpsk_get_rx_bits_upper(f->cohpsk); + for(i=0; icohpsk, &f->test_frame_sync_state_upper, &error_pattern[COHPSK_BITS_PER_FRAME], &bit_errors_upper, rx_bits_char, 1); + + /* combine total errors and call callback */ + + if (f->test_frame_sync_state && f->test_frame_sync_state_upper) { + f->total_bit_errors += bit_errors_lower + bit_errors_upper; + f->total_bits += 2*COHPSK_BITS_PER_FRAME; + if (f->freedv_put_error_pattern != NULL) { + (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, 2*COHPSK_BITS_PER_FRAME); + } + } + + } + } + + } + + return rx_status; +} + +/* + OFDM demod function that can support complex (float) or real (short) + samples. The real short samples are useful for low memory platforms such as + the SM1000. +*/ + +int freedv_comp_short_rx_ofdm(struct freedv *f, void *demod_in_8kHz, int demod_in_is_short, float gain) { + int i, k; + int n_ascii; + char ascii_out; + struct OFDM *ofdm = f->ofdm; + struct LDPC *ldpc = f->ldpc; + + /* useful constants */ + int Nbitsperframe = ofdm_get_bits_per_frame(ofdm); + int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); + int Nsymsperframe = Nbitsperframe / ofdm->bps; + int Nsymsperpacket = Nbitsperpacket / ofdm->bps; + int Npayloadbitsperpacket = Nbitsperpacket - ofdm->nuwbits - ofdm->ntxtbits; + int Npayloadsymsperpacket = Npayloadbitsperpacket/ofdm->bps; + int Ndatabitsperpacket = ldpc->data_bits_per_frame; + + complex float *rx_syms = (complex float*)f->rx_syms; + float *rx_amps = f->rx_amps; + + int rx_bits[Nbitsperframe]; + short txt_bits[f->ofdm_ntxtbits]; + COMP payload_syms[Npayloadsymsperpacket]; + float payload_amps[Npayloadsymsperpacket]; + + int Nerrs_raw = 0; + int Nerrs_coded = 0; + int iter = 0; + int parityCheckCount = 0; + uint8_t rx_uw[f->ofdm_nuwbits]; + + float new_gain = gain / f->ofdm->amp_scale; + + assert((demod_in_is_short == 0) || (demod_in_is_short == 1)); + + int rx_status = 0; + float EsNo = 3.0; /* further work: estimate this properly from signal */ + f->sync = 0; + + /* looking for OFDM modem sync */ + if (ofdm->sync_state == search) { + if (demod_in_is_short) + ofdm_sync_search_shorts(f->ofdm, (short*)demod_in_8kHz, new_gain); + else + ofdm_sync_search(f->ofdm, (COMP*)demod_in_8kHz); + f->snr_est = -5.0; + } + + if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { + /* OK we have OFDM modem sync */ + rx_status |= FREEDV_RX_SYNC; + if (ofdm->sync_state == trial) rx_status |= FREEDV_RX_TRIAL_SYNC; + if (demod_in_is_short) + ofdm_demod_shorts(ofdm, rx_bits, (short*)demod_in_8kHz, new_gain); + else + ofdm_demod(ofdm, rx_bits, (COMP*)demod_in_8kHz); + + /* accumulate a buffer of data symbols for this packet */ + for(i=0; irx_np, sizeof(complex float)*Nsymsperframe); + memcpy(&rx_amps[Nsymsperpacket-Nsymsperframe], ofdm->rx_amp, sizeof(float)*Nsymsperframe); + + /* look for UW as frames enter packet buffer, note UW may span several modem frames */ + int st_uw = Nsymsperpacket - ofdm->nuwframes*Nsymsperframe; + ofdm_extract_uw(ofdm, &rx_syms[st_uw], &rx_amps[st_uw], rx_uw); + + // update some FreeDV API level stats + f->sync = 1; + + if (ofdm->modem_frame == (ofdm->np-1)) { + /* we have received enough modem frames to complete packet and run LDPC decoder */ + int txt_sym_index = 0; + ofdm_disassemble_qpsk_modem_packet_with_text_amps(ofdm, rx_syms, rx_amps, payload_syms, payload_amps, txt_bits, &txt_sym_index); + + COMP payload_syms_de[Npayloadsymsperpacket]; + float payload_amps_de[Npayloadsymsperpacket]; + gp_deinterleave_comp (payload_syms_de, payload_syms, Npayloadsymsperpacket); + gp_deinterleave_float(payload_amps_de, payload_amps, Npayloadsymsperpacket); + + float llr[Npayloadbitsperpacket]; + uint8_t decoded_codeword[Npayloadbitsperpacket]; + symbols_to_llrs(llr, payload_syms_de, payload_amps_de, + EsNo, ofdm->mean_amp, Npayloadsymsperpacket); + ldpc_decode_frame(ldpc, &parityCheckCount, &iter, decoded_codeword, llr); + //iter = run_ldpc_decoder(ldpc, decoded_codeword, llr, &parityCheckCount); + memcpy(f->rx_payload_bits, decoded_codeword, Ndatabitsperpacket); + + if (strlen(ofdm->data_mode)) { + // we need a valid CRC to declare a data packet valid + if (freedv_check_crc16_unpacked(f->rx_payload_bits, Ndatabitsperpacket)) + rx_status |= FREEDV_RX_BITS; + else + rx_status |= FREEDV_RX_BIT_ERRORS; + } else { + + // voice modes aren't as strict - pass everything through to the speech decoder, but flag + // frame with possible errors + rx_status |= FREEDV_RX_BITS; + if (parityCheckCount != ldpc->NumberParityBits) + rx_status |= FREEDV_RX_BIT_ERRORS; + } + + if (f->test_frames) { + /* est uncoded BER from payload bits */ + Nerrs_raw = count_uncoded_errors(ldpc, &f->ofdm->config, payload_syms_de, strlen(ofdm->data_mode)); + f->total_bit_errors += Nerrs_raw; + f->total_bits += Npayloadbitsperpacket; + + /* coded errors from decoded bits */ + uint8_t payload_data_bits[Ndatabitsperpacket]; + ofdm_generate_payload_data_bits(payload_data_bits, Ndatabitsperpacket); + if (strlen(ofdm->data_mode)) { + uint16_t tx_crc16 = freedv_crc16_unpacked(payload_data_bits, Ndatabitsperpacket - 16); + uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; + freedv_unpack(payload_data_bits + Ndatabitsperpacket - 16, tx_crc16_bytes, 16); + } + Nerrs_coded = count_errors(payload_data_bits, f->rx_payload_bits, Ndatabitsperpacket); + f->total_bit_errors_coded += Nerrs_coded; + f->total_bits_coded += Ndatabitsperpacket; + if (Nerrs_coded) f->total_packet_errors++; + f->total_packets++; + } + + /* decode txt bits (if used) */ + for(k=0; kofdm_ntxtbits; k++) { + if (k % 2 == 0 && (f->freedv_put_next_rx_symbol != NULL)) + { + (*f->freedv_put_next_rx_symbol)(f->callback_state_sym, rx_syms[txt_sym_index], rx_amps[txt_sym_index]); + txt_sym_index++; + } + n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &txt_bits[k], 1, 1); + if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { + (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); + } + } + + ofdm_get_demod_stats(ofdm, &f->stats, rx_syms, Nsymsperpacket); + f->snr_est = f->stats.snr_est; + } /* complete packet */ + + if ((ofdm->np == 1) && (ofdm->modem_frame == 0)) { + /* add in UW bit errors, useful in non-testframe, + single modem frame per packet modes */ + for(i=0; iofdm_nuwbits; i++) { + if (rx_uw[i] != ofdm->tx_uw[i]) { + f->total_bit_errors++; + } + } + f->total_bits += f->ofdm_nuwbits; + } + + } + + /* iterate state machine and update nin for next call */ + + f->nin = ofdm_get_nin(ofdm); + ofdm_sync_state_machine(ofdm, rx_uw); + + int print_full = 0; int print_truncated = 0; + if (f->verbose && ((rx_status & FREEDV_RX_BITS) || (rx_status & FREEDV_RX_BIT_ERRORS))) + print_full = 1; + if ((f->verbose == 2) && !((rx_status & FREEDV_RX_BITS) || (rx_status & FREEDV_RX_BIT_ERRORS))) + print_truncated = 1; + if (print_full) { + fprintf(stderr, "%3d nin: %4d st: %-6s euw: %2d %2d mf: %2d f: %5.1f pbw: %d snr: %4.1f eraw: %4d ecdd: %4d iter: %3d " + "pcc: %4d rxst: %s\n", + f->frames++, ofdm->nin, + ofdm_statemode[ofdm->last_sync_state], + ofdm->uw_errors, + ofdm->sync_counter, + ofdm->modem_frame, + (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, + (double)f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, rx_sync_flags_to_text[rx_status]); + } + if (print_truncated) { + fprintf(stderr, "%3d nin: %4d st: %-6s euw: %2d %2d mf: %2d f: %5.1f pbw: %d " + " rxst: %s\n", + f->frames++, ofdm->nin, + ofdm_statemode[ofdm->last_sync_state], + ofdm->uw_errors, + ofdm->sync_counter, + ofdm->modem_frame, + (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, + rx_sync_flags_to_text[rx_status]); + } + + return rx_status; +} diff --git a/src/freedv_api.c b/src/freedv_api.c new file mode 100644 index 0000000..516d604 --- /dev/null +++ b/src/freedv_api.c @@ -0,0 +1,1527 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_api.c + AUTHOR......: David Rowe + DATE CREATED: August 2014 + + Library of API functions that implement the FreeDV API, useful for + embedding FreeDV in other programs. Please see: + + 1. README_freedv.md + 2. Notes on function use in this file + 3. Simple demo programs in the "demo" directory + 4. The full featured command line freedv_tx.c and freedv_rx.c programs + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2014 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "fsk.h" +#include "fmfsk.h" +#include "codec2.h" +#include "codec2_fdmdv.h" +#include "fdmdv_internal.h" +#include "varicode.h" +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "freedv_vhf_framing.h" +#include "comp_prim.h" + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "mpdecode_core.h" +#include "gp_interleaver.h" +#include "interldpc.h" + +#include "debug_alloc.h" + +#define VERSION 15 /* The API version number. The first version + is 10. Increment if the API changes in a + way that would require changes by the API + user. */ +/* + * Version 10 Initial version August 2, 2015. + * Version 11 September 2015 + * Added: freedv_zero_total_bit_errors(), freedv_get_sync() + * Changed all input and output sample rates to 8000 sps. Rates for FREEDV_MODE_700 and 700B were 7500. + * Version 12 August 2018 + * Added OFDM configuration switch structure + * Version 13 November 2019 + * Removed 700 and 700B modes + * Version 14 May 2020 + * Number of returned speech samples can vary, use freedv_get_n_max_speech_samples() to allocate + * buffers. + * Version 15 December 2022 + * Removing rarely used DPSK support which is not needed given fast fading modes + */ + +char *ofdm_statemode[] = {"search","trial","synced"}; + +char *rx_sync_flags_to_text[] = { + "----", + "---T", + "--S-", + "--ST", + "-B--", + "-B-T", + "-BS-", + "-BST", + "E---", + "E--T", + "E-S-", + "E-ST", + "EB--", + "EB-T", + "EBS-", + "EBST"}; + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: freedv_open + AUTHOR......: David Rowe + DATE CREATED: 3 August 2014 + + Call this first to initialise. Returns NULL if initialisation + fails. If a malloc() or calloc() fails in general asserts() will + fire. + +\*---------------------------------------------------------------------------*/ + +struct freedv *freedv_open(int mode) { + // defaults for those modes that support the use of adv + struct freedv_advanced adv = {0,2,100,8000,1000,200, "H_256_512_4"}; + return freedv_open_advanced(mode, &adv); +} + +struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv) { + struct freedv *f; + + assert(FREEDV_PEAK == OFDM_PEAK); + assert(FREEDV_VARICODE_MAX_BITS == VARICODE_MAX_BITS); + + if ((FDV_MODE_ACTIVE( FREEDV_MODE_1600, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700C, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700D, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700E, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2400A, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2400B, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_800XA, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, mode)) == false) return NULL; + + /* set everything to zero just in case */ + f = (struct freedv*)CALLOC(1, sizeof(struct freedv)); + if (f == NULL) return NULL; + + f->mode = mode; + + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, mode)) freedv_1600_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, mode)) freedv_700c_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, mode)) freedv_ofdm_voice_open(f, "700D"); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700E, mode)) freedv_ofdm_voice_open(f, "700E"); +#ifdef __LPCNET__ + if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, mode)) + freedv_2020x_open(f); +#endif + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, mode)) freedv_2400a_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, mode)) freedv_2400b_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, mode)) freedv_800xa_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, mode)) freedv_fsk_ldpc_open(f, adv); + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, mode)) freedv_ofdm_data_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, mode)) freedv_ofdm_data_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, mode)) freedv_ofdm_data_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, mode)) freedv_ofdm_data_open(f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, mode)) freedv_ofdm_data_open(f); + + varicode_decode_init(&f->varicode_dec_states, 1); + + return f; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_close + AUTHOR......: David Rowe + DATE CREATED: 3 August 2014 + + Call to shut down a freedv instance and free memory. + +\*---------------------------------------------------------------------------*/ + +void freedv_close(struct freedv *freedv) { + assert(freedv != NULL); + + FREE(freedv->tx_payload_bits); + FREE(freedv->rx_payload_bits); + if (freedv->codec2) codec2_destroy(freedv->codec2); + + if (FDV_MODE_ACTIVE(FREEDV_MODE_1600, freedv->mode)) { + FREE(freedv->fdmdv_bits); + FREE(freedv->fdmdv_tx_bits); + FREE(freedv->fdmdv_rx_bits); + fdmdv_destroy(freedv->fdmdv); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, freedv->mode)) { + cohpsk_destroy(freedv->cohpsk); + quisk_filt_destroy(freedv->ptFilter8000to7500); + FREE(freedv->ptFilter8000to7500); + quisk_filt_destroy(freedv->ptFilter7500to8000); + FREE(freedv->ptFilter7500to8000); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700E, freedv->mode)) { + FREE(freedv->rx_syms); + FREE(freedv->rx_amps); + FREE(freedv->ldpc); + ofdm_destroy(freedv->ofdm); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, freedv->mode)) { + FREE(freedv->codeword_symbols); + FREE(freedv->codeword_amps); + FREE(freedv->ldpc); + FREE(freedv->passthrough_2020); + ofdm_destroy(freedv->ofdm); +#ifdef __LPCNET__ + lpcnet_freedv_destroy(freedv->lpcnet); +#endif + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, freedv->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, freedv->mode)){ + fsk_destroy(freedv->fsk); + fvhff_destroy_deframer(freedv->deframer); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, freedv->mode)) { + fmfsk_destroy(freedv->fmfsk); + fvhff_destroy_deframer(freedv->deframer); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, freedv->mode)) { + fsk_destroy(freedv->fsk); + FREE(freedv->ldpc); + FREE(freedv->frame_llr); + FREE(freedv->twoframes_llr); + FREE(freedv->twoframes_hard); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, freedv->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, freedv->mode)) + { + FREE(freedv->rx_syms); + FREE(freedv->rx_amps); + FREE(freedv->ldpc); + ofdm_destroy(freedv->ofdm); + } + + FREE(freedv); +} + + +/* helper function, unpacked bits are much easier to work with inside the modem */ + +static void codec2_encode_upacked(struct freedv *f, uint8_t unpacked_bits[], short speech_in[]) { + int n_packed = (f->bits_per_codec_frame + 7) / 8; + uint8_t packed_codec_bits[n_packed]; + + codec2_encode(f->codec2, packed_codec_bits, speech_in); + freedv_unpack(unpacked_bits, packed_codec_bits, f->bits_per_codec_frame); +} + +static int is_ofdm_mode(struct freedv *f) { + return FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, f->mode); +} + +static int is_ofdm_data_mode(struct freedv *f) { + return FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, f->mode); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_tx + AUTHOR......: David Rowe + DATE CREATED: 3 August 2014 + + Takes a frame of input speech samples, encodes and modulates them to + produce a frame of modem samples that can be sent to the + transmitter. See demo/freedv_700d_tx.c for an example. + + speech_in[] is sampled at freedv_get_speech_sample_rate() Hz, and + the user must supply exactly freedv_get_n_speech_samples(). The peak + level should be between +/- 16384 and +/- 32767. + + The modem signal mod_out[] is sampled at + freedv_get_modem_sample_rate() and is always exactly + freedv_get_n_nom_modem_samples() long. mod_out[] will be scaled + such that the peak level is around +/-16384. + + mod_out[] has a higher RMS power than SSB with the same peak level. + In other words, the crest factor or peak to average power ratio is + lower than typical SSB voice. Ensure your transmitter is capable of + continuous high RMS power operation, or consider reducing Tx power. + +\*---------------------------------------------------------------------------*/ + +/* real-valued short output */ + +void freedv_tx(struct freedv *f, short mod_out[], short speech_in[]) { + assert(f != NULL); + COMP tx_fdm[f->n_nom_modem_samples]; + int i; + + /* FSK and MEFSK/FMFSK modems work only on real samples. It's simpler to just + * stick them in the real sample tx/rx functions than to add a comp->real converter + * to comptx */ + + if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ + /* 800XA has two codec frames per modem frame */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + codec2_encode(f->codec2, &f->tx_payload_bits[0], &speech_in[ 0]); + codec2_encode(f->codec2, &f->tx_payload_bits[4], &speech_in[320]); + }else{ + codec2_encode(f->codec2, f->tx_payload_bits, speech_in); + } + freedv_tx_fsk_voice(f, mod_out); + } else { + freedv_comptx(f, tx_fdm, speech_in); + for(i=0; in_nom_modem_samples; i++) + mod_out[i] = tx_fdm[i].real; + } +} + + +/* complex float output version of freedv_tx() */ + +void freedv_comptx(struct freedv *f, COMP mod_out[], short speech_in[]) { + assert(f != NULL); + + assert( FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) { + codec2_encode_upacked(f, f->tx_payload_bits, speech_in); + freedv_comptx_fdmdv_1600(f, mod_out); + } + + /* all these modes need to pack a bunch of codec frames into one modem frame ... */ + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { + for (int j=0; jn_codec_frames; j++) { + codec2_encode_upacked(f, f->tx_payload_bits+j*f->bits_per_codec_frame, speech_in); + speech_in += codec2_samples_per_frame(f->codec2); + } + freedv_comptx_700c(f, mod_out); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { + + /* buffer up bits until we get enough encoded bits for interleaver */ + + for (int j=0; jn_codec_frames; j++) { + int offset = j*f->bits_per_codec_frame; + codec2_encode_upacked(f, f->tx_payload_bits + offset, speech_in); + speech_in += codec2_samples_per_frame(f->codec2); + } + + freedv_comptx_ofdm(f, mod_out); + } + +#ifdef __LPCNET__ + if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)) { + + /* buffer up bits until we get enough encoded bits for interleaver */ + + for (int j=0; jn_codec_frames; j++) { + int offset = j*f->bits_per_codec_frame; + lpcnet_enc(f->lpcnet, speech_in, (char*)f->tx_payload_bits + offset); + speech_in += lpcnet_samples_per_frame(f->lpcnet); + } + + freedv_comptx_2020(f, mod_out); + } +#endif + + /* 2400 A and B are handled by the real-mode TX */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + codec2_encode(f->codec2, f->tx_payload_bits, speech_in); + freedv_comptx_fsk_voice(f, mod_out); + } +} + + +/* pack bits */ +void freedv_pack(uint8_t *bytes, uint8_t *bits, int nbits) { + memset(bytes, 0, (nbits+7)/8); + int bit = 7, byte = 0; + for(int i=0; i> bit) & 0x1; + bit--; + if (bit < 0) { + bit = 7; + byte++; + } + } +} + +/* compute the CRC16 of a frame of unpacked bits */ +unsigned short freedv_crc16_unpacked(unsigned char unpacked_bits[], int nbits) { + assert((nbits % 8) == 0); + int nbytes = nbits/8; + uint8_t packed_bytes[nbytes]; + freedv_pack(packed_bytes, unpacked_bits, nbits); + return freedv_gen_crc16(packed_bytes, nbytes); +} + +/* Return non-zero if CRC16 of a frame of unpacked bits is correct */ +int freedv_check_crc16_unpacked(unsigned char unpacked_bits[], int nbits) { + assert((nbits % 8) == 0); + int nbytes = nbits/8; + uint8_t packed_bytes[nbytes]; + freedv_pack(packed_bytes, unpacked_bits, nbits); + uint16_t tx_crc16 = (packed_bytes[nbytes-2] << 8) | packed_bytes[nbytes-1]; + uint16_t rx_crc16 = freedv_crc16_unpacked(unpacked_bits, nbits - 16); + return tx_crc16 == rx_crc16; +} + +/* send raw frames of bytes, or speech data that was compressed externally, complex float output */ +void freedv_rawdatacomptx(struct freedv *f, COMP mod_out[], unsigned char *packed_payload_bits) { + assert(f != NULL); + + freedv_unpack(f->tx_payload_bits, packed_payload_bits, f->bits_per_modem_frame); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) freedv_comptx_fdmdv_1600(f, mod_out); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) freedv_comptx_700c(f, mod_out); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, f->mode)) freedv_comptx_ofdm(f, mod_out); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, f->mode)) { + freedv_tx_fsk_ldpc_data(f, mod_out); + } +} + + +/* send raw frames of bytes, or speech data that was compressed externally, real short output */ +void freedv_rawdatatx(struct freedv *f, short mod_out[], unsigned char *packed_payload_bits) { + assert(f != NULL); + COMP mod_out_comp[f->n_nat_modem_samples]; + + /* Some FSK modes used packed bits, and coincidentally support real samples natively */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) ) { + freedv_codec_frames_from_rawdata(f, f->tx_payload_bits, packed_payload_bits); + freedv_tx_fsk_voice(f, mod_out); + return; /* output is already real */ + } + + freedv_rawdatacomptx(f, mod_out_comp, packed_payload_bits); + + /* convert complex to real */ + for(int i=0; in_nat_modem_samples; i++) + mod_out[i] = mod_out_comp[i].real; +} + +int freedv_rawdatapreamblecomptx(struct freedv *f, COMP mod_out[]) { + assert(f != NULL); + int npreamble_samples = 0; + + if (f->mode == FREEDV_MODE_FSK_LDPC) { + struct FSK *fsk = f->fsk; + + int npreamble_symbols = 50*(fsk->mode>>1); + int npreamble_bits = npreamble_symbols*(fsk->mode>>1); + npreamble_samples = fsk->Ts*npreamble_symbols; + //fprintf(stderr, "npreamble_symbols: %d npreamble_bits: %d npreamble_samples: %d Nbits: %d N: %d\n", + //npreamble_symbols, npreamble_bits, npreamble_samples, fsk->Nbits, fsk->N); + + assert(npreamble_samples < f->n_nom_modem_samples); /* caller probably using an array of this size */ + freedv_tx_fsk_ldpc_data_preamble(f, mod_out, npreamble_bits, npreamble_samples); + } else if (is_ofdm_data_mode(f)) { + struct OFDM *ofdm = f->ofdm; + complex float *tx_preamble = (complex float*)mod_out; + memcpy(tx_preamble, ofdm->tx_preamble, sizeof(COMP)*ofdm->samplesperframe); + ofdm_hilbert_clipper(ofdm, tx_preamble, ofdm->samplesperframe); + npreamble_samples = ofdm->samplesperframe; + } + + return npreamble_samples; +} + +int freedv_rawdatapreambletx(struct freedv *f, short mod_out[]) { + assert(f != NULL); + COMP mod_out_comp[f->n_nat_modem_samples]; + + int npreamble_samples = freedv_rawdatapreamblecomptx(f, mod_out_comp); + assert(npreamble_samples <= f->n_nat_modem_samples); + + /* convert complex to real */ + for(int i=0; iofdm; + complex float *tx_postamble = (complex float*)mod_out; + memcpy(tx_postamble, ofdm->tx_postamble, sizeof(COMP)*ofdm->samplesperframe); + ofdm_hilbert_clipper(ofdm, tx_postamble, ofdm->samplesperframe); + npostamble_samples = ofdm->samplesperframe; + } + + return npostamble_samples; +} + +int freedv_rawdatapostambletx(struct freedv *f, short mod_out[]) { + assert(f != NULL); + COMP mod_out_comp[f->n_nat_modem_samples]; + + int npostamble_samples = freedv_rawdatapostamblecomptx(f, mod_out_comp); + assert(npostamble_samples <= f->n_nat_modem_samples); + + /* convert complex to real */ + for(int i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { + freedv_tx_fsk_data(f, mod_out); + } +} + + +/* VHF packet data: returns how many tx frames are queued up but not sent yet */ +int freedv_data_ntxframes (struct freedv *f) { + assert(f != NULL); + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) { + if (f->deframer->fdc) + return freedv_data_get_n_tx_frames(f->deframer->fdc, 8); + } else if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { + if (f->deframer->fdc) + return freedv_data_get_n_tx_frames(f->deframer->fdc, 6); + } + return 0; +} + +int freedv_nin(struct freedv *f) { + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) + // For mode 700C, the input rate is 8000 sps, but the modem rate is 7500 sps + // For mode 700C, we request a larger number of Rx samples that will be decimated to f->nin samples + return (16 * f->nin + f->ptFilter8000to7500->decim_index) / 15; + else + return f->nin; +} + +int freedv_codec_frames_from_rawdata(struct freedv *f, unsigned char *codec_frames, unsigned char *rawdata) +{ + int cbit = 7; + int cbyte = 0; + int rbit = 7; + int rbyte = 0; + int modem_bits = freedv_get_bits_per_modem_frame(f); + int codec_bits = freedv_get_bits_per_codec_frame(f); + int nr_cbits = 0; + int i; + + codec_frames[0] = 0; + for (i = 0; i < modem_bits; i++) { + codec_frames[cbyte] |= ((rawdata[rbyte] >> rbit) & 1) << cbit; + + rbit--; + if (rbit < 0) { + rbit = 7; + rbyte++; + } + + cbit--; + if (cbit < 0) { + cbit = 7; + cbyte++; + codec_frames[cbyte] = 0; + } + nr_cbits++; + if (nr_cbits == codec_bits) { + if (cbit) { + cbyte++; + codec_frames[cbyte] = 0; + } + cbit = 7; + nr_cbits = 0; + } + } + return f->n_codec_frames; +} + +int freedv_rawdata_from_codec_frames(struct freedv *f, unsigned char *rawdata, unsigned char *codec_frames) +{ + int cbit = 7; + int cbyte = 0; + int rbit = 7; + int rbyte = 0; + int modem_bits = freedv_get_bits_per_modem_frame(f); + int codec_bits = freedv_get_bits_per_codec_frame(f); + int nr_cbits = 0; + int i; + + rawdata[rbyte] = 0; + for (i = 0; i < modem_bits; i++) { + rawdata[rbyte] |= ((codec_frames[cbyte] >> cbit) & 1) << rbit; + + rbit--; + if (rbit < 0) { + rbit = 7; + rbyte++; + rawdata[rbyte] = 0; + } + + cbit--; + if (cbit < 0) { + cbit = 7; + cbyte++; + } + + nr_cbits++; + if (nr_cbits == codec_bits) { + if (cbit) + cbyte++; + cbit = 7; + nr_cbits = 0; + } + } + return f->n_codec_frames; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_rx + AUTHOR......: David Rowe + DATE CREATED: 3 August 2014 + + Takes samples from the radio receiver and decodes + them, producing a frame of decoded speech samples. See + demo/freedv_700d_rx.c for an example. + + demod_in[] is an array of received samples sampled at + freedv_get_modem_sample_rate(). To account for difference in the + transmit and receive sample clock frequencies, the number of + demod_in[] samples is time varying. You MUST call freedv_nin() + BEFORE EACH call to freedv_rx() and pass exactly that many samples + to this function: + + short demod_in[freedv_get_n_max_modem_samples(f)]; + short speech_out[freedv_get_n_max_speech_samples(f)]; + + nin = freedv_nin(f); // num input samples for first read + while(fread(demod_in, sizeof(short), nin, fin) == nin) { + nout = freedv_rx(f, speech_out, demod_in); + fwrite(speech_out, sizeof(short), nout, fout); + nin = freedv_nin(f); // num input samples for next read + } + + To help set your buffer sizes, The maximum value of freedv_nin() is + freedv_get_n_max_modem_samples(). + + freedv_rx() returns the number of output speech samples available in + speech_out[], which is sampled at freedv_get_speech_sample_rate(). + You should ALWAYS check the return value of freedv_rx(), and read + EXACTLY that number of speech samples from speech_out[]. + + Not every call to freedv_rx will return speech samples; in some + modes several modem frames are processed before speech samples are + returned. When squelch is active, zero samples may be returned. + + The peak level of demod_in[] is not critical, as the demod works + well over a wide range of amplitude scaling. However avoid clipping + (overload, or samples pinned to +/- 32767). speech_out[] will peak + at just less than +/-32767. + + When squelch is disabled, this function echoes the demod_in[] + samples to speech_out[]. This allows the user to listen to the + channel, which is useful for tuning FreeDV signals or reception of + non-FreeDV signals. + +\*---------------------------------------------------------------------------*/ + +int freedv_rx(struct freedv *f, short speech_out[], short demod_in[]) { + assert(f != NULL); + int i; + int nin = freedv_nin(f); + f->nin_prev = nin; + + assert(nin <= f->n_max_modem_samples); + + /* FSK Rx happens in real floats, so convert to those and call their demod here */ + if( FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) ){ + float rx_float[f->n_max_modem_samples]; + for(i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)) { + + float gain = 1.0f; + + assert(nin <= f->n_max_modem_samples); + COMP rx_fdm[f->n_max_modem_samples]; + + for(i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { + float gain = 2.0f; /* keep levels the same as Octave simulations and C unit tests for real signals */ + return freedv_shortrx(f, speech_out, demod_in, gain); + } + + assert(1); /* should never get here */ + return 0; +} + +/* complex sample input version of freedv_rx() */ + +int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) { + assert(f != NULL); + assert(f->nin <= f->n_max_modem_samples); + int rx_status = 0; + f->nin_prev = freedv_nin(f); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) { + rx_status = freedv_comprx_fdmdv_1600(f, demod_in); + } + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { + rx_status = freedv_comprx_700c(f, demod_in); + } + + if( (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))) { + rx_status = freedv_comprx_fsk(f, demod_in); + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { + rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 0, 2.0f); // was 1.0 ?? + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)) { +#ifdef __LPCNET__ + rx_status = freedv_comprx_2020(f, demod_in); +#endif + } + + short demod_in_short[f->nin_prev]; + + for(int i=0; inin_prev; i++) + demod_in_short[i] = demod_in[i].real; + + return freedv_bits_to_speech(f, speech_out, demod_in_short, rx_status); +} + +/* memory efficient real short version - just for 700D on the SM1000 */ + +int freedv_shortrx(struct freedv *f, short speech_out[], short demod_in[], float gain) { + assert(f != NULL); + int rx_status = 0; + f->nin_prev = f->nin; + + // At this stage short interface only supported for 700D, to help + // memory requirements on stm32 + assert((f->mode == FREEDV_MODE_700D) || (f->mode == FREEDV_MODE_700E)); + assert(f->nin <= f->n_max_modem_samples); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { + rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 1, gain); + } + + return freedv_bits_to_speech(f, speech_out, demod_in, rx_status); +} + + +/* helper function, unpacked bits are much easier to work with inside the modem */ + +static void codec2_decode_upacked(struct freedv *f, short speech_out[], uint8_t unpacked_bits[]) { + int n_packed = (f->bits_per_codec_frame + 7) / 8; + uint8_t packed_codec_bits[n_packed]; + + freedv_pack(packed_codec_bits, unpacked_bits, f->bits_per_codec_frame); + codec2_decode(f->codec2, speech_out, packed_codec_bits); +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: freedv_rx_bits_to_speech + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + The *_rx functions takes off air samples, demodulates and (for some + modes) FEC decodes, giving us a frame of bits. + + This function captures a lot of tricky logic that has been distilled + through experience: + + There may not be a frame of bits returned on every call freedv_*rx* call. + When there are valid bits we need to run the speech decoder. + We may not have demod sync, so various pass through options may happen + with the input samples. + We may squelch based on SNR. + Need to handle various codecs, and varying number of codec frames per modem frame + Squelch audio if test frames are being sent + Determine how many speech samples to return, which will vary if in sync/out of sync + Work with real and complex inputs (complex wrapper) + Attenuate audio on pass through + Deal with 700D first frame burble, and different sync states from OFDM modes like 700D + Output no samples if squelched, we assume it's OK for the audio sink to run dry + A FIFO required on output to smooth sample flow to audio sink + Don't decode when we are sending test frames + +\*---------------------------------------------------------------------------*/ + +int freedv_bits_to_speech(struct freedv *f, short speech_out[], short demod_in[], int rx_status) { + int nout = 0; + int decode_speech = 0; + if ((rx_status & FREEDV_RX_SYNC) == 0) { + + if (!f->squelch_en) { + + /* pass through received samples so we can hear what's going on, e.g. during tuning */ + + if ((f->mode == FREEDV_MODE_2020) || (f->mode == FREEDV_MODE_2020B) || + (f->mode == FREEDV_MODE_2020C)) { + /* 8kHz modem sample rate but 16 kHz speech sample + rate, so we need to resample */ + nout = 2*f->nin_prev; + assert(nout <= freedv_get_n_max_speech_samples(f)); + float tmp[nout]; + for(int i=0; ipassthrough_2020[FDMDV_OS_TAPS_16K+i] = demod_in[i]; + fdmdv_8_to_16(tmp, &f->passthrough_2020[FDMDV_OS_TAPS_16K], nout/2); + for(int i=0; ipassthrough_gain*tmp[i]; + } else { + /* Speech and modem rates might be different */ + int rate_factor = f->modem_sample_rate / f-> speech_sample_rate; + nout = f->nin_prev / rate_factor; + for(int i=0; ipassthrough_gain*demod_in[i * rate_factor]; + } + } + } + + if ((rx_status & FREEDV_RX_SYNC) && (rx_status & FREEDV_RX_BITS) && !f->test_frames) { + /* following logic is tricky so spell it out clearly, see table + in: https://github.com/drowe67/codec2/pull/111 */ + + if (!f->squelch_en) { + decode_speech = 1; + } else { + /* squelch is enabled */ + + /* anti-burble case - don't decode on trial sync unless the + frame has no bit errors. This prevents short lived trial + sync cases generating random bursts of audio */ + if (rx_status & FREEDV_RX_TRIAL_SYNC) { + if ((rx_status & FREEDV_RX_BIT_ERRORS) == 0) + decode_speech = 1; + } + else { + /* sync is solid - decode even through fades as there is still some speech info there */ + if (f->snr_est > f->snr_squelch_thresh) + decode_speech = 1; + } + } + + } + + if (decode_speech) { + if(FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode)|| + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)) { +#ifdef __LPCNET__ + /* LPCNet decoder */ + + int bits_per_codec_frame = lpcnet_bits_per_frame(f->lpcnet); + int data_bits_per_frame = f->ldpc->data_bits_per_frame; + int frames = data_bits_per_frame/bits_per_codec_frame; + + nout = f->n_speech_samples; + for (int i = 0; i < frames; i++) { + lpcnet_dec(f->lpcnet, (char*) f->rx_payload_bits + i*bits_per_codec_frame, speech_out); + /* ear protection: on frames with errors and clipping, reduce level by 12dB */ + if (rx_status & FREEDV_RX_BIT_ERRORS) { + int max = 0.0; + for (int j=0; jlpcnet); j++) + if (abs(speech_out[j]) > max) max = abs(speech_out[j]); + if (max == 32767) + for (int j=0; jlpcnet); j++) speech_out[j] *= 0.25; + } + + speech_out += lpcnet_samples_per_frame(f->lpcnet); + } + +#endif + } else { + /* codec 2 decoder */ + + if(FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { + nout = f->n_speech_samples; + for (int i = 0; i < f->n_codec_frames; i++) { + codec2_decode_upacked(f, speech_out, f->rx_payload_bits + i*f->bits_per_codec_frame); + speech_out += codec2_samples_per_frame(f->codec2); + } + } else { + /* non-interleaved Codec 2 modes */ + + nout = f->n_speech_samples; + if ( (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode))) + codec2_decode(f->codec2, speech_out, f->rx_payload_bits); + else if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { + codec2_decode(f->codec2, &speech_out[ 0], &f->rx_payload_bits[0]); + codec2_decode(f->codec2, &speech_out[320], &f->rx_payload_bits[4]); + } else { + for (int i = 0; i n_codec_frames; i++) { + codec2_decode_upacked(f, speech_out, f->rx_payload_bits + i*f->bits_per_codec_frame); + speech_out += codec2_samples_per_frame(f->codec2); + } + } + } + } + } + + if (f->verbose == 3) { + fprintf(stderr, " sqen: %d nout: %d decsp: %d\n", f->squelch_en, nout, decode_speech); + } + + f->rx_status= rx_status; + assert(nout <= freedv_get_n_max_speech_samples(f)); + return nout; +} + + +/* a way to receive raw frames of bytes, or speech data that will be decompressed externally */ +int freedv_rawdatarx(struct freedv *f, unsigned char *packed_payload_bits, short demod_in[]) +{ + assert(f != NULL); + int nin = freedv_nin(f); + assert(nin <= f->n_max_modem_samples); + COMP demod_in_comp[f->n_max_modem_samples]; + + for(int i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + rx_status = freedv_comprx_fsk(f, demod_in); + f->rx_status = rx_status; + if (rx_status & FREEDV_RX_BITS) { + ret = (freedv_get_bits_per_modem_frame(f) + 7) / 8; + freedv_rawdata_from_codec_frames(f, packed_payload_bits, f->rx_payload_bits); + } + return ret; + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) rx_status = freedv_comprx_fdmdv_1600(f, demod_in); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) rx_status = freedv_comprx_700c(f, demod_in); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC4, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_DATAC13, f->mode)) rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 0, 1.0f); + if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, f->mode)) { + rx_status = freedv_rx_fsk_ldpc_data(f, demod_in); + } + + if (rx_status & FREEDV_RX_BITS) { + ret = (f->bits_per_modem_frame+7)/8; + freedv_pack(packed_payload_bits, f->rx_payload_bits, f->bits_per_modem_frame); + } + + /* might want to check this for errors, e.g. if reliable data is important */ + f->rx_status= rx_status; + + return ret; +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: freedv_get_version + AUTHOR......: Jim Ahlstrom + DATE CREATED: 28 July 2015 + + Return the version of the FreeDV API. This is meant to help API + users determine when incompatible changes have occurred. + +\*---------------------------------------------------------------------------*/ + +int freedv_get_version(void) +{ + return VERSION; +} + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: freedv_get_hash + AUTHOR......: David Rowe + DATE CREATED: July 2020 + + Return the a string with the Git hash of the repo used to build this code. + +\*---------------------------------------------------------------------------*/ + +static char git_hash[] = GIT_HASH; +char *freedv_get_hash(void) +{ + return git_hash; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_set_callback_txt + AUTHOR......: Jim Ahlstrom + DATE CREATED: 28 July 2015 + + Set the callback functions and the callback state pointer that will + be used for the aux txt channel. The freedv_callback_rx is a + function pointer that will be called to return received characters. + The freedv_callback_tx is a function pointer that will be called to + send transmitted characters. The callback state is a user-defined + void pointer that will be passed to the callback functions. Any or + all can be NULL, and the default is all NULL. + + The function signatures are: + void receive_char(void *callback_state, char c); + char transmit_char(void *callback_state); + +\*---------------------------------------------------------------------------*/ + +void freedv_set_callback_txt(struct freedv *f, freedv_callback_rx rx, freedv_callback_tx tx, void *state) +{ + if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) == false) { + f->freedv_put_next_rx_char = rx; + f->freedv_get_next_tx_char = tx; + f->callback_state = state; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_set_callback_txt_sym + AUTHOR......: Mooneer Salem + DATE CREATED: 19 August 2021 + + Set the callback functions and the callback state pointer that will + be used to provide the raw symbols for the aux txt channel. The + freedv_callback_rx_sym is a function pointer that will be called to + return received symbols. The callback state is a user-defined + void pointer that will be passed to the callback function. Any or + all can be NULL, and the default is all NULL. + + The function signature is: + void receive_sym(void *callback_state, COMP sym, COMP amp); + + Note: Active for OFDM modes only (700D/E, 2020). +\*---------------------------------------------------------------------------*/ + +void freedv_set_callback_txt_sym(struct freedv *f, freedv_callback_rx_sym rx, void *state) +{ + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode ) || + FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode ) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode ) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE( FREEDV_MODE_2020C, f->mode)) { + f->freedv_put_next_rx_symbol = rx; + f->callback_state_sym = state; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_set_callback_protocol + AUTHOR......: Brady OBrien + DATE CREATED: 21 February 2016 + + VHF packet data function. + + Set the callback functions and callback pointer that will be used + for the protocol data channel. freedv_callback_protorx will be + called when a frame containing protocol data + arrives. freedv_callback_prototx will be called when a frame + containing protocol information is being generated. Protocol + information is intended to be used to develop protocols and fancy + features atop VHF freedv, much like those present in DMR. Protocol + bits are to be passed in an msb-first char array The number of + protocol bits are findable with freedv_get_protocol_bits + +\*---------------------------------------------------------------------------*/ + +void freedv_set_callback_protocol(struct freedv *f, freedv_callback_protorx rx, freedv_callback_prototx tx, void *callback_state){ + if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) == false) { + f->freedv_put_next_proto = rx; + f->freedv_get_next_proto = tx; + f->proto_callback_state = callback_state; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_set_callback_datarx / freedv_set_callback_datatx + AUTHOR......: Jeroen Vreeken + DATE CREATED: 04 March 2016 + + VHF packet data function. + + Set the callback functions and callback pointer that will be used + for the data channel. freedv_callback_datarx will be called when a + packet has been successfully received. freedv_callback_data_tx will + be called when transmission of a new packet can begin. If the + returned size of the datatx callback is zero the data frame is still + generated, but will contain only a header update. + +\*---------------------------------------------------------------------------*/ + +void freedv_set_callback_data(struct freedv *f, freedv_callback_datarx datarx, freedv_callback_datatx datatx, void *callback_state) { + if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ + if (!f->deframer->fdc) + f->deframer->fdc = freedv_data_channel_create(); + if (!f->deframer->fdc) + return; + + freedv_data_set_cb_rx(f->deframer->fdc, datarx, callback_state); + freedv_data_set_cb_tx(f->deframer->fdc, datatx, callback_state); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_set_data_header + AUTHOR......: Jeroen Vreeken + DATE CREATED: 04 March 2016 + + VHF packet data function. + + Set the data header for the data channel. Header compression will + be used whenever packets from this header are sent. The header will + also be used for fill packets when a data frame is requested without + a packet available. + +\*---------------------------------------------------------------------------*/ + +void freedv_set_data_header(struct freedv *f, unsigned char *header) +{ + if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ + if (!f->deframer->fdc) + f->deframer->fdc = freedv_data_channel_create(); + if (!f->deframer->fdc) + return; + + freedv_data_set_header(f->deframer->fdc, header); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: freedv_get_modem_stats + AUTHOR......: Jim Ahlstrom + DATE CREATED: 28 July 2015 + + Return data from the modem. The arguments are pointers to the data + items. The pointers can be NULL if the data item is not wanted. + +\*---------------------------------------------------------------------------*/ + +void freedv_get_modem_stats(struct freedv *f, int *sync, float *snr_est) +{ + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) + fdmdv_get_demod_stats(f->fdmdv, &f->stats); + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) + cohpsk_get_demod_stats(f->cohpsk, &f->stats); + if (sync) *sync = f->sync; + if (snr_est) *snr_est = f->snr_est; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: freedv_set_* + AUTHOR......: Jim Ahlstrom + DATE CREATED: 28 July 2015 + + Set some parameters used by FreeDV. It is possible to write a macro + using ## for this, but I wasn't sure it would be 100% portable. + +\*---------------------------------------------------------------------------*/ + +void freedv_set_test_frames (struct freedv *f, int val) {f->test_frames = val;} +void freedv_set_test_frames_diversity (struct freedv *f, int val) {f->test_frames_diversity = val;} +void freedv_set_squelch_en (struct freedv *f, bool val) {f->squelch_en = val;} +void freedv_set_total_bit_errors (struct freedv *f, int val) {f->total_bit_errors = val;} +void freedv_set_total_bits (struct freedv *f, int val) {f->total_bits = val;} +void freedv_set_total_bit_errors_coded (struct freedv *f, int val) {f->total_bit_errors_coded = val;} +void freedv_set_total_bits_coded (struct freedv *f, int val) {f->total_bits_coded = val;} +void freedv_set_total_packet_errors (struct freedv *f, int val) {f->total_packet_errors = val;} +void freedv_set_total_packets (struct freedv *f, int val) {f->total_packets = val;} +void freedv_set_varicode_code_num (struct freedv *f, int val) {varicode_set_code_num(&f->varicode_dec_states, val);} +void freedv_set_ext_vco (struct freedv *f, int val) {f->ext_vco = val;} +void freedv_set_snr_squelch_thresh (struct freedv *f, float val) {f->snr_squelch_thresh = val;} +void freedv_set_tx_amp (struct freedv *f, float amp) {f->tx_amp = amp;} +void freedv_passthrough_gain (struct freedv *f, float g) {f->passthrough_gain = g;} + +/* supported by 700C, 700D, 700E */ + +void freedv_set_clip(struct freedv *f, bool val) { + f->clip_en = val; + if (is_ofdm_mode(f)) { + f->ofdm->clip_en = val; + /* really should have BPF if we clip */ + if (val) + ofdm_set_tx_bpf(f->ofdm, true); + } +} + +/* Band Pass Filter to cleanup OFDM tx waveform, only supported by some modes */ + +void freedv_set_tx_bpf(struct freedv *f, int val) { + if (is_ofdm_mode(f)) { + ofdm_set_tx_bpf(f->ofdm, val); + } +} + +void freedv_set_phase_est_bandwidth_mode(struct freedv *f, int val) { + if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { + ofdm_set_phase_est_bandwidth_mode(f->ofdm, val); + } +} + +// For those FreeDV modes using the codec 2 700C vocoder 700C/D/E/800XA +void freedv_set_eq(struct freedv *f, bool val) { + if (f->codec2 != NULL) { + codec2_700c_eq(f->codec2, val); + } +} + +void freedv_set_verbose(struct freedv *f, int verbosity) { + f->verbose = verbosity; + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { + cohpsk_set_verbose(f->cohpsk, f->verbose); + } + if (is_ofdm_mode(f)) { + ofdm_set_verbose(f->ofdm, f->verbose-1); + } +} + +void freedv_set_callback_error_pattern(struct freedv *f, freedv_calback_error_pattern cb, void *state) +{ + f->freedv_put_error_pattern = cb; + f->error_pattern_callback_state = state; +} + +void freedv_set_carrier_ampl(struct freedv *f, int c, float ampl) { + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) + { + cohpsk_set_carrier_ampl(f->cohpsk, c, ampl); + } +} + +/*---------------------------------------------------------------------------* \ + + FUNCTIONS...: freedv_set_sync + AUTHOR......: David Rowe + DATE CREATED: May 2018 + + Extended control of sync state machines for OFDM modes. + + Ensure this is called in the same thread as freedv_rx(). + +\*---------------------------------------------------------------------------*/ + +void freedv_set_sync(struct freedv *freedv, int sync_cmd) { + assert (freedv != NULL); + + if (freedv->ofdm != NULL) { + ofdm_set_sync(freedv->ofdm, sync_cmd); + } +} + +// this also selects burst mode +void freedv_set_frames_per_burst(struct freedv *freedv, int framesperburst) { + assert (freedv != NULL); + if (freedv->ofdm != NULL) { + // change of nomenclature as we cross into the OFDM modem layer. In the + // OFDM modem we have packets that contain multiple "modem frames" + ofdm_set_packets_per_burst(freedv->ofdm, framesperburst); + } +} + +struct FSK * freedv_get_fsk(struct freedv *f){ + return f->fsk; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: freedv_get_* + AUTHOR......: Jim Ahlstrom + DATE CREATED: 28 July 2015 + + Get some parameters from FreeDV. + +\*---------------------------------------------------------------------------*/ + +int freedv_get_protocol_bits (struct freedv *f) {return f->n_protocol_bits;} +int freedv_get_mode (struct freedv *f) {return f->mode;} +int freedv_get_test_frames (struct freedv *f) {return f->test_frames;} +int freedv_get_speech_sample_rate (struct freedv *f) {return f-> speech_sample_rate;} +int freedv_get_n_speech_samples (struct freedv *f) {return f->n_speech_samples;} +int freedv_get_modem_sample_rate (struct freedv *f) {return f->modem_sample_rate;} +int freedv_get_modem_symbol_rate (struct freedv *f) {return f->modem_symbol_rate;} +int freedv_get_n_max_modem_samples (struct freedv *f) {return f->n_max_modem_samples;} +int freedv_get_n_nom_modem_samples (struct freedv *f) {return f->n_nom_modem_samples;} +int freedv_get_n_tx_modem_samples (struct freedv *f) {return f->n_nat_modem_samples;} +int freedv_get_total_bits (struct freedv *f) {return f->total_bits;} +int freedv_get_total_bit_errors (struct freedv *f) {return f->total_bit_errors;} +int freedv_get_total_bits_coded (struct freedv *f) {return f->total_bits_coded;} +int freedv_get_total_bit_errors_coded (struct freedv *f) {return f->total_bit_errors_coded;} +int freedv_get_total_packets (struct freedv *f) {return f->total_packets;} +int freedv_get_total_packet_errors (struct freedv *f) {return f->total_packet_errors;} +int freedv_get_sync (struct freedv *f) {return f->sync;} +struct CODEC2 *freedv_get_codec2 (struct freedv *f) {return f->codec2;} +int freedv_get_bits_per_codec_frame (struct freedv *f) {return f->bits_per_codec_frame;} +int freedv_get_bits_per_modem_frame (struct freedv *f) {return f->bits_per_modem_frame;} +int freedv_get_rx_status (struct freedv *f) {return f->rx_status;} +void freedv_get_fsk_S_and_N (struct freedv *f, float *S, float *N) { *S = f->fsk_S[0]; *N = f->fsk_N[0]; } + + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS...: freedv_set_tuning_range + AUTHOR......: Simon Lang - DJ2LS + DATE CREATED: 18 feb 2022 + DEFAULT.....: fmin: -50.0Hz fmax: 50.0Hz + DESCRIPTION.: + + |<---fmin - | rx centre frequency | + fmax--->| + + Useful for handling frequency offsets, + e.g. caused by an imprecise VFO, the trade off is more CPU power is required. + +\*---------------------------------------------------------------------------*/ +int freedv_set_tuning_range(struct freedv *freedv, float val_fmin, float val_fmax) { + + if (is_ofdm_data_mode(freedv) && (strcmp(freedv->ofdm->data_mode, "burst") == 0)) { + freedv->ofdm->fmin = val_fmin; + freedv->ofdm->fmax = val_fmax; + return 1; + } else { + return 0; + } +} + + +int freedv_get_n_max_speech_samples(struct freedv *f) { + /* When "passing through" demod samples to the speech output + (e.g. no sync and squelch off) f->nin bounces around with + timing variations. So we may return + freedv_get_n_max_modem_samples() via the speech_output[] + array */ + int max_output_passthrough_samples; + if (FDV_MODE_ACTIVE(FREEDV_MODE_2020, f->mode) || + FDV_MODE_ACTIVE(FREEDV_MODE_2020B, f->mode) || + FDV_MODE_ACTIVE(FREEDV_MODE_2020C, f->mode)) + // In 2020 we oversample the input modem samples from 8->16 kHz + max_output_passthrough_samples = 2*freedv_get_n_max_modem_samples(f); + else + max_output_passthrough_samples = freedv_get_n_max_modem_samples(f); + + if (max_output_passthrough_samples > f->n_speech_samples) + return max_output_passthrough_samples; + else + return f->n_speech_samples; +} + +// Now dummy obsolete call +int freedv_get_sync_interleaver(struct freedv *f) { + return 1; +} + +int freedv_get_sz_error_pattern(struct freedv *f) +{ + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { + /* if diversity disabled callback sends error pattern for upper and lower carriers */ + return f->sz_error_pattern * (2 - f->test_frames_diversity); + } else { + return f->sz_error_pattern; + } +} + +// Get modem status, scatter/eye diagram for plotting, other goodies +void freedv_get_modem_extended_stats(struct freedv *f, struct MODEM_STATS *stats) +{ + if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) + fdmdv_get_demod_stats(f->fdmdv, stats); + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { + fsk_get_demod_stats(f->fsk, stats); /* eye diagram samples, clock offset etc */ + stats->snr_est = f->snr_est; /* estimated when fsk_demod() called in freedv_fsk.c */ + stats->sync = f->sync; /* sync indicator comes from framing layer */ + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) { + fmfsk_get_demod_stats(f->fmfsk, stats); + stats->snr_est = f->snr_est; + stats->sync = f->sync; + } + + if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { + cohpsk_get_demod_stats(f->cohpsk, stats); + } + + if (is_ofdm_mode(f)) { + // OFDM modem stats updated when demod runs, so copy last update + // We need to avoid over writing the FFT states which are updated by a different function + // TODO we need a better design here: Issue #182 +#ifndef __EMBEDDED__ + size_t ncopy = (void*)stats->rx_eye - (void*)stats; + memcpy(stats, &f->stats, ncopy); +#endif + stats->snr_est = f->snr_est; + stats->sync = f->sync; + } +} + +int freedv_get_n_tx_preamble_modem_samples(struct freedv *f) { + if (f->mode == FREEDV_MODE_FSK_LDPC) { + struct FSK *fsk = f->fsk; + int npreamble_symbols = 50*(fsk->mode>>1); + return fsk->Ts*npreamble_symbols; + } else if (is_ofdm_data_mode(f)) { + return f->ofdm->samplesperframe; + } + + return 0; +} + +int freedv_get_n_tx_postamble_modem_samples(struct freedv *f) { + if (is_ofdm_data_mode(f)) { + return f->ofdm->samplesperframe; + } + + return 0; +} + +// from http://stackoverflow.com/questions/10564491/function-to-calculate-a-crc16-checksum + +unsigned short freedv_gen_crc16(unsigned char* data_p, int length) { + unsigned char x; + unsigned short crc = 0xFFFF; + + while (length--) { + x = crc >> 8 ^ *data_p++; + x ^= x>>4; + crc = (crc << 8) ^ ((unsigned short)(x << 12)) ^ ((unsigned short)(x <<5)) ^ ((unsigned short)x); + } + + return crc; +} diff --git a/src/freedv_api.h b/src/freedv_api.h new file mode 100644 index 0000000..add15d4 --- /dev/null +++ b/src/freedv_api.h @@ -0,0 +1,311 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_api.h + AUTHOR......: David Rowe + DATE CREATED: August 2014 + + Library of API functions that implement the FreeDV API, useful for + embedding FreeDV in other programs. Please see: + + 1. README_freedv.md + 2. Notes on function use in freedv_api.c + 3. Simple demo programs in the "demo" directory + 4. The full featured command line freedv_tx.c and freedv_rx.c programs + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2014 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __FREEDV_API__ +#define __FREEDV_API__ + +#include +#include +// This declares a single-precision (float) complex number +#include "comp.h" + +#ifdef __cplusplus + extern "C" { +#endif + +// available speech modes +#define FREEDV_MODE_1600 0 +#define FREEDV_MODE_2400A 3 +#define FREEDV_MODE_2400B 4 +#define FREEDV_MODE_800XA 5 +#define FREEDV_MODE_700C 6 +#define FREEDV_MODE_700D 7 +#define FREEDV_MODE_700E 13 +#define FREEDV_MODE_2020 8 +#define FREEDV_MODE_2020B 16 +#define FREEDV_MODE_2020C 17 + +// available data modes +#define FREEDV_MODE_FSK_LDPC 9 +#define FREEDV_MODE_DATAC1 10 +#define FREEDV_MODE_DATAC3 12 +#define FREEDV_MODE_DATAC0 14 +#define FREEDV_MODE_DATAC4 18 +#define FREEDV_MODE_DATAC13 19 + +// Sample rates used +#define FREEDV_FS_8000 8000 +#define FREEDV_FS_16000 16000 + +// peak (complex) sample value from Tx modulator +#define FREEDV_PEAK 16384 + +// Return code flags for freedv_get_rx_status() function +#define FREEDV_RX_TRIAL_SYNC 0x1 // demodulator has trial sync +#define FREEDV_RX_SYNC 0x2 // demodulator has sync +#define FREEDV_RX_BITS 0x4 // data bits have been returned +#define FREEDV_RX_BIT_ERRORS 0x8 // FEC may not have corrected all bit errors (not all parity checks OK) + +// optional operator control of OFDM modem state machine +#define FREEDV_SYNC_UNSYNC 0 // force sync state machine to lose sync, and search for new sync +#define FREEDV_SYNC_AUTO 1 // falls out of sync automatically +#define FREEDV_SYNC_MANUAL 2 // fall out of sync only under operator control + +#define FREEDV_VARICODE_MAX_BITS 12 // max bits for each ASCII character + +// These macros allow us to disable unwanted modes at compile tine, for example +// to save memory on embedded systems or the remove need to link other +// libraries. By default we enable all modes. Disable during compile time e.g +// -DFREEDV_MODE_1600_EN=0 will enable all but FreeDV 1600. Or the other way +// round -DFREEDV_MODE_EN_DEFAULT=0 -DFREEDV_MODE_1600_EN=1 will enable only +// FreeDV 1600 + +#ifndef FREEDV_MODE_EN_DEFAULT +#define FREEDV_MODE_EN_DEFAULT 1 +#endif + +#if !defined(FREEDV_MODE_1600_EN) + #define FREEDV_MODE_1600_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_700C_EN) + #define FREEDV_MODE_700C_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_700D_EN) + #define FREEDV_MODE_700D_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_700E_EN) + #define FREEDV_MODE_700E_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_2400A_EN) + #define FREEDV_MODE_2400A_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_2400B_EN) + #define FREEDV_MODE_2400B_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_800XA_EN) + #define FREEDV_MODE_800XA_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_2020_EN) + #define FREEDV_MODE_2020_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_2020B_EN) + #define FREEDV_MODE_2020B_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_2020C_EN) + #define FREEDV_MODE_2020C_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_FSK_LDPC_EN) + #define FREEDV_MODE_FSK_LDPC_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_DATAC0_EN) + #define FREEDV_MODE_DATAC0_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_DATAC1_EN) + #define FREEDV_MODE_DATAC1_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_DATAC3_EN) + #define FREEDV_MODE_DATAC3_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_DATAC4_EN) + #define FREEDV_MODE_DATAC4_EN FREEDV_MODE_EN_DEFAULT +#endif +#if !defined(FREEDV_MODE_DATAC13_EN) + #define FREEDV_MODE_DATAC13_EN FREEDV_MODE_EN_DEFAULT +#endif + +#define FDV_MODE_ACTIVE(mode_name, var) ((mode_name##_EN) == 0 ? 0: (var) == mode_name) + +// struct that hold state information for one freedv instance +struct freedv; + +// Some modes allow extra configuration parameters +struct freedv_advanced { + int interleave_frames; // now unused but remains to prevent breaking API for legacy apps + + // parameters for FREEDV_MODE_FSK_LDPC + int M; // 2 or 4 FSK + int Rs; // Symbol rate Hz + int Fs; // Sample rate Hz + int first_tone; // Freq of first tone Hz + int tone_spacing; // Spacing between tones Hz + char *codename; // LDPC codename, from codes listed in ldpc_codes.c +}; + +// Called when text message char is decoded +typedef void (*freedv_callback_rx)(void *, char); +// Called when new text message char is needed +typedef char (*freedv_callback_tx)(void *); +typedef void (*freedv_calback_error_pattern) + (void *error_pattern_callback_state, short error_pattern[], int sz_error_pattern); + +// Protocol bits are packed MSB-first +// Called when a frame containing protocol data is decoded +typedef void (*freedv_callback_protorx)(void *, char *); +// Called when a frame containing protocol data is to be sent +typedef void (*freedv_callback_prototx)(void *, char *); + +// Data packet callbacks +// Called when a packet has been received +typedef void (*freedv_callback_datarx)(void *, unsigned char *packet, size_t size); +// Called when a new packet can be send +typedef void (*freedv_callback_datatx)(void *, unsigned char *packet, size_t *size); + + +/*---------------------------------------------------------------------------*\ + + FreeDV API functions + +\*---------------------------------------------------------------------------*/ + +// open, close ---------------------------------------------------------------- + +struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv); +struct freedv *freedv_open(int mode); +void freedv_close (struct freedv *freedv); + +// Transmit ------------------------------------------------------------------- + +void freedv_tx (struct freedv *freedv, short mod_out[], short speech_in[]); +void freedv_comptx (struct freedv *freedv, COMP mod_out[], short speech_in[]); +void freedv_datatx (struct freedv *f, short mod_out[]); +int freedv_data_ntxframes (struct freedv *freedv); +void freedv_rawdatatx (struct freedv *f, short mod_out[], unsigned char *packed_payload_bits); +void freedv_rawdatacomptx (struct freedv *f, COMP mod_out[], unsigned char *packed_payload_bits); +int freedv_rawdatapreambletx (struct freedv *f, short mod_out[]); +int freedv_rawdatapreamblecomptx (struct freedv *f, COMP mod_out[]); +int freedv_rawdatapostambletx (struct freedv *f, short mod_out[]); +int freedv_rawdatapostamblecomptx (struct freedv *f, COMP mod_out[]); + +// Receive ------------------------------------------------------------------- + +int freedv_nin (struct freedv *freedv); +int freedv_rx (struct freedv *freedv, short speech_out[], short demod_in[]); +int freedv_shortrx (struct freedv *freedv, short speech_out[], short demod_in[], float gain); +int freedv_floatrx (struct freedv *freedv, short speech_out[], float demod_in[]); +int freedv_comprx (struct freedv *freedv, short speech_out[], COMP demod_in[]); +int freedv_rawdatarx (struct freedv *freedv, unsigned char *packed_payload_bits, short demod_in[]); +int freedv_rawdatacomprx (struct freedv *freedv, unsigned char *packed_payload_bits, COMP demod_in[]); + +// Helper functions ------------------------------------------------------------------- + +int freedv_codec_frames_from_rawdata(struct freedv *freedv, unsigned char *codec_frames, unsigned char *rawdata); +int freedv_rawdata_from_codec_frames(struct freedv *freedv, unsigned char *rawdata, unsigned char *codec_frames); +unsigned short freedv_gen_crc16(unsigned char* bytes, int nbytes); +void freedv_pack(unsigned char *bytes, unsigned char *bits, int nbits); +void freedv_unpack(unsigned char *bits, unsigned char *bytes, int nbits); +unsigned short freedv_crc16_unpacked(unsigned char *bits, int nbits); +int freedv_check_crc16_unpacked(unsigned char *unpacked_bits, int nbits); + +// Set parameters ------------------------------------------------------------ + +void freedv_set_callback_txt (struct freedv *freedv, freedv_callback_rx rx, freedv_callback_tx tx, void *callback_state); +void freedv_set_callback_protocol (struct freedv *freedv, freedv_callback_protorx rx, freedv_callback_prototx tx, void *callback_state); +void freedv_set_callback_data (struct freedv *freedv, freedv_callback_datarx datarx, freedv_callback_datatx datatx, void *callback_state); +void freedv_set_test_frames (struct freedv *freedv, int test_frames); +void freedv_set_test_frames_diversity (struct freedv *freedv, int test_frames_diversity); +void freedv_set_smooth_symbols (struct freedv *freedv, int smooth_symbols); +void freedv_set_squelch_en (struct freedv *freedv, bool squelch_en); +void freedv_set_snr_squelch_thresh (struct freedv *freedv, float snr_squelch_thresh); +void freedv_set_clip (struct freedv *freedv, bool val); +void freedv_set_total_bit_errors (struct freedv *freedv, int val); +void freedv_set_total_bits (struct freedv *freedv, int val); +void freedv_set_total_bit_errors_coded (struct freedv *freedv, int val); +void freedv_set_total_bits_coded (struct freedv *freedv, int val); +void freedv_set_total_packets (struct freedv *freedv, int val); +void freedv_set_total_packet_errors (struct freedv *freedv, int val); +void freedv_set_callback_error_pattern (struct freedv *freedv, freedv_calback_error_pattern cb, void *state); +void freedv_set_varicode_code_num (struct freedv *freedv, int val); +void freedv_set_data_header (struct freedv *freedv, unsigned char *header); +void freedv_set_carrier_ampl (struct freedv *freedv, int c, float ampl); +void freedv_set_sync (struct freedv *freedv, int sync_cmd); +void freedv_set_verbose (struct freedv *freedv, int verbosity); +void freedv_set_tx_bpf (struct freedv *freedv, int val); +void freedv_set_tx_amp (struct freedv *freedv, float amp); +void freedv_set_ext_vco (struct freedv *f, int val); +void freedv_set_phase_est_bandwidth_mode(struct freedv *f, int val); +void freedv_set_eq (struct freedv *f, bool val); +void freedv_set_frames_per_burst (struct freedv *f, int framesperburst); +void freedv_passthrough_gain (struct freedv *f, float g); +int freedv_set_tuning_range (struct freedv *freedv, float val_fmin, float val_fmax); + +// Get parameters ------------------------------------------------------------------------- + +struct MODEM_STATS; + +int freedv_get_version(void); +char *freedv_get_hash(void); +int freedv_get_mode (struct freedv *freedv); +void freedv_get_modem_stats (struct freedv *freedv, int *sync, float *snr_est); +void freedv_get_modem_extended_stats(struct freedv *freedv, struct MODEM_STATS *stats); +int freedv_get_test_frames (struct freedv *freedv); + +int freedv_get_speech_sample_rate (struct freedv *freedv); +int freedv_get_n_speech_samples (struct freedv *freedv); +int freedv_get_n_max_speech_samples (struct freedv *freedv); + +int freedv_get_modem_sample_rate (struct freedv *freedv); +int freedv_get_modem_symbol_rate (struct freedv *freedv); +int freedv_get_n_max_modem_samples (struct freedv *freedv); +int freedv_get_n_nom_modem_samples (struct freedv *freedv); +int freedv_get_n_tx_modem_samples (struct freedv *freedv); +int freedv_get_n_tx_preamble_modem_samples(struct freedv *freedv); +int freedv_get_n_tx_postamble_modem_samples(struct freedv *freedv); + +// bit error rate stats +int freedv_get_total_bits (struct freedv *freedv); +int freedv_get_total_bit_errors (struct freedv *freedv); +int freedv_get_total_bits_coded (struct freedv *freedv); +int freedv_get_total_bit_errors_coded (struct freedv *freedv); +int freedv_get_total_packets (struct freedv *freedv); +int freedv_get_total_packet_errors (struct freedv *freedv); + +int freedv_get_rx_status (struct freedv *freedv); +void freedv_get_fsk_S_and_N (struct freedv *freedv, float *S, float *N); + +int freedv_get_sync (struct freedv *freedv); +int freedv_get_sync_interleaver (struct freedv *freedv); + +// access to speech codec states +struct FSK * freedv_get_fsk (struct freedv *f); +struct CODEC2 *freedv_get_codec2 (struct freedv *freedv); + +int freedv_get_bits_per_codec_frame (struct freedv *freedv); +int freedv_get_bits_per_modem_frame (struct freedv *freedv); +int freedv_get_sz_error_pattern (struct freedv *freedv); +int freedv_get_protocol_bits (struct freedv *freedv); + +#ifdef __cplusplus +} +#endif + +#endif //__FREEDV_API__ diff --git a/src/freedv_api_internal.h b/src/freedv_api_internal.h new file mode 100644 index 0000000..b45a880 --- /dev/null +++ b/src/freedv_api_internal.h @@ -0,0 +1,239 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_api_internal.h + AUTHOR......: David Rowe + DATE CREATED: August 2014 + + This declares the structure freedv. A pointer to this structure is + returned by the FreeDV API freedv_open() function. The pointer is used + by the other FreeDV API functions declared in freedv_api.h. This + structure is intended to be internal to the FreeDV API. The public + functions are declared in freedv_api.h. Changes to this structure + are expected. Changes (except additions) to freedv_api.h are + discouraged. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2014 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __FREEDV_API_INTERNAL__ +#define __FREEDV_API_INTERNAL__ + +#include "varicode.h" +#include "fsk.h" +#include "fmfsk.h" +#include "codec2_fdmdv.h" +#include "codec2_cohpsk.h" +#ifdef __LPCNET__ +#include "lpcnet_freedv.h" +#endif +#include "freedv_api.h" + +#ifdef __cplusplus + extern "C" { +#endif + +// Fudge factors to normalise Tx power across modes +#define NORM_PWR_FSK 0.5 + +// identifiers for non Codec 2 Speech codecs, make sure no overlap with CODEC2_XXX modes +#define CODEC_MODE_LPCNET_1733 100 + +extern char *rx_sync_flags_to_text[]; // converts flags above to more meaningful text + +struct freedv { + int mode; + + // states for various modules we support + struct CODEC2 *codec2; + struct FDMDV *fdmdv; + struct COHPSK *cohpsk; + struct FSK *fsk; + struct FMFSK *fmfsk; + struct OFDM *ofdm; + struct LDPC *ldpc; + struct MODEM_STATS stats; // working memory for when we call xxx_stats function for each demod +#ifdef __LPCNET__ + struct LPCNetFreeDV *lpcnet; +#endif + + struct freedv_vhf_deframer * deframer; // Extracts frames from VHF stream + + struct quisk_cfFilter * ptFilter7500to8000; // Filters to change to/from 7500 and 8000 sps for 700 .... 700C + struct quisk_cfFilter * ptFilter8000to7500; + + int n_speech_samples; // number of speech samples we need for each freedv_tx() call + // num of speech samples output by freedv_rx() call + int n_nom_modem_samples; // size of tx modem sample buffers + int n_max_modem_samples; // make your rx modem sample buffers this big + int n_nat_modem_samples; // tx modem sample block length as used by the modem before interpolation to output + // usually the same as n_nom_modem_samples, except for 700C + int modem_sample_rate; // Caller is responsible for meeting this + int modem_symbol_rate; // Useful for ext_vco operation on 2400A and 800XA + int speech_sample_rate; // 8 kHz or 16 kHz (high fidelity) + + int bits_per_codec_frame; + int bits_per_modem_frame; // number of modem payload bits in each modem frame (usually compressed speech) + int n_codec_frames; // number of codec frames in each modem frame + uint8_t *tx_payload_bits; // payload bits (usually compressed speech) for a modem frame ... + uint8_t *rx_payload_bits; // ... one bit per char for some modes, packed for others + + /* FDMDV buffers for FreeDV 1600 -------------------------------------------------------------*/ + + int *fdmdv_bits; + int *fdmdv_tx_bits; + int *fdmdv_rx_bits; + + /* test frame states -------------------------------------------------------------------------*/ + + int *ptest_bits_coh; + int *ptest_bits_coh_end; + + int test_frames; // set this baby for 1 to tx/rx test frames to look at bit error stats + int test_frames_diversity; // 1 -> used combined carriers for error counting on 700 waveforms + int test_frame_sync_state; + int test_frame_sync_state_upper; // when test_frames_diveristy==0 we need extra states for upper carriers + int test_frame_count; + int total_bits; + int total_bit_errors; + int total_bits_coded; + int total_bit_errors_coded; + int total_packets; + int total_packet_errors; + int sz_error_pattern; + + /* optional user defined function to pass error pattern when a test frame is received */ + + void *error_pattern_callback_state; + void (*freedv_put_error_pattern)(void *error_pattern_callback_state, short error_pattern[], int sz_error_pattern); + + /* Misc ---------------------------------------------------------------------------------------------*/ + + int *tx_bits; /* FSK modem frame under construction */ + int tx_sync_bit; + int frames; + bool clip_en; /* non-zero for modem Tx clipping to lower PAPR */ + int sync; /* we set this when a mode is in sync */ + int evenframe; + float snr_est; /* we set this each time the modes's demod estimates SNR */ + float snr_squelch_thresh; + bool squelch_en; + int nin, nin_prev; + int verbose; + int ext_vco; /* 2400A/800XA use external VCO flag */ + float *passthrough_2020; /* 2020 interpolating filter */ + float tx_amp; /* amplitude of tx samples */ + float passthrough_gain; + + /* useful constants for OFDM modes ------------------------------------------------------------------*/ + + int ofdm_bitsperpacket; + int ofdm_bitsperframe; + int ofdm_nuwbits; + int ofdm_ntxtbits; + int rx_status; + + /* Varicode txt channel states ----------------------------------------------------------------------*/ + + struct VARICODE_DEC varicode_dec_states; + short tx_varicode_bits[VARICODE_MAX_BITS]; + int nvaricode_bits; + int varicode_bit_index; + + /* interleaved LDPC OFDM states ---------------------------------------------------------------------*/ + + COMP *codeword_symbols; + float *codeword_amps; + COMP *rx_syms; + float *rx_amps; + COMP *mod_out; // output buffer of interleaved frames + + /* user defined function ptrs to produce and consume ASCII + characters using aux txt channel */ + + char (*freedv_get_next_tx_char)(void *callback_state); + void (*freedv_put_next_rx_char)(void *callback_state, char c); + void (*freedv_put_next_rx_symbol)(void *callback_state, _Complex float sym, float amp); + void *callback_state; + void *callback_state_sym; + + /* user defined functions to produce and consume protocol bits */ + /* Protocol bits are packed MSB-first */ + void (*freedv_put_next_proto)(void *callback_state, char *proto_bits_packed); + void (*freedv_get_next_proto)(void *callback_state, char *proto_bits_packed); + void *proto_callback_state; + int n_protocol_bits; + + /* states needed for FSK LDPC */ + float *frame_llr; + int frame_llr_size, frame_llr_nbits; + float *twoframes_llr; + uint8_t *twoframes_hard; + int fsk_ldpc_thresh1, fsk_ldpc_thresh2, fsk_ldpc_baduw_thresh; + int fsk_ldpc_state, fsk_ldpc_best_location, fsk_ldpc_baduw; + float fsk_ldpc_snr; + float fsk_S[2], fsk_N[2]; +}; + +// open function for each mode + +void freedv_1600_open(struct freedv *f); +void freedv_700c_open(struct freedv *f); +void freedv_ofdm_voice_open(struct freedv *f, char *mode); +void freedv_2020x_open(struct freedv *f); +void freedv_2400a_open(struct freedv *f); +void freedv_2400b_open(struct freedv *f); +void freedv_800xa_open(struct freedv *f); +void freedv_fsk_ldpc_open(struct freedv *f, struct freedv_advanced *adv); +void freedv_ofdm_data_open(struct freedv *f); + +// each mode has tx and rx functions in various flavours for real and complex valued samples + +void freedv_comptx_fdmdv_1600(struct freedv *f, COMP mod_out[]); +int freedv_comprx_fdmdv_1600(struct freedv *f, COMP demod_in[]); + +void freedv_comptx_700c(struct freedv *f, COMP mod_out[]); +int freedv_comprx_700c(struct freedv *f, COMP demod_in_8kHz[]); + +void freedv_comptx_ofdm(struct freedv *f, COMP mod_out[]); +int freedv_comp_short_rx_ofdm(struct freedv *f, void *demod_in_8kHz, int demod_in_is_short, float gain); + +void freedv_comptx_2020(struct freedv *f, COMP mod_out[]); +int freedv_comprx_2020(struct freedv *f, COMP demod_in[]); + +void freedv_comptx_fsk_voice(struct freedv *f, COMP mod_out[]); +void freedv_tx_fsk_voice(struct freedv *f, short mod_out[]); +void freedv_tx_fsk_data(struct freedv *f, short mod_out[]); +int freedv_comprx_fsk(struct freedv *f, COMP demod_in[]); +int freedv_floatrx(struct freedv *f, short speech_out[], float demod_in[]); + +void freedv_tx_fsk_ldpc_data(struct freedv *f, COMP mod_out[]); +void freedv_tx_fsk_ldpc_data_preamble(struct freedv *f, COMP mod_out[], int npreamble_bits, int npreamble_samples); +int freedv_rx_fsk_ldpc_data(struct freedv *f, COMP demod_in[]); + +int freedv_bits_to_speech(struct freedv *f, short speech_out[], short demod_in[], int rx_status); + +// for the reliable text protocol we need to pass symbols back rather than text +typedef void (*freedv_callback_rx_sym)(void *, _Complex float, float); +void freedv_set_callback_txt_sym (struct freedv *freedv, freedv_callback_rx_sym rx, void *callback_state); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/freedv_data_channel.c b/src/freedv_data_channel.c new file mode 100644 index 0000000..7d361a1 --- /dev/null +++ b/src/freedv_data_channel.c @@ -0,0 +1,314 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_data_channel.c + AUTHOR......: Jeroen Vreeken + DATE CREATED: 03 March 2016 + + Data channel for ethernet like packets in freedv VHF frames. + Currently designed for- + * 2 control bits per frame + * 4 byte counter bits per frame + * 64 bits of data per frame + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 Jeroen Vreeken + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include "freedv_data_channel.h" + +#include +#include + +static unsigned char fdc_header_bcast[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + +/* CCIT CRC table (0x1201 polynomal) */ +static unsigned short fdc_crc_table[256] = { + 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, + 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, + 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, + 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, + 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, + 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, + 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, + 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, + 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, + 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, + 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, + 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, + 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, + 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, + 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, + 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, + 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, + 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, + 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, + 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, + 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, + 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, + 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, + 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, + 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, + 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, + 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, + 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, + 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, + 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, + 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, + 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 +}; + +static unsigned short fdc_crc(unsigned char *buffer, size_t len) +{ + unsigned short crc = 0xffff; + size_t i; + + for (i = 0; i < len; i++, buffer++) { + crc = (crc >> 8) ^ fdc_crc_table[(crc ^ *buffer) & 0xff]; + } + + return crc ^ 0xffff; +} + +/* CRC4 0x03 polynomal */ +static unsigned char fdc_crc4(unsigned char *buffer, size_t len) +{ + unsigned char crc = 0x0f; + size_t i; + + for (i = 0; i < len; i++, buffer++) { + int shift; + + for (shift = 7; shift <= 0; shift--) { + crc <<= 1; + if ((*buffer >> shift) & 0x1) + crc |= 1; + if (crc & 0x10) + crc ^= 0x03; + } + } + + return crc & 0x0f; +} + +struct freedv_data_channel *freedv_data_channel_create(void) +{ + struct freedv_data_channel *fdc; + + fdc = (struct freedv_data_channel *) calloc(1, sizeof(struct freedv_data_channel)); + if (fdc == NULL) + return NULL; + + freedv_data_set_header(fdc, fdc_header_bcast); + + memcpy(fdc->rx_header, fdc->tx_header, 8); + + return fdc; +} + +void freedv_data_channel_destroy(struct freedv_data_channel *fdc) +{ + free(fdc); +} + + +void freedv_data_set_cb_rx(struct freedv_data_channel *fdc, freedv_data_callback_rx cb, void *state) +{ + fdc->cb_rx = cb; + fdc->cb_rx_state = state; +} + +void freedv_data_set_cb_tx(struct freedv_data_channel *fdc, freedv_data_callback_tx cb, void *state) +{ + fdc->cb_tx = cb; + fdc->cb_tx_state = state; +} + +void freedv_data_channel_rx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int from_bit, int bcast_bit, int crc_bit, int end_bits) +{ + int copy_bits; + if (end_bits) { + copy_bits = end_bits; + } else { + copy_bits = size; + } + + /* New packet? */ + if (fdc->packet_rx_cnt == 0) { + /* Does the packet have a compressed from field? */ + if (from_bit) { + /* Compressed from: take the previously received header */ + memcpy(fdc->packet_rx + fdc->packet_rx_cnt, fdc->rx_header, 6); + fdc->packet_rx_cnt += 6; + } + if (bcast_bit) { + if (!from_bit) { + /* Copy from header and modify size and end_bits accordingly */ + memcpy(fdc->packet_rx + fdc->packet_rx_cnt, data, 6); + fdc->packet_rx_cnt += 6; + copy_bits -= 6; + if (copy_bits < 0) + copy_bits = 0; + data += 6; + } + /* Compressed to: fill in broadcast address */ + memcpy(fdc->packet_rx + fdc->packet_rx_cnt, fdc_header_bcast, sizeof(fdc_header_bcast)); + fdc->packet_rx_cnt += 6; + } + if (crc_bit) { + unsigned char calc_crc = fdc_crc4(data, size); + if (calc_crc == end_bits) { + /* It is a single header field, remember it for later */ + memcpy(fdc->rx_header, data, 6); + memcpy(fdc->packet_rx + 6, data, 6); + memcpy(fdc->packet_rx, fdc_header_bcast, 6); + if (fdc->cb_rx) { + fdc->cb_rx(fdc->cb_rx_state, fdc->packet_rx, 12); + } + } + fdc->packet_rx_cnt = 0; + return; + } + } + + if (fdc->packet_rx_cnt + copy_bits >= FREEDV_DATA_CHANNEL_PACKET_MAX) { + /* Something went wrong... this can not be a real packet */ + fdc->packet_rx_cnt = 0; + return; + } + + memcpy(fdc->packet_rx + fdc->packet_rx_cnt, data, copy_bits); + fdc->packet_rx_cnt += copy_bits; + + if (end_bits != 0 && fdc->packet_rx_cnt >= 2) { + unsigned short calc_crc = fdc_crc(fdc->packet_rx, fdc->packet_rx_cnt - 2); + unsigned short rx_crc; + rx_crc = fdc->packet_rx[fdc->packet_rx_cnt - 1] << 8; + rx_crc |= fdc->packet_rx[fdc->packet_rx_cnt - 2]; + + if (rx_crc == calc_crc) { + if (fdc->packet_rx_cnt == size) { + /* It is a single header field, remember it for later */ + memcpy(fdc->rx_header, fdc->packet_rx, 6); + } + + /* callback */ + if (fdc->cb_rx) { + unsigned char tmp[6]; + memcpy(tmp, fdc->packet_rx, 6); + memcpy(fdc->packet_rx, fdc->packet_rx + 6, 6); + memcpy(fdc->packet_rx + 6, tmp, 6); + + size_t size = fdc->packet_rx_cnt - 2; + if (size < 12) { + size = 12; + memcpy(fdc->packet_rx, fdc_header_bcast, 6); + } + fdc->cb_rx(fdc->cb_rx_state, fdc->packet_rx, size); + } + } + fdc->packet_rx_cnt = 0; + } +} + +void freedv_data_channel_tx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int *from_bit, int *bcast_bit, int *crc_bit, int *end_bits) +{ + *from_bit = 0; + *bcast_bit = 0; + *crc_bit = 0; + + if (!fdc->packet_tx_size) { + fdc->packet_tx_cnt = 0; + + if (fdc->cb_tx) { + fdc->packet_tx_size = FREEDV_DATA_CHANNEL_PACKET_MAX; + fdc->cb_tx(fdc->cb_tx_state, fdc->packet_tx, &fdc->packet_tx_size); + } + if (!fdc->packet_tx_size) { + /* Nothing to send, insert a header frame */ + memcpy(fdc->packet_tx, fdc->tx_header, size); + if (size < 8) { + *end_bits = fdc_crc4(fdc->tx_header, size); + *crc_bit = 1; + memcpy(data, fdc->tx_header, size); + + return; + } else { + fdc->packet_tx_size = size; + } + } else { + /* new packet */ + unsigned short crc; + unsigned char tmp[6]; + + *from_bit = !memcmp(fdc->packet_tx + 6, fdc->tx_header, 6); + *bcast_bit = !memcmp(fdc->packet_tx, fdc_header_bcast, 6); + + memcpy(tmp, fdc->packet_tx, 6); + memcpy(fdc->packet_tx, fdc->packet_tx + 6, 6); + memcpy(fdc->packet_tx + 6, tmp, 6); + + crc = fdc_crc(fdc->packet_tx, fdc->packet_tx_size); + + fdc->packet_tx[fdc->packet_tx_size] = crc & 0xff; + fdc->packet_tx_size++; + fdc->packet_tx[fdc->packet_tx_size] = (crc >> 8) & 0xff; + fdc->packet_tx_size++; + + if (*from_bit) { + fdc->packet_tx_cnt = 6; + } else { + if (*bcast_bit) { + memcpy(fdc->packet_tx + 6, fdc->packet_tx, 6); + } + } + if (*bcast_bit) { + fdc->packet_tx_cnt += 6; + } + } + } + if (fdc->packet_tx_size) { + int copy = fdc->packet_tx_size - fdc->packet_tx_cnt; + + if (copy > size) { + copy = size; + *end_bits = 0; + } else { + *end_bits = copy; + fdc->packet_tx_size = 0; + } + memcpy(data, fdc->packet_tx + fdc->packet_tx_cnt, copy); + fdc->packet_tx_cnt += copy; + } +} + +void freedv_data_set_header(struct freedv_data_channel *fdc, unsigned char *header) +{ + unsigned short crc = fdc_crc(header, 6); + + memcpy(fdc->tx_header, header, 6); + fdc->tx_header[6] = crc & 0xff; + fdc->tx_header[7] = (crc >> 8) & 0xff; +} + +int freedv_data_get_n_tx_frames(struct freedv_data_channel *fdc, size_t size) +{ + if (fdc->packet_tx_size == 0) + return 0; + /* packet will be send in 'size' byte frames */ + return (fdc->packet_tx_size - fdc->packet_tx_cnt + size-1) / size; +} diff --git a/src/freedv_data_channel.h b/src/freedv_data_channel.h new file mode 100644 index 0000000..f7fac4a --- /dev/null +++ b/src/freedv_data_channel.h @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_data_channel.h + AUTHOR......: Jeroen Vreeken + DATE CREATED: 03 March 2016 + + Data channel for ethernet like packets in freedv VHF frames. + Currently designed for- + * 2 control bits per frame + * 4 byte counter bits per frame + * 64 bits of data per frame +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 Jeroen Vreeken + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef _FREEDV_DATA_CHANNEL_H +#define _FREEDV_DATA_CHANNEL_H + +#include + +#define FREEDV_DATA_CHANNEL_PACKET_MAX 2048 + +typedef void (*freedv_data_callback_rx)(void *, unsigned char *packet, size_t size); +typedef void (*freedv_data_callback_tx)(void *, unsigned char *packet, size_t *size); + +struct freedv_data_channel { + freedv_data_callback_rx cb_rx; + void *cb_rx_state; + freedv_data_callback_tx cb_tx; + void *cb_tx_state; + + unsigned char rx_header[8]; + unsigned char packet_rx[FREEDV_DATA_CHANNEL_PACKET_MAX + 2]; + int packet_rx_cnt; + + unsigned char tx_header[8]; + unsigned char packet_tx[FREEDV_DATA_CHANNEL_PACKET_MAX + 2]; + int packet_tx_cnt; + size_t packet_tx_size; +}; + + +struct freedv_data_channel *freedv_data_channel_create(void); +void freedv_data_channel_destroy(struct freedv_data_channel *fdc); + +void freedv_data_set_cb_rx(struct freedv_data_channel *fdc, freedv_data_callback_rx cb, void *state); +void freedv_data_set_cb_tx(struct freedv_data_channel *fdc, freedv_data_callback_tx cb, void *state); + +void freedv_data_channel_rx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int from_bit, int bcast_bit, int crc_bit, int end_bits); +void freedv_data_channel_tx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int *from_bit, int *bcast_bit, int *crc_bit, int *end_bits); + +void freedv_data_set_header(struct freedv_data_channel *fdc, unsigned char *header); +int freedv_data_get_n_tx_frames(struct freedv_data_channel *fdc, size_t size); + +#endif /* _FREEDV_DATA_CHANNEL_H */ diff --git a/src/freedv_data_raw_rx.c b/src/freedv_data_raw_rx.c new file mode 100644 index 0000000..64ce1f1 --- /dev/null +++ b/src/freedv_data_raw_rx.c @@ -0,0 +1,325 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_data_raw_rx.c + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + Demonstrates receiving frames of raw data bytes (instead of + compressed speech) using the FreeDV API. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "modem_stats.h" +#include "octave.h" +#include "fsk.h" +#include "ldpc_codes.h" + +/* other processes can end this program using signals */ + +static volatile int finish = 0; +void INThandler(int sig) { + fprintf(stderr,"signal received: %d\n", sig); + finish = 1; +} + +int main(int argc, char *argv[]) { + FILE *fin, *fout; + char codename[80] = "H_256_512_4"; + struct freedv_advanced adv = {0,2,100,8000,1000,200, codename}; + struct freedv *freedv; + int nin, nbytes, nbytes_out = 0, nframes_out = 0, buf = 0; + int mode; + int verbose = 0, use_testframes = 0; + int mask = 0; + int framesperburst = 1; + FILE *foct = NULL; + int quiet = 0; + int single_line_summary = 0; + float snr_sum = 0.0; + int fsk_lower = 0, fsk_upper = 0; + int user_fsk_lower = 0, user_fsk_upper = 0; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"testframes", no_argument, 0, 't'}, + {"help", no_argument, 0, 'h'}, + {"Fs", required_argument, 0, 'f'}, + {"Rs", required_argument, 0, 'r'}, + {"shift", required_argument, 0, 's'}, + {"vv", no_argument, 0, 'x'}, + {"vvv", no_argument, 0, 'y'}, + {"mask", required_argument, 0, 'k'}, + {"framesperburst", required_argument, 0, 'g'}, + {"scatter", required_argument, 0, 'c'}, + {"quiet", required_argument, 0, 'q'}, + {"singleline", no_argument, 0, 'b'}, + {"fsk_lower", required_argument, 0, 'l'}, + {"fsk_upper", required_argument, 0, 'u'}, + {"code", required_argument, 0, 'o'}, + {"listcodes", no_argument, 0, 'i'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"bf:hm:qr:tvx",long_opts,&opt_idx); + + switch(o) { + case 'b': + single_line_summary = 1; + break; + case 'c': + foct = fopen(optarg,"wt"); + assert(foct != NULL); + break; + case 'f': + adv.Fs = atoi(optarg); + break; + case 'k': + mask = 1; + adv.tone_spacing = atoi(optarg); + break; + case 'm': + adv.M = atoi(optarg); + break; + case 'l': + fsk_lower = atoi(optarg); + user_fsk_lower = 1; + break; + case 'u': + fsk_upper = atoi(optarg); + user_fsk_upper = 1; + break; + case 'q': + quiet = 1; + break; + case 'r': + adv.Rs = atoi(optarg); + break; + case 's': + adv.tone_spacing = atoi(optarg); + break; + case 'g': + framesperburst = atoi(optarg); + break; + case 't': + use_testframes = 1; + break; + case 'v': + verbose = 1; + break; + case 'x': + verbose = 2; + break; + case 'y': + verbose = 3; + break; + case 'o': + if (ldpc_codes_find(optarg) == -1) { + fprintf(stderr, "%s not found, try --listcodes\n", optarg); + exit(1); + } + strcpy(codename, optarg); + break; + case 'i': + ldpc_codes_list(); + exit(0); + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + int dx = optind; + + if (argc < 3) { + helpmsg: + fprintf(stderr, "\nusage: %s [options] FSK_LDPC|DATAC0|... InputModemSpeechFile BinaryDataFile\n" + " -v or --vv verbose options\n" + " --testframes count raw and coded errors in testframes sent by tx\n" + " --framesperburst N N frames per burst (default 1, must match Tx)\n" + " --scatter file write scatter diagram symbols to file (Octave text file format)\n" + " --singleline single line summary at end of test, used for logging\n" + " --quiet\n" + "\n" + "For FSK_LDPC only:\n\n" + " -m 2|4 number of FSK tones\n" + " --Fs FreqHz sample rate (default 8000)\n" + " --Rs FreqHz symbol rate (default 100)\n" + " --mask shiftHz Use \"mask\" freq estimator (default is \"peak\" estimator)\n\n" + " --shift FreqHz shift between tones (default 200)\n" + " --fsk_lower freq lower limit of freq estimator (default 0)\n" + " --fsk_upper freq upper limit of freq estimator (default Fs/2)\n" + " --code CodeName LDPC code (defaults (512,256)\n" + " --listcodes list available LDPC codes\n" + "\n", argv[0]); + + fprintf(stderr, "example: %s --framesperburst 1 --testframes datac0 samples.s16 /dev/null\n\n", argv[0]); + exit(1); + } + + if( (argc - dx) < 3) { + fprintf(stderr, "too few arguments.\n"); + goto helpmsg; + } + + mode = -1; + if (!strcmp(argv[dx],"FSK_LDPC") || !strcmp(argv[dx],"fsk_ldpc")) mode = FREEDV_MODE_FSK_LDPC; + if (!strcmp(argv[dx],"DATAC0") || !strcmp(argv[dx],"datac0")) mode = FREEDV_MODE_DATAC0; + if (!strcmp(argv[dx],"DATAC1") || !strcmp(argv[dx],"datac1")) mode = FREEDV_MODE_DATAC1; + if (!strcmp(argv[dx],"DATAC3") || !strcmp(argv[dx],"datac3")) mode = FREEDV_MODE_DATAC3; + if (!strcmp(argv[dx],"DATAC4") || !strcmp(argv[dx],"datac4")) mode = FREEDV_MODE_DATAC4; + if (!strcmp(argv[dx],"DATAC13") || !strcmp(argv[dx],"datac13")) mode = FREEDV_MODE_DATAC13; + if (mode == -1) { + fprintf(stderr, "Error in mode: %s\n", argv[dx]); + exit(1); + } + + if (strcmp(argv[dx+1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[dx+1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (strcmp(argv[dx+2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[dx+2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", + argv[3], strerror(errno)); + exit(1); + } + + if (mode == FREEDV_MODE_FSK_LDPC) { + freedv = freedv_open_advanced(mode, &adv); + struct FSK *fsk = freedv_get_fsk(freedv); + fsk_set_freq_est_alg(fsk, mask); + + /* optionally set freq estimator limits */ + if (!user_fsk_lower) fsk_lower = 0; + if (!user_fsk_upper) fsk_upper = adv.Fs/2; + fprintf(stderr,"Setting estimator limits to %d to %d Hz.\n", fsk_lower, fsk_upper); + fsk_set_freq_est_limits(fsk,fsk_lower,fsk_upper); + } + else { + freedv = freedv_open(mode); + } + + assert(freedv != NULL); + freedv_set_verbose(freedv, verbose); + freedv_set_test_frames(freedv, use_testframes); + freedv_set_frames_per_burst(freedv, framesperburst); + + if (mode == FREEDV_MODE_FSK_LDPC) { + struct FSK *fsk = freedv_get_fsk(freedv); + if (!quiet) fprintf(stderr, "Nbits: %d N: %d Ndft: %d\n", fsk->Nbits, fsk->N, fsk->Ndft); + } + + /* for streaming bytes it's much easier use the modes that have a multiple of 8 payload bits/frame */ + assert((freedv_get_bits_per_modem_frame(freedv) % 8) == 0); + int bytes_per_modem_frame = freedv_get_bits_per_modem_frame(freedv)/8; + // last two bytes used for CRC + if (!quiet) fprintf(stderr, "payload bytes_per_modem_frame: %d\n", bytes_per_modem_frame - 2); + uint8_t bytes_out[bytes_per_modem_frame]; + short demod_in[freedv_get_n_max_modem_samples(freedv)]; + + signal(SIGINT, INThandler); + signal(SIGTERM, INThandler); + + /* We need to work out how many samples the demod needs on each + call (nin). This is used to adjust for differences in the tx + and rx sample clock frequencies */ + + nin = freedv_nin(freedv); + while((fread(demod_in, sizeof(short), nin, fin) == nin) && !finish) { + buf++; + + nbytes = freedv_rawdatarx(freedv, bytes_out, demod_in); + nin = freedv_nin(freedv); + + if (nbytes) { + // dont output CRC + fwrite(bytes_out, sizeof(uint8_t), nbytes-2, fout); + + // log some stats + nbytes_out += nbytes-2; + nframes_out++; + struct MODEM_STATS stats; + freedv_get_modem_extended_stats(freedv, &stats); + snr_sum += stats.snr_est; + if (foct) { + char name[64]; sprintf(name, "rx_symbols_%d", nframes_out); + octave_save_complex(foct, name, (COMP*) stats.rx_symbols, stats.nr, stats.Nc, MODEM_STATS_NC_MAX+1); + } + } + + /* if using pipes we probably don't want the usual buffering */ + if (fout == stdout) fflush(stdout); + } + + fclose(fin); + fclose(fout); + fprintf(stderr, "modembufs: %6d bytes: %5d Frms.: %5d SNRAv: %5.2f\n", + buf, nbytes_out, nframes_out, snr_sum/nframes_out); + int ret = 0; + + /* in testframe mode finish up with some stats */ + + if (freedv_get_test_frames(freedv)) { + int Tbits = freedv_get_total_bits(freedv); + int Terrs = freedv_get_total_bit_errors(freedv); + float uncoded_ber = (float)Terrs/Tbits; + fprintf(stderr, "BER......: %5.4f Tbits: %5d Terrs: %5d\n", (double)uncoded_ber, Tbits, Terrs); + int Tbits_coded = freedv_get_total_bits_coded(freedv); + int Terrs_coded = freedv_get_total_bit_errors_coded(freedv); + float coded_ber = (float)Terrs_coded/Tbits_coded; + fprintf(stderr, "Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", (double)coded_ber, Tbits_coded, Terrs_coded); + int Tpackets = freedv_get_total_packets(freedv); + int Tpacket_errors = freedv_get_total_packet_errors(freedv); + fprintf(stderr, "Coded FER: %5.4f Tfrms: %5d Tfers: %5d\n", (float)Tpacket_errors/Tpackets, Tpackets, Tpacket_errors); + + if (single_line_summary) { + struct MODEM_STATS stats; + freedv_get_modem_extended_stats(freedv, &stats); + fprintf(stderr, "FrmGd FrmDt Bytes SNRAv RawBER Pre Post UWfails\n"); + fprintf(stderr, "%5d %5d %5d %5.2f %5.4f %5d %5d %5d\n", + nframes_out, Tpackets, nbytes_out, snr_sum/nframes_out, uncoded_ber, stats.pre, stats.post, stats.uw_fails); + } + + /* set return code for Ctest */ + if ((uncoded_ber < 0.1f) && (coded_ber < 0.01f)) + ret = 0; + else + ret = 1; + } + + freedv_close(freedv); + if (foct) fclose(foct); + return ret; +} diff --git a/src/freedv_data_raw_tx.c b/src/freedv_data_raw_tx.c new file mode 100644 index 0000000..b2e47f8 --- /dev/null +++ b/src/freedv_data_raw_tx.c @@ -0,0 +1,467 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_data_raw_tx.c + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + Demonstrates transmitting frames of raw data bytes (instead of + compressed speech) using the FreeDV API. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "fsk.h" +#include "ofdm_internal.h" +#include "ldpc_codes.h" + +size_t send_preamble(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out); +size_t send_modulated_data(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out, uint8_t bytes_in[]); +size_t send_postamble(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out); +size_t send_silence(FILE *fout, size_t shorts_per_sample, size_t samples_delay); +void comp_to_short(short mod_out_short[], COMP mod_out_comp[], int n_mod_out); + +int main(int argc, char *argv[]) { + FILE *fin, *fout; + char codename[80] = "H_256_512_4"; + struct freedv_advanced adv = {0,2,100,8000,1000,200, codename}; + struct freedv *freedv; + int mode; + int use_clip, use_txbpf, testframes, Ntestframes = 0; + int use_complex = 0; + float amp = FSK_SCALE; + size_t shorts_per_sample = 1; + int Nbursts = 1, sequence_numbers = 0; + int inter_burst_delay_ms = 0; + int postdelay_ms = 0; + uint8_t source_byte = 0; + + use_clip = -1; use_txbpf = -1; testframes = 0; + int framesperburst = 1; + int quiet = 0; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"testframes", required_argument, 0, 't'}, + {"help", no_argument, 0, 'h'}, + {"txbpf", required_argument, 0, 'b'}, + {"clip", required_argument, 0, 'l'}, + {"Fs", required_argument, 0, 'f'}, + {"Rs", required_argument, 0, 'r'}, + {"tone1", required_argument, 0, '1'}, + {"shift", required_argument, 0, 's'}, + {"bursts", required_argument, 0, 'e'}, + {"framesperburst", required_argument, 0, 'g'}, + {"delay", required_argument, 0, 'j'}, + {"postdelay", required_argument, 0, 'k'}, + {"seq", no_argument, 0, 'd'}, + {"source", required_argument, 0, 'i'}, + {"amp", required_argument, 0, 'a'}, + {"quiet", no_argument, 0, 'q'}, + {"complexout", no_argument, 0, 'c'}, + {"code", required_argument, 0, 'o'}, + {"listcodes", no_argument, 0, 'x'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"a:cdt:hb:l:e:f:g:r:1:s:m:qi:o:x",long_opts,&opt_idx); + + switch(o) { + case 'a': + amp = atof(optarg)/2.0; + break; + case 'b': + use_txbpf = atoi(optarg); + break; + case 'c': + use_complex = 1; + shorts_per_sample = 2; + break; + case 'd': + sequence_numbers = 1; + break; + case 'i': + source_byte = strtol(optarg, NULL, 0); + fprintf(stderr,"source byte: 0x%02x\n", source_byte); + break; + case 'e': + Nbursts = atoi(optarg); + break; + case 'g': + framesperburst = atoi(optarg); + break; + case 'j': + inter_burst_delay_ms = atoi(optarg); + break; + case 'k': + postdelay_ms = atoi(optarg); + break; + case 't': + testframes = 1; + Ntestframes = atoi(optarg); + break; + case 'l': + use_clip = atoi(optarg); + break; + case 'm': + adv.M = atoi(optarg); + break; + case 'q': + quiet = 1; + break; + case 'f': + adv.Fs = atoi(optarg); + break; + case 'r': + adv.Rs = atoi(optarg); + break; + case '1': + adv.first_tone = atoi(optarg); + break; + case 's': + adv.tone_spacing = atoi(optarg); + break; + case 'o': + if (ldpc_codes_find(optarg) == -1) { + fprintf(stderr, "%s not found, try --listcodes\n", optarg); + exit(1); + } + strcpy(codename, optarg); + break; + case 'x': + ldpc_codes_list(); + exit(0); + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + int dx = optind; + + if (argc < 4) { + helpmsg: + fprintf(stderr, "\nusage: %s [options] FSK_LDPC|DATAC0|... InputBinaryDataFile OutputModemRawFile\n" + "\n" + " --testframes T send a total of T test frames (T should equal B*N)\n" + " --bursts B send B bursts of N testframes (default 1)\n" + " --framesperburst N burst mode, N frames per burst (default 1)\n" + " --delay ms testframe inter-burst delay in ms\n" + " --postdelay ms additional delay at end of run in ms\n" + " -c complex signed 16 bit output format (default real)\n" + " --clip 0|1 clipping for reduced PAPR\n" + " --txbpf 0|1 bandpass filter\n" + " --seq send packet sequence numbers (breaks testframe BER counting)\n" + " --source Byte insert a (non-zero) source address att byte[0]\n" + " --complexout complex sample output (default real)\n" + " --quiet\n" + "\n" + "For FSK_LDPC only:\n\n" + " -a amp maximum amplitude of FSK signal\n" + " -m 2|4 number of FSK tones\n" + " --Fs FreqHz sample rate (default 8000)\n" + " --Rs FreqHz symbol rate (default 100)\n" + " --tone1 FreqHz freq of first tone (default 1000)\n" + " --shift FreqHz shift between tones (default 200)\n\n" + " --code CodeName LDPC code (defaults (512,256)\n" + " --listcodes list available LDPC codes\n\n" + , argv[0]); + fprintf(stderr, "example: $ %s --testframes 6 --bursts 3 --framesperburst 2 datac0 /dev/zero samples.s16\n", argv[0]); + fprintf(stderr, "example: $ %s -c --testframes 10 FSK_LDPC /dev/zero samples.iq16\n\n", argv[0]); + exit(1); + } + + if( (argc - dx) < 3) { + fprintf(stderr, "too few arguments.\n"); + goto helpmsg; + } + + mode = -1; + if (!strcmp(argv[dx],"FSK_LDPC") || !strcmp(argv[dx],"fsk_ldpc")) mode = FREEDV_MODE_FSK_LDPC; + if (!strcmp(argv[dx],"DATAC0") || !strcmp(argv[dx],"datac0")) mode = FREEDV_MODE_DATAC0; + if (!strcmp(argv[dx],"DATAC1") || !strcmp(argv[dx],"datac1")) mode = FREEDV_MODE_DATAC1; + if (!strcmp(argv[dx],"DATAC3") || !strcmp(argv[dx],"datac3")) mode = FREEDV_MODE_DATAC3; + if (!strcmp(argv[dx],"DATAC4") || !strcmp(argv[dx],"datac4")) mode = FREEDV_MODE_DATAC4; + if (!strcmp(argv[dx],"DATAC13") || !strcmp(argv[dx],"datac13")) mode = FREEDV_MODE_DATAC13; + if (mode == -1) { + fprintf(stderr, "Error: in mode: %s", argv[dx]); + exit(1); + } + + if (strcmp(argv[dx+1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[dx+1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input file of bytes: %s: %s.\n", argv[dx+1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[dx+2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[dx+2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[dx+2], strerror(errno)); + exit(1); + } + + if (mode != FREEDV_MODE_FSK_LDPC) + freedv = freedv_open(mode); + else + freedv = freedv_open_advanced(mode, &adv); + + assert(freedv != NULL); + + /* these are optional ------------------ */ + if (use_clip != -1) freedv_set_clip(freedv, use_clip); + if (use_txbpf != -1) freedv_set_tx_bpf(freedv, use_txbpf); + freedv_set_tx_amp(freedv, amp); + + /* Data modes have a multiple of 8 payload bits/frame */ + int bytes_per_modem_frame = freedv_get_bits_per_modem_frame(freedv)/8; + int payload_bytes_per_modem_frame = bytes_per_modem_frame; + payload_bytes_per_modem_frame -= 2; /* 16 bits used for the CRC */ + if (!quiet) fprintf(stderr, "payload bytes_per_modem_frame: %d ", payload_bytes_per_modem_frame); + assert((freedv_get_bits_per_modem_frame(freedv) % 8) == 0); + int n_mod_out = freedv_get_n_tx_modem_samples(freedv); + uint8_t bytes_in[bytes_per_modem_frame]; + + if (mode == FREEDV_MODE_FSK_LDPC) { + if (!quiet) fprintf(stderr, "Frequency: Fs: %4.1f Hz Rs: %5.0f Hz Tone1: %5.0f Hz Shift: %5.0f Hz M: %d \n", + (float)adv.Fs, (float)adv.Rs, (float)adv.first_tone, (float)adv.tone_spacing, adv.M); + + if (adv.tone_spacing < adv.Rs) { + fprintf(stderr, "Need shift: %d > Rs: %d\n", adv.tone_spacing, adv.Rs); + exit(1); + } + } + + /* a few sanity checks */ + if (testframes) { + if (Ntestframes != framesperburst*Nbursts) { + if (!quiet) fprintf(stderr, "Adjusting testframes to equal framesperburst*bursts\n"); + Ntestframes = framesperburst*Nbursts; + } + } else { + if (framesperburst != 1) { + fprintf(stderr, "Only one frame per burst currently supported in stdin mode\n"); + exit(1); + } + } + + int frames = 0; + size_t on_samples = 0; + size_t off_samples = 0; + + /* initial silence */ + + int samples_delay = 0; + if (inter_burst_delay_ms) { + /* user defined inter-burst delay */ + samples_delay = FREEDV_FS_8000*inter_burst_delay_ms/1000; + } + else { + /* just enough silence at the end of burst to allow demod to complete processing */ + samples_delay = 2*freedv_get_n_nom_modem_samples(freedv); + } + off_samples += send_silence(fout, shorts_per_sample, samples_delay); + + /* --------- Test Frame Mode --------------------------------------------------*/ + + if (testframes) { + + /* generate a fixed test frame */ + uint8_t testframe_bytes[bytes_per_modem_frame]; + memset(testframe_bytes, 0, bytes_per_modem_frame); + int bits_per_frame = freedv_get_bits_per_modem_frame(freedv); + uint8_t testframe_bits[bits_per_frame]; + ofdm_generate_payload_data_bits(testframe_bits, bits_per_frame); + freedv_pack(testframe_bytes, testframe_bits, bits_per_frame); + if (!quiet) fprintf(stderr, "\n"); + + for(int b=0; b> 8; + bytes_in[bytes_per_modem_frame-1] = crc16 & 0xff; + + on_samples += send_modulated_data(freedv, fout, use_complex, n_mod_out, bytes_in); + + /* if using pipes we don't want the usual buffering to occur */ + if (fout == stdout) fflush(stdout); + + frames++; + } + + on_samples += send_postamble(freedv, fout, use_complex, n_mod_out); + + int samples_delay = 0; + if (inter_burst_delay_ms) { + /* user defined inter-burst delay */ + samples_delay = FREEDV_FS_8000*inter_burst_delay_ms/1000; + } + else { + /* just enough silence at the end of burst to allow demod to complete processing */ + samples_delay = 2*freedv_get_n_nom_modem_samples(freedv); + } + off_samples += send_silence(fout, shorts_per_sample, samples_delay); + } + + } else { + + /* --------- modulate data from stdin mode --------------------------------------------------*/ + + while (fread(bytes_in, sizeof(uint8_t), payload_bytes_per_modem_frame, fin) == payload_bytes_per_modem_frame) { + on_samples += send_preamble(freedv, fout, use_complex, n_mod_out); + + if (source_byte) bytes_in[0] = source_byte; + if (sequence_numbers) bytes_in[1] = (frames+1) & 0xff; + + /* The raw data modes requires a CRC in the last two bytes */ + uint16_t crc16 = freedv_gen_crc16(bytes_in, payload_bytes_per_modem_frame); + bytes_in[bytes_per_modem_frame-2] = crc16 >> 8; + bytes_in[bytes_per_modem_frame-1] = crc16 & 0xff; + + on_samples += send_modulated_data(freedv, fout, use_complex, n_mod_out, bytes_in); + + /* if using pipes we don't want the usual buffering to occur */ + if (fout == stdout) fflush(stdout); + + on_samples += send_postamble(freedv, fout, use_complex, n_mod_out); + + int samples_delay = 0; + if (inter_burst_delay_ms) { + /* user defined inter-burst delay */ + samples_delay = FREEDV_FS_8000*inter_burst_delay_ms/1000; + } + else { + /* just enough silence at the end of burst to allow demod to complete processing */ + samples_delay = 2*freedv_get_n_nom_modem_samples(freedv); + } + off_samples += send_silence(fout, shorts_per_sample, samples_delay); + frames++; + } + } + + /* optional silence at the end of run */ + if (postdelay_ms) { + int samples_delay = FREEDV_FS_8000*postdelay_ms/1000; + if (!quiet) fprintf(stderr, "postdelay: %d %d\n", postdelay_ms, samples_delay); + off_samples += send_silence(fout, shorts_per_sample, samples_delay); + } + + /* SNR offset to use in channel simulator to account for on/off time of burst signal */ + float mark_space_ratio = (float)on_samples/(on_samples+off_samples); + float mark_space_SNR_offset = 10*log10(mark_space_ratio); + if (!quiet) fprintf(stderr, "mark:space: %3.2f SNR offset: %5.2f\n", mark_space_ratio, mark_space_SNR_offset); + + freedv_close(freedv); + fclose(fin); + fclose(fout); + + return 0; +} + + +size_t send_preamble(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out) { + short mod_out_short[2*n_mod_out]; + int shorts_per_sample = 1; + int n_preamble = 0; + + if (use_complex == 0) { + n_preamble = freedv_rawdatapreambletx(freedv, mod_out_short); + } else { + COMP mod_out_comp[n_mod_out]; + n_preamble = freedv_rawdatapreamblecomptx(freedv, mod_out_comp); + comp_to_short(mod_out_short, mod_out_comp, n_preamble); + shorts_per_sample = 2; + } + assert(n_preamble == freedv_get_n_tx_preamble_modem_samples(freedv)); + assert(n_preamble <= n_mod_out); + fwrite(mod_out_short, sizeof(short), shorts_per_sample*n_preamble, fout); + return n_preamble; +} + + +size_t send_modulated_data(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out, uint8_t bytes_in[]) { + short mod_out_short[2*n_mod_out]; + int shorts_per_sample = 1; + + if (use_complex == 0) { + freedv_rawdatatx(freedv, mod_out_short, bytes_in); + } else { + COMP mod_out_comp[n_mod_out]; + freedv_rawdatacomptx(freedv, mod_out_comp, bytes_in); + comp_to_short(mod_out_short, mod_out_comp, n_mod_out); + shorts_per_sample = 2; + } + fwrite(mod_out_short, sizeof(short), shorts_per_sample*n_mod_out, fout); + return n_mod_out; +} + + +size_t send_postamble(struct freedv *freedv, FILE *fout, int use_complex, size_t n_mod_out) { + short mod_out_short[2*n_mod_out]; + int shorts_per_sample = 1; + int n_postamble = 0; + + if (use_complex == 0) { + n_postamble = freedv_rawdatapostambletx(freedv, mod_out_short); + } else { + COMP mod_out_comp[n_mod_out]; + n_postamble = freedv_rawdatapostamblecomptx(freedv, mod_out_comp); + comp_to_short(mod_out_short, mod_out_comp, n_postamble); + shorts_per_sample = 2; + } + assert(n_postamble == freedv_get_n_tx_postamble_modem_samples(freedv)); + assert(n_postamble <= n_mod_out); + fwrite(mod_out_short, sizeof(short), shorts_per_sample*n_postamble, fout); + return n_postamble; +} + + +size_t send_silence(FILE *fout, size_t shorts_per_sample, size_t samples_delay) { + size_t n = shorts_per_sample*samples_delay; + short sil_short[n]; + for(int i=0; i. +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" + +/********************************************************** + Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. + http://dmlinking.net/eth_ar.html + */ + +// Lookup table for valid callsign characters +static char alnum2code[37] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 0 +}; + +// Decode the callsign in a MAC address +static int eth_ar_mac2call(char *callsign, int *ssid, bool *multicast, uint8_t mac[6]) +{ + uint64_t add; + int i; + + if (!memcmp(mac, (uint8_t[6]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 6)) { + *ssid = 0; + *multicast = true; + strcpy(callsign, "*"); + return 0; + } + *multicast = mac[0] & 0x01; + *ssid = (mac[0] & 0x3c) >> 2; + add = (uint64_t)(mac[0] & 0xc0) << (40 - 6); + add |= (uint64_t)mac[1] << 32; + add |= (uint64_t)mac[2] << 24; + add |= (uint64_t)mac[3] << 16; + add |= (uint64_t)mac[4] << 8; + add |= (uint64_t)mac[5]; + + for (i = 0; i < 8; i++) { + int c = add % 37; + callsign[i] = alnum2code[c]; + add /= 37; + } + callsign[i] = 0; + + return 0; +} + + + +/********************************************************** + Data channel callback functions + */ + + +struct my_callback_state { + FILE *fdataout; + int calls; +}; + +/* Called when a packet has been received */ +void my_datarx(void *callback_state, unsigned char *packet, size_t size) +{ + struct my_callback_state* pstate = (struct my_callback_state*)callback_state; + pstate->calls++; + fprintf(pstate->fdataout, "%-4d", pstate->calls); + + if (pstate->fdataout != NULL) { + size_t i; + + char callsign_to[9], callsign_from[9]; + int ssid_to, ssid_from; + bool multicast_to, multicast_from; + eth_ar_mac2call(callsign_to, &ssid_to, &multicast_to, packet); + eth_ar_mac2call(callsign_from, &ssid_from, &multicast_from, packet + 6); + + if (multicast_from) + fprintf(pstate->fdataout, "Multicast"); + else + fprintf(pstate->fdataout, "%s-%d", callsign_from, ssid_from); + + printf(" -> "); + + if (multicast_to) + fprintf(pstate->fdataout, "Multicast"); + else + fprintf(pstate->fdataout, "%s-%d", callsign_to, ssid_to); + + printf(" (%zd bytes)", size); + + /* It could be just an identification frame */ + if (size < 14) { + fprintf(pstate->fdataout, " Identification"); + } else { + unsigned short ethertype = packet[12] << 8 | packet[13]; + fprintf(pstate->fdataout, " EtherType 0x%04x", ethertype); + + if (ethertype == 0x7370) + fprintf(pstate->fdataout, " (FPRS)"); + } + + fprintf(pstate->fdataout, ":"); + + for (i = 0; i < size; i++) { + if (i % 0x10 == 0) + fprintf(pstate->fdataout, "\n0x%04zx: ", i); + fprintf(pstate->fdataout, "0x%02x ", packet[i]); + } + fprintf(pstate->fdataout, "\n"); + } +} + +/* Called when a new packet can be send */ +void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { + /* This should not happen while receiving.. */ + fprintf(stderr, "datarx callback called, this should not happen!\n"); + *size = 0; +} + + +int main(int argc, char *argv[]) { + FILE *fin; + struct freedv *freedv; + int nin, frame = 0; + struct my_callback_state my_cb_state = {0}; + int mode; + int verbose; + int i; + + + if (argc < 3) { + printf("usage: %s 2400A|2400B|800XA InputModemSpeechFile\n" + " \n", argv[0]); + printf("e.g %s 2400A data_fdmdv.raw\n", argv[0]); + exit(1); + } + + my_cb_state.fdataout = stdout; + + mode = -1; + if (!strcmp(argv[1],"2400A")) + mode = FREEDV_MODE_2400A; + if (!strcmp(argv[1],"2400B")) + mode = FREEDV_MODE_2400B; + if (!strcmp(argv[1],"800XA")) + mode = FREEDV_MODE_800XA; + assert(mode != -1); + + if (strcmp(argv[2], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[2],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + verbose = 0; + + if (argc > 3) { + for (i = 3; i < argc; i++) { + if (strcmp(argv[i], "-v") == 0) { + verbose = 1; + } + if (strcmp(argv[i], "-vv") == 0) { + verbose = 2; + } + } + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + freedv_set_verbose(freedv, verbose); + + short speech_out[freedv_get_n_max_speech_samples(freedv)]; + short demod_in[freedv_get_n_max_modem_samples(freedv)]; + + freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); + + /* Note we need to work out how many samples demod needs on each + call (nin). This is used to adjust for differences in the tx and rx + sample clock frequencies. Note also the number of output + speech samples is time varying. */ + + nin = freedv_nin(freedv); + while(fread(demod_in, sizeof(short), nin, fin) == nin) { + frame++; + + /* usual case: use the freedv_api to do everything: speech decoding, demodulating */ + // most common interface - real shorts in, real shorts out + freedv_rx(freedv, speech_out, demod_in); + + nin = freedv_nin(freedv); + } + + fclose(fin); + fprintf(stderr, "frames decoded: %d\n", frame); + + freedv_close(freedv); + return 0; +} + diff --git a/src/freedv_data_tx.c b/src/freedv_data_tx.c new file mode 100644 index 0000000..b37a46a --- /dev/null +++ b/src/freedv_data_tx.c @@ -0,0 +1,285 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_data_tx.c + AUTHOR......: Jeroen Vreeken + DATE CREATED: May 2020 + + Demo VHF packet data transmit program for FreeDV API functions. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2020 Jeroen Vreeken + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "codec2.h" + + +/********************************************************** + Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. + http://dmlinking.net/eth_ar.html + */ + +// Lookup table for valid callsign characters +static char alnum2code[37] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 0 +}; + +// Encode a callsign and ssid into a valid MAC address +static int eth_ar_call2mac(uint8_t mac[6], char *callsign, int ssid, bool multicast) +{ + uint64_t add = 0; + int i; + + if (ssid > 15 || ssid < 0) + return -1; + + for (i = 7; i >= 0; i--) { + char c; + + if (i >= strlen(callsign)) { + c = 0; + } else { + c = toupper(callsign[i]); + } + + int j; + + for (j = 0; j < sizeof(alnum2code); j++) { + if (alnum2code[j] == c) + break; + } + if (j == sizeof(alnum2code)) + return -1; + + add *= 37; + add += j; + } + + mac[0] = ((add >> (40 - 6)) & 0xc0) | (ssid << 2) | 0x02 | multicast; + mac[1] = (add >> 32) & 0xff; + mac[2] = (add >> 24) & 0xff; + mac[3] = (add >> 16) & 0xff; + mac[4] = (add >> 8) & 0xff; + mac[5] = add & 0xff; + + return 0; +} + + +/********************************************************** + Data channel callback functions + */ + + +struct my_callback_state { + int calls; + + unsigned char mac[6]; +}; + +/* + Called when a packet has been received + Should not be called in this tx-only test program + */ +void my_datarx(void *callback_state, unsigned char *packet, size_t size) +{ + /* This should not happen while sending... */ + fprintf(stderr, "datarx callback called, this should not happen!\n"); +} + + +/* + Called when a new packet can be send. + + callback_state Private state variable, not touched by freedv. + packet Data array where new packet data is expected + size Available size in packet. On return the actual size of the packet + */ +void my_datatx(void *callback_state, unsigned char *packet, size_t *size) +{ + static int data_type; + struct my_callback_state *my_cb_state = callback_state; + my_cb_state->calls++; + + /* Data could come from a network interface, here we just make up some */ + + if (data_type % 4 == 1) { + /* + Generate a packet with simple test pattern (counting + */ + + /* Send a packet with data */ + int i; + + /* Destination: broadcast */ + memset(packet, 0xff, 6); + /* Source: our eth_ar encoded callsign+ssid */ + memcpy(packet+6, my_cb_state->mac, 6); + /* Ether type: experimental (since this is just a test pattern) */ + packet[12] = 0x01; + packet[13] = 0x01; + + for (i = 0; i < 64; i++) + packet[i + 14] = i; + *size = i + 14; + } else if (data_type % 4 == 2) { + /* + Generate an FPRS position report + */ + + /* Destination: broadcast */ + memset(packet, 0xff, 6); + /* Source: our eth_ar encoded callsign+ssid */ + memcpy(packet+6, my_cb_state->mac, 6); + /* Ether type: FPRS */ + packet[12] = 0x73; + packet[13] = 0x70; + + packet[14] = 0x07; // Position element Lon 86.925026 Lat 27.987850 + packet[15] = 0x3d; // + packet[16] = 0xd0; + packet[17] = 0x37; + packet[18] = 0xd0 | 0x08 | 0x01; + packet[19] = 0x3e; + packet[20] = 0x70; + packet[21] = 0x85; + + *size = 22; + } else { + /* + Set size to zero, the freedv api will insert a header frame + This is useful for identifying ourselves + */ + *size = 0; + } + + data_type++; +} + + +int main(int argc, char *argv[]) { + FILE *fout; + short *mod_out; + struct freedv *freedv; + struct my_callback_state my_cb_state; + int mode; + int n_nom_modem_samples; + int i; + int n_packets = 20; + char *callsign = "NOCALL"; + int ssid = 0; + bool multicast = false; + + if (argc < 3) { + printf("usage: %s 2400A|2400B|800XA OutputModemRawFile\n" + " [--frames nr] [--callsign callsign] [--ssid ssid] [--mac-multicast 0|1]\n", argv[0]); + printf("e.g %s 2400A data_fdmdv.raw\n", argv[0]); + exit(1); + } + + mode = -1; + if (!strcmp(argv[1],"2400A")) + mode = FREEDV_MODE_2400A; + if (!strcmp(argv[1],"2400B")) + mode = FREEDV_MODE_2400B; + if (!strcmp(argv[1],"800XA")) + mode = FREEDV_MODE_800XA; + if (mode == -1) { + fprintf(stderr, "Error in mode: %s\n", argv[1]); + exit(0); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[3], strerror(errno)); + exit(1); + } + + if (argc > 3) { + for (i = 3; i < argc; i++) { + if (strcmp(argv[i], "--packets") == 0) { + n_packets = atoi(argv[i+1]); + } + if (strcmp(argv[i], "--callsign") == 0) { + callsign = argv[i+1]; + } + if (strcmp(argv[i], "--ssid") == 0) { + ssid = atoi(argv[i+1]); + } + if (strcmp(argv[i], "--mac-multicast") == 0) { + multicast = atoi(argv[i+1]); + } + } + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + /* Generate our address */ + eth_ar_call2mac(my_cb_state.mac, callsign, ssid, multicast); + + freedv_set_data_header(freedv, my_cb_state.mac); + + freedv_set_verbose(freedv, 1); + + n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); + mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); + assert(mod_out != NULL); + + /* set up callback for data packets */ + freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); + + /* OK main loop */ + + /* We will loop until the tx callback has been called n_packets times + After that we continue until everything is transmitted, as a data + packet might be transmitted in multiple freedv frames. + */ + while (my_cb_state.calls <= n_packets || freedv_data_ntxframes(freedv)) { + freedv_datatx(freedv, mod_out); + + fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); + + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + if (fout == stdout) fflush(stdout); + } + + free(mod_out); + freedv_close(freedv); + fclose(fout); + + fclose(stdin); + fclose(stderr); + + return 0; +} + diff --git a/src/freedv_fsk.c b/src/freedv_fsk.c new file mode 100644 index 0000000..68d203d --- /dev/null +++ b/src/freedv_fsk.c @@ -0,0 +1,636 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_fsk.c + AUTHOR......: David Rowe + DATE CREATED: May 2020 + + Functions that implement the FreeDV modes that use the FSK modem. + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "fsk.h" +#include "fmfsk.h" +#include "codec2.h" +#include "freedv_vhf_framing.h" +#include "varicode.h" +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "comp_prim.h" +#include "debug_alloc.h" +#include "ldpc_codes.h" +#include "interldpc.h" + +/* 32 bit 0x5186fe15 Unique word for fsk_ldpc modes */ +static uint8_t fsk_ldpc_uw[] = {0,1,0,1, 0,0,0,1, 1,0,0,0, 0,1,1,0, 1,1,1,1, 1,1,1,0, 0,0,0,1, 0,1,0,1}; + +void freedv_2400a_open(struct freedv *f) { + f->n_protocol_bits = 20; + f->deframer = fvhff_create_deframer(FREEDV_VHF_FRAME_A,0); + assert(f->deframer != NULL); + f->fsk = fsk_create_hbr(48000,1200,4,10,FSK_DEFAULT_NSYM,1200,1200); + assert(f->fsk != NULL); + + /* Note: fsk expects tx/rx bits as an array of uint8_ts, not ints */ + f->tx_bits = (int*)MALLOC(f->fsk->Nbits*sizeof(uint8_t)); + assert(f->tx_bits != NULL); + + f->n_nom_modem_samples = f->fsk->N; + f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); + f->n_nat_modem_samples = f->fsk->N; + f->nin = f->nin_prev = fsk_nin(f->fsk); + f->modem_sample_rate = 48000; + f->modem_symbol_rate = 1200; + + f->speech_sample_rate = FREEDV_FS_8000; + f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); + f->n_speech_samples = codec2_samples_per_frame(f->codec2); + + f->n_codec_frames = 1; + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->bits_per_modem_frame = f->bits_per_codec_frame; + int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; + f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); +} + +void freedv_2400b_open(struct freedv *f) { + f->n_protocol_bits = 20; + f->deframer = fvhff_create_deframer(FREEDV_VHF_FRAME_A,1); + assert(f->deframer != NULL); + + f->fmfsk = fmfsk_create(48000,2400); + assert (f->fmfsk != NULL); + + /* Note: fsk expects tx/rx bits as an array of uint8_ts, not ints */ + f->tx_bits = (int*)MALLOC(f->fmfsk->nbit*sizeof(uint8_t)); + assert(f->tx_bits != NULL); + f->n_nom_modem_samples = f->fmfsk->N; + f->n_max_modem_samples = f->fmfsk->N + (f->fmfsk->Ts); + f->n_nat_modem_samples = f->fmfsk->N; + f->nin = f->nin_prev = fmfsk_nin(f->fmfsk); + f->modem_sample_rate = 48000; + + f->speech_sample_rate = FREEDV_FS_8000; + f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); + f->n_speech_samples = codec2_samples_per_frame(f->codec2); + + f->n_codec_frames = 1; + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->bits_per_modem_frame = f->bits_per_codec_frame; + int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; + f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); +} + +void freedv_800xa_open(struct freedv *f) { + f->deframer = fvhff_create_deframer(FREEDV_HF_FRAME_B,0); + assert(f->deframer != NULL); + f->fsk = fsk_create_hbr(8000,400,4,10,32,800,400); + assert(f->fsk != NULL); + + f->tx_bits = (int*)MALLOC(f->fsk->Nbits*sizeof(uint8_t)); + assert(f->fsk != NULL); + + f->n_nom_modem_samples = f->fsk->N; + f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); + f->n_nat_modem_samples = f->fsk->N; + f->nin = f->nin_prev = fsk_nin(f->fsk); + f->modem_sample_rate = 8000; + f->modem_symbol_rate = 400; + fsk_stats_normalise_eye(f->fsk, 0); + + f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); + f->speech_sample_rate = FREEDV_FS_8000; + f->n_codec_frames = 2; + f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); + + f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; + int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; + f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); +} + + +void freedv_fsk_ldpc_open(struct freedv *f, struct freedv_advanced *adv) { + assert(adv != NULL); + + /* set up modem */ + assert((adv->Fs % adv->Rs) == 0); // Fs/Rs must be an integer + int P = adv->Fs/adv->Rs; + assert(P >= 8); // Good idea for P >= 8 + while ((P > 10) && ((P % 2) == 0)) // reduce internal oversampling rate P as far as we can, keep it an integer + P /= 2; + //fprintf(stderr, "Fs: %d Rs: %d M: %d P: %d\n", adv->Fs, adv->Rs, adv->M, P); + f->fsk = fsk_create_hbr(adv->Fs, adv->Rs, adv->M, P, FSK_DEFAULT_NSYM, adv->first_tone, adv->tone_spacing); + assert(f->fsk != NULL); + fsk_set_freq_est_limits(f->fsk, 0, adv->Fs/2); + fsk_stats_normalise_eye(f->fsk, 0); + + /* set up LDPC code */ + int code_index = ldpc_codes_find(adv->codename); + assert(code_index != -1); + f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); assert(f->ldpc != NULL); + ldpc_codes_setup(f->ldpc, adv->codename); + f->ldpc->max_iter = 15; + //fprintf(stderr, "Using: %s\n", f->ldpc->name); + + f->bits_per_modem_frame = f->ldpc->data_bits_per_frame; + int bits_per_frame = f->ldpc->coded_bits_per_frame + sizeof(fsk_ldpc_uw); + f->tx_payload_bits = MALLOC(f->bits_per_modem_frame); assert(f->tx_payload_bits != NULL); + f->rx_payload_bits = MALLOC(f->bits_per_modem_frame); assert(f->rx_payload_bits != NULL); + + /* sample buffer size for tx modem samples, we modulate a full frame */ + f->n_nom_modem_samples = f->fsk->Ts*(bits_per_frame/(f->fsk->mode>>1)); + f->n_nat_modem_samples = f->n_nom_modem_samples; + + /* maximum sample buffer size for rx modem samples, note we only + demodulate partial frames on each call to fsk_demod() */ + f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); + + f->nin = f->nin_prev = fsk_nin(f->fsk); + f->modem_sample_rate = adv->Fs; + f->modem_symbol_rate = adv->Rs; + f->tx_amp = FSK_SCALE; + + /* deframer set up */ + f->frame_llr_size = 2*bits_per_frame; + f->frame_llr = (float*)MALLOC(f->frame_llr_size*sizeof(float)); assert(f->frame_llr != NULL); + f->frame_llr_nbits = 0; + + f->twoframes_hard = MALLOC(2*bits_per_frame); assert(f->twoframes_hard != NULL); + memset(f->twoframes_hard, 0, 2*bits_per_frame); + f->twoframes_llr = (float*)MALLOC(2*bits_per_frame*sizeof(float)); assert(f->twoframes_llr != NULL); + for(int i=0; i<2*bits_per_frame; i++) f->twoframes_llr[i] = 0.0; + + /* currently configured a simple frame-frame approach */ + f->fsk_ldpc_thresh1 = 5; + f->fsk_ldpc_thresh2 = 6; + f->fsk_ldpc_baduw_thresh=1; + + //fprintf(stderr, "thresh1: %d thresh2: %d\n", f->fsk_ldpc_thresh1, f->fsk_ldpc_thresh2); + f->fsk_ldpc_baduw = 0; + f->fsk_ldpc_best_location = 0; f->fsk_ldpc_state = 0; + f->fsk_ldpc_snr = 1.0; + f->fsk_S[0] = f->fsk_S[1] = f->fsk_N[0] = f->fsk_N[1] = 0.0; +} + + +/* TX routines for 2400 FSK modes, after codec2 encoding */ +void freedv_tx_fsk_voice(struct freedv *f, short mod_out[]) { + int i; + float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ + uint8_t vc_bits[2]; /* Varicode bits for 2400 framing */ + uint8_t proto_bits[3]; /* Prococol bits for 2400 framing */ + + /* Frame for 2400A/B */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + /* Get varicode bits for TX and possibly ask for a new char */ + /* 2 bits per 2400A/B frame, so this has to be done twice */ + for(i=0;i<2;i++){ + if (f->nvaricode_bits) { + vc_bits[i] = f->tx_varicode_bits[f->varicode_bit_index++]; + f->nvaricode_bits--; + } + + if (f->nvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + if (f->freedv_get_next_tx_char != NULL) { + s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); + f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); + f->varicode_bit_index = 0; + } + } + } + + /* If the API user hasn't set up message callbacks, don't bother with varicode bits */ + if(f->freedv_get_next_proto != NULL){ + (*f->freedv_get_next_proto)(f->proto_callback_state,(char*)proto_bits); + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,proto_bits,vc_bits); + }else if(f->freedv_get_next_tx_char != NULL){ + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,vc_bits); + }else { + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); + } + /* Frame for 800XA */ + }else if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + fvhff_frame_bits(FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); + } + + /* Allocate floating point buffer for FSK mod */ + tx_float = MALLOC(sizeof(float)*f->n_nom_modem_samples); + + /* do 4fsk mod */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + if (f->ext_vco) { + fsk_mod_ext_vco(f->fsk,tx_float,(uint8_t*)(f->tx_bits), f->fsk->Nbits); + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = (short)tx_float[i]; + } + } + else { + fsk_mod(f->fsk,tx_float,(uint8_t*)(f->tx_bits),f->fsk->Nbits); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = (short)(tx_float[i]*FSK_SCALE*NORM_PWR_FSK); + } + } + /* do me-fsk mod */ + }else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = (short)(tx_float[i]*FMFSK_SCALE); + } + } + + FREE(tx_float); +} + +/* TX routines for 2400 FSK modes, after codec2 encoding */ +void freedv_comptx_fsk_voice(struct freedv *f, COMP mod_out[]) { + int i; + float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ + uint8_t vc_bits[2]; /* Varicode bits for 2400 framing */ + uint8_t proto_bits[3]; /* Prococol bits for 2400 framing */ + + /* Frame for 2400A/B */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + /* Get varicode bits for TX and possibly ask for a new char */ + /* 2 bits per 2400A/B frame, so this has to be done twice */ + for(i=0;i<2;i++){ + if (f->nvaricode_bits) { + vc_bits[i] = f->tx_varicode_bits[f->varicode_bit_index++]; + f->nvaricode_bits--; + } + + if (f->nvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + if (f->freedv_get_next_tx_char != NULL) { + s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); + f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); + f->varicode_bit_index = 0; + } + } + } + + /* If the API user hasn't set up message callbacks, don't bother with varicode bits */ + if(f->freedv_get_next_proto != NULL){ + (*f->freedv_get_next_proto)(f->proto_callback_state,(char*)proto_bits); + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,proto_bits,vc_bits); + }else if(f->freedv_get_next_tx_char != NULL){ + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,vc_bits); + }else { + fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); + } + /* Frame for 800XA */ + }else if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + fvhff_frame_bits(FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); + } + + /* Allocate floating point buffer for FSK mod */ + tx_float = MALLOC(sizeof(float)*f->n_nom_modem_samples); + + /* do 4fsk mod */ + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + fsk_mod_c(f->fsk,mod_out,(uint8_t*)(f->tx_bits), f->fsk->Nbits); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = fcmult(NORM_PWR_FSK,mod_out[i]); + } + /* do me-fsk mod */ + }else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i].real = (tx_float[i]); + } + } + + FREE(tx_float); +} + +/* TX routines for 2400 FSK modes, data channel */ +void freedv_tx_fsk_data(struct freedv *f, short mod_out[]) { + int i; + float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ + + if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) + fvhff_frame_data_bits(f->deframer, FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits)); + else + fvhff_frame_data_bits(f->deframer, FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits)); + + /* Allocate floating point buffer for FSK mod */ + tx_float = MALLOC(sizeof(float)*f->n_nom_modem_samples); + + /* do 4fsk mod */ + if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + fsk_mod(f->fsk,tx_float,(uint8_t*)(f->tx_bits), f->fsk->Nbits); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = (short)(tx_float[i]*FSK_SCALE); + } + /* do me-fsk mod */ + } else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ + fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); + /* Convert float samps to short */ + for(i=0; in_nom_modem_samples; i++){ + mod_out[i] = (short)(tx_float[i]*FMFSK_SCALE); + } + } + + FREE(tx_float); +} + +int freedv_tx_fsk_ldpc_bits_per_frame(struct freedv *f) { + return f->ldpc->coded_bits_per_frame + sizeof(fsk_ldpc_uw); +} + +/* in a separate function so callable by other FSK Txs */ +void freedv_tx_fsk_ldpc_framer(struct freedv *f, uint8_t frame[], uint8_t payload_data[]) { + + /* lets build up the frame to Tx ............. */ + + /* insert UW */ + memcpy(frame, fsk_ldpc_uw, sizeof(fsk_ldpc_uw)); + /* insert data bits */ + memcpy(frame + sizeof(fsk_ldpc_uw), payload_data, f->bits_per_modem_frame); + /* insert parity bits */ + encode(f->ldpc, frame + sizeof(fsk_ldpc_uw), frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame); +} + +/* FreeDV FSK_LDPC mode tx */ +void freedv_tx_fsk_ldpc_data(struct freedv *f, COMP mod_out[]) { + int bits_per_frame = freedv_tx_fsk_ldpc_bits_per_frame(f); + uint8_t frame[bits_per_frame]; + + assert(f->mode == FREEDV_MODE_FSK_LDPC); + + freedv_tx_fsk_ldpc_framer(f, frame, f->tx_payload_bits); + fsk_mod_c(f->fsk, mod_out, frame, bits_per_frame); + + /* scale samples */ + for(int i=0; in_nom_modem_samples; i++) { + mod_out[i].real *= f->tx_amp; + mod_out[i].imag *= f->tx_amp; + } +} + +void freedv_tx_fsk_ldpc_data_preamble(struct freedv *f, COMP mod_out[], int npreamble_bits, int npreamble_samples) { + struct FSK *fsk = f->fsk; + uint8_t preamble[npreamble_bits]; + // cycle through all 2 and 4FSK symbols, not sure if this is better than random + int sym = 0; + for(int i=0; i>1) & 0x1; + preamble[i+1] = sym & 0x1; + sym += 1; + } + + fsk_mod_c(fsk, mod_out, preamble, npreamble_bits); + /* scale samples */ + for(int i=0; itx_amp; + mod_out[i].imag *= f->tx_amp; + } +} + + +/* FreeDV FSK_LDPC mode rx */ +int freedv_rx_fsk_ldpc_data(struct freedv *f, COMP demod_in[]) { + int bits_per_frame = freedv_tx_fsk_ldpc_bits_per_frame(f); + struct FSK *fsk = f->fsk; + float rx_filt[fsk->mode*fsk->Nsym]; + int rx_status = 0, seq = 0; + + /* Couple of layers of buffers to move chunks of fsk->Nbits into a + double buffer we can use for frame sync. There are other ways + of doing this, e.g. FIFOs */ + + /* demodulate to bit LLRs which are placed at end of buffer */ + fsk_demod_sd(fsk, rx_filt, demod_in); + fsk_rx_filt_to_llrs(&f->frame_llr[f->frame_llr_nbits], + rx_filt, fsk->v_est, fsk->SNRest, fsk->mode, fsk->Nsym); + f->nin = fsk_nin(fsk); + f->frame_llr_nbits += fsk->Nbits; + assert(f->frame_llr_nbits < f->frame_llr_size); + + if (f->frame_llr_nbits >= bits_per_frame) { + /* We have an entire frame of llrs, place them at the end of the double buffer */ + memmove(f->twoframes_llr, &f->twoframes_llr[bits_per_frame], bits_per_frame*sizeof(float)); + memcpy(&f->twoframes_llr[bits_per_frame], f->frame_llr, bits_per_frame*sizeof(float)); + + /* update new hard decisions buffer (used for UW search) */ + memmove(f->twoframes_hard, &f->twoframes_hard[bits_per_frame], bits_per_frame); + for(int i=0; iframe_llr[i] < 0) + f->twoframes_hard[bits_per_frame + i] = 1; + else + f->twoframes_hard[bits_per_frame + i] = 0; + } + + /* update single frame buffer */ + memmove(f->frame_llr, &f->frame_llr[bits_per_frame], (f->frame_llr_nbits-bits_per_frame)*sizeof(float)); + f->frame_llr_nbits -= bits_per_frame; + assert(f->frame_llr_nbits >= 0); + + /* Sample SNR which we report back to used in fsk->snr_est. + Note that fsk->SNRest is the SNR of the last fsk->Nbits + that were placed at the end of the buffer. We delay this + by one frame to report the SNR of the frame we are + currently decoding */ + f->snr_est = (double)10.0*log10(f->fsk_ldpc_snr); + f->fsk_ldpc_snr = fsk->SNRest; + f->fsk_S[0] = f->fsk_S[1]; f->fsk_N[0] = f->fsk_N[1]; + /* also store delayed versions of signal and noise power, useful for channel estimation */ + f->fsk_S[1] = fsk->rx_sig_pow; + f->fsk_N[1] = fsk->rx_nse_pow; + + /* OK lets run frame based processing, starting with state machine */ + + int errors = 0; + int next_state = f->fsk_ldpc_state; + switch(f->fsk_ldpc_state) { + case 0: /* out of sync - look for UW */ + f->fsk_ldpc_best_location = 0; + int best_errors = sizeof(fsk_ldpc_uw); + for(int i=0; itwoframes_hard[i+u] ^ fsk_ldpc_uw[u]; + //fprintf(stderr, " errors: %d %d %d\n", i, errors, best_errors); + if (errors < best_errors) { best_errors = errors; f->fsk_ldpc_best_location = i; } + } + if (best_errors <= f->fsk_ldpc_thresh1) { + errors = best_errors; + next_state = 1; + f->fsk_ldpc_baduw = 0; + } + break; + case 1: /* in sync */ + assert(f->fsk_ldpc_best_location >= 0); + assert(f->fsk_ldpc_best_location < bits_per_frame); + + /* check UW still OK */ + for(int u=0; utwoframes_hard[f->fsk_ldpc_best_location+u] ^ fsk_ldpc_uw[u]; + if (errors > f->fsk_ldpc_thresh2) { + f->fsk_ldpc_baduw++; + if (f->fsk_ldpc_baduw >= f->fsk_ldpc_baduw_thresh) { + next_state = 0; + } + } + else f->fsk_ldpc_baduw = 0; + break; + } + + int Nerrs_raw=0, Nerrs_coded=0, iter=0, parityCheckCount=0; + if (next_state == 1) { + /* We may have a valid frame, based on the number on UW errors. Lets do a LDPC decode and check the CRC */ + + uint8_t decoded_codeword[f->ldpc->ldpc_coded_bits_per_frame]; + iter = run_ldpc_decoder(f->ldpc, decoded_codeword, + &f->twoframes_llr[f->fsk_ldpc_best_location+sizeof(fsk_ldpc_uw)], + &parityCheckCount); + memcpy(f->rx_payload_bits, decoded_codeword, f->bits_per_modem_frame); + + /* check CRC */ + if (freedv_check_crc16_unpacked(f->rx_payload_bits, f->bits_per_modem_frame)) + rx_status |= FREEDV_RX_BITS; + else { + /* if CRC failed on first frame in packet, this was probably a dud UW match, so go straight back to searching */ + if (f->fsk_ldpc_state == 0) next_state = 0; + rx_status |= FREEDV_RX_BIT_ERRORS; + } + } + f->fsk_ldpc_state = next_state; + + if (f->fsk_ldpc_state == 1) { + if (f->test_frames) { + /* regenerate tx test frame */ + uint8_t tx_frame[bits_per_frame]; + memcpy(tx_frame, fsk_ldpc_uw, sizeof(fsk_ldpc_uw)); + ofdm_generate_payload_data_bits(tx_frame + sizeof(fsk_ldpc_uw), f->bits_per_modem_frame); + int bytes_per_modem_frame = f->bits_per_modem_frame/8; + uint8_t tx_bytes[bytes_per_modem_frame]; + freedv_pack(tx_bytes, tx_frame + sizeof(fsk_ldpc_uw), f->bits_per_modem_frame); + uint16_t tx_crc16 = freedv_gen_crc16(tx_bytes, bytes_per_modem_frame - 2); + uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; + freedv_unpack(tx_frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame - 16, tx_crc16_bytes, 16); + encode(f->ldpc, tx_frame + sizeof(fsk_ldpc_uw), tx_frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame); + + /* count uncoded (raw) errors across UW, payload bits, parity bits */ + Nerrs_raw = count_errors(tx_frame, f->twoframes_hard + f->fsk_ldpc_best_location, bits_per_frame); + f->total_bit_errors += Nerrs_raw; + f->total_bits += bits_per_frame; + + /* count coded errors across just payload bits */ + Nerrs_coded = count_errors(tx_frame + sizeof(fsk_ldpc_uw), f->rx_payload_bits, f->bits_per_modem_frame); + f->total_bit_errors_coded += Nerrs_coded; + f->total_bits_coded += f->bits_per_modem_frame; + if (Nerrs_coded) f->total_packet_errors++; + f->total_packets++; + + } + + /* extract packet sequnce numbers optionally placed in byte[0] */ + seq = 0; + for(int i=0; i<8; i++) + seq |= f->rx_payload_bits[8+i] << (7-i); + } + + if (f->fsk_ldpc_state == 1) rx_status |= FREEDV_RX_SYNC; /* need this set before verbose logging fprintf() */ + if (((f->verbose == 1) && (rx_status & FREEDV_RX_BITS)) || (f->verbose == 2)) { + fprintf(stderr, "%3d nbits: %3d st: %d uwloc: %3d uwerr: %2d bad_uw: %d snrdB: %4.1f eraw: %3d ecdd: %3d " + "iter: %3d pcc: %3d seq: %3d rxst: %s\n", + ++(f->frames), f->frame_llr_nbits, f->fsk_ldpc_state, f->fsk_ldpc_best_location, errors, + f->fsk_ldpc_baduw, (double)f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, + seq, rx_sync_flags_to_text[rx_status]); + } + } + else { + /* set RX_SYNC flag even if we don't perform frame processing */ + if (f->fsk_ldpc_state == 1) rx_status |= FREEDV_RX_SYNC; + } + + return rx_status; +} + + +int freedv_comprx_fsk(struct freedv *f, COMP demod_in[]) { + /* Varicode and protocol bits */ + uint8_t vc_bits[2]; + uint8_t proto_bits[3]; + short vc_bit; + int i; + int n_ascii; + char ascii_out; + int rx_status = 0; + + if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ + fsk_demod(f->fsk,(uint8_t*)f->tx_bits,demod_in); + f->nin = fsk_nin(f->fsk); + float EbNodB = f->fsk->stats->snr_est; /* fsk demod actually estimates Eb/No */ + f->snr_est = EbNodB + 10.0*log10f(800.0/3000.0); /* so convert to SNR Rb=800, noise B=3000 */ + } else{ + /* 2400B needs real input samples */ + int n = fmfsk_nin(f->fmfsk); + float demod_in_float[n]; + for(i=0; ifmfsk,(uint8_t*)f->tx_bits,demod_in_float); + /* The fmfsk modem operates on the baseband output of an analog FM demod so the + mapping to SNR in 8k is hard to determine */ + f->snr_est = f->fmfsk->snr_mean; + f->nin = fmfsk_nin(f->fmfsk); + } + + rx_status = fvhff_deframe_bits(f->deframer,f->rx_payload_bits,proto_bits,vc_bits,(uint8_t*)f->tx_bits); + if((rx_status & FREEDV_RX_SYNC) && (rx_status & FREEDV_RX_BITS)){ + /* Decode varicode text */ + for(i=0; i<2; i++){ + /* Note: deframe_bits spits out bits in uint8_ts while varicode_decode expects shorts */ + vc_bit = vc_bits[i]; + n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &vc_bit, 1, 1); + if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { + (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); + } + } + /* Pass proto bits on down if callback is present */ + if( f->freedv_put_next_proto != NULL){ + (*f->freedv_put_next_proto)(f->proto_callback_state,(char*)proto_bits); + } + f->sync = 1; + } else + f->sync = 0; + + return rx_status; +} + + +int freedv_floatrx(struct freedv *f, short speech_out[], float demod_in[]) { + assert(f != NULL); + int i; + int nin = freedv_nin(f); + + assert(nin <= f->n_max_modem_samples); + + COMP rx_fdm[f->n_max_modem_samples]; + for(i=0; i. +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "modem_stats.h" + +#include "codec2.h" + + +struct my_callback_state { + int calls; + FILE *ftxt; +}; + +/* Called when a packet has been received */ +void my_datarx(void *callback_state, unsigned char *packet, size_t size) { + struct my_callback_state* pstate = (struct my_callback_state*)callback_state; + + pstate->calls++; + + if (pstate->ftxt != NULL) { + size_t i; + + fprintf(pstate->ftxt, "data (%zd bytes): ", size); + for (i = 0; i < size; i++) { + fprintf(pstate->ftxt, "0x%02x ", packet[i]); + } + fprintf(pstate->ftxt, "\n"); + } +} + +/* Called when a new packet can be send */ +void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { + /* This should not happen while receiving.. */ + fprintf(stderr, "datarx callback called, this should not happen!\n"); + *size = 0; +} + +int main(int argc, char *argv[]) { + FILE *fin, *fout, *ftxt; + struct freedv *freedv; + int nin, nout, nout_total = 0, frame = 0; + struct my_callback_state my_cb_state = {0}; + int mode; + int use_codecrx, verbose; + struct CODEC2 *c2 = NULL; + int i; + + + if (argc < 4) { + printf("usage: %s 2400A|2400B|800XA InputModemSpeechFile OutputSpeechRawFile\n" + " [--codecrx] [-v]\n", argv[0]); + printf("e.g %s 2400A hts1a_fdmdv.raw hts1a_out.raw\n", argv[0]); + exit(1); + } + + mode = -1; + if (!strcmp(argv[1],"2400A")) + mode = FREEDV_MODE_2400A; + if (!strcmp(argv[1],"2400B")) + mode = FREEDV_MODE_2400B; + if (!strcmp(argv[1],"800XA")) + mode = FREEDV_MODE_800XA; + assert(mode != -1); + + if (strcmp(argv[2], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[2],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + if (strcmp(argv[3], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[3],"wb")) == NULL ) { + fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", + argv[3], strerror(errno)); + exit(1); + } + + use_codecrx = 0; verbose = 0; + + if (argc > 4) { + for (i = 4; i < argc; i++) { + if (strcmp(argv[i], "--codecrx") == 0) { + int c2_mode; + + if ((mode == FREEDV_MODE_700C) || (mode == FREEDV_MODE_700D) || (mode == FREEDV_MODE_800XA)) { + c2_mode = CODEC2_MODE_700C; + } else { + c2_mode = CODEC2_MODE_1300; + } + use_codecrx = 1; + + c2 = codec2_create(c2_mode); + assert(c2 != NULL); + } + + if (strcmp(argv[i], "-v") == 0) { + verbose = 1; + } + if (strcmp(argv[i], "-vv") == 0) { + verbose = 2; + } + } + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + freedv_set_verbose(freedv, verbose); + + short speech_out[freedv_get_n_max_speech_samples(freedv)]; + short demod_in[freedv_get_n_max_modem_samples(freedv)]; + + ftxt = fopen("freedv_rx_log.txt","wt"); + assert(ftxt != NULL); + my_cb_state.ftxt = ftxt; + freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); + + /* Note we need to work out how many samples demod needs on each + call (nin). This is used to adjust for differences in the tx and rx + sample clock frequencies. Note also the number of output + speech samples is time varying (nout). */ + + nin = freedv_nin(freedv); + while(fread(demod_in, sizeof(short), nin, fin) == nin) { + frame++; + + if (use_codecrx == 0) { + /* usual case: use the freedv_api to do everything: speech decoding, demodulating */ + nout = freedv_rx(freedv, speech_out, demod_in); + } else { + /* demo of codecrx mode - separate demodulation and speech decoding */ + int bits_per_codec_frame = freedv_get_bits_per_codec_frame(freedv); + int bits_per_modem_frame = freedv_get_bits_per_modem_frame(freedv); + int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; + int bytes_per_modem_frame = (bits_per_modem_frame + 7) / 8; + int codec_frames = bits_per_modem_frame / bits_per_codec_frame; + int samples_per_frame = codec2_samples_per_frame(c2); + unsigned char encoded[bytes_per_codec_frame * codec_frames]; + unsigned char rawdata[bytes_per_modem_frame]; + + nout = 0; + + /* Use the freedv_api to demodulate only */ + int ncodec = freedv_rawdatarx(freedv, rawdata, demod_in); + freedv_codec_frames_from_rawdata(freedv, encoded, rawdata); + + /* decode the speech ourself (or send it to elsewhere, e.g. network) */ + if (ncodec) { + unsigned char *enc_frame = encoded; + short *speech_frame = speech_out; + + for (i = 0; i < codec_frames; i++) { + codec2_decode(c2, speech_frame, enc_frame); + enc_frame += bytes_per_codec_frame; + speech_frame += samples_per_frame; + nout += samples_per_frame; + } + } + } + fprintf(ftxt, "Demod of %d samples resulted %d speech samples\n", nin, nout); + + if (nout == 0) + { + /* We did not get any audio. + This means the modem is (probably) synced, but a data frame was received + Fill in the 'blanks' use by data frames with silence + */ + nout = freedv_get_n_speech_samples(freedv); + memset(speech_out, 0, nout * sizeof(short)); + } + + nin = freedv_nin(freedv); + + fwrite(speech_out, sizeof(short), nout, fout); + nout_total += nout; + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + + if (fout == stdout) fflush(stdout); + } + + fclose(ftxt); + fclose(fin); + fclose(fout); + fprintf(stderr, "frames decoded: %d output speech samples: %d, data packets: %d\n", frame, nout_total, my_cb_state.calls); + + freedv_close(freedv); + return 0; +} + diff --git a/src/freedv_mixed_tx.c b/src/freedv_mixed_tx.c new file mode 100644 index 0000000..e323537 --- /dev/null +++ b/src/freedv_mixed_tx.c @@ -0,0 +1,376 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_mixed_tx.c + AUTHOR......: Jeroen Vreeken & David Rowe + DATE CREATED: May 2020 + + Demo transmit program for FreeDV API that demonstrates shows mixed + VHF packet data and speech frames. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2014 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "freedv_api.h" +#include "codec2.h" + +/********************************************************** + Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. + http://dmlinking.net/eth_ar.html + */ + +// Lookup table for valid callsign characters +static char alnum2code[37] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 0 +}; + +// Encode a callsign and ssid into a valid MAC address +static int eth_ar_call2mac(uint8_t mac[6], char *callsign, int ssid, bool multicast) +{ + uint64_t add = 0; + int i; + + if (ssid > 15 || ssid < 0) + return -1; + + for (i = 7; i >= 0; i--) { + char c; + + if (i >= strlen(callsign)) { + c = 0; + } else { + c = toupper(callsign[i]); + } + + int j; + + for (j = 0; j < sizeof(alnum2code); j++) { + if (alnum2code[j] == c) + break; + } + if (j == sizeof(alnum2code)) + return -1; + + add *= 37; + add += j; + } + + mac[0] = ((add >> (40 - 6)) & 0xc0) | (ssid << 2) | 0x02 | multicast; + mac[1] = (add >> 32) & 0xff; + mac[2] = (add >> 24) & 0xff; + mac[3] = (add >> 16) & 0xff; + mac[4] = (add >> 8) & 0xff; + mac[5] = add & 0xff; + + return 0; +} + + +/********************************************************** + Data channel callback functions + */ + + +struct my_callback_state { + int calls; + + unsigned char mac[6]; +}; + +/* + Called when a packet has been received + Should not be called in this tx-only test program + */ +void my_datarx(void *callback_state, unsigned char *packet, size_t size) +{ + /* This should not happen while sending... */ + fprintf(stderr, "datarx callback called, this should not happen!\n"); +} + + +/* + Called when a new packet can be send. + + callback_state Private state variable, not touched by freedv. + packet Data array where new packet data is expected + size Available size in packet. On return the actual size of the packet + */ +void my_datatx(void *callback_state, unsigned char *packet, size_t *size) +{ + static int data_type; + struct my_callback_state *my_cb_state = callback_state; + my_cb_state->calls++; + + /* Data could come from a network interface, here we just make up some */ + + if (data_type % 4 == 1) { + /* + Generate a packet with simple test pattern (counting + */ + + /* Send a packet with data */ + int i; + + /* Destination: broadcast */ + memset(packet, 0xff, 6); + /* Source: our eth_ar encoded callsign+ssid */ + memcpy(packet+6, my_cb_state->mac, 6); + /* Ether type: experimental (since this is just a test pattern) */ + packet[12] = 0x01; + packet[13] = 0x01; + + for (i = 0; i < 64; i++) + packet[i + 14] = i; + *size = i + 14; + } else if (data_type % 4 == 2) { + /* + Generate an FPRS position report + */ + + /* Destination: broadcast */ + memset(packet, 0xff, 6); + /* Source: our eth_ar encoded callsign+ssid */ + memcpy(packet+6, my_cb_state->mac, 6); + /* Ether type: FPRS */ + packet[12] = 0x73; + packet[13] = 0x70; + + packet[14] = 0x07; // Position element Lon 86.925026 Lat 27.987850 + packet[15] = 0x3d; // + packet[16] = 0xd0; + packet[17] = 0x37; + packet[18] = 0xd0 | 0x08 | 0x01; + packet[19] = 0x3e; + packet[20] = 0x70; + packet[21] = 0x85; + + *size = 22; + } else { + /* + Set size to zero, the freedv api will insert a header frame + This is useful for identifying ourselves + */ + *size = 0; + } + + data_type++; +} + + +/* Determine the amount of 'energy' in the samples by squaring them + This is not a perfect VAD as noise may trigger it, but works well for demonstrations. + */ +static float samples_get_energy(short *samples, int nr) +{ + float e = 0; + int i; + + for (i = 0; i < nr; i++) { + e += (float)(samples[i] * samples[i]) / (8192); + } + e /= nr; + + return e; +} + +int main(int argc, char *argv[]) { + FILE *fin, *fout; + short *speech_in; + short *mod_out; + struct freedv *freedv; + struct my_callback_state my_cb_state; + int mode; + int n_speech_samples; + int n_nom_modem_samples; + char *callsign = "NOCALL"; + int ssid = 0; + bool multicast = false; + int use_codectx; + struct CODEC2 *c2; + int i; + float data_threshold = 15; + + if (argc < 4) { + printf("usage: %s 2400A|2400B|800XA InputRawSpeechFile OutputModemRawFile\n" + " [--codectx] [--callsign callsign] [--ssid ssid] [--mac-multicast 0|1] [--data-threshold val]\n", argv[0]); + printf("e.g %s 2400A hts1a.raw hts1a_fdmdv.raw\n", argv[0]); + exit(1); + } + + mode = -1; + if (!strcmp(argv[1],"2400A")) + mode = FREEDV_MODE_2400A; + if (!strcmp(argv[1],"2400B")) + mode = FREEDV_MODE_2400B; + if (!strcmp(argv[1],"800XA")) + mode = FREEDV_MODE_800XA; + if (mode == -1) { + fprintf(stderr, "Error in mode: %s\n", argv[1]); + exit(0); + } + + if (strcmp(argv[2], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[2],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw speech sample file: %s: %s.\n", argv[2], strerror(errno)); + exit(1); + } + + if (strcmp(argv[3], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[3],"wb")) == NULL ) { + fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[3], strerror(errno)); + exit(1); + } + + use_codectx = 0; + + if (argc > 4) { + for (i = 4; i < argc; i++) { + if (strcmp(argv[i], "--codectx") == 0) { + int c2_mode; + + if ((mode == FREEDV_MODE_700C) || (mode == FREEDV_MODE_700D) || (mode == FREEDV_MODE_800XA)) { + c2_mode = CODEC2_MODE_700C; + } else { + c2_mode = CODEC2_MODE_1300; + } + use_codectx = 1; + c2 = codec2_create(c2_mode); + assert(c2 != NULL); + } + if (strcmp(argv[i], "--callsign") == 0) { + callsign = argv[i+1]; + } + if (strcmp(argv[i], "--ssid") == 0) { + ssid = atoi(argv[i+1]); + } + if (strcmp(argv[i], "--mac-multicast") == 0) { + multicast = atoi(argv[i+1]); + } + if (strcmp(argv[i], "--data-threshold") == 0) { + data_threshold = atof(argv[i+1]); + } + } + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + /* Generate our address */ + eth_ar_call2mac(my_cb_state.mac, callsign, ssid, multicast); + + freedv_set_data_header(freedv, my_cb_state.mac); + + freedv_set_verbose(freedv, 1); + + n_speech_samples = freedv_get_n_speech_samples(freedv); + n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); + speech_in = (short*)malloc(sizeof(short)*n_speech_samples); + assert(speech_in != NULL); + mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); + assert(mod_out != NULL); + //fprintf(stderr, "n_speech_samples: %d n_nom_modem_samples: %d\n", n_speech_samples, n_nom_modem_samples); + + /* set up callback for data packets */ + freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); + + /* OK main loop */ + + while(fread(speech_in, sizeof(short), n_speech_samples, fin) == n_speech_samples) { + if (use_codectx == 0) { + /* Use the freedv_api to do everything: speech encoding, modulating + */ + float energy = samples_get_energy(speech_in, n_speech_samples); + + /* Is the audio fragment quiet? */ + if (energy < data_threshold) { + /* Insert a frame with data instead of speech */ + freedv_datatx(freedv, mod_out); + } else { + /* transmit voice frame */ + freedv_tx(freedv, mod_out, speech_in); + } + } else { + /* Use the freedv_api to do the modem part, encode ourselves + - First encode the frames + - Get activity from codec2 api + - Based on activity either send encoded voice or data + */ + int bits_per_codec_frame = freedv_get_bits_per_codec_frame(freedv); + int bits_per_modem_frame = freedv_get_bits_per_modem_frame(freedv); + int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; + int bytes_per_modem_frame = (bits_per_modem_frame + 7) / 8; + int codec_frames = bits_per_modem_frame / bits_per_codec_frame; + int samples_per_frame = codec2_samples_per_frame(c2); + unsigned char encoded[bytes_per_codec_frame * codec_frames]; + unsigned char rawdata[bytes_per_modem_frame]; + unsigned char *enc_frame = encoded; + short *speech_frame = speech_in; + float energy = 0; + + /* Encode the speech ourself (or get it from elsewhere, e.g. network) */ + for (i = 0; i < codec_frames; i++) { + codec2_encode(c2, enc_frame, speech_frame); + energy += codec2_get_energy(c2, enc_frame); + enc_frame += bytes_per_codec_frame; + speech_frame += samples_per_frame; + } + energy /= codec_frames; + + /* Is the audio fragment quiet? */ + if (energy < data_threshold) { + /* Insert a frame with data instead of speech */ + freedv_datatx(freedv, mod_out); + } else { + /* Use the freedv_api to modulate already encoded frames */ + freedv_rawdata_from_codec_frames(freedv, rawdata, encoded); + freedv_rawdatatx(freedv, mod_out, rawdata); + } + } + + fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); + + /* if this is in a pipeline, we probably don't want the usual + buffering to occur */ + if (fout == stdout) fflush(stdout); + + } + + free(speech_in); + free(mod_out); + freedv_close(freedv); + fclose(fin); + fclose(fout); + + fclose(stdin); + fclose(stderr); + + return 0; +} + diff --git a/src/freedv_rx.c b/src/freedv_rx.c new file mode 100644 index 0000000..8cb6019 --- /dev/null +++ b/src/freedv_rx.c @@ -0,0 +1,329 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_rx.c + AUTHOR......: David Rowe + DATE CREATED: August 2014 + + Demo/development receive program for FreeDV API functions: + + Example usage (all one line): + + $ cd codec2/build_linux/src + $ ./freedv_tx 1600 ../../raw/ve9qrp_10s.raw - | ./freedv_rx 1600 - - | aplay -f S16 + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2014 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "reliable_text.h" +#include "freedv_api.h" +#include "modem_stats.h" + +#define NDISCARD 5 /* BER measure optionally discards first few frames after sync */ + +/* optioal call-back function for received txt characters */ +void my_put_next_rx_char(void *states, char c) { fprintf((FILE*)states, "%c", c); } + +static FILE* reliable_tx_fp; +reliable_text_t reliable_text_obj; + +void on_reliable_text_rx(reliable_text_t rt, const char* txt_ptr, int length, void* state) +{ + fprintf(reliable_tx_fp, "%s\n", txt_ptr); + reliable_text_reset(reliable_text_obj); +} + +int main(int argc, char *argv[]) { + FILE *fin, *fout, *ftxt_rx = NULL; + int nin, nout, nout_total = 0, frame = 0; + struct MODEM_STATS stats = {0}; + int mode; + int sync; + float snr_est; + float clock_offset, foff; + int use_testframes, verbose, discard, use_complex, use_reliabletext; + int use_squelch; + float squelch = 0; + struct freedv *freedv; + int use_passthroughgain; + float passthroughgain = 0.0; + + char f2020[80] = {0}; +#ifdef __LPCNET__ + sprintf(f2020,"|2020|2020B|2020C"); +#endif + + if (argc < 4) { + helpmsg: + fprintf(stderr, "usage: %s [options] 1600|700C|700D|700E|2400A|2400B|800XA%s InputModemSpeechFile OutputSpeechRawFile\n" + "\n" + " --discard Reset BER stats on loss of sync, helps us get sensible BER results\n" + " --reliabletext txt Send 'txt' using reliable text protocol\n" + " --txtrx filename Store reliable text output to filename\n" + " --squelch leveldB Set squelch level\n" + " --testframes testframes assumed to be received instead of coded speech, measure BER/PER\n" + " --usecomplex Complex int16 input samples (default real int16)\n" + " -v Verbose level 1\n" + " --vv Verbose level 2\n" + "\n", argv[0], f2020); + fprintf(stderr, "example: $ %s 1600 hts1a_fdmdv.raw hts1a_out.raw \n", argv[0]); + exit(1); + } + + use_testframes = verbose = discard = use_complex = use_squelch = 0; use_reliabletext = 0; + use_passthroughgain = 0; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"discard", no_argument, 0, 'i'}, + {"help", no_argument, 0, 'h'}, + {"reliabletext", no_argument, 0, 'r'}, + {"squelch", required_argument, 0, 's'}, + {"txtrx", required_argument, 0, 'x'}, + {"testframes", no_argument, 0, 't'}, + {"usecomplex", no_argument, 0, 'c'}, + {"verbose1", no_argument, 0, 'v'}, + {"vv", no_argument, 0, 'w'}, + {"passthroughgain", required_argument, 0, 'p'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"idhr:s:x:tcvwp:",long_opts,&opt_idx); + + switch(o) { + case 'i': + discard = 1; + break; + case 'c': + use_complex = 1; + break; + case 'p': + use_passthroughgain = 1; + passthroughgain = atof(optarg); + break; + case 'r': + use_reliabletext = 1; + break; + case 's': + use_squelch = 1; + squelch = atof(optarg); + break; + case 't': + use_testframes = 1; + break; + case 'x': + ftxt_rx = fopen(optarg, "wt"); + assert(ftxt_rx != NULL); + break; + case 'v': + verbose = 1; + break; + case 'w': + verbose = 2; + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + int dx = optind; + + if( (argc - dx) < 3) { + fprintf(stderr, "too few arguments.\n"); + goto helpmsg; + } + + mode = -1; + if (!strcmp(argv[dx],"1600")) mode = FREEDV_MODE_1600; + if (!strcmp(argv[dx],"700C")) mode = FREEDV_MODE_700C; + if (!strcmp(argv[dx],"700D")) mode = FREEDV_MODE_700D; + if (!strcmp(argv[dx],"700E")) mode = FREEDV_MODE_700E; + if (!strcmp(argv[dx],"2400A")) mode = FREEDV_MODE_2400A; + if (!strcmp(argv[dx],"2400B")) mode = FREEDV_MODE_2400B; + if (!strcmp(argv[dx],"800XA")) mode = FREEDV_MODE_800XA; + #ifdef __LPCNET__ + if (!strcmp(argv[dx],"2020")) mode = FREEDV_MODE_2020; + if (!strcmp(argv[dx],"2020B")) mode = FREEDV_MODE_2020B; + if (!strcmp(argv[dx],"2020C")) mode = FREEDV_MODE_2020C; + #endif + if (mode == -1) { + fprintf(stderr, "Error in mode: %s\n", argv[dx]); + exit(1); + } + + if (strcmp(argv[dx+1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[dx+1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", + argv[dx+1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[dx+2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[dx+2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", + argv[dx+2], strerror(errno)); + exit(1); + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + /* set up a few options, calling these is optional -------------------------*/ + + freedv_set_test_frames(freedv, use_testframes); + if (verbose == 2) freedv_set_verbose(freedv, verbose); + + if (use_squelch) { + freedv_set_snr_squelch_thresh(freedv, squelch); + freedv_set_squelch_en(freedv, true); + } + if (use_passthroughgain) freedv_passthrough_gain(freedv, passthroughgain); + + /* install optional handler for received txt characters */ + if (ftxt_rx != NULL) + { + if (use_reliabletext) + { + reliable_tx_fp = ftxt_rx; + + reliable_text_obj = reliable_text_create(); + assert(reliable_text_obj != NULL); + reliable_text_set_string(reliable_text_obj, "AB1CDEF", 7); // not used + reliable_text_use_with_freedv(reliable_text_obj, freedv, on_reliable_text_rx, NULL); + } + else + { + freedv_set_callback_txt(freedv, my_put_next_rx_char, NULL, ftxt_rx); + } + } + + /* note use of API functions to tell us how big our buffers need to be -----*/ + + short speech_out[freedv_get_n_max_speech_samples(freedv)]; + short demod_in[freedv_get_n_max_modem_samples(freedv)]; + + /* We need to work out how many samples the demod needs on each + call (nin). This is used to adjust for differences in the tx + and rx sample clock frequencies. Note also the number of + output speech samples "nout" is time varying. */ + + nin = freedv_nin(freedv); + while(fread(demod_in, sizeof(short), nin, fin) == nin) { + frame++; + + if (use_complex) { + /* exercise the complex version of the API (useful + for testing 700D which has a different code path for + short samples) */ + COMP demod_in_complex[nin]; + + for(int i=0; i. +*/ + +#include +#include +#include +#include +#include +#include + +#include "reliable_text.h" +#include "freedv_api.h" + +struct my_callback_state { + char tx_str[80]; + char *ptx_str; + int calls; +}; + +char my_get_next_tx_char(void *callback_state) { + struct my_callback_state* pstate = (struct my_callback_state*)callback_state; + char c = *pstate->ptx_str++; + if (*pstate->ptx_str == 0) { + pstate->ptx_str = pstate->tx_str; + } + + return c; +} + +void on_reliable_text_rx(reliable_text_t rt, const char* txt_ptr, int length, void* state) +{ + // empty since we don't expect to receive anything in this program. +} + +int main(int argc, char *argv[]) { + FILE *fin, *fout; + struct freedv *freedv; + int mode; + int use_testframes, use_clip, use_txbpf, use_reliabletext; + char *callsign = ""; + reliable_text_t reliable_text_obj; + char f2020[80] = {0}; +#ifdef __LPCNET__ + sprintf(f2020,"|2020|2020B|2020C"); +#endif + + if (argc < 4) { + helpmsg: + fprintf(stderr, "usage: %s [options] 1600|700C|700D|700E|2400A|2400B|800XA%s InputRawSpeechFile OutputModemRawFile\n" + "\n" + " --clip 0|1 Clipping (compression) of modem output samples for reduced PAPR\n" + " and higher average power\n" + " --reliabletext txt Send 'txt' using reliable text protocol\n" + " --testframes Send testframe instead of coded speech. Number of testsframes depends on\n" + " length of speech input file\n" + " --txbpf 0|1 Bandpass filter\n" + "\n", argv[0], f2020); + fprintf(stderr, "example: $ %s 1600 hts1a.raw hts1a_fdmdv.raw\n", argv[0]); + exit(1); + } + + use_testframes = 0; use_clip = 0; use_txbpf = 1; use_reliabletext = 0; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"clip", required_argument, 0, 'l'}, + {"help", no_argument, 0, 'h'}, + {"reliabletext", required_argument, 0, 'r'}, + {"testframes", no_argument, 0, 't'}, + {"txbpf", required_argument, 0, 'b'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"l:dhr:tb:",long_opts,&opt_idx); + + switch(o) { + case 'b': + use_txbpf = atoi(optarg); + break; + case 'l': + use_clip = atoi(optarg); + break; + case 'r': + use_reliabletext = 1; + callsign = optarg; + break; + case 't': + use_testframes = 1; + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + int dx = optind; + + if( (argc - dx) < 3) { + fprintf(stderr, "too few arguments.\n"); + goto helpmsg; + } + + mode = -1; + if (!strcmp(argv[dx],"1600")) mode = FREEDV_MODE_1600; + if (!strcmp(argv[dx],"700C")) mode = FREEDV_MODE_700C; + if (!strcmp(argv[dx],"700D")) mode = FREEDV_MODE_700D; + if (!strcmp(argv[dx],"700E")) mode = FREEDV_MODE_700E; + if (!strcmp(argv[dx],"2400A")) mode = FREEDV_MODE_2400A; + if (!strcmp(argv[dx],"2400B")) mode = FREEDV_MODE_2400B; + if (!strcmp(argv[dx],"800XA")) mode = FREEDV_MODE_800XA; + #ifdef __LPCNET__ + if (!strcmp(argv[dx],"2020")) mode = FREEDV_MODE_2020; + if (!strcmp(argv[dx],"2020B")) mode = FREEDV_MODE_2020B; + if (!strcmp(argv[dx],"2020C")) mode = FREEDV_MODE_2020C; + #endif + if (mode == -1) { + fprintf(stderr, "Error in mode: %s\n", argv[dx]); + exit(1); + } + + if (strcmp(argv[dx+1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[dx+1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input raw speech sample file: %s: %s.\n", argv[dx+1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[dx+2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[dx+2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[dx+2], strerror(errno)); + exit(1); + } + + freedv = freedv_open(mode); + assert(freedv != NULL); + + /* these are all optional ------------------ */ + freedv_set_test_frames(freedv, use_testframes); + freedv_set_clip(freedv, use_clip); + freedv_set_tx_bpf(freedv, use_txbpf); + freedv_set_verbose(freedv, 1); + freedv_set_eq(freedv, true); /* for 700C/D/E & 800XA */ + + if (use_reliabletext) { + reliable_text_obj = reliable_text_create(); + assert(reliable_text_obj != NULL); + reliable_text_set_string(reliable_text_obj, callsign, strlen(callsign)); + reliable_text_use_with_freedv(reliable_text_obj, freedv, on_reliable_text_rx, NULL); + } + else { + /* set up callback for txt msg chars */ + struct my_callback_state my_cb_state; + sprintf(my_cb_state.tx_str, "cq cq cq hello world\r"); + my_cb_state.ptx_str = my_cb_state.tx_str; + my_cb_state.calls = 0; + freedv_set_callback_txt(freedv, NULL, &my_get_next_tx_char, &my_cb_state); + } + + /* handy functions to set buffer sizes, note tx/modulator always + returns freedv_get_n_nom_modem_samples() (unlike rx side) */ + int n_speech_samples = freedv_get_n_speech_samples(freedv); + short speech_in[n_speech_samples]; + int n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); + short mod_out[n_nom_modem_samples]; + + /* OK main loop --------------------------------------- */ + + while(fread(speech_in, sizeof(short), n_speech_samples, fin) == n_speech_samples) { + freedv_tx(freedv, mod_out, speech_in); + fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); + + /* if using pipes we don't want the usual buffering to occur */ + if (fout == stdout) fflush(stdout); + } + + freedv_close(freedv); + if (use_reliabletext) reliable_text_destroy(reliable_text_obj); + fclose(fin); + fclose(fout); + + return 0; +} diff --git a/src/freedv_vhf_framing.c b/src/freedv_vhf_framing.c new file mode 100644 index 0000000..6e2ed93 --- /dev/null +++ b/src/freedv_vhf_framing.c @@ -0,0 +1,866 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk.c + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + Framer and deframer for VHF FreeDV modes 'A' and 'B' + Currently designed for- + * 40ms ota modem frames + * 40ms Codec2 1300 frames + * 52 bits of Codec2 per frame + * 16 bits of unique word per frame + * 28 'spare' bits per frame + * - 4 spare bits at front and end of frame (8 total) for padding + * - 20 'protocol' bits, either for higher layers of 'protocol' or + * - 18 'protocol' bits and 2 vericode sidechannel bits + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + + +#include +#include +#include +#include +#include +#include "freedv_vhf_framing.h" +#include "freedv_api_internal.h" + +/* The voice UW of the VHF type A frame */ +static const uint8_t A_uw_v[] = {0,1,1,0,0,1,1,1, + 1,0,1,0,1,1,0,1}; + +/* The data UW of the VHF type A frame */ +static const uint8_t A_uw_d[] = {1,1,1,1,0,0,0,1, + 1,1,1,1,1,1,0,0}; + +/* Blank VHF type A frame */ +static const uint8_t A_blank[] = {1,0,1,0,0,1,1,1, /* Padding[0:3] Proto[0:3] */ + 1,0,1,0,0,1,1,1, /* Proto[4:11] */ + 0,0,0,0,0,0,0,0, /* Voice[0:7] */ + 0,0,0,0,0,0,0,0, /* Voice[8:15] */ + 0,0,0,0,0,0,0,0, /* Voice[16:23] */ + 0,1,1,0,0,1,1,1, /* UW[0:7] */ + 1,0,1,0,1,1,0,1, /* UW[8:15] */ + 0,0,0,0,0,0,0,0, /* Voice[24:31] */ + 0,0,0,0,0,0,0,0, /* Voice[32:39] */ + 0,0,0,0,0,0,0,0, /* Voice[40:47] */ + 0,0,0,0,0,0,1,0, /* Voice[48:51] Proto[12:15] */ + 0,1,1,1,0,0,1,0};/* Proto[16:19] Padding[4:7] */ + +/* Blank VHF type AT (A for TDMA; padding bits not transmitted) frame */ +static const uint8_t AT_blank[] = { 0,1,1,1, /* Proto[0:3] */ + 1,0,1,0,0,1,1,1, /* Proto[4:11] */ + 0,0,0,0,0,0,0,0, /* Voice[0:7] */ + 0,0,0,0,0,0,0,0, /* Voice[8:15] */ + 0,0,0,0,0,0,0,0, /* Voice[16:23] */ + 0,1,1,0,0,1,1,1, /* UW[0:7] */ + 1,0,1,0,1,1,0,1, /* UW[8:15] */ + 0,0,0,0,0,0,0,0, /* Voice[24:31] */ + 0,0,0,0,0,0,0,0, /* Voice[32:39] */ + 0,0,0,0,0,0,0,0, /* Voice[40:47] */ + 0,0,0,0,0,0,1,0, /* Voice[48:51] Proto[12:15] */ + 0,1,1,1 };/* Proto[16:19] */ + +/* HF Type B voice UW */ +static const uint8_t B_uw_v[] = {0,1,1,0,0,1,1,1}; + +/* HF Type B data UW */ +static const uint8_t B_uw_d[] = {1,1,1,1,0,0,1,0}; + +/* Blank HF type B frame */ +static const uint8_t B_blank[] = {0,1,1,0,0,1,1,1, /* UW[0:7] */ + 0,0,0,0,0,0,0,0, /* Voice1[0:7] */ + 0,0,0,0,0,0,0,0, /* Voice1[8:15] */ + 0,0,0,0,0,0,0,0, /* Voice1[16:23] */ + 0,0,0,0,0,0,0,0, /* Voice1[24:28] Voice2[0:3] */ + 0,0,0,0,0,0,0,0, /* Voice2[4:11] */ + 0,0,0,0,0,0,0,0, /* Voice2[12:19] */ + 0,0,0,0,0,0,0,0};/* Voice2[20:28] */ + +/* States */ +#define ST_NOSYNC 0 /* Not synchronized */ +#define ST_SYNC 1 /* Synchronized */ + +/* Get a single bit out of an MSB-first packed byte array */ +#define UNPACK_BIT_MSBFIRST(bytes,bitidx) ((bytes)[(bitidx)>>3]>>(7-((bitidx)&0x7)))&0x1 + +enum frame_payload_type { + FRAME_PAYLOAD_TYPE_VOICE, + FRAME_PAYLOAD_TYPE_DATA, +}; + +/* Place codec and other bits into a frame */ +void fvhff_frame_bits( int frame_type, + uint8_t bits_out[], + uint8_t codec2_in[], + uint8_t proto_in[], + uint8_t vc_in[]){ + int i,ibit; + if(frame_type == FREEDV_VHF_FRAME_A){ + /* Fill out frame with blank frame prototype */ + for(i=0; i<96; i++) + bits_out[i] = A_blank[i]; + + /* Fill in protocol bits, if present */ + if(proto_in!=NULL){ + ibit = 0; + /* First half of protocol bits */ + /* Extract and place in frame, MSB first */ + for(i=4 ; i<16; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); + ibit++; + } + /* Last set of protocol bits */ + for(i=84; i<92; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); + ibit++; + } + } + + /* Fill in varicode bits, if present */ + if(vc_in!=NULL){ + bits_out[90] = vc_in[0]; + bits_out[91] = vc_in[1]; + } + + /* Fill in codec2 bits, present or not */ + ibit = 0; + for(i=16; i<40; i++){ /* First half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); + ibit++; + } + for(i=56; i<84; i++){ /* Second half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); + ibit++; + } + }else if(frame_type == FREEDV_HF_FRAME_B){ + /* Pointers to both c2 frames so the bit unpack macro works */ + uint8_t * codec2_in1 = &codec2_in[0]; + uint8_t * codec2_in2 = &codec2_in[4]; + /* Fill out frame with blank prototype */ + for(i=0; i<64; i++) + bits_out[i] = B_blank[i]; + + /* Fill out first codec2 block */ + ibit=0; + for(i=8; i<36; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in1,ibit); + ibit++; + } + /* Fill out second codec2 block */ + ibit=0; + for(i=36; i<64; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in2,ibit); + ibit++; + } + }else if(frame_type == FREEDV_VHF_FRAME_AT){ + /* Fill out frame with blank frame prototype */ + for(i=0; i<88; i++) + bits_out[i] = AT_blank[i]; + + /* Fill in protocol bits, if present */ + if(proto_in!=NULL){ + ibit = 0; + /* First half of protocol bits */ + /* Extract and place in frame, MSB first */ + for(i=0 ; i<12; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); + ibit++; + } + /* Last set of protocol bits */ + for(i=80; i<88; i++){ + bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); + ibit++; + } + } + + /* Fill in varicode bits, if present */ + if(vc_in!=NULL){ + bits_out[86] = vc_in[0]; + bits_out[87] = vc_in[1]; + } + + /* Fill in codec2 bits, present or not */ + ibit = 0; + for(i=12; i<36; i++){ /* First half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); + ibit++; + } + for(i=52; i<80; i++){ /* Second half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); + ibit++; + } + } +} + +/* Place data and other bits into a frame */ +void fvhff_frame_data_bits(struct freedv_vhf_deframer * def, int frame_type, + uint8_t bits_out[]){ + int i,ibit; + if(frame_type == FREEDV_VHF_FRAME_A){ + uint8_t data[8]; + int end_bits; + int from_bit; + int bcast_bit; + int crc_bit; + + /* Fill out frame with blank frame prototype */ + for(i=0; i<4; i++) + bits_out[i] = A_blank[i]; + for(i=92; i<96; i++) + bits_out[i] = A_blank[i]; + + /* UW data */ + for (i=0; i < 16; i++) + bits_out[40 + i] = A_uw_d[i]; + + if (def->fdc) + freedv_data_channel_tx_frame(def->fdc, data, 8, &from_bit, &bcast_bit, &crc_bit, &end_bits); + else + return; + + bits_out[4] = from_bit; + bits_out[5] = bcast_bit; + bits_out[6] = 0; /* unused */ + bits_out[7] = 0; /* unused */ + + /* Fill in data bits */ + ibit = 0; + for(i=8; i<40; i++){ /* First half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); + ibit++; + } + for(i=56; i<88; i++){ /* Second half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); + ibit++; + } + + for (i = 0; i < 4; i++) + bits_out[88 + i] = (end_bits >> (3-i)) & 0x1; + } else if (frame_type == FREEDV_HF_FRAME_B){ + uint8_t data[6]; + int end_bits; + int from_bit; + int bcast_bit; + int crc_bit; + + /* Fill out frame with blank prototype */ + for(i=0; i<64; i++) + bits_out[i] = B_blank[i]; + + /* UW data */ + for (i=0; i < 8; i++) + bits_out[0 + i] = B_uw_d[i]; + + if (def->fdc) + freedv_data_channel_tx_frame(def->fdc, data, 6, &from_bit, &bcast_bit, &crc_bit, &end_bits); + else + return; + + bits_out[56] = from_bit; + bits_out[57] = bcast_bit; + bits_out[58] = crc_bit; + bits_out[59] = 0; /* unused */ + + /* Fill in data bits */ + ibit = 0; + for(i=8; i<56; i++){ /* First half */ + bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); + ibit++; + } + for (i = 0; i < 4; i++) + bits_out[60 + i] = (end_bits >> (3-i)) & 0x1; + } +} + +/* Init and allocate memory for a freedv-vhf framer/deframer */ +struct freedv_vhf_deframer * fvhff_create_deframer(uint8_t frame_type, int enable_bit_flip){ + struct freedv_vhf_deframer * deframer; + uint8_t *bits,*invbits; + int frame_size; + int uw_size; + + assert( (frame_type == FREEDV_VHF_FRAME_A) || (frame_type == FREEDV_HF_FRAME_B) ); + + /* It's a Type A frame */ + if(frame_type == FREEDV_VHF_FRAME_A){ + frame_size = 96; + uw_size = 16; + }else if(frame_type == FREEDV_HF_FRAME_B){ + frame_size = 64; + uw_size = 8; + }else{ + return NULL; + } + + /* Allocate memory for the thing */ + deframer = malloc(sizeof(struct freedv_vhf_deframer)); + if(deframer == NULL) + return NULL; + + /* Allocate the not-bit buffer */ + if(enable_bit_flip){ + invbits = malloc(sizeof(uint8_t)*frame_size); + if(invbits == NULL) { + free(deframer); + return NULL; + } + }else{ + invbits = NULL; + } + + /* Allocate the bit buffer */ + bits = malloc(sizeof(uint8_t)*frame_size); + if(bits == NULL) { + free(deframer); + return NULL; + } + + deframer->bits = bits; + deframer->invbits = invbits; + deframer->ftype = frame_type; + deframer->state = ST_NOSYNC; + deframer->bitptr = 0; + deframer->last_uw = 0; + deframer->miss_cnt = 0; + deframer->frame_size = frame_size; + deframer->uw_size = uw_size; + deframer->on_inv_bits = 0; + deframer->sym_size = 1; + + deframer->ber_est = 0; + deframer->total_uw_bits = 0; + deframer->total_uw_err = 0; + + deframer->fdc = NULL; + + return deframer; +} + +/* Get size of frame in bits */ +int fvhff_get_frame_size(struct freedv_vhf_deframer * def){ + return def->frame_size; +} + +/* Codec2 size in bytes */ +int fvhff_get_codec2_size(struct freedv_vhf_deframer * def){ + if(def->ftype == FREEDV_VHF_FRAME_A){ + return 7; + } else if(def->ftype == FREEDV_HF_FRAME_B){ + return 8; + } else{ + return 0; + } +} + +/* Protocol bits in bits */ +int fvhff_get_proto_size(struct freedv_vhf_deframer * def){ + if(def->ftype == FREEDV_VHF_FRAME_A){ + return 20; + } else if(def->ftype == FREEDV_HF_FRAME_B){ + return 0; + } else{ + return 0; + } +} + +/* Varicode bits in bits */ +int fvhff_get_varicode_size(struct freedv_vhf_deframer * def){ + if(def->ftype == FREEDV_VHF_FRAME_A){ + return 2; + } else if(def->ftype == FREEDV_HF_FRAME_B){ + return 0; + } else{ + return 0; + } +} + +void fvhff_destroy_deframer(struct freedv_vhf_deframer * def){ + freedv_data_channel_destroy(def->fdc); + free(def->bits); + free(def); +} + +int fvhff_synchronized(struct freedv_vhf_deframer * def){ + return (def->state) == ST_SYNC; +} + +/* Search for a complete UW in a buffer of bits */ +size_t fvhff_search_uw(const uint8_t bits[],size_t nbits, + const uint8_t uw[], size_t uw_len, + size_t * delta_out, size_t bits_per_sym){ + + size_t ibits,iuw; + size_t delta_min = uw_len; + size_t delta; + size_t offset_min = 0; + /* Walk through buffer bits */ + for(ibits = 0; ibits < nbits-uw_len; ibits+=bits_per_sym){ + delta = 0; + for(iuw = 0; iuw < uw_len; iuw++){ + if(bits[ibits+iuw] != uw[iuw]) delta++; + } + if( delta < delta_min ){ + delta_min = delta; + offset_min = ibits; + } + } + if(delta_out != NULL) *delta_out = delta_min; + return offset_min; +} + +/* See if the UW is where it should be, to within a tolerance, in a bit buffer */ +static int fvhff_match_uw(struct freedv_vhf_deframer * def,uint8_t bits[],int tol,int *rdiff, enum frame_payload_type *pt){ + int frame_type = def->ftype; + int bitptr = def->bitptr; + int frame_size = def->frame_size; + int uw_len = def->uw_size; + int iuw,ibit; + const uint8_t * uw[2]; + int uw_offset; + int diff[2] = { 0, 0 }; + int i; + int match[2]; + int r; + + /* defaults to make compiler happy on -O3 */ + + *pt = FRAME_PAYLOAD_TYPE_VOICE; + *rdiff = 0; + + /* Set up parameters for the standard type of frame */ + if(frame_type == FREEDV_VHF_FRAME_A){ + uw[0] = A_uw_v; + uw[1] = A_uw_d; + uw_len = 16; + uw_offset = 40; + } else if(frame_type == FREEDV_HF_FRAME_B){ + uw[0] = B_uw_v; + uw[1] = B_uw_d; + uw_len = 8; + uw_offset = 0; + } else { + return 0; + } + + /* Check both the voice and data UWs */ + for (i = 0; i < 2; i++) { + /* Start bit pointer where UW should be */ + ibit = bitptr + uw_offset; + if(ibit >= frame_size) ibit -= frame_size; + /* Walk through and match bits in frame with bits of UW */ + for(iuw=0; iuw= frame_size) ibit = 0; + } + match[i] = diff[i] <= tol; + //fprintf(stderr, "diff[%d]: %d tol: %d\n", i, diff[i], tol); + } + /* Pick the best matching UW */ + + if (diff[0] < diff[1]) { + r = match[0]; + *rdiff = diff[0]; + *pt = FRAME_PAYLOAD_TYPE_VOICE; + } else { + r = match[1]; + *rdiff = diff[1]; + *pt = FRAME_PAYLOAD_TYPE_DATA; + } + + return r; +} + +static void fvhff_extract_frame_voice(struct freedv_vhf_deframer * def,uint8_t bits[], + uint8_t codec2_out[],uint8_t proto_out[],uint8_t vc_out[]){ + int frame_type = def->ftype; + int bitptr = def->bitptr; + int frame_size = def->frame_size; + int iframe,ibit; + + if(frame_type == FREEDV_VHF_FRAME_A){ + /* Extract codec2 bits */ + memset(codec2_out,0,7); + ibit = 0; + /* Extract and pack first half, MSB first */ + iframe = bitptr+16; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<24;ibit++){ + codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack last half, MSB first */ + iframe = bitptr+56; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<52;ibit++){ + codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + /* Extract varicode bits, if wanted */ + if(vc_out!=NULL){ + iframe = bitptr+90; + if(iframe >= frame_size) iframe-=frame_size; + vc_out[0] = bits[iframe]; + iframe++; + vc_out[1] = bits[iframe]; + } + /* Extract protocol bits, if proto is passed through */ + if(proto_out!=NULL){ + /* Clear protocol bit array */ + memset(proto_out,0,3); + ibit = 0; + /* Extract and pack first half, MSB first */ + iframe = bitptr+4; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<12;ibit++){ + proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack last half, MSB first */ + iframe = bitptr+84; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<20;ibit++){ + proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + } + + }else if(frame_type == FREEDV_HF_FRAME_B){ + /* Pointers to both c2 frames */ + uint8_t * codec2_out1 = &codec2_out[0]; + uint8_t * codec2_out2 = &codec2_out[4]; + + /* Extract codec2 bits */ + memset(codec2_out,0,8); + ibit = 0; + + /* Extract and pack first c2 frame, MSB first */ + iframe = bitptr+8; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<28;ibit++){ + codec2_out1[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack second c2 frame, MSB first */ + iframe = bitptr+36; + ibit = 0; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<28;ibit++){ + codec2_out2[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + }else if(frame_type == FREEDV_VHF_FRAME_AT){ + /* Extract codec2 bits */ + memset(codec2_out,0,7); + ibit = 0; + /* Extract and pack first half, MSB first */ + iframe = bitptr+12; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<24;ibit++){ + codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack last half, MSB first */ + iframe = bitptr+52; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<52;ibit++){ + codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + /* Extract varicode bits, if wanted */ + if(vc_out!=NULL){ + iframe = bitptr+86; + if(iframe >= frame_size) iframe-=frame_size; + vc_out[0] = bits[iframe]; + iframe++; + vc_out[1] = bits[iframe]; + } + /* Extract protocol bits, if proto is passed through */ + if(proto_out!=NULL){ + /* Clear protocol bit array */ + memset(proto_out,0,3); + ibit = 0; + /* Extract and pack first half, MSB first */ + iframe = bitptr+4; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<12;ibit++){ + proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack last half, MSB first */ + iframe = bitptr+84; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<20;ibit++){ + proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + } + + } +} + +static void fvhff_extract_frame_data(struct freedv_vhf_deframer * def,uint8_t bits[]){ + int frame_type = def->ftype; + int bitptr = def->bitptr; + int frame_size = def->frame_size; + int iframe,ibit; + + if(frame_type == FREEDV_VHF_FRAME_A){ + uint8_t data[8]; + int end_bits = 0; + int from_bit; + int bcast_bit; + + iframe = bitptr+4; + if(iframe >= frame_size) iframe-=frame_size; + from_bit = bits[iframe]; + iframe++; + if(iframe >= frame_size) iframe-=frame_size; + bcast_bit = bits[iframe]; + + /* Extract data bits */ + memset(data,0,8); + ibit = 0; + /* Extract and pack first half, MSB first */ + iframe = bitptr+8; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<32;ibit++){ + data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract and pack last half, MSB first */ + iframe = bitptr+56; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<64;ibit++){ + data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + /* Extract endbits value, MSB first*/ + iframe = bitptr+88; + ibit = 0; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<4;ibit++){ + end_bits |= (bits[iframe]&0x1)<<(3-(ibit)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + if (def->fdc) { + freedv_data_channel_rx_frame(def->fdc, data, 8, from_bit, bcast_bit, 0, end_bits); + } + } else if(frame_type == FREEDV_HF_FRAME_B){ + uint8_t data[6]; + int end_bits = 0; + int from_bit; + int bcast_bit; + int crc_bit; + + ibit = 0; + memset(data,0,6); + + /* Extract and pack first c2 frame, MSB first */ + iframe = bitptr+8; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<48;ibit++){ + data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + iframe = bitptr+56; + if(iframe >= frame_size) iframe-=frame_size; + from_bit = bits[iframe]; + iframe++; + if(iframe >= frame_size) iframe-=frame_size; + bcast_bit = bits[iframe]; + iframe++; + if(iframe >= frame_size) iframe-=frame_size; + crc_bit = bits[iframe]; + + /* Extract endbits value, MSB first*/ + iframe = bitptr+60; + ibit = 0; + if(iframe >= frame_size) iframe-=frame_size; + for(;ibit<4;ibit++){ + end_bits |= (bits[iframe]&0x1)<<(3-(ibit)); + iframe++; + if(iframe >= frame_size) iframe=0; + } + + if (def->fdc) { + freedv_data_channel_rx_frame(def->fdc, data, 6, from_bit, bcast_bit, crc_bit, end_bits); + } + } +} + +static void fvhff_extract_frame(struct freedv_vhf_deframer * def,uint8_t bits[],uint8_t codec2_out[], + uint8_t proto_out[],uint8_t vc_out[],enum frame_payload_type pt){ + switch (pt) { + case FRAME_PAYLOAD_TYPE_VOICE: + fvhff_extract_frame_voice(def, bits, codec2_out, proto_out, vc_out); + break; + case FRAME_PAYLOAD_TYPE_DATA: + fvhff_extract_frame_data(def, bits); + break; + } +} + +/* + * Try to find the UW and extract codec/proto/vc bits in def->frame_size bits + */ +int fvhff_deframe_bits(struct freedv_vhf_deframer * def,uint8_t codec2_out[],uint8_t proto_out[], + uint8_t vc_out[],uint8_t bits_in[]){ + uint8_t * strbits = def->bits; + uint8_t * invbits = def->invbits; + uint8_t * bits; + int on_inv_bits = def->on_inv_bits; + int frame_type = def->ftype; + int state = def->state; + int bitptr = def->bitptr; + int last_uw = def->last_uw; + int miss_cnt = def->miss_cnt; + int frame_size = def->frame_size; + int uw_size = def->uw_size; + int uw_diff; + int i; + int uw_first_tol; + int uw_sync_tol; + int miss_tol; + int extracted_frame = 0; + enum frame_payload_type pt = FRAME_PAYLOAD_TYPE_VOICE; + + /* Possibly set up frame-specific params here */ + if(frame_type == FREEDV_VHF_FRAME_A){ + uw_first_tol = 1; /* The UW bit-error tolerance for the first frame */ + uw_sync_tol = 3; /* The UW bit error tolerance for frames after sync */ + miss_tol = 4; /* How many UWs may be missed before going into the de-synced state */ + }else if(frame_type == FREEDV_HF_FRAME_B){ + uw_first_tol = 0; /* The UW bit-error tolerance for the first frame */ + uw_sync_tol = 1; /* The UW bit error tolerance for frames after sync */ + miss_tol = 3; /* How many UWs may be missed before going into the de-synced state */ + }else{ + return 0; + } + + /* Skip N bits for multi-bit symbol modems */ + for(i=0; i= frame_size) bitptr -= frame_size; + def->bitptr = bitptr; + /* Enter state machine */ + if(state==ST_SYNC){ + /* Already synchronized, just wait till UW is back where it should be */ + last_uw++; + if(invbits!=NULL){ + if(on_inv_bits) + bits = invbits; + else + bits = strbits; + }else{ + bits=strbits; + } + /* UW should be here. We're sunk, so deframe anyway */ + if(last_uw == frame_size){ + last_uw = 0; + + if(!fvhff_match_uw(def,bits,uw_sync_tol,&uw_diff, &pt)) + miss_cnt++; + else + miss_cnt=0; + + /* If we go over the miss tolerance, go into no-sync */ + if(miss_cnt>miss_tol){ + state = ST_NOSYNC; + } + /* Extract the bits */ + extracted_frame = 1; + fvhff_extract_frame(def,bits,codec2_out,proto_out,vc_out,pt); + + /* Update BER estimate */ + def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); + def->total_uw_bits += uw_size; + def->total_uw_err += uw_diff; + } + /* Not yet sunk */ + }else{ + /* It's a sync!*/ + if(invbits!=NULL){ + if(fvhff_match_uw(def,invbits,uw_first_tol, &uw_diff, &pt)){ + state = ST_SYNC; + last_uw = 0; + miss_cnt = 0; + extracted_frame = 1; + on_inv_bits = 1; + fvhff_extract_frame(def,invbits,codec2_out,proto_out,vc_out,pt); + /* Update BER estimate */ + def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); + def->total_uw_bits += uw_size; + def->total_uw_err += uw_diff; + } + } + if(fvhff_match_uw(def,strbits,uw_first_tol, &uw_diff, &pt)){ + state = ST_SYNC; + last_uw = 0; + miss_cnt = 0; + extracted_frame = 1; + on_inv_bits = 0; + fvhff_extract_frame(def,strbits,codec2_out,proto_out,vc_out,pt); + /* Update BER estimate */ + def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); + def->total_uw_bits += uw_size; + def->total_uw_err += uw_diff; + } + } + } + def->state = state; + def->last_uw = last_uw; + def->miss_cnt = miss_cnt; + def->on_inv_bits = on_inv_bits; + /* return sync state and presence of extracted voice bits. + only sync for data frames, they are already handled by callback */ + return (extracted_frame ? FREEDV_RX_SYNC : 0) | (pt == FRAME_PAYLOAD_TYPE_VOICE ? FREEDV_RX_BITS : 0); +} diff --git a/src/freedv_vhf_framing.h b/src/freedv_vhf_framing.h new file mode 100644 index 0000000..53d02d4 --- /dev/null +++ b/src/freedv_vhf_framing.h @@ -0,0 +1,99 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: freedv_vhf_framing.h + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + Framer and deframer for VHF FreeDV modes 'A' and 'B' + Currently designed for- + * 40ms ota modem frames + * 40ms Codec2 1300 frames + * 52 bits of Codec2 per frame + * 16 bits of unique word per frame + * 28 'spare' bits per frame + * - 4 spare bits at front and end of frame (8 total) for padding + * - 20 'protocol' bits, either for higher layers of 'protocol' or + * - 18 'protocol' bits and 2 vericode sidechannel bits + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef _FREEDV_VHF_FRAMING_H +#define _FREEDV_VHF_FRAMING_H + +#include "freedv_data_channel.h" + +/* Standard frame type */ +#define FREEDV_VHF_FRAME_A 1 /* 2400A/B Frame */ +#define FREEDV_HF_FRAME_B 2 /* 800XA Frame */ +#define FREEDV_VHF_FRAME_AT 3 /* 4800T Frame */ + +struct freedv_vhf_deframer { + int ftype; /* Type of frame to be looking for */ + int state; /* State of deframer */ + uint8_t * bits; /* Bits currently being decanted */ + uint8_t * invbits; /* Inversion of bits currently being decanted, for FMFSK */ + + int bitptr; /* Pointer into circular bit buffer */ + int miss_cnt; /* How many UWs have been missed */ + int last_uw; /* How many bits since the last UW? */ + int frame_size; /* How big is a frame? */ + int uw_size; /* How big is the UW */ + int on_inv_bits; /* Are we using the inverted bits? */ + int sym_size; /* How many bits in a modem symbol */ + + float ber_est; /* Bit error rate estimate */ + int total_uw_bits; /* Total RX-ed bits of UW */ + int total_uw_err; /* Total errors in UW bits */ + + struct freedv_data_channel *fdc; +}; + +/* Init and allocate memory for a freedv-vhf framer/deframer */ +struct freedv_vhf_deframer * fvhff_create_deframer(uint8_t frame_type,int enable_bit_flip); + +/* Get size of various frame parameters */ +/* Frame size in bits */ +int fvhff_get_frame_size(struct freedv_vhf_deframer * def); +/* Codec2 size in bytes */ +int fvhff_get_codec2_size(struct freedv_vhf_deframer * def); +/* Protocol bits in bits */ +int fvhff_get_proto_size(struct freedv_vhf_deframer * def); +/* Varicode bits in bits */ +int fvhff_get_varicode_size(struct freedv_vhf_deframer * def); + +/* Free the memory used by a freedv-vhf framer/deframer */ +void fvhff_destroy_deframer(struct freedv_vhf_deframer * def); + +/* Place codec and other bits into a frame */ +void fvhff_frame_bits(int frame_type,uint8_t bits_out[],uint8_t codec2_in[],uint8_t proto_in[],uint8_t vc_in[]); +void fvhff_frame_data_bits(struct freedv_vhf_deframer * def, int frame_type,uint8_t bits_out[]); + +/* Find and extract frames from a stream of bits */ +int fvhff_deframe_bits(struct freedv_vhf_deframer * def,uint8_t codec2_out[],uint8_t proto_out[],uint8_t vc_out[],uint8_t bits_in[]); + +/* Is the de-framer synchronized? */ +int fvhff_synchronized(struct freedv_vhf_deframer * def); + +/* Search for a complete UW in a buffer of bits */ +size_t fvhff_search_uw(const uint8_t bits[],size_t nbits, + const uint8_t uw[], size_t uw_len, + size_t * delta_out, size_t bits_per_sym); + +#endif //_FREEDV_VHF_FRAMING_H diff --git a/src/fsk.c b/src/fsk.c new file mode 100644 index 0000000..7bb009e --- /dev/null +++ b/src/fsk.c @@ -0,0 +1,1052 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk.c + AUTHOR......: Brady O'Brien & David Rowe + DATE CREATED: 7 January 2016 + + C Implementation of 2/4FSK modulator/demodulator, based on octave/fsk_lib.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016-2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +/* Define this to enable EbNodB estimate */ +/* This needs square roots, may take more cpu time than it's worth */ +#define EST_EBNO + +/* This is a flag for the freq. estimator to use a precomputed/rt computed hann window table + On platforms with slow cosf, this will produce a substantial speedup at the cost of a small + amount of memory +*/ +#define USE_HANN_TABLE + +/* This flag turns on run-time hann table generation. If USE_HANN_TABLE is unset, + this flag has no effect. If USE_HANN_TABLE is set and this flag is set, the + hann table will be allocated and generated when fsk_init or fsk_init_hbr is + called. If this flag is not set, a hann function table of size fsk->Ndft MUST + be provided. On small platforms, this can be used with a precomputed table to + save memory at the cost of flash space. +*/ +#define GENERATE_HANN_TABLE_RUNTIME + +/* Turn off table generation if on cortex M4 to save memory */ +#ifdef CORTEX_M4 +#undef USE_HANN_TABLE +#endif + +/*---------------------------------------------------------------------------*\ + + INCLUDES + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include +#include + +#include "fsk.h" +#include "comp_prim.h" +#include "kiss_fftr.h" +#include "modem_probe.h" + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +static void stats_init(struct FSK *fsk); + +#ifdef USE_HANN_TABLE +/* + This is used by fsk_create and fsk_create_hbr to generate a hann function + table +*/ +static void fsk_generate_hann_table(struct FSK* fsk){ + int Ndft = fsk->Ndft; + size_t i; + + for(i=0; ihann_table[i] = 0.5 - 0.5 * cosf(2.0 * M_PI * (float)i / (float) (Ndft-1)); + } +} +#endif + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_create_core + AUTHOR......: Brady O'Brien + DATE CREATED: 7 January 2016 + + In this version of the demod the standard/hbr modes have been + largely combined at they shared so much common code. The + fsk_create/fsk_create_hbr function interface has been retained to + maximise compatibility with existing applications. + +\*---------------------------------------------------------------------------*/ + +struct FSK * fsk_create_core(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing) +{ + struct FSK *fsk; + int i; + + /* Check configuration validity */ + assert(Fs > 0); + assert(Rs > 0); + assert(P > 0); + assert(Nsym > 0); + /* Ts (Fs/Rs) must be an integer */ + assert( (Fs%Rs) == 0 ); + /* Ts/P (Fs/Rs/P) must be an integer */ + assert( ((Fs/Rs)%P) == 0 ); + /* If P is too low we don't have a good choice of timing offsets to choose from */ + assert( P >= 4 ); + assert( M==2 || M==4); + + fsk = (struct FSK*) calloc(1, sizeof(struct FSK)); assert(fsk != NULL); + + // Need enough bins to within 10% of tone centre + float bin_width_Hz = 0.1*Rs; + float Ndft = (float)Fs/bin_width_Hz; + Ndft = pow(2.0, ceil(log2(Ndft))); + + /* Set constant config parameters */ + fsk->Fs = Fs; + fsk->Rs = Rs; + fsk->Ts = Fs/Rs; + fsk->burst_mode = 0; + fsk->P = P; + fsk->Nsym = Nsym; + fsk->N = fsk->Ts*fsk->Nsym; + fsk->Ndft = Ndft; + fsk->tc = 0.1; + fsk->Nmem = fsk->N+(2*fsk->Ts); + fsk->f1_tx = f1_tx; + fsk->tone_spacing = tone_spacing; + fsk->nin = fsk->N; + fsk->lock_nin = 0; + fsk->mode = M==2 ? MODE_2FSK : MODE_4FSK; + fsk->Nbits = M==2 ? fsk->Nsym : fsk->Nsym*2; + fsk->est_min = 0; + fsk->est_max = Fs; + fsk->est_space = 0.75*Rs; + fsk->freq_est_type = 0; + + //printf("C.....: M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d N: %d Ndft: %d fmin: %d fmax: %d\n", + // M, fsk->Fs, fsk->Rs, fsk->Ts, fsk->Nsym, fsk->Nbits, fsk->N, fsk->Ndft, fsk->est_min, fsk->est_max); + /* Set up rx state */ + for(i=0; iphi_c[i] = comp_exp_j(0); + fsk->f_dc = (COMP*)malloc(M*fsk->Nmem*sizeof(COMP)); assert(fsk->f_dc != NULL); + for(i=0; iNmem; i++) + fsk->f_dc[i] = comp0(); + + fsk->fft_cfg = kiss_fft_alloc(Ndft,0,NULL,NULL); assert(fsk->fft_cfg != NULL); + fsk->Sf = (float*)malloc(sizeof(float)*fsk->Ndft); assert(fsk->Sf != NULL); + for(i=0;iSf[i] = 0; + + #ifdef USE_HANN_TABLE + #ifdef GENERATE_HANN_TABLE_RUNTIME + fsk->hann_table = (float*)malloc(sizeof(float)*fsk->Ndft); assert(fsk->hann_table != NULL); + fsk_generate_hann_table(fsk); + #else + fsk->hann_table = NULL; + #endif + #endif + + + fsk->norm_rx_timing = 0; + + /* Set up tx state */ + fsk->tx_phase_c = comp_exp_j(0); + + /* Set up demod stats */ + fsk->EbNodB = 0; + + for( i=0; if_est[i] = 0; + + fsk->ppm = 0; + + fsk->stats = (struct MODEM_STATS*)malloc(sizeof(struct MODEM_STATS)); assert(fsk->stats != NULL); + stats_init(fsk); + fsk->normalise_eye = 1; + + return fsk; +} + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: fsk_create + AUTHOR......: Brady O'Brien + DATE CREATED: 7 January 2016 + + Create and initialize an instance of the FSK modem. Returns a pointer + to the modem state/config struct. One modem config struct may be used + for both mod and demod. + + If you are not intending to use the modulation functions, you can + set f1_tx to FSK_NONE. + +\*---------------------------------------------------------------------------*/ + +struct FSK * fsk_create(int Fs, int Rs, int M, int tx_f1, int tx_fs) { + return fsk_create_core(Fs, Rs, M, FSK_DEFAULT_P, FSK_DEFAULT_NSYM, tx_f1, tx_fs); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_create_hbr + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + Alternate version of create allows user defined oversampling P and + averaging window Nsym. In the current version of the demod it's + simply an alias for the default core function. + + P is the oversampling rate of the internal demod processing, which + happens at Rs*P Hz. We filter the tones at P different timing + offsets, and choose the best one. P should be >=8, so we have a + choice of at least 8 timing offsets. This may require some + adjustment of Fs and Rs, as Fs/Rs/P must be an integer. + + Nsym is the number of symbols we average demod parameters like + symbol timing over. + +\*---------------------------------------------------------------------------*/ + +struct FSK * fsk_create_hbr(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing) { + return fsk_create_core(Fs, Rs, M, P, Nsym, f1_tx, tone_spacing); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_destroy + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + Call this to free all memory and shut down the modem. + +\*---------------------------------------------------------------------------*/ + +void fsk_destroy(struct FSK *fsk){ + free(fsk->Sf); + free(fsk->f_dc); + free(fsk->fft_cfg); + free(fsk->stats); + free(fsk->hann_table); + free(fsk); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_mod + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + FSK modulator function, real valued output samples with amplitude 2. + +\*---------------------------------------------------------------------------*/ + +void fsk_mod(struct FSK *fsk,float fsk_out[], uint8_t tx_bits[], int nbits) { + COMP tx_phase_c = fsk->tx_phase_c; /* Current complex TX phase */ + int f1_tx = fsk->f1_tx; /* '0' frequency */ + int tone_spacing = fsk->tone_spacing; /* space between frequencies */ + int Ts = fsk->Ts; /* samples-per-symbol */ + int Fs = fsk->Fs; /* sample freq */ + int M = fsk->mode; + COMP dosc_f[M]; /* phase shift per sample */ + COMP dph; /* phase shift of current bit */ + size_t i,j,m,bit_i,sym; + + /* trap these parametrs being set to FSK_UNUSED, then calling mod */ + assert(f1_tx > 0); + assert(tone_spacing > 0); + + /* Init the per sample phase shift complex numbers */ + for( m=0; m>1); + for(i=0; i>=1; ){ + uint8_t bit = tx_bits[bit_i]; + bit = (bit==1)?1:0; + sym = (sym<<1)|bit; + bit_i++; + } + /* Look up symbol phase shift */ + dph = dosc_f[sym]; + /* Spin the oscillator for a symbol period */ + for(j=0; jtx_phase_c = tx_phase_c; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_mod_c + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + FSK modulator function, complex valued output samples with magnitude 1. + +\*---------------------------------------------------------------------------*/ + +void fsk_mod_c(struct FSK *fsk,COMP fsk_out[], uint8_t tx_bits[], int nbits) { + COMP tx_phase_c = fsk->tx_phase_c; /* Current complex TX phase */ + int f1_tx = fsk->f1_tx; /* '0' frequency */ + int tone_spacing = fsk->tone_spacing; /* space between frequencies */ + int Ts = fsk->Ts; /* samples-per-symbol */ + int Fs = fsk->Fs; /* sample freq */ + int M = fsk->mode; + COMP dosc_f[M]; /* phase shift per sample */ + COMP dph; /* phase shift of current bit */ + size_t i,j,bit_i,sym; + int m; + + /* trap these parametrs being set to FSK_UNUSED, then calling mod */ + assert(f1_tx > 0); + assert(tone_spacing > 0); + + /* Init the per sample phase shift complex numbers */ + for( m=0; m>1); + for(i=0; i>=1; ){ + uint8_t bit = tx_bits[bit_i]; + bit = (bit==1)?1:0; + sym = (sym<<1)|bit; + bit_i++; + } + /* Look up symbol phase shift */ + dph = dosc_f[sym]; + /* Spin the oscillator for a symbol period */ + for(j=0; jtx_phase_c = tx_phase_c; + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_mod_ext_vco + AUTHOR......: David Rowe + DATE CREATED: February 2018 + + Modulator that assume an external VCO. The output is a voltage + that changes for each symbol. + +\*---------------------------------------------------------------------------*/ + +void fsk_mod_ext_vco(struct FSK *fsk, float vco_out[], uint8_t tx_bits[], int nbits) { + int f1_tx = fsk->f1_tx; /* '0' frequency */ + int tone_spacing = fsk->tone_spacing; /* space between frequencies */ + int Ts = fsk->Ts; /* samples-per-symbol */ + int M = fsk->mode; + int i, j, m, sym, bit_i; + + /* trap these parametrs being set to FSK_UNUSED, then calling mod */ + assert(f1_tx > 0); + assert(tone_spacing > 0); + + bit_i = 0; + int nsym = nbits/(M>>1); + for(i=0; i>=1; ){ + uint8_t bit = tx_bits[bit_i]; + bit = (bit==1)?1:0; + sym = (sym<<1)|bit; + bit_i++; + } + + /* + Map 'sym' to VCO frequency + Note: drive is inverted, a higher tone drives VCO voltage lower + */ + + //fprintf(stderr, "i: %d sym: %d freq: %f\n", i, sym, f1_tx + tone_spacing*(float)sym); + for(j=0; jnin; +} + +/* + * Internal function to estimate the frequencies of the FSK tones. + * This is split off because it is fairly complicated, needs a bunch of memory, and probably + * takes more cycles than the rest of the demod. + * Parameters: + * fsk - FSK struct from demod containing FSK config + * fsk_in - block of samples in this demod cycles, must be nin long + * freqs - Array for the estimated frequencies + * M - number of frequency peaks to find + */ +void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[], float *freqs, int M) { + int Ndft = fsk->Ndft; + int Fs = fsk->Fs; + int nin = fsk->nin; + size_t i,j; + float hann; + float max; + int imax; + kiss_fft_cfg fft_cfg = fsk->fft_cfg; + int freqi[M]; + int st,en,f_zero; + + kiss_fft_cpx *fftin = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx)*Ndft); + kiss_fft_cpx *fftout = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx)*Ndft); + + st = (fsk->est_min*Ndft)/Fs + Ndft/2; if (st < 0) st = 0; + en = (fsk->est_max*Ndft)/Fs + Ndft/2; if (en > Ndft) en = Ndft; + //fprintf(stderr, "min: %d max: %d st: %d en: %d\n", fsk->est_min, fsk->est_max, st, en); + + f_zero = (fsk->est_space*Ndft)/Fs; + //fprintf(stderr, "fsk->est_space: %d f_zero = %d\n", fsk->est_space, f_zero); + + int numffts = floor((float)nin/(Ndft/2)) - 1; + for(j=0; jhann_table[i]; + #else + hann = 0.5 - 0.5 * cosf(2.0 * M_PI * (float)i / (float) (fft_samps-1)); + #endif + fftin[i].r = hann*fsk_in[i+a].real; + fftin[i].i = hann*fsk_in[i+a].imag; + } + + /* Do the FFT */ + kiss_fft(fft_cfg,fftin,fftout); + + /* FFT shift to put DC bin at Ndft/2 */ + kiss_fft_cpx tmp; + for(i=0; itc; + for(i=0; iSf[i] = (fsk->Sf[i]*(1-tc)) + (sqrtf(fftout[i].r)*tc); + fftout[i].i = fsk->Sf[i]; + } + } + + modem_probe_samp_f("t_Sf",fsk->Sf,Ndft); + + max = 0; + /* Find the M frequency peaks here */ + for(i=0; i max){ + max = fftout[j].i; + imax = j; + } + } + /* Blank out FMax +/-Fspace/2 */ + int f_min, f_max; + f_min = imax - f_zero; + f_min = f_min < 0 ? 0 : f_min; + f_max = imax + f_zero; + f_max = f_max > Ndft ? Ndft : f_max; + for(j=f_min; j= freqi[i-1]) i++; + else{ + j = freqi[i]; + freqi[i] = freqi[i-1]; + freqi[i-1] = j; + if(i>1) i--; + } + } + + /* Convert freqs from indices to frequencies */ + for(i=0; itone_spacing*Ndft/Fs)-1; + for(i=bin; i<=bin+2; i++) mask[i] = 1.0; + } + int len_mask = bin+2+1; + + #ifdef MODEMPROBE_ENABLE + modem_probe_samp_f("t_mask",mask,len_mask); + #endif + + /* drag mask over Sf, looking for peak in correlation */ + int b_max = st; float corr_max = 0.0; + float *Sf = fsk->Sf; + for (int b=st; b corr_max) { + corr_max = corr; + b_max = b; + } + } + float foff = (b_max-Ndft/2)*Fs/Ndft; + //fprintf(stderr, "fsk->tone_spacing: %d\n",fsk->tone_spacing); + for (int m=0; mf2_est[m] = foff + m*fsk->tone_spacing; + + #ifdef MODEMPROBE_ENABLE + modem_probe_samp_f("t_f2_est",fsk->f2_est,M); + #endif + + free(fftin); + free(fftout); +} + +/* core demodulator function */ +void fsk_demod_core(struct FSK *fsk, uint8_t rx_bits[], float rx_filt[], COMP fsk_in[]){ + int N = fsk->N; + int Ts = fsk->Ts; + int Rs = fsk->Rs; + int Fs = fsk->Fs; + int nsym = fsk->Nsym; + int nin = fsk->nin; + int P = fsk->P; + int Nmem = fsk->Nmem; + int M = fsk->mode; + size_t i,j,m; + float ft1; + + COMP t[M]; /* complex number temps */ + COMP t_c; /* another complex temp */ + COMP *phi_c = fsk->phi_c; + COMP *f_dc = fsk->f_dc; + COMP phi_ft; + int nold = Nmem-nin; + + COMP dphift; + float rx_timing,norm_rx_timing,old_norm_rx_timing,d_norm_rx_timing,appm; + + float fc_avg,fc_tx; + float meanebno,stdebno,eye_max; + int neyesamp,neyeoffset; + + #ifdef MODEMPROBE_ENABLE + #define NMP_NAME 26 + char mp_name_tmp[NMP_NAME+1]; /* Temporary string for modem probe trace names */ + #endif + + /* Estimate tone frequencies */ + fsk_demod_freq_est(fsk,fsk_in,fsk->f_est,M); + #ifdef MODEMPROBE_ENABLE + modem_probe_samp_f("t_f_est",fsk->f_est,M); + #endif + float *f_est; + if (fsk->freq_est_type) + f_est = fsk->f2_est; + else + f_est = fsk->f_est; + + /* update filter (integrator) memory by shifting in nin samples */ + for(m=0; mnorm_rx_timing; + fsk->norm_rx_timing = norm_rx_timing; + + /* Estimate sample clock offset */ + d_norm_rx_timing = norm_rx_timing - old_norm_rx_timing; + + /* Filter out big jumps in due to nin change */ + if(fabsf(d_norm_rx_timing) < .2){ + appm = 1e6*d_norm_rx_timing/(float)nsym; + fsk->ppm = .9*fsk->ppm + .1*appm; + } + + /* Figure out how many samples are needed the next modem cycle */ + /* Unless we're in burst mode or nin locked */ + if(!fsk->burst_mode && !fsk->lock_nin) { + if(norm_rx_timing > 0.25) + fsk->nin = N+Ts/4; + else if(norm_rx_timing < -0.25) + fsk->nin = N-Ts/4; + else + fsk->nin = N; + } + + modem_probe_samp_f("t_norm_rx_timing",&(norm_rx_timing),1); + modem_probe_samp_i("t_nin",&(fsk->nin),1); + + /* Re-sample the integrators with linear interpolation magic */ + int low_sample = (int)floorf(rx_timing); + float fract = rx_timing - (float)low_sample; + int high_sample = (int)ceilf(rx_timing); + + /* Vars for finding the max-of-4 for each bit */ + float tmax[M]; + + #ifdef EST_EBNO + meanebno = 0; + stdebno = 0; + #endif + + float rx_nse_pow = 1E-12; float rx_sig_pow = 0.0; + for(i=0; imax){ + max = tmax[m]; + sym = m; + } + if(tmax[m]>1; + } + } + + /* Optionally output filter magnitudes for soft decision/LLR + calculation. Update SNRest always as this is a useful + alternative to the earlier EbNo estimator below */ + float sum = 0.0; + for(m=0; mrx_sig_pow = rx_sig_pow = rx_sig_pow/nsym; + fsk->rx_nse_pow = rx_nse_pow = rx_nse_pow/nsym; + fsk->v_est = sqrt(rx_sig_pow-rx_nse_pow); + fsk->SNRest = rx_sig_pow/rx_nse_pow; + + #ifdef EST_EBNO + /* Calculate mean for EbNodB estimation */ + meanebno = meanebno/(float)nsym; + + /* Calculate the std. dev for EbNodB estimate */ + stdebno = (stdebno/(float)nsym) - (meanebno*meanebno); + /* trap any negative numbers to avoid NANs flowing through */ + if (stdebno > 0.0) { + stdebno = sqrt(stdebno); + } else { + stdebno = 0.0; + } + + fsk->EbNodB = -6+(20*log10f((1e-6+meanebno)/(1e-6+stdebno))); + #else + fsk->EbNodB = 1; + #endif + + /* Write some statistics to the stats struct */ + + /* Save clock offset in ppm */ + fsk->stats->clock_offset = fsk->ppm; + + /* Calculate and save SNR from EbNodB estimate */ + + fsk->stats->snr_est = .5*fsk->stats->snr_est + .5*fsk->EbNodB;//+ 10*log10f(((float)Rs)/((float)Rs*M)); + + /* Save rx timing */ + fsk->stats->rx_timing = (float)rx_timing; + + /* Estimate and save frequency offset */ + fc_avg = fc_tx = 0.0; + for(int m=0; mf1_tx + m*fsk->tone_spacing)/M; + } + fsk->stats->foff = fc_avg-fc_tx; + + /* Take a sample for the eye diagrams ---------------------------------- */ + + /* due to oversample rate P, we have too many samples for eye + trace. So lets output a decimated version. We use 2P + as we want two symbols worth of samples in trace */ +#ifndef __EMBEDDED__ + int neyesamp_dec = ceil(((float)P*2)/MODEM_STATS_EYE_IND_MAX); + neyesamp = (P*2)/neyesamp_dec; + assert(neyesamp <= MODEM_STATS_EYE_IND_MAX); + fsk->stats->neyesamp = neyesamp; + + neyeoffset = high_sample+1; + + int eye_traces = MODEM_STATS_ET_MAX/M; + int ind; + + fsk->stats->neyetr = fsk->mode*eye_traces; + for( i=0; iMODEM_STATS_EYE_IND_MAX advance through integrated + samples newamp_dec at a time so we dont overflow rx_eye[][] + */ + ind = 2*P*(i+1) + neyeoffset + j*neyesamp_dec; + assert((i*M+m) < MODEM_STATS_ET_MAX); + assert(ind >= 0); + assert(ind < (nsym+1)*P); + fsk->stats->rx_eye[i*M+m][j] = cabsolute(f_int[m][ind]); + } + } + } + + if (fsk->normalise_eye) { + eye_max = 0; + /* Normalize eye to +/- 1 */ + for(i=0; istats->rx_eye[i][j])>eye_max) + eye_max = fabsf(fsk->stats->rx_eye[i][j]); + + for(i=0; istats->rx_eye[i][j] = fsk->stats->rx_eye[i][j]/eye_max; + } + + fsk->stats->nr = 0; + fsk->stats->Nc = 0; + + for(i=0; istats->f_est[i] = f_est[i]; +#endif // !__EMBEDDED__ + + /* Dump some internal samples */ + modem_probe_samp_f("t_EbNodB",&(fsk->EbNodB),1); + modem_probe_samp_f("t_ppm",&(fsk->ppm),1); + modem_probe_samp_f("t_rx_timing",&(rx_timing),1); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fsk_demod + AUTHOR......: Brady O'Brien + DATE CREATED: 11 February 2016 + + FSK demodulator functions: + + fsk_demod...: complex samples in, bits out + fsk_demos_sd: complex samples in, soft decision symbols out + +\*---------------------------------------------------------------------------*/ + +void fsk_demod(struct FSK *fsk, uint8_t rx_bits[], COMP fsk_in[]) { + fsk_demod_core(fsk,rx_bits,NULL,fsk_in); +} + +void fsk_demod_sd(struct FSK *fsk, float rx_filt[], COMP fsk_in[]){ + fsk_demod_core(fsk,NULL,rx_filt,fsk_in); +} + +/* make sure stats have known values in case monitoring process reads stats before they are set */ +static void stats_init(struct FSK *fsk) { + /* Take a sample for the eye diagrams */ + int i,j,m; + int P = fsk->P; + int M = fsk->mode; + + /* due to oversample rate P, we have too many samples for eye + trace. So lets output a decimated version */ + + /* asserts below as we found some problems over-running eye matrix */ + + /* TODO: refactor eye tracing code here and in fsk_demod */ +#ifndef __EMBEDDED__ + int neyesamp_dec = ceil(((float)P*2)/MODEM_STATS_EYE_IND_MAX); + int neyesamp = (P*2)/neyesamp_dec; + assert(neyesamp <= MODEM_STATS_EYE_IND_MAX); + fsk->stats->neyesamp = neyesamp; + + int eye_traces = MODEM_STATS_ET_MAX/M; + + fsk->stats->neyetr = fsk->mode*eye_traces; + for(i=0; istats->rx_eye[i*M+m][j] = 0; + } + } + } +#endif // !__EMBEDDED__ + + fsk->stats->rx_timing = fsk->stats->snr_est = 0; + +} + + +/* Set the FSK modem into burst demod mode */ + +void fsk_enable_burst_mode(struct FSK *fsk){ + fsk->nin = fsk->N; + fsk->burst_mode = 1; +} + +void fsk_clear_estimators(struct FSK *fsk){ + int i; + /* Clear freq estimator state */ + for(i=0; i < (fsk->Ndft); i++){ + fsk->Sf[i] = 0; + } + /* Reset timing diff correction */ + fsk->nin = fsk->N; +} + +void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats){ + /* copy from internal stats, note we can't overwrite stats completely + as it has other states rqd by caller, also we want a consistent + interface across modem types for the freedv_api. + */ + + stats->clock_offset = fsk->stats->clock_offset; + stats->snr_est = fsk->stats->snr_est; // TODO: make this SNR not Eb/No + stats->rx_timing = fsk->stats->rx_timing; + stats->foff = fsk->stats->foff; +#ifndef __EMBEDDED__ + stats->neyesamp = fsk->stats->neyesamp; + stats->neyetr = fsk->stats->neyetr; + memcpy(stats->rx_eye, fsk->stats->rx_eye, sizeof(stats->rx_eye)); + memcpy(stats->f_est, fsk->stats->f_est, fsk->mode*sizeof(float)); +#endif // !__EMBEDDED__ + + /* these fields not used for FSK so set to something sensible */ + + stats->sync = 0; + stats->nr = fsk->stats->nr; + stats->Nc = fsk->stats->Nc; +} + +/* + * Set the minimum and maximum frequencies at which the freq. estimator can find tones + */ +void fsk_set_freq_est_limits(struct FSK *fsk, int est_min, int est_max){ + assert(fsk != NULL); + assert(est_min >= -fsk->Fs/2); + assert(est_max <= fsk->Fs/2); + assert(est_max > est_min); + fsk->est_min = est_min; + fsk->est_max = est_max; +} + +void fsk_stats_normalise_eye(struct FSK *fsk, int normalise_enable) { + assert(fsk != NULL); + fsk->normalise_eye = normalise_enable; +} + +void fsk_set_freq_est_alg(struct FSK *fsk, int est_type) { + assert(fsk != NULL); + fsk->freq_est_type = est_type; +} + + + + + + + diff --git a/src/fsk.h b/src/fsk.h new file mode 100644 index 0000000..046fa7a --- /dev/null +++ b/src/fsk.h @@ -0,0 +1,217 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk.h + AUTHOR......: Brady O'Brien + DATE CREATED: 6 January 2016 + + C Implementation of 2FSK/4FSK modulator/demodulator, based on octave/fsk_horus.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + + +#ifndef __C2FSK_H +#define __C2FSK_H + +#include +#include "comp.h" +#include "kiss_fftr.h" +#include "modem_stats.h" + +#define MODE_2FSK 2 +#define MODE_4FSK 4 + +#define MODE_M_MAX 4 + +#define FSK_SCALE 16383 + +/* default internal parameters */ +#define FSK_DEFAULT_P 8 /* Number of timing offsets we have to choose from, try to keep P >= 8 */ +#define FSK_DEFAULT_NSYM 50 /* See Nsym below */ +#define FSK_NONE -1 /* unused parameter */ + +struct FSK { + /* Static parameters set up by fsk_init */ + int Ndft; /* freq offset est fft */ + int Fs; /* sample freq */ + int N; /* processing buffer size */ + int Rs; /* symbol rate */ + int Ts; /* samples per symbol */ + int Nmem; /* size of extra mem for timing adj */ + int P; /* oversample rate for timing est/adj */ + int Nsym; /* Number of symbols processed by demodulator in each call, also the timing estimator window */ + int Nbits; /* Number of bits spat out in a processing frame */ + int f1_tx; /* f1 for modulator */ + int tone_spacing; /* Space between TX freqs for modulator (and option mask freq estimator) */ + int mode; /* 2FSK or 4FSK */ + float tc; /* time constant for smoothing FFTs */ + int est_min; /* Minimum frequency for freq. estimator */ + int est_max; /* Maximum frequency for freq. estimator */ + int est_space; /* Minimum frequency spacing for freq. estimator */ + float* hann_table; /* Precomputed or runtime computed hann window table */ + + /* Parameters used by demod */ + float* Sf; /* Average of magnitude spectrum */ + COMP phi_c[MODE_M_MAX]; /* phase of each demod local oscillator */ + COMP *f_dc; /* down converted samples */ + + kiss_fft_cfg fft_cfg; /* Config for KISS FFT, used in freq est */ + float norm_rx_timing; /* Normalized RX timing */ + + /* Parameters used by mod */ + COMP tx_phase_c; /* TX phase, but complex */ + + /* Statistics generated by demod */ + float EbNodB; /* Estimated EbNo in dB */ + float f_est[MODE_M_MAX]; /* Estimated frequencies (peak method) */ + float f2_est[MODE_M_MAX];/* Estimated frequencies (mask method) */ + int freq_est_type; /* which estimator to use */ + float ppm; /* Estimated PPM clock offset */ + float SNRest; /* used for LLRs */ + float v_est; /* used for LLRs */ + float rx_sig_pow; + float rx_nse_pow; + + /* Parameters used by mod/demod and driving code */ + int nin; /* Number of samples to feed the next demod cycle */ + int burst_mode; /* enables/disables 'burst' mode */ + int lock_nin; /* locks nin during testing */ + + /* modem statistics struct */ + struct MODEM_STATS *stats; + int normalise_eye; /* enables/disables normalisation of eye diagram */ +}; + +/* + * Create a FSK modem + * + * int Fs - Sample frequency + * int Rs - Symbol rate + * int M - 2 for 2FSK, 4 for 4FSK + * int f1_tx - first tone frequency + * int tone_spacing - frequency spacing (for modulator and optional "mask" freq estimator) + */ +struct FSK * fsk_create(int Fs, int Rs, int M, int f1_tx, int tone_spacing); + +/* + * Create a FSK modem - advanced version + * + * int Fs - Sample frequency + * int Rs - Symbol rate + * int M - 2 for 2FSK, 4 for 4FSK + * int P - number of timing offsets to choose from (suggest >= 8) + * int Nsym - windows size for timing estimator + * int f1_tx - first tone frequency + * int tone_spacing - frequency spacing (for modulator and optional "mask" freq estimator) + */ +struct FSK * fsk_create_hbr(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing); + +/* + * Set the minimum and maximum frequencies at which the freq. estimator can find tones + */ +void fsk_set_freq_est_limits(struct FSK *fsk,int fmin, int fmax); + +/* + * Clear the estimator states + */ +void fsk_clear_estimators(struct FSK *fsk); + +/* + * Fills MODEM_STATS struct with demod statistics + */ +void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats); + +/* + * Destroy an FSK state struct and free it's memory + * + * struct FSK *fsk - FSK config/state struct to be destroyed + */ +void fsk_destroy(struct FSK *fsk); + +/* + * Modulates Nsym bits into N samples + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * float fsk_out[] - Buffer for samples of modulated FSK, fsk->Ts*(nbits/(M>>1)) in length + * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits + * int nbits - number of bits to transmit + */ +void fsk_mod(struct FSK *fsk, float fsk_out[], uint8_t tx_bits[], int nbits); + +/* + * Modulates Nsym bits into N samples + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * float fsk_out[] - Buffer for samples of "voltage" used to modulate an external VCO + * - fsk->Ts*(nbits/(M>>1)) in length + * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits + * int nbits - number of bits to transmit + */ +void fsk_mod_ext_vco(struct FSK *fsk, float vco_out[], uint8_t tx_bits[], int nbits); + +/* + * Modulates Nsym bits into N complex samples + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * comp fsk_out[] - Buffer for samples of modulated FSK, fsk->Ts*(nbits/(M>>1)) in length + * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits + * int nbits - number of bits to transmit + */ +void fsk_mod_c(struct FSK *fsk, COMP fsk_out[], uint8_t tx_bits[], int nbits); + +/* + * Returns the number of samples needed for the next fsk_demod() cycle + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * returns - number of samples to be fed into fsk_demod next cycle + */ +uint32_t fsk_nin(struct FSK *fsk); + + +/* + * Demodulate some number of FSK samples. The number of samples to be + * demodulated can be found by calling fsk_nin(). + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * uint8_t rx_bits[] - Buffer for fsk->Nbits unpacked bits to be written + * float fsk_in[] - nin samples of modulated FSK + */ +void fsk_demod(struct FSK *fsk, uint8_t rx_bits[], COMP fsk_in[]); + +/* + * Soft decision demodulation + * + * struct FSK *fsk - FSK config/state struct, set up by fsk_create + * float rx_flit[] - M x Nsym array of filtermagnitude outputs + * float fsk_in[] - nin samples of modualted FSK + */ +void fsk_demod_sd(struct FSK *fsk, float rx_filt[], COMP fsk_in[]); + +/* enables/disables normalisation of eye diagram samples */ + +void fsk_stats_normalise_eye(struct FSK *fsk, int normalise_enable); + +/* Set the FSK modem into burst demod mode */ + +void fsk_enable_burst_mode(struct FSK *fsk); + +/* Set freq est algorithm 0: peak 1:mask */ +void fsk_set_freq_est_alg(struct FSK *fsk, int est_type); + +#endif diff --git a/src/fsk_demod.c b/src/fsk_demod.c new file mode 100644 index 0000000..44ca1db --- /dev/null +++ b/src/fsk_demod.c @@ -0,0 +1,448 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk_demod.c + AUTHOR......: Brady O'Brien and David Rowe + DATE CREATED: 8 January 2016 + + Command line FSK demodulator. Reads in FSK samples, writes demodulated + output bits. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#define TEST_FRAME_SIZE 100 /* must match fsk_get_test_bits.c */ + +#include +#include +#include +#include +#include +#include +#include + +#include "fsk.h" +#include "codec2_fdmdv.h" +#include "mpdecode_core.h" +#include "modem_stats.h" + +/* cleanly exit when we get a SIGTERM */ + +void sig_handler(int signo) +{ + if (signo == SIGTERM) { + exit(0); + } +} + +int main(int argc,char *argv[]){ + struct FSK *fsk; + struct MODEM_STATS stats; + int Fs,Rs,M,P,stats_ctr,stats_loop; + float loop_time; + int enable_stats = 0; + FILE *fin,*fout; + uint8_t *bitbuf = NULL; + int16_t *rawbuf; + COMP *modbuf; + float *rx_filt = NULL; + float *llrs = NULL; + int i,j,Ndft; + int soft_dec_mode = 0; + stats_loop = 0; + int complex_input = 1, bytes_per_sample = 2; + int stats_rate = 8; + int testframe_mode = 0; + P = 8; /* default */ + M = 0; + int fsk_lower = 0; + int fsk_upper = 0; + int user_fsk_lower = 0; + int user_fsk_upper = 0; + int nsym = FSK_DEFAULT_NSYM; + int mask = 0; + int tone_separation = 100; + + int o = 0; + int opt_idx = 0; + while( o != -1 ){ + static struct option long_opts[] = { + {"help", no_argument, 0, 'h'}, + {"conv", required_argument, 0, 'p'}, + {"cs16", no_argument, 0, 'c'}, + {"cu8", no_argument, 0, 'd'}, + {"fsk_lower", required_argument, 0, 'b'}, + {"fsk_upper", required_argument, 0, 'u'}, + {"stats", optional_argument, 0, 't'}, + {"soft-dec", no_argument, 0, 's'}, + {"testframes",no_argument, 0, 'f'}, + {"nsym", required_argument, 0, 'n'}, + {"mask", required_argument, 0, 'm'}, + {0, 0, 0, 0} + }; + + o = getopt_long(argc,argv,"fhlp:cdt::sb:u:m",long_opts,&opt_idx); + + switch(o){ + case 'c': + complex_input = 2; + bytes_per_sample = 2; + break; + case 'd': + complex_input = 2; + bytes_per_sample = 1; + break; + case 'f': + testframe_mode = 1; + break; + case 't': + enable_stats = 1; + if(optarg != NULL){ + stats_rate = atoi(optarg); + if(stats_rate == 0){ + stats_rate = 8; + } + } + break; + case 's': + soft_dec_mode = 1; + break; + case 'p': + P = atoi(optarg); + break; + case 'b': + if (optarg != NULL) { + fsk_lower = atoi(optarg); + user_fsk_lower = 1; + } + break; + case 'u': + if (optarg != NULL){ + fsk_upper = atoi(optarg); + user_fsk_upper = 1; + } + break; + case 'n': + if (optarg != NULL) { + nsym = atoi(optarg); + } + break; + case 'm': + mask = 1; + tone_separation = atoi(optarg); + break; + case 'h': + case '?': + goto helpmsg; + break; + } + } + int dx = optind; + + if( (argc - dx) < 5) { + fprintf(stderr, "Too few arguments\n"); + goto helpmsg; + } + + if( (argc - dx) > 5) { + fprintf(stderr, "Too many arguments\n"); + helpmsg: + fprintf(stderr,"usage: %s [options] (2|4) SampleRate SymbolRate InputModemRawFile OutputFile\n",argv[0]); + fprintf(stderr," -c --cs16 The raw input file will be in complex signed 16 bit format.\n"); + fprintf(stderr," -d --cu8 The raw input file will be in complex unsigned 8 bit format.\n"); + fprintf(stderr," If neither -c nor -d are used, the input should be in signed 16 bit format.\n"); + fprintf(stderr," -f --testframes Testframe mode, prints stats to stderr when a testframe is detected, if -t (JSON) \n"); + fprintf(stderr," is enabled stats will be in JSON format\n"); + fprintf(stderr," -t[r] --stats=[r] Print out modem statistics to stderr in JSON.\n"); + fprintf(stderr," r, if provided, sets the number of modem frames between statistic printouts.\n"); + fprintf(stderr," -s --soft-dec The output file will be in a soft-decision format, with one 32-bit float per bit.\n"); + fprintf(stderr," If -s is not used, the output will be in a 1 byte-per-bit format.\n"); + fprintf(stderr," -p P Number of timing offsets we have to choose from, default %d.\n", FSK_DEFAULT_P); + fprintf(stderr," Fs/Rs/P must be an integer. Smaller values result in faster operation, but\n"); + fprintf(stderr," coarse sampling. Try to keep >= 8\n"); + fprintf(stderr," processing but lower demodulation performance. Default %d\n", FSK_DEFAULT_P); + fprintf(stderr," --fsk_lower freq lower limit of freq estimator (default 0 for real input, -Fs/2 for complex input)\n"); + fprintf(stderr," --fsk_upper freq upper limit of freq estimator (default Fs/2)\n"); + fprintf(stderr," --nsym Nsym number of symbols used for estimators. Default %d\n", FSK_DEFAULT_NSYM); + fprintf(stderr," --mask TxFreqSpace Use \"mask\" freq estimator (default is \"peak\" estimator)\n"); + exit(1); + } + + /* Extract parameters */ + M = atoi(argv[dx]); + Fs = atoi(argv[dx + 1]); + Rs = atoi(argv[dx + 2]); + + if( (M!=2) && (M!=4) ){ + fprintf(stderr,"Mode %d is not valid. Mode must be 2 or 4.\n",M); + goto helpmsg; + } + + /* Open files */ + if(strcmp(argv[dx + 3],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[dx + 3],"r"); + } + + if(strcmp(argv[dx + 4],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[dx + 4],"w"); + } + + /* set up FSK */ + fsk = fsk_create_hbr(Fs,Rs,M,P,nsym,FSK_NONE,tone_separation); + + /* set freq estimator limits */ + if (!user_fsk_lower) { + if (complex_input == 1) + fsk_lower = 0; + else + fsk_lower = -Fs/2; + } + if (!user_fsk_upper) { + fsk_upper = Fs/2; + } + fprintf(stderr,"Setting estimator limits to %d to %d Hz.\n", fsk_lower, fsk_upper); + fsk_set_freq_est_limits(fsk,fsk_lower,fsk_upper); + + fsk_set_freq_est_alg(fsk, mask); + + if(fin==NULL || fout==NULL || fsk==NULL){ + fprintf(stderr,"Couldn't open files\n"); + exit(1); + } + + /* set up testframe mode */ + + int testframecnt, bitcnt, biterr, testframe_detected; + uint8_t *bitbuf_tx = NULL, *bitbuf_rx = NULL; + if (testframe_mode) { + bitbuf_tx = (uint8_t*)malloc(sizeof(uint8_t)*TEST_FRAME_SIZE); assert(bitbuf_tx != NULL); + bitbuf_rx = (uint8_t*)malloc(sizeof(uint8_t)*TEST_FRAME_SIZE); assert(bitbuf_rx != NULL); + + /* Generate known tx frame from known seed */ + + srand(158324); + for(i=0; imode*fsk->Nsym); assert(rx_filt != NULL); + llrs = (float*)malloc(sizeof(float)*fsk->Nbits); assert(llrs != NULL); + } else { + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsk->Nbits); assert(bitbuf != NULL); + } + rawbuf = (int16_t*)malloc(bytes_per_sample*(fsk->N+fsk->Ts*2)*complex_input); + modbuf = (COMP*)malloc(sizeof(COMP)*(fsk->N+fsk->Ts*2)); + + /* set up signal handler so we can terminate gracefully */ + + if (signal(SIGTERM, sig_handler) == SIG_ERR) { + printf("\ncan't catch SIGTERM\n"); + } + + /* Demodulate! */ + + while( fread(rawbuf,bytes_per_sample*complex_input,fsk_nin(fsk),fin) == fsk_nin(fsk) ){ + /* convert input to a buffer of floats. Note scaling isn't really necessary for FSK */ + + if (complex_input == 1) { + /* S16 real input */ + for(i=0;imode); + assert(fsk->Nbits == bps*fsk->Nsym); + /* output bit LLRs */ + fsk_demod_sd(fsk, rx_filt, modbuf); + fsk_rx_filt_to_llrs(llrs, rx_filt, fsk->v_est, fsk->SNRest, fsk->mode, fsk->Nsym); + } else { + fsk_demod(fsk,bitbuf,modbuf); + } + + testframe_detected = 0; + if (testframe_mode) { + assert(soft_dec_mode == 0); + + /* attempt to find a testframe and update stats */ + /* update silding window of input bits */ + + int errs; + for(j=0; jNbits; j++) { + for(i=0; ippm); + float *f_est; + if (fsk->freq_est_type) + f_est = fsk->f2_est; + else + f_est = fsk->f_est; + fprintf(stderr," \"f1_est\":%.1f, \"f2_est\":%.1f",f_est[0],f_est[1]); + + /* Print 4FSK stats if in 4FSK mode */ + + if(fsk->mode == 4){ + fprintf(stderr,", \"f3_est\":%.1f, \"f4_est\":%.1f",f_est[2],f_est[3]); + } + + if (testframe_mode == 0) { + /* Print the eye diagram */ + + fprintf(stderr,",\t\"eye_diagram\":["); + for(i=0;iNdft/2; + for(i=0; iSf)[i]); + if(iNbits,fout); + } else{ + fwrite(bitbuf,sizeof(uint8_t),fsk->Nbits,fout); + } + + if(fout == stdin){ + fflush(fout); + } + } /* while(fread ...... */ + + if (testframe_mode) { + free(bitbuf_tx); + free(bitbuf_rx); + } + + if (soft_dec_mode) { + free(rx_filt); + free(llrs); + } else{ + free(bitbuf); + } + + free(rawbuf); + free(modbuf); + + fclose(fin); + fclose(fout); + fsk_destroy(fsk); + + return 0; +} + diff --git a/src/fsk_get_test_bits.c b/src/fsk_get_test_bits.c new file mode 100644 index 0000000..937ccf0 --- /dev/null +++ b/src/fsk_get_test_bits.c @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk_get_test_bits.c + AUTHOR......: Brady O'Brien + DATE CREATED: January 2016 + + Generates a pseudorandom sequence of bits for testing of fsk_mod and fsk_demod + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + + +#include +#include +#include +#include "fsk.h" + +#define TEST_FRAME_SIZE 100 /* arbitrary choice, repeats after this + many bits, sets frame size for rx + processing */ + +int main(int argc,char *argv[]){ + int bitcnt, framecnt; + int framesize = TEST_FRAME_SIZE; + int i; + FILE *fout; + uint8_t *bitbuf; + + if(argc < 3){ + fprintf(stderr,"usage: %s OutputBitsOnePerByte numBits [framesize]\n",argv[0]); + exit(1); + } + + if (argc == 4){ + framesize = atoi(argv[3]); + fprintf(stderr, "Using custom frame size of %d bits\n", framesize); + } + + /* Extract parameters */ + bitcnt = atoi(argv[2]); + framecnt = bitcnt/framesize; + if (framecnt == 0) { + fprintf(stderr,"Need a minimum of %d bits\n", framesize); + exit(1); + } + + if(strcmp(argv[1],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[1],"w"); + } + + if(fout==NULL){ + fprintf(stderr,"Couldn't open output file: %s\n", argv[1]); + exit(1); + } + + /* allocate buffers for processing */ + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*framesize); + + /* Generate buffer of test frame bits from known seed */ + srand(158324); + for(i=0; i. +*/ + +#include +#include +#include +#include "fsk.h" +#include "codec2_fdmdv.h" + +int main(int argc,char *argv[]){ + struct FSK *fsk; + int Fs,Rs,f1,fs,M; + int i; + int p, user_p = 0; + FILE *fin,*fout; + int complex = 0; + int bytes_per_sample = 2; + float amp = FDMDV_SCALE; + int test_mode = 0; + + char usage[] = "usage: %s [-p P] [-c] [-a Amplitude] [-t] Mode SampleFreq SymbolFreq TxFreq1 TxFreqSpace InputOneBitPerCharFile OutputModRawFile\n" + " -c complex signed 16 bit output format\n" + " -a Amplitude Amplitude of signal\n" + " -t test mode unmodulated carrier, useful for setting levels\n"; + + int opt; + while ((opt = getopt(argc, argv, "a:p:ct")) != -1) { + switch (opt) { + case 'a': + amp = atof(optarg)/2.0; /* fsk_mod amplitude is +/-2 */ + break; + case 'c': + complex = 1; bytes_per_sample = 4; + break; + case 't': + test_mode = 1; + break; + case 'p': + p = atoi(optarg); + user_p = 1; + break; + default: + fprintf(stderr, usage, argv[0]); + exit(1); + } + } + + if (argc<8){ + fprintf(stderr, usage, argv[0]); + exit(1); + } + + /* Extract parameters */ + M = atoi(argv[optind++]); + Fs = atoi(argv[optind++]); + Rs = atoi(argv[optind++]); + f1 = atoi(argv[optind++]); + fs = atoi(argv[optind++]); + + if(strcmp(argv[optind],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[optind],"r"); + } + optind++; + + if(strcmp(argv[optind],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[optind],"w"); + } + + /* p is not actually used for the modulator, but we need to set it for fsk_create() to be happy */ + if (!user_p) + p = Fs/Rs; + + /* set up FSK */ + fsk = fsk_create_hbr(Fs,Rs,M,p,FSK_DEFAULT_NSYM,f1,fs); + + if(fin==NULL || fout==NULL || fsk==NULL){ + fprintf(stderr,"Couldn't open files\n"); + exit(1); + } + + /* Mote we use the same buffer sizes as demod (fsk->Nbits, fsk->N) + for convenience, but other sizes are possible for the + FSK modulator. */ + uint8_t bitbuf[fsk->Nbits]; + + while( fread(bitbuf,sizeof(uint8_t),fsk->Nbits,fin) == fsk->Nbits ){ + if (test_mode) memset(bitbuf,0,fsk->Nbits); + if (complex == 0) { + float modbuf[fsk->N]; + int16_t rawbuf[fsk->N]; + /* 16 bit signed short real output */ + fsk_mod(fsk,modbuf,bitbuf,fsk->Nbits); + for(i=0; iN; i++) + rawbuf[i] = (int16_t)(modbuf[i]*amp); + fwrite(rawbuf,bytes_per_sample,fsk->N,fout); + } else { + /* 16 bit signed char complex output */ + COMP modbuf[fsk->N]; + int16_t rawbuf[2*fsk->N]; + fsk_mod_c(fsk,(COMP*)modbuf,bitbuf,fsk->Nbits); + for(i=0; iN; i++) { + rawbuf[2*i] = (int16_t)(modbuf[i].real*amp); + rawbuf[2*i+1] = (int16_t)(modbuf[i].imag*amp); + } + fwrite(rawbuf,bytes_per_sample,fsk->N,fout); + } + + if(fout == stdin){ + fflush(fout); + } + } + + fsk_destroy(fsk); +} diff --git a/src/fsk_mod_ext_vco.c b/src/fsk_mod_ext_vco.c new file mode 100644 index 0000000..b4cfd6a --- /dev/null +++ b/src/fsk_mod_ext_vco.c @@ -0,0 +1,143 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: fsk_mod_ext_vco.c + AUTHOR......: David Rowe + DATE CREATED: Feb 2018 + + Converts a stream of bits to mFSK raw file of "levels" suitable for + driving an external VCO, e.g. legacy FM transmitter in data mode. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#define OVERSAMPLE 100 + +int main(int argc,char *argv[]){ + int os, m, log2m, i, bit_i, sym, legacy_mode, rpitx_mode; + float d; + double shiftHz, symbolRateHz; + uint32_t time_sample; + FILE *fin,*fout; + + if(argc<5){ + fprintf(stderr, "usage: %s InputOneBitPerCharFile OutputVcoRawFile MbitsPerFSKsymbol\n",argv[0]); + fprintf(stderr, "[--legacy OutputSamplesPerSymbol deviationPerlevel]\n"); + fprintf(stderr, "[--rpitx ShiftHz SymbolRateHz\n]"); + exit(1); + } + + /* Extract parameters */ + + if (strcmp(argv[1],"-")==0){ + fin = stdin; + } else { + fin = fopen(argv[1],"r"); + } + + if (strcmp(argv[2],"-")==0){ + fout = stdout; + } else { + fout = fopen(argv[2],"w"); + } + + m = atoi(argv[3]); log2m = log2(m); + printf("log2m: %d\n", log2m); + + legacy_mode = rpitx_mode = os = 0; + if (!strcmp(argv[4],"--legacy")) { + os = atoi(argv[5]); + d = atof(argv[6]); + legacy_mode = 1; + } + if (!strcmp(argv[4],"--rpitx")) { + shiftHz = atof(argv[5]); + symbolRateHz = atof(argv[6]); + rpitx_mode = 1; + time_sample = 1E9/symbolRateHz; + fprintf(stderr, "time_sample: %d\n", time_sample); + } + + assert(legacy_mode || rpitx_mode); + fprintf(stderr, "legacy_mode: %d rpitx_mode: %d\n", legacy_mode, rpitx_mode); + + uint8_t tx_bits[log2m]; + int16_t rawbuf[os]; + + /* Modulate m bits to levels to drive external VCO */ + + while( fread(tx_bits, sizeof(uint8_t), log2m, fin) == log2m ){ + + /* generate the symbol number from the bit stream, + e.g. 0,1 for 2FSK, 0,1,2,3 for 4FSK */ + + sym = bit_i = 0; + for( i=m; i>>=1; ){ + //fprintf(stderr, "tx_bits[%d] = %d\n", i, tx_bits[bit_i]); + uint8_t bit = tx_bits[bit_i]; + bit = (bit==1)?1:0; + sym = (sym<<1)|bit; + bit_i++; + } + //fprintf(stderr, "sym = %d\n", sym); + + if (legacy_mode) { + /* map 'sym' to VCO drive signal symmetrically about 0, + separate tones by constant "d" */ + /* 2 FSK -d/2, +d/2 */ + /* 4 FSK -3*d/2, -d/2, +d/2, 3*d/2 */ + + /* note: drive is inverted, a higher tone drives VCO voltage lower */ + + float symf = sym; + float level = d*(((float)m-1)*0.5 - symf); + assert(level <= 32767.0); + assert(level >= -32768.0); + short level_short = (short)level; + //fprintf(stderr, "level = %f level_short = %d\n\n", level, level_short); + for(i=0; i. +*/ + +#include +#include +#include +#include +#include "fsk.h" + +#define TEST_FRAME_SIZE 100 /* must match fsk_get_test_bits.c */ + +#define VALID_PACKET_BER_THRESH 0.1 + +int main(int argc,char *argv[]){ + int bitcnt,biterr,i,errs,packetcnt; + int framesize = TEST_FRAME_SIZE; + float valid_packet_ber_thresh = VALID_PACKET_BER_THRESH; + int packet_pass_thresh = 0; + float ber_pass_thresh = 0; + FILE *fin; + uint8_t *bitbuf_tx, *bitbuf_rx, abyte, abit; + int verbose = 1; + int packed_in = 0; + + char usage[] = "usage: %s [-f frameSizeBits] [-t VaildFrameBERThreshold] [-b BERPass] [-p numPacketsPass] [-k] InputOneBitPerByte\n" + " [-k] packet byte input\n"; + + int opt; + while ((opt = getopt(argc, argv, "f:b:p:hqt:k")) != -1) { + switch (opt) { + case 't': + valid_packet_ber_thresh = atof(optarg); + break; + case 'b': + ber_pass_thresh = atof(optarg); + break; + case 'p': + packet_pass_thresh = atoi(optarg); + break; + case 'f': + framesize = atoi(optarg); + break; + case 'q': + verbose = 0; + break; + case 'k': + packed_in = 1; + break; + case 'h': + default: + fprintf(stderr, usage, argv[0]); + exit(1); + } + } + if (argc == 1) { + fprintf(stderr, usage, argv[0]); + exit(1); + } + + int bits_per_byte = 1; + if (packed_in) { + if (framesize % 8) { + fprintf(stderr, "framesize (-f) must be a multiple of 8 for packed byte input (-k)\n"); + exit(1); + } + bits_per_byte = 8; + } + + char *fname = argv[optind++]; + if ((strcmp(fname,"-")==0) || (argc<2)){ + fin = stdin; + } else { + fin = fopen(fname,"r"); + } + + if(fin==NULL){ + fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); + exit(1); + } + + /* allocate buffers for processing */ + bitbuf_tx = (uint8_t*)malloc(sizeof(uint8_t)*framesize); + bitbuf_rx = (uint8_t*)malloc(sizeof(uint8_t)*framesize); + + /* Generate known tx frame from known seed */ + srand(158324); + for(i=0; i0){ + + for (int b=0; b> ((bits_per_byte-1)-b)) & 0x1; + + /* update sliding window of input bits */ + + for(i=0; i= packet_pass_thresh) && (ber <= ber_pass_thresh)) { + fprintf(stderr,"PASS\n"); + return 0; + } + else { + fprintf(stderr,"FAIL\n"); + return 1; + } +} diff --git a/src/generate_codebook.c b/src/generate_codebook.c new file mode 100644 index 0000000..efecd48 --- /dev/null +++ b/src/generate_codebook.c @@ -0,0 +1,187 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: generate_codebook.c + AUTHOR......: Bruce Perens + DATE CREATED: 29 Sep 2010 + + Generate header files containing quantisers, runs at compile time. + +\*---------------------------------------------------------------------------*/ + +/* + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +static const char usage[] = +"Usage: %s filename array_name [filename ...]\n" +"\tCreate C code for codebook tables.\n"; + +static const char format[] = +"The table format must be:\n" +"\tTwo integers describing the dimensions of the codebook.\n" +"\tThen, enough numbers to fill the specified dimensions.\n"; + +static const char header[] = +"/* THIS IS A GENERATED FILE. Edit generate_codebook.c and its input */\n\n" +"/*\n" +" * This intermediary file and the files that used to create it are under \n" +" * The LGPL. See the file COPYING.\n" +" */\n\n" +"#include \"defines.h\"\n\n"; + +struct codebook { + unsigned int k; + unsigned int log2m; + unsigned int m; + float * cb; +}; + +static void +dump_array(const struct codebook * b, int index) +{ + int limit = b->k * b->m; + int i; + + printf("#ifdef __EMBEDDED__\n"); + printf("static const float codes%d[] = {\n", index); + printf("#else\n"); + printf("static float codes%d[] = {\n", index); + printf("#endif\n"); + for ( i = 0; i < limit; i++ ) { + printf(" %g", b->cb[i]); + if ( i < limit - 1 ) + printf(","); + + /* organise VQs by rows, looks prettier */ + if ( ((i+1) % b->k) == 0 ) + printf("\n"); + } + printf("};\n"); +} + +static void +dump_structure(const struct codebook * b, int index) +{ + printf(" {\n"); + printf(" %d,\n", b->k); + printf(" %d,\n", (int)roundf(log(b->m) / log(2))); + printf(" %d,\n", b->m); + printf(" codes%d\n", index); + printf(" }"); +} + +float +get_float(FILE * in, const char * name, char * * cursor, char * buffer, + int size) +{ + for ( ; ; ) { + char * s = *cursor; + char c; + + while ( (c = *s) != '\0' && !isdigit(c) && c != '-' && c != '.' ) + s++; + + /* Comments start with "#" and continue to the end of the line. */ + if ( c != '\0' && c != '#' ) { + char * end = 0; + float f = 0; + + f = strtod(s, &end); + + if ( end != s ) + *cursor = end; + return f; + } + + if ( fgets(buffer, size, in) == NULL ) { + fprintf(stderr, "%s: Format error. %s\n", name, format); + exit(1); + } + *cursor = buffer; + } +} + +static struct codebook * +load(FILE * file, const char * name) +{ + char line[1024]; + char * cursor = line; + struct codebook * b = malloc(sizeof(struct codebook)); + int i; + int size; + + *cursor = '\0'; + + b->k = (int)get_float(file, name, &cursor, line, sizeof(line)); + b->m = (int)get_float(file, name ,&cursor, line, sizeof(line)); + size = b->k * b->m; + + b->cb = (float *)malloc(size * sizeof(float)); + + for ( i = 0; i < size; i++ ) + b->cb[i] = get_float(file, name, &cursor, line, sizeof(line)); + + return b; +} + +int +main(int argc, char * * argv) +{ + struct codebook * * cb = malloc(argc * sizeof(struct codebook *)); + int i; + + if ( argc < 2 ) { + fprintf(stderr, usage, argv[0]); + fprintf(stderr, format); + exit(1); + } + + for ( i = 0; i < argc - 2; i++ ) { + FILE * in = fopen(argv[i + 2], "r"); + + if ( in == NULL ) { + perror(argv[i + 2]); + exit(1); + } + + cb[i] = load(in, argv[i + 2]); + + fclose(in); + } + + printf(header); + for ( i = 0; i < argc - 2; i++ ) { + printf(" /* %s */\n", argv[i + 2]); + dump_array(cb[i], i); + } + printf("\nconst struct lsp_codebook %s[] = {\n", argv[1]); + for ( i = 0; i < argc - 2; i++ ) { + printf(" /* %s */\n", argv[i + 2]); + dump_structure(cb[i], i); + printf(",\n"); + } + printf(" { 0, 0, 0, 0 }\n"); + printf("};\n"); + for( i = 0; i < argc - 2; i++ ){ + free(cb[i]->cb); + free(cb[i]); + } + free(cb); + return 0; +} diff --git a/src/golay23.c b/src/golay23.c new file mode 100644 index 0000000..158a099 --- /dev/null +++ b/src/golay23.c @@ -0,0 +1,311 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: golay23.c + AUTHOR......: Tomas Härdin & David Rowe + DATE CREATED: 3 March 2013 + + To test: + + src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST && ./golay23 + src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST -DRUN_TIME_TABLES && ./golay23 + src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST -DNO_TABLES && ./golay23 + + To generate tables: + src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_MAKETABLES && ./golay23 + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 Tomas Härdin & David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not,see . +*/ + +#include + +#ifdef GOLAY23_MAKETABLES +#define RUN_TIME_TABLES +#endif + +#ifndef NO_TABLES +#ifdef RUN_TIME_TABLES +int static encoding_table[4096]; +int static decoding_table[2048]; +static int inited = 0; +#else +//default is to use precomputed tables +#include "golayenctable.h" +#include "golaydectable.h" +#endif +#endif + +//since we want to avoid bit-reversing inside syndrome() we bit-reverse the polynomial instead +#define GOLAY_POLYNOMIAL 0xC75 //AE3 reversed + +int golay23_syndrome(int c) { + //could probably be done slightly smarter, but works + int x; + for (x = 11; x >= 0; x--) { + if (c & ((1<<11) << x)) { + c ^= GOLAY_POLYNOMIAL << x; + } + } + return c; +} + +#ifdef __GNUC__ +#define popcount __builtin_popcount +#elif defined(__MSC_VER) +#include +#define popcount __popcnt +#else +static int popcount(unsigned int c) { + int ret = 0; + while (c) { + if (c & 1) { + ret++; + } + c >>= 1; + } + return ret; +} +#endif + +#if defined(NO_TABLES) || defined(RUN_TIME_TABLES) +static int golay23_encode_no_tables(int c) { + c <<= 11; + return golay23_syndrome(c) | c; +} +#endif + +#ifdef NO_TABLES +static int unrotate(unsigned int c, int x) { + return ((c << x) & 0x7FFFFF) | (c >> (23 - x)); +} + +static int golay23_decode_no_tables(int c) { + //TODO: optimize? + int x; + c = unrotate(c, 12); + + for (x = 0; x < 23; x++) { + int t; + int s = golay23_syndrome(c); + + if (popcount(s) <= 3) { + return unrotate(c ^ s, x) & 0xFFF; + } + + for (t = 0; t < 23; t++) { + int c2 = c ^ (1 << t); + int s = golay23_syndrome(c2); + + if (popcount(s) <= 2) { + return unrotate(c2 ^ s, x) & 0xFFF; + } + } + + //rotate + c = (c >> 1) | ((c & 1) << 22); + } + + //shouldn't reach here.. + assert("Something is wrong with golay23_decode_no_tables().."); + return c & 0xFFF; +} +#endif + +void golay23_init(void) { +#ifdef RUN_TIME_TABLES + int x, y, z; + inited = 1; + for (x = 0; x < 4096; x++) { + encoding_table[x] = golay23_encode_no_tables(x); + } + + decoding_table[0] = 0; + //1-bit errors + for (x = 0; x < 23; x++) { + int d = 1<= 0 && c <= 0xFFF); +#ifdef RUN_TIME_TABLES + assert(inited); +#endif + +#ifdef NO_TABLES + return golay23_encode_no_tables(c); +#else + return encoding_table[c]; +#endif +} + +int golay23_decode(int c) { + assert(c >= 0 && c <= 0x7FFFFF); +#ifdef RUN_TIME_TABLES + assert(inited); +#endif + +#ifdef NO_TABLES + //duplicate old golay23_decode()'s shift + return unrotate(golay23_decode_no_tables(c), 11); +#else + //message is shifted 11 places left in the return value + return c ^ decoding_table[golay23_syndrome(c)]; +#endif +} + +int golay23_count_errors(int recd_codeword, int corrected_codeword) { + return popcount(recd_codeword ^ corrected_codeword); +} + +/** + * Table generation and testing code below + */ + +#ifdef GOLAY23_MAKETABLES +#include + +int main() { + int x; + //generate and dump + golay23_init(); + + FILE *enc = fopen("golayenctable.h", "w"); + FILE *dec = fopen("golaydectable.h", "w"); + + fprintf(enc, "/* Generated by golay23.c -DGOLAY23_MAKETABLE */\n\ +\n\ +const int static encoding_table[]={\n"); + for (x = 0; x < 4096; x++) { + fprintf(enc, x < 4095 ? " 0x%x,\n" : " 0x%x\n", encoding_table[x]); + } + fprintf(enc, "};\n"); + + fprintf(dec, "/* Generated by golay23.c -DGOLAY23_MAKETABLE */\n\ +\n\ +const int static decoding_table[]={\n"); + for (x = 0; x < 2048; x++) { + fprintf(dec, x < 2047 ? " 0x%x,\n" : " 0x%x\n", decoding_table[x]); + } + fprintf(dec, "};\n"); + + fclose(enc); + fclose(dec); + + return 0; +} + +#elif defined(GOLAY23_UNITTEST) +#include +#include +#include + +int main() { + int c; + + golay23_init(); + + //keep track of whether every single codeword has been checked + char *checkmask = malloc(1<<23); + memset(checkmask, 0, 1<<23); + + //step through all possible messages + for (c = 0; c < (1<<12); c++) { + int g23 = golay23_encode(c); + int x,y,z; + checkmask[g23] = 1; + int c2 = golay23_decode(g23) >> 11; + + printf("%03x -> %06x %03x\n", c, g23, c2); + + if (c != c2) { + printf("Bad!\n"); + exit(1); + } + + //test the code by flipping every combination of one, two and three bits + for (x = 0; x < 23; x++) { + int flipped = g23 ^ (1<> 11; + if (c != c2) { + printf("Bad!\n"); + + exit(1); + } + } + + for (x = 0; x < 22; x++) { + for (y = x+1; y < 23; y++) { + int flipped = g23 ^ (1<> 11; + if (c != c2) { + printf("Bad!\n"); + + exit(1); + } + } + } + + for (x = 0; x < 21; x++) { + for (y = x+1; y < 22; y++) { + for (z = y+1; z < 23; z++) { + int flipped = g23 ^ (1<> 11; + if (c != c2) { + printf("Bad!\n"); + exit(1); + } + } + } + } + } + + //did we check every codeword? + for (c = 0; c < (1<<23); c++) { + if (checkmask[c] != 1) { + printf("%06x unchecked!\n", c); + exit(1); + } + } + + printf("Everything checks out\n"); + free(checkmask); + return 0; +} +#endif diff --git a/src/golay23.h b/src/golay23.h new file mode 100644 index 0000000..25502c6 --- /dev/null +++ b/src/golay23.h @@ -0,0 +1,45 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: golay23.h + AUTHOR......: David Rowe + DATE CREATED: 3 March 2013 + + Header file for Golay FEC. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2013 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __GOLAY23__ +#define __GOLAY23__ + +#ifdef __cplusplus +extern "C" { +#endif + +void golay23_init(void); +int golay23_encode(int data); +int golay23_decode(int received_codeword); +int golay23_count_errors(int recd_codeword, int corrected_codeword); +int golay23_syndrome(int c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/golaydectable.h b/src/golaydectable.h new file mode 100644 index 0000000..b7dc4ff --- /dev/null +++ b/src/golaydectable.h @@ -0,0 +1,2052 @@ +/* Generated by golay23.c -DGOLAY23_MAKETABLE */ + +static const int decoding_table[]={ + 0x0, + 0x1, + 0x2, + 0x3, + 0x4, + 0x5, + 0x6, + 0x7, + 0x8, + 0x9, + 0xa, + 0xb, + 0xc, + 0xd, + 0xe, + 0x24020, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x412000, + 0x18, + 0x19, + 0x1a, + 0x180800, + 0x1c, + 0x200300, + 0x48040, + 0x1480, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x24008, + 0x28, + 0x29, + 0x2a, + 0x24004, + 0x2c, + 0x24002, + 0x24001, + 0x24000, + 0x30, + 0x31, + 0x32, + 0x8180, + 0x34, + 0xc40, + 0x301000, + 0xc0200, + 0x38, + 0x43000, + 0x400600, + 0x210040, + 0x90080, + 0x508000, + 0x2900, + 0x24010, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x280080, + 0x48, + 0x49, + 0x4a, + 0x2500, + 0x4c, + 0x111000, + 0x48010, + 0x400a00, + 0x50, + 0x51, + 0x52, + 0x21200, + 0x54, + 0xc20, + 0x48008, + 0x104100, + 0x58, + 0x404080, + 0x48004, + 0x210020, + 0x48002, + 0xa2000, + 0x48000, + 0x48001, + 0x60, + 0x61, + 0x62, + 0x540000, + 0x64, + 0xc10, + 0x10300, + 0xb000, + 0x68, + 0x88200, + 0x1880, + 0x210010, + 0x602000, + 0x40180, + 0x180400, + 0x24040, + 0x70, + 0xc04, + 0x86000, + 0x210008, + 0xc01, + 0xc00, + 0x420080, + 0xc02, + 0x120100, + 0x210002, + 0x210001, + 0x210000, + 0x5200, + 0xc08, + 0x48020, + 0x210004, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x280040, + 0x88, + 0x89, + 0x8a, + 0x50200, + 0x8c, + 0xa800, + 0x500100, + 0x1410, + 0x90, + 0x91, + 0x92, + 0x8120, + 0x94, + 0x160000, + 0x4a00, + 0x1408, + 0x98, + 0x404040, + 0x222000, + 0x1404, + 0x90020, + 0x1402, + 0x1401, + 0x1400, + 0xa0, + 0xa1, + 0xa2, + 0x8110, + 0xa4, + 0x401200, + 0x42400, + 0x110800, + 0xa8, + 0x300400, + 0x1840, + 0x482000, + 0x90010, + 0x40140, + 0x208200, + 0x24080, + 0xb0, + 0x8102, + 0x8101, + 0x8100, + 0x90008, + 0x206000, + 0x420040, + 0x8104, + 0x90004, + 0x20a00, + 0x144000, + 0x8108, + 0x90000, + 0x90001, + 0x90002, + 0x1420, + 0xc0, + 0xc1, + 0xc2, + 0x280004, + 0xc4, + 0x280002, + 0x280001, + 0x280000, + 0xc8, + 0x404010, + 0x1820, + 0x128000, + 0x20600, + 0x40120, + 0x16000, + 0x280008, + 0xd0, + 0x404008, + 0x110400, + 0x42800, + 0x3100, + 0x18200, + 0x420020, + 0x280010, + 0x404001, + 0x404000, + 0x80300, + 0x404002, + 0x300800, + 0x404004, + 0x48080, + 0x1440, + 0xe0, + 0x32000, + 0x1808, + 0x4600, + 0x10c000, + 0x40108, + 0x420010, + 0x280020, + 0x1802, + 0x40104, + 0x1800, + 0x1801, + 0x40101, + 0x40100, + 0x1804, + 0x40102, + 0x240200, + 0x181000, + 0x420004, + 0x8140, + 0x420002, + 0xc80, + 0x420000, + 0x420001, + 0xa400, + 0x404020, + 0x1810, + 0x210080, + 0x90040, + 0x40110, + 0x420008, + 0x102200, + 0x100, + 0x101, + 0x102, + 0x103, + 0x104, + 0x105, + 0x106, + 0x41800, + 0x108, + 0x109, + 0x10a, + 0x2440, + 0x10c, + 0x200210, + 0x500080, + 0x98000, + 0x110, + 0x111, + 0x112, + 0x80a0, + 0x114, + 0x200208, + 0xa0400, + 0x104040, + 0x118, + 0x200204, + 0x15000, + 0x460000, + 0x200201, + 0x200200, + 0x2820, + 0x200202, + 0x120, + 0x121, + 0x122, + 0x8090, + 0x124, + 0x182000, + 0x10240, + 0x600400, + 0x128, + 0x410800, + 0x2c0000, + 0x101200, + 0x9400, + 0x400c0, + 0x2810, + 0x24100, + 0x130, + 0x8082, + 0x8081, + 0x8080, + 0x444000, + 0x31000, + 0x2808, + 0x8084, + 0x120040, + 0x84400, + 0x2804, + 0x8088, + 0x2802, + 0x200220, + 0x2800, + 0x2801, + 0x140, + 0x141, + 0x142, + 0x2408, + 0x144, + 0x428000, + 0x10220, + 0x104010, + 0x148, + 0x2402, + 0x2401, + 0x2400, + 0x84800, + 0x400a0, + 0x221000, + 0x2404, + 0x150, + 0xd0000, + 0x600800, + 0x104004, + 0x3080, + 0x104002, + 0x104001, + 0x104000, + 0x120020, + 0x9800, + 0x80280, + 0x2410, + 0x410400, + 0x200240, + 0x48100, + 0x104008, + 0x160, + 0x205000, + 0x10204, + 0xa0800, + 0x10202, + 0x40088, + 0x10200, + 0x10201, + 0x120010, + 0x40084, + 0x40c000, + 0x2420, + 0x40081, + 0x40080, + 0x10208, + 0x40082, + 0x120008, + 0x402200, + 0x41400, + 0x80c0, + 0x288000, + 0xd00, + 0x10210, + 0x104020, + 0x120000, + 0x120001, + 0x120002, + 0x210100, + 0x120004, + 0x40090, + 0x2840, + 0x481000, + 0x180, + 0x181, + 0x182, + 0x8030, + 0x184, + 0x14400, + 0x500008, + 0x22200, + 0x188, + 0xa1000, + 0x500004, + 0x204800, + 0x500002, + 0x40060, + 0x500000, + 0x500001, + 0x190, + 0x8022, + 0x8021, + 0x8020, + 0x3040, + 0x480800, + 0x250000, + 0x8024, + 0x40c00, + 0x112000, + 0x80240, + 0x8028, + 0x2c000, + 0x200280, + 0x500010, + 0x1500, + 0x1a0, + 0x8012, + 0x8011, + 0x8010, + 0x220800, + 0x40048, + 0x85000, + 0x8014, + 0x6200, + 0x40044, + 0x30400, + 0x8018, + 0x40041, + 0x40040, + 0x500020, + 0x40042, + 0x8003, + 0x8002, + 0x8001, + 0x8000, + 0x100600, + 0x8006, + 0x8005, + 0x8004, + 0x601000, + 0x800a, + 0x8009, + 0x8008, + 0x90100, + 0x40050, + 0x2880, + 0x800c, + 0x1c0, + 0x100a00, + 0x64000, + 0x411000, + 0x3010, + 0x40028, + 0x8c00, + 0x280100, + 0x218000, + 0x40024, + 0x80210, + 0x2480, + 0x40021, + 0x40020, + 0x500040, + 0x40022, + 0x3004, + 0x220400, + 0x80208, + 0x8060, + 0x3000, + 0x3001, + 0x3002, + 0x104080, + 0x80202, + 0x404100, + 0x80200, + 0x80201, + 0x3008, + 0x40030, + 0x80204, + 0x30800, + 0x480400, + 0x4000c, + 0x302000, + 0x8050, + 0x40009, + 0x40008, + 0x10280, + 0x4000a, + 0x40005, + 0x40004, + 0x1900, + 0x40006, + 0x40001, + 0x40000, + 0x40003, + 0x40002, + 0x14800, + 0x8042, + 0x8041, + 0x8040, + 0x3020, + 0x40018, + 0x420100, + 0x8044, + 0x120080, + 0x40014, + 0x80220, + 0x8048, + 0x40011, + 0x40010, + 0x204400, + 0x40012, + 0x200, + 0x201, + 0x202, + 0x203, + 0x204, + 0x205, + 0x206, + 0x108400, + 0x208, + 0x209, + 0x20a, + 0x50080, + 0x20c, + 0x200110, + 0x83000, + 0x400840, + 0x210, + 0x211, + 0x212, + 0x21040, + 0x214, + 0x200108, + 0x4880, + 0xc0020, + 0x218, + 0x200104, + 0x400420, + 0xe000, + 0x200101, + 0x200100, + 0x130000, + 0x200102, + 0x220, + 0x221, + 0x222, + 0x202800, + 0x224, + 0x401080, + 0x10140, + 0xc0010, + 0x228, + 0x88040, + 0x400410, + 0x101100, + 0x140800, + 0x12400, + 0x208080, + 0x24200, + 0x230, + 0x114000, + 0x400408, + 0xc0004, + 0x2a000, + 0xc0002, + 0xc0001, + 0xc0000, + 0x400402, + 0x20880, + 0x400400, + 0x400401, + 0x5040, + 0x200120, + 0x400404, + 0xc0008, + 0x240, + 0x241, + 0x242, + 0x21010, + 0x244, + 0x46000, + 0x10120, + 0x400808, + 0x248, + 0x88020, + 0x304000, + 0x400804, + 0x20480, + 0x400802, + 0x400801, + 0x400800, + 0x250, + 0x21002, + 0x21001, + 0x21000, + 0x580000, + 0x18080, + 0x202400, + 0x21004, + 0x12800, + 0x140400, + 0x80180, + 0x21008, + 0x5020, + 0x200140, + 0x48200, + 0x400810, + 0x260, + 0x88008, + 0x10104, + 0x4480, + 0x10102, + 0x320000, + 0x10100, + 0x10101, + 0x88001, + 0x88000, + 0x62000, + 0x88002, + 0x5010, + 0x88004, + 0x10108, + 0x400820, + 0x240080, + 0x402100, + 0x108800, + 0x21020, + 0x5008, + 0xe00, + 0x10110, + 0xc0040, + 0x5004, + 0x88010, + 0x400440, + 0x210200, + 0x5000, + 0x5001, + 0x5002, + 0x102080, + 0x280, + 0x281, + 0x282, + 0x50008, + 0x284, + 0x401020, + 0x4810, + 0x22100, + 0x288, + 0x50002, + 0x50001, + 0x50000, + 0x20440, + 0x184000, + 0x208020, + 0x50004, + 0x290, + 0x82400, + 0x4804, + 0x700000, + 0x4802, + 0x18040, + 0x4800, + 0x4801, + 0x109000, + 0x20820, + 0x80140, + 0x50010, + 0x442000, + 0x200180, + 0x4808, + 0x1600, + 0x2a0, + 0x401004, + 0x1a0000, + 0x4440, + 0x401001, + 0x401000, + 0x208008, + 0x401002, + 0x6100, + 0x20810, + 0x208004, + 0x50020, + 0x208002, + 0x401008, + 0x208000, + 0x208001, + 0x240040, + 0x20808, + 0x13000, + 0x8300, + 0x100500, + 0x401010, + 0x4820, + 0xc0080, + 0x20801, + 0x20800, + 0x400480, + 0x20802, + 0x90200, + 0x20804, + 0x208010, + 0x102040, + 0x2c0, + 0x100900, + 0x40a000, + 0x4420, + 0x20408, + 0x18010, + 0x141000, + 0x280200, + 0x20404, + 0x203000, + 0x80110, + 0x50040, + 0x20400, + 0x20401, + 0x20402, + 0x400880, + 0x240020, + 0x18004, + 0x80108, + 0x21080, + 0x18001, + 0x18000, + 0x4840, + 0x18002, + 0x80102, + 0x404200, + 0x80100, + 0x80101, + 0x20410, + 0x18008, + 0x80104, + 0x102020, + 0x240010, + 0x4402, + 0x4401, + 0x4400, + 0x82800, + 0x401040, + 0x10180, + 0x4404, + 0x510000, + 0x88080, + 0x1a00, + 0x4408, + 0x20420, + 0x40300, + 0x208040, + 0x102010, + 0x240000, + 0x240001, + 0x240002, + 0x4410, + 0x240004, + 0x18020, + 0x420200, + 0x102008, + 0x240008, + 0x20840, + 0x80120, + 0x102004, + 0x5080, + 0x102002, + 0x102001, + 0x102000, + 0x300, + 0x301, + 0x302, + 0x484000, + 0x304, + 0x200018, + 0x10060, + 0x22080, + 0x308, + 0x200014, + 0x28800, + 0x101020, + 0x200011, + 0x200010, + 0x44400, + 0x200012, + 0x310, + 0x20000c, + 0x142000, + 0x10c00, + 0x200009, + 0x200008, + 0x409000, + 0x20000a, + 0x200005, + 0x200004, + 0x800c0, + 0x200006, + 0x200001, + 0x200000, + 0x200003, + 0x200002, + 0x320, + 0x60400, + 0x10044, + 0x101008, + 0x10042, + 0xc800, + 0x10040, + 0x10041, + 0x6080, + 0x101002, + 0x101001, + 0x101000, + 0x4a0000, + 0x200030, + 0x10048, + 0x101004, + 0x81800, + 0x402040, + 0x224000, + 0x8280, + 0x100480, + 0x200028, + 0x10050, + 0xc0100, + 0x58000, + 0x200024, + 0x400500, + 0x101010, + 0x200021, + 0x200020, + 0x2a00, + 0x200022, + 0x340, + 0x100880, + 0x10024, + 0x248000, + 0x10022, + 0x81400, + 0x10020, + 0x10021, + 0x441000, + 0x34000, + 0x80090, + 0x2600, + 0x10a000, + 0x200050, + 0x10028, + 0x400900, + 0xc400, + 0x402020, + 0x80088, + 0x21100, + 0x60800, + 0x200048, + 0x10030, + 0x104200, + 0x80082, + 0x200044, + 0x80080, + 0x80081, + 0x200041, + 0x200040, + 0x80084, + 0x200042, + 0x10006, + 0x402010, + 0x10004, + 0x10005, + 0x10002, + 0x10003, + 0x10000, + 0x10001, + 0x200c00, + 0x88100, + 0x1000c, + 0x101040, + 0x1000a, + 0x40280, + 0x10008, + 0x10009, + 0x402001, + 0x402000, + 0x10014, + 0x402002, + 0x10012, + 0x402004, + 0x10010, + 0x10011, + 0x120200, + 0x402008, + 0x800a0, + 0x44800, + 0x5100, + 0x200060, + 0x10018, + 0x28400, + 0x380, + 0x100840, + 0x201400, + 0x22004, + 0xc8000, + 0x22002, + 0x22001, + 0x22000, + 0x6020, + 0x408400, + 0x80050, + 0x50100, + 0x11800, + 0x200090, + 0x500200, + 0x22008, + 0x430000, + 0x45000, + 0x80048, + 0x8220, + 0x100420, + 0x200088, + 0x4900, + 0x22010, + 0x80042, + 0x200084, + 0x80040, + 0x80041, + 0x200081, + 0x200080, + 0x80044, + 0x200082, + 0x6008, + 0x290000, + 0x440800, + 0x8210, + 0x100410, + 0x401100, + 0x100c0, + 0x22020, + 0x6000, + 0x6001, + 0x6002, + 0x101080, + 0x6004, + 0x40240, + 0x208100, + 0x80c00, + 0x100404, + 0x8202, + 0x8201, + 0x8200, + 0x100400, + 0x100401, + 0x100402, + 0x8204, + 0x6010, + 0x20900, + 0x80060, + 0x8208, + 0x100408, + 0x2000a0, + 0x61000, + 0x414000, + 0x100801, + 0x100800, + 0x80018, + 0x100802, + 0x604000, + 0x100804, + 0x100a0, + 0x22040, + 0x80012, + 0x100808, + 0x80010, + 0x80011, + 0x20500, + 0x40220, + 0x80014, + 0xd000, + 0x8000a, + 0x100810, + 0x80008, + 0x80009, + 0x3200, + 0x18100, + 0x8000c, + 0x440400, + 0x80002, + 0x80003, + 0x80000, + 0x80001, + 0x80006, + 0x2000c0, + 0x80004, + 0x80005, + 0x29000, + 0x100820, + 0x10084, + 0x4500, + 0x10082, + 0x40208, + 0x10080, + 0x10081, + 0x6040, + 0x40204, + 0x80030, + 0x620000, + 0x40201, + 0x40200, + 0x10088, + 0x40202, + 0x240100, + 0x402080, + 0x80028, + 0x8240, + 0x100440, + 0xa4000, + 0x10090, + 0x201800, + 0x80022, + 0x11400, + 0x80020, + 0x80021, + 0x408800, + 0x40210, + 0x80024, + 0x102100, + 0x400, + 0x401, + 0x402, + 0x403, + 0x404, + 0x405, + 0x406, + 0x108200, + 0x408, + 0x409, + 0x40a, + 0x2140, + 0x40c, + 0x4c0000, + 0x210800, + 0x1090, + 0x410, + 0x411, + 0x412, + 0x244000, + 0x414, + 0x860, + 0xa0100, + 0x1088, + 0x418, + 0x38000, + 0x400220, + 0x1084, + 0x106000, + 0x1082, + 0x1081, + 0x1080, + 0x420, + 0x421, + 0x422, + 0x91000, + 0x424, + 0x850, + 0x42080, + 0x600100, + 0x428, + 0x300080, + 0x400210, + 0x48800, + 0x9100, + 0x12200, + 0x180040, + 0x24400, + 0x430, + 0x844, + 0x400208, + 0x122000, + 0x841, + 0x840, + 0x1c000, + 0x842, + 0x400202, + 0x84100, + 0x400200, + 0x400201, + 0x260000, + 0x848, + 0x400204, + 0x10a0, + 0x440, + 0x441, + 0x442, + 0x2108, + 0x444, + 0x830, + 0x405000, + 0x70000, + 0x448, + 0x2102, + 0x2101, + 0x2100, + 0x20280, + 0x20c000, + 0x180020, + 0x2104, + 0x450, + 0x824, + 0x110080, + 0x488000, + 0x821, + 0x820, + 0x202200, + 0x822, + 0x281000, + 0x140200, + 0x24800, + 0x2110, + 0x410100, + 0x828, + 0x48400, + 0x10c0, + 0x460, + 0x814, + 0x228000, + 0x4280, + 0x811, + 0x810, + 0x180008, + 0x812, + 0x54000, + 0x421000, + 0x180004, + 0x2120, + 0x180002, + 0x818, + 0x180000, + 0x180001, + 0x805, + 0x804, + 0x41100, + 0x806, + 0x801, + 0x800, + 0x803, + 0x802, + 0xa080, + 0x80c, + 0x400240, + 0x210400, + 0x809, + 0x808, + 0x180010, + 0x80a, + 0x480, + 0x481, + 0x482, + 0x420800, + 0x484, + 0x14100, + 0x42020, + 0x1018, + 0x488, + 0x300020, + 0x8c000, + 0x1014, + 0x20240, + 0x1012, + 0x1011, + 0x1010, + 0x490, + 0x82200, + 0x110040, + 0x100c, + 0x608000, + 0x100a, + 0x1009, + 0x1008, + 0x40900, + 0x1006, + 0x1005, + 0x1004, + 0x1003, + 0x1002, + 0x1001, + 0x1000, + 0x4a0, + 0x300008, + 0x42004, + 0x4240, + 0x42002, + 0xa8000, + 0x42000, + 0x42001, + 0x300001, + 0x300000, + 0x30100, + 0x300002, + 0x404800, + 0x300004, + 0x42008, + 0x1030, + 0x25000, + 0x450000, + 0x280800, + 0x8500, + 0x100300, + 0x8c0, + 0x42010, + 0x1028, + 0xa040, + 0x300010, + 0x400280, + 0x1024, + 0x90400, + 0x1022, + 0x1021, + 0x1020, + 0x4c0, + 0x49000, + 0x110010, + 0x4220, + 0x20208, + 0x502000, + 0x8900, + 0x280400, + 0x20204, + 0x90800, + 0x640000, + 0x2180, + 0x20200, + 0x20201, + 0x20202, + 0x1050, + 0x110002, + 0x220100, + 0x110000, + 0x110001, + 0xc4000, + 0x8a0, + 0x110004, + 0x1048, + 0xa020, + 0x404400, + 0x110008, + 0x1044, + 0x20210, + 0x1042, + 0x1041, + 0x1040, + 0x480100, + 0x4202, + 0x4201, + 0x4200, + 0x211000, + 0x890, + 0x42040, + 0x4204, + 0xa010, + 0x300040, + 0x1c00, + 0x4208, + 0x20220, + 0x40500, + 0x180080, + 0x418000, + 0xa008, + 0x884, + 0x110020, + 0x4210, + 0x881, + 0x880, + 0x420400, + 0x882, + 0xa000, + 0xa001, + 0xa002, + 0xe0000, + 0xa004, + 0x888, + 0x204100, + 0x1060, + 0x500, + 0x501, + 0x502, + 0x2048, + 0x504, + 0x14080, + 0xa0010, + 0x600020, + 0x508, + 0x2042, + 0x2041, + 0x2040, + 0x9020, + 0x120800, + 0x44200, + 0x2044, + 0x510, + 0x501000, + 0xa0004, + 0x10a00, + 0xa0002, + 0x4a000, + 0xa0000, + 0xa0001, + 0x40880, + 0x84020, + 0x308000, + 0x2050, + 0x410040, + 0x200600, + 0xa0008, + 0x1180, + 0x520, + 0x60200, + 0x104800, + 0x600004, + 0x9008, + 0x600002, + 0x600001, + 0x600000, + 0x9004, + 0x84010, + 0x30080, + 0x2060, + 0x9000, + 0x9001, + 0x9002, + 0x600008, + 0x212000, + 0x84008, + 0x41040, + 0x8480, + 0x100280, + 0x940, + 0xa0020, + 0x600010, + 0x84001, + 0x84000, + 0x400300, + 0x84002, + 0x9010, + 0x84004, + 0x2c00, + 0x150000, + 0x540, + 0x200a, + 0x2009, + 0x2008, + 0x340000, + 0x81200, + 0x8880, + 0x200c, + 0x2003, + 0x2002, + 0x2001, + 0x2000, + 0x410010, + 0x2006, + 0x2005, + 0x2004, + 0xc200, + 0x220080, + 0x41020, + 0x2018, + 0x410008, + 0x920, + 0xa0040, + 0x104400, + 0x410004, + 0x2012, + 0x2011, + 0x2010, + 0x410000, + 0x410001, + 0x410002, + 0x2014, + 0x480080, + 0x118000, + 0x41010, + 0x2028, + 0x26000, + 0x910, + 0x10600, + 0x600040, + 0x200a00, + 0x2022, + 0x2021, + 0x2020, + 0x9040, + 0x40480, + 0x180100, + 0x2024, + 0x41002, + 0x904, + 0x41000, + 0x41001, + 0x901, + 0x900, + 0x41004, + 0x902, + 0x120400, + 0x84040, + 0x41008, + 0x2030, + 0x410020, + 0x908, + 0x204080, + 0x28200, + 0x580, + 0x14004, + 0x201200, + 0x1c0000, + 0x14001, + 0x14000, + 0x8840, + 0x14002, + 0x40810, + 0x408200, + 0x30020, + 0x20c0, + 0x282000, + 0x14008, + 0x500400, + 0x1110, + 0x40808, + 0x220040, + 0x406000, + 0x8420, + 0x100220, + 0x14010, + 0xa0080, + 0x1108, + 0x40800, + 0x40801, + 0x40802, + 0x1104, + 0x40804, + 0x1102, + 0x1101, + 0x1100, + 0x480040, + 0x3800, + 0x30008, + 0x8410, + 0x100210, + 0x14020, + 0x42100, + 0x600080, + 0x30002, + 0x300100, + 0x30000, + 0x30001, + 0x9080, + 0x40440, + 0x30004, + 0x80a00, + 0x100204, + 0x8402, + 0x8401, + 0x8400, + 0x100200, + 0x100201, + 0x100202, + 0x8404, + 0x40820, + 0x84080, + 0x30010, + 0x8408, + 0x100208, + 0x422000, + 0x204040, + 0x1120, + 0x480020, + 0x220010, + 0x8804, + 0x2088, + 0x8802, + 0x14040, + 0x8800, + 0x8801, + 0x105000, + 0x2082, + 0x2081, + 0x2080, + 0x20300, + 0x40420, + 0x8808, + 0x2084, + 0x220001, + 0x220000, + 0x110100, + 0x220002, + 0x3400, + 0x220004, + 0x8810, + 0x440200, + 0x40840, + 0x220008, + 0x80600, + 0x2090, + 0x410080, + 0x188000, + 0x204020, + 0x1140, + 0x480000, + 0x480001, + 0x480002, + 0x4300, + 0x480004, + 0x40408, + 0x8820, + 0x121000, + 0x480008, + 0x40404, + 0x30040, + 0x20a0, + 0x40401, + 0x40400, + 0x204010, + 0x40402, + 0x480010, + 0x220020, + 0x41080, + 0x8440, + 0x100240, + 0x980, + 0x204008, + 0x92000, + 0xa100, + 0x11200, + 0x204004, + 0x500800, + 0x204002, + 0x40410, + 0x204000, + 0x204001, + 0x600, + 0x601, + 0x602, + 0x108004, + 0x604, + 0x108002, + 0x108001, + 0x108000, + 0x608, + 0x5800, + 0x400030, + 0x2a0000, + 0x200c0, + 0x12020, + 0x44100, + 0x108008, + 0x610, + 0x82080, + 0x400028, + 0x10900, + 0x51000, + 0x424000, + 0x202040, + 0x108010, + 0x400022, + 0x140040, + 0x400020, + 0x400021, + 0x88800, + 0x200500, + 0x400024, + 0x1280, + 0x620, + 0x60100, + 0x400018, + 0x40c0, + 0x284000, + 0x12008, + 0x21800, + 0x108020, + 0x400012, + 0x12004, + 0x400010, + 0x400011, + 0x12001, + 0x12000, + 0x400014, + 0x12002, + 0x40000a, + 0x209000, + 0x400008, + 0x400009, + 0x100180, + 0xa40, + 0x40000c, + 0xc0400, + 0x400002, + 0x400003, + 0x400000, + 0x400001, + 0x400006, + 0x12010, + 0x400004, + 0x400005, + 0x640, + 0x610000, + 0xc0800, + 0x40a0, + 0x20088, + 0x81100, + 0x202010, + 0x108040, + 0x20084, + 0x140010, + 0x19000, + 0x2300, + 0x20080, + 0x20081, + 0x20082, + 0x400c00, + 0xc100, + 0x140008, + 0x202004, + 0x21400, + 0x202002, + 0xa20, + 0x202000, + 0x202001, + 0x140001, + 0x140000, + 0x400060, + 0x140002, + 0x20090, + 0x140004, + 0x202008, + 0x94000, + 0x103000, + 0x4082, + 0x4081, + 0x4080, + 0x448000, + 0xa10, + 0x10500, + 0x4084, + 0x200900, + 0x88400, + 0x400050, + 0x4088, + 0x200a0, + 0x12040, + 0x180200, + 0x241000, + 0xb0000, + 0xa04, + 0x400048, + 0x4090, + 0xa01, + 0xa00, + 0x202020, + 0xa02, + 0x400042, + 0x140020, + 0x400040, + 0x400041, + 0x5400, + 0xa08, + 0x400044, + 0x28100, + 0x680, + 0x82010, + 0x201100, + 0x4060, + 0x20048, + 0x240800, + 0x490000, + 0x108080, + 0x20044, + 0x408100, + 0x102800, + 0x50400, + 0x20040, + 0x20041, + 0x20042, + 0x1210, + 0x82001, + 0x82000, + 0x68000, + 0x82002, + 0x100120, + 0x82004, + 0x4c00, + 0x1208, + 0x214000, + 0x82008, + 0x4000a0, + 0x1204, + 0x20050, + 0x1202, + 0x1201, + 0x1200, + 0x18800, + 0x4042, + 0x4041, + 0x4040, + 0x100110, + 0x401400, + 0x42200, + 0x4044, + 0xc1000, + 0x300200, + 0x400090, + 0x4048, + 0x20060, + 0x12080, + 0x208400, + 0x80900, + 0x100104, + 0x82020, + 0x400088, + 0x4050, + 0x100100, + 0x100101, + 0x100102, + 0x230000, + 0x400082, + 0x20c00, + 0x400080, + 0x400081, + 0x100108, + 0x4c000, + 0x400084, + 0x1220, + 0x2000c, + 0x4022, + 0x4021, + 0x4020, + 0x20008, + 0x20009, + 0x2000a, + 0x4024, + 0x20004, + 0x20005, + 0x20006, + 0x4028, + 0x20000, + 0x20001, + 0x20002, + 0x20003, + 0x401800, + 0x82040, + 0x110200, + 0x4030, + 0x20018, + 0x18400, + 0x202080, + 0x440100, + 0x20014, + 0x140080, + 0x80500, + 0x208800, + 0x20010, + 0x20011, + 0x20012, + 0x1240, + 0x4003, + 0x4002, + 0x4001, + 0x4000, + 0x20028, + 0x4006, + 0x4005, + 0x4004, + 0x20024, + 0x400a, + 0x4009, + 0x4008, + 0x20020, + 0x20021, + 0x20022, + 0x400c, + 0x240400, + 0x4012, + 0x4011, + 0x4010, + 0x100140, + 0xa80, + 0x89000, + 0x4014, + 0xa200, + 0x11100, + 0x4000c0, + 0x4018, + 0x20030, + 0x680000, + 0x50800, + 0x102400, + 0x700, + 0x60020, + 0x201080, + 0x10810, + 0x402800, + 0x81040, + 0x44008, + 0x108100, + 0x190000, + 0x408080, + 0x44004, + 0x2240, + 0x44002, + 0x200410, + 0x44000, + 0x44001, + 0xc040, + 0x10802, + 0x10801, + 0x10800, + 0x1000a0, + 0x200408, + 0xa0200, + 0x10804, + 0x23000, + 0x200404, + 0x400120, + 0x10808, + 0x200401, + 0x200400, + 0x44010, + 0x200402, + 0x60001, + 0x60000, + 0x8a000, + 0x60002, + 0x100090, + 0x60004, + 0x10440, + 0x600200, + 0x200840, + 0x60008, + 0x400110, + 0x101400, + 0x9200, + 0x12100, + 0x44020, + 0x80880, + 0x100084, + 0x60010, + 0x400108, + 0x10820, + 0x100080, + 0x100081, + 0x100082, + 0x7000, + 0x400102, + 0x84200, + 0x400100, + 0x400101, + 0x100088, + 0x200420, + 0x400104, + 0x28040, + 0xc010, + 0x81004, + 0x520000, + 0x2208, + 0x81001, + 0x81000, + 0x10420, + 0x81002, + 0x200820, + 0x2202, + 0x2201, + 0x2200, + 0x20180, + 0x81008, + 0x44040, + 0x2204, + 0xc000, + 0xc001, + 0xc002, + 0x10840, + 0xc004, + 0x81010, + 0x202100, + 0x440080, + 0xc008, + 0x140100, + 0x80480, + 0x2210, + 0x410200, + 0x200440, + 0x101800, + 0x28020, + 0x200808, + 0x60040, + 0x10404, + 0x4180, + 0x10402, + 0x81020, + 0x10400, + 0x10401, + 0x200800, + 0x200801, + 0x200802, + 0x2220, + 0x200804, + 0x504000, + 0x10408, + 0x28010, + 0xc020, + 0x402400, + 0x41200, + 0x380000, + 0x1000c0, + 0xb00, + 0x10410, + 0x28008, + 0x200810, + 0x11080, + 0x400140, + 0x28004, + 0xc2000, + 0x28002, + 0x28001, + 0x28000, + 0x201002, + 0x408008, + 0x201000, + 0x201001, + 0x100030, + 0x14200, + 0x201004, + 0x22400, + 0x408001, + 0x408000, + 0x201008, + 0x408002, + 0x20140, + 0x408004, + 0x44080, + 0x80820, + 0x100024, + 0x82100, + 0x201010, + 0x10880, + 0x100020, + 0x100021, + 0x100022, + 0x440040, + 0x40a00, + 0x408010, + 0x80440, + 0x124000, + 0x100028, + 0x200480, + 0x1a000, + 0x1300, + 0x100014, + 0x60080, + 0x201020, + 0x4140, + 0x100010, + 0x100011, + 0x100012, + 0x80808, + 0x6400, + 0x408020, + 0x30200, + 0x80804, + 0x100018, + 0x80802, + 0x80801, + 0x80800, + 0x100004, + 0x100005, + 0x100006, + 0x8600, + 0x100000, + 0x100001, + 0x100002, + 0x100003, + 0x10000c, + 0x11040, + 0x400180, + 0x242000, + 0x100008, + 0x100009, + 0x10000a, + 0x80810, + 0x52000, + 0x100c00, + 0x201040, + 0x4120, + 0x20108, + 0x81080, + 0x8a00, + 0x440010, + 0x20104, + 0x408040, + 0x80410, + 0x2280, + 0x20100, + 0x20101, + 0x20102, + 0x310000, + 0xc080, + 0x220200, + 0x80408, + 0x440004, + 0x100060, + 0x440002, + 0x440001, + 0x440000, + 0x80402, + 0x11020, + 0x80400, + 0x80401, + 0x20110, + 0x6800, + 0x80404, + 0x440008, + 0x480200, + 0x4102, + 0x4101, + 0x4100, + 0x100050, + 0x20a000, + 0x10480, + 0x4104, + 0x200880, + 0x11010, + 0x148000, + 0x4108, + 0x20120, + 0x40600, + 0x403000, + 0x80840, + 0x100044, + 0x11008, + 0x22800, + 0x4110, + 0x100040, + 0x100041, + 0x100042, + 0x440020, + 0x11001, + 0x11000, + 0x80420, + 0x11002, + 0x100048, + 0x11004, + 0x204200, + 0x28080 +}; diff --git a/src/golayenctable.h b/src/golayenctable.h new file mode 100644 index 0000000..1574652 --- /dev/null +++ b/src/golayenctable.h @@ -0,0 +1,4100 @@ +/* Generated by golay23.c -DGOLAY23_MAKETABLE */ + +static const int encoding_table[]={ + 0x0, + 0xc75, + 0x149f, + 0x18ea, + 0x254b, + 0x293e, + 0x31d4, + 0x3da1, + 0x46e3, + 0x4a96, + 0x527c, + 0x5e09, + 0x63a8, + 0x6fdd, + 0x7737, + 0x7b42, + 0x81b3, + 0x8dc6, + 0x952c, + 0x9959, + 0xa4f8, + 0xa88d, + 0xb067, + 0xbc12, + 0xc750, + 0xcb25, + 0xd3cf, + 0xdfba, + 0xe21b, + 0xee6e, + 0xf684, + 0xfaf1, + 0x10366, + 0x10f13, + 0x117f9, + 0x11b8c, + 0x1262d, + 0x12a58, + 0x132b2, + 0x13ec7, + 0x14585, + 0x149f0, + 0x1511a, + 0x15d6f, + 0x160ce, + 0x16cbb, + 0x17451, + 0x17824, + 0x182d5, + 0x18ea0, + 0x1964a, + 0x19a3f, + 0x1a79e, + 0x1abeb, + 0x1b301, + 0x1bf74, + 0x1c436, + 0x1c843, + 0x1d0a9, + 0x1dcdc, + 0x1e17d, + 0x1ed08, + 0x1f5e2, + 0x1f997, + 0x206cc, + 0x20ab9, + 0x21253, + 0x21e26, + 0x22387, + 0x22ff2, + 0x23718, + 0x23b6d, + 0x2402f, + 0x24c5a, + 0x254b0, + 0x258c5, + 0x26564, + 0x26911, + 0x271fb, + 0x27d8e, + 0x2877f, + 0x28b0a, + 0x293e0, + 0x29f95, + 0x2a234, + 0x2ae41, + 0x2b6ab, + 0x2bade, + 0x2c19c, + 0x2cde9, + 0x2d503, + 0x2d976, + 0x2e4d7, + 0x2e8a2, + 0x2f048, + 0x2fc3d, + 0x305aa, + 0x309df, + 0x31135, + 0x31d40, + 0x320e1, + 0x32c94, + 0x3347e, + 0x3380b, + 0x34349, + 0x34f3c, + 0x357d6, + 0x35ba3, + 0x36602, + 0x36a77, + 0x3729d, + 0x37ee8, + 0x38419, + 0x3886c, + 0x39086, + 0x39cf3, + 0x3a152, + 0x3ad27, + 0x3b5cd, + 0x3b9b8, + 0x3c2fa, + 0x3ce8f, + 0x3d665, + 0x3da10, + 0x3e7b1, + 0x3ebc4, + 0x3f32e, + 0x3ff5b, + 0x401ed, + 0x40d98, + 0x41572, + 0x41907, + 0x424a6, + 0x428d3, + 0x43039, + 0x43c4c, + 0x4470e, + 0x44b7b, + 0x45391, + 0x45fe4, + 0x46245, + 0x46e30, + 0x476da, + 0x47aaf, + 0x4805e, + 0x48c2b, + 0x494c1, + 0x498b4, + 0x4a515, + 0x4a960, + 0x4b18a, + 0x4bdff, + 0x4c6bd, + 0x4cac8, + 0x4d222, + 0x4de57, + 0x4e3f6, + 0x4ef83, + 0x4f769, + 0x4fb1c, + 0x5028b, + 0x50efe, + 0x51614, + 0x51a61, + 0x527c0, + 0x52bb5, + 0x5335f, + 0x53f2a, + 0x54468, + 0x5481d, + 0x550f7, + 0x55c82, + 0x56123, + 0x56d56, + 0x575bc, + 0x579c9, + 0x58338, + 0x58f4d, + 0x597a7, + 0x59bd2, + 0x5a673, + 0x5aa06, + 0x5b2ec, + 0x5be99, + 0x5c5db, + 0x5c9ae, + 0x5d144, + 0x5dd31, + 0x5e090, + 0x5ece5, + 0x5f40f, + 0x5f87a, + 0x60721, + 0x60b54, + 0x613be, + 0x61fcb, + 0x6226a, + 0x62e1f, + 0x636f5, + 0x63a80, + 0x641c2, + 0x64db7, + 0x6555d, + 0x65928, + 0x66489, + 0x668fc, + 0x67016, + 0x67c63, + 0x68692, + 0x68ae7, + 0x6920d, + 0x69e78, + 0x6a3d9, + 0x6afac, + 0x6b746, + 0x6bb33, + 0x6c071, + 0x6cc04, + 0x6d4ee, + 0x6d89b, + 0x6e53a, + 0x6e94f, + 0x6f1a5, + 0x6fdd0, + 0x70447, + 0x70832, + 0x710d8, + 0x71cad, + 0x7210c, + 0x72d79, + 0x73593, + 0x739e6, + 0x742a4, + 0x74ed1, + 0x7563b, + 0x75a4e, + 0x767ef, + 0x76b9a, + 0x77370, + 0x77f05, + 0x785f4, + 0x78981, + 0x7916b, + 0x79d1e, + 0x7a0bf, + 0x7acca, + 0x7b420, + 0x7b855, + 0x7c317, + 0x7cf62, + 0x7d788, + 0x7dbfd, + 0x7e65c, + 0x7ea29, + 0x7f2c3, + 0x7feb6, + 0x803da, + 0x80faf, + 0x81745, + 0x81b30, + 0x82691, + 0x82ae4, + 0x8320e, + 0x83e7b, + 0x84539, + 0x8494c, + 0x851a6, + 0x85dd3, + 0x86072, + 0x86c07, + 0x874ed, + 0x87898, + 0x88269, + 0x88e1c, + 0x896f6, + 0x89a83, + 0x8a722, + 0x8ab57, + 0x8b3bd, + 0x8bfc8, + 0x8c48a, + 0x8c8ff, + 0x8d015, + 0x8dc60, + 0x8e1c1, + 0x8edb4, + 0x8f55e, + 0x8f92b, + 0x900bc, + 0x90cc9, + 0x91423, + 0x91856, + 0x925f7, + 0x92982, + 0x93168, + 0x93d1d, + 0x9465f, + 0x94a2a, + 0x952c0, + 0x95eb5, + 0x96314, + 0x96f61, + 0x9778b, + 0x97bfe, + 0x9810f, + 0x98d7a, + 0x99590, + 0x999e5, + 0x9a444, + 0x9a831, + 0x9b0db, + 0x9bcae, + 0x9c7ec, + 0x9cb99, + 0x9d373, + 0x9df06, + 0x9e2a7, + 0x9eed2, + 0x9f638, + 0x9fa4d, + 0xa0516, + 0xa0963, + 0xa1189, + 0xa1dfc, + 0xa205d, + 0xa2c28, + 0xa34c2, + 0xa38b7, + 0xa43f5, + 0xa4f80, + 0xa576a, + 0xa5b1f, + 0xa66be, + 0xa6acb, + 0xa7221, + 0xa7e54, + 0xa84a5, + 0xa88d0, + 0xa903a, + 0xa9c4f, + 0xaa1ee, + 0xaad9b, + 0xab571, + 0xab904, + 0xac246, + 0xace33, + 0xad6d9, + 0xadaac, + 0xae70d, + 0xaeb78, + 0xaf392, + 0xaffe7, + 0xb0670, + 0xb0a05, + 0xb12ef, + 0xb1e9a, + 0xb233b, + 0xb2f4e, + 0xb37a4, + 0xb3bd1, + 0xb4093, + 0xb4ce6, + 0xb540c, + 0xb5879, + 0xb65d8, + 0xb69ad, + 0xb7147, + 0xb7d32, + 0xb87c3, + 0xb8bb6, + 0xb935c, + 0xb9f29, + 0xba288, + 0xbaefd, + 0xbb617, + 0xbba62, + 0xbc120, + 0xbcd55, + 0xbd5bf, + 0xbd9ca, + 0xbe46b, + 0xbe81e, + 0xbf0f4, + 0xbfc81, + 0xc0237, + 0xc0e42, + 0xc16a8, + 0xc1add, + 0xc277c, + 0xc2b09, + 0xc33e3, + 0xc3f96, + 0xc44d4, + 0xc48a1, + 0xc504b, + 0xc5c3e, + 0xc619f, + 0xc6dea, + 0xc7500, + 0xc7975, + 0xc8384, + 0xc8ff1, + 0xc971b, + 0xc9b6e, + 0xca6cf, + 0xcaaba, + 0xcb250, + 0xcbe25, + 0xcc567, + 0xcc912, + 0xcd1f8, + 0xcdd8d, + 0xce02c, + 0xcec59, + 0xcf4b3, + 0xcf8c6, + 0xd0151, + 0xd0d24, + 0xd15ce, + 0xd19bb, + 0xd241a, + 0xd286f, + 0xd3085, + 0xd3cf0, + 0xd47b2, + 0xd4bc7, + 0xd532d, + 0xd5f58, + 0xd62f9, + 0xd6e8c, + 0xd7666, + 0xd7a13, + 0xd80e2, + 0xd8c97, + 0xd947d, + 0xd9808, + 0xda5a9, + 0xda9dc, + 0xdb136, + 0xdbd43, + 0xdc601, + 0xdca74, + 0xdd29e, + 0xddeeb, + 0xde34a, + 0xdef3f, + 0xdf7d5, + 0xdfba0, + 0xe04fb, + 0xe088e, + 0xe1064, + 0xe1c11, + 0xe21b0, + 0xe2dc5, + 0xe352f, + 0xe395a, + 0xe4218, + 0xe4e6d, + 0xe5687, + 0xe5af2, + 0xe6753, + 0xe6b26, + 0xe73cc, + 0xe7fb9, + 0xe8548, + 0xe893d, + 0xe91d7, + 0xe9da2, + 0xea003, + 0xeac76, + 0xeb49c, + 0xeb8e9, + 0xec3ab, + 0xecfde, + 0xed734, + 0xedb41, + 0xee6e0, + 0xeea95, + 0xef27f, + 0xefe0a, + 0xf079d, + 0xf0be8, + 0xf1302, + 0xf1f77, + 0xf22d6, + 0xf2ea3, + 0xf3649, + 0xf3a3c, + 0xf417e, + 0xf4d0b, + 0xf55e1, + 0xf5994, + 0xf6435, + 0xf6840, + 0xf70aa, + 0xf7cdf, + 0xf862e, + 0xf8a5b, + 0xf92b1, + 0xf9ec4, + 0xfa365, + 0xfaf10, + 0xfb7fa, + 0xfbb8f, + 0xfc0cd, + 0xfccb8, + 0xfd452, + 0xfd827, + 0xfe586, + 0xfe9f3, + 0xff119, + 0xffd6c, + 0x1007b4, + 0x100bc1, + 0x10132b, + 0x101f5e, + 0x1022ff, + 0x102e8a, + 0x103660, + 0x103a15, + 0x104157, + 0x104d22, + 0x1055c8, + 0x1059bd, + 0x10641c, + 0x106869, + 0x107083, + 0x107cf6, + 0x108607, + 0x108a72, + 0x109298, + 0x109eed, + 0x10a34c, + 0x10af39, + 0x10b7d3, + 0x10bba6, + 0x10c0e4, + 0x10cc91, + 0x10d47b, + 0x10d80e, + 0x10e5af, + 0x10e9da, + 0x10f130, + 0x10fd45, + 0x1104d2, + 0x1108a7, + 0x11104d, + 0x111c38, + 0x112199, + 0x112dec, + 0x113506, + 0x113973, + 0x114231, + 0x114e44, + 0x1156ae, + 0x115adb, + 0x11677a, + 0x116b0f, + 0x1173e5, + 0x117f90, + 0x118561, + 0x118914, + 0x1191fe, + 0x119d8b, + 0x11a02a, + 0x11ac5f, + 0x11b4b5, + 0x11b8c0, + 0x11c382, + 0x11cff7, + 0x11d71d, + 0x11db68, + 0x11e6c9, + 0x11eabc, + 0x11f256, + 0x11fe23, + 0x120178, + 0x120d0d, + 0x1215e7, + 0x121992, + 0x122433, + 0x122846, + 0x1230ac, + 0x123cd9, + 0x12479b, + 0x124bee, + 0x125304, + 0x125f71, + 0x1262d0, + 0x126ea5, + 0x12764f, + 0x127a3a, + 0x1280cb, + 0x128cbe, + 0x129454, + 0x129821, + 0x12a580, + 0x12a9f5, + 0x12b11f, + 0x12bd6a, + 0x12c628, + 0x12ca5d, + 0x12d2b7, + 0x12dec2, + 0x12e363, + 0x12ef16, + 0x12f7fc, + 0x12fb89, + 0x13021e, + 0x130e6b, + 0x131681, + 0x131af4, + 0x132755, + 0x132b20, + 0x1333ca, + 0x133fbf, + 0x1344fd, + 0x134888, + 0x135062, + 0x135c17, + 0x1361b6, + 0x136dc3, + 0x137529, + 0x13795c, + 0x1383ad, + 0x138fd8, + 0x139732, + 0x139b47, + 0x13a6e6, + 0x13aa93, + 0x13b279, + 0x13be0c, + 0x13c54e, + 0x13c93b, + 0x13d1d1, + 0x13dda4, + 0x13e005, + 0x13ec70, + 0x13f49a, + 0x13f8ef, + 0x140659, + 0x140a2c, + 0x1412c6, + 0x141eb3, + 0x142312, + 0x142f67, + 0x14378d, + 0x143bf8, + 0x1440ba, + 0x144ccf, + 0x145425, + 0x145850, + 0x1465f1, + 0x146984, + 0x14716e, + 0x147d1b, + 0x1487ea, + 0x148b9f, + 0x149375, + 0x149f00, + 0x14a2a1, + 0x14aed4, + 0x14b63e, + 0x14ba4b, + 0x14c109, + 0x14cd7c, + 0x14d596, + 0x14d9e3, + 0x14e442, + 0x14e837, + 0x14f0dd, + 0x14fca8, + 0x15053f, + 0x15094a, + 0x1511a0, + 0x151dd5, + 0x152074, + 0x152c01, + 0x1534eb, + 0x15389e, + 0x1543dc, + 0x154fa9, + 0x155743, + 0x155b36, + 0x156697, + 0x156ae2, + 0x157208, + 0x157e7d, + 0x15848c, + 0x1588f9, + 0x159013, + 0x159c66, + 0x15a1c7, + 0x15adb2, + 0x15b558, + 0x15b92d, + 0x15c26f, + 0x15ce1a, + 0x15d6f0, + 0x15da85, + 0x15e724, + 0x15eb51, + 0x15f3bb, + 0x15ffce, + 0x160095, + 0x160ce0, + 0x16140a, + 0x16187f, + 0x1625de, + 0x1629ab, + 0x163141, + 0x163d34, + 0x164676, + 0x164a03, + 0x1652e9, + 0x165e9c, + 0x16633d, + 0x166f48, + 0x1677a2, + 0x167bd7, + 0x168126, + 0x168d53, + 0x1695b9, + 0x1699cc, + 0x16a46d, + 0x16a818, + 0x16b0f2, + 0x16bc87, + 0x16c7c5, + 0x16cbb0, + 0x16d35a, + 0x16df2f, + 0x16e28e, + 0x16eefb, + 0x16f611, + 0x16fa64, + 0x1703f3, + 0x170f86, + 0x17176c, + 0x171b19, + 0x1726b8, + 0x172acd, + 0x173227, + 0x173e52, + 0x174510, + 0x174965, + 0x17518f, + 0x175dfa, + 0x17605b, + 0x176c2e, + 0x1774c4, + 0x1778b1, + 0x178240, + 0x178e35, + 0x1796df, + 0x179aaa, + 0x17a70b, + 0x17ab7e, + 0x17b394, + 0x17bfe1, + 0x17c4a3, + 0x17c8d6, + 0x17d03c, + 0x17dc49, + 0x17e1e8, + 0x17ed9d, + 0x17f577, + 0x17f902, + 0x18046e, + 0x18081b, + 0x1810f1, + 0x181c84, + 0x182125, + 0x182d50, + 0x1835ba, + 0x1839cf, + 0x18428d, + 0x184ef8, + 0x185612, + 0x185a67, + 0x1867c6, + 0x186bb3, + 0x187359, + 0x187f2c, + 0x1885dd, + 0x1889a8, + 0x189142, + 0x189d37, + 0x18a096, + 0x18ace3, + 0x18b409, + 0x18b87c, + 0x18c33e, + 0x18cf4b, + 0x18d7a1, + 0x18dbd4, + 0x18e675, + 0x18ea00, + 0x18f2ea, + 0x18fe9f, + 0x190708, + 0x190b7d, + 0x191397, + 0x191fe2, + 0x192243, + 0x192e36, + 0x1936dc, + 0x193aa9, + 0x1941eb, + 0x194d9e, + 0x195574, + 0x195901, + 0x1964a0, + 0x1968d5, + 0x19703f, + 0x197c4a, + 0x1986bb, + 0x198ace, + 0x199224, + 0x199e51, + 0x19a3f0, + 0x19af85, + 0x19b76f, + 0x19bb1a, + 0x19c058, + 0x19cc2d, + 0x19d4c7, + 0x19d8b2, + 0x19e513, + 0x19e966, + 0x19f18c, + 0x19fdf9, + 0x1a02a2, + 0x1a0ed7, + 0x1a163d, + 0x1a1a48, + 0x1a27e9, + 0x1a2b9c, + 0x1a3376, + 0x1a3f03, + 0x1a4441, + 0x1a4834, + 0x1a50de, + 0x1a5cab, + 0x1a610a, + 0x1a6d7f, + 0x1a7595, + 0x1a79e0, + 0x1a8311, + 0x1a8f64, + 0x1a978e, + 0x1a9bfb, + 0x1aa65a, + 0x1aaa2f, + 0x1ab2c5, + 0x1abeb0, + 0x1ac5f2, + 0x1ac987, + 0x1ad16d, + 0x1add18, + 0x1ae0b9, + 0x1aeccc, + 0x1af426, + 0x1af853, + 0x1b01c4, + 0x1b0db1, + 0x1b155b, + 0x1b192e, + 0x1b248f, + 0x1b28fa, + 0x1b3010, + 0x1b3c65, + 0x1b4727, + 0x1b4b52, + 0x1b53b8, + 0x1b5fcd, + 0x1b626c, + 0x1b6e19, + 0x1b76f3, + 0x1b7a86, + 0x1b8077, + 0x1b8c02, + 0x1b94e8, + 0x1b989d, + 0x1ba53c, + 0x1ba949, + 0x1bb1a3, + 0x1bbdd6, + 0x1bc694, + 0x1bcae1, + 0x1bd20b, + 0x1bde7e, + 0x1be3df, + 0x1befaa, + 0x1bf740, + 0x1bfb35, + 0x1c0583, + 0x1c09f6, + 0x1c111c, + 0x1c1d69, + 0x1c20c8, + 0x1c2cbd, + 0x1c3457, + 0x1c3822, + 0x1c4360, + 0x1c4f15, + 0x1c57ff, + 0x1c5b8a, + 0x1c662b, + 0x1c6a5e, + 0x1c72b4, + 0x1c7ec1, + 0x1c8430, + 0x1c8845, + 0x1c90af, + 0x1c9cda, + 0x1ca17b, + 0x1cad0e, + 0x1cb5e4, + 0x1cb991, + 0x1cc2d3, + 0x1ccea6, + 0x1cd64c, + 0x1cda39, + 0x1ce798, + 0x1cebed, + 0x1cf307, + 0x1cff72, + 0x1d06e5, + 0x1d0a90, + 0x1d127a, + 0x1d1e0f, + 0x1d23ae, + 0x1d2fdb, + 0x1d3731, + 0x1d3b44, + 0x1d4006, + 0x1d4c73, + 0x1d5499, + 0x1d58ec, + 0x1d654d, + 0x1d6938, + 0x1d71d2, + 0x1d7da7, + 0x1d8756, + 0x1d8b23, + 0x1d93c9, + 0x1d9fbc, + 0x1da21d, + 0x1dae68, + 0x1db682, + 0x1dbaf7, + 0x1dc1b5, + 0x1dcdc0, + 0x1dd52a, + 0x1dd95f, + 0x1de4fe, + 0x1de88b, + 0x1df061, + 0x1dfc14, + 0x1e034f, + 0x1e0f3a, + 0x1e17d0, + 0x1e1ba5, + 0x1e2604, + 0x1e2a71, + 0x1e329b, + 0x1e3eee, + 0x1e45ac, + 0x1e49d9, + 0x1e5133, + 0x1e5d46, + 0x1e60e7, + 0x1e6c92, + 0x1e7478, + 0x1e780d, + 0x1e82fc, + 0x1e8e89, + 0x1e9663, + 0x1e9a16, + 0x1ea7b7, + 0x1eabc2, + 0x1eb328, + 0x1ebf5d, + 0x1ec41f, + 0x1ec86a, + 0x1ed080, + 0x1edcf5, + 0x1ee154, + 0x1eed21, + 0x1ef5cb, + 0x1ef9be, + 0x1f0029, + 0x1f0c5c, + 0x1f14b6, + 0x1f18c3, + 0x1f2562, + 0x1f2917, + 0x1f31fd, + 0x1f3d88, + 0x1f46ca, + 0x1f4abf, + 0x1f5255, + 0x1f5e20, + 0x1f6381, + 0x1f6ff4, + 0x1f771e, + 0x1f7b6b, + 0x1f819a, + 0x1f8def, + 0x1f9505, + 0x1f9970, + 0x1fa4d1, + 0x1fa8a4, + 0x1fb04e, + 0x1fbc3b, + 0x1fc779, + 0x1fcb0c, + 0x1fd3e6, + 0x1fdf93, + 0x1fe232, + 0x1fee47, + 0x1ff6ad, + 0x1ffad8, + 0x20031d, + 0x200f68, + 0x201782, + 0x201bf7, + 0x202656, + 0x202a23, + 0x2032c9, + 0x203ebc, + 0x2045fe, + 0x20498b, + 0x205161, + 0x205d14, + 0x2060b5, + 0x206cc0, + 0x20742a, + 0x20785f, + 0x2082ae, + 0x208edb, + 0x209631, + 0x209a44, + 0x20a7e5, + 0x20ab90, + 0x20b37a, + 0x20bf0f, + 0x20c44d, + 0x20c838, + 0x20d0d2, + 0x20dca7, + 0x20e106, + 0x20ed73, + 0x20f599, + 0x20f9ec, + 0x21007b, + 0x210c0e, + 0x2114e4, + 0x211891, + 0x212530, + 0x212945, + 0x2131af, + 0x213dda, + 0x214698, + 0x214aed, + 0x215207, + 0x215e72, + 0x2163d3, + 0x216fa6, + 0x21774c, + 0x217b39, + 0x2181c8, + 0x218dbd, + 0x219557, + 0x219922, + 0x21a483, + 0x21a8f6, + 0x21b01c, + 0x21bc69, + 0x21c72b, + 0x21cb5e, + 0x21d3b4, + 0x21dfc1, + 0x21e260, + 0x21ee15, + 0x21f6ff, + 0x21fa8a, + 0x2205d1, + 0x2209a4, + 0x22114e, + 0x221d3b, + 0x22209a, + 0x222cef, + 0x223405, + 0x223870, + 0x224332, + 0x224f47, + 0x2257ad, + 0x225bd8, + 0x226679, + 0x226a0c, + 0x2272e6, + 0x227e93, + 0x228462, + 0x228817, + 0x2290fd, + 0x229c88, + 0x22a129, + 0x22ad5c, + 0x22b5b6, + 0x22b9c3, + 0x22c281, + 0x22cef4, + 0x22d61e, + 0x22da6b, + 0x22e7ca, + 0x22ebbf, + 0x22f355, + 0x22ff20, + 0x2306b7, + 0x230ac2, + 0x231228, + 0x231e5d, + 0x2323fc, + 0x232f89, + 0x233763, + 0x233b16, + 0x234054, + 0x234c21, + 0x2354cb, + 0x2358be, + 0x23651f, + 0x23696a, + 0x237180, + 0x237df5, + 0x238704, + 0x238b71, + 0x23939b, + 0x239fee, + 0x23a24f, + 0x23ae3a, + 0x23b6d0, + 0x23baa5, + 0x23c1e7, + 0x23cd92, + 0x23d578, + 0x23d90d, + 0x23e4ac, + 0x23e8d9, + 0x23f033, + 0x23fc46, + 0x2402f0, + 0x240e85, + 0x24166f, + 0x241a1a, + 0x2427bb, + 0x242bce, + 0x243324, + 0x243f51, + 0x244413, + 0x244866, + 0x24508c, + 0x245cf9, + 0x246158, + 0x246d2d, + 0x2475c7, + 0x2479b2, + 0x248343, + 0x248f36, + 0x2497dc, + 0x249ba9, + 0x24a608, + 0x24aa7d, + 0x24b297, + 0x24bee2, + 0x24c5a0, + 0x24c9d5, + 0x24d13f, + 0x24dd4a, + 0x24e0eb, + 0x24ec9e, + 0x24f474, + 0x24f801, + 0x250196, + 0x250de3, + 0x251509, + 0x25197c, + 0x2524dd, + 0x2528a8, + 0x253042, + 0x253c37, + 0x254775, + 0x254b00, + 0x2553ea, + 0x255f9f, + 0x25623e, + 0x256e4b, + 0x2576a1, + 0x257ad4, + 0x258025, + 0x258c50, + 0x2594ba, + 0x2598cf, + 0x25a56e, + 0x25a91b, + 0x25b1f1, + 0x25bd84, + 0x25c6c6, + 0x25cab3, + 0x25d259, + 0x25de2c, + 0x25e38d, + 0x25eff8, + 0x25f712, + 0x25fb67, + 0x26043c, + 0x260849, + 0x2610a3, + 0x261cd6, + 0x262177, + 0x262d02, + 0x2635e8, + 0x26399d, + 0x2642df, + 0x264eaa, + 0x265640, + 0x265a35, + 0x266794, + 0x266be1, + 0x26730b, + 0x267f7e, + 0x26858f, + 0x2689fa, + 0x269110, + 0x269d65, + 0x26a0c4, + 0x26acb1, + 0x26b45b, + 0x26b82e, + 0x26c36c, + 0x26cf19, + 0x26d7f3, + 0x26db86, + 0x26e627, + 0x26ea52, + 0x26f2b8, + 0x26fecd, + 0x27075a, + 0x270b2f, + 0x2713c5, + 0x271fb0, + 0x272211, + 0x272e64, + 0x27368e, + 0x273afb, + 0x2741b9, + 0x274dcc, + 0x275526, + 0x275953, + 0x2764f2, + 0x276887, + 0x27706d, + 0x277c18, + 0x2786e9, + 0x278a9c, + 0x279276, + 0x279e03, + 0x27a3a2, + 0x27afd7, + 0x27b73d, + 0x27bb48, + 0x27c00a, + 0x27cc7f, + 0x27d495, + 0x27d8e0, + 0x27e541, + 0x27e934, + 0x27f1de, + 0x27fdab, + 0x2800c7, + 0x280cb2, + 0x281458, + 0x28182d, + 0x28258c, + 0x2829f9, + 0x283113, + 0x283d66, + 0x284624, + 0x284a51, + 0x2852bb, + 0x285ece, + 0x28636f, + 0x286f1a, + 0x2877f0, + 0x287b85, + 0x288174, + 0x288d01, + 0x2895eb, + 0x28999e, + 0x28a43f, + 0x28a84a, + 0x28b0a0, + 0x28bcd5, + 0x28c797, + 0x28cbe2, + 0x28d308, + 0x28df7d, + 0x28e2dc, + 0x28eea9, + 0x28f643, + 0x28fa36, + 0x2903a1, + 0x290fd4, + 0x29173e, + 0x291b4b, + 0x2926ea, + 0x292a9f, + 0x293275, + 0x293e00, + 0x294542, + 0x294937, + 0x2951dd, + 0x295da8, + 0x296009, + 0x296c7c, + 0x297496, + 0x2978e3, + 0x298212, + 0x298e67, + 0x29968d, + 0x299af8, + 0x29a759, + 0x29ab2c, + 0x29b3c6, + 0x29bfb3, + 0x29c4f1, + 0x29c884, + 0x29d06e, + 0x29dc1b, + 0x29e1ba, + 0x29edcf, + 0x29f525, + 0x29f950, + 0x2a060b, + 0x2a0a7e, + 0x2a1294, + 0x2a1ee1, + 0x2a2340, + 0x2a2f35, + 0x2a37df, + 0x2a3baa, + 0x2a40e8, + 0x2a4c9d, + 0x2a5477, + 0x2a5802, + 0x2a65a3, + 0x2a69d6, + 0x2a713c, + 0x2a7d49, + 0x2a87b8, + 0x2a8bcd, + 0x2a9327, + 0x2a9f52, + 0x2aa2f3, + 0x2aae86, + 0x2ab66c, + 0x2aba19, + 0x2ac15b, + 0x2acd2e, + 0x2ad5c4, + 0x2ad9b1, + 0x2ae410, + 0x2ae865, + 0x2af08f, + 0x2afcfa, + 0x2b056d, + 0x2b0918, + 0x2b11f2, + 0x2b1d87, + 0x2b2026, + 0x2b2c53, + 0x2b34b9, + 0x2b38cc, + 0x2b438e, + 0x2b4ffb, + 0x2b5711, + 0x2b5b64, + 0x2b66c5, + 0x2b6ab0, + 0x2b725a, + 0x2b7e2f, + 0x2b84de, + 0x2b88ab, + 0x2b9041, + 0x2b9c34, + 0x2ba195, + 0x2bade0, + 0x2bb50a, + 0x2bb97f, + 0x2bc23d, + 0x2bce48, + 0x2bd6a2, + 0x2bdad7, + 0x2be776, + 0x2beb03, + 0x2bf3e9, + 0x2bff9c, + 0x2c012a, + 0x2c0d5f, + 0x2c15b5, + 0x2c19c0, + 0x2c2461, + 0x2c2814, + 0x2c30fe, + 0x2c3c8b, + 0x2c47c9, + 0x2c4bbc, + 0x2c5356, + 0x2c5f23, + 0x2c6282, + 0x2c6ef7, + 0x2c761d, + 0x2c7a68, + 0x2c8099, + 0x2c8cec, + 0x2c9406, + 0x2c9873, + 0x2ca5d2, + 0x2ca9a7, + 0x2cb14d, + 0x2cbd38, + 0x2cc67a, + 0x2cca0f, + 0x2cd2e5, + 0x2cde90, + 0x2ce331, + 0x2cef44, + 0x2cf7ae, + 0x2cfbdb, + 0x2d024c, + 0x2d0e39, + 0x2d16d3, + 0x2d1aa6, + 0x2d2707, + 0x2d2b72, + 0x2d3398, + 0x2d3fed, + 0x2d44af, + 0x2d48da, + 0x2d5030, + 0x2d5c45, + 0x2d61e4, + 0x2d6d91, + 0x2d757b, + 0x2d790e, + 0x2d83ff, + 0x2d8f8a, + 0x2d9760, + 0x2d9b15, + 0x2da6b4, + 0x2daac1, + 0x2db22b, + 0x2dbe5e, + 0x2dc51c, + 0x2dc969, + 0x2dd183, + 0x2dddf6, + 0x2de057, + 0x2dec22, + 0x2df4c8, + 0x2df8bd, + 0x2e07e6, + 0x2e0b93, + 0x2e1379, + 0x2e1f0c, + 0x2e22ad, + 0x2e2ed8, + 0x2e3632, + 0x2e3a47, + 0x2e4105, + 0x2e4d70, + 0x2e559a, + 0x2e59ef, + 0x2e644e, + 0x2e683b, + 0x2e70d1, + 0x2e7ca4, + 0x2e8655, + 0x2e8a20, + 0x2e92ca, + 0x2e9ebf, + 0x2ea31e, + 0x2eaf6b, + 0x2eb781, + 0x2ebbf4, + 0x2ec0b6, + 0x2eccc3, + 0x2ed429, + 0x2ed85c, + 0x2ee5fd, + 0x2ee988, + 0x2ef162, + 0x2efd17, + 0x2f0480, + 0x2f08f5, + 0x2f101f, + 0x2f1c6a, + 0x2f21cb, + 0x2f2dbe, + 0x2f3554, + 0x2f3921, + 0x2f4263, + 0x2f4e16, + 0x2f56fc, + 0x2f5a89, + 0x2f6728, + 0x2f6b5d, + 0x2f73b7, + 0x2f7fc2, + 0x2f8533, + 0x2f8946, + 0x2f91ac, + 0x2f9dd9, + 0x2fa078, + 0x2fac0d, + 0x2fb4e7, + 0x2fb892, + 0x2fc3d0, + 0x2fcfa5, + 0x2fd74f, + 0x2fdb3a, + 0x2fe69b, + 0x2feaee, + 0x2ff204, + 0x2ffe71, + 0x3004a9, + 0x3008dc, + 0x301036, + 0x301c43, + 0x3021e2, + 0x302d97, + 0x30357d, + 0x303908, + 0x30424a, + 0x304e3f, + 0x3056d5, + 0x305aa0, + 0x306701, + 0x306b74, + 0x30739e, + 0x307feb, + 0x30851a, + 0x30896f, + 0x309185, + 0x309df0, + 0x30a051, + 0x30ac24, + 0x30b4ce, + 0x30b8bb, + 0x30c3f9, + 0x30cf8c, + 0x30d766, + 0x30db13, + 0x30e6b2, + 0x30eac7, + 0x30f22d, + 0x30fe58, + 0x3107cf, + 0x310bba, + 0x311350, + 0x311f25, + 0x312284, + 0x312ef1, + 0x31361b, + 0x313a6e, + 0x31412c, + 0x314d59, + 0x3155b3, + 0x3159c6, + 0x316467, + 0x316812, + 0x3170f8, + 0x317c8d, + 0x31867c, + 0x318a09, + 0x3192e3, + 0x319e96, + 0x31a337, + 0x31af42, + 0x31b7a8, + 0x31bbdd, + 0x31c09f, + 0x31ccea, + 0x31d400, + 0x31d875, + 0x31e5d4, + 0x31e9a1, + 0x31f14b, + 0x31fd3e, + 0x320265, + 0x320e10, + 0x3216fa, + 0x321a8f, + 0x32272e, + 0x322b5b, + 0x3233b1, + 0x323fc4, + 0x324486, + 0x3248f3, + 0x325019, + 0x325c6c, + 0x3261cd, + 0x326db8, + 0x327552, + 0x327927, + 0x3283d6, + 0x328fa3, + 0x329749, + 0x329b3c, + 0x32a69d, + 0x32aae8, + 0x32b202, + 0x32be77, + 0x32c535, + 0x32c940, + 0x32d1aa, + 0x32dddf, + 0x32e07e, + 0x32ec0b, + 0x32f4e1, + 0x32f894, + 0x330103, + 0x330d76, + 0x33159c, + 0x3319e9, + 0x332448, + 0x33283d, + 0x3330d7, + 0x333ca2, + 0x3347e0, + 0x334b95, + 0x33537f, + 0x335f0a, + 0x3362ab, + 0x336ede, + 0x337634, + 0x337a41, + 0x3380b0, + 0x338cc5, + 0x33942f, + 0x33985a, + 0x33a5fb, + 0x33a98e, + 0x33b164, + 0x33bd11, + 0x33c653, + 0x33ca26, + 0x33d2cc, + 0x33deb9, + 0x33e318, + 0x33ef6d, + 0x33f787, + 0x33fbf2, + 0x340544, + 0x340931, + 0x3411db, + 0x341dae, + 0x34200f, + 0x342c7a, + 0x343490, + 0x3438e5, + 0x3443a7, + 0x344fd2, + 0x345738, + 0x345b4d, + 0x3466ec, + 0x346a99, + 0x347273, + 0x347e06, + 0x3484f7, + 0x348882, + 0x349068, + 0x349c1d, + 0x34a1bc, + 0x34adc9, + 0x34b523, + 0x34b956, + 0x34c214, + 0x34ce61, + 0x34d68b, + 0x34dafe, + 0x34e75f, + 0x34eb2a, + 0x34f3c0, + 0x34ffb5, + 0x350622, + 0x350a57, + 0x3512bd, + 0x351ec8, + 0x352369, + 0x352f1c, + 0x3537f6, + 0x353b83, + 0x3540c1, + 0x354cb4, + 0x35545e, + 0x35582b, + 0x35658a, + 0x3569ff, + 0x357115, + 0x357d60, + 0x358791, + 0x358be4, + 0x35930e, + 0x359f7b, + 0x35a2da, + 0x35aeaf, + 0x35b645, + 0x35ba30, + 0x35c172, + 0x35cd07, + 0x35d5ed, + 0x35d998, + 0x35e439, + 0x35e84c, + 0x35f0a6, + 0x35fcd3, + 0x360388, + 0x360ffd, + 0x361717, + 0x361b62, + 0x3626c3, + 0x362ab6, + 0x36325c, + 0x363e29, + 0x36456b, + 0x36491e, + 0x3651f4, + 0x365d81, + 0x366020, + 0x366c55, + 0x3674bf, + 0x3678ca, + 0x36823b, + 0x368e4e, + 0x3696a4, + 0x369ad1, + 0x36a770, + 0x36ab05, + 0x36b3ef, + 0x36bf9a, + 0x36c4d8, + 0x36c8ad, + 0x36d047, + 0x36dc32, + 0x36e193, + 0x36ede6, + 0x36f50c, + 0x36f979, + 0x3700ee, + 0x370c9b, + 0x371471, + 0x371804, + 0x3725a5, + 0x3729d0, + 0x37313a, + 0x373d4f, + 0x37460d, + 0x374a78, + 0x375292, + 0x375ee7, + 0x376346, + 0x376f33, + 0x3777d9, + 0x377bac, + 0x37815d, + 0x378d28, + 0x3795c2, + 0x3799b7, + 0x37a416, + 0x37a863, + 0x37b089, + 0x37bcfc, + 0x37c7be, + 0x37cbcb, + 0x37d321, + 0x37df54, + 0x37e2f5, + 0x37ee80, + 0x37f66a, + 0x37fa1f, + 0x380773, + 0x380b06, + 0x3813ec, + 0x381f99, + 0x382238, + 0x382e4d, + 0x3836a7, + 0x383ad2, + 0x384190, + 0x384de5, + 0x38550f, + 0x38597a, + 0x3864db, + 0x3868ae, + 0x387044, + 0x387c31, + 0x3886c0, + 0x388ab5, + 0x38925f, + 0x389e2a, + 0x38a38b, + 0x38affe, + 0x38b714, + 0x38bb61, + 0x38c023, + 0x38cc56, + 0x38d4bc, + 0x38d8c9, + 0x38e568, + 0x38e91d, + 0x38f1f7, + 0x38fd82, + 0x390415, + 0x390860, + 0x39108a, + 0x391cff, + 0x39215e, + 0x392d2b, + 0x3935c1, + 0x3939b4, + 0x3942f6, + 0x394e83, + 0x395669, + 0x395a1c, + 0x3967bd, + 0x396bc8, + 0x397322, + 0x397f57, + 0x3985a6, + 0x3989d3, + 0x399139, + 0x399d4c, + 0x39a0ed, + 0x39ac98, + 0x39b472, + 0x39b807, + 0x39c345, + 0x39cf30, + 0x39d7da, + 0x39dbaf, + 0x39e60e, + 0x39ea7b, + 0x39f291, + 0x39fee4, + 0x3a01bf, + 0x3a0dca, + 0x3a1520, + 0x3a1955, + 0x3a24f4, + 0x3a2881, + 0x3a306b, + 0x3a3c1e, + 0x3a475c, + 0x3a4b29, + 0x3a53c3, + 0x3a5fb6, + 0x3a6217, + 0x3a6e62, + 0x3a7688, + 0x3a7afd, + 0x3a800c, + 0x3a8c79, + 0x3a9493, + 0x3a98e6, + 0x3aa547, + 0x3aa932, + 0x3ab1d8, + 0x3abdad, + 0x3ac6ef, + 0x3aca9a, + 0x3ad270, + 0x3ade05, + 0x3ae3a4, + 0x3aefd1, + 0x3af73b, + 0x3afb4e, + 0x3b02d9, + 0x3b0eac, + 0x3b1646, + 0x3b1a33, + 0x3b2792, + 0x3b2be7, + 0x3b330d, + 0x3b3f78, + 0x3b443a, + 0x3b484f, + 0x3b50a5, + 0x3b5cd0, + 0x3b6171, + 0x3b6d04, + 0x3b75ee, + 0x3b799b, + 0x3b836a, + 0x3b8f1f, + 0x3b97f5, + 0x3b9b80, + 0x3ba621, + 0x3baa54, + 0x3bb2be, + 0x3bbecb, + 0x3bc589, + 0x3bc9fc, + 0x3bd116, + 0x3bdd63, + 0x3be0c2, + 0x3becb7, + 0x3bf45d, + 0x3bf828, + 0x3c069e, + 0x3c0aeb, + 0x3c1201, + 0x3c1e74, + 0x3c23d5, + 0x3c2fa0, + 0x3c374a, + 0x3c3b3f, + 0x3c407d, + 0x3c4c08, + 0x3c54e2, + 0x3c5897, + 0x3c6536, + 0x3c6943, + 0x3c71a9, + 0x3c7ddc, + 0x3c872d, + 0x3c8b58, + 0x3c93b2, + 0x3c9fc7, + 0x3ca266, + 0x3cae13, + 0x3cb6f9, + 0x3cba8c, + 0x3cc1ce, + 0x3ccdbb, + 0x3cd551, + 0x3cd924, + 0x3ce485, + 0x3ce8f0, + 0x3cf01a, + 0x3cfc6f, + 0x3d05f8, + 0x3d098d, + 0x3d1167, + 0x3d1d12, + 0x3d20b3, + 0x3d2cc6, + 0x3d342c, + 0x3d3859, + 0x3d431b, + 0x3d4f6e, + 0x3d5784, + 0x3d5bf1, + 0x3d6650, + 0x3d6a25, + 0x3d72cf, + 0x3d7eba, + 0x3d844b, + 0x3d883e, + 0x3d90d4, + 0x3d9ca1, + 0x3da100, + 0x3dad75, + 0x3db59f, + 0x3db9ea, + 0x3dc2a8, + 0x3dcedd, + 0x3dd637, + 0x3dda42, + 0x3de7e3, + 0x3deb96, + 0x3df37c, + 0x3dff09, + 0x3e0052, + 0x3e0c27, + 0x3e14cd, + 0x3e18b8, + 0x3e2519, + 0x3e296c, + 0x3e3186, + 0x3e3df3, + 0x3e46b1, + 0x3e4ac4, + 0x3e522e, + 0x3e5e5b, + 0x3e63fa, + 0x3e6f8f, + 0x3e7765, + 0x3e7b10, + 0x3e81e1, + 0x3e8d94, + 0x3e957e, + 0x3e990b, + 0x3ea4aa, + 0x3ea8df, + 0x3eb035, + 0x3ebc40, + 0x3ec702, + 0x3ecb77, + 0x3ed39d, + 0x3edfe8, + 0x3ee249, + 0x3eee3c, + 0x3ef6d6, + 0x3efaa3, + 0x3f0334, + 0x3f0f41, + 0x3f17ab, + 0x3f1bde, + 0x3f267f, + 0x3f2a0a, + 0x3f32e0, + 0x3f3e95, + 0x3f45d7, + 0x3f49a2, + 0x3f5148, + 0x3f5d3d, + 0x3f609c, + 0x3f6ce9, + 0x3f7403, + 0x3f7876, + 0x3f8287, + 0x3f8ef2, + 0x3f9618, + 0x3f9a6d, + 0x3fa7cc, + 0x3fabb9, + 0x3fb353, + 0x3fbf26, + 0x3fc464, + 0x3fc811, + 0x3fd0fb, + 0x3fdc8e, + 0x3fe12f, + 0x3fed5a, + 0x3ff5b0, + 0x3ff9c5, + 0x40063a, + 0x400a4f, + 0x4012a5, + 0x401ed0, + 0x402371, + 0x402f04, + 0x4037ee, + 0x403b9b, + 0x4040d9, + 0x404cac, + 0x405446, + 0x405833, + 0x406592, + 0x4069e7, + 0x40710d, + 0x407d78, + 0x408789, + 0x408bfc, + 0x409316, + 0x409f63, + 0x40a2c2, + 0x40aeb7, + 0x40b65d, + 0x40ba28, + 0x40c16a, + 0x40cd1f, + 0x40d5f5, + 0x40d980, + 0x40e421, + 0x40e854, + 0x40f0be, + 0x40fccb, + 0x41055c, + 0x410929, + 0x4111c3, + 0x411db6, + 0x412017, + 0x412c62, + 0x413488, + 0x4138fd, + 0x4143bf, + 0x414fca, + 0x415720, + 0x415b55, + 0x4166f4, + 0x416a81, + 0x41726b, + 0x417e1e, + 0x4184ef, + 0x41889a, + 0x419070, + 0x419c05, + 0x41a1a4, + 0x41add1, + 0x41b53b, + 0x41b94e, + 0x41c20c, + 0x41ce79, + 0x41d693, + 0x41dae6, + 0x41e747, + 0x41eb32, + 0x41f3d8, + 0x41ffad, + 0x4200f6, + 0x420c83, + 0x421469, + 0x42181c, + 0x4225bd, + 0x4229c8, + 0x423122, + 0x423d57, + 0x424615, + 0x424a60, + 0x42528a, + 0x425eff, + 0x42635e, + 0x426f2b, + 0x4277c1, + 0x427bb4, + 0x428145, + 0x428d30, + 0x4295da, + 0x4299af, + 0x42a40e, + 0x42a87b, + 0x42b091, + 0x42bce4, + 0x42c7a6, + 0x42cbd3, + 0x42d339, + 0x42df4c, + 0x42e2ed, + 0x42ee98, + 0x42f672, + 0x42fa07, + 0x430390, + 0x430fe5, + 0x43170f, + 0x431b7a, + 0x4326db, + 0x432aae, + 0x433244, + 0x433e31, + 0x434573, + 0x434906, + 0x4351ec, + 0x435d99, + 0x436038, + 0x436c4d, + 0x4374a7, + 0x4378d2, + 0x438223, + 0x438e56, + 0x4396bc, + 0x439ac9, + 0x43a768, + 0x43ab1d, + 0x43b3f7, + 0x43bf82, + 0x43c4c0, + 0x43c8b5, + 0x43d05f, + 0x43dc2a, + 0x43e18b, + 0x43edfe, + 0x43f514, + 0x43f961, + 0x4407d7, + 0x440ba2, + 0x441348, + 0x441f3d, + 0x44229c, + 0x442ee9, + 0x443603, + 0x443a76, + 0x444134, + 0x444d41, + 0x4455ab, + 0x4459de, + 0x44647f, + 0x44680a, + 0x4470e0, + 0x447c95, + 0x448664, + 0x448a11, + 0x4492fb, + 0x449e8e, + 0x44a32f, + 0x44af5a, + 0x44b7b0, + 0x44bbc5, + 0x44c087, + 0x44ccf2, + 0x44d418, + 0x44d86d, + 0x44e5cc, + 0x44e9b9, + 0x44f153, + 0x44fd26, + 0x4504b1, + 0x4508c4, + 0x45102e, + 0x451c5b, + 0x4521fa, + 0x452d8f, + 0x453565, + 0x453910, + 0x454252, + 0x454e27, + 0x4556cd, + 0x455ab8, + 0x456719, + 0x456b6c, + 0x457386, + 0x457ff3, + 0x458502, + 0x458977, + 0x45919d, + 0x459de8, + 0x45a049, + 0x45ac3c, + 0x45b4d6, + 0x45b8a3, + 0x45c3e1, + 0x45cf94, + 0x45d77e, + 0x45db0b, + 0x45e6aa, + 0x45eadf, + 0x45f235, + 0x45fe40, + 0x46011b, + 0x460d6e, + 0x461584, + 0x4619f1, + 0x462450, + 0x462825, + 0x4630cf, + 0x463cba, + 0x4647f8, + 0x464b8d, + 0x465367, + 0x465f12, + 0x4662b3, + 0x466ec6, + 0x46762c, + 0x467a59, + 0x4680a8, + 0x468cdd, + 0x469437, + 0x469842, + 0x46a5e3, + 0x46a996, + 0x46b17c, + 0x46bd09, + 0x46c64b, + 0x46ca3e, + 0x46d2d4, + 0x46dea1, + 0x46e300, + 0x46ef75, + 0x46f79f, + 0x46fbea, + 0x47027d, + 0x470e08, + 0x4716e2, + 0x471a97, + 0x472736, + 0x472b43, + 0x4733a9, + 0x473fdc, + 0x47449e, + 0x4748eb, + 0x475001, + 0x475c74, + 0x4761d5, + 0x476da0, + 0x47754a, + 0x47793f, + 0x4783ce, + 0x478fbb, + 0x479751, + 0x479b24, + 0x47a685, + 0x47aaf0, + 0x47b21a, + 0x47be6f, + 0x47c52d, + 0x47c958, + 0x47d1b2, + 0x47ddc7, + 0x47e066, + 0x47ec13, + 0x47f4f9, + 0x47f88c, + 0x4805e0, + 0x480995, + 0x48117f, + 0x481d0a, + 0x4820ab, + 0x482cde, + 0x483434, + 0x483841, + 0x484303, + 0x484f76, + 0x48579c, + 0x485be9, + 0x486648, + 0x486a3d, + 0x4872d7, + 0x487ea2, + 0x488453, + 0x488826, + 0x4890cc, + 0x489cb9, + 0x48a118, + 0x48ad6d, + 0x48b587, + 0x48b9f2, + 0x48c2b0, + 0x48cec5, + 0x48d62f, + 0x48da5a, + 0x48e7fb, + 0x48eb8e, + 0x48f364, + 0x48ff11, + 0x490686, + 0x490af3, + 0x491219, + 0x491e6c, + 0x4923cd, + 0x492fb8, + 0x493752, + 0x493b27, + 0x494065, + 0x494c10, + 0x4954fa, + 0x49588f, + 0x49652e, + 0x49695b, + 0x4971b1, + 0x497dc4, + 0x498735, + 0x498b40, + 0x4993aa, + 0x499fdf, + 0x49a27e, + 0x49ae0b, + 0x49b6e1, + 0x49ba94, + 0x49c1d6, + 0x49cda3, + 0x49d549, + 0x49d93c, + 0x49e49d, + 0x49e8e8, + 0x49f002, + 0x49fc77, + 0x4a032c, + 0x4a0f59, + 0x4a17b3, + 0x4a1bc6, + 0x4a2667, + 0x4a2a12, + 0x4a32f8, + 0x4a3e8d, + 0x4a45cf, + 0x4a49ba, + 0x4a5150, + 0x4a5d25, + 0x4a6084, + 0x4a6cf1, + 0x4a741b, + 0x4a786e, + 0x4a829f, + 0x4a8eea, + 0x4a9600, + 0x4a9a75, + 0x4aa7d4, + 0x4aaba1, + 0x4ab34b, + 0x4abf3e, + 0x4ac47c, + 0x4ac809, + 0x4ad0e3, + 0x4adc96, + 0x4ae137, + 0x4aed42, + 0x4af5a8, + 0x4af9dd, + 0x4b004a, + 0x4b0c3f, + 0x4b14d5, + 0x4b18a0, + 0x4b2501, + 0x4b2974, + 0x4b319e, + 0x4b3deb, + 0x4b46a9, + 0x4b4adc, + 0x4b5236, + 0x4b5e43, + 0x4b63e2, + 0x4b6f97, + 0x4b777d, + 0x4b7b08, + 0x4b81f9, + 0x4b8d8c, + 0x4b9566, + 0x4b9913, + 0x4ba4b2, + 0x4ba8c7, + 0x4bb02d, + 0x4bbc58, + 0x4bc71a, + 0x4bcb6f, + 0x4bd385, + 0x4bdff0, + 0x4be251, + 0x4bee24, + 0x4bf6ce, + 0x4bfabb, + 0x4c040d, + 0x4c0878, + 0x4c1092, + 0x4c1ce7, + 0x4c2146, + 0x4c2d33, + 0x4c35d9, + 0x4c39ac, + 0x4c42ee, + 0x4c4e9b, + 0x4c5671, + 0x4c5a04, + 0x4c67a5, + 0x4c6bd0, + 0x4c733a, + 0x4c7f4f, + 0x4c85be, + 0x4c89cb, + 0x4c9121, + 0x4c9d54, + 0x4ca0f5, + 0x4cac80, + 0x4cb46a, + 0x4cb81f, + 0x4cc35d, + 0x4ccf28, + 0x4cd7c2, + 0x4cdbb7, + 0x4ce616, + 0x4cea63, + 0x4cf289, + 0x4cfefc, + 0x4d076b, + 0x4d0b1e, + 0x4d13f4, + 0x4d1f81, + 0x4d2220, + 0x4d2e55, + 0x4d36bf, + 0x4d3aca, + 0x4d4188, + 0x4d4dfd, + 0x4d5517, + 0x4d5962, + 0x4d64c3, + 0x4d68b6, + 0x4d705c, + 0x4d7c29, + 0x4d86d8, + 0x4d8aad, + 0x4d9247, + 0x4d9e32, + 0x4da393, + 0x4dafe6, + 0x4db70c, + 0x4dbb79, + 0x4dc03b, + 0x4dcc4e, + 0x4dd4a4, + 0x4dd8d1, + 0x4de570, + 0x4de905, + 0x4df1ef, + 0x4dfd9a, + 0x4e02c1, + 0x4e0eb4, + 0x4e165e, + 0x4e1a2b, + 0x4e278a, + 0x4e2bff, + 0x4e3315, + 0x4e3f60, + 0x4e4422, + 0x4e4857, + 0x4e50bd, + 0x4e5cc8, + 0x4e6169, + 0x4e6d1c, + 0x4e75f6, + 0x4e7983, + 0x4e8372, + 0x4e8f07, + 0x4e97ed, + 0x4e9b98, + 0x4ea639, + 0x4eaa4c, + 0x4eb2a6, + 0x4ebed3, + 0x4ec591, + 0x4ec9e4, + 0x4ed10e, + 0x4edd7b, + 0x4ee0da, + 0x4eecaf, + 0x4ef445, + 0x4ef830, + 0x4f01a7, + 0x4f0dd2, + 0x4f1538, + 0x4f194d, + 0x4f24ec, + 0x4f2899, + 0x4f3073, + 0x4f3c06, + 0x4f4744, + 0x4f4b31, + 0x4f53db, + 0x4f5fae, + 0x4f620f, + 0x4f6e7a, + 0x4f7690, + 0x4f7ae5, + 0x4f8014, + 0x4f8c61, + 0x4f948b, + 0x4f98fe, + 0x4fa55f, + 0x4fa92a, + 0x4fb1c0, + 0x4fbdb5, + 0x4fc6f7, + 0x4fca82, + 0x4fd268, + 0x4fde1d, + 0x4fe3bc, + 0x4fefc9, + 0x4ff723, + 0x4ffb56, + 0x50018e, + 0x500dfb, + 0x501511, + 0x501964, + 0x5024c5, + 0x5028b0, + 0x50305a, + 0x503c2f, + 0x50476d, + 0x504b18, + 0x5053f2, + 0x505f87, + 0x506226, + 0x506e53, + 0x5076b9, + 0x507acc, + 0x50803d, + 0x508c48, + 0x5094a2, + 0x5098d7, + 0x50a576, + 0x50a903, + 0x50b1e9, + 0x50bd9c, + 0x50c6de, + 0x50caab, + 0x50d241, + 0x50de34, + 0x50e395, + 0x50efe0, + 0x50f70a, + 0x50fb7f, + 0x5102e8, + 0x510e9d, + 0x511677, + 0x511a02, + 0x5127a3, + 0x512bd6, + 0x51333c, + 0x513f49, + 0x51440b, + 0x51487e, + 0x515094, + 0x515ce1, + 0x516140, + 0x516d35, + 0x5175df, + 0x5179aa, + 0x51835b, + 0x518f2e, + 0x5197c4, + 0x519bb1, + 0x51a610, + 0x51aa65, + 0x51b28f, + 0x51befa, + 0x51c5b8, + 0x51c9cd, + 0x51d127, + 0x51dd52, + 0x51e0f3, + 0x51ec86, + 0x51f46c, + 0x51f819, + 0x520742, + 0x520b37, + 0x5213dd, + 0x521fa8, + 0x522209, + 0x522e7c, + 0x523696, + 0x523ae3, + 0x5241a1, + 0x524dd4, + 0x52553e, + 0x52594b, + 0x5264ea, + 0x52689f, + 0x527075, + 0x527c00, + 0x5286f1, + 0x528a84, + 0x52926e, + 0x529e1b, + 0x52a3ba, + 0x52afcf, + 0x52b725, + 0x52bb50, + 0x52c012, + 0x52cc67, + 0x52d48d, + 0x52d8f8, + 0x52e559, + 0x52e92c, + 0x52f1c6, + 0x52fdb3, + 0x530424, + 0x530851, + 0x5310bb, + 0x531cce, + 0x53216f, + 0x532d1a, + 0x5335f0, + 0x533985, + 0x5342c7, + 0x534eb2, + 0x535658, + 0x535a2d, + 0x53678c, + 0x536bf9, + 0x537313, + 0x537f66, + 0x538597, + 0x5389e2, + 0x539108, + 0x539d7d, + 0x53a0dc, + 0x53aca9, + 0x53b443, + 0x53b836, + 0x53c374, + 0x53cf01, + 0x53d7eb, + 0x53db9e, + 0x53e63f, + 0x53ea4a, + 0x53f2a0, + 0x53fed5, + 0x540063, + 0x540c16, + 0x5414fc, + 0x541889, + 0x542528, + 0x54295d, + 0x5431b7, + 0x543dc2, + 0x544680, + 0x544af5, + 0x54521f, + 0x545e6a, + 0x5463cb, + 0x546fbe, + 0x547754, + 0x547b21, + 0x5481d0, + 0x548da5, + 0x54954f, + 0x54993a, + 0x54a49b, + 0x54a8ee, + 0x54b004, + 0x54bc71, + 0x54c733, + 0x54cb46, + 0x54d3ac, + 0x54dfd9, + 0x54e278, + 0x54ee0d, + 0x54f6e7, + 0x54fa92, + 0x550305, + 0x550f70, + 0x55179a, + 0x551bef, + 0x55264e, + 0x552a3b, + 0x5532d1, + 0x553ea4, + 0x5545e6, + 0x554993, + 0x555179, + 0x555d0c, + 0x5560ad, + 0x556cd8, + 0x557432, + 0x557847, + 0x5582b6, + 0x558ec3, + 0x559629, + 0x559a5c, + 0x55a7fd, + 0x55ab88, + 0x55b362, + 0x55bf17, + 0x55c455, + 0x55c820, + 0x55d0ca, + 0x55dcbf, + 0x55e11e, + 0x55ed6b, + 0x55f581, + 0x55f9f4, + 0x5606af, + 0x560ada, + 0x561230, + 0x561e45, + 0x5623e4, + 0x562f91, + 0x56377b, + 0x563b0e, + 0x56404c, + 0x564c39, + 0x5654d3, + 0x5658a6, + 0x566507, + 0x566972, + 0x567198, + 0x567ded, + 0x56871c, + 0x568b69, + 0x569383, + 0x569ff6, + 0x56a257, + 0x56ae22, + 0x56b6c8, + 0x56babd, + 0x56c1ff, + 0x56cd8a, + 0x56d560, + 0x56d915, + 0x56e4b4, + 0x56e8c1, + 0x56f02b, + 0x56fc5e, + 0x5705c9, + 0x5709bc, + 0x571156, + 0x571d23, + 0x572082, + 0x572cf7, + 0x57341d, + 0x573868, + 0x57432a, + 0x574f5f, + 0x5757b5, + 0x575bc0, + 0x576661, + 0x576a14, + 0x5772fe, + 0x577e8b, + 0x57847a, + 0x57880f, + 0x5790e5, + 0x579c90, + 0x57a131, + 0x57ad44, + 0x57b5ae, + 0x57b9db, + 0x57c299, + 0x57ceec, + 0x57d606, + 0x57da73, + 0x57e7d2, + 0x57eba7, + 0x57f34d, + 0x57ff38, + 0x580254, + 0x580e21, + 0x5816cb, + 0x581abe, + 0x58271f, + 0x582b6a, + 0x583380, + 0x583ff5, + 0x5844b7, + 0x5848c2, + 0x585028, + 0x585c5d, + 0x5861fc, + 0x586d89, + 0x587563, + 0x587916, + 0x5883e7, + 0x588f92, + 0x589778, + 0x589b0d, + 0x58a6ac, + 0x58aad9, + 0x58b233, + 0x58be46, + 0x58c504, + 0x58c971, + 0x58d19b, + 0x58ddee, + 0x58e04f, + 0x58ec3a, + 0x58f4d0, + 0x58f8a5, + 0x590132, + 0x590d47, + 0x5915ad, + 0x5919d8, + 0x592479, + 0x59280c, + 0x5930e6, + 0x593c93, + 0x5947d1, + 0x594ba4, + 0x59534e, + 0x595f3b, + 0x59629a, + 0x596eef, + 0x597605, + 0x597a70, + 0x598081, + 0x598cf4, + 0x59941e, + 0x59986b, + 0x59a5ca, + 0x59a9bf, + 0x59b155, + 0x59bd20, + 0x59c662, + 0x59ca17, + 0x59d2fd, + 0x59de88, + 0x59e329, + 0x59ef5c, + 0x59f7b6, + 0x59fbc3, + 0x5a0498, + 0x5a08ed, + 0x5a1007, + 0x5a1c72, + 0x5a21d3, + 0x5a2da6, + 0x5a354c, + 0x5a3939, + 0x5a427b, + 0x5a4e0e, + 0x5a56e4, + 0x5a5a91, + 0x5a6730, + 0x5a6b45, + 0x5a73af, + 0x5a7fda, + 0x5a852b, + 0x5a895e, + 0x5a91b4, + 0x5a9dc1, + 0x5aa060, + 0x5aac15, + 0x5ab4ff, + 0x5ab88a, + 0x5ac3c8, + 0x5acfbd, + 0x5ad757, + 0x5adb22, + 0x5ae683, + 0x5aeaf6, + 0x5af21c, + 0x5afe69, + 0x5b07fe, + 0x5b0b8b, + 0x5b1361, + 0x5b1f14, + 0x5b22b5, + 0x5b2ec0, + 0x5b362a, + 0x5b3a5f, + 0x5b411d, + 0x5b4d68, + 0x5b5582, + 0x5b59f7, + 0x5b6456, + 0x5b6823, + 0x5b70c9, + 0x5b7cbc, + 0x5b864d, + 0x5b8a38, + 0x5b92d2, + 0x5b9ea7, + 0x5ba306, + 0x5baf73, + 0x5bb799, + 0x5bbbec, + 0x5bc0ae, + 0x5bccdb, + 0x5bd431, + 0x5bd844, + 0x5be5e5, + 0x5be990, + 0x5bf17a, + 0x5bfd0f, + 0x5c03b9, + 0x5c0fcc, + 0x5c1726, + 0x5c1b53, + 0x5c26f2, + 0x5c2a87, + 0x5c326d, + 0x5c3e18, + 0x5c455a, + 0x5c492f, + 0x5c51c5, + 0x5c5db0, + 0x5c6011, + 0x5c6c64, + 0x5c748e, + 0x5c78fb, + 0x5c820a, + 0x5c8e7f, + 0x5c9695, + 0x5c9ae0, + 0x5ca741, + 0x5cab34, + 0x5cb3de, + 0x5cbfab, + 0x5cc4e9, + 0x5cc89c, + 0x5cd076, + 0x5cdc03, + 0x5ce1a2, + 0x5cedd7, + 0x5cf53d, + 0x5cf948, + 0x5d00df, + 0x5d0caa, + 0x5d1440, + 0x5d1835, + 0x5d2594, + 0x5d29e1, + 0x5d310b, + 0x5d3d7e, + 0x5d463c, + 0x5d4a49, + 0x5d52a3, + 0x5d5ed6, + 0x5d6377, + 0x5d6f02, + 0x5d77e8, + 0x5d7b9d, + 0x5d816c, + 0x5d8d19, + 0x5d95f3, + 0x5d9986, + 0x5da427, + 0x5da852, + 0x5db0b8, + 0x5dbccd, + 0x5dc78f, + 0x5dcbfa, + 0x5dd310, + 0x5ddf65, + 0x5de2c4, + 0x5deeb1, + 0x5df65b, + 0x5dfa2e, + 0x5e0575, + 0x5e0900, + 0x5e11ea, + 0x5e1d9f, + 0x5e203e, + 0x5e2c4b, + 0x5e34a1, + 0x5e38d4, + 0x5e4396, + 0x5e4fe3, + 0x5e5709, + 0x5e5b7c, + 0x5e66dd, + 0x5e6aa8, + 0x5e7242, + 0x5e7e37, + 0x5e84c6, + 0x5e88b3, + 0x5e9059, + 0x5e9c2c, + 0x5ea18d, + 0x5eadf8, + 0x5eb512, + 0x5eb967, + 0x5ec225, + 0x5ece50, + 0x5ed6ba, + 0x5edacf, + 0x5ee76e, + 0x5eeb1b, + 0x5ef3f1, + 0x5eff84, + 0x5f0613, + 0x5f0a66, + 0x5f128c, + 0x5f1ef9, + 0x5f2358, + 0x5f2f2d, + 0x5f37c7, + 0x5f3bb2, + 0x5f40f0, + 0x5f4c85, + 0x5f546f, + 0x5f581a, + 0x5f65bb, + 0x5f69ce, + 0x5f7124, + 0x5f7d51, + 0x5f87a0, + 0x5f8bd5, + 0x5f933f, + 0x5f9f4a, + 0x5fa2eb, + 0x5fae9e, + 0x5fb674, + 0x5fba01, + 0x5fc143, + 0x5fcd36, + 0x5fd5dc, + 0x5fd9a9, + 0x5fe408, + 0x5fe87d, + 0x5ff097, + 0x5ffce2, + 0x600527, + 0x600952, + 0x6011b8, + 0x601dcd, + 0x60206c, + 0x602c19, + 0x6034f3, + 0x603886, + 0x6043c4, + 0x604fb1, + 0x60575b, + 0x605b2e, + 0x60668f, + 0x606afa, + 0x607210, + 0x607e65, + 0x608494, + 0x6088e1, + 0x60900b, + 0x609c7e, + 0x60a1df, + 0x60adaa, + 0x60b540, + 0x60b935, + 0x60c277, + 0x60ce02, + 0x60d6e8, + 0x60da9d, + 0x60e73c, + 0x60eb49, + 0x60f3a3, + 0x60ffd6, + 0x610641, + 0x610a34, + 0x6112de, + 0x611eab, + 0x61230a, + 0x612f7f, + 0x613795, + 0x613be0, + 0x6140a2, + 0x614cd7, + 0x61543d, + 0x615848, + 0x6165e9, + 0x61699c, + 0x617176, + 0x617d03, + 0x6187f2, + 0x618b87, + 0x61936d, + 0x619f18, + 0x61a2b9, + 0x61aecc, + 0x61b626, + 0x61ba53, + 0x61c111, + 0x61cd64, + 0x61d58e, + 0x61d9fb, + 0x61e45a, + 0x61e82f, + 0x61f0c5, + 0x61fcb0, + 0x6203eb, + 0x620f9e, + 0x621774, + 0x621b01, + 0x6226a0, + 0x622ad5, + 0x62323f, + 0x623e4a, + 0x624508, + 0x62497d, + 0x625197, + 0x625de2, + 0x626043, + 0x626c36, + 0x6274dc, + 0x6278a9, + 0x628258, + 0x628e2d, + 0x6296c7, + 0x629ab2, + 0x62a713, + 0x62ab66, + 0x62b38c, + 0x62bff9, + 0x62c4bb, + 0x62c8ce, + 0x62d024, + 0x62dc51, + 0x62e1f0, + 0x62ed85, + 0x62f56f, + 0x62f91a, + 0x63008d, + 0x630cf8, + 0x631412, + 0x631867, + 0x6325c6, + 0x6329b3, + 0x633159, + 0x633d2c, + 0x63466e, + 0x634a1b, + 0x6352f1, + 0x635e84, + 0x636325, + 0x636f50, + 0x6377ba, + 0x637bcf, + 0x63813e, + 0x638d4b, + 0x6395a1, + 0x6399d4, + 0x63a475, + 0x63a800, + 0x63b0ea, + 0x63bc9f, + 0x63c7dd, + 0x63cba8, + 0x63d342, + 0x63df37, + 0x63e296, + 0x63eee3, + 0x63f609, + 0x63fa7c, + 0x6404ca, + 0x6408bf, + 0x641055, + 0x641c20, + 0x642181, + 0x642df4, + 0x64351e, + 0x64396b, + 0x644229, + 0x644e5c, + 0x6456b6, + 0x645ac3, + 0x646762, + 0x646b17, + 0x6473fd, + 0x647f88, + 0x648579, + 0x64890c, + 0x6491e6, + 0x649d93, + 0x64a032, + 0x64ac47, + 0x64b4ad, + 0x64b8d8, + 0x64c39a, + 0x64cfef, + 0x64d705, + 0x64db70, + 0x64e6d1, + 0x64eaa4, + 0x64f24e, + 0x64fe3b, + 0x6507ac, + 0x650bd9, + 0x651333, + 0x651f46, + 0x6522e7, + 0x652e92, + 0x653678, + 0x653a0d, + 0x65414f, + 0x654d3a, + 0x6555d0, + 0x6559a5, + 0x656404, + 0x656871, + 0x65709b, + 0x657cee, + 0x65861f, + 0x658a6a, + 0x659280, + 0x659ef5, + 0x65a354, + 0x65af21, + 0x65b7cb, + 0x65bbbe, + 0x65c0fc, + 0x65cc89, + 0x65d463, + 0x65d816, + 0x65e5b7, + 0x65e9c2, + 0x65f128, + 0x65fd5d, + 0x660206, + 0x660e73, + 0x661699, + 0x661aec, + 0x66274d, + 0x662b38, + 0x6633d2, + 0x663fa7, + 0x6644e5, + 0x664890, + 0x66507a, + 0x665c0f, + 0x6661ae, + 0x666ddb, + 0x667531, + 0x667944, + 0x6683b5, + 0x668fc0, + 0x66972a, + 0x669b5f, + 0x66a6fe, + 0x66aa8b, + 0x66b261, + 0x66be14, + 0x66c556, + 0x66c923, + 0x66d1c9, + 0x66ddbc, + 0x66e01d, + 0x66ec68, + 0x66f482, + 0x66f8f7, + 0x670160, + 0x670d15, + 0x6715ff, + 0x67198a, + 0x67242b, + 0x67285e, + 0x6730b4, + 0x673cc1, + 0x674783, + 0x674bf6, + 0x67531c, + 0x675f69, + 0x6762c8, + 0x676ebd, + 0x677657, + 0x677a22, + 0x6780d3, + 0x678ca6, + 0x67944c, + 0x679839, + 0x67a598, + 0x67a9ed, + 0x67b107, + 0x67bd72, + 0x67c630, + 0x67ca45, + 0x67d2af, + 0x67deda, + 0x67e37b, + 0x67ef0e, + 0x67f7e4, + 0x67fb91, + 0x6806fd, + 0x680a88, + 0x681262, + 0x681e17, + 0x6823b6, + 0x682fc3, + 0x683729, + 0x683b5c, + 0x68401e, + 0x684c6b, + 0x685481, + 0x6858f4, + 0x686555, + 0x686920, + 0x6871ca, + 0x687dbf, + 0x68874e, + 0x688b3b, + 0x6893d1, + 0x689fa4, + 0x68a205, + 0x68ae70, + 0x68b69a, + 0x68baef, + 0x68c1ad, + 0x68cdd8, + 0x68d532, + 0x68d947, + 0x68e4e6, + 0x68e893, + 0x68f079, + 0x68fc0c, + 0x69059b, + 0x6909ee, + 0x691104, + 0x691d71, + 0x6920d0, + 0x692ca5, + 0x69344f, + 0x69383a, + 0x694378, + 0x694f0d, + 0x6957e7, + 0x695b92, + 0x696633, + 0x696a46, + 0x6972ac, + 0x697ed9, + 0x698428, + 0x69885d, + 0x6990b7, + 0x699cc2, + 0x69a163, + 0x69ad16, + 0x69b5fc, + 0x69b989, + 0x69c2cb, + 0x69cebe, + 0x69d654, + 0x69da21, + 0x69e780, + 0x69ebf5, + 0x69f31f, + 0x69ff6a, + 0x6a0031, + 0x6a0c44, + 0x6a14ae, + 0x6a18db, + 0x6a257a, + 0x6a290f, + 0x6a31e5, + 0x6a3d90, + 0x6a46d2, + 0x6a4aa7, + 0x6a524d, + 0x6a5e38, + 0x6a6399, + 0x6a6fec, + 0x6a7706, + 0x6a7b73, + 0x6a8182, + 0x6a8df7, + 0x6a951d, + 0x6a9968, + 0x6aa4c9, + 0x6aa8bc, + 0x6ab056, + 0x6abc23, + 0x6ac761, + 0x6acb14, + 0x6ad3fe, + 0x6adf8b, + 0x6ae22a, + 0x6aee5f, + 0x6af6b5, + 0x6afac0, + 0x6b0357, + 0x6b0f22, + 0x6b17c8, + 0x6b1bbd, + 0x6b261c, + 0x6b2a69, + 0x6b3283, + 0x6b3ef6, + 0x6b45b4, + 0x6b49c1, + 0x6b512b, + 0x6b5d5e, + 0x6b60ff, + 0x6b6c8a, + 0x6b7460, + 0x6b7815, + 0x6b82e4, + 0x6b8e91, + 0x6b967b, + 0x6b9a0e, + 0x6ba7af, + 0x6babda, + 0x6bb330, + 0x6bbf45, + 0x6bc407, + 0x6bc872, + 0x6bd098, + 0x6bdced, + 0x6be14c, + 0x6bed39, + 0x6bf5d3, + 0x6bf9a6, + 0x6c0710, + 0x6c0b65, + 0x6c138f, + 0x6c1ffa, + 0x6c225b, + 0x6c2e2e, + 0x6c36c4, + 0x6c3ab1, + 0x6c41f3, + 0x6c4d86, + 0x6c556c, + 0x6c5919, + 0x6c64b8, + 0x6c68cd, + 0x6c7027, + 0x6c7c52, + 0x6c86a3, + 0x6c8ad6, + 0x6c923c, + 0x6c9e49, + 0x6ca3e8, + 0x6caf9d, + 0x6cb777, + 0x6cbb02, + 0x6cc040, + 0x6ccc35, + 0x6cd4df, + 0x6cd8aa, + 0x6ce50b, + 0x6ce97e, + 0x6cf194, + 0x6cfde1, + 0x6d0476, + 0x6d0803, + 0x6d10e9, + 0x6d1c9c, + 0x6d213d, + 0x6d2d48, + 0x6d35a2, + 0x6d39d7, + 0x6d4295, + 0x6d4ee0, + 0x6d560a, + 0x6d5a7f, + 0x6d67de, + 0x6d6bab, + 0x6d7341, + 0x6d7f34, + 0x6d85c5, + 0x6d89b0, + 0x6d915a, + 0x6d9d2f, + 0x6da08e, + 0x6dacfb, + 0x6db411, + 0x6db864, + 0x6dc326, + 0x6dcf53, + 0x6dd7b9, + 0x6ddbcc, + 0x6de66d, + 0x6dea18, + 0x6df2f2, + 0x6dfe87, + 0x6e01dc, + 0x6e0da9, + 0x6e1543, + 0x6e1936, + 0x6e2497, + 0x6e28e2, + 0x6e3008, + 0x6e3c7d, + 0x6e473f, + 0x6e4b4a, + 0x6e53a0, + 0x6e5fd5, + 0x6e6274, + 0x6e6e01, + 0x6e76eb, + 0x6e7a9e, + 0x6e806f, + 0x6e8c1a, + 0x6e94f0, + 0x6e9885, + 0x6ea524, + 0x6ea951, + 0x6eb1bb, + 0x6ebdce, + 0x6ec68c, + 0x6ecaf9, + 0x6ed213, + 0x6ede66, + 0x6ee3c7, + 0x6eefb2, + 0x6ef758, + 0x6efb2d, + 0x6f02ba, + 0x6f0ecf, + 0x6f1625, + 0x6f1a50, + 0x6f27f1, + 0x6f2b84, + 0x6f336e, + 0x6f3f1b, + 0x6f4459, + 0x6f482c, + 0x6f50c6, + 0x6f5cb3, + 0x6f6112, + 0x6f6d67, + 0x6f758d, + 0x6f79f8, + 0x6f8309, + 0x6f8f7c, + 0x6f9796, + 0x6f9be3, + 0x6fa642, + 0x6faa37, + 0x6fb2dd, + 0x6fbea8, + 0x6fc5ea, + 0x6fc99f, + 0x6fd175, + 0x6fdd00, + 0x6fe0a1, + 0x6fecd4, + 0x6ff43e, + 0x6ff84b, + 0x700293, + 0x700ee6, + 0x70160c, + 0x701a79, + 0x7027d8, + 0x702bad, + 0x703347, + 0x703f32, + 0x704470, + 0x704805, + 0x7050ef, + 0x705c9a, + 0x70613b, + 0x706d4e, + 0x7075a4, + 0x7079d1, + 0x708320, + 0x708f55, + 0x7097bf, + 0x709bca, + 0x70a66b, + 0x70aa1e, + 0x70b2f4, + 0x70be81, + 0x70c5c3, + 0x70c9b6, + 0x70d15c, + 0x70dd29, + 0x70e088, + 0x70ecfd, + 0x70f417, + 0x70f862, + 0x7101f5, + 0x710d80, + 0x71156a, + 0x71191f, + 0x7124be, + 0x7128cb, + 0x713021, + 0x713c54, + 0x714716, + 0x714b63, + 0x715389, + 0x715ffc, + 0x71625d, + 0x716e28, + 0x7176c2, + 0x717ab7, + 0x718046, + 0x718c33, + 0x7194d9, + 0x7198ac, + 0x71a50d, + 0x71a978, + 0x71b192, + 0x71bde7, + 0x71c6a5, + 0x71cad0, + 0x71d23a, + 0x71de4f, + 0x71e3ee, + 0x71ef9b, + 0x71f771, + 0x71fb04, + 0x72045f, + 0x72082a, + 0x7210c0, + 0x721cb5, + 0x722114, + 0x722d61, + 0x72358b, + 0x7239fe, + 0x7242bc, + 0x724ec9, + 0x725623, + 0x725a56, + 0x7267f7, + 0x726b82, + 0x727368, + 0x727f1d, + 0x7285ec, + 0x728999, + 0x729173, + 0x729d06, + 0x72a0a7, + 0x72acd2, + 0x72b438, + 0x72b84d, + 0x72c30f, + 0x72cf7a, + 0x72d790, + 0x72dbe5, + 0x72e644, + 0x72ea31, + 0x72f2db, + 0x72feae, + 0x730739, + 0x730b4c, + 0x7313a6, + 0x731fd3, + 0x732272, + 0x732e07, + 0x7336ed, + 0x733a98, + 0x7341da, + 0x734daf, + 0x735545, + 0x735930, + 0x736491, + 0x7368e4, + 0x73700e, + 0x737c7b, + 0x73868a, + 0x738aff, + 0x739215, + 0x739e60, + 0x73a3c1, + 0x73afb4, + 0x73b75e, + 0x73bb2b, + 0x73c069, + 0x73cc1c, + 0x73d4f6, + 0x73d883, + 0x73e522, + 0x73e957, + 0x73f1bd, + 0x73fdc8, + 0x74037e, + 0x740f0b, + 0x7417e1, + 0x741b94, + 0x742635, + 0x742a40, + 0x7432aa, + 0x743edf, + 0x74459d, + 0x7449e8, + 0x745102, + 0x745d77, + 0x7460d6, + 0x746ca3, + 0x747449, + 0x74783c, + 0x7482cd, + 0x748eb8, + 0x749652, + 0x749a27, + 0x74a786, + 0x74abf3, + 0x74b319, + 0x74bf6c, + 0x74c42e, + 0x74c85b, + 0x74d0b1, + 0x74dcc4, + 0x74e165, + 0x74ed10, + 0x74f5fa, + 0x74f98f, + 0x750018, + 0x750c6d, + 0x751487, + 0x7518f2, + 0x752553, + 0x752926, + 0x7531cc, + 0x753db9, + 0x7546fb, + 0x754a8e, + 0x755264, + 0x755e11, + 0x7563b0, + 0x756fc5, + 0x75772f, + 0x757b5a, + 0x7581ab, + 0x758dde, + 0x759534, + 0x759941, + 0x75a4e0, + 0x75a895, + 0x75b07f, + 0x75bc0a, + 0x75c748, + 0x75cb3d, + 0x75d3d7, + 0x75dfa2, + 0x75e203, + 0x75ee76, + 0x75f69c, + 0x75fae9, + 0x7605b2, + 0x7609c7, + 0x76112d, + 0x761d58, + 0x7620f9, + 0x762c8c, + 0x763466, + 0x763813, + 0x764351, + 0x764f24, + 0x7657ce, + 0x765bbb, + 0x76661a, + 0x766a6f, + 0x767285, + 0x767ef0, + 0x768401, + 0x768874, + 0x76909e, + 0x769ceb, + 0x76a14a, + 0x76ad3f, + 0x76b5d5, + 0x76b9a0, + 0x76c2e2, + 0x76ce97, + 0x76d67d, + 0x76da08, + 0x76e7a9, + 0x76ebdc, + 0x76f336, + 0x76ff43, + 0x7706d4, + 0x770aa1, + 0x77124b, + 0x771e3e, + 0x77239f, + 0x772fea, + 0x773700, + 0x773b75, + 0x774037, + 0x774c42, + 0x7754a8, + 0x7758dd, + 0x77657c, + 0x776909, + 0x7771e3, + 0x777d96, + 0x778767, + 0x778b12, + 0x7793f8, + 0x779f8d, + 0x77a22c, + 0x77ae59, + 0x77b6b3, + 0x77bac6, + 0x77c184, + 0x77cdf1, + 0x77d51b, + 0x77d96e, + 0x77e4cf, + 0x77e8ba, + 0x77f050, + 0x77fc25, + 0x780149, + 0x780d3c, + 0x7815d6, + 0x7819a3, + 0x782402, + 0x782877, + 0x78309d, + 0x783ce8, + 0x7847aa, + 0x784bdf, + 0x785335, + 0x785f40, + 0x7862e1, + 0x786e94, + 0x78767e, + 0x787a0b, + 0x7880fa, + 0x788c8f, + 0x789465, + 0x789810, + 0x78a5b1, + 0x78a9c4, + 0x78b12e, + 0x78bd5b, + 0x78c619, + 0x78ca6c, + 0x78d286, + 0x78def3, + 0x78e352, + 0x78ef27, + 0x78f7cd, + 0x78fbb8, + 0x79022f, + 0x790e5a, + 0x7916b0, + 0x791ac5, + 0x792764, + 0x792b11, + 0x7933fb, + 0x793f8e, + 0x7944cc, + 0x7948b9, + 0x795053, + 0x795c26, + 0x796187, + 0x796df2, + 0x797518, + 0x79796d, + 0x79839c, + 0x798fe9, + 0x799703, + 0x799b76, + 0x79a6d7, + 0x79aaa2, + 0x79b248, + 0x79be3d, + 0x79c57f, + 0x79c90a, + 0x79d1e0, + 0x79dd95, + 0x79e034, + 0x79ec41, + 0x79f4ab, + 0x79f8de, + 0x7a0785, + 0x7a0bf0, + 0x7a131a, + 0x7a1f6f, + 0x7a22ce, + 0x7a2ebb, + 0x7a3651, + 0x7a3a24, + 0x7a4166, + 0x7a4d13, + 0x7a55f9, + 0x7a598c, + 0x7a642d, + 0x7a6858, + 0x7a70b2, + 0x7a7cc7, + 0x7a8636, + 0x7a8a43, + 0x7a92a9, + 0x7a9edc, + 0x7aa37d, + 0x7aaf08, + 0x7ab7e2, + 0x7abb97, + 0x7ac0d5, + 0x7acca0, + 0x7ad44a, + 0x7ad83f, + 0x7ae59e, + 0x7ae9eb, + 0x7af101, + 0x7afd74, + 0x7b04e3, + 0x7b0896, + 0x7b107c, + 0x7b1c09, + 0x7b21a8, + 0x7b2ddd, + 0x7b3537, + 0x7b3942, + 0x7b4200, + 0x7b4e75, + 0x7b569f, + 0x7b5aea, + 0x7b674b, + 0x7b6b3e, + 0x7b73d4, + 0x7b7fa1, + 0x7b8550, + 0x7b8925, + 0x7b91cf, + 0x7b9dba, + 0x7ba01b, + 0x7bac6e, + 0x7bb484, + 0x7bb8f1, + 0x7bc3b3, + 0x7bcfc6, + 0x7bd72c, + 0x7bdb59, + 0x7be6f8, + 0x7bea8d, + 0x7bf267, + 0x7bfe12, + 0x7c00a4, + 0x7c0cd1, + 0x7c143b, + 0x7c184e, + 0x7c25ef, + 0x7c299a, + 0x7c3170, + 0x7c3d05, + 0x7c4647, + 0x7c4a32, + 0x7c52d8, + 0x7c5ead, + 0x7c630c, + 0x7c6f79, + 0x7c7793, + 0x7c7be6, + 0x7c8117, + 0x7c8d62, + 0x7c9588, + 0x7c99fd, + 0x7ca45c, + 0x7ca829, + 0x7cb0c3, + 0x7cbcb6, + 0x7cc7f4, + 0x7ccb81, + 0x7cd36b, + 0x7cdf1e, + 0x7ce2bf, + 0x7ceeca, + 0x7cf620, + 0x7cfa55, + 0x7d03c2, + 0x7d0fb7, + 0x7d175d, + 0x7d1b28, + 0x7d2689, + 0x7d2afc, + 0x7d3216, + 0x7d3e63, + 0x7d4521, + 0x7d4954, + 0x7d51be, + 0x7d5dcb, + 0x7d606a, + 0x7d6c1f, + 0x7d74f5, + 0x7d7880, + 0x7d8271, + 0x7d8e04, + 0x7d96ee, + 0x7d9a9b, + 0x7da73a, + 0x7dab4f, + 0x7db3a5, + 0x7dbfd0, + 0x7dc492, + 0x7dc8e7, + 0x7dd00d, + 0x7ddc78, + 0x7de1d9, + 0x7dedac, + 0x7df546, + 0x7df933, + 0x7e0668, + 0x7e0a1d, + 0x7e12f7, + 0x7e1e82, + 0x7e2323, + 0x7e2f56, + 0x7e37bc, + 0x7e3bc9, + 0x7e408b, + 0x7e4cfe, + 0x7e5414, + 0x7e5861, + 0x7e65c0, + 0x7e69b5, + 0x7e715f, + 0x7e7d2a, + 0x7e87db, + 0x7e8bae, + 0x7e9344, + 0x7e9f31, + 0x7ea290, + 0x7eaee5, + 0x7eb60f, + 0x7eba7a, + 0x7ec138, + 0x7ecd4d, + 0x7ed5a7, + 0x7ed9d2, + 0x7ee473, + 0x7ee806, + 0x7ef0ec, + 0x7efc99, + 0x7f050e, + 0x7f097b, + 0x7f1191, + 0x7f1de4, + 0x7f2045, + 0x7f2c30, + 0x7f34da, + 0x7f38af, + 0x7f43ed, + 0x7f4f98, + 0x7f5772, + 0x7f5b07, + 0x7f66a6, + 0x7f6ad3, + 0x7f7239, + 0x7f7e4c, + 0x7f84bd, + 0x7f88c8, + 0x7f9022, + 0x7f9c57, + 0x7fa1f6, + 0x7fad83, + 0x7fb569, + 0x7fb91c, + 0x7fc25e, + 0x7fce2b, + 0x7fd6c1, + 0x7fdab4, + 0x7fe715, + 0x7feb60, + 0x7ff38a, + 0x7fffff +}; diff --git a/src/gp_interleaver.c b/src/gp_interleaver.c new file mode 100644 index 0000000..26e74bf --- /dev/null +++ b/src/gp_interleaver.c @@ -0,0 +1,147 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: gp_interleaver.c + AUTHOR......: David Rowe + DATE CREATED: April 2018 + + Golden Prime Interleaver. My interpretation of "On the Analysis and + Design of Good Algebraic Interleavers", Xie et al,eq (5). + + See also octave/gp_interleaver.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include "gp_interleaver.h" + +/* + Choose b for Golden Prime Interleaver. b is chosen to be the + closest integer, which is relatively prime to N, to the Golden + section of N. + + Implemented with a LUT in C for convenience, Octave version + has a more complete implementation. If you find you need some more + numbers head back to the Octave choose_interleaver_b() function. +*/ + +static const int b_table[] = { + 56, 37, /* 700E: HRA_56_56 */ + 106, 67, /* 2020B: (112,56) partial protection */ + 112, 71, /* 700D: HRA_112_112 */ + 128, 83, /* datac0: H_128_256_5 */ + 192, 127, /* datac13: H_256_512_4, 128 data bits used */ + 210, 131, /* 2020: HRAb_396_504 with 312 data bits used */ + 736, 457, /* datac4: H_1024_2048_4f, 448 data bits used */ + 1024, 641, /* datac3: H_1024_2048_4f */ + 1290, 797, /* datac2: H2064_516_sparse */ + 4096, 2531 /* datac1: H_4096_8192_3d */ +}; + +int choose_interleaver_b(int Nbits) +{ + int i; + for(i=0; i> 1; + interleaved_frame[i*2+1] = temp[i] & 1; + } +} + +void gp_deinterleave_bits(char frame[], char interleaved_frame[], int Nbits) +{ + char temp[Nbits]; + int b = choose_interleaver_b(Nbits); + int i,j; + + for (i=0; i> 1; + frame[i*2 + 1] = temp[i] & 1; + } +} diff --git a/src/gp_interleaver.h b/src/gp_interleaver.h new file mode 100644 index 0000000..e49d9ca --- /dev/null +++ b/src/gp_interleaver.h @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: gp_interleaver.h + AUTHOR......: David Rowe + DATE CREATED: April 2018 + + Golden Prime Interleaver. My interprestation of "On the Analysis and + Design of Good Algebraic Interleavers", Xie et al,eq (5). + + See also octvae/gp_interleaver.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __GP_INTERLEAVER__ +#define __GP_INTERLEAVER__ + +#include "comp.h" + +void gp_interleave_comp(COMP interleaved_frame[], COMP frame[], int Nbits); +void gp_deinterleave_comp(COMP frame[], COMP interleaved_frame[], int Nbits); +void gp_interleave_float(float interleaved_frame[], float frame[], int Nbits); +void gp_deinterleave_float(float frame[], float interleaved_frame[], int Nbits); +void gp_interleave_bits(char interleaved_frame[], char frame[], int Nbits); +void gp_deinterleave_bits(char frame[], char interleaved_frame[], int Nbits); + +#endif diff --git a/src/hanning.h b/src/hanning.h new file mode 100644 index 0000000..81d88dc --- /dev/null +++ b/src/hanning.h @@ -0,0 +1,644 @@ +/* Generated by hanning_file() Octave function */ + +const float hanning[]={ + 0, + 2.4171e-05, + 9.66816e-05, + 0.000217525, + 0.000386689, + 0.000604158, + 0.00086991, + 0.00118392, + 0.00154616, + 0.00195659, + 0.00241517, + 0.00292186, + 0.00347661, + 0.00407937, + 0.00473008, + 0.00542867, + 0.00617507, + 0.00696922, + 0.00781104, + 0.00870045, + 0.00963736, + 0.0106217, + 0.0116533, + 0.0127322, + 0.0138581, + 0.0150311, + 0.0162509, + 0.0175175, + 0.0188308, + 0.0201906, + 0.0215968, + 0.0230492, + 0.0245478, + 0.0260923, + 0.0276826, + 0.0293186, + 0.0310001, + 0.032727, + 0.034499, + 0.036316, + 0.0381779, + 0.0400844, + 0.0420354, + 0.0440307, + 0.04607, + 0.0481533, + 0.0502802, + 0.0524506, + 0.0546643, + 0.056921, + 0.0592206, + 0.0615627, + 0.0639473, + 0.0663741, + 0.0688427, + 0.0713531, + 0.0739048, + 0.0764978, + 0.0791318, + 0.0818064, + 0.0845214, + 0.0872767, + 0.0900718, + 0.0929066, + 0.0957807, + 0.0986939, + 0.101646, + 0.104636, + 0.107665, + 0.110732, + 0.113836, + 0.116978, + 0.120156, + 0.123372, + 0.126624, + 0.129912, + 0.133235, + 0.136594, + 0.139989, + 0.143418, + 0.146881, + 0.150379, + 0.153911, + 0.157476, + 0.161074, + 0.164705, + 0.168368, + 0.172063, + 0.17579, + 0.179549, + 0.183338, + 0.187158, + 0.191008, + 0.194888, + 0.198798, + 0.202737, + 0.206704, + 0.2107, + 0.214724, + 0.218775, + 0.222854, + 0.226959, + 0.231091, + 0.235249, + 0.239432, + 0.243641, + 0.247874, + 0.252132, + 0.256414, + 0.260719, + 0.265047, + 0.269398, + 0.273772, + 0.278167, + 0.282584, + 0.287021, + 0.29148, + 0.295958, + 0.300456, + 0.304974, + 0.30951, + 0.314065, + 0.318638, + 0.323228, + 0.327835, + 0.332459, + 0.3371, + 0.341756, + 0.346427, + 0.351113, + 0.355814, + 0.360528, + 0.365256, + 0.369997, + 0.374751, + 0.379516, + 0.384293, + 0.389082, + 0.393881, + 0.398691, + 0.40351, + 0.408338, + 0.413176, + 0.418022, + 0.422876, + 0.427737, + 0.432605, + 0.43748, + 0.44236, + 0.447247, + 0.452138, + 0.457034, + 0.461935, + 0.466839, + 0.471746, + 0.476655, + 0.481568, + 0.486481, + 0.491397, + 0.496313, + 0.501229, + 0.506145, + 0.511061, + 0.515976, + 0.520889, + 0.5258, + 0.530708, + 0.535614, + 0.540516, + 0.545414, + 0.550308, + 0.555197, + 0.560081, + 0.564958, + 0.56983, + 0.574695, + 0.579552, + 0.584402, + 0.589244, + 0.594077, + 0.598901, + 0.603715, + 0.60852, + 0.613314, + 0.618097, + 0.622868, + 0.627628, + 0.632375, + 0.63711, + 0.641831, + 0.646538, + 0.651232, + 0.655911, + 0.660574, + 0.665222, + 0.669855, + 0.67447, + 0.679069, + 0.683651, + 0.688215, + 0.69276, + 0.697287, + 0.701795, + 0.706284, + 0.710752, + 0.7152, + 0.719627, + 0.724033, + 0.728418, + 0.73278, + 0.73712, + 0.741437, + 0.74573, + 0.75, + 0.754246, + 0.758467, + 0.762663, + 0.766833, + 0.770978, + 0.775097, + 0.779189, + 0.783254, + 0.787291, + 0.791301, + 0.795283, + 0.799236, + 0.80316, + 0.807055, + 0.810921, + 0.814756, + 0.81856, + 0.822334, + 0.826077, + 0.829788, + 0.833468, + 0.837115, + 0.840729, + 0.844311, + 0.847859, + 0.851374, + 0.854855, + 0.858301, + 0.861713, + 0.86509, + 0.868431, + 0.871737, + 0.875007, + 0.87824, + 0.881437, + 0.884598, + 0.887721, + 0.890806, + 0.893854, + 0.896864, + 0.899835, + 0.902768, + 0.905661, + 0.908516, + 0.911331, + 0.914106, + 0.916841, + 0.919536, + 0.92219, + 0.924804, + 0.927376, + 0.929907, + 0.932397, + 0.934845, + 0.93725, + 0.939614, + 0.941935, + 0.944213, + 0.946448, + 0.94864, + 0.950789, + 0.952894, + 0.954955, + 0.956972, + 0.958946, + 0.960874, + 0.962759, + 0.964598, + 0.966393, + 0.968142, + 0.969846, + 0.971505, + 0.973118, + 0.974686, + 0.976207, + 0.977683, + 0.979112, + 0.980495, + 0.981832, + 0.983122, + 0.984365, + 0.985561, + 0.986711, + 0.987813, + 0.988868, + 0.989876, + 0.990837, + 0.99175, + 0.992616, + 0.993434, + 0.994204, + 0.994927, + 0.995601, + 0.996228, + 0.996807, + 0.997337, + 0.99782, + 0.998255, + 0.998641, + 0.998979, + 0.999269, + 0.999511, + 0.999704, + 0.999849, + 0.999946, + 0.999994, + 0.999994, + 0.999946, + 0.999849, + 0.999704, + 0.999511, + 0.999269, + 0.998979, + 0.998641, + 0.998255, + 0.99782, + 0.997337, + 0.996807, + 0.996228, + 0.995601, + 0.994927, + 0.994204, + 0.993434, + 0.992616, + 0.99175, + 0.990837, + 0.989876, + 0.988868, + 0.987813, + 0.986711, + 0.985561, + 0.984365, + 0.983122, + 0.981832, + 0.980495, + 0.979112, + 0.977683, + 0.976207, + 0.974686, + 0.973118, + 0.971505, + 0.969846, + 0.968142, + 0.966393, + 0.964598, + 0.962759, + 0.960874, + 0.958946, + 0.956972, + 0.954955, + 0.952894, + 0.950789, + 0.94864, + 0.946448, + 0.944213, + 0.941935, + 0.939614, + 0.93725, + 0.934845, + 0.932397, + 0.929907, + 0.927376, + 0.924804, + 0.92219, + 0.919536, + 0.916841, + 0.914106, + 0.911331, + 0.908516, + 0.905661, + 0.902768, + 0.899835, + 0.896864, + 0.893854, + 0.890806, + 0.887721, + 0.884598, + 0.881437, + 0.87824, + 0.875007, + 0.871737, + 0.868431, + 0.86509, + 0.861713, + 0.858301, + 0.854855, + 0.851374, + 0.847859, + 0.844311, + 0.840729, + 0.837115, + 0.833468, + 0.829788, + 0.826077, + 0.822334, + 0.81856, + 0.814756, + 0.810921, + 0.807055, + 0.80316, + 0.799236, + 0.795283, + 0.791301, + 0.787291, + 0.783254, + 0.779189, + 0.775097, + 0.770978, + 0.766833, + 0.762663, + 0.758467, + 0.754246, + 0.75, + 0.74573, + 0.741437, + 0.73712, + 0.73278, + 0.728418, + 0.724033, + 0.719627, + 0.7152, + 0.710752, + 0.706284, + 0.701795, + 0.697287, + 0.69276, + 0.688215, + 0.683651, + 0.679069, + 0.67447, + 0.669855, + 0.665222, + 0.660574, + 0.655911, + 0.651232, + 0.646538, + 0.641831, + 0.63711, + 0.632375, + 0.627628, + 0.622868, + 0.618097, + 0.613314, + 0.60852, + 0.603715, + 0.598901, + 0.594077, + 0.589244, + 0.584402, + 0.579552, + 0.574695, + 0.56983, + 0.564958, + 0.560081, + 0.555197, + 0.550308, + 0.545414, + 0.540516, + 0.535614, + 0.530708, + 0.5258, + 0.520889, + 0.515976, + 0.511061, + 0.506145, + 0.501229, + 0.496313, + 0.491397, + 0.486481, + 0.481568, + 0.476655, + 0.471746, + 0.466839, + 0.461935, + 0.457034, + 0.452138, + 0.447247, + 0.44236, + 0.43748, + 0.432605, + 0.427737, + 0.422876, + 0.418022, + 0.413176, + 0.408338, + 0.40351, + 0.398691, + 0.393881, + 0.389082, + 0.384293, + 0.379516, + 0.374751, + 0.369997, + 0.365256, + 0.360528, + 0.355814, + 0.351113, + 0.346427, + 0.341756, + 0.3371, + 0.332459, + 0.327835, + 0.323228, + 0.318638, + 0.314065, + 0.30951, + 0.304974, + 0.300456, + 0.295958, + 0.29148, + 0.287021, + 0.282584, + 0.278167, + 0.273772, + 0.269398, + 0.265047, + 0.260719, + 0.256414, + 0.252132, + 0.247874, + 0.243641, + 0.239432, + 0.235249, + 0.231091, + 0.226959, + 0.222854, + 0.218775, + 0.214724, + 0.2107, + 0.206704, + 0.202737, + 0.198798, + 0.194888, + 0.191008, + 0.187158, + 0.183338, + 0.179549, + 0.17579, + 0.172063, + 0.168368, + 0.164705, + 0.161074, + 0.157476, + 0.153911, + 0.150379, + 0.146881, + 0.143418, + 0.139989, + 0.136594, + 0.133235, + 0.129912, + 0.126624, + 0.123372, + 0.120156, + 0.116978, + 0.113836, + 0.110732, + 0.107665, + 0.104636, + 0.101646, + 0.0986939, + 0.0957807, + 0.0929066, + 0.0900718, + 0.0872767, + 0.0845214, + 0.0818064, + 0.0791318, + 0.0764978, + 0.0739048, + 0.0713531, + 0.0688427, + 0.0663741, + 0.0639473, + 0.0615627, + 0.0592206, + 0.056921, + 0.0546643, + 0.0524506, + 0.0502802, + 0.0481533, + 0.04607, + 0.0440307, + 0.0420354, + 0.0400844, + 0.0381779, + 0.036316, + 0.034499, + 0.032727, + 0.0310001, + 0.0293186, + 0.0276826, + 0.0260923, + 0.0245478, + 0.0230492, + 0.0215968, + 0.0201906, + 0.0188308, + 0.0175175, + 0.0162509, + 0.0150311, + 0.0138581, + 0.0127322, + 0.0116533, + 0.0106217, + 0.00963736, + 0.00870045, + 0.00781104, + 0.00696922, + 0.00617507, + 0.00542867, + 0.00473008, + 0.00407937, + 0.00347661, + 0.00292186, + 0.00241517, + 0.00195659, + 0.00154616, + 0.00118392, + 0.00086991, + 0.000604158, + 0.000386689, + 0.000217525, + 9.66816e-05, + 2.4171e-05, + 0 +}; diff --git a/src/ht_coeff.h b/src/ht_coeff.h new file mode 100644 index 0000000..8e9f629 --- /dev/null +++ b/src/ht_coeff.h @@ -0,0 +1,264 @@ +/* Hilbert Transform FIR filter coeffs */ +/* Generated by make_hilb Octave script */ + +#define HT_N 257 + +COMP ht_coeff[]={ + {-0.000004,0.000000}, + {-0.000000,0.000008}, + {-0.000008,0.000000}, + {0.000000,0.000012}, + {-0.000013,0.000000}, + {0.000000,0.000014}, + {-0.000021,0.000000}, + {0.000000,0.000016}, + {-0.000032,0.000000}, + {-0.000000,0.000017}, + {-0.000045,0.000000}, + {0.000000,0.000015}, + {-0.000060,0.000000}, + {-0.000000,0.000009}, + {-0.000078,-0.000000}, + {-0.000000,-0.000001}, + {-0.000098,0.000000}, + {-0.000000,-0.000017}, + {-0.000119,0.000000}, + {-0.000000,-0.000040}, + {-0.000140,0.000000}, + {-0.000000,-0.000071}, + {-0.000159,0.000000}, + {0.000000,-0.000111}, + {-0.000174,0.000000}, + {-0.000000,-0.000160}, + {-0.000183,0.000000}, + {0.000000,-0.000219}, + {-0.000184,0.000000}, + {-0.000000,-0.000288}, + {-0.000173,-0.000000}, + {-0.000000,-0.000365}, + {-0.000147,-0.000000}, + {-0.000000,-0.000450}, + {-0.000103,0.000000}, + {0.000000,-0.000539}, + {-0.000038,0.000000}, + {-0.000000,-0.000630}, + {0.000052,-0.000000}, + {0.000000,-0.000719}, + {0.000168,0.000000}, + {0.000000,-0.000801}, + {0.000313,-0.000000}, + {0.000000,-0.000870}, + {0.000488,0.000000}, + {0.000000,-0.000918}, + {0.000693,-0.000000}, + {0.000000,-0.000940}, + {0.000927,-0.000000}, + {0.000000,-0.000927}, + {0.001186,-0.000000}, + {0.000000,-0.000871}, + {0.001466,-0.000000}, + {-0.000000,-0.000763}, + {0.001762,-0.000000}, + {0.000000,-0.000597}, + {0.002064,-0.000000}, + {-0.000000,-0.000364}, + {0.002363,-0.000000}, + {0.000000,-0.000060}, + {0.002646,-0.000000}, + {0.000000,0.000321}, + {0.002900,0.000000}, + {-0.000000,0.000782}, + {0.003109,0.000000}, + {-0.000000,0.001322}, + {0.003255,-0.000000}, + {0.000000,0.001940}, + {0.003322,-0.000000}, + {-0.000000,0.002630}, + {0.003291,-0.000000}, + {0.000000,0.003384}, + {0.003141,-0.000000}, + {-0.000000,0.004188}, + {0.002856,-0.000000}, + {-0.000000,0.005028}, + {0.002417,0.000000}, + {0.000000,0.005883}, + {0.001808,0.000000}, + {0.000000,0.006728}, + {0.001016,0.000000}, + {0.000000,0.007538}, + {0.000029,-0.000000}, + {-0.000000,0.008279}, + {-0.001160,-0.000000}, + {-0.000000,0.008919}, + {-0.002556,-0.000000}, + {0.000000,0.009418}, + {-0.004158,-0.000000}, + {-0.000000,0.009736}, + {-0.005962,-0.000000}, + {0.000000,0.009829}, + {-0.007957,-0.000000}, + {-0.000000,0.009653}, + {-0.010130,-0.000000}, + {-0.000000,0.009158}, + {-0.012459,-0.000000}, + {0.000000,0.008294}, + {-0.014922,0.000000}, + {-0.000000,0.007006}, + {-0.017489,-0.000000}, + {-0.000000,0.005234}, + {-0.020127,0.000000}, + {0.000000,0.002910}, + {-0.022800,-0.000000}, + {-0.000000,-0.000046}, + {-0.025469,-0.000000}, + {0.000000,-0.003735}, + {-0.028094,-0.000000}, + {0.000000,-0.008292}, + {-0.030631,-0.000000}, + {0.000000,-0.013906}, + {-0.033039,-0.000000}, + {0.000000,-0.020868}, + {-0.035278,0.000000}, + {-0.000000,-0.029645}, + {-0.037308,-0.000000}, + {-0.000000,-0.041052}, + {-0.039093,-0.000000}, + {0.000000,-0.056643}, + {-0.040601,0.000000}, + {-0.000000,-0.079776}, + {-0.041804,0.000000}, + {0.000000,-0.119232}, + {-0.042679,-0.000000}, + {-0.000000,-0.207305}, + {-0.043211,0.000000}, + {0.000000,-0.634978}, + {0.956610,0.000000}, + {0.000000,0.634978}, + {-0.043211,0.000000}, + {0.000000,0.207305}, + {-0.042679,0.000000}, + {0.000000,0.119232}, + {-0.041804,0.000000}, + {-0.000000,0.079776}, + {-0.040601,0.000000}, + {0.000000,0.056643}, + {-0.039093,0.000000}, + {-0.000000,0.041052}, + {-0.037308,0.000000}, + {-0.000000,0.029645}, + {-0.035278,0.000000}, + {0.000000,0.020868}, + {-0.033039,-0.000000}, + {0.000000,0.013906}, + {-0.030631,0.000000}, + {-0.000000,0.008292}, + {-0.028094,0.000000}, + {0.000000,0.003735}, + {-0.025469,0.000000}, + {-0.000000,0.000046}, + {-0.022800,-0.000000}, + {0.000000,-0.002910}, + {-0.020127,0.000000}, + {-0.000000,-0.005234}, + {-0.017489,-0.000000}, + {-0.000000,-0.007006}, + {-0.014922,0.000000}, + {-0.000000,-0.008294}, + {-0.012459,0.000000}, + {0.000000,-0.009158}, + {-0.010130,0.000000}, + {-0.000000,-0.009653}, + {-0.007957,0.000000}, + {-0.000000,-0.009829}, + {-0.005962,0.000000}, + {-0.000000,-0.009736}, + {-0.004158,-0.000000}, + {0.000000,-0.009418}, + {-0.002556,0.000000}, + {0.000000,-0.008919}, + {-0.001160,-0.000000}, + {-0.000000,-0.008279}, + {0.000029,0.000000}, + {-0.000000,-0.007538}, + {0.001016,-0.000000}, + {-0.000000,-0.006728}, + {0.001808,0.000000}, + {-0.000000,-0.005883}, + {0.002417,0.000000}, + {-0.000000,-0.005028}, + {0.002856,0.000000}, + {-0.000000,-0.004188}, + {0.003141,0.000000}, + {0.000000,-0.003384}, + {0.003291,-0.000000}, + {-0.000000,-0.002630}, + {0.003322,0.000000}, + {-0.000000,-0.001940}, + {0.003255,0.000000}, + {0.000000,-0.001322}, + {0.003109,0.000000}, + {0.000000,-0.000782}, + {0.002900,0.000000}, + {-0.000000,-0.000321}, + {0.002646,0.000000}, + {0.000000,0.000060}, + {0.002363,0.000000}, + {-0.000000,0.000364}, + {0.002064,0.000000}, + {0.000000,0.000597}, + {0.001762,-0.000000}, + {-0.000000,0.000763}, + {0.001466,-0.000000}, + {0.000000,0.000871}, + {0.001186,-0.000000}, + {-0.000000,0.000927}, + {0.000927,0.000000}, + {-0.000000,0.000940}, + {0.000693,0.000000}, + {0.000000,0.000918}, + {0.000488,0.000000}, + {-0.000000,0.000870}, + {0.000313,0.000000}, + {-0.000000,0.000801}, + {0.000168,0.000000}, + {0.000000,0.000719}, + {0.000052,-0.000000}, + {-0.000000,0.000630}, + {-0.000038,0.000000}, + {-0.000000,0.000539}, + {-0.000103,-0.000000}, + {0.000000,0.000450}, + {-0.000147,0.000000}, + {-0.000000,0.000365}, + {-0.000173,0.000000}, + {0.000000,0.000288}, + {-0.000184,0.000000}, + {-0.000000,0.000219}, + {-0.000183,0.000000}, + {0.000000,0.000160}, + {-0.000174,0.000000}, + {-0.000000,0.000111}, + {-0.000159,0.000000}, + {-0.000000,0.000071}, + {-0.000140,0.000000}, + {0.000000,0.000040}, + {-0.000119,0.000000}, + {0.000000,0.000017}, + {-0.000098,-0.000000}, + {0.000000,0.000001}, + {-0.000078,-0.000000}, + {0.000000,-0.000009}, + {-0.000060,-0.000000}, + {0.000000,-0.000015}, + {-0.000045,-0.000000}, + {-0.000000,-0.000017}, + {-0.000032,-0.000000}, + {0.000000,-0.000016}, + {-0.000021,-0.000000}, + {-0.000000,-0.000014}, + {-0.000013,-0.000000}, + {-0.000000,-0.000012}, + {-0.000008,-0.000000}, + {0.000000,-0.000008}, + {-0.000004,0.000000} +}; \ No newline at end of file diff --git a/src/interldpc.c b/src/interldpc.c new file mode 100644 index 0000000..b17e9b7 --- /dev/null +++ b/src/interldpc.c @@ -0,0 +1,317 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: interldpc.c + AUTHOR......: David Rowe + DATE CREATED: April 2018 + + Helper functions for LDPC-based waveforms. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + */ + +#include +#include +#include +#include +#include +#include + +#include "interldpc.h" +#include "ofdm_internal.h" +#include "mpdecode_core.h" +#include "gp_interleaver.h" + +void freedv_pack(unsigned char *bytes, unsigned char *bits, int nbits); +void freedv_unpack(unsigned char *bits, unsigned char *bytes, int nbits); +unsigned short freedv_crc16_unpacked(unsigned char *bits, int nbits); + +void set_up_ldpc_constants(struct LDPC *ldpc, int code_length, int parity_bits) { + /* following provided for convenience and to match Octave variable names */ + + /* these remain fixed */ + ldpc->ldpc_data_bits_per_frame = code_length - parity_bits; + ldpc->ldpc_coded_bits_per_frame = code_length; + + /* in the case there are some unused data bits, these may be + modified to be less that ldpc->ldpc_xxx versions above. We + place known bits in the unused data bit positions, which make + the code stronger, and allow us to mess with different speech + codec bit allocations without designing new LDPC codes. */ + + ldpc->data_bits_per_frame = ldpc->ldpc_data_bits_per_frame; + ldpc->coded_bits_per_frame = ldpc->ldpc_coded_bits_per_frame; + ldpc->protection_mode = LDPC_PROT_2020; +} + +void set_data_bits_per_frame(struct LDPC *ldpc, int new_data_bits_per_frame) { + ldpc->data_bits_per_frame = new_data_bits_per_frame; + ldpc->coded_bits_per_frame = ldpc->data_bits_per_frame + ldpc->NumberParityBits; +} + +/* 1' stuffing (code rate reduction) - tweak LDPC code setup for selected modes */ +void ldpc_mode_specific_setup(struct OFDM *ofdm, struct LDPC *ldpc) { + /* mode specific set up */ + if (!strcmp(ofdm->mode,"2020")) set_data_bits_per_frame(ldpc, 312); + if (!strcmp(ofdm->mode,"2020B")) { + set_data_bits_per_frame(ldpc, 156); + ldpc->protection_mode = LDPC_PROT_2020B; + } + if (!strcmp(ofdm->mode,"2020C")) set_data_bits_per_frame(ldpc, 156); + if (!strcmp(ofdm->mode,"datac4")) set_data_bits_per_frame(ldpc, 448); + if (!strcmp(ofdm->mode,"datac13")) set_data_bits_per_frame(ldpc, 128); +} + +/* LDPC encode frame - generate parity bits and a codeword, applying the selected + FEC protection scheme */ +void ldpc_encode_frame(struct LDPC *ldpc, int codeword[], unsigned char tx_bits_char[]) { + unsigned char pbits[ldpc->NumberParityBits]; + int codec_frame; + int i, j; + + unsigned char tx_bits_char_padded[ldpc->ldpc_data_bits_per_frame]; + + switch (ldpc->protection_mode) { + case LDPC_PROT_EQUAL: + assert(ldpc->data_bits_per_frame == ldpc->ldpc_data_bits_per_frame); + /* we have enough data bits to fill the codeword */ + encode(ldpc, tx_bits_char, pbits); + break; + + case LDPC_PROT_2020: + /* not all data bits in codeword used, so set them to known values */ + memcpy(tx_bits_char_padded, tx_bits_char, ldpc->data_bits_per_frame); + for (i = ldpc->data_bits_per_frame; i < ldpc->ldpc_data_bits_per_frame; i++) + tx_bits_char_padded[i] = 1; + encode(ldpc, tx_bits_char_padded, pbits); + break; + + case LDPC_PROT_2020B: + /* We only want to protect the stage 1 VQ data bits, 0..10 in + each 52 bit codec frame. There are 3 codec frames 3x52=156 + bits, and 56 parity bits. We only use 11*3 = 33 bits of + the LDPC codeword data bits, the rest are set to known + values. + */ + for(j=0,codec_frame=0; codec_frame<3; codec_frame++) + for(i=0; i<11; i++,j++) + tx_bits_char_padded[j] = tx_bits_char[codec_frame*52+i]; + assert(j == 33); + for (i = 33; i < ldpc->ldpc_data_bits_per_frame; i++) + tx_bits_char_padded[i] = 1; + encode(ldpc, tx_bits_char_padded, pbits); + + break; + + default: + assert(0); + } + + /* output codeword is concatenation of (used) data bits and parity + bits, we don't bother sending unused (known) data bits */ + for (i = 0; i < ldpc->data_bits_per_frame; i++) codeword[i] = tx_bits_char[i]; + for (j = 0; j < ldpc->NumberParityBits; i++, j++) codeword[i] = pbits[j]; +} + +void qpsk_modulate_frame(COMP tx_symbols[], int codeword[], int n) { + int s, i; + int dibit[2]; + complex float qpsk_symb; + + for (s = 0, i = 0; i < n; s += 2, i++) { + dibit[0] = codeword[s + 1] & 0x1; + dibit[1] = codeword[s] & 0x1; + qpsk_symb = qpsk_mod(dibit); + tx_symbols[i].real = crealf(qpsk_symb); + tx_symbols[i].imag = cimagf(qpsk_symb); + } +} + +/* run LDPC decoder, taking into account the FEC protection scheme */ +void ldpc_decode_frame(struct LDPC *ldpc, int *parityCheckCount, int *iter, uint8_t out_char[], float llr[]) { + float llr_full_codeword[ldpc->ldpc_coded_bits_per_frame]; + int unused_data_bits = ldpc->ldpc_data_bits_per_frame - ldpc->data_bits_per_frame; + uint8_t out_char_ldpc[ldpc->coded_bits_per_frame]; + int i,j; + int codec_frame; + + switch (ldpc->protection_mode) { + case LDPC_PROT_EQUAL: + /* Equal protection all data bits in codeword + (e.g. 700D/700E), works well with rate 0.5 codes */ + assert(ldpc->data_bits_per_frame == ldpc->ldpc_data_bits_per_frame); + *iter = run_ldpc_decoder(ldpc, out_char, llr, parityCheckCount); + break; + case LDPC_PROT_2020: + /* some data bits in codeword unused, effectively + decreasing code rate and making FEC more powerful + (without having to design a new code) */ + for (i = 0; i < ldpc->data_bits_per_frame; i++) + llr_full_codeword[i] = llr[i]; + // known bits ... so really likely + for (i = ldpc->data_bits_per_frame; i < ldpc->ldpc_data_bits_per_frame; i++) + llr_full_codeword[i] = -100.0f; + // parity bits at end + for (i = ldpc->ldpc_data_bits_per_frame; i < ldpc->ldpc_coded_bits_per_frame; i++) + llr_full_codeword[i] = llr[i - unused_data_bits]; + *iter = run_ldpc_decoder(ldpc, out_char, llr_full_codeword, parityCheckCount); + break; + case LDPC_PROT_2020B: + /* 2020B waveform, with unequal error protection. Only the + stage1 VQ index of each LPCNet vocoder frames is + protected. In this case the FEC codeword is much smaller + than the payload data. */ + + // set up LDPC codeword + for(j=0,codec_frame=0; codec_frame<3; codec_frame++) + for(i=0; i<11; i++,j++) + llr_full_codeword[j] = llr[codec_frame*52+i]; + // set known LDPC codeword data bits + for (i = 33; i < ldpc->ldpc_data_bits_per_frame; i++) + llr_full_codeword[i] = -100; + // parity bits at end + for (i=0; iNumberParityBits; i++) + llr_full_codeword[ldpc->ldpc_data_bits_per_frame+i] = llr[ldpc->data_bits_per_frame+i]; + *iter = run_ldpc_decoder(ldpc, out_char_ldpc, llr_full_codeword, parityCheckCount); + + // pass through received data bits, replacing only decoded bits + for (i = 0; i < ldpc->data_bits_per_frame; i++) { + out_char[i] = llr[i] < 0; + } + for(j=0,codec_frame=0; codec_frame<3; codec_frame++) + for(i=0; i<11; i++,j++) + out_char[codec_frame*52+i] = out_char_ldpc[j]; + + break; + default: + assert(0); + } +} + + +/* Count uncoded (raw) bit errors over frame, note we don't include UW + of txt bits as this is done after we dissassemmble the frame */ + +int count_uncoded_errors(struct LDPC *ldpc, struct OFDM_CONFIG *config, COMP codeword_symbols_de[], int crc16) { + int i, Nerrs; + + int coded_syms_per_frame = ldpc->coded_bits_per_frame/config->bps; + int coded_bits_per_frame = ldpc->coded_bits_per_frame; + int data_bits_per_frame = ldpc->data_bits_per_frame; + int rx_bits_raw[coded_bits_per_frame]; + + /* generate test codeword from known payload data bits */ + + int test_codeword[coded_bits_per_frame]; + uint16_t r[data_bits_per_frame]; + uint8_t tx_bits[data_bits_per_frame]; + + ofdm_rand(r, data_bits_per_frame); + + for (i = 0; i < data_bits_per_frame; i++) { + tx_bits[i] = r[i] > 16384; + } + if (crc16) { + uint16_t tx_crc16 = freedv_crc16_unpacked(tx_bits, data_bits_per_frame - 16); + uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; + freedv_unpack(tx_bits + data_bits_per_frame - 16, tx_crc16_bytes, 16); + } + ldpc_encode_frame(ldpc, test_codeword, tx_bits); + + for (i = 0; i < coded_syms_per_frame; i++) { + int bits[2]; + complex float s = codeword_symbols_de[i].real + I * codeword_symbols_de[i].imag; + qpsk_demod(s, bits); + rx_bits_raw[config->bps * i] = bits[1]; + rx_bits_raw[config->bps * i + 1] = bits[0]; + } + + Nerrs = 0; + + for (i = 0; i < coded_bits_per_frame; i++) { + if (test_codeword[i] != rx_bits_raw[i]) Nerrs++; + } + + return Nerrs; +} + +int count_errors(uint8_t tx_bits[], uint8_t rx_bits[], int n) { + int i; + int Nerrs = 0; + + for (i = 0; i < n; i++) + if (tx_bits[i] != rx_bits[i]) Nerrs++; + + return Nerrs; +} + + +/* for unequal protection modes, count coded errors only in those bits that have been protected */ +void count_errors_protection_mode(int protection_mode, int *pNerrs, int *pNcoded, uint8_t tx_bits[], + uint8_t rx_bits[], int n) { + int i; + int Nerrs = 0; + int Ncoded = 0; + + switch (protection_mode) { + case LDPC_PROT_EQUAL: + case LDPC_PROT_2020: + for (i = 0; i < n; i++) { + if (tx_bits[i] != rx_bits[i]) Nerrs++; + Ncoded++; + } + break; + case LDPC_PROT_2020B: + /* We only protect bits 0..10 in each 52 bit LPCNet codec + frame. There are 3 codec frames 3x52=156 data bits, of + which only 11*3 = 33 bits are protected. + */ + for(int codec_frame=0; codec_frame<3; codec_frame++) { + for(i=0; i<11; i++) { + if (tx_bits[codec_frame*52+i] != rx_bits[codec_frame*52+i]) Nerrs++; + Ncoded++; + } + } + break; + default: + assert(0); + } + + *pNerrs = Nerrs; + *pNcoded = Ncoded; +} + +/* + Given an array of tx_bits, LDPC encodes, interleaves, and OFDM modulates + */ + +void ofdm_ldpc_interleave_tx(struct OFDM *ofdm, struct LDPC *ldpc, complex float tx_sams[], uint8_t tx_bits[], uint8_t txt_bits[]) { + int Npayloadsymsperpacket = ldpc->coded_bits_per_frame/ofdm->bps; + int Npayloadbitsperpacket = ldpc->coded_bits_per_frame; + int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); + int codeword[Npayloadbitsperpacket]; + COMP payload_symbols[Npayloadsymsperpacket]; + COMP payload_symbols_inter[Npayloadsymsperpacket]; + complex float tx_symbols[Nbitsperpacket/ ofdm->bps]; + + ldpc_encode_frame(ldpc, codeword, tx_bits); + qpsk_modulate_frame(payload_symbols, codeword, Npayloadsymsperpacket); + gp_interleave_comp(payload_symbols_inter, payload_symbols, Npayloadsymsperpacket); + ofdm_assemble_qpsk_modem_packet_symbols(ofdm, tx_symbols, payload_symbols_inter, txt_bits); + ofdm_txframe(ofdm, tx_sams, tx_symbols); +} diff --git a/src/interldpc.h b/src/interldpc.h new file mode 100644 index 0000000..2c18f62 --- /dev/null +++ b/src/interldpc.h @@ -0,0 +1,54 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: interldpc.h + AUTHOR......: David Rowe + DATE CREATED: April 2018 + + Helper functions for interleaved LDPC modems. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __INTERLDPC__ +#define __INTERLDPC__ + +#include + +#include "comp.h" +#include "mpdecode_core.h" +#include "ofdm_internal.h" + +/* LDPC unequal protection modes */ +#define LDPC_PROT_EQUAL 0 /* all bits in LDPC codeword used, e.g. 700D/700E */ +#define LDPC_PROT_2020 1 /* (504,396) but some data bits unused */ +#define LDPC_PROT_2020B 3 /* (112,56) but we only protect stage1 VQ in each LPCNet frame */ + +void set_up_ldpc_constants(struct LDPC *ldpc, int code_length, int parity_bits); +void set_data_bits_per_frame(struct LDPC *ldpc, int new_data_bits_per_frame); +void ldpc_mode_specific_setup(struct OFDM *ofdm, struct LDPC *ldpc); +void ldpc_encode_frame(struct LDPC *ldpc, int codeword[], unsigned char tx_bits_char[]); +void qpsk_modulate_frame(COMP tx_symbols[], int codeword[], int n); +void ldpc_decode_frame(struct LDPC *ldpc, int *parityCheckCount, int *iter, uint8_t out_char[], float llr[]); +int count_uncoded_errors(struct LDPC *ldpc, struct OFDM_CONFIG *config, COMP codeword_symbols_de[], int crc16); +int count_errors(uint8_t tx_bits[], uint8_t rx_bits[], int n); +void count_errors_protection_mode(int protection_mode, int *pNerrs, int *pNcoded, uint8_t tx_bits[], + uint8_t rx_bits[], int n); +void ofdm_ldpc_interleave_tx(struct OFDM *ofdm, struct LDPC *ldpc, complex float tx_sams[], uint8_t tx_bits[], uint8_t txt_bits[]); + +#endif diff --git a/src/interp.c b/src/interp.c new file mode 100644 index 0000000..772436e --- /dev/null +++ b/src/interp.c @@ -0,0 +1,331 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: interp.c + AUTHOR......: David Rowe + DATE CREATED: 9/10/09 + + Interpolation of 20ms frames to 10ms frames. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +#include "defines.h" +#include "interp.h" +#include "lsp.h" +#include "quantise.h" + +float sample_log_amp(MODEL *model, float w); + +#if 0 +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp() + AUTHOR......: David Rowe + DATE CREATED: 22/8/10 + + Given two frames described by model parameters 20ms apart, determines + the model parameters of the 10ms frame between them. Assumes + voicing is available for middle (interpolated) frame. Outputs are + amplitudes and Wo for the interpolated frame. + + This version can interpolate the amplitudes between two frames of + different Wo and L. + + This version works by log linear interpolation, but listening tests + showed it creates problems in background noise, e.g. hts2a and mmt1. + When this function is used (--dec mode) bg noise appears to be + amplitude modulated, and gets louder. The interp_lsp() function + below seems to do a better job. + +\*---------------------------------------------------------------------------*/ + +void interpolate( + MODEL *interp, /* interpolated model params */ + MODEL *prev, /* previous frames model params */ + MODEL *next, /* next frames model params */ + float Wo_min +) +{ + int l; + float w,log_amp; + + /* Wo depends on voicing of this and adjacent frames */ + + if (interp->voiced) { + if (prev->voiced && next->voiced) + interp->Wo = (prev->Wo + next->Wo)/2.0; + if (!prev->voiced && next->voiced) + interp->Wo = next->Wo; + if (prev->voiced && !next->voiced) + interp->Wo = prev->Wo; + } + else { + interp->Wo = Wo_min; + } + interp->L = PI/interp->Wo; + + /* Interpolate amplitudes using linear interpolation in log domain */ + + for(l=1; l<=interp->L; l++) { + w = l*interp->Wo; + log_amp = (sample_log_amp(prev, w) + sample_log_amp(next, w))/2.0; + interp->A[l] = powf(10.0, log_amp); + } +} +#endif + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: sample_log_amp() + AUTHOR......: David Rowe + DATE CREATED: 22/8/10 + + Samples the amplitude envelope at an arbitrary frequency w. Uses + linear interpolation in the log domain to sample between harmonic + amplitudes. + +\*---------------------------------------------------------------------------*/ + +float sample_log_amp(MODEL *model, float w) +{ + int m; + float f, log_amp; + + assert(w > 0.0); assert (w <= PI); + + m = floorf(w/model->Wo + 0.5); + f = (w - m*model->Wo)/w; + assert(f <= 1.0); + + if (m < 1) { + log_amp = f*log10f(model->A[1] + 1E-6); + } + else if ((m+1) > model->L) { + log_amp = (1.0-f)*log10f(model->A[model->L] + 1E-6); + } + else { + log_amp = (1.0-f)*log10f(model->A[m] + 1E-6) + + f*log10f(model->A[m+1] + 1E-6); + } + + return log_amp; +} + +#ifdef NOT_NEEDED + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_lsp() + AUTHOR......: David Rowe + DATE CREATED: 10 Nov 2010 + + Given two frames described by model parameters 20ms apart, determines + the model parameters of the 10ms frame between them. Assumes + voicing is available for middle (interpolated) frame. Outputs are + amplitudes and Wo for the interpolated frame. + + This version uses interpolation of LSPs, seems to do a better job + with bg noise. + +\*---------------------------------------------------------------------------*/ + +void interpolate_lsp( + codec2_fft_cfg fft_fwd_cfg, + MODEL *interp, /* interpolated model params */ + MODEL *prev, /* previous frames model params */ + MODEL *next, /* next frames model params */ + float *prev_lsps, /* previous frames LSPs */ + float prev_e, /* previous frames LPC energy */ + float *next_lsps, /* next frames LSPs */ + float next_e, /* next frames LPC energy */ + float *ak_interp, /* interpolated aks for this frame */ + float *lsps_interp, /* interpolated lsps for this frame */ + float Wo_min +) +{ + int i; + float e; + float snr; + + /* trap corner case where V est is probably wrong */ + + if (interp->voiced && !prev->voiced && !next->voiced) { + interp->voiced = 0; + } + + /* Wo depends on voicing of this and adjacent frames */ + + if (interp->voiced) { + if (prev->voiced && next->voiced) + interp->Wo = (prev->Wo + next->Wo)/2.0; + if (!prev->voiced && next->voiced) + interp->Wo = next->Wo; + if (prev->voiced && !next->voiced) + interp->Wo = prev->Wo; + } + else { + interp->Wo = Wo_min; + } + interp->L = PI/interp->Wo; + + //printf(" interp: prev_v: %d next_v: %d prev_Wo: %f next_Wo: %f\n", + // prev->voiced, next->voiced, prev->Wo, next->Wo); + //printf(" interp: Wo: %1.5f L: %d\n", interp->Wo, interp->L); + + /* interpolate LSPs */ + + for(i=0; iA[1]); +} +#endif + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_Wo() + AUTHOR......: David Rowe + DATE CREATED: 22 May 2012 + + Interpolates centre 10ms sample of Wo and L samples given two + samples 20ms apart. Assumes voicing is available for centre + (interpolated) frame. + +\*---------------------------------------------------------------------------*/ + +void interp_Wo( + MODEL *interp, /* interpolated model params */ + MODEL *prev, /* previous frames model params */ + MODEL *next, /* next frames model params */ + float Wo_min + ) +{ + interp_Wo2(interp, prev, next, 0.5, Wo_min); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_Wo2() + AUTHOR......: David Rowe + DATE CREATED: 22 May 2012 + + Weighted interpolation of two Wo samples. + +\*---------------------------------------------------------------------------*/ + +void interp_Wo2( + MODEL *interp, /* interpolated model params */ + MODEL *prev, /* previous frames model params */ + MODEL *next, /* next frames model params */ + float weight, + float Wo_min +) +{ + /* trap corner case where voicing est is probably wrong */ + + if (interp->voiced && !prev->voiced && !next->voiced) { + interp->voiced = 0; + } + + /* Wo depends on voicing of this and adjacent frames */ + + if (interp->voiced) { + if (prev->voiced && next->voiced) + interp->Wo = (1.0 - weight)*prev->Wo + weight*next->Wo; + if (!prev->voiced && next->voiced) + interp->Wo = next->Wo; + if (prev->voiced && !next->voiced) + interp->Wo = prev->Wo; + } + else { + interp->Wo = Wo_min; + } + interp->L = PI/interp->Wo; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_energy() + AUTHOR......: David Rowe + DATE CREATED: 22 May 2012 + + Interpolates centre 10ms sample of energy given two samples 20ms + apart. + +\*---------------------------------------------------------------------------*/ + +float interp_energy(float prev_e, float next_e) +{ + //return powf(10.0, (log10f(prev_e) + log10f(next_e))/2.0); + return sqrtf(prev_e * next_e); //looks better is math. identical and faster math +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_energy2() + AUTHOR......: David Rowe + DATE CREATED: 22 May 2012 + + Interpolates centre 10ms sample of energy given two samples 20ms + apart. + +\*---------------------------------------------------------------------------*/ + +float interp_energy2(float prev_e, float next_e, float weight) +{ + return POW10F((1.0 - weight)*log10f(prev_e) + weight*log10f(next_e)); + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interpolate_lsp_ver2() + AUTHOR......: David Rowe + DATE CREATED: 22 May 2012 + + Weighted interpolation of LSPs. + +\*---------------------------------------------------------------------------*/ + +void interpolate_lsp_ver2(float interp[], float prev[], float next[], float weight, int order) +{ + int i; + + for(i=0; i. +*/ + +#ifndef __INTERP__ +#define __INTERP__ + +#include "kiss_fft.h" + +void interpolate(MODEL *interp, MODEL *prev, MODEL *next); +void interpolate_lsp(kiss_fft_cfg fft_dec_cfg, + MODEL *interp, MODEL *prev, MODEL *next, + float *prev_lsps, float prev_e, + float *next_lsps, float next_e, + float *ak_interp, float *lsps_interp, float Wo_min); +void interp_Wo(MODEL *interp, MODEL *prev, MODEL *next, float Wo_min); +void interp_Wo2(MODEL *interp, MODEL *prev, MODEL *next, float weight, float Wo_min); +float interp_energy(float prev, float next); +float interp_energy2(float prev, float next, float weight); +void interpolate_lsp_ver2(float interp[], float prev[], float next[], float weight, int order); + +#endif diff --git a/src/kiss_fft.c b/src/kiss_fft.c new file mode 100644 index 0000000..a996095 --- /dev/null +++ b/src/kiss_fft.c @@ -0,0 +1,408 @@ +/* +Copyright (c) 2003-2010, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +#include "_kiss_fft_guts.h" +/* The guts header contains all the multiplication and addition macros that are defined for + fixed or floating point complex numbers. It also declares the kf_ internal functions. + */ + +static void kf_bfly2( + kiss_fft_cpx * Fout, + const size_t fstride, + const kiss_fft_cfg st, + int m + ) +{ + kiss_fft_cpx * Fout2; + kiss_fft_cpx * tw1 = st->twiddles; + kiss_fft_cpx t; + Fout2 = Fout + m; + do{ + C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2); + + C_MUL (t, *Fout2 , *tw1); + tw1 += fstride; + C_SUB( *Fout2 , *Fout , t ); + C_ADDTO( *Fout , t ); + ++Fout2; + ++Fout; + }while (--m); +} + +static void kf_bfly4( + kiss_fft_cpx * Fout, + const size_t fstride, + const kiss_fft_cfg st, + const size_t m + ) +{ + kiss_fft_cpx *tw1,*tw2,*tw3; + kiss_fft_cpx scratch[6]; + size_t k=m; + const size_t m2=2*m; + const size_t m3=3*m; + + + tw3 = tw2 = tw1 = st->twiddles; + + do { + C_FIXDIV(*Fout,4); C_FIXDIV(Fout[m],4); C_FIXDIV(Fout[m2],4); C_FIXDIV(Fout[m3],4); + + C_MUL(scratch[0],Fout[m] , *tw1 ); + C_MUL(scratch[1],Fout[m2] , *tw2 ); + C_MUL(scratch[2],Fout[m3] , *tw3 ); + + C_SUB( scratch[5] , *Fout, scratch[1] ); + C_ADDTO(*Fout, scratch[1]); + C_ADD( scratch[3] , scratch[0] , scratch[2] ); + C_SUB( scratch[4] , scratch[0] , scratch[2] ); + C_SUB( Fout[m2], *Fout, scratch[3] ); + tw1 += fstride; + tw2 += fstride*2; + tw3 += fstride*3; + C_ADDTO( *Fout , scratch[3] ); + + if(st->inverse) { + Fout[m].r = scratch[5].r - scratch[4].i; + Fout[m].i = scratch[5].i + scratch[4].r; + Fout[m3].r = scratch[5].r + scratch[4].i; + Fout[m3].i = scratch[5].i - scratch[4].r; + }else{ + Fout[m].r = scratch[5].r + scratch[4].i; + Fout[m].i = scratch[5].i - scratch[4].r; + Fout[m3].r = scratch[5].r - scratch[4].i; + Fout[m3].i = scratch[5].i + scratch[4].r; + } + ++Fout; + }while(--k); +} + +static void kf_bfly3( + kiss_fft_cpx * Fout, + const size_t fstride, + const kiss_fft_cfg st, + size_t m + ) +{ + size_t k=m; + const size_t m2 = 2*m; + kiss_fft_cpx *tw1,*tw2; + kiss_fft_cpx scratch[5]; + kiss_fft_cpx epi3; + epi3 = st->twiddles[fstride*m]; + + tw1=tw2=st->twiddles; + + do{ + C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3); + + C_MUL(scratch[1],Fout[m] , *tw1); + C_MUL(scratch[2],Fout[m2] , *tw2); + + C_ADD(scratch[3],scratch[1],scratch[2]); + C_SUB(scratch[0],scratch[1],scratch[2]); + tw1 += fstride; + tw2 += fstride*2; + + Fout[m].r = Fout->r - HALF_OF(scratch[3].r); + Fout[m].i = Fout->i - HALF_OF(scratch[3].i); + + C_MULBYSCALAR( scratch[0] , epi3.i ); + + C_ADDTO(*Fout,scratch[3]); + + Fout[m2].r = Fout[m].r + scratch[0].i; + Fout[m2].i = Fout[m].i - scratch[0].r; + + Fout[m].r -= scratch[0].i; + Fout[m].i += scratch[0].r; + + ++Fout; + }while(--k); +} + +static void kf_bfly5( + kiss_fft_cpx * Fout, + const size_t fstride, + const kiss_fft_cfg st, + int m + ) +{ + kiss_fft_cpx *Fout0,*Fout1,*Fout2,*Fout3,*Fout4; + int u; + kiss_fft_cpx scratch[13]; + kiss_fft_cpx * twiddles = st->twiddles; + kiss_fft_cpx *tw; + kiss_fft_cpx ya,yb; + ya = twiddles[fstride*m]; + yb = twiddles[fstride*2*m]; + + Fout0=Fout; + Fout1=Fout0+m; + Fout2=Fout0+2*m; + Fout3=Fout0+3*m; + Fout4=Fout0+4*m; + + tw=st->twiddles; + for ( u=0; ur += scratch[7].r + scratch[8].r; + Fout0->i += scratch[7].i + scratch[8].i; + + scratch[5].r = scratch[0].r + S_MUL(scratch[7].r,ya.r) + S_MUL(scratch[8].r,yb.r); + scratch[5].i = scratch[0].i + S_MUL(scratch[7].i,ya.r) + S_MUL(scratch[8].i,yb.r); + + scratch[6].r = S_MUL(scratch[10].i,ya.i) + S_MUL(scratch[9].i,yb.i); + scratch[6].i = -S_MUL(scratch[10].r,ya.i) - S_MUL(scratch[9].r,yb.i); + + C_SUB(*Fout1,scratch[5],scratch[6]); + C_ADD(*Fout4,scratch[5],scratch[6]); + + scratch[11].r = scratch[0].r + S_MUL(scratch[7].r,yb.r) + S_MUL(scratch[8].r,ya.r); + scratch[11].i = scratch[0].i + S_MUL(scratch[7].i,yb.r) + S_MUL(scratch[8].i,ya.r); + scratch[12].r = - S_MUL(scratch[10].i,yb.i) + S_MUL(scratch[9].i,ya.i); + scratch[12].i = S_MUL(scratch[10].r,yb.i) - S_MUL(scratch[9].r,ya.i); + + C_ADD(*Fout2,scratch[11],scratch[12]); + C_SUB(*Fout3,scratch[11],scratch[12]); + + ++Fout0;++Fout1;++Fout2;++Fout3;++Fout4; + } +} + +/* perform the butterfly for one stage of a mixed radix FFT */ +static void kf_bfly_generic( + kiss_fft_cpx * Fout, + const size_t fstride, + const kiss_fft_cfg st, + int m, + int p + ) +{ + int u,k,q1,q; + kiss_fft_cpx * twiddles = st->twiddles; + kiss_fft_cpx t; + int Norig = st->nfft; + + kiss_fft_cpx * scratch = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC(sizeof(kiss_fft_cpx)*p); + + for ( u=0; u=Norig) twidx-=Norig; + C_MUL(t,scratch[q] , twiddles[twidx] ); + C_ADDTO( Fout[ k ] ,t); + } + k += m; + } + } + KISS_FFT_TMP_FREE(scratch); +} + +static +void kf_work( + kiss_fft_cpx * Fout, + const kiss_fft_cpx * f, + const size_t fstride, + int in_stride, + int * factors, + const kiss_fft_cfg st + ) +{ + kiss_fft_cpx * Fout_beg=Fout; + const int p=*factors++; /* the radix */ + const int m=*factors++; /* stage's fft length/p */ + const kiss_fft_cpx * Fout_end = Fout + p*m; + +#ifdef _OPENMP + // use openmp extensions at the + // top-level (not recursive) + if (fstride==1 && p<=5) + { + int k; + + // execute the p different work units in different threads +# pragma omp parallel for + for (k=0;k floor_sqrt) + p = n; /* no more factors, skip to end */ + } + n /= p; + *facbuf++ = p; + *facbuf++ = n; + } while (n > 1); +} + +/* + * + * User-callable function to allocate all necessary storage space for the fft. + * + * The return value is a contiguous block of memory, allocated with malloc. As such, + * It can be freed with free(), rather than a kiss_fft-specific function. + * */ +kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem ) +{ + kiss_fft_cfg st=NULL; + size_t memneeded = sizeof(struct kiss_fft_state) + + sizeof(kiss_fft_cpx)*(nfft-1); /* twiddle factors*/ + + if ( lenmem==NULL ) { + st = ( kiss_fft_cfg)KISS_FFT_MALLOC( memneeded ); + }else{ + if (mem != NULL && *lenmem >= memneeded) + st = (kiss_fft_cfg)mem; + *lenmem = memneeded; + } + if (st) { + int i; + st->nfft=nfft; + st->inverse = inverse_fft; + + for (i=0;iinverse) + phase *= -1; + kf_cexp(st->twiddles+i, phase ); + } + + kf_factor(nfft,st->factors); + } + return st; +} + + +void kiss_fft_stride(kiss_fft_cfg st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int in_stride) +{ + if (fin == fout) { + //NOTE: this is not really an in-place FFT algorithm. + //It just performs an out-of-place FFT into a temp buffer + kiss_fft_cpx * tmpbuf = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC( sizeof(kiss_fft_cpx)*st->nfft); + kf_work(tmpbuf,fin,1,in_stride, st->factors,st); + memcpy(fout,tmpbuf,sizeof(kiss_fft_cpx)*st->nfft); + KISS_FFT_TMP_FREE(tmpbuf); + }else{ + kf_work( fout, fin, 1,in_stride, st->factors,st ); + } +} + +void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout) +{ + kiss_fft_stride(cfg,fin,fout,1); +} + + +void kiss_fft_cleanup(void) +{ + // nothing needed any more +} + +int kiss_fft_next_fast_size(int n) +{ + while(1) { + int m=n; + while ( (m%2) == 0 ) m/=2; + while ( (m%3) == 0 ) m/=3; + while ( (m%5) == 0 ) m/=5; + if (m<=1) + break; /* n is completely factorable by twos, threes, and fives */ + n++; + } + return n; +} diff --git a/src/kiss_fft.h b/src/kiss_fft.h new file mode 100644 index 0000000..c01722c --- /dev/null +++ b/src/kiss_fft.h @@ -0,0 +1,124 @@ +#ifndef KISS_FFT_H +#define KISS_FFT_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + ATTENTION! + If you would like a : + -- a utility that will handle the caching of fft objects + -- real-only (no imaginary time component ) FFT + -- a multi-dimensional FFT + -- a command-line utility to perform ffts + -- a command-line utility to perform fast-convolution filtering + + Then see kfc.h kiss_fftr.h kiss_fftnd.h fftutil.c kiss_fastfir.c + in the tools/ directory. +*/ + +#ifdef USE_SIMD +# include +# define kiss_fft_scalar __m128 +#define KISS_FFT_MALLOC(nbytes) _mm_malloc(nbytes,16) +#define KISS_FFT_FREE _mm_free +#else +#define KISS_FFT_MALLOC malloc +#define KISS_FFT_FREE free +#endif + + +#ifdef FIXED_POINT +#include +# if (FIXED_POINT == 32) +# define kiss_fft_scalar int32_t +# else +# define kiss_fft_scalar int16_t +# endif +#else +# ifndef kiss_fft_scalar +/* default is float */ +# define kiss_fft_scalar float +# endif +#endif + +typedef struct { + kiss_fft_scalar r; + kiss_fft_scalar i; +}kiss_fft_cpx; + +typedef struct kiss_fft_state* kiss_fft_cfg; + +/* + * kiss_fft_alloc + * + * Initialize a FFT (or IFFT) algorithm's cfg/state buffer. + * + * typical usage: kiss_fft_cfg mycfg=kiss_fft_alloc(1024,0,NULL,NULL); + * + * The return value from fft_alloc is a cfg buffer used internally + * by the fft routine or NULL. + * + * If lenmem is NULL, then kiss_fft_alloc will allocate a cfg buffer using malloc. + * The returned value should be free()d when done to avoid memory leaks. + * + * The state can be placed in a user supplied buffer 'mem': + * If lenmem is not NULL and mem is not NULL and *lenmem is large enough, + * then the function places the cfg in mem and the size used in *lenmem + * and returns mem. + * + * If lenmem is not NULL and ( mem is NULL or *lenmem is not large enough), + * then the function returns NULL and places the minimum cfg + * buffer size in *lenmem. + * */ + +kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem); + +/* + * kiss_fft(cfg,in_out_buf) + * + * Perform an FFT on a complex input buffer. + * for a forward FFT, + * fin should be f[0] , f[1] , ... ,f[nfft-1] + * fout will be F[0] , F[1] , ... ,F[nfft-1] + * Note that each element is complex and can be accessed like + f[k].r and f[k].i + * */ +void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout); + +/* + A more generic version of the above function. It reads its input from every Nth sample. + * */ +void kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride); + +/* If kiss_fft_alloc allocated a buffer, it is one contiguous + buffer and can be simply free()d when no longer needed*/ +#define kiss_fft_free free + +/* + Cleans up some memory that gets managed internally. Not necessary to call, but it might clean up + your compiler output to call this before you exit. +*/ +void kiss_fft_cleanup(void); + + +/* + * Returns the smallest integer k, such that k>=n and k has only "fast" factors (2,3,5) + */ +int kiss_fft_next_fast_size(int n); + +/* for real ffts, we need an even size */ +#define kiss_fftr_next_fast_size_real(n) \ + (kiss_fft_next_fast_size( ((n)+1)>>1)<<1) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/kiss_fftr.c b/src/kiss_fftr.c new file mode 100644 index 0000000..7cc0286 --- /dev/null +++ b/src/kiss_fftr.c @@ -0,0 +1,154 @@ +/* +Copyright (c) 2003-2004, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "kiss_fftr.h" +#include "_kiss_fft_guts.h" +#include "assert.h" + +struct kiss_fftr_state{ + kiss_fft_cfg substate; + kiss_fft_cpx * tmpbuf; + kiss_fft_cpx * super_twiddles; +#ifdef USE_SIMD + void * pad; +#endif +}; + +kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem) +{ + int i; + kiss_fftr_cfg st = NULL; + size_t subsize, memneeded; + + if (nfft & 1) { + fprintf(stderr,"Real FFT optimization must be even.\n"); + return NULL; + } + nfft >>= 1; + + kiss_fft_alloc (nfft, inverse_fft, NULL, &subsize); + memneeded = sizeof(struct kiss_fftr_state) + subsize + sizeof(kiss_fft_cpx) * ( nfft * 3 / 2); + + if (lenmem == NULL) { + st = (kiss_fftr_cfg) KISS_FFT_MALLOC (memneeded); + } else { + if (*lenmem >= memneeded) + st = (kiss_fftr_cfg) mem; + *lenmem = memneeded; + } + if (!st) + return NULL; + + st->substate = (kiss_fft_cfg) (st + 1); /*just beyond kiss_fftr_state struct */ + st->tmpbuf = (kiss_fft_cpx *) (((char *) st->substate) + subsize); + st->super_twiddles = st->tmpbuf + nfft; + kiss_fft_alloc(nfft, inverse_fft, st->substate, &subsize); + + for (i = 0; i < nfft/2; ++i) { + float phase = + -3.14159265358979323846264338327 * ((float) (i+1) / nfft + .5); + if (inverse_fft) + phase *= -1; + kf_cexp (st->super_twiddles+i,phase); + } + return st; +} + +void kiss_fftr(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata) +{ + /* input buffer timedata is stored row-wise */ + int k,ncfft; + kiss_fft_cpx fpnk,fpk,f1k,f2k,tw,tdc; + + assert(st->substate->inverse==0); + + ncfft = st->substate->nfft; + + /*perform the parallel fft of two real signals packed in real,imag*/ + kiss_fft( st->substate , (const kiss_fft_cpx*)timedata, st->tmpbuf ); + /* The real part of the DC element of the frequency spectrum in st->tmpbuf + * contains the sum of the even-numbered elements of the input time sequence + * The imag part is the sum of the odd-numbered elements + * + * The sum of tdc.r and tdc.i is the sum of the input time sequence. + * yielding DC of input time sequence + * The difference of tdc.r - tdc.i is the sum of the input (dot product) [1,-1,1,-1... + * yielding Nyquist bin of input time sequence + */ + + tdc.r = st->tmpbuf[0].r; + tdc.i = st->tmpbuf[0].i; + C_FIXDIV(tdc,2); + CHECK_OVERFLOW_OP(tdc.r ,+, tdc.i); + CHECK_OVERFLOW_OP(tdc.r ,-, tdc.i); + freqdata[0].r = tdc.r + tdc.i; + freqdata[ncfft].r = tdc.r - tdc.i; +#ifdef USE_SIMD + freqdata[ncfft].i = freqdata[0].i = _mm_set1_ps(0); +#else + freqdata[ncfft].i = freqdata[0].i = 0; +#endif + + for ( k=1;k <= ncfft/2 ; ++k ) { + fpk = st->tmpbuf[k]; + fpnk.r = st->tmpbuf[ncfft-k].r; + fpnk.i = - st->tmpbuf[ncfft-k].i; + C_FIXDIV(fpk,2); + C_FIXDIV(fpnk,2); + + C_ADD( f1k, fpk , fpnk ); + C_SUB( f2k, fpk , fpnk ); + C_MUL( tw , f2k , st->super_twiddles[k-1]); + + freqdata[k].r = HALF_OF(f1k.r + tw.r); + freqdata[k].i = HALF_OF(f1k.i + tw.i); + freqdata[ncfft-k].r = HALF_OF(f1k.r - tw.r); + freqdata[ncfft-k].i = HALF_OF(tw.i - f1k.i); + } +} + +void kiss_fftri(kiss_fftr_cfg st,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata) +{ + /* input buffer timedata is stored row-wise */ + int k, ncfft; + + assert(st->substate->inverse == 1); + + ncfft = st->substate->nfft; + + st->tmpbuf[0].r = freqdata[0].r + freqdata[ncfft].r; + st->tmpbuf[0].i = freqdata[0].r - freqdata[ncfft].r; + C_FIXDIV(st->tmpbuf[0],2); + + for (k = 1; k <= ncfft / 2; ++k) { + kiss_fft_cpx fk, fnkc, fek, fok, tmp; + fk = freqdata[k]; + fnkc.r = freqdata[ncfft - k].r; + fnkc.i = -freqdata[ncfft - k].i; + C_FIXDIV( fk , 2 ); + C_FIXDIV( fnkc , 2 ); + + C_ADD (fek, fk, fnkc); + C_SUB (tmp, fk, fnkc); + C_MUL (fok, tmp, st->super_twiddles[k-1]); + C_ADD (st->tmpbuf[k], fek, fok); + C_SUB (st->tmpbuf[ncfft - k], fek, fok); +#ifdef USE_SIMD + st->tmpbuf[ncfft - k].i *= _mm_set1_ps(-1.0); +#else + st->tmpbuf[ncfft - k].i *= -1; +#endif + } + kiss_fft (st->substate, st->tmpbuf, (kiss_fft_cpx *) timedata); +} diff --git a/src/kiss_fftr.h b/src/kiss_fftr.h new file mode 100644 index 0000000..72e5a57 --- /dev/null +++ b/src/kiss_fftr.h @@ -0,0 +1,46 @@ +#ifndef KISS_FTR_H +#define KISS_FTR_H + +#include "kiss_fft.h" +#ifdef __cplusplus +extern "C" { +#endif + + +/* + + Real optimized version can save about 45% cpu time vs. complex fft of a real seq. + + + + */ + +typedef struct kiss_fftr_state *kiss_fftr_cfg; + + +kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); +/* + nfft must be even + + If you don't care to allocate space, use mem = lenmem = NULL +*/ + + +void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); +/* + input timedata has nfft scalar points + output freqdata has nfft/2+1 complex points +*/ + +void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); +/* + input freqdata has nfft/2+1 complex points + output timedata has nfft scalar points +*/ + +#define kiss_fftr_free free + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/ldpc_codes.c b/src/ldpc_codes.c new file mode 100644 index 0000000..23c022f --- /dev/null +++ b/src/ldpc_codes.c @@ -0,0 +1,252 @@ +/* + FILE...: ldpc_codes.c + AUTHOR.: David Rowe + CREATED: July 2020 + + Array of LDPC codes used for various Codec2 waveforms. +*/ + +#include +#include +#include "assert.h" +#include "ldpc_codes.h" +#include "interldpc.h" +#include "H_2064_516_sparse.h" +#include "HRA_112_112.h" +#include "HRAb_396_504.h" +#include "H_256_768_22.h" +#include "H_256_512_4.h" +#include "HRAa_1536_512.h" +#include "H_128_256_5.h" +#include "HRA_56_56.h" +#include "H_4096_8192_3d.h" +#include "H_16200_9720.h" +#include "H_1024_2048_4f.h" +#include "H_212_158.h" + +struct LDPC ldpc_codes[] = { + /* short rate 1/2 code for FreeDV 700D */ + { + "HRA_112_112", + HRA_112_112_MAX_ITER, + 0, + 1, + 1, + HRA_112_112_CODELENGTH, + HRA_112_112_NUMBERPARITYBITS, + HRA_112_112_NUMBERROWSHCOLS, + HRA_112_112_MAX_ROW_WEIGHT, + HRA_112_112_MAX_COL_WEIGHT, + (uint16_t *)HRA_112_112_H_rows, + (uint16_t *)HRA_112_112_H_cols + } + , + /* short rate 1/2 code for FreeDV 700E */ + { + "HRA_56_56", + HRA_56_56_MAX_ITER, + 0, + 1, + 1, + HRA_56_56_CODELENGTH, + HRA_56_56_NUMBERPARITYBITS, + HRA_56_56_NUMBERROWSHCOLS, + HRA_56_56_MAX_ROW_WEIGHT, + HRA_56_56_MAX_COL_WEIGHT, + (uint16_t *)HRA_56_56_H_rows, + (uint16_t *)HRA_56_56_H_cols + }, + #ifndef __EMBEDDED__ + + /* default Wenet High Alitiude Balloon rate 0.8 code */ + { + "H_2064_516_sparse", + MAX_ITER, + 0, + 1, + 1, + CODELENGTH, + NUMBERPARITYBITS, + NUMBERROWSHCOLS, + MAX_ROW_WEIGHT, + MAX_COL_WEIGHT, + (uint16_t *)H_2064_516_sparse_H_rows, + (uint16_t *)H_2064_516_sparse_H_cols + }, + + /* rate 0.8 code used for FreeDV 2020 */ + { + "HRAb_396_504", + HRAb_396_504_MAX_ITER, + 0, + 1, + 1, + HRAb_396_504_CODELENGTH, + HRAb_396_504_NUMBERPARITYBITS, + HRAb_396_504_NUMBERROWSHCOLS, + HRAb_396_504_MAX_ROW_WEIGHT, + HRAb_396_504_MAX_COL_WEIGHT, + (uint16_t *)HRAb_396_504_H_rows, + (uint16_t *)HRAb_396_504_H_cols + }, + + + /* Rate 0.745 code for mopping up errors on 2020C from Bill VK5DSP */ + { + "H_212_158", + H_212_158_MAX_ITER, + 0, + 1, + 1, + H_212_158_CODELENGTH, + H_212_158_NUMBERPARITYBITS, + H_212_158_NUMBERROWSHCOLS, + H_212_158_MAX_ROW_WEIGHT, + H_212_158_MAX_COL_WEIGHT, + (uint16_t *)H_212_158_H_rows, + (uint16_t *)H_212_158_H_cols + }, + + /* rate 1/3 code, works at raw BER of 14% */ + { + "H_256_768_22", + H_256_768_22_MAX_ITER, + 0, + 1, + 1, + H_256_768_22_CODELENGTH, + H_256_768_22_NUMBERPARITYBITS, + H_256_768_22_NUMBERROWSHCOLS, + H_256_768_22_MAX_ROW_WEIGHT, + H_256_768_22_MAX_COL_WEIGHT, + (uint16_t *)H_256_768_22_H_rows, + (uint16_t *)H_256_768_22_H_cols + }, + + /* used for 4FSK/LLR experiments */ + { + "H_256_512_4", + H_256_512_4_MAX_ITER, + 0, + 1, + 1, + H_256_512_4_CODELENGTH, + H_256_512_4_NUMBERPARITYBITS, + H_256_512_4_NUMBERROWSHCOLS, + H_256_512_4_MAX_ROW_WEIGHT, + H_256_512_4_MAX_COL_WEIGHT, + (uint16_t *)H_256_512_4_H_rows, + (uint16_t *)H_256_512_4_H_cols + }, + + /* used for 4FSK/LLR experiments */ + { + "HRAa_1536_512", + HRAa_1536_512_MAX_ITER, + 0, + 1, + 1, + HRAa_1536_512_CODELENGTH, + HRAa_1536_512_NUMBERPARITYBITS, + HRAa_1536_512_NUMBERROWSHCOLS, + HRAa_1536_512_MAX_ROW_WEIGHT, + HRAa_1536_512_MAX_COL_WEIGHT, + (uint16_t *)HRAa_1536_512_H_rows, + (uint16_t *)HRAa_1536_512_H_cols + }, + + /* used for 4FSK/LLR experiments */ + { + "H_128_256_5", + H_128_256_5_MAX_ITER, + 0, + 1, + 1, + H_128_256_5_CODELENGTH, + H_128_256_5_NUMBERPARITYBITS, + H_128_256_5_NUMBERROWSHCOLS, + H_128_256_5_MAX_ROW_WEIGHT, + H_128_256_5_MAX_COL_WEIGHT, + (uint16_t *)H_128_256_5_H_rows, + (uint16_t *)H_128_256_5_H_cols + }, + + /* Nice long code from Bill VK5DSP - useful for HF data */ + { + "H_4096_8192_3d", + H_4096_8192_3d_MAX_ITER, + 0, + 1, + 1, + H_4096_8192_3d_CODELENGTH, + H_4096_8192_3d_NUMBERPARITYBITS, + H_4096_8192_3d_NUMBERROWSHCOLS, + H_4096_8192_3d_MAX_ROW_WEIGHT, + H_4096_8192_3d_MAX_COL_WEIGHT, + (uint16_t *)H_4096_8192_3d_H_rows, + (uint16_t *)H_4096_8192_3d_H_cols + }, + + /* Nice long code from Bill VK5DSP - useful for HF data */ + { + "H_16200_9720", + H_16200_9720_MAX_ITER, + 0, + 1, + 1, + H_16200_9720_CODELENGTH, + H_16200_9720_NUMBERPARITYBITS, + H_16200_9720_NUMBERROWSHCOLS, + H_16200_9720_MAX_ROW_WEIGHT, + H_16200_9720_MAX_COL_WEIGHT, + (uint16_t *)H_16200_9720_H_rows, + (uint16_t *)H_16200_9720_H_cols + }, + + /* Another fine code from Bill VK5DSP - also useful for HF data */ + { + "H_1024_2048_4f", + H_1024_2048_4f_MAX_ITER, + 0, + 1, + 1, + H_1024_2048_4f_CODELENGTH, + H_1024_2048_4f_NUMBERPARITYBITS, + H_1024_2048_4f_NUMBERROWSHCOLS, + H_1024_2048_4f_MAX_ROW_WEIGHT, + H_1024_2048_4f_MAX_COL_WEIGHT, + (uint16_t *)H_1024_2048_4f_H_rows, + (uint16_t *)H_1024_2048_4f_H_cols + } + #endif +}; + +int ldpc_codes_num(void) { return sizeof(ldpc_codes)/sizeof(struct LDPC); } + +void ldpc_codes_list() { + fprintf(stderr, "\n"); + for(int c=0; cCodeLength, ldpc->NumberParityBits); +} diff --git a/src/ldpc_codes.h b/src/ldpc_codes.h new file mode 100644 index 0000000..8fc3966 --- /dev/null +++ b/src/ldpc_codes.h @@ -0,0 +1,27 @@ +/* + FILE...: ldpc_codes.h + AUTHOR.: David Rowe + CREATED: July 2020 + + Array of LDPC codes used for various Codec2 waveforms. +*/ + +#ifndef __LDPC_CODES__ + +#ifdef __cplusplus + extern "C" { +#endif + +#include "mpdecode_core.h" + +extern struct LDPC ldpc_codes[]; +int ldpc_codes_num(void); +void ldpc_codes_list(); +int ldpc_codes_find(char name[]); +void ldpc_codes_setup(struct LDPC *ldpc, char name[]); + +#ifdef __cplusplus + } +#endif + +#endif diff --git a/src/ldpc_dec.c b/src/ldpc_dec.c new file mode 100644 index 0000000..94d5c33 --- /dev/null +++ b/src/ldpc_dec.c @@ -0,0 +1,236 @@ +/* + FILE...: ldpc_dec.c + AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe + CREATED: Sep 2016 + + Command line C LDPC decoder derived from MpDecode.c in the CML + library. Allows us to run the same decoder in Octave and C. +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "mpdecode_core.h" +#include "ldpc_codes.h" +#include "ofdm_internal.h" + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i 16384; + } + for(i=data_bits_per_frame-unused_data_bits; i +#include +#include +#include +#include +#include +#include "mpdecode_core_test.h" +#include "ofdm_internal.h" + +/* Machine generated consts, H_rows, H_cols, test input/output data to + change LDPC code regenerate this file. */ + +/* TODO: Better octave/C support for multuple codes */ + +#include "H2064_516_sparse_test.h" +#include "HRA_112_112_test.h" + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i 0) { + ldpc.max_iter = atoi(argv[i+1]); + fprintf(stderr, "max_iter: %d\n", ldpc.max_iter); + } + + CodeLength = ldpc.CodeLength; /* length of entire codeword */ + NumberParityBits = ldpc.NumberParityBits; + data_bits_per_frame = ldpc.NumberRowsHcols; + unsigned char ibits[data_bits_per_frame]; + unsigned char pbits[NumberParityBits]; + char out_char[CodeLength]; + + testframes = 0; + total_iters = 0; + Tbits = Terrs = Tbits_raw = Terrs_raw = 0; + + if (!strcmp(argv[1],"--test")) { + + /* test mode --------------------------------------------------------*/ + + fprintf(stderr, "Starting test using pre-compiled test data .....\n"); + fprintf(stderr, "Codeword length: %d\n", CodeLength); + fprintf(stderr, "Parity Bits....: %d\n", NumberParityBits); + + num_runs = 1; num_ok = 0; + + for(r=0; r 16384; + } + encode(&ldpc, ibits, pbits); + } + + double *input_double = calloc(CodeLength, sizeof(double)); + float *input_float = calloc(CodeLength, sizeof(float)); + + nread = CodeLength; + offset = 0; + if (readhalfframe) { + nread = CodeLength/2; + offset = CodeLength/2; + for(i=0; i +#include +#include +#include +#include + +#include "mpdecode_core.h" +#include "ldpc_codes.h" +#include "ofdm_internal.h" + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i 16384; + } + for(i=data_bits_per_frame-unused_data_bits; i= Nframes)) { + goto finished; + } + } + + finished: + + fprintf(stderr, "written: %d\n", written); + fclose(fin); + fclose(fout); + + return 1; +} diff --git a/src/ldpc_enc_test.c b/src/ldpc_enc_test.c new file mode 100644 index 0000000..82c5003 --- /dev/null +++ b/src/ldpc_enc_test.c @@ -0,0 +1,161 @@ +/* + FILE...: ldpc_enc.c + AUTHOR.: Bill Cowley, David Rowe + CREATED: Sep 2016 + + RA LDPC encoder program. Using the elegant back substitution of RA + LDPC codes. + + building: gcc ldpc_enc.c -o ldpc_enc -Wall -g +*/ + +#include +#include +#include +#include +#include + +#include "mpdecode_core_test.h" +#include "ofdm_internal.h" + +/* generated by ldpc_fsk_lib.m:ldpc_decode() */ + +#include "H2064_516_sparse_test.h" +#include "HRA_112_112_test.h" + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i 16384; + } + } + + encode(&ldpc, ibits, pbits); + + if (sd) { + /* map to BPSK symbols */ + for (i=0; i= Nframes)) { + goto finished; + } + } + + finished: + + fclose(fin); + fclose(fout); + + return 1; +} diff --git a/src/ldpc_noise.c b/src/ldpc_noise.c new file mode 100644 index 0000000..c641dac --- /dev/null +++ b/src/ldpc_noise.c @@ -0,0 +1,77 @@ +/* + FILE...: ldpc_enc.c + AUTHOR.: Don Reid + CREATED: Aug 2018 + + Add noise to LDPC soft decision samples for testing. Simulates use + of LDPC code with PSK modem. +*/ + +#include +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) { + FILE *fin, *fout; + float datain, dataout; + + if (argc < 3) { + fprintf(stderr, "\n"); + fprintf(stderr, "usage: %s InputFile OutputFile NodB\n", argv[0]); + fprintf(stderr, "\n"); + exit(1); + } + + if (strcmp(argv[1], "-") == 0) fin = stdin; + else if ( (fin = fopen(argv[1],"rb")) == NULL ) { + fprintf(stderr, "Error opening input bit file: %s: %s.\n", + argv[1], strerror(errno)); + exit(1); + } + + if (strcmp(argv[2], "-") == 0) fout = stdout; + else if ( (fout = fopen(argv[2],"wb")) == NULL ) { + fprintf(stderr, "Error opening output bit file: %s: %s.\n", + argv[2], strerror(errno)); + exit(1); + } + + double NodB = atof(argv[3]); + double No = pow(10.0, NodB/10.0); + double sum_xx = 0; double sum_x = 0.0; long n = 0; + + fprintf(stderr, "Uncoded PSK Eb/No simulation:\n"); + fprintf(stderr, "No = % 4.2f dB (%4.2f linear)\n", NodB, No); + fprintf(stderr, "Eb = % 4.2f dB (%4.2f linear)\n", 0.0, 1.0); + fprintf(stderr, "Eb/No = %4.2f dB (%4.2f linear)\n", -NodB, pow(10,-NodB/10.0)); + + while (fread(&datain, sizeof(float), 1, fin) == 1) { + + // Gaussian from uniform: + double x = (double)rand() / RAND_MAX; + double y = (double)rand() / RAND_MAX; + double z = sqrt(-2 * log(x)) * cos(2 * M_PI * y); + + double noise = sqrt(No/2) * z; + dataout = datain + noise; + + fwrite(&dataout, sizeof(float), 1, fout); + + // keep running stats to calculate actual noise variance (power) + + sum_xx += noise*noise; + sum_x += noise; + n++; + } + + fclose(fin); + fclose(fout); + + double noise_var = (n * sum_xx - sum_x * sum_x) / (n * (n - 1)); + fprintf(stderr, "measured double sided (real) noise power: %f\n", noise_var); + + return 0; +} diff --git a/src/linreg.c b/src/linreg.c new file mode 100644 index 0000000..f37634d --- /dev/null +++ b/src/linreg.c @@ -0,0 +1,106 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: linreg.c + AUTHOR......: David Rowe + DATE CREATED: April 2015 + + Linear regression C module based on: + + http://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c + + Use: + + $ gcc linreg.c -o linreg -D__UNITTEST__ -Wall + $ ./linreg + + Then compare yfit results with octave/tlinreg.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include + +#include "linreg.h" +#include "comp_prim.h" + + +void linreg(COMP *m, COMP *b, float x[], COMP y[], int n) +{ + float sumx = 0.0; /* sum of x */ + float sumx2 = 0.0; /* sum of x^2 */ + COMP sumxy = {0.0,0.0}; /* sum of x * y */ + COMP sumy = {0.0,0.0}; /* sum of y */ + COMP sumy2 = {0.0,0.0}; /* sum of y**2 */ + float denom; + COMP zero; + int i; + + for (i=0; i. +*/ + +#ifndef __LINREG__ +#define __LINREG__ + +#include "comp.h" + +void linreg(COMP *m, COMP *b, float x[], COMP y[], int n); + +#endif diff --git a/src/lpc.c b/src/lpc.c new file mode 100644 index 0000000..491925f --- /dev/null +++ b/src/lpc.c @@ -0,0 +1,306 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: lpc.c + AUTHOR......: David Rowe + DATE CREATED: 30 Sep 1990 (!) + + Linear Prediction functions written in C. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009-2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#define LPC_MAX_N 512 /* maximum no. of samples in frame */ +#define PI 3.141592654 /* mathematical constant */ + +#define ALPHA 1.0 +#define BETA 0.94 + +#include +#include +#include "defines.h" +#include "lpc.h" + +/*---------------------------------------------------------------------------*\ + + pre_emp() + + Pre-emphasise (high pass filter with zero close to 0 Hz) a frame of + speech samples. Helps reduce dynamic range of LPC spectrum, giving + greater weight and hense a better match to low energy formants. + + Should be balanced by de-emphasis of the output speech. + +\*---------------------------------------------------------------------------*/ + +void pre_emp( + float Sn_pre[], /* output frame of speech samples */ + float Sn[], /* input frame of speech samples */ + float *mem, /* Sn[-1]single sample memory */ + int Nsam /* number of speech samples to use */ +) +{ + int i; + + for(i=0; i 1.0) + k = 0.0; + + a[i][i] = k; + + for(j=1; j<=i-1; j++) + a[i][j] = a[i-1][j] + k*a[i-1][i-j]; /* Equation 38c, Makhoul */ + + e *= (1-k*k); /* Equation 38d, Makhoul */ + } + + for(i=1; i<=order; i++) + lpcs[i] = a[order][i]; + lpcs[0] = 1.0; +} + +/*---------------------------------------------------------------------------*\ + + inverse_filter() + + Inverse Filter, A(z). Produces an array of residual samples from an array + of input samples and linear prediction coefficients. + + The filter memory is stored in the first order samples of the input array. + +\*---------------------------------------------------------------------------*/ + +void inverse_filter( + float Sn[], /* Nsam input samples */ + float a[], /* LPCs for this frame of samples */ + int Nsam, /* number of samples */ + float res[], /* Nsam residual samples */ + int order /* order of LPC */ +) +{ + int i,j; /* loop variables */ + + for(i=0; i. +*/ + +#ifndef __LPC__ +#define __LPC__ + +#define LPC_MAX_ORDER 20 + +void pre_emp(float Sn_pre[], float Sn[], float *mem, int Nsam); +void de_emp(float Sn_se[], float Sn[], float *mem, int Nsam); +void hanning_window(float Sn[], float Wn[], int Nsam); +void autocorrelate(float Sn[], float Rn[], int Nsam, int order); +void levinson_durbin(float R[], float lpcs[], int order); +void inverse_filter(float Sn[], float a[], int Nsam, float res[], int order); +void synthesis_filter(float res[], float a[], int Nsam, int order, float Sn_[]); +void find_aks(float Sn[], float a[], int Nsam, int order, float *E); +void weight(float ak[], float gamma, int order, float akw[]); + +#endif diff --git a/src/lpcnet_freq.c b/src/lpcnet_freq.c new file mode 100644 index 0000000..7945ee1 --- /dev/null +++ b/src/lpcnet_freq.c @@ -0,0 +1,92 @@ +/* + lpcnet_freq.c + + freq.c from LPCnet project, I think this code originally came from + Opus. +*/ + +/* Copyright (c) 2017-2018 Mozilla */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include +#include +#include "comp.h" +#include "lpcnet_freq.h" + +#define SQUARE(x) ((x)*(x)) + +/* FFT bin index of centre of each band, assuming an 80 sample time + domain window (5ms at 16 kHz), which results in 40 samples in the + positive freq side of the FFT. TODO - refactor this to something more generic */ +static float eband5ms[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40 +}; + +/* bandE[i] is the sum of energy in a triangular window centred on + eband5ms[i], with adjustments for first and last band */ +int lpcnet_compute_band_energy(float *bandE, float *bandCentrekHz, COMP *X, float Fs, int Nfft) { + float sum[LPCNET_FREQ_MAX_BANDS] = {0}; + int nb_bands; + float scale; + + assert((Fs == 8000) || (Fs == 16000)); + if (Fs == 8000) + nb_bands = 14; + else + nb_bands = 18; + + /* map eband5ms[] bins to our FFT size and Fs */ + scale = ((float)Nfft/2)/eband5ms[nb_bands-1]; + + /* sum energy from either side of band centre */ + for (int i=0;i. +*/ + +#include "defines.h" +#include "lsp.h" +#include +#include +#include + +/*---------------------------------------------------------------------------*\ + + Introduction to Line Spectrum Pairs (LSPs) + ------------------------------------------ + + LSPs are used to encode the LPC filter coefficients {ak} for + transmission over the channel. LSPs have several properties (like + less sensitivity to quantisation noise) that make them superior to + direct quantisation of {ak}. + + A(z) is a polynomial of order lpcrdr with {ak} as the coefficients. + + A(z) is transformed to P(z) and Q(z) (using a substitution and some + algebra), to obtain something like: + + A(z) = 0.5[P(z)(z+z^-1) + Q(z)(z-z^-1)] (1) + + As you can imagine A(z) has complex zeros all over the z-plane. P(z) + and Q(z) have the very neat property of only having zeros _on_ the + unit circle. So to find them we take a test point z=exp(jw) and + evaluate P (exp(jw)) and Q(exp(jw)) using a grid of points between 0 + and pi. + + The zeros (roots) of P(z) also happen to alternate, which is why we + swap coefficients as we find roots. So the process of finding the + LSP frequencies is basically finding the roots of 5th order + polynomials. + + The root so P(z) and Q(z) occur in symmetrical pairs at +/-w, hence + the name Line Spectrum Pairs (LSPs). + + To convert back to ak we just evaluate (1), "clocking" an impulse + thru it lpcrdr times gives us the impulse response of A(z) which is + {ak}. + +\*---------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: cheb_poly_eva() + AUTHOR......: David Rowe + DATE CREATED: 24/2/93 + + This function evaluates a series of chebyshev polynomials + + FIXME: performing memory allocation at run time is very inefficient, + replace with stack variables of MAX_P size. + +\*---------------------------------------------------------------------------*/ + + +static float +cheb_poly_eva(float *coef,float x,int order) +/* float coef[] coefficients of the polynomial to be evaluated */ +/* float x the point where polynomial is to be evaluated */ +/* int order order of the polynomial */ +{ + int i; + float *t,*u,*v,sum; + float T[(order / 2) + 1]; + + /* Initialise pointers */ + + t = T; /* T[i-2] */ + *t++ = 1.0; + u = t--; /* T[i-1] */ + *u++ = x; + v = u--; /* T[i] */ + + /* Evaluate chebyshev series formulation using iterative approach */ + + for(i=2;i<=order/2;i++) + *v++ = (2*x)*(*u++) - *t++; /* T[i] = 2*x*T[i-1] - T[i-2] */ + + sum=0.0; /* initialise sum to zero */ + t = T; /* reset pointer */ + + /* Evaluate polynomial and return value also free memory space */ + + for(i=0;i<=order/2;i++) + sum+=coef[(order/2)-i]**t++; + + return sum; +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: lpc_to_lsp() + AUTHOR......: David Rowe + DATE CREATED: 24/2/93 + + This function converts LPC coefficients to LSP coefficients. + +\*---------------------------------------------------------------------------*/ + +int lpc_to_lsp (float *a, int order, float *freq, int nb, float delta) +/* float *a lpc coefficients */ +/* int order order of LPC coefficients (10) */ +/* float *freq LSP frequencies in radians */ +/* int nb number of sub-intervals (4) */ +/* float delta grid spacing interval (0.02) */ +{ + float psuml,psumr,psumm,temp_xr,xl,xr,xm = 0; + float temp_psumr; + int i,j,m,flag,k; + float *px; /* ptrs of respective P'(z) & Q'(z) */ + float *qx; + float *p; + float *q; + float *pt; /* ptr used for cheb_poly_eval() + whether P' or Q' */ + int roots=0; /* number of roots found */ + float Q[order + 1]; + float P[order + 1]; + + flag = 1; + m = order/2; /* order of P'(z) & Q'(z) polynimials */ + + /* Allocate memory space for polynomials */ + + /* determine P'(z)'s and Q'(z)'s coefficients where + P'(z) = P(z)/(1 + z^(-1)) and Q'(z) = Q(z)/(1-z^(-1)) */ + + px = P; /* initilaise ptrs */ + qx = Q; + p = px; + q = qx; + *px++ = 1.0; + *qx++ = 1.0; + for(i=1;i<=m;i++){ + *px++ = a[i]+a[order+1-i]-*p++; + *qx++ = a[i]-a[order+1-i]+*q++; + } + px = P; + qx = Q; + for(i=0;i= -1.0)){ + xr = xl - delta ; /* interval spacing */ + psumr = cheb_poly_eva(pt,xr,order);/* poly(xl-delta_x) */ + temp_psumr = psumr; + temp_xr = xr; + + /* if no sign change increment xr and re-evaluate + poly(xr). Repeat til sign change. if a sign change has + occurred the interval is bisected and then checked again + for a sign change which determines in which interval the + zero lies in. If there is no sign change between poly(xm) + and poly(xl) set interval between xm and xr else set + interval between xl and xr and repeat till root is located + within the specified limits */ + + if(((psumr*psuml)<0.0) || (psumr == 0.0)){ + roots++; + + psumm=psuml; + for(k=0;k<=nb;k++){ + xm = (xl+xr)/2; /* bisect the interval */ + psumm=cheb_poly_eva(pt,xm,order); + if(psumm*psuml>0.){ + psuml=psumm; + xl=xm; + } + else{ + psumr=psumm; + xr=xm; + } + } + + /* once zero is found, reset initial interval to xr */ + freq[j] = (xm); + xl = xm; + flag = 0; /* reset flag for next search */ + } + else{ + psuml=temp_psumr; + xl=temp_xr; + } + } + } + + /* convert from x domain to radians */ + + for(i=0; i. +*/ + +#ifndef __LSP__ +#define __LSP__ + +int lpc_to_lsp (float *a, int lpcrdr, float *freq, int nb, float delta); +void lsp_to_lpc(float *freq, float *ak, int lpcrdr); + +#endif diff --git a/src/machdep.h b/src/machdep.h new file mode 100644 index 0000000..cd6b00f --- /dev/null +++ b/src/machdep.h @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: machdep.h + AUTHOR......: David Rowe + DATE CREATED: May 2 2013 + + Machine dependent functions, e.g. profiling that requires access to a clock + counter register. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2013 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __MACHDEP__ +#define __MACHDEP__ + +#ifdef PROFILE +#define PROFILE_VAR(...) unsigned int __VA_ARGS__ +#define PROFILE_SAMPLE(timestamp) timestamp = machdep_profile_sample() +#define PROFILE_SAMPLE_AND_LOG(timestamp, prev_timestamp, label) \ + timestamp = machdep_profile_sample_and_log(prev_timestamp, label) +#define PROFILE_SAMPLE_AND_LOG2(prev_timestamp, label) \ + machdep_profile_sample_and_log(prev_timestamp, label) +#else +#define PROFILE_VAR(...) +#define PROFILE_SAMPLE(timestamp) +#define PROFILE_SAMPLE_AND_LOG(timestamp, prev_timestamp, label) +#define PROFILE_SAMPLE_AND_LOG2(prev_timestamp, label) +#endif + +void machdep_profile_init(void); +void machdep_profile_reset(void); +unsigned int machdep_profile_sample(void); +unsigned int machdep_profile_sample_and_log(unsigned int start, char s[]); +void machdep_profile_print_logged_samples(void); + +#endif diff --git a/src/mbest.c b/src/mbest.c new file mode 100644 index 0000000..8651e70 --- /dev/null +++ b/src/mbest.c @@ -0,0 +1,197 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: mbest.c + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Multistage vector quantiser search algorithm that keeps multiple + candidates from each stage. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright David Rowe 2017 + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + +*/ + +#include +#include +#include +#include +#include + +#include "mbest.h" + +struct MBEST *mbest_create(int entries) { + int i,j; + struct MBEST *mbest; + + assert(entries > 0); + mbest = (struct MBEST *)malloc(sizeof(struct MBEST)); + assert(mbest != NULL); + + mbest->entries = entries; + mbest->list = (struct MBEST_LIST *)malloc(entries*sizeof(struct MBEST_LIST)); + assert(mbest->list != NULL); + + for(i=0; ientries; i++) { + for(j=0; jlist[i].index[j] = 0; + mbest->list[i].error = 1E32; + } + + return mbest; +} + + +void mbest_destroy(struct MBEST *mbest) { + assert(mbest != NULL); + free(mbest->list); + free(mbest); +} + + +/* apply weighting to VQ for efficient VQ search */ + +void mbest_precompute_weight(float cb[], float w[], int k, int m) { + for (int j=0; jlist; + int entries = mbest->entries; + + found = 0; + for(i=0; ientries; i++) { + for(j=0; jlist[i].index[j]); + fprintf(stderr, " %f\n", (double)mbest->list[i].error); + } +} + + +/*---------------------------------------------------------------------------*\ + + mbest_search + + Searches vec[] to a codebbook of vectors, and maintains a list of the mbest + closest matches. + +\*---------------------------------------------------------------------------*/ + +void mbest_search( + const float *cb, /* VQ codebook to search */ + float vec[], /* target vector */ + int k, /* dimension of vector */ + int m, /* number on entries in codebook */ + struct MBEST *mbest, /* list of closest matches */ + int index[] /* indexes that lead us here */ +) +{ + int j; + + /* note weighting can be applied externally by modifiying cb[] and vec: + + float e = 0.0; + for(i=0; ilist[mbest->entries - 1].error) + mbest_insert(mbest, index, e); + } +} + +/*---------------------------------------------------------------------------*\ + + mbest_search450 + + Searches vec[] to a codebbook of vectors, and maintains a list of the mbest + closest matches. Only searches the first NewAmp2_K Vectors + +\*---------------------------------------------------------------------------*/ + +void mbest_search450(const float *cb, float vec[], float w[], int k,int shorterK, int m, struct MBEST *mbest, int index[]) + +{ + float e; + int i,j; + float diff; + + for(j=0; j. + +*/ + +#ifndef __MBEST__ +#define __MBEST__ + +#define MBEST_STAGES 4 + +struct MBEST_LIST { + int index[MBEST_STAGES]; /* index of each stage that lead us to this error */ + float error; +}; + +struct MBEST { + int entries; /* number of entries in mbest list */ + struct MBEST_LIST *list; +}; + +struct MBEST *mbest_create(int entries); +void mbest_destroy(struct MBEST *mbest); +void mbest_precompute_weight(float cb[], float w[], int k, int m); +void mbest_insert(struct MBEST *mbest, int index[], float error); +void mbest_search(const float *cb, float vec[], int k, int m, struct MBEST *mbest, int index[]); +void mbest_search450(const float *cb, float vec[], float w[], int k,int shorterK, int m, struct MBEST *mbest, int index[]); + +void mbest_print(char title[], struct MBEST *mbest); + +#endif diff --git a/src/modem_probe.c b/src/modem_probe.c new file mode 100644 index 0000000..b4a6165 --- /dev/null +++ b/src/modem_probe.c @@ -0,0 +1,241 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: modem_probe.c + AUTHOR......: Brady O'Brien + DATE CREATED: 9 January 2016 + + Library to easily extract debug traces from modems during development and + verification + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include "comp.h" +#include "octave.h" + +#define TRACE_I 1 +#define TRACE_F 2 +#define TRACE_C 3 + + +typedef struct probe_trace_info_s probe_trace_info; +typedef struct datlink_s datlink; + +struct datlink_s{ + void * data; + size_t len; + datlink * next; +}; + +struct probe_trace_info_s{ + int type; + char name[255]; + datlink * data; + datlink * last; + probe_trace_info *next; +}; + +static char *run = NULL; +static char *mod = NULL; +static probe_trace_info *first_trace = NULL; + +/* Init the probing library */ +void modem_probe_init_int(char *modname, char *runname){ + mod = malloc((strlen(modname)+1)*sizeof(char)); + run = malloc((strlen(runname)+1)*sizeof(char)); + strcpy(run,runname); + strcpy(mod,modname); +} + +/* + * Gather the data stored in the linked list into a single blob, + * freeing links and buffers as it goes + */ +void * gather_data(datlink * d,size_t * len){ + size_t size = 0; + datlink * cur = d; + datlink * next; + while(cur!=NULL){ + size += d->len; + cur = cur->next; + } + cur = d; + size_t i = 0; + void * newbuf = malloc(size); + + while(cur!=NULL){ + memcpy(newbuf+i,cur->data,cur->len); + i += cur->len; + free(cur->data); + next = cur->next; + free(cur); + cur = next; + } + *len = size; + return newbuf; +} + +/* Dump all of the traces into a nice octave-able dump file */ +void modem_probe_close_int(){ + if(run==NULL) + return; + + probe_trace_info *cur,*next; + cur = first_trace; + FILE * dumpfile = fopen(run,"w"); + void * dbuf; + size_t len; + + while(cur != NULL){ + dbuf = gather_data(cur->data,&len); + switch(cur->type){ + case TRACE_I: + octave_save_int(dumpfile,cur->name,(int32_t*)dbuf,1,len/sizeof(int32_t)); + break; + case TRACE_F: + octave_save_float(dumpfile,cur->name,(float*)dbuf,1,len/sizeof(float),10); + break; + case TRACE_C: + octave_save_complex(dumpfile,cur->name,(COMP*)dbuf,1,len/sizeof(COMP),10); + break; + } + next = cur->next; + free(cur); + free(dbuf); + cur = next; + } + + fclose(dumpfile); + free(run); + free(mod); +} + +/* Look up or create a trace by name */ +probe_trace_info * modem_probe_get_trace(char * tracename){ + probe_trace_info *cur,*npti; + + /* Make sure probe session is open */ + if(run==NULL) + return NULL; + + cur = first_trace; + /* Walk through list, find trace with matching name */ + while(cur != NULL){ + /* We got one! */ + if(strcmp( cur->name, tracename) == 0){ + return cur; + } + cur = cur->next; + } + /* None found, open a new trace */ + + npti = (probe_trace_info *) malloc(sizeof(probe_trace_info)); + npti->next = first_trace; + npti->data = NULL; + npti->last = NULL; + strcpy(npti->name,tracename); + first_trace = npti; + + return npti; + +} + + +void modem_probe_samp_i_int(char * tracename,int32_t samp[],size_t cnt){ + probe_trace_info *pti; + datlink *ndat; + + pti = modem_probe_get_trace(tracename); + if(pti == NULL) + return; + + pti->type = TRACE_I; + + ndat = (datlink*) malloc(sizeof(datlink)); + ndat->data = malloc(sizeof(int32_t)*cnt); + + ndat->len = cnt*sizeof(int32_t); + ndat->next = NULL; + memcpy(ndat->data,(void*)&(samp[0]),sizeof(int32_t)*cnt); + + if(pti->last!=NULL){ + pti->last->next = ndat; + pti->last = ndat; + } else { + pti->data = ndat; + pti->last = ndat; + } + +} + +void modem_probe_samp_f_int(char * tracename,float samp[],size_t cnt){ + probe_trace_info *pti; + datlink *ndat; + + pti = modem_probe_get_trace(tracename); + if(pti == NULL) + return; + + pti->type = TRACE_F; + + ndat = (datlink*) malloc(sizeof(datlink)); + ndat->data = malloc(sizeof(float)*cnt); + + ndat->len = cnt*sizeof(float); + ndat->next = NULL; + memcpy(ndat->data,(void*)&(samp[0]),sizeof(float)*cnt); + + if(pti->last!=NULL){ + pti->last->next = ndat; + pti->last = ndat; + } else { + pti->data = ndat; + pti->last = ndat; + } +} + +void modem_probe_samp_c_int(char * tracename,COMP samp[],size_t cnt){ + probe_trace_info *pti; + datlink *ndat; + + pti = modem_probe_get_trace(tracename); + if(pti == NULL) + return; + + pti->type = TRACE_C; + + ndat = (datlink*) malloc(sizeof(datlink)); + ndat->data = malloc(sizeof(COMP)*cnt); + + ndat->len = cnt*sizeof(COMP); + ndat->next = NULL; + memcpy(ndat->data,(void*)&(samp[0]),sizeof(COMP)*cnt); + + if(pti->last!=NULL){ + pti->last->next = ndat; + pti->last = ndat; + } else { + pti->data = ndat; + pti->last = ndat; + } +} diff --git a/src/modem_probe.h b/src/modem_probe.h new file mode 100644 index 0000000..e038603 --- /dev/null +++ b/src/modem_probe.h @@ -0,0 +1,130 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: modem_probe.h + AUTHOR......: Brady O'Brien + DATE CREATED: 9 January 2016 + + Library to easily extract debug traces from modems during development + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __MODEMPROBE_H +#define __MODEMPROBE_H + +#include +#include +#include +#include "comp.h" + +#ifdef MODEMPROBE_ENABLE + +/* Internal functions */ +void modem_probe_init_int(char *modname, char *runname); +void modem_probe_close_int(); + +void modem_probe_samp_i_int(char * tracename,int samp[],size_t cnt); +void modem_probe_samp_f_int(char * tracename,float samp[],size_t cnt); +void modem_probe_samp_c_int(char * tracename,COMP samp[],size_t cnt); + +/* + * Init the probe library. + * char *modname - Name of the modem under test + * char *runname - Name/path of the file data is dumped to + */ +static inline void modem_probe_init(char *modname,char *runname){ + modem_probe_init_int(modname,runname); +} + +/* + * Dump traces to a file and clean up + */ +static inline void modem_probe_close(){ + modem_probe_close_int(); +} + +/* + * Save some number of int samples to a named trace + * char *tracename - name of trace being saved to + * int samp[] - int samples + * size_t cnt - how many samples to save + */ +static inline void modem_probe_samp_i(char *tracename,int samp[],size_t cnt){ + modem_probe_samp_i_int(tracename,samp,cnt); +} + +/* + * Save some number of float samples to a named trace + * char *tracename - name of trace being saved to + * float samp[] - int samples + * size_t cnt - how many samples to save + */ +static inline void modem_probe_samp_f(char *tracename,float samp[],size_t cnt){ + modem_probe_samp_f_int(tracename,samp,cnt); +} + +/* + * Save some number of complex samples to a named trace + * char *tracename - name of trace being saved to + * COMP samp[] - int samples + * size_t cnt - how many samples to save + */ +static inline void modem_probe_samp_c(char *tracename,COMP samp[],size_t cnt){ + modem_probe_samp_c_int(tracename,samp,cnt); +} + +/* + * Save some number of complex samples to a named trace + * char *tracename - name of trace being saved to + * float complex samp[] - int samples + * size_t cnt - how many samples to save + */ +static inline void modem_probe_samp_cft(char *tracename,complex float samp[],size_t cnt){ + modem_probe_samp_c_int(tracename,(COMP*)samp,cnt); +} + +#else + +static inline void modem_probe_init(char *modname,char *runname){ + return; +} + +static inline void modem_probe_close(){ + return; +} + +static inline void modem_probe_samp_i(char *name,int samp[],size_t sampcnt){ + return; +} + +static inline void modem_probe_samp_f(char *name,float samp[],size_t cnt){ + return; +} + +static inline void modem_probe_samp_c(char *name,COMP samp[],size_t cnt){ + return; +} + +static inline void modem_probe_samp_cft(char *name,complex float samp[],size_t cnt){ + return; +} + +#endif + +#endif diff --git a/src/modem_stats.c b/src/modem_stats.c new file mode 100644 index 0000000..df07e62 --- /dev/null +++ b/src/modem_stats.c @@ -0,0 +1,124 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: modem_stats.c + AUTHOR......: David Rowe + DATE CREATED: June 2015 + + Common functions for returning demod stats from fdmdv and cohpsk modems. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2015 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include "modem_stats.h" +#include "codec2_fdmdv.h" +#include "kiss_fft.h" + +void modem_stats_open(struct MODEM_STATS *f) +{ + int i; + + /* zero out all the stats */ + + memset(f, 0, sizeof(struct MODEM_STATS)); + + /* init the FFT */ + +#ifndef __EMBEDDED__ + for(i=0; i<2*MODEM_STATS_NSPEC; i++) + f->fft_buf[i] = 0.0; + f->fft_cfg = (void*)kiss_fft_alloc (2*MODEM_STATS_NSPEC, 0, NULL, NULL); + assert(f->fft_cfg != NULL); +#endif +} + +void modem_stats_close(struct MODEM_STATS *f) +{ +#ifndef __EMBEDDED__ + KISS_FFT_FREE(f->fft_cfg); +#endif +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: modem_stats_get_rx_spectrum() + AUTHOR......: David Rowe + DATE CREATED: 9 June 2012 + + Returns the MODEM_STATS_NSPEC point magnitude spectrum of the rx signal in + dB. The spectral samples are scaled so that 0dB is the peak, a good + range for plotting is 0 to -40dB. + + Note only the real part of the complex input signal is used at + present. A complex variable is used for input for compatibility + with the other rx signal processing. + + Successive calls can be used to build up a waterfall or spectrogram + plot, by mapping the received levels to colours. + + The time-frequency resolution of the spectrum can be adjusted by varying + MODEM_STATS_NSPEC. Note that a 2* MODEM_STATS_NSPEC size FFT is reqd to get + MODEM_STATS_NSPEC output points. MODEM_STATS_NSPEC must be a power of 2. + + See octave/tget_spec.m for a demo real time spectral display using + Octave. This demo averages the output over time to get a smoother + display: + + av = 0.9*av + 0.1*mag_dB + +\*---------------------------------------------------------------------------*/ + +#ifndef __EMBEDDED__ +void modem_stats_get_rx_spectrum(struct MODEM_STATS *f, float mag_spec_dB[], COMP rx_fdm[], int nin) +{ + int i,j; + COMP fft_in[2*MODEM_STATS_NSPEC]; + COMP fft_out[2*MODEM_STATS_NSPEC]; + float full_scale_dB; + + /* update buffer of input samples */ + + for(i=0; i<2*MODEM_STATS_NSPEC-nin; i++) + f->fft_buf[i] = f->fft_buf[i+nin]; + for(j=0; jfft_buf[i] = rx_fdm[j].real; + assert(i == 2*MODEM_STATS_NSPEC); + + /* window and FFT */ + + for(i=0; i<2*MODEM_STATS_NSPEC; i++) { + fft_in[i].real = f->fft_buf[i] * (0.5 - 0.5*cosf((float)i*2.0*M_PI/(2*MODEM_STATS_NSPEC))); + fft_in[i].imag = 0.0; + } + + kiss_fft((kiss_fft_cfg)f->fft_cfg, (kiss_fft_cpx *)fft_in, (kiss_fft_cpx *)fft_out); + + /* FFT scales up a signal of level 1 FDMDV_NSPEC */ + + full_scale_dB = 20*log10(MODEM_STATS_NSPEC*FDMDV_SCALE); + + /* scale and convert to dB */ + + for(i=0; i. +*/ + +#ifndef __MODEM_STATS__ +#define __MODEM_STATS__ + +#include "comp.h" + +#ifdef __cplusplus + extern "C" { +#endif + +#define MODEM_STATS_NC_MAX 50 +#define MODEM_STATS_NR_MAX 320 +#define MODEM_STATS_ET_MAX 8 +#define MODEM_STATS_EYE_IND_MAX 160 +#define MODEM_STATS_NSPEC 512 +#define MODEM_STATS_MAX_F_HZ 4000 +#define MODEM_STATS_MAX_F_EST 4 + +struct MODEM_STATS { + int Nc; + float snr_est; /* estimated SNR of rx signal in dB (3 kHz noise BW) */ +#ifndef __EMBEDDED__ + COMP rx_symbols[MODEM_STATS_NR_MAX][MODEM_STATS_NC_MAX+1]; + /* latest received symbols, for scatter plot */ +#endif + int nr; /* number of rows in rx_symbols */ + int sync; /* demod sync state */ + float foff; /* estimated freq offset in Hz */ + float rx_timing; /* estimated optimum timing offset in samples */ + float clock_offset; /* Estimated tx/rx sample clock offset in ppm */ + float sync_metric; /* number between 0 and 1 indicating quality of sync */ + int pre, post; /* preamble/postamble det counters for burst data */ + int uw_fails; /* Failed to detect Unique word (burst data) */ + + /* FSK eye diagram traces */ + /* Eye diagram plot -- first dim is trace number, second is the trace idx */ +#ifndef __EMBEDDED__ + float rx_eye[MODEM_STATS_ET_MAX][MODEM_STATS_EYE_IND_MAX]; + int neyetr; /* How many eye traces are plotted */ + int neyesamp; /* How many samples in the eye diagram */ + + /* optional for FSK modems - est tone freqs */ + + float f_est[MODEM_STATS_MAX_F_EST]; +#endif + + /* Buf for FFT/waterfall */ + +#ifndef __EMBEDDED__ + float fft_buf[2*MODEM_STATS_NSPEC]; + void *fft_cfg; +#endif +}; + +void modem_stats_open(struct MODEM_STATS *f); +void modem_stats_close(struct MODEM_STATS *f); +void modem_stats_get_rx_spectrum(struct MODEM_STATS *f, float mag_spec_dB[], COMP rx_fdm[], int nin); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/mpdecode_core.c b/src/mpdecode_core.c new file mode 100644 index 0000000..1392b2f --- /dev/null +++ b/src/mpdecode_core.c @@ -0,0 +1,789 @@ +/* + FILE...: mpdecode_core.c + AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe + CREATED: Sep 2016 + + C-callable core functions moved from MpDecode.c, so they can be used for + Octave and C programs. +*/ + +#include +#include +#include +#include +#include +#include "mpdecode_core.h" +#ifndef USE_ORIGINAL_PHI0 +#include "phi0.h" +#endif + +#include "debug_alloc.h" + +#ifdef __EMBEDDED__ +#include "machdep.h" +#endif + +#define QPSK_CONSTELLATION_SIZE 4 +#define QPSK_BITS_PER_SYMBOL 2 + + +/* QPSK constellation for symbol likelihood calculations */ + +static COMP S_matrix[] = { + { 1.0f, 0.0f}, + { 0.0f, 1.0f}, + { 0.0f, -1.0f}, + {-1.0f, 0.0f} +}; + +// c_nodes will be an array of NumberParityBits of struct c_node +// Each c_node contains an array of c_sub_node elements +// This structure reduces the indexing caluclations in SumProduct() + +struct c_sub_node { // Order is important here to keep total size small. + uint16_t index; // Values from H_rows (except last 2 entries) + uint16_t socket; // The socket number at the v_node + float message; // modified during operation! +}; + +struct c_node { + int degree; // A count of elements in the following arrays + struct c_sub_node *subs; +}; + +// v_nodes will be an array of CodeLength of struct v_node + +struct v_sub_node { + uint16_t index; // the index of a c_node it is connected to + // Filled with values from H_cols (except last 2 entries) + uint16_t socket; // socket number at the c_node + float message; // Loaded with input data + // modified during operation! + uint8_t sign; // 1 if input is negative + // modified during operation! +}; + +struct v_node { + int degree; // A count of ??? + float initial_value; + struct v_sub_node *subs; +}; + +void encode(struct LDPC *ldpc, unsigned char ibits[], unsigned char pbits[]) { + unsigned int p, i, tmp, par, prev=0; + int ind; + uint16_t *H_rows = ldpc->H_rows; + + for (p=0; pNumberParityBits; p++) { + par = 0; + + for (i=0; imax_row_weight; i++) { + ind = H_rows[p + i*ldpc->NumberParityBits]; + if (ind) par = par + ibits[ind-1]; + } + + tmp = par + prev; + + tmp &= 1; // only retain the lsb + prev = tmp; + pbits[p] = tmp; + } +} + +#ifdef USE_ORIGINAL_PHI0 +/* Phi function */ +static float phi0( + float x ) +{ + float z; + + if (x>10) + return( 0 ); + else if (x< 9.08e-5 ) + return( 10 ); + else if (x > 9) + return( 1.6881e-4 ); + /* return( 1.4970e-004 ); */ + else if (x > 8) + return( 4.5887e-4 ); + /* return( 4.0694e-004 ); */ + else if (x > 7) + return( 1.2473e-3 ); + /* return( 1.1062e-003 ); */ + else if (x > 6) + return( 3.3906e-3 ); + /* return( 3.0069e-003 ); */ + else if (x > 5) + return( 9.2168e-3 ); + /* return( 8.1736e-003 ); */ + else { + z = (float) exp(x); + return( (float) log( (z+1)/(z-1) ) ); + } +} +#endif + + +/* Values for linear approximation (DecoderType=5) */ + +#define AJIAN -0.24904163195436 +#define TJIAN 2.50681740420944 + +/* The linear-log-MAP algorithm */ + +static float max_star0( + float delta1, + float delta2 ) +{ + register float diff; + + diff = delta2 - delta1; + + if ( diff > TJIAN ) + return( delta2 ); + else if ( diff < -TJIAN ) + return( delta1 ); + else if ( diff > 0 ) + return( delta2 + AJIAN*(diff-TJIAN) ); + else + return( delta1 - AJIAN*(diff+TJIAN) ); +} + +void init_c_v_nodes(struct c_node *c_nodes, + int shift, + int NumberParityBits, + int max_row_weight, + uint16_t *H_rows, + int H1, + int CodeLength, + struct v_node *v_nodes, + int NumberRowsHcols, + uint16_t *H_cols, + int max_col_weight, + int dec_type, + float *input) +{ + int i, j, k, count, cnt, c_index, v_index; + + /* first determine the degree of each c-node */ + + if (shift ==0){ + for (i=0;i 0 ) { + count++; + } + } + c_nodes[i].degree = count; + if (H1){ + if (i==0){ + c_nodes[i].degree=count+1; + } + else{ + c_nodes[i].degree=count+2; + } + } + } + } + else{ + cnt=0; + for (i=0;i<(NumberParityBits/shift);i++) { + for (k=0;k 0 ) { + count++; + } + } + c_nodes[cnt].degree = count; + if ((i==0)||(i==(NumberParityBits/shift)-1)){ + c_nodes[cnt].degree=count+1; + } + else{ + c_nodes[cnt].degree=count+2; + } + cnt++; + } + } + } + + if (H1){ + + if (shift ==0){ + for (i=0;i0){ + cnt=0; + for (i=0;i<(NumberParityBits/shift);i++){ + + for (k =0;k 0 ) { + count++; + } + } + v_nodes[i].degree = count; + } + + for(i=CodeLength-NumberParityBits+shift;i 0 ) { + count++; + } + } + v_nodes[i].degree = count; + } + } + + if (shift>0){ + v_nodes[CodeLength-1].degree =v_nodes[CodeLength-1].degree+1; + } + + + /* set up v_nodes */ + + for (i=0;i=CodeLength-NumberParityBits+shift)){ + v_nodes[i].subs[j].index=i-(CodeLength-NumberParityBits+shift)+count; + if (shift ==0){ + count=count+1; + } + else{ + count=count+shift; + } + } else { + v_nodes[i].subs[j].index = (H_cols[i+j*NumberRowsHcols] - 1); + } + + /* search the connected c-node for the proper message value */ + for (c_index=0;c_indexindex ].subs[ cp->socket ]; + phi_sum += vp->message; + sign ^= vp->sign; + } + + if (sign==0) ssum++; + + for (i=0;iindex ].subs[ cp->socket ]; + if ( sign ^ vp->sign ) { + cp->message = -phi0( phi_sum - vp->message ); // *r_scale_factor; + } else + cp->message = phi0( phi_sum - vp->message ); // *r_scale_factor; + } + } + + /* update q */ + for (i=0;iindex ].subs[ vp->socket ].message; + } + + /* make hard decision */ + if (Qi < 0) { + DecodedBits[i] = 1; + } + + /* now subtract to get the extrinsic information */ + for (j=0;jindex ].subs[ vp->socket ].message; + + vp->message = phi0( fabs( temp_sum ) ); // *q_scale_factor; + if (temp_sum > 0) + vp->sign = 0; + else + vp->sign = 1; + } + } + + /* count data bit errors, assuming that it is systematic */ + for (i=0;imax_iter; + dec_type = ldpc->dec_type; + q_scale_factor = ldpc->q_scale_factor; + r_scale_factor = ldpc->r_scale_factor; + + CodeLength = ldpc->CodeLength; /* length of entire codeword */ + NumberParityBits = ldpc->NumberParityBits; + NumberRowsHcols = ldpc->NumberRowsHcols; + + char *DecodedBits = CALLOC( CodeLength, sizeof( char ) ); + assert(DecodedBits); + + /* derive some parameters */ + + shift = (NumberParityBits + NumberRowsHcols) - CodeLength; + if (NumberRowsHcols == CodeLength) { + H1=0; + shift=0; + } else { + H1=1; + } + + max_row_weight = ldpc->max_row_weight; + max_col_weight = ldpc->max_col_weight; + + /* initialize c-node and v-node structures */ + + c_nodes = CALLOC( NumberParityBits, sizeof( struct c_node ) ); + assert(c_nodes); + v_nodes = CALLOC( CodeLength, sizeof( struct v_node)); + assert(v_nodes); + + init_c_v_nodes(c_nodes, shift, NumberParityBits, max_row_weight, ldpc->H_rows, H1, CodeLength, + v_nodes, NumberRowsHcols, ldpc->H_cols, max_col_weight, dec_type, input); + + int DataLength = CodeLength - NumberParityBits; + int *data_int = CALLOC( DataLength, sizeof(int) ); + + /* need to clear these on each call */ + + for(i=0; i 0.0L) - (sd[i] < 0.0L); + x = ((double)sd[i]/mean - sign); + sum += x; + sumsq += x*x; + } + estvar = (n * sumsq - sum * sum) / (n * (n - 1)); + //fprintf(stderr, "mean: %f var: %f\n", mean, estvar); + + estEsN0 = 1.0/(2.0L * estvar + 1E-3); + for(i=0; i> 1; + } + mask = 1 << (bps - 1); + + for (k=0;k> 1; + } + } + for (k=0;kmax_iter = %d\n", ldpc->max_iter); + fprintf(stderr, "ldpc->dec_type = %d\n", ldpc->dec_type); + fprintf(stderr, "ldpc->q_scale_factor = %d\n", ldpc->q_scale_factor); + fprintf(stderr, "ldpc->r_scale_factor = %d\n", ldpc->r_scale_factor); + fprintf(stderr, "ldpc->CodeLength = %d\n", ldpc->CodeLength); + fprintf(stderr, "ldpc->NumberParityBits = %d\n", ldpc->NumberParityBits); + fprintf(stderr, "ldpc->NumberRowsHcols = %d\n", ldpc->NumberRowsHcols); + fprintf(stderr, "ldpc->max_row_weight = %d\n", ldpc->max_row_weight); + fprintf(stderr, "ldpc->max_col_weight = %d\n", ldpc->max_col_weight); + fprintf(stderr, "ldpc->data_bits_per_frame = %d\n", ldpc->data_bits_per_frame); + fprintf(stderr, "ldpc->coded_bits_per_frame = %d\n", ldpc->coded_bits_per_frame); +} diff --git a/src/mpdecode_core.h b/src/mpdecode_core.h new file mode 100644 index 0000000..86dcf02 --- /dev/null +++ b/src/mpdecode_core.h @@ -0,0 +1,56 @@ +/* + FILE...: mpdecode_core.h + AUTHOR.: David Rowe + CREATED: Sep 2016 + + C-callable core functions for MpDecode, so they can be used for + Octave and C programs. Also some convenience functions to help use + the C-callable LDPC decoder in C programs. +*/ + +#ifndef __MPDECODE_CORE__ +#define __MPDECODE_CORE__ + +#include + +#include "comp.h" + +struct LDPC { + char name[32]; + int max_iter; + int dec_type; + int q_scale_factor; + int r_scale_factor; + int CodeLength; + int NumberParityBits; + int NumberRowsHcols; + int max_row_weight; + int max_col_weight; + + uint16_t *H_rows; + uint16_t *H_cols; + + /* these two are fixed to code params */ + int ldpc_data_bits_per_frame; + int ldpc_coded_bits_per_frame; + + /* support for partial use of data bits in codeword and unequal protection schemes */ + int protection_mode; + int data_bits_per_frame; + int coded_bits_per_frame; +}; + +void encode(struct LDPC *ldpc, unsigned char ibits[], unsigned char pbits[]); + +int run_ldpc_decoder(struct LDPC *ldpc, uint8_t out_char[], float input[], int *parityCheckCount); + +void sd_to_llr(float llr[], float sd[], int n); +void Demod2D(float symbol_likelihood[], COMP r[], COMP S_matrix[], float EsNo, float fading[], float mean_amp, int number_symbols); +void Somap(float bit_likelihood[], float symbol_likelihood[], int M, int bps, int number_symbols); +void symbols_to_llrs(float llr[], COMP rx_qpsk_symbols[], float rx_amps[], float EsNo, float mean_amp, int nsyms); +void fsk_rx_filt_to_llrs(float llr[], float rx_filt[], float v_est, float SNRest, int M, int nsyms); + +void ldpc_print_info(struct LDPC *ldpc); + + +#endif diff --git a/src/newamp1.c b/src/newamp1.c new file mode 100644 index 0000000..532cac9 --- /dev/null +++ b/src/newamp1.c @@ -0,0 +1,677 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: newamp1.c + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Quantisation functions for the sinusoidal coder, using "newamp1" + algorithm that resamples variable rate L [Am} to a fixed rate K then + VQs. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright David Rowe 2017 + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + +*/ + +#include +#include +#include +#include +#include + +#include "defines.h" +#include "phase.h" +#include "quantise.h" +#include "mbest.h" +#include "newamp1.h" + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: interp_para() + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + General 2nd order parabolic interpolator. Used splines originally, + but this is much simpler and we don't need much accuracy. Given two + vectors of points xp and yp, find interpolated values y at points x. + +\*---------------------------------------------------------------------------*/ + +void interp_para(float y[], float xp[], float yp[], int np, float x[], int n) +{ + assert(np >= 3); + + int k,i; + float xi, x1, y1, x2, y2, x3, y3, a, b; + + k = 0; + for (i=0; iL; m++) { + AmdB[m] = 20.0*log10f(model->A[m]+1E-16); + if (AmdB[m] > AmdB_peak) { + AmdB_peak = AmdB[m]; + } + rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; + //printf("m: %d AmdB: %f AmdB_peak: %f sf: %f\n", m, AmdB[m], AmdB_peak, rate_L_sample_freqs_kHz[m]); + } + + /* clip between peak and peak -50dB, to reduce dynamic range */ + + for(m=1; m<=model->L; m++) { + if (AmdB[m] < (AmdB_peak-50.0)) { + AmdB[m] = AmdB_peak-50.0; + } + } + + interp_para(rate_K_vec, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, rate_K_sample_freqs_kHz, K); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: rate_K_mbest_encode + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Two stage rate K newamp1 VQ quantiser using mbest search. + +\*---------------------------------------------------------------------------*/ + +float rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim, int mbest_entries) +{ + int i, j, n1, n2; + const float *codebook1 = newamp1vq_cb[0].cb; + const float *codebook2 = newamp1vq_cb[1].cb; + struct MBEST *mbest_stage1, *mbest_stage2; + float target[ndim]; + int index[MBEST_STAGES]; + float mse, tmp; + + /* codebook is compiled for a fixed K */ + + assert(ndim == newamp1vq_cb[0].k); + + mbest_stage1 = mbest_create(mbest_entries); + mbest_stage2 = mbest_create(mbest_entries); + for(i=0; ilist[j].index[0]; + for(i=0; ilist[0].index[1]; + n2 = mbest_stage2->list[0].index[0]; + mse = 0.0; + for (i=0;iL; m++) { + rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; + } + + interp_para(&AmdB[1], rate_K_sample_freqs_kHz_term, rate_K_vec_term, K+2, &rate_L_sample_freqs_kHz[1], model->L); + for(m=1; m<=model->L; m++) { + model->A[m] = POW10F(AmdB[m]/20.0); + // printf("m: %d f: %f AdB: %f A: %f\n", m, rate_L_sample_freqs_kHz[m], AmdB[m], model->A[m]); + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: determine_phase + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Given a magnitude spectrum determine a phase spectrum, used for + phase synthesis with newamp1. + +\*---------------------------------------------------------------------------*/ + +void determine_phase(C2CONST *c2const, COMP H[], MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg) +{ + int i,m,b; + int Ns = Nfft/2+1; + float Gdbfk[Ns], sample_freqs_kHz[Ns], phase[Ns]; + float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; + + for(m=1; m<=model->L; m++) { + assert(model->A[m] != 0.0); + AmdB[m] = 20.0*log10f(model->A[m]); + rate_L_sample_freqs_kHz[m] = (float)m*model->Wo*(c2const->Fs/2000.0)/M_PI; + } + + for(i=0; iFs/1000.0)*(float)i/Nfft; + } + + interp_para(Gdbfk, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, sample_freqs_kHz, Ns); + mag_to_phase(phase, Gdbfk, Nfft, fwd_cfg, inv_cfg); + + for(m=1; m<=model->L; m++) { + b = floorf(0.5+m*model->Wo*Nfft/(2.0*M_PI)); + H[m].real = cosf(phase[b]); H[m].imag = sinf(phase[b]); + } +} + +/*---------------------------------------------------------------------------* \ + + FUNCTION....: determine_autoc + AUTHOR......: David Rowe + DATE CREATED: April 2020 + + Determine autocorrelation coefficients from model params, for machine + learning experiments. + +\*---------------------------------------------------------------------------*/ + +void determine_autoc(C2CONST *c2const, float Rk[], int order, MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg) +{ + int i,m; + int Ns = Nfft/2+1; + float Gdbfk[Ns], sample_freqs_kHz[Ns]; + float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; + + /* interpolate in the log domain */ + for(m=1; m<=model->L; m++) { + assert(model->A[m] != 0.0); + AmdB[m] = 20.0*log10f(model->A[m]); + rate_L_sample_freqs_kHz[m] = (float)m*model->Wo*(c2const->Fs/2000.0)/M_PI; + } + + for(i=0; iFs/1000.0)*(float)i/Nfft; + } + + interp_para(Gdbfk, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, sample_freqs_kHz, Ns); + + COMP S[Nfft], R[Nfft]; + + /* install negative frequency components, convert to mag squared of spectrum */ + S[0].real = pow(10.0, Gdbfk[0]/10.0); + S[0].imag = 0.0; + for(i=1; ivoiced) { + int index = encode_log_Wo(c2const, model->Wo, 6); + if (index == 0) { + index = 1; + } + indexes[3] = index; + } + else { + indexes[3] = 0; + } +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: newamp1_interpolate + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + +\*---------------------------------------------------------------------------*/ + +void newamp1_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K) +{ + int i, k; + int M = 4; + float c; + + /* (linearly) interpolate 25Hz amplitude vectors back to 100Hz */ + + for(i=0,c=1.0; i. +*/ + +#ifndef __NEWAMP1__ +#define __NEWAMP1__ + +#define NEWAMP1_N_INDEXES 4 /* Number of indexes to pack: vq1, vq2, energy, Wo */ +#define NEWAMP1_PHASE_NFFT 128 /* size of FFT used for phase synthesis */ +#define NEWAMP1_K 20 /* rate K vector length */ +#define NEWAMP1_VQ_MBEST_DEPTH 5 /* how many candidates we keep for each stage of mbest search */ + + +#include "codec2_fft.h" +#include "comp.h" + +void interp_para(float y[], float xp[], float yp[], int np, float x[], int n); +float ftomel(float fHz); +void mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K, float mel_start, float mel_end); +void resample_const_rate_f(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); +float rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim, int mbest_entries); +void post_filter_newamp1(float vec[], float sample_freq_kHz[], int K, float pf_gain); +void interp_Wo_v(float Wo_[], int L_[], int voicing_[], float Wo1, float Wo2, int voicing1, int voicing2); +void resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); +void determine_phase(C2CONST *c2const, COMP H[], MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); +void determine_autoc(C2CONST *c2const, float Rk[], int order, MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); +void newamp1_model_to_indexes(C2CONST *c2const, + int indexes[], + MODEL *model, + float rate_K_vec[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean, + float rate_K_vec_no_mean[], + float rate_K_vec_no_mean_[], + float *se, + float *eq, + int eq_en); +void newamp1_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float user_rate_K_vec_no_mean_[], + int post_filter_en); +void newamp1_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K); +void newamp1_eq(float rate_K_vec_no_mean[], float eq[], int K, int eq_en); +void newamp1_indexes_to_model(C2CONST *c2const, + MODEL model_[], + COMP H[], + float interpolated_surface_[], + float prev_rate_K_vec_[], + float *Wo_left, + int *voicing_left, + float rate_K_sample_freqs_kHz[], + int K, + codec2_fft_cfg fwd_cfg, + codec2_fft_cfg inv_cfg, + int indexes[], + float user_rate_K_vec_no_mean_[], + int post_filter_en); + +#endif diff --git a/src/newamp2.c b/src/newamp2.c new file mode 100644 index 0000000..bba4cc9 --- /dev/null +++ b/src/newamp2.c @@ -0,0 +1,569 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: newamp2.c + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + BASED ON....: "newamp1" by David Rowe + + Quantisation functions for the sinusoidal coder, using "newamp1" + algorithm that resamples variable rate L [Am} to a fixed rate K then + VQs. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright David Rowe 2017 + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + +*/ + +#include +#include +#include +#include +#include + +#include "defines.h" +#include "phase.h" +#include "quantise.h" +#include "mbest.h" +#include "newamp1.h" +#include "newamp2.h" + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: n2_mel_sample_freqs_kHz() + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + Outputs fixed frequencies for the K-Vectors to be able to work with both 8k and 16k mode. + +\*---------------------------------------------------------------------------*/ + +void n2_mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K) +{ + float freq[] = {0.199816, 0.252849, 0.309008, 0.368476, 0.431449, 0.498134, 0.568749, 0.643526, 0.722710, 0.806561, 0.895354, 0.989380, + 1.088948, 1.194384, 1.306034, 1.424264, 1.549463, 1.682041, 1.822432, 1.971098, 2.128525, 2.295232, 2.471763, 2.658699, + 2.856652, 3.066272, 3.288246, 3.523303, 3.772214, 4.035795, 4.314912, 4.610478, 4.923465, 5.254899, 5.605865, 5.977518, + 6.371075, 6.787827, 7.229141, 7.696465}; + int k; + //printf("\n\n"); + for (k=0; kL; m++) { + AmdB[m] = 20.0*log10(model->A[m]+1E-16); + if (AmdB[m] > AmdB_peak) { + AmdB_peak = AmdB[m]; + } + rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; + //printf("m: %d AmdB: %f AmdB_peak: %f sf: %f\n", m, AmdB[m], AmdB_peak, rate_L_sample_freqs_kHz[m]); + } + + /* clip between peak and peak -50dB, to reduce dynamic range */ + + for(m=1; m<=model->L; m++) { + if (AmdB[m] < (AmdB_peak-50.0)) { + AmdB[m] = AmdB_peak-50.0; + } + } + + interp_para(rate_K_vec, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, rate_K_sample_freqs_kHz, K); +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: n2_rate_K_mbest_encode + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + One stage rate K newamp2 VQ quantiser using mbest search. + +\*---------------------------------------------------------------------------*/ + +void n2_rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim) +{ + int i, n1; + const float *codebook1 = newamp2vq_cb[0].cb; + struct MBEST *mbest_stage1; + float w[ndim]; + int index[1]; + + /* codebook is compiled for a fixed K */ + + //assert(ndim == newamp2vq_cb[0].k); + + /* equal weights, could be argued mel freq axis gives freq dep weighting */ + + for(i=0; ilist[0].index[0]; + + mbest_destroy(mbest_stage1); + + //indexes[1]: legacy from newamp1 + indexes[0] = n1; indexes[1] = n1; + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: n2_resample_rate_L + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + Decoder side conversion of rate K vector back to rate L. + Plosives are set to zero for the first 2 of 4 frames. + +\*---------------------------------------------------------------------------*/ + +void n2_resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K,int plosive_flag) +{ + float rate_K_vec_term[K+2], rate_K_sample_freqs_kHz_term[K+2]; + float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; + int m,k; + + /* terminate either end of the rate K vecs with 0dB points */ + + rate_K_vec_term[0] = rate_K_vec_term[K+1] = 0.0; + rate_K_sample_freqs_kHz_term[0] = 0.0; + rate_K_sample_freqs_kHz_term[K+1] = 4.0; + + for(k=0; kL; m++) { + rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; + } + + interp_para(&AmdB[1], rate_K_sample_freqs_kHz_term, rate_K_vec_term, K+2, &rate_L_sample_freqs_kHz[1], model->L); + for(m=1; m<=model->L; m++) { + if(plosive_flag==0){ + model->A[m] = pow(10.0, AmdB[m]/20.0); + }else{ + model->A[m] = 0.1; + } + // printf("m: %d f: %f AdB: %f A: %f\n", m, rate_L_sample_freqs_kHz[m], AmdB[m], model->A[m]); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: n2_post_filter_newamp2 + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + Postfilter for the pseudo wideband mode. Still has to be adapted! + +\*---------------------------------------------------------------------------*/ + +void n2_post_filter_newamp2(float vec[], float sample_freq_kHz[], int K, float pf_gain) +{ + int k; + + /* + vec is rate K vector describing spectrum of current frame lets + pre-emp before applying PF. 20dB/dec over 300Hz. Postfilter + affects energy of frame so we measure energy before and after + and normalise. Plenty of room for experiment here as well. + */ + + float pre[K]; + float e_before = 0.0; + float e_after = 0.0; + for(k=0; kvoiced) { + int index = encode_log_Wo(c2const, model->Wo, 6); + if (index == 0) { + index = 1; + } + if (index == 63) { + index = 62; + } + indexes[3] = index; + } + else { + indexes[3] = 0; + } + if(plosive != 0){ + indexes[3] = 63; + } + } + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: newamp2_indexes_to_rate_K_vec + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + + newamp2 decoder for amplitudes {Am}. Given the rate K VQ and energy + indexes, outputs rate K vector. Equal to newamp1 but using only one stage VQ. + +\*---------------------------------------------------------------------------*/ + +void newamp2_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain) +{ + int k; + const float *codebook1 = newamp2vq_cb[0].cb; + int n1 = indexes[0]; + + for(k=0; kmean2) + +\*---------------------------------------------------------------------------*/ + +void newamp2_16k_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain) +{ + int k; + const float *codebook1 = newamp2vq_cb[0].cb; + float mean2 = 0; + int n1 = indexes[0]; + + for(k=0; k50){ + mean2 = 50; + } + + for(k=0; k0 && indexes[3]<63) { + Wo_right = decode_log_Wo(c2const, indexes[3], 6); + voicing_right = 1; + } + //Unvoiced + else if(indexes[3] == 0){ + Wo_right = 2.0*M_PI/100.0; + voicing_right = 0; + } + //indexes[3]=63 (= Plosive) and unvoiced + else { + Wo_right = 2.0*M_PI/100.0; + voicing_right = 0; + plosive_flag = 1; + } + + /* interpolate 25Hz rate K vec back to 100Hz */ + + float *left_vec = prev_rate_K_vec_; + float *right_vec = rate_K_vec_; + newamp2_interpolate(interpolated_surface_, left_vec, right_vec, K,plosive_flag); + + /* interpolate 25Hz v and Wo back to 100Hz */ + + float aWo_[M]; + int avoicing_[M], aL_[M], i; + + interp_Wo_v(aWo_, aL_, avoicing_, *Wo_left, Wo_right, *voicing_left, voicing_right); + + /* back to rate L amplitudes, synthesis phase for each frame */ + + for(i=0; i0){ + //First two frames are set to zero + if (i<2){ + n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,1); + } + else{ + n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,0); + } + } + //No Plosive, standard resample + else{ + n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,0); + } + determine_phase(c2const, &H[(MAX_AMP+1)*i], &model_[i], NEWAMP2_PHASE_NFFT, fwd_cfg, inv_cfg); + } + + /* update memories for next time */ + + for(k=0; k. +*/ + +#ifndef __NEWAMP2__ +#define __NEWAMP2__ + +#define NEWAMP2_N_INDEXES 4 /* Number of indexes to pack: vq1, vq2, energy, Wo */ +#define NEWAMP2_PHASE_NFFT 128 /* size of FFT used for phase synthesis */ +#define NEWAMP2_K 29 /* rate K vector length */ +#define NEWAMP2_16K_K 40 /* rate K vector length for 16k Mode */ + +#include "codec2_fft.h" +#include "comp.h" + +void n2_mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K); +void n2_resample_const_rate_f(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); +void n2_rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim); +void n2_resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K,int plosive_flag); +void n2_post_filter_newamp2(float vec[], float sample_freq_kHz[], int K, float pf_gain); +void newamp2_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K,int plosive_flag); +void newamp2_model_to_indexes(C2CONST *c2const, + int indexes[], + MODEL *model, + float rate_K_vec[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean, + float rate_K_vec_no_mean[], + float rate_K_vec_no_mean_[], + int plosiv + ); +void newamp2_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain); +void newamp2_16k_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain); +void newamp2_indexes_to_model(C2CONST *c2const, + MODEL model_[], + COMP H[], + float interpolated_surface_[], + float prev_rate_K_vec_[], + float *Wo_left, + int *voicing_left, + float rate_K_sample_freqs_kHz[], + int K, + codec2_fft_cfg fwd_cfg, + codec2_fft_cfg inv_cfg, + int indexes[], + float pf_gain, + int flag16k); + +#endif diff --git a/src/nlp.c b/src/nlp.c new file mode 100644 index 0000000..036f6be --- /dev/null +++ b/src/nlp.c @@ -0,0 +1,521 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: nlp.c + AUTHOR......: David Rowe + DATE CREATED: 23/3/93 + + Non Linear Pitch (NLP) estimation functions. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include "defines.h" +#include "nlp.h" +#include "dump.h" +#include "codec2_fft.h" +#undef PROFILE +#include "machdep.h" +#include "os.h" + +#include +#include +#include + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +#define PMAX_M 320 /* maximum NLP analysis window size */ +#define COEFF 0.95 /* notch filter parameter */ +#define PE_FFT_SIZE 512 /* DFT size for pitch estimation */ +#define DEC 5 /* decimation factor */ +#define SAMPLE_RATE 8000 +#define PI 3.141592654 /* mathematical constant */ +#define T 0.1 /* threshold for local minima candidate */ +#define F0_MAX 500 +#define CNLP 0.3 /* post processor constant */ +#define NLP_NTAP 48 /* Decimation LPF order */ + +/* 8 to 16 kHz sample rate conversion */ + +#define FDMDV_OS 2 /* oversampling rate */ +#define FDMDV_OS_TAPS_16K 48 /* number of OS filter taps at 16kHz */ +#define FDMDV_OS_TAPS_8K (FDMDV_OS_TAPS_16K/FDMDV_OS) /* number of OS filter taps at 8kHz */ + +/*---------------------------------------------------------------------------*\ + + GLOBALS + +\*---------------------------------------------------------------------------*/ + +/* 48 tap 600Hz low pass FIR filter coefficients */ + +const float nlp_fir[] = { + -1.0818124e-03, + -1.1008344e-03, + -9.2768838e-04, + -4.2289438e-04, + 5.5034190e-04, + 2.0029849e-03, + 3.7058509e-03, + 5.1449415e-03, + 5.5924666e-03, + 4.3036754e-03, + 8.0284511e-04, + -4.8204610e-03, + -1.1705810e-02, + -1.8199275e-02, + -2.2065282e-02, + -2.0920610e-02, + -1.2808831e-02, + 3.2204775e-03, + 2.6683811e-02, + 5.5520624e-02, + 8.6305944e-02, + 1.1480192e-01, + 1.3674206e-01, + 1.4867556e-01, + 1.4867556e-01, + 1.3674206e-01, + 1.1480192e-01, + 8.6305944e-02, + 5.5520624e-02, + 2.6683811e-02, + 3.2204775e-03, + -1.2808831e-02, + -2.0920610e-02, + -2.2065282e-02, + -1.8199275e-02, + -1.1705810e-02, + -4.8204610e-03, + 8.0284511e-04, + 4.3036754e-03, + 5.5924666e-03, + 5.1449415e-03, + 3.7058509e-03, + 2.0029849e-03, + 5.5034190e-04, + -4.2289438e-04, + -9.2768838e-04, + -1.1008344e-03, + -1.0818124e-03 +}; + +typedef struct { + int Fs; /* sample rate in Hz */ + int m; + float w[PMAX_M/DEC]; /* DFT window */ + float sq[PMAX_M]; /* squared speech samples */ + float mem_x,mem_y; /* memory for notch filter */ + float mem_fir[NLP_NTAP]; /* decimation FIR filter memory */ + codec2_fft_cfg fft_cfg; /* kiss FFT config */ + float *Sn16k; /* Fs=16kHz input speech vector */ + FILE *f; +} NLP; + +float post_process_sub_multiples(COMP Fw[], + int pmin, int pmax, float gmax, int gmax_bin, + float *prev_f0); +static void fdmdv_16_to_8(float out8k[], float in16k[], int n); + +/*---------------------------------------------------------------------------*\ + + nlp_create() + + Initialisation function for NLP pitch estimator. + +\*---------------------------------------------------------------------------*/ + +void *nlp_create(C2CONST *c2const) +{ + NLP *nlp; + int i; + int m = c2const->m_pitch; + int Fs = c2const->Fs; + + nlp = (NLP*)malloc(sizeof(NLP)); + if (nlp == NULL) + return NULL; + + assert((Fs == 8000) || (Fs == 16000)); + nlp->Fs = Fs; + + nlp->m = m; + + /* if running at 16kHz allocate storage for decimating filter memory */ + + if (Fs == 16000) { + nlp->Sn16k = (float*)malloc(sizeof(float)*(FDMDV_OS_TAPS_16K + c2const->n_samp)); + for(i=0; iSn16k[i] = 0.0; + } + if (nlp->Sn16k == NULL) { + free(nlp); + return NULL; + } + + /* most processing occurs at 8 kHz sample rate so halve m */ + + m /= 2; + } + + assert(m <= PMAX_M); + + for(i=0; iw[i] = 0.5 - 0.5*cosf(2*PI*i/(m/DEC-1)); + } + + for(i=0; isq[i] = 0.0; + nlp->mem_x = 0.0; + nlp->mem_y = 0.0; + for(i=0; imem_fir[i] = 0.0; + + nlp->fft_cfg = codec2_fft_alloc (PE_FFT_SIZE, 0, NULL, NULL); + assert(nlp->fft_cfg != NULL); + + return (void*)nlp; +} + +/*---------------------------------------------------------------------------*\ + + nlp_destroy() + + Shut down function for NLP pitch estimator. + +\*---------------------------------------------------------------------------*/ + +void nlp_destroy(void *nlp_state) +{ + NLP *nlp; + assert(nlp_state != NULL); + nlp = (NLP*)nlp_state; + + codec2_fft_free(nlp->fft_cfg); + if (nlp->Fs == 16000) { + free(nlp->Sn16k); + } + free(nlp_state); +} + +/*---------------------------------------------------------------------------*\ + + nlp() + + Determines the pitch in samples using the Non Linear Pitch (NLP) + algorithm [1]. Returns the fundamental in Hz. Note that the actual + pitch estimate is for the centre of the M sample Sn[] vector, not + the current N sample input vector. This is (I think) a delay of 2.5 + frames with N=80 samples. You should align further analysis using + this pitch estimate to be centred on the middle of Sn[]. + + Two post processors have been tried, the MBE version (as discussed + in [1]), and a post processor that checks sub-multiples. Both + suffer occasional gross pitch errors (i.e. neither are perfect). In + the presence of background noise the sub-multiple algorithm tends + towards low F0 which leads to better sounding background noise than + the MBE post processor. + + A good way to test and develop the NLP pitch estimator is using the + tnlp (codec2/unittest) and the codec2/octave/plnlp.m Octave script. + + A pitch tracker searching a few frames forward and backward in time + would be a useful addition. + + References: + + [1] http://rowetel.com/downloads/1997_rowe_phd_thesis.pdf Chapter 4 + +\*---------------------------------------------------------------------------*/ + +float nlp( + void *nlp_state, + float Sn[], /* input speech vector */ + int n, /* frames shift (no. new samples in Sn[]) */ + float *pitch, /* estimated pitch period in samples at current Fs */ + COMP Sw[], /* Freq domain version of Sn[] */ + float W[], /* Freq domain window */ + float *prev_f0 /* previous pitch f0 in Hz, memory for pitch tracking */ +) +{ + NLP *nlp; + float notch; /* current notch filter output */ + COMP Fw[PE_FFT_SIZE]; /* DFT of squared signal (input/output) */ + float gmax; + int gmax_bin; + int m, i, j; + float best_f0; + PROFILE_VAR(start, tnotch, filter, peakpick, window, fft, magsq, shiftmem); + + assert(nlp_state != NULL); + nlp = (NLP*)nlp_state; + m = nlp->m; + + /* Square, notch filter at DC, and LP filter vector */ + + /* If running at 16 kHz decimate to 8 kHz, as NLP ws designed for + Fs = 8kHz. The decimating filter introduces about 3ms of delay, + that shouldn't be a problem as pitch changes slowly. */ + + if (nlp->Fs == 8000) { + /* Square latest input samples */ + + for(i=m-n; isq[i] = Sn[i]*Sn[i]; + } + } + else { + assert(nlp->Fs == 16000); + + /* re-sample at 8 KHz */ + + for(i=0; iSn16k[FDMDV_OS_TAPS_16K+i] = Sn[m-n+i]; + } + + m /= 2; n /= 2; + + float Sn8k[n]; + fdmdv_16_to_8(Sn8k, &nlp->Sn16k[FDMDV_OS_TAPS_16K], n); + + /* Square latest input samples */ + + for(i=m-n, j=0; isq[i] = Sn8k[j]*Sn8k[j]; + } + assert(j <= n); + } + //fprintf(stderr, "n: %d m: %d\n", n, m); + + PROFILE_SAMPLE(start); + + for(i=m-n; isq[i] - nlp->mem_x; + notch += COEFF*nlp->mem_y; + nlp->mem_x = nlp->sq[i]; + nlp->mem_y = notch; + nlp->sq[i] = notch + 1.0; /* With 0 input vectors to codec, + kiss_fft() would take a long + time to execute when running in + real time. Problem was traced + to kiss_fft function call in + this function. Adding this small + constant fixed problem. Not + exactly sure why. */ + } + + PROFILE_SAMPLE_AND_LOG(tnotch, start, " square and notch"); + + for(i=m-n; imem_fir[j] = nlp->mem_fir[j+1]; + nlp->mem_fir[NLP_NTAP-1] = nlp->sq[i]; + + nlp->sq[i] = 0.0; + for(j=0; jsq[i] += nlp->mem_fir[j]*nlp_fir[j]; + } + + PROFILE_SAMPLE_AND_LOG(filter, tnotch, " filter"); + + /* Decimate and DFT */ + + for(i=0; isq[i*DEC]*nlp->w[i]; + } + PROFILE_SAMPLE_AND_LOG(window, filter, " window"); + #ifdef DUMP + dump_dec(Fw); + #endif + + // FIXME: check if this can be converted to a real fft + // since all imag inputs are 0 + codec2_fft_inplace(nlp->fft_cfg, Fw); + PROFILE_SAMPLE_AND_LOG(fft, window, " fft"); + + for(i=0; isq); + dump_Fw(Fw); + #endif + + /* todo: express everything in f0, as pitch in samples is dep on Fs */ + + int pmin = floor(SAMPLE_RATE*P_MIN_S); + int pmax = floor(SAMPLE_RATE*P_MAX_S); + + /* find global peak */ + + gmax = 0.0; + gmax_bin = PE_FFT_SIZE*DEC/pmax; + for(i=PE_FFT_SIZE*DEC/pmax; i<=PE_FFT_SIZE*DEC/pmin; i++) { + if (Fw[i].real > gmax) { + gmax = Fw[i].real; + gmax_bin = i; + } + } + + PROFILE_SAMPLE_AND_LOG(peakpick, magsq, " peak pick"); + + best_f0 = post_process_sub_multiples(Fw, pmin, pmax, gmax, gmax_bin, prev_f0); + + PROFILE_SAMPLE_AND_LOG(shiftmem, peakpick, " post process"); + + /* Shift samples in buffer to make room for new samples */ + + for(i=0; isq[i] = nlp->sq[i+n]; + + /* return pitch period in samples and F0 estimate */ + + *pitch = (float)nlp->Fs/best_f0; + + PROFILE_SAMPLE_AND_LOG2(shiftmem, " shift mem"); + + PROFILE_SAMPLE_AND_LOG2(start, " nlp int"); + + *prev_f0 = best_f0; + + return(best_f0); +} + +/*---------------------------------------------------------------------------*\ + + post_process_sub_multiples() + + Given the global maximma of Fw[] we search integer submultiples for + local maxima. If local maxima exist and they are above an + experimentally derived threshold (OK a magic number I pulled out of + the air) we choose the submultiple as the F0 estimate. + + The rational for this is that the lowest frequency peak of Fw[] + should be F0, as Fw[] can be considered the autocorrelation function + of Sw[] (the speech spectrum). However sometimes due to phase + effects the lowest frequency maxima may not be the global maxima. + + This works OK in practice and favours low F0 values in the presence + of background noise which means the sinusoidal codec does an OK job + of synthesising the background noise. High F0 in background noise + tends to sound more periodic introducing annoying artifacts. + +\*---------------------------------------------------------------------------*/ + +float post_process_sub_multiples(COMP Fw[], + int pmin, int pmax, float gmax, int gmax_bin, + float *prev_f0) +{ + int min_bin, cmax_bin; + int mult; + float thresh, best_f0; + int b, bmin, bmax, lmax_bin; + float lmax; + int prev_f0_bin; + + /* post process estimate by searching submultiples */ + + mult = 2; + min_bin = PE_FFT_SIZE*DEC/pmax; + cmax_bin = gmax_bin; + prev_f0_bin = *prev_f0*(PE_FFT_SIZE*DEC)/SAMPLE_RATE; + + while(gmax_bin/mult >= min_bin) { + + b = gmax_bin/mult; /* determine search interval */ + bmin = 0.8*b; + bmax = 1.2*b; + if (bmin < min_bin) + bmin = min_bin; + + /* lower threshold to favour previous frames pitch estimate, + this is a form of pitch tracking */ + + if ((prev_f0_bin > bmin) && (prev_f0_bin < bmax)) + thresh = CNLP*0.5*gmax; + else + thresh = CNLP*gmax; + + lmax = 0; + lmax_bin = bmin; + for (b=bmin; b<=bmax; b++) /* look for maximum in interval */ + if (Fw[b].real > lmax) { + lmax = Fw[b].real; + lmax_bin = b; + } + + if (lmax > thresh) + if ((lmax > Fw[lmax_bin-1].real) && (lmax > Fw[lmax_bin+1].real)) { + cmax_bin = lmax_bin; + } + + mult++; + } + + best_f0 = (float)cmax_bin*SAMPLE_RATE/(PE_FFT_SIZE*DEC); + + return best_f0; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: fdmdv_16_to_8() + AUTHOR......: David Rowe + DATE CREATED: 9 May 2012 + + Changes the sample rate of a signal from 16 to 8 kHz. + + n is the number of samples at the 8 kHz rate, there are FDMDV_OS*n + samples at the 48 kHz rate. As above however a memory of + FDMDV_OS_TAPS samples is reqd for in16k[] (see t16_8.c unit test as example). + + Low pass filter the 16 kHz signal at 4 kHz using the same filter as + the upsampler, then just output every FDMDV_OS-th filtered sample. + + Note: this function copied from fdmdv.c, included in nlp.c as a convenience + to avoid linking with another source file. + +\*---------------------------------------------------------------------------*/ + +static void fdmdv_16_to_8(float out8k[], float in16k[], int n) +{ + float acc; + int i,j,k; + + for(i=0, k=0; k. +*/ + +#ifndef __NLP__ +#define __NLP__ + +#include "comp.h" + +void *nlp_create(C2CONST *c2const); +void nlp_destroy(void *nlp_state); +float nlp(void *nlp_state, float Sn[], int n, + float *pitch_samples, COMP Sw[], float W[], float *prev_f0); + +#endif diff --git a/src/noise_samples.h b/src/noise_samples.h new file mode 100644 index 0000000..1e271bc --- /dev/null +++ b/src/noise_samples.h @@ -0,0 +1,60006 @@ +/* unit variance complex noise samples */ + +/* Generated by write_noise_file() Octave function */ + +COMP noise[]={ + {-1.885516,0.055745}, + {-0.521966,-0.622614}, + {1.066249,0.337187}, + {0.425638,1.008370}, + {-0.318666,-0.210894}, + {-0.498824,0.361164}, + {-0.300114,-0.527950}, + {0.385872,0.182296}, + {1.195960,-0.586922}, + {0.266811,0.178374}, + {0.013054,0.215778}, + {-0.823216,-0.322273}, + {0.837766,-0.727259}, + {-0.862485,0.092857}, + {0.075880,0.633056}, + {-0.410681,-0.646296}, + {0.586237,-0.116673}, + {-0.058715,0.066528}, + {0.857992,-1.043428}, + {-0.123710,-0.261511}, + {0.185764,0.023376}, + {0.236794,-0.527785}, + {-1.703954,0.502907}, + {-0.299082,-0.422089}, + {-0.288630,-0.675562}, + {-0.424885,-0.319811}, + {-0.032088,0.101098}, + {0.605509,0.242926}, + {0.145393,-0.199722}, + {-0.184393,-1.528490}, + {0.081268,-0.843421}, + {0.654326,-0.158813}, + {-0.234536,1.226681}, + {0.221648,-1.226646}, + {-0.193938,-0.336096}, + {-0.518051,-1.309855}, + {-0.664323,1.059784}, + {0.007637,1.113850}, + {-0.465620,1.714405}, + {1.028837,-0.549814}, + {0.073478,-0.721235}, + {0.964658,0.084118}, + {-1.822765,-0.997525}, + {1.032482,0.916581}, + {-0.597571,-0.136872}, + {-0.009127,-0.208567}, + {0.516709,-0.773967}, + {-1.129711,1.021948}, + {-0.697322,-0.812202}, + {0.327103,-0.638199}, + {-0.497829,0.319382}, + {-1.362630,-0.414764}, + {-0.307641,0.207521}, + {-0.982186,-0.198641}, + {-0.588516,-0.097265}, + {1.299202,0.644097}, + {-0.972070,-0.680644}, + {0.782015,-0.002870}, + {-1.177445,-1.014379}, + {-0.398772,0.513042}, + {-0.666921,0.266484}, + {-0.803497,0.971730}, + {0.267153,0.335670}, + {-0.591532,0.779734}, + {-1.211656,-0.382351}, + {0.065910,-0.504718}, + {-0.686435,-0.584560}, + {0.858992,-1.042560}, + {0.847992,1.057437}, + {1.492562,-0.829278}, + {0.816092,-1.530742}, + {-0.520592,-0.549319}, + {-0.076793,0.021602}, + {-0.697792,0.763414}, + {0.821960,0.552985}, + {0.376647,-1.094689}, + {-1.401195,-0.857007}, + {-0.376378,-0.783975}, + {-0.120497,0.662907}, + {0.670862,-0.673604}, + {-0.177972,-1.238774}, + {-0.037790,-1.376598}, + {-0.899490,-0.445965}, + {0.474709,1.022354}, + {-0.291882,0.370018}, + {-0.072661,-0.118012}, + {0.396912,-1.371327}, + {-0.711547,0.258054}, + {-1.118704,-0.050908}, + {-0.592657,-1.747229}, + {-0.731285,-0.387065}, + {-0.535939,-0.294046}, + {-1.314716,-1.534715}, + {0.361445,0.618672}, + {-0.082988,-0.336140}, + {0.210252,0.650233}, + {-0.674824,0.056007}, + {0.596070,0.007299}, + {0.305633,-1.176059}, + {1.659456,0.424673}, + {0.660546,-0.514937}, + {-0.206967,0.241885}, + {-1.104655,-0.744576}, + {-0.218762,0.014955}, + {0.165193,1.381141}, + {0.078718,-1.222328}, + {-0.377642,-0.152884}, + {0.108755,0.412056}, + {-0.429127,-0.383452}, + {0.518805,0.741250}, + {0.740139,-0.770384}, + {-1.485392,-0.336407}, + {-0.078238,0.141468}, + {-1.271050,0.180219}, + {-0.211076,-1.217480}, + {1.461947,0.144679}, + {-0.109724,-0.861360}, + {-0.296620,-1.282399}, + {0.201649,-0.713701}, + {-0.156722,0.424378}, + {1.029760,-1.173706}, + {0.571211,-0.156216}, + {-0.455729,0.236642}, + {0.742660,0.014606}, + {-0.097202,-0.498742}, + {0.266521,0.048233}, + {-0.060433,0.282215}, + {-0.239310,1.006663}, + {0.389689,-0.071960}, + {-0.689538,0.568830}, + {0.759056,0.330529}, + {0.149945,-0.521060}, + {-0.580738,-0.907159}, + {1.448531,-0.054100}, + {0.690290,0.275166}, + {-0.478557,-0.516261}, + {-0.820324,-0.831472}, + {-0.341231,0.409044}, + {0.180268,0.231572}, + {-0.450892,1.061669}, + {0.192718,-0.862400}, + {-0.399038,0.268735}, + {-0.856262,-0.454883}, + {0.363651,-0.198669}, + {-0.642075,-0.189629}, + {0.005932,-0.508157}, + {0.985162,-0.020120}, + {1.562916,0.229486}, + {-0.899449,0.307419}, + {0.112975,0.627516}, + {-1.857863,-1.008967}, + {0.378419,0.019322}, + {0.443381,0.253609}, + {1.715317,-0.767294}, + {-0.385770,0.001505}, + {-0.645703,-0.310651}, + {-1.888905,0.409068}, + {0.805380,0.333960}, + {-1.046012,-0.674661}, + {0.794386,-0.303931}, + {-0.286721,0.610492}, + {-0.123797,-0.552424}, + {0.206278,-0.663653}, + {0.428624,-0.249450}, + {0.430463,-0.635776}, + {-0.119454,0.773666}, + {-0.578332,-0.980697}, + {0.235559,1.481441}, + {-0.714737,-1.423728}, + {0.350707,0.157071}, + {0.453768,0.680754}, + {0.283172,-1.286042}, + {0.031254,-0.559665}, + {-0.008719,-0.527750}, + {-1.036011,-0.024812}, + {0.392333,0.647429}, + {0.203090,0.422197}, + {-1.948977,0.778356}, + {1.366324,-0.798091}, + {1.180139,-0.048221}, + {0.114722,1.012431}, + {0.615604,0.391601}, + {0.987843,0.495600}, + {-0.496219,-0.900673}, + {1.001277,-0.568435}, + {-0.576352,-1.332582}, + {0.306377,0.123371}, + {0.211114,-0.685042}, + {0.298619,0.362809}, + {0.202382,0.173210}, + {-0.075417,-0.014578}, + {-1.015379,-0.025271}, + {0.128685,0.929594}, + {-0.723128,0.984769}, + {-0.536901,-0.125969}, + {0.240670,0.812981}, + {-0.763511,1.108132}, + {0.500508,-0.241395}, + {0.624663,-0.410191}, + {-0.094272,-0.521839}, + {1.429982,-0.369827}, + {-0.070236,-1.263636}, + {-0.498143,-0.973796}, + {0.575172,-1.017724}, + {0.487669,0.215515}, + {0.562802,-0.136995}, + {-0.963325,-0.880169}, + {-0.541808,-0.623215}, + {0.613993,0.303645}, + {-0.604527,-0.329199}, + {-0.331248,1.331861}, + {-1.040864,1.077405}, + {0.342707,0.741436}, + {-0.627839,-0.347768}, + {0.231630,-0.578183}, + {-1.128172,0.396462}, + {-0.198999,1.538255}, + {-0.177279,-0.290086}, + {-0.687712,-0.894058}, + {-0.124584,0.925987}, + {-0.602825,0.432388}, + {-0.111357,-0.496225}, + {0.034978,0.298642}, + {0.324142,-0.092883}, + {1.347456,0.820678}, + {0.674479,-0.288974}, + {1.539829,-1.107841}, + {-1.023161,0.056007}, + {0.317892,-0.963086}, + {0.158138,0.483226}, + {0.340379,-0.422898}, + {-0.813880,-0.882603}, + {-0.322466,0.829669}, + {-0.217180,-1.046571}, + {0.452658,0.839521}, + {-0.622912,-0.060398}, + {-0.034008,-0.564055}, + {-1.793271,-0.605655}, + {-0.028383,0.886204}, + {-0.308408,0.061571}, + {0.536948,0.120042}, + {-0.574106,-0.562561}, + {0.406051,-0.338068}, + {0.492813,-0.083346}, + {-0.711445,-0.455225}, + {-0.061165,0.217759}, + {0.338502,-0.376511}, + {0.832324,-0.406104}, + {-0.083176,0.715563}, + {0.040608,-0.871143}, + {-0.462891,0.849255}, + {-0.372708,-1.019345}, + {0.934808,-0.626071}, + {1.010369,-1.084185}, + {0.479580,-0.842863}, + {0.927175,0.131809}, + {-0.689773,-0.142861}, + {1.343912,0.404388}, + {-1.759282,0.448528}, + {0.619114,-0.525565}, + {-0.321018,0.404425}, + {-0.741470,-0.296394}, + {-1.980475,0.026427}, + {-0.614688,0.342918}, + {0.066823,0.132296}, + {0.498182,0.005019}, + {0.182848,0.162708}, + {-0.493550,0.153312}, + {1.072346,-1.225466}, + {1.139312,0.832815}, + {1.252850,0.105664}, + {-0.397363,-0.754276}, + {0.580338,-1.300751}, + {0.009278,-0.598071}, + {0.402804,-0.530334}, + {-0.039782,-0.370667}, + {-0.990988,-0.169245}, + {1.697751,-0.452739}, + {1.272906,-0.324169}, + {-1.567337,-0.459235}, + {-0.798090,-0.024978}, + {0.697111,-1.399949}, + {0.110211,-0.941636}, + {-1.480043,-0.132934}, + {-1.148194,0.987249}, + {-0.873447,-0.209100}, + {1.065186,-1.104929}, + {0.099062,0.126155}, + {1.977617,0.094483}, + {-0.786564,-0.546020}, + {-0.714383,0.131073}, + {0.905849,0.394293}, + {0.190777,-0.513831}, + {0.437916,0.203698}, + {1.043923,0.145473}, + {-0.443628,-0.725054}, + {0.983123,-0.489622}, + {0.842413,0.307580}, + {-0.822191,-0.258379}, + {-0.523631,0.285446}, + {0.571865,-0.025860}, + {-0.201652,-0.099850}, + {-0.022666,0.495916}, + {0.596392,0.867633}, + {0.804110,-0.338599}, + {-0.026179,-1.043212}, + {-0.598738,0.094476}, + {-1.478593,-0.541411}, + {-0.941390,0.363421}, + {0.361994,0.590341}, + {1.113285,-1.212781}, + {0.701988,0.084937}, + {-0.083600,-0.245951}, + {-1.484694,-0.468464}, + {0.162783,1.536800}, + {0.252869,-0.052530}, + {0.926480,-0.277632}, + {0.299984,-1.410909}, + {-0.425939,-0.332244}, + {0.464111,0.662834}, + {-0.802428,-0.324926}, + {0.028548,0.511754}, + {0.140263,0.200719}, + {1.751965,1.362158}, + {0.773686,-0.044970}, + {-0.098854,0.668847}, + {-0.356892,1.006610}, + {0.272827,0.118268}, + {0.294481,0.308008}, + {1.772151,0.001790}, + {0.399585,-0.223070}, + {0.143887,0.187282}, + {-0.580062,0.483563}, + {0.263317,0.146606}, + {0.913153,0.409123}, + {0.176392,0.531394}, + {1.266576,0.812919}, + {-0.339609,-0.004748}, + {1.029027,-0.899818}, + {-0.770858,-0.547236}, + {0.286743,-0.638120}, + {-0.521747,-0.089493}, + {-0.565535,-0.929156}, + {-1.535774,0.479567}, + {-0.615287,-0.520953}, + {-0.553663,-0.319031}, + {0.582640,1.113202}, + {0.232977,0.041975}, + {-0.199109,-0.254687}, + {-0.066200,0.947135}, + {0.666122,0.627375}, + {0.480019,1.051260}, + {-0.093472,-0.787448}, + {0.480187,0.926381}, + {-0.857216,0.556518}, + {0.442832,0.376201}, + {-0.119017,-0.140136}, + {-0.409616,-1.213675}, + {-0.437294,-0.024768}, + {0.451274,-0.787326}, + {-0.533223,-0.923706}, + {0.131233,1.268746}, + {1.743505,1.131077}, + {0.987317,0.595257}, + {-0.088862,0.853512}, + {0.551818,0.665099}, + {0.883782,0.470033}, + {-0.516423,-1.423524}, + {0.091609,0.378477}, + {0.009939,0.994809}, + {1.045723,-1.221703}, + {-0.276956,-0.093140}, + {-0.409436,-0.171621}, + {-0.964290,-0.362871}, + {0.592260,0.544377}, + {-0.681616,-0.447483}, + {-0.431291,0.024446}, + {0.663176,1.026108}, + {0.838537,-0.118180}, + {-0.747318,0.251341}, + {-0.380034,-0.715319}, + {-0.900635,0.212346}, + {-0.464843,0.620745}, + {-1.093005,0.607958}, + {0.515036,1.299937}, + {-1.016371,-0.029679}, + {-0.205308,0.148501}, + {0.505373,-0.440794}, + {-0.048557,-0.301057}, + {-0.698358,-1.099303}, + {-0.088257,-0.329308}, + {0.075595,-0.362464}, + {0.027192,-0.680106}, + {-0.757238,-0.166757}, + {-1.448321,-0.138835}, + {-0.136439,0.459323}, + {0.912758,0.296751}, + {0.799521,-0.573520}, + {-0.861892,-0.589343}, + {-0.567036,0.158120}, + {0.478773,-1.056482}, + {0.709261,0.523567}, + {0.739101,-1.002925}, + {-0.494944,0.003764}, + {0.454782,-0.046268}, + {0.210620,0.297517}, + {-0.781813,0.236194}, + {0.348782,-0.613968}, + {-0.094413,-0.465826}, + {1.768494,-0.406883}, + {0.007841,0.789725}, + {-0.162655,0.552781}, + {-0.758330,0.343804}, + {0.454609,-0.732044}, + {-0.168881,0.095592}, + {0.515566,-0.569084}, + {1.255135,-0.757000}, + {0.469649,0.564189}, + {1.260765,0.360564}, + {0.055027,-0.177677}, + {0.600213,-1.511142}, + {-0.018551,1.257905}, + {0.308072,0.151081}, + {-0.207634,-1.327921}, + {-0.527733,0.174325}, + {-0.159456,-0.732546}, + {-0.220168,-0.415477}, + {0.543532,-0.145998}, + {0.884459,1.021665}, + {-0.262540,-0.398469}, + {-0.281570,0.698927}, + {-0.908972,-0.709079}, + {1.589970,0.503578}, + {-0.171265,-0.741831}, + {-0.743265,-0.294431}, + {0.731885,0.012954}, + {0.007728,-0.499237}, + {0.089515,-0.775161}, + {0.725415,-0.411110}, + {0.298849,-0.118750}, + {-1.303123,0.250206}, + {0.310939,0.936912}, + {-0.172330,0.754859}, + {0.093154,0.269182}, + {-0.858640,-0.029252}, + {-1.073149,0.280686}, + {-0.601430,-0.256738}, + {-0.351531,-0.914084}, + {-1.751136,-0.490966}, + {0.112360,-0.656132}, + {0.921817,-0.276350}, + {0.763771,0.769928}, + {0.221840,1.213251}, + {-0.706608,-0.303978}, + {0.281566,-1.404763}, + {1.496795,0.177279}, + {0.261977,-0.939172}, + {-0.919389,-0.188529}, + {0.044503,0.718759}, + {-0.825230,0.774033}, + {0.693991,0.858213}, + {0.509792,0.099608}, + {-0.020553,-0.839990}, + {-0.854648,-0.540134}, + {-0.000525,1.256322}, + {0.894022,-0.693105}, + {0.442684,-0.596914}, + {0.498318,0.275977}, + {-0.388386,0.465259}, + {0.414579,-1.294942}, + {0.098001,-0.237709}, + {1.594870,-0.240582}, + {-0.711413,0.451491}, + {0.019527,2.133193}, + {0.948900,0.242084}, + {0.059194,0.584269}, + {0.852393,-0.156332}, + {-1.485739,0.262110}, + {-0.016760,-0.827316}, + {-0.891646,0.181925}, + {-0.018801,0.682929}, + {-0.690712,-0.572420}, + {1.070712,0.423795}, + {1.438766,0.043977}, + {-0.318368,-0.067348}, + {-0.661371,-1.089229}, + {0.046538,0.984436}, + {0.749236,-0.964548}, + {1.566314,0.918615}, + {-1.235787,1.002522}, + {0.416022,1.866776}, + {1.217135,0.668893}, + {-0.698937,-0.486054}, + {-0.478062,-1.168289}, + {1.113613,-0.737028}, + {0.773078,0.234230}, + {-0.270515,-0.411625}, + {-0.228462,0.192394}, + {-0.838646,0.153818}, + {-0.436599,-0.408881}, + {-0.286055,-0.410803}, + {0.729377,-0.731766}, + {0.197643,0.237175}, + {0.836606,0.664076}, + {-1.657439,1.703306}, + {-0.925155,-0.171418}, + {0.078549,-0.331130}, + {0.629470,0.307286}, + {1.248656,0.135449}, + {1.243601,0.442489}, + {0.387421,-0.154848}, + {-1.179918,-0.732728}, + {1.236507,0.602991}, + {0.372452,0.171586}, + {-0.394677,-0.101565}, + {0.381677,1.147393}, + {-1.697199,0.109712}, + {0.188553,-0.752200}, + {0.333632,-1.929951}, + {-1.659946,0.767602}, + {-0.190815,-0.557146}, + {-1.244192,0.038106}, + {0.077329,0.305661}, + {0.945212,1.065261}, + {-0.912713,1.292797}, + {-0.391785,-0.024158}, + {0.240759,-1.304114}, + {0.112919,-0.091566}, + {-0.424359,-0.382424}, + {-1.079261,0.972243}, + {0.454041,-0.530269}, + {-1.976890,-0.123184}, + {-0.190632,-0.544888}, + {0.296577,-0.825026}, + {-0.477747,-0.335360}, + {0.208503,0.097964}, + {-0.579558,-0.380423}, + {-0.414982,-0.344604}, + {0.940711,-0.907772}, + {-0.962894,-1.441203}, + {-0.648064,2.197827}, + {-0.633787,-0.990602}, + {0.215111,-0.181544}, + {0.232828,-0.123360}, + {-0.303892,1.339899}, + {-0.166969,1.219343}, + {0.508222,-0.102310}, + {-0.811188,1.126966}, + {0.321233,-1.277579}, + {0.007428,0.316342}, + {0.506948,0.481229}, + {-1.304547,0.311991}, + {0.142125,0.263640}, + {0.391351,0.737307}, + {1.437568,-0.534043}, + {-0.949425,1.069958}, + {-0.409085,-0.759735}, + {0.412259,0.737801}, + {-0.492377,-0.804608}, + {-0.217219,-0.405020}, + {0.115039,0.000846}, + {0.349041,0.299516}, + {-0.460594,0.403723}, + {0.196753,1.155867}, + {-0.277940,0.266830}, + {-0.274583,0.585154}, + {-1.172068,1.790906}, + {0.590439,-0.406621}, + {1.328016,-0.283713}, + {1.517565,-0.073409}, + {0.130855,1.772665}, + {-2.619775,1.072108}, + {0.319751,1.536673}, + {0.047733,-0.326729}, + {0.289634,1.226698}, + {2.014575,-0.883138}, + {0.229264,-0.183602}, + {0.589396,-1.070306}, + {0.273592,-2.039844}, + {-0.935323,-0.715785}, + {0.849403,0.619567}, + {0.480466,-0.484123}, + {0.222280,-0.134613}, + {-0.258632,-1.289221}, + {0.050742,0.026907}, + {-0.283583,0.031728}, + {-0.757978,0.771411}, + {-0.434361,0.111156}, + {0.021107,-0.043801}, + {0.773835,-0.122289}, + {-0.292605,0.119946}, + {0.501058,0.447133}, + {0.227193,0.479879}, + {-0.544627,-0.222938}, + {0.583272,-0.387875}, + {-0.223831,-0.468512}, + {-1.520007,0.446069}, + {-0.573569,0.226990}, + {-1.019881,0.053637}, + {-0.634610,-0.875259}, + {0.504476,-0.027282}, + {-0.039342,0.409377}, + {0.202815,1.231918}, + {-0.843921,0.164374}, + {0.356392,-0.821357}, + {0.108781,-0.523469}, + {-0.196590,-0.568744}, + {0.903934,1.041689}, + {-0.544910,-0.022931}, + {0.299150,1.544291}, + {0.880525,0.454125}, + {-0.528507,-0.169262}, + {-0.683196,-0.079160}, + {0.153998,-0.420623}, + {0.324243,0.022550}, + {0.099578,1.237426}, + {0.613243,0.648504}, + {-0.190038,0.945184}, + {-1.058645,0.829361}, + {0.657373,-0.037085}, + {0.292522,-1.824963}, + {1.306603,0.982009}, + {0.202489,-0.632477}, + {-0.198865,1.503029}, + {-0.506292,0.002522}, + {0.709691,0.107836}, + {-0.135288,-0.949001}, + {-0.013697,0.446746}, + {0.269863,1.736851}, + {0.147020,-0.676663}, + {-0.044332,0.878172}, + {-0.969214,0.385042}, + {-0.108626,-0.577699}, + {0.573041,-0.693982}, + {-0.430415,1.253413}, + {0.106646,-0.057892}, + {-0.946692,-0.108739}, + {-0.070615,-0.924246}, + {-0.407323,-1.048572}, + {0.541592,-0.183877}, + {1.559869,-0.734420}, + {-0.667415,-0.567982}, + {0.194163,-0.030077}, + {0.088646,0.226636}, + {0.502396,-1.399375}, + {-0.016646,-0.215656}, + {0.348238,0.112063}, + {1.303715,0.470275}, + {-0.665134,-0.786941}, + {0.470438,0.135527}, + {-1.337204,0.482771}, + {-0.535810,0.980521}, + {-0.168026,-0.750603}, + {0.387649,-0.230317}, + {-0.100852,0.278379}, + {0.685615,0.909829}, + {-1.248533,-0.401446}, + {0.402464,1.846549}, + {0.119498,0.304702}, + {0.717501,-1.078118}, + {-0.450438,0.775426}, + {-1.459832,-0.482867}, + {0.328487,-0.012362}, + {-0.126026,0.086507}, + {-0.630993,0.029377}, + {-1.326625,0.927913}, + {-0.198820,0.150652}, + {0.266277,-0.555360}, + {0.424295,-0.359816}, + {1.393099,-0.408979}, + {-0.137465,0.133084}, + {0.628200,-0.501458}, + {-0.684531,-0.666955}, + {-0.181920,0.890694}, + {-0.700720,-0.956197}, + {-0.060714,-1.247294}, + {-0.405972,-0.881525}, + {1.118188,0.072000}, + {-0.195761,-1.868639}, + {0.358203,0.349429}, + {0.154352,-1.476324}, + {-0.210438,-1.836233}, + {0.277728,0.211249}, + {0.104063,1.608697}, + {0.078646,-0.690233}, + {1.107666,0.152621}, + {0.976973,0.132356}, + {0.625021,0.424496}, + {1.106620,-1.108251}, + {-0.606551,0.611908}, + {-0.079978,0.362614}, + {0.450618,0.582625}, + {-0.256559,-0.109762}, + {-1.029120,-0.607627}, + {0.030983,0.226229}, + {0.466365,-0.698225}, + {-0.320317,0.232588}, + {-0.294836,0.215016}, + {0.380833,0.902802}, + {0.179398,-0.539814}, + {-0.750583,-0.650149}, + {-0.528202,0.616827}, + {-1.363519,-1.202585}, + {0.284990,-1.236363}, + {0.243581,-0.864788}, + {0.624023,0.137801}, + {-0.032040,-0.595454}, + {0.518910,0.207927}, + {-0.623962,0.216663}, + {-0.382311,0.684690}, + {-1.561598,0.901426}, + {0.426931,1.278804}, + {0.332361,-0.658982}, + {0.181141,-0.012956}, + {0.171052,0.552234}, + {-0.435677,0.454231}, + {-0.919015,0.176359}, + {-0.000067,-0.799626}, + {-0.930220,-0.187525}, + {-0.452119,-0.228146}, + {0.380184,-0.566153}, + {-0.179594,0.470684}, + {0.176167,-0.917050}, + {0.002315,0.589605}, + {1.252774,0.206557}, + {-0.284561,-1.124914}, + {0.174024,0.351072}, + {-0.838853,1.170720}, + {-0.067488,-0.254230}, + {-0.622343,-1.414225}, + {0.436853,0.611763}, + {-0.128391,0.096025}, + {-0.819464,-0.451713}, + {-0.165038,-0.122421}, + {0.024147,-1.314003}, + {0.304931,0.164088}, + {-0.288640,-0.620373}, + {0.357003,0.454057}, + {-1.286647,0.415088}, + {1.849891,0.616365}, + {-0.185972,-1.212797}, + {-0.415794,-0.401859}, + {-0.431783,-0.137922}, + {0.768623,-0.292081}, + {0.012545,1.445239}, + {-1.689607,-0.394403}, + {0.152052,-0.025210}, + {-1.765495,0.816127}, + {0.035743,0.371073}, + {-0.218734,-0.149507}, + {1.291120,-1.111594}, + {-0.374380,0.070194}, + {-0.903368,0.788305}, + {0.867657,-0.973921}, + {0.913874,0.430432}, + {-0.121419,0.832404}, + {-0.415312,1.135312}, + {-0.393487,-0.150178}, + {-0.079568,-0.565870}, + {1.522292,0.090401}, + {-0.334966,0.599134}, + {0.515824,0.178857}, + {-0.199075,-0.457595}, + {0.246401,-0.054357}, + {1.396896,-1.363043}, + {-0.027178,-0.553311}, + {1.010836,0.249187}, + {0.075435,0.009485}, + {-0.217608,1.185129}, + {-0.522616,0.556410}, + {0.858783,-0.313273}, + {-0.001036,-0.621413}, + {0.960607,-1.149066}, + {-0.521696,0.268324}, + {-0.517445,-1.383789}, + {0.305025,0.761437}, + {0.031777,-0.095862}, + {-0.795680,-1.512038}, + {0.033550,-0.338430}, + {-0.398340,-0.145735}, + {-0.322545,0.322695}, + {0.372049,-0.610750}, + {-0.137179,-0.590167}, + {-0.504190,-0.258481}, + {-0.335035,0.338316}, + {-0.364893,0.692466}, + {0.038100,-0.724327}, + {0.296797,0.135183}, + {0.159604,0.214980}, + {0.250361,-0.215980}, + {-0.347541,0.122078}, + {-0.056809,0.890072}, + {0.285375,0.181473}, + {0.170715,-0.393356}, + {-1.015282,-0.208756}, + {-0.785738,0.483868}, + {0.007467,1.387720}, + {-0.178938,0.754625}, + {0.664808,-0.600883}, + {0.001036,-0.083353}, + {0.194157,0.160494}, + {1.084332,-0.062428}, + {0.349357,0.373911}, + {1.433766,-1.303837}, + {0.037403,2.429277}, + {0.395728,-0.834206}, + {-0.389085,-0.755077}, + {0.850327,0.007645}, + {-0.368104,0.126990}, + {-0.775816,-0.923819}, + {-0.537167,0.945156}, + {0.142793,1.312552}, + {-0.125607,0.032723}, + {-0.137840,-0.002817}, + {0.742073,0.013517}, + {0.251125,-0.528226}, + {0.820089,-0.035605}, + {-0.713914,0.167522}, + {-0.863981,-0.178499}, + {-0.390476,-0.120624}, + {0.583901,-0.243569}, + {-0.227909,0.309306}, + {0.324491,-0.693688}, + {-1.094183,0.252179}, + {0.192052,0.039188}, + {-0.267150,-0.444016}, + {-0.005890,-0.573760}, + {-0.232266,-0.276434}, + {0.382483,0.162194}, + {0.150483,-0.651730}, + {0.067169,0.902480}, + {-2.098348,0.945188}, + {0.825451,1.329186}, + {-0.815597,-1.181818}, + {0.461014,-0.678300}, + {-0.711512,0.009708}, + {0.260361,1.191568}, + {0.185182,-0.338544}, + {0.478590,0.221720}, + {0.624523,0.990393}, + {-0.706888,0.014106}, + {1.173506,-1.110449}, + {-0.091258,-0.061557}, + {1.120091,1.816875}, + {-0.989880,-1.531038}, + {0.692417,-1.128270}, + {1.716773,0.088070}, + {1.162503,0.054400}, + {0.810364,0.272585}, + {-0.013515,-0.520286}, + {-0.730928,-0.950759}, + {0.008127,0.539806}, + {-1.317219,0.544458}, + {0.781036,0.503169}, + {-0.335197,-0.425765}, + {-0.735000,-0.347362}, + {0.528729,0.365142}, + {-0.617825,0.301920}, + {0.910278,-0.760821}, + {-0.709713,-0.356227}, + {0.953397,0.042611}, + {0.086349,-0.037081}, + {0.171876,0.033586}, + {1.106060,-0.413432}, + {-0.408955,1.259989}, + {0.072173,1.348382}, + {0.650744,0.132067}, + {0.241760,-0.334014}, + {-0.088343,0.502032}, + {-0.043052,0.355098}, + {-0.313450,0.269137}, + {-0.329212,-1.672112}, + {-0.207438,-0.117867}, + {0.366077,-0.234852}, + {0.411392,-0.008275}, + {0.353902,0.251566}, + {-1.477623,0.757765}, + {0.654771,-0.149077}, + {0.076332,-0.376470}, + {-0.879182,-0.887672}, + {0.125407,1.010632}, + {-0.871182,0.304759}, + {0.194266,-0.223159}, + {0.060104,-0.953143}, + {-0.045438,0.534938}, + {0.615844,0.411408}, + {-0.374972,-0.055209}, + {-0.253019,0.383784}, + {-0.891703,-0.218474}, + {-0.706804,0.115545}, + {-1.026031,1.389687}, + {-0.462136,0.335579}, + {-0.773215,-0.951771}, + {-0.779558,-0.464746}, + {0.476106,-0.777170}, + {0.664543,-0.569407}, + {0.214316,0.063090}, + {-0.569488,-0.008396}, + {0.750912,-0.739441}, + {0.214514,0.148096}, + {-0.198354,1.474815}, + {-1.805212,-0.107083}, + {0.169518,-0.786940}, + {-0.409644,0.852013}, + {-0.221826,-0.037541}, + {0.253388,-0.616419}, + {-1.774513,-1.460955}, + {0.742875,0.456503}, + {-0.232420,-1.359596}, + {-0.507235,-0.763391}, + {0.195227,0.320688}, + {-0.224637,-0.845635}, + {1.009627,0.163178}, + {0.778218,-1.096235}, + {0.865546,0.293077}, + {1.466179,0.233799}, + {0.226625,-0.545274}, + {0.692166,-0.527514}, + {0.013789,0.635607}, + {0.807891,-0.801895}, + {-1.053395,0.465520}, + {-0.036991,-1.273551}, + {-0.589794,-0.753839}, + {-0.030564,-0.036160}, + {0.155678,-1.045183}, + {0.625342,-0.595545}, + {0.036864,-0.046397}, + {-0.004179,-0.652544}, + {-0.820676,0.620457}, + {-0.183887,0.725946}, + {-0.166238,-1.560859}, + {0.175907,-1.429565}, + {-0.020052,0.815148}, + {-0.197063,-1.522027}, + {0.813251,-2.196093}, + {-1.334144,-0.008865}, + {0.412217,0.219281}, + {-0.080738,-0.419816}, + {0.192626,-0.493562}, + {-0.370266,-1.389646}, + {-0.030379,0.021337}, + {0.496641,0.294285}, + {-0.416795,0.418699}, + {0.195812,-0.707197}, + {0.122865,-0.525780}, + {-0.610908,-0.373378}, + {-0.177131,-1.018769}, + {0.403266,0.457369}, + {-0.288750,1.777459}, + {-0.606019,0.137316}, + {0.164513,1.727904}, + {0.911565,-0.299473}, + {-0.493145,0.145941}, + {0.279365,0.579905}, + {0.452409,1.222730}, + {-0.329814,0.070742}, + {-0.098010,-0.289855}, + {1.204663,0.662790}, + {-0.493696,0.573452}, + {-0.938748,-0.639465}, + {-0.739078,1.243613}, + {-0.343832,0.558003}, + {0.027203,0.055290}, + {-0.170201,0.729385}, + {-0.878156,-1.902973}, + {0.690907,1.079256}, + {0.028972,0.634171}, + {-0.155383,0.545055}, + {-0.431928,0.330613}, + {-0.635781,0.072453}, + {0.615176,0.308009}, + {0.104105,-0.205818}, + {0.415076,1.103903}, + {-0.024480,0.212016}, + {0.664855,-0.116184}, + {0.652496,-1.192114}, + {0.695982,-0.080428}, + {-0.526819,-0.078349}, + {1.742119,0.556368}, + {-0.153092,1.204460}, + {0.311190,0.421990}, + {0.938121,1.025194}, + {0.156598,-0.031073}, + {0.224118,0.600692}, + {-0.051218,0.216583}, + {-0.842484,0.468331}, + {0.407989,0.450259}, + {-0.949113,-1.564583}, + {-0.434143,0.325978}, + {0.747291,2.322704}, + {0.737442,1.246064}, + {-0.762481,-0.758876}, + {0.729215,0.853799}, + {-0.908589,-0.622078}, + {-0.598447,1.603107}, + {-0.959017,0.214551}, + {0.536470,-0.187251}, + {0.530038,0.557070}, + {-0.247256,0.391664}, + {0.445570,0.089350}, + {1.499768,-0.418437}, + {0.800986,-0.273838}, + {0.177952,-1.141694}, + {1.090844,1.147880}, + {0.084762,-0.180105}, + {-0.464588,0.255076}, + {-0.710487,-0.422911}, + {-0.159879,0.388722}, + {0.919932,-0.041034}, + {-0.515947,-0.139864}, + {-0.432913,-0.527550}, + {-0.275296,-1.159533}, + {-0.136299,0.789806}, + {-0.464789,-0.109964}, + {0.939702,-0.027732}, + {0.197460,0.125553}, + {0.360497,-0.081121}, + {-1.038393,0.917326}, + {-0.562256,-0.247960}, + {-0.506010,0.057694}, + {-0.061158,0.007115}, + {1.085933,0.036530}, + {0.782551,0.730841}, + {-1.730593,-0.649685}, + {1.033557,0.042674}, + {1.004293,-0.582702}, + {-0.588062,1.893153}, + {-0.038458,-0.489328}, + {-0.223353,0.176598}, + {-0.602039,-0.177264}, + {0.484092,-0.207521}, + {0.131809,0.406690}, + {-0.420236,2.391833}, + {-1.389783,-0.697870}, + {-1.051676,0.985787}, + {1.027283,0.026054}, + {-0.193866,0.459321}, + {-0.237210,-0.168983}, + {0.034746,0.785979}, + {1.228488,-0.966549}, + {1.189960,0.910590}, + {0.215783,-0.132182}, + {0.865491,1.580951}, + {0.342861,-1.317527}, + {-0.347129,0.117582}, + {0.477505,0.073989}, + {-0.330732,-0.626076}, + {-0.383103,-1.051103}, + {-1.127629,0.266550}, + {0.077820,0.478365}, + {0.979591,-0.218870}, + {-0.666472,0.081770}, + {-0.846640,0.983632}, + {-0.481019,0.374114}, + {0.076811,0.167969}, + {-1.276667,-1.056656}, + {0.884138,1.533002}, + {-0.422899,0.149947}, + {-0.471814,0.310129}, + {-0.294613,0.138715}, + {-0.917606,0.974627}, + {0.338625,0.106750}, + {-0.447939,-0.094187}, + {0.404872,0.074803}, + {-0.759799,-0.426123}, + {-0.788273,0.712513}, + {-0.021566,-0.188178}, + {-0.162962,-1.214495}, + {0.093791,-0.540991}, + {-0.961095,0.434286}, + {0.353384,-1.489342}, + {0.292430,-1.036190}, + {0.150482,-0.471052}, + {0.149233,-0.987746}, + {-0.432685,0.980449}, + {-0.738729,0.443044}, + {-0.038329,0.068701}, + {1.188859,-0.898705}, + {-1.250213,-0.076530}, + {-0.526824,0.334444}, + {-0.464058,0.049049}, + {-0.642591,-0.525583}, + {0.192584,-0.630311}, + {0.437306,0.681520}, + {0.487855,0.369540}, + {0.641239,-0.574243}, + {0.371964,-1.021879}, + {-1.041124,0.131275}, + {-0.691663,0.998510}, + {0.546112,0.831658}, + {1.393481,-0.148050}, + {1.262175,0.248708}, + {0.540609,-0.336198}, + {0.041225,-1.024662}, + {-0.177173,-0.224147}, + {0.867867,-0.187578}, + {-0.967667,-1.219234}, + {0.213381,-0.057988}, + {-0.675667,-1.091565}, + {0.556298,-0.770728}, + {-0.188682,0.656382}, + {-0.092475,0.407926}, + {-1.641683,0.484862}, + {0.190082,-0.330329}, + {0.174209,-0.676685}, + {-0.950743,-0.193766}, + {-0.435225,-0.580076}, + {0.246472,-0.472847}, + {-0.505688,-0.759662}, + {-1.255934,-0.736332}, + {1.935964,0.332194}, + {-0.500932,0.083885}, + {-0.067564,0.231471}, + {-0.379280,0.846503}, + {-0.030848,-0.246677}, + {0.125241,-0.397222}, + {-1.137543,-0.555543}, + {-0.122221,0.387840}, + {2.042492,-1.202247}, + {1.772027,0.326225}, + {-0.550197,0.205095}, + {0.450376,0.791456}, + {-0.506594,0.069919}, + {-0.063568,1.032985}, + {-0.621426,-0.028421}, + {0.043761,-1.038331}, + {-2.012759,-0.886260}, + {-0.144653,-0.613454}, + {1.042293,-0.047165}, + {-0.059067,0.116286}, + {0.148872,-0.095572}, + {-0.573228,-0.480453}, + {-0.200914,-1.046460}, + {-0.824112,1.568436}, + {-0.133283,-0.288869}, + {0.597348,0.377234}, + {-0.505799,1.227439}, + {-0.606898,0.148651}, + {-0.583873,-1.081077}, + {-0.347056,0.271253}, + {0.784106,0.033133}, + {0.184385,0.180992}, + {0.378686,-0.264273}, + {1.264891,1.156455}, + {-0.180967,0.378180}, + {1.185364,2.147560}, + {-0.443654,-0.290601}, + {-1.069806,0.508735}, + {1.608167,1.233684}, + {-0.794538,0.519840}, + {-0.078219,1.219228}, + {0.334451,-0.046541}, + {-0.666285,0.564027}, + {-0.577876,-0.550521}, + {-0.000416,-0.584869}, + {0.624742,-0.128862}, + {-0.205674,-0.383454}, + {-0.377425,0.710460}, + {0.086861,-1.107777}, + {0.781845,-0.797178}, + {0.153671,0.734022}, + {0.009617,-0.036667}, + {0.752946,1.007603}, + {0.471233,0.459138}, + {-0.821665,-0.267974}, + {-0.924172,0.593227}, + {-0.364922,0.183033}, + {0.503286,0.374220}, + {0.817608,-1.185941}, + {-1.068648,0.590834}, + {-0.100083,-0.975689}, + {0.801345,0.166370}, + {0.878885,0.514705}, + {-0.707014,0.403084}, + {0.827796,0.483292}, + {-0.975586,0.279704}, + {0.362153,1.075430}, + {0.799974,0.002309}, + {0.676713,-1.092933}, + {1.578438,0.276312}, + {0.110806,-1.246881}, + {-0.865309,0.165009}, + {-0.282162,0.733062}, + {-0.990404,-0.702353}, + {0.121363,0.147771}, + {0.038031,-0.195024}, + {0.138621,0.371235}, + {0.142721,0.021207}, + {0.268035,-0.692454}, + {0.945280,-0.180407}, + {-0.253126,-1.299034}, + {0.215126,0.964959}, + {0.214474,0.039968}, + {-0.315065,1.317935}, + {-0.495310,0.013483}, + {0.470253,0.354208}, + {-0.089794,0.245806}, + {-0.208178,1.288801}, + {0.753819,-0.739573}, + {-0.885257,-0.056685}, + {0.478816,0.673381}, + {0.388771,0.612329}, + {-0.820496,-1.297063}, + {-1.437975,0.521158}, + {0.271222,-0.170637}, + {-0.400573,-0.022383}, + {-1.216831,-0.194283}, + {1.347498,-0.865849}, + {1.490747,1.638422}, + {-0.066047,-0.399105}, + {-0.420802,1.133171}, + {0.135157,1.573802}, + {0.541187,0.894018}, + {1.510389,0.809415}, + {0.881448,-0.730401}, + {0.296695,-0.733757}, + {0.339736,-1.370242}, + {0.274695,0.252843}, + {-1.281780,0.313851}, + {1.274502,-0.466039}, + {0.808820,-0.486975}, + {0.817662,0.485549}, + {-0.095951,0.029602}, + {-0.110720,0.676979}, + {1.202230,0.782503}, + {0.323406,-0.119733}, + {-0.284233,0.460801}, + {-0.138012,-0.172029}, + {0.660058,-0.652850}, + {0.681055,0.587900}, + {1.034573,-1.401681}, + {-0.803681,0.663399}, + {0.279558,-1.726715}, + {-0.064446,-0.133818}, + {0.111129,-0.818469}, + {-0.109438,0.108017}, + {0.655329,-0.214051}, + {-0.182692,0.983672}, + {-0.386961,-0.148666}, + {-0.520381,0.408330}, + {-0.277355,0.529608}, + {-0.227798,1.212313}, + {0.286884,1.328657}, + {0.330357,0.676798}, + {-0.386855,-0.073008}, + {-0.005346,0.643306}, + {-0.408125,-0.611805}, + {-1.344349,1.214852}, + {0.280046,0.328383}, + {0.193258,0.841163}, + {0.688097,1.470022}, + {-0.543274,0.871549}, + {-0.243657,0.867887}, + {0.031152,0.192752}, + {-1.158627,-1.398383}, + {-0.797943,-0.620853}, + {0.551211,-1.681158}, + {0.057558,-1.031877}, + {-1.029493,0.639438}, + {0.099115,-0.246357}, + {0.343168,0.265658}, + {1.188859,1.031717}, + {0.126086,0.836314}, + {-0.606482,0.051107}, + {0.162957,-0.781010}, + {-0.462344,-0.438913}, + {-0.539638,0.657519}, + {0.022154,0.230604}, + {-0.843574,0.180764}, + {0.398755,-0.125898}, + {0.299966,-0.155337}, + {1.022899,-0.742968}, + {-0.807121,-0.640128}, + {-0.392841,-0.596371}, + {-0.360295,-1.003922}, + {0.679328,-0.665397}, + {-0.072668,1.290516}, + {-0.280499,-0.949490}, + {0.111927,0.581514}, + {-1.363240,-1.343656}, + {-1.084450,0.050768}, + {-0.385367,-0.565308}, + {0.202467,-1.237126}, + {-0.242867,0.417895}, + {-1.545462,-0.660856}, + {-0.215712,0.754475}, + {0.950926,0.189388}, + {-0.907607,-0.356709}, + {-0.018424,-0.492529}, + {0.592479,-0.228064}, + {-0.666301,-0.997495}, + {0.316365,2.371218}, + {0.234107,-0.170388}, + {-0.382072,-0.617266}, + {0.008455,0.054220}, + {0.391055,-0.070040}, + {-1.131104,0.097647}, + {0.114958,0.491805}, + {-1.828644,0.079717}, + {1.282146,0.110291}, + {0.357302,-0.071632}, + {-1.285120,-0.698425}, + {-0.620723,0.250825}, + {-1.580495,0.607744}, + {-0.310391,0.023209}, + {0.659152,-0.517724}, + {0.722716,0.407689}, + {-0.310078,0.307880}, + {-0.515929,-0.421393}, + {0.481648,-0.771808}, + {-0.613531,-0.311456}, + {-0.557038,0.487850}, + {0.240958,1.033137}, + {-0.411849,-0.652721}, + {-1.414977,1.570391}, + {0.198022,0.143388}, + {-0.665199,0.006710}, + {-0.125512,1.145256}, + {0.939666,-0.184737}, + {1.254756,0.210233}, + {-0.414391,-1.647095}, + {0.149630,0.144509}, + {0.288296,0.362648}, + {-0.017046,0.108292}, + {0.500758,1.194654}, + {-0.132504,0.838117}, + {0.436872,-1.259608}, + {0.185786,-0.150289}, + {0.570040,-0.268047}, + {-0.924944,0.709866}, + {0.460708,-0.753595}, + {1.505297,0.124422}, + {0.070403,0.380217}, + {-0.453289,-0.844383}, + {0.339141,0.421633}, + {-0.276216,0.254737}, + {-0.740343,0.477980}, + {-1.140554,0.373471}, + {-0.619092,-0.126768}, + {-0.106514,-0.394367}, + {1.219767,0.408088}, + {0.570849,0.749630}, + {0.279189,0.802048}, + {-1.761637,0.917490}, + {-0.125839,-0.480779}, + {-0.716519,-1.313543}, + {-0.886599,1.677483}, + {0.471796,0.455429}, + {0.472861,-0.700399}, + {0.630634,0.789490}, + {0.388011,0.023963}, + {0.160770,-0.328353}, + {0.684503,-0.912411}, + {-0.613712,-0.942848}, + {0.187679,-1.243436}, + {-0.303386,0.183180}, + {-0.430191,-0.919399}, + {-0.486669,0.017418}, + {-0.196664,-0.596788}, + {-0.016898,-0.305134}, + {-1.003277,0.875101}, + {0.016353,-0.323237}, + {0.821922,0.531172}, + {0.068244,-1.142754}, + {0.564201,-0.493468}, + {-0.108778,-0.451831}, + {-1.104421,-0.533559}, + {-0.190109,1.354647}, + {-1.625892,-0.106572}, + {0.053986,0.048085}, + {-0.078443,-0.504104}, + {-0.981755,0.138946}, + {-0.089922,0.305097}, + {-2.134689,-0.514083}, + {-0.557133,1.367571}, + {-0.124624,0.607339}, + {-1.498195,-1.186483}, + {-0.872943,-0.334031}, + {0.433069,0.253202}, + {0.748849,0.097565}, + {0.431413,-0.732537}, + {0.468929,0.578734}, + {-1.277818,0.672101}, + {0.471820,-0.460997}, + {0.494373,0.102286}, + {-0.141118,0.866229}, + {-0.347544,-0.467992}, + {-0.772585,0.634551}, + {-0.968830,-0.935472}, + {-0.019241,0.227594}, + {-0.813687,0.776289}, + {-0.124640,0.511015}, + {0.045039,0.998667}, + {0.160430,-0.284327}, + {-0.252488,-0.276808}, + {-1.446518,-0.593809}, + {0.444264,-0.215641}, + {-0.495694,1.313423}, + {0.233200,0.628049}, + {1.058397,-0.209975}, + {-0.631813,0.212791}, + {0.724289,0.730092}, + {0.766557,0.140992}, + {-0.422498,-0.065908}, + {0.759667,-0.394613}, + {-0.280825,-0.249983}, + {-0.334594,-0.099555}, + {-0.100845,-0.279454}, + {-0.631641,-0.001709}, + {-0.390891,0.591299}, + {-0.614147,-0.867562}, + {0.794232,0.262570}, + {-0.855585,-0.445803}, + {0.137634,-0.208739}, + {0.735539,-0.285394}, + {0.254964,-1.231606}, + {0.529011,0.143706}, + {1.430450,-0.392117}, + {0.441543,-0.753268}, + {-0.215594,0.692776}, + {0.235193,1.031127}, + {-0.658717,-0.573607}, + {-0.945679,-1.445653}, + {-0.416275,0.659500}, + {0.907194,0.304227}, + {-0.031342,0.374716}, + {0.005759,-0.770302}, + {-0.877440,-0.213883}, + {-0.710438,-0.089993}, + {-0.417193,-0.780149}, + {0.281753,-1.127371}, + {0.074096,0.751776}, + {-1.369300,-0.313873}, + {0.975236,-0.674780}, + {-0.395840,0.453994}, + {0.229087,-0.431998}, + {0.686648,-0.040472}, + {-1.932872,-2.114067}, + {-0.053147,0.889797}, + {1.557776,0.187376}, + {-0.177372,-0.372058}, + {-0.145758,-0.406644}, + {0.893661,-0.736872}, + {0.699794,-0.837986}, + {0.562408,-1.315862}, + {0.248331,0.796103}, + {-0.974681,-0.545749}, + {-0.633997,-0.920930}, + {-0.653344,-0.148806}, + {-0.278669,-1.016823}, + {0.990752,0.282628}, + {-0.002135,0.295268}, + {0.247889,-0.002233}, + {0.299683,0.464098}, + {-0.348562,0.234081}, + {-0.653547,1.042115}, + {1.427451,-0.211486}, + {-0.249740,0.299611}, + {0.236624,-0.236593}, + {0.361321,-0.011710}, + {0.225996,-0.116814}, + {0.665416,-0.154760}, + {-0.343271,0.309692}, + {0.214282,0.840876}, + {0.436174,0.465315}, + {0.491642,-0.396010}, + {-0.840432,0.546308}, + {-0.484284,-0.253952}, + {-0.674070,0.614429}, + {-1.132196,0.300718}, + {-0.686720,-0.668618}, + {-0.209752,-0.193816}, + {-0.864450,0.711636}, + {-0.704162,0.080921}, + {-0.281052,-0.711402}, + {0.476961,-0.296571}, + {-0.567590,0.120557}, + {1.206292,-0.739669}, + {0.073467,0.983447}, + {-0.761649,-0.205547}, + {-0.101813,-0.757212}, + {-0.036924,-1.095216}, + {-0.203280,0.087312}, + {0.419187,0.045301}, + {-0.128742,0.611231}, + {0.002422,-0.752412}, + {0.674792,0.880037}, + {-0.130573,-0.395283}, + {0.043261,0.842507}, + {0.744393,0.440538}, + {0.327633,0.077634}, + {-0.173323,1.100831}, + {-0.364820,0.190809}, + {-0.929120,0.340176}, + {0.083238,-0.252833}, + {-0.812169,1.206466}, + {-0.658568,0.595224}, + {-1.328600,0.526328}, + {-2.155765,1.269370}, + {-0.046160,-0.114023}, + {0.293193,-0.938083}, + {-0.254478,-1.169655}, + {0.586072,0.064899}, + {-0.826939,0.519365}, + {0.000194,-0.042804}, + {0.703387,0.425636}, + {-0.071028,0.344410}, + {-0.690411,-0.426178}, + {-0.305423,-0.957584}, + {0.565793,0.471864}, + {0.572453,-1.210154}, + {-0.176756,-0.543416}, + {-0.122719,0.142358}, + {0.041164,-0.689254}, + {0.488677,0.046068}, + {0.272934,-0.298194}, + {0.056580,-0.113747}, + {-0.586258,-0.393607}, + {0.449298,0.411649}, + {0.222406,0.339896}, + {-0.259049,0.537135}, + {-0.162509,1.788969}, + {0.261787,-1.022771}, + {0.342338,0.185518}, + {0.579314,-0.173051}, + {-0.141523,-0.044285}, + {0.193116,-0.235134}, + {-1.353094,-1.018692}, + {-0.436509,0.480147}, + {0.110273,0.018753}, + {-0.074405,0.256683}, + {-0.246641,-0.072741}, + {0.193535,0.110739}, + {0.236249,0.450123}, + {-1.328284,0.200608}, + {0.203875,0.971534}, + {0.140868,0.836049}, + {-1.180779,-0.571187}, + {0.352527,-0.941286}, + {-0.603336,1.499530}, + {-1.722024,-0.622489}, + {-0.665516,0.309695}, + {-0.196527,0.388266}, + {0.748597,0.328682}, + {-0.700676,-0.457945}, + {0.241755,0.916166}, + {-1.055948,0.612258}, + {-0.088514,-1.051597}, + {-0.666181,-0.503929}, + {-0.373979,0.896727}, + {-0.372882,-0.074176}, + {-0.109262,0.026398}, + {0.140324,0.378864}, + {-0.019849,-1.097344}, + {0.235596,-0.286668}, + {0.782230,-0.389778}, + {0.013781,-0.571368}, + {0.789306,0.647173}, + {0.630138,0.773210}, + {0.750400,-1.183298}, + {-0.682019,-1.609188}, + {0.896088,0.067930}, + {0.420614,-0.078741}, + {-1.496000,0.450049}, + {-0.863680,-0.475229}, + {-1.423561,-0.224888}, + {0.024832,-0.453597}, + {0.737548,0.300150}, + {-0.738513,0.671116}, + {0.789577,-0.557279}, + {0.667659,-0.837533}, + {0.440875,-1.043855}, + {-0.051215,-1.357721}, + {0.359163,-1.468140}, + {-0.336103,-0.186086}, + {-1.253254,0.917832}, + {-0.307426,0.767409}, + {-0.567196,0.228002}, + {-0.028435,0.944140}, + {0.222374,0.474538}, + {1.165054,-0.954027}, + {0.925421,0.519574}, + {-0.072758,-0.302302}, + {0.298489,0.526333}, + {0.559091,-0.004799}, + {0.661053,-0.291473}, + {0.589520,-0.043129}, + {0.486342,-0.102644}, + {0.399697,0.607928}, + {-1.591074,0.238188}, + {0.864441,0.826969}, + {-0.717594,0.995645}, + {0.335125,1.336621}, + {-0.374524,0.390990}, + {-0.010197,0.428746}, + {-0.061779,0.352761}, + {-1.529446,-0.080619}, + {0.588116,1.395893}, + {-0.455056,0.445153}, + {-0.217297,1.396009}, + {-0.657833,-1.016368}, + {-1.806291,0.038937}, + {0.002294,-0.394349}, + {-0.774411,1.119519}, + {-0.807535,0.342889}, + {-0.122509,0.143458}, + {-1.612262,0.133762}, + {-0.704500,-0.634429}, + {0.421355,1.477149}, + {-0.346425,1.488303}, + {-0.320905,1.385086}, + {0.517736,1.018882}, + {-0.698406,-0.561933}, + {0.455363,1.519318}, + {-1.529130,-0.417045}, + {1.090679,1.108610}, + {0.054188,0.538953}, + {0.034975,0.942247}, + {1.127053,-1.169750}, + {0.347556,0.169247}, + {-0.388350,-0.124856}, + {0.119545,0.172064}, + {0.335029,-0.074899}, + {-0.071492,0.385402}, + {0.701349,0.030827}, + {0.272265,0.385385}, + {-1.295989,-0.440285}, + {-0.016185,-0.292499}, + {-0.425862,0.192669}, + {-0.474981,1.023225}, + {0.378090,-0.085647}, + {-1.380673,-0.172079}, + {0.267498,-0.609266}, + {-0.174361,-0.720071}, + {-0.903868,0.497839}, + {-0.754455,0.498984}, + {0.333531,0.300701}, + {0.570416,0.121552}, + {-0.856487,1.273007}, + {0.864065,0.677483}, + {-0.359296,-0.764656}, + {0.373897,-0.165979}, + {0.004695,1.059938}, + {-0.205988,0.159122}, + {0.240554,-0.757747}, + {-2.731705,-1.090066}, + {0.196211,-0.214263}, + {-1.060994,0.303117}, + {0.065935,-1.370273}, + {0.147199,0.460440}, + {-1.434710,-0.211987}, + {0.506390,0.291023}, + {-0.385415,0.150877}, + {-0.058076,0.033607}, + {-0.040447,0.121214}, + {0.217183,0.381020}, + {0.008537,0.171304}, + {-0.793652,0.273910}, + {-0.113031,-0.165199}, + {-0.137888,-0.411958}, + {0.129773,1.543414}, + {0.026013,1.008311}, + {0.859350,0.590368}, + {0.137087,-0.138097}, + {0.273403,-0.938621}, + {0.365497,-0.156764}, + {0.670901,0.144948}, + {0.356986,-0.869288}, + {-0.882520,-0.440277}, + {0.462818,0.724776}, + {-0.573334,-0.513149}, + {-0.216443,-1.260162}, + {-0.037775,0.735246}, + {-0.374519,0.457316}, + {0.058640,-0.761478}, + {-0.440620,-0.890988}, + {-0.052313,-0.360096}, + {-0.537367,0.085238}, + {-0.894927,-0.267870}, + {-0.710221,-0.890203}, + {-1.603747,1.430830}, + {1.840006,1.279425}, + {0.449807,0.176538}, + {0.071127,-0.599730}, + {0.340974,0.830768}, + {0.167339,0.262566}, + {-0.519153,-0.781460}, + {-0.953526,-0.572926}, + {-0.718084,1.342914}, + {0.887380,-0.767601}, + {-0.500773,-1.256327}, + {-0.504054,-0.387444}, + {-0.423248,0.941044}, + {-0.075436,-0.011957}, + {0.778830,-0.741112}, + {0.527124,1.470712}, + {-0.061345,0.245175}, + {-0.108031,-0.165018}, + {0.089631,-0.062024}, + {-0.079677,-0.101521}, + {-0.396044,-0.025846}, + {0.849632,0.900182}, + {0.614655,-0.309219}, + {-0.168051,0.184285}, + {0.629810,-0.125703}, + {-0.626641,-0.299066}, + {-0.766331,0.668178}, + {1.026631,0.970999}, + {1.056465,0.385935}, + {0.034025,0.934794}, + {1.049357,-1.364552}, + {-0.307284,0.554048}, + {-0.124591,0.459456}, + {0.634236,0.196816}, + {0.846920,-0.870074}, + {0.377849,-0.151186}, + {0.010945,0.711493}, + {-0.143725,-0.331314}, + {-0.428652,0.812929}, + {-0.507231,0.476529}, + {0.822266,-0.169064}, + {-0.312591,0.878717}, + {0.126182,-0.185989}, + {1.011325,0.536978}, + {0.511545,1.633077}, + {-1.054305,0.395063}, + {1.824536,0.854489}, + {-1.843423,1.187168}, + {-0.260379,0.320860}, + {0.762158,0.289641}, + {0.273799,-0.015125}, + {0.406928,0.953909}, + {-0.053545,-0.024161}, + {-0.636427,-0.198150}, + {-0.601937,-0.004703}, + {0.117514,-0.399147}, + {0.147300,-0.182524}, + {0.117742,-0.391568}, + {0.598795,-0.217514}, + {-0.530160,-1.275872}, + {-0.448360,0.509787}, + {-0.231334,0.208376}, + {0.653553,-0.510494}, + {-0.469246,-0.599648}, + {0.223253,-0.260082}, + {0.425304,-1.320700}, + {-1.013285,-0.561188}, + {-0.649321,0.686967}, + {-1.283270,-0.227414}, + {-0.186007,0.368703}, + {-0.136933,-0.192889}, + {1.185159,0.545198}, + {1.216968,0.689015}, + {0.910311,-0.002513}, + {-0.253238,-0.334718}, + {-0.272165,0.329764}, + {0.419154,0.171196}, + {0.856108,-0.866033}, + {-0.363408,-1.279964}, + {-0.323154,1.229737}, + {0.515595,0.771904}, + {-0.113071,0.472993}, + {-1.090156,-0.702003}, + {-0.615317,0.258520}, + {-1.389988,0.090579}, + {0.227189,1.873838}, + {0.238943,1.189236}, + {0.997707,-0.750336}, + {-0.168988,1.198045}, + {-0.908115,-0.325316}, + {-0.276129,-0.887500}, + {-0.193721,0.061984}, + {0.372694,-1.067987}, + {-0.021077,-1.086837}, + {-0.355942,-0.129020}, + {0.601311,0.890568}, + {0.458201,0.949799}, + {0.477640,0.087344}, + {0.024384,0.268283}, + {-0.314620,0.511970}, + {0.208499,-0.010617}, + {1.054139,-0.793165}, + {0.712241,0.313028}, + {0.095001,0.032736}, + {-0.050507,-0.099467}, + {0.966046,-0.046950}, + {0.735177,-0.035276}, + {1.216582,-0.536102}, + {0.579388,0.044030}, + {-0.031001,-1.871012}, + {1.061978,-0.288872}, + {-0.504246,-0.401761}, + {-0.562567,-0.284664}, + {-0.275011,-0.021875}, + {-0.393798,0.931489}, + {0.006711,0.841041}, + {0.402936,0.199119}, + {0.107574,-1.388760}, + {-0.230410,0.022241}, + {-0.191842,-1.192988}, + {1.171249,0.021609}, + {0.716926,0.486816}, + {0.145686,0.517127}, + {-1.328921,0.377331}, + {0.851484,-1.077027}, + {-0.182252,-0.973016}, + {0.547530,0.307628}, + {0.752337,0.227463}, + {-0.943868,-1.105141}, + {0.051322,1.847229}, + {0.162891,1.662704}, + {0.215910,0.074535}, + {0.968104,-0.819955}, + {0.398545,0.106263}, + {0.311276,0.300695}, + {0.553913,1.407050}, + {-0.074835,-0.314706}, + {-0.756606,-0.249815}, + {-0.007184,0.241820}, + {-0.903521,-1.140063}, + {-0.347949,0.735517}, + {-1.520924,-0.054318}, + {-0.336836,-1.417745}, + {0.668140,-0.550144}, + {-0.813826,-0.378920}, + {-1.142460,-0.895100}, + {-0.464542,0.305670}, + {-0.803636,0.464800}, + {-0.519269,0.330770}, + {-0.744446,0.223551}, + {0.133873,0.641134}, + {-0.234319,-0.617046}, + {0.237105,0.190497}, + {-0.207124,0.186992}, + {-0.222716,-0.026379}, + {0.616382,0.940631}, + {-0.202311,0.380659}, + {0.365658,0.144009}, + {1.794867,-0.495343}, + {0.500606,-0.433379}, + {0.363196,-0.689170}, + {-0.025768,0.286324}, + {-0.868493,1.012894}, + {0.110665,-0.207569}, + {-0.041372,1.248633}, + {0.885087,-0.488457}, + {0.910808,0.069023}, + {0.693604,-0.067264}, + {0.566380,0.592366}, + {1.130313,-0.894986}, + {0.853269,1.224186}, + {0.451775,0.907155}, + {-0.899638,-0.755130}, + {0.009159,-0.715130}, + {0.725935,-0.067967}, + {-0.648557,-0.976766}, + {-0.215151,-0.130206}, + {-0.882912,1.101720}, + {0.549423,1.141824}, + {0.091037,-1.123045}, + {0.851998,-1.088543}, + {0.671949,-0.768697}, + {-0.026212,-0.142371}, + {0.188458,0.044498}, + {1.035851,0.732378}, + {0.496930,0.763086}, + {0.620814,-0.084441}, + {-0.816705,-1.005846}, + {0.129933,0.607144}, + {-0.335244,0.079260}, + {0.062206,0.842265}, + {0.342883,0.267645}, + {-0.570073,0.645440}, + {-0.179948,-0.386216}, + {-0.767378,0.206902}, + {0.759143,-0.306648}, + {0.482275,0.475103}, + {0.825030,-0.514951}, + {-1.028938,-0.819744}, + {1.732835,0.066877}, + {0.450762,-0.541033}, + {-0.616540,-0.408825}, + {0.089601,-0.831240}, + {-0.716228,-0.620456}, + {-0.045554,1.373536}, + {0.723475,0.165982}, + {0.238882,-0.391897}, + {1.879258,0.418675}, + {-0.908657,0.808384}, + {-0.286725,0.203416}, + {0.622622,1.988791}, + {-0.204689,0.503124}, + {-0.840514,-1.052989}, + {0.109104,-0.491465}, + {-0.458429,-0.890611}, + {-0.040308,0.387025}, + {0.334213,0.845817}, + {-0.485131,1.161892}, + {-0.154884,-0.021494}, + {0.901447,0.368832}, + {-0.577289,0.422688}, + {0.066667,0.480205}, + {0.497143,1.273457}, + {0.411773,-0.013752}, + {0.663922,0.240592}, + {0.147365,-0.939324}, + {0.265064,-0.679686}, + {0.080121,-0.490473}, + {0.405063,-0.141264}, + {1.250869,-1.013448}, + {-1.771650,-0.026840}, + {-0.214699,-0.238854}, + {0.153398,0.152295}, + {-0.332406,0.850663}, + {0.082405,0.034282}, + {-0.778027,1.776842}, + {1.119535,0.093578}, + {0.405343,0.144457}, + {0.318296,-1.045619}, + {0.894029,-0.789367}, + {-0.705205,-0.559302}, + {-0.583245,-0.587218}, + {-1.732809,0.502952}, + {-0.072216,-0.619449}, + {-1.005389,-1.337074}, + {-0.925036,-1.050076}, + {-0.849897,1.451525}, + {-0.640269,-0.536556}, + {0.280792,-0.596720}, + {-1.731763,-1.392341}, + {0.225837,-1.310780}, + {-0.855570,0.357171}, + {-0.596824,0.705603}, + {1.015263,-0.013845}, + {-1.378102,-0.871470}, + {-0.037446,-0.148328}, + {-1.100256,-0.404901}, + {0.618017,-0.193406}, + {-0.165397,0.385855}, + {1.048162,1.070281}, + {0.913836,0.796236}, + {-0.470200,-0.595482}, + {0.435984,0.550976}, + {0.991639,0.713741}, + {1.354705,0.236459}, + {-0.514888,0.034946}, + {0.447832,-0.324686}, + {-0.324818,0.064890}, + {0.512776,-1.010271}, + {0.644555,1.172259}, + {-0.884525,0.399588}, + {0.106287,-0.599133}, + {0.245535,0.597192}, + {-0.128277,0.432917}, + {0.307422,-0.650546}, + {0.870460,0.392310}, + {-0.236295,0.161812}, + {-0.905288,0.260416}, + {-0.288011,-0.014239}, + {-0.391415,-0.625783}, + {1.255478,-0.407403}, + {1.023093,0.311064}, + {0.059888,-2.054203}, + {0.200850,0.982033}, + {0.936100,0.701518}, + {-0.629761,0.267995}, + {1.891356,-0.312648}, + {0.084493,0.120200}, + {0.658455,0.408385}, + {0.401558,-0.236054}, + {0.213266,-0.339748}, + {0.249614,1.030643}, + {0.861996,-0.401135}, + {-0.645997,-0.919200}, + {0.345041,-0.019794}, + {0.422888,-1.570761}, + {-0.728576,-0.302344}, + {0.698979,0.162284}, + {0.432374,-0.278804}, + {0.288216,-0.280750}, + {0.692058,-0.788072}, + {-0.513736,0.160921}, + {-0.484442,0.091290}, + {0.217502,0.258031}, + {-0.564786,-0.078785}, + {0.773842,-0.205731}, + {0.496951,0.661244}, + {0.703862,0.256431}, + {0.417277,-0.643702}, + {0.030253,0.964357}, + {0.487751,-0.148838}, + {0.603282,0.729704}, + {0.623268,-1.087961}, + {0.673468,0.933167}, + {-0.456305,0.170897}, + {-0.397510,-0.674178}, + {-0.320248,0.681368}, + {0.138825,0.000576}, + {-0.706556,0.500306}, + {-0.180191,-0.216743}, + {-1.383253,0.599270}, + {-0.024074,0.774923}, + {0.117188,0.327920}, + {-0.897107,-0.217729}, + {0.780948,-1.488166}, + {-0.189833,-1.665574}, + {0.160742,0.396893}, + {0.132436,-0.269463}, + {-0.477604,0.319153}, + {-1.594824,-0.229696}, + {-1.033510,0.226079}, + {-0.375408,0.377189}, + {0.203341,-0.627341}, + {0.000475,-0.876883}, + {-0.354389,-0.692829}, + {0.902375,0.537518}, + {0.765544,1.350291}, + {0.617121,0.549060}, + {0.191055,-1.656615}, + {-0.637320,0.461113}, + {-0.139140,0.405568}, + {0.338228,0.190319}, + {-0.111718,0.427500}, + {-0.607051,-0.223998}, + {-0.256013,-0.126726}, + {-0.460717,0.657032}, + {-0.264035,0.642030}, + {-0.480224,-0.125524}, + {-1.104871,-1.244684}, + {0.794316,-0.618685}, + {-1.325048,0.625898}, + {-0.609105,-0.317561}, + {-0.110370,0.574926}, + {-0.079341,-0.941059}, + {1.123131,0.516150}, + {0.646988,-0.799697}, + {-0.528347,0.716934}, + {-1.297124,0.049700}, + {0.952649,-0.161405}, + {0.104493,-0.030703}, + {-1.168308,1.727449}, + {0.676470,0.693357}, + {-0.412443,0.253094}, + {-0.447798,0.038550}, + {-0.228133,0.125712}, + {0.274084,-0.664014}, + {-1.273383,-0.516870}, + {0.331193,-0.663290}, + {0.834921,-1.083132}, + {-0.016795,0.063665}, + {0.463293,0.100810}, + {-0.222092,-1.166433}, + {-0.045631,-0.035269}, + {-0.045329,-0.674897}, + {-0.784392,-1.057570}, + {-0.329826,0.339698}, + {1.178970,0.965670}, + {-0.300943,-0.650654}, + {0.152251,-0.474047}, + {-0.578936,-0.462915}, + {0.349399,-0.057776}, + {0.102065,-0.396655}, + {0.217686,0.393256}, + {-1.565998,-0.678150}, + {-0.317381,0.390873}, + {0.032866,0.637578}, + {-0.462473,-1.228468}, + {0.037433,-0.126953}, + {-0.219955,-0.079598}, + {0.986041,-0.242647}, + {0.981236,-0.308921}, + {-0.714607,0.747562}, + {0.878252,0.290233}, + {-0.013550,-0.801533}, + {-0.837193,-0.073407}, + {0.004598,-0.299227}, + {0.718243,-0.521436}, + {-1.411477,0.345819}, + {-0.185560,0.407726}, + {-0.645613,0.341977}, + {-0.144282,-0.130033}, + {0.170185,0.210823}, + {0.648260,0.522148}, + {0.163927,0.452781}, + {0.091997,-1.512229}, + {-0.925560,0.389415}, + {0.396382,-0.605291}, + {-0.206984,0.810648}, + {0.605544,-0.329259}, + {-0.496895,-0.433621}, + {0.821201,-0.159951}, + {-0.287604,-0.461316}, + {0.269550,-0.172898}, + {0.223504,-0.519438}, + {-1.219596,-1.509329}, + {-1.177703,0.106731}, + {-0.614510,-2.303451}, + {-0.508790,-0.814873}, + {-0.235748,-0.655716}, + {0.675918,0.241968}, + {0.848823,0.109502}, + {-0.339173,0.251667}, + {-0.907714,0.025476}, + {1.135073,-0.983344}, + {0.597885,0.092979}, + {0.775967,0.017399}, + {-2.228663,-0.026600}, + {0.991905,1.087891}, + {-1.345601,0.617191}, + {0.369217,-0.003157}, + {0.380365,-0.183456}, + {1.141741,-0.120062}, + {0.208724,0.917995}, + {-0.751646,1.025081}, + {-0.244497,-1.070647}, + {-0.426150,-0.441223}, + {-0.083133,0.600314}, + {-0.639394,-0.449710}, + {-0.227868,-0.052185}, + {0.039466,0.902238}, + {-0.228256,0.424697}, + {-1.264894,1.007502}, + {0.025662,-1.050856}, + {-0.853853,-0.077905}, + {-0.283073,0.020308}, + {0.102863,0.285404}, + {-0.729183,-0.883586}, + {0.488278,-0.537274}, + {-0.638371,0.705178}, + {0.257958,0.187060}, + {1.876355,-0.296744}, + {-0.029220,0.081046}, + {-1.202058,0.013792}, + {0.143679,-0.221348}, + {0.813612,1.334167}, + {-0.308881,0.009709}, + {0.744881,0.191344}, + {0.703735,0.479720}, + {0.916091,0.301598}, + {0.229351,0.527300}, + {0.608015,1.084639}, + {-0.028380,0.179041}, + {0.741942,0.210321}, + {-0.441117,2.019392}, + {0.287010,1.148982}, + {0.751560,-0.634404}, + {0.633605,-0.574008}, + {0.254998,0.117379}, + {1.321661,-0.738031}, + {-0.086967,-0.576727}, + {0.357126,0.432979}, + {-0.743290,0.811585}, + {-0.501911,0.783671}, + {-0.187481,0.444391}, + {0.175805,0.576845}, + {0.749123,0.582751}, + {-1.669288,-1.212711}, + {-0.024771,0.530228}, + {-0.600212,0.278748}, + {0.380659,0.552119}, + {-0.054384,-0.183081}, + {-0.577043,1.758637}, + {-1.290098,-0.034919}, + {-0.626743,-0.901914}, + {0.548593,0.563251}, + {-1.189395,-0.111436}, + {0.672192,0.884066}, + {0.490141,-0.258325}, + {1.522702,-0.355020}, + {0.280899,0.463460}, + {0.297340,-0.975150}, + {-0.783965,-0.193888}, + {0.116301,-0.696152}, + {-0.613030,0.111460}, + {-1.438732,-0.335699}, + {0.152343,0.580044}, + {0.174164,-0.175062}, + {-0.148853,-0.874012}, + {0.175072,0.017771}, + {0.358267,0.083250}, + {-1.047536,0.175354}, + {-0.048482,-0.104485}, + {0.180338,0.466878}, + {-0.062379,-0.997160}, + {-0.737199,-0.210693}, + {0.536667,0.012390}, + {0.013080,-0.896293}, + {-1.111020,0.036888}, + {-0.592474,-0.623239}, + {-0.587658,-1.419053}, + {0.481731,0.315493}, + {0.239846,0.451458}, + {-0.107999,-0.142484}, + {-0.238403,0.700594}, + {0.326648,0.295695}, + {0.709781,-0.414870}, + {-0.303296,-0.812312}, + {0.605543,-1.441576}, + {0.046576,0.392842}, + {0.391747,1.805781}, + {-0.610474,-0.502987}, + {-0.084417,-0.635316}, + {-0.117791,-0.511594}, + {1.263054,-0.152197}, + {0.036088,-1.413123}, + {-1.142865,0.441812}, + {0.670441,-1.734080}, + {-0.655343,-0.321802}, + {0.441931,-0.212622}, + {0.368448,-1.376489}, + {0.216562,-0.500590}, + {0.430320,0.433900}, + {0.910263,0.145197}, + {0.261373,-0.024356}, + {-0.931035,-1.031641}, + {0.071638,-0.030381}, + {1.047164,-0.390936}, + {0.786061,0.374129}, + {0.399636,-0.470714}, + {-0.828217,0.411402}, + {0.402586,0.304012}, + {0.173574,-0.061146}, + {0.718928,0.903788}, + {0.757697,-0.340347}, + {0.311022,-0.630422}, + {-0.320119,0.438468}, + {0.213126,0.315590}, + {-0.367474,-0.858977}, + {-0.364710,-0.211865}, + {-0.088531,-0.338955}, + {-0.426875,-1.259798}, + {0.017767,0.903531}, + {-1.317742,-0.291868}, + {-0.021616,-0.223357}, + {-0.466416,-0.982947}, + {-0.723046,-0.216801}, + {-0.506496,-1.256971}, + {-0.876586,-0.668156}, + {0.799653,0.883145}, + {-0.116016,-0.230735}, + {0.153892,0.245910}, + {-1.493473,-0.543369}, + {-0.104258,0.937885}, + {0.145870,-0.862457}, + {0.004280,0.091261}, + {-0.201859,0.062320}, + {1.434108,0.390146}, + {0.223945,-0.417881}, + {-1.429893,-0.221635}, + {-0.263642,-0.043051}, + {-0.301817,-0.656976}, + {-0.055533,-0.422469}, + {-0.170936,0.094114}, + {0.920585,-0.536474}, + {-0.244583,0.125218}, + {-0.398405,-0.673800}, + {-0.648268,-0.174215}, + {0.104402,-0.545924}, + {1.039966,-0.450643}, + {0.454026,-0.007051}, + {-1.348483,0.435892}, + {-1.154315,0.012219}, + {0.586239,-0.790228}, + {0.420334,-0.425579}, + {-0.695935,0.400174}, + {-0.324462,-0.569611}, + {-0.891715,1.286844}, + {-0.225809,-0.497207}, + {-0.877583,-0.401090}, + {-0.230709,-0.162162}, + {0.040464,0.348907}, + {-0.431771,0.340009}, + {0.045460,-0.714410}, + {-0.216520,-2.046873}, + {0.804486,0.379955}, + {0.107529,0.317036}, + {0.349638,-1.542756}, + {0.112593,0.633379}, + {0.245919,-1.442921}, + {1.226988,0.413531}, + {-0.216186,-1.098418}, + {-0.592056,-0.703833}, + {-0.461250,1.152356}, + {-0.451106,-1.041155}, + {0.758497,-0.026281}, + {0.580829,0.434704}, + {-0.244442,-1.287007}, + {0.871367,-0.668387}, + {-0.252397,-0.492179}, + {-0.105915,0.221225}, + {-0.396868,0.424444}, + {0.468587,-0.808788}, + {-0.332904,0.334434}, + {-0.300457,-0.004120}, + {0.200741,0.652505}, + {-0.290567,0.311535}, + {-0.596088,-0.685691}, + {0.383474,-0.564410}, + {0.365202,-0.520154}, + {0.303368,0.394516}, + {0.156166,0.414418}, + {-1.362271,-0.651302}, + {-0.565455,0.543162}, + {-0.528145,0.145123}, + {-1.176076,-1.178721}, + {0.086984,-0.105966}, + {-0.021746,-0.978670}, + {0.518625,0.155903}, + {-1.258329,0.223466}, + {0.130332,-0.419232}, + {0.563122,0.231711}, + {0.306401,-0.507524}, + {-1.053291,1.560204}, + {0.047668,0.546148}, + {0.948363,0.284353}, + {0.672895,0.507781}, + {-1.334744,-0.168633}, + {-1.208243,0.148212}, + {-0.848912,0.415874}, + {0.843947,0.736823}, + {-1.158485,0.210237}, + {-0.099862,1.120765}, + {0.337771,0.007164}, + {-0.469080,0.520155}, + {-0.100074,-1.349217}, + {-0.157844,0.287353}, + {-0.779996,0.294751}, + {0.073369,0.492718}, + {-0.464267,0.726453}, + {-0.462696,-0.741070}, + {0.023056,1.172214}, + {0.224251,0.025615}, + {-0.336091,-0.276409}, + {0.473509,-0.561504}, + {0.845649,-0.907685}, + {0.627133,-0.351774}, + {-0.990811,-0.590419}, + {-0.172712,-0.470133}, + {0.723323,-0.199676}, + {-0.307695,-0.713114}, + {-0.083497,0.329677}, + {-0.518250,0.421263}, + {0.084627,0.104033}, + {-0.333341,0.047107}, + {-1.401702,0.346693}, + {-1.554243,-0.861078}, + {0.326409,-0.263726}, + {-0.100557,-0.931537}, + {1.703162,0.946824}, + {-0.198882,-0.911880}, + {-0.506174,-0.771035}, + {-0.827505,0.609437}, + {0.673322,-0.205578}, + {-0.806857,-0.975934}, + {0.294299,0.863600}, + {-0.008905,0.140791}, + {-0.175659,-0.263704}, + {0.242597,-0.175465}, + {0.581556,-0.693348}, + {0.221080,-0.123343}, + {0.864177,1.380508}, + {-0.485638,-0.235111}, + {0.019145,-0.507227}, + {1.115591,1.035217}, + {-1.242264,-0.613672}, + {0.528370,0.525414}, + {-0.389619,-0.519511}, + {-0.156849,-0.205102}, + {-0.985984,-1.423871}, + {0.517087,-0.357108}, + {-0.199417,-0.794782}, + {0.201648,-0.957863}, + {0.127940,-0.981328}, + {-0.892293,-0.484381}, + {-0.246429,-0.134570}, + {-1.208455,1.697750}, + {0.005429,0.475156}, + {1.495576,-0.048856}, + {-0.532713,0.246399}, + {0.020822,0.397247}, + {-0.943340,0.215974}, + {0.091969,0.698433}, + {-0.605709,-0.662562}, + {-0.662931,0.331181}, + {0.510917,-0.498797}, + {-0.070321,-0.339604}, + {-0.828848,0.232796}, + {0.637634,0.622874}, + {-0.384873,0.201997}, + {0.762228,-0.732545}, + {-0.051603,-0.149058}, + {0.029130,0.529245}, + {0.834301,0.594478}, + {-0.261223,-0.069449}, + {-1.302920,-0.290366}, + {-0.609619,-0.588839}, + {0.497506,0.424783}, + {-0.187720,0.612541}, + {0.017128,0.698742}, + {-1.811540,-0.055316}, + {0.862133,-1.369530}, + {1.262000,-0.131324}, + {1.156433,0.484189}, + {-0.076493,-0.424579}, + {-0.130062,1.379691}, + {0.833397,0.567487}, + {0.078902,0.473863}, + {0.055890,-0.769505}, + {0.060725,-0.404843}, + {0.000445,0.737484}, + {-0.625014,-0.395060}, + {-0.753279,-0.276740}, + {1.520089,1.037106}, + {-0.319487,1.277601}, + {0.118810,1.297974}, + {-0.215298,-0.455871}, + {0.254708,0.218111}, + {0.418569,-0.707815}, + {-1.185689,0.006936}, + {0.123850,0.442040}, + {-0.408899,0.843042}, + {-0.086253,-0.322820}, + {-1.244809,-0.408063}, + {-0.152610,0.218428}, + {-0.304509,0.721444}, + {-0.223893,-0.198213}, + {0.161462,0.965719}, + {-0.016545,-0.046833}, + {0.014223,0.409396}, + {1.975500,-1.416411}, + {0.987470,-0.295333}, + {1.392536,-0.339042}, + {-1.772024,1.071792}, + {0.561628,0.260545}, + {-0.614207,0.253911}, + {0.255899,0.338669}, + {-0.545300,0.377977}, + {-0.781682,-0.308513}, + {-0.473559,0.115544}, + {0.970356,0.389522}, + {1.340998,0.204031}, + {0.636971,-0.691872}, + {1.087438,-0.703128}, + {0.335864,-0.678190}, + {-0.567828,-0.567210}, + {-0.650808,0.427866}, + {-0.267197,-0.819795}, + {-0.757122,-1.946263}, + {-0.479753,-0.686059}, + {-1.058098,-0.284788}, + {-0.601739,-1.515210}, + {0.613674,0.326730}, + {1.501791,-0.056387}, + {-0.990549,0.002105}, + {-0.865560,-0.308869}, + {0.464395,-0.231092}, + {-0.644999,0.444856}, + {0.545002,-0.193149}, + {0.447797,-0.492268}, + {-0.421009,-0.021117}, + {-0.190813,0.311118}, + {0.467296,0.294717}, + {0.154595,1.419043}, + {0.281873,0.405801}, + {-1.053144,0.367926}, + {0.048581,1.905063}, + {-0.637562,-0.469837}, + {0.650205,-1.538225}, + {-0.885319,-0.085329}, + {-0.052037,0.098850}, + {-1.205488,0.099386}, + {1.421300,-0.337389}, + {0.163746,1.595691}, + {0.316168,0.058669}, + {0.901451,-0.757891}, + {0.374950,0.220098}, + {0.289515,-0.754124}, + {-0.344068,-0.343308}, + {0.232374,0.263313}, + {2.246893,0.378554}, + {-0.376969,0.322563}, + {0.709981,-1.565807}, + {-0.784404,0.311436}, + {-0.414114,0.191005}, + {-0.912873,-1.111710}, + {0.022198,1.018839}, + {-1.388431,-0.029500}, + {1.318379,0.695939}, + {0.832088,-0.225946}, + {-0.685464,1.189551}, + {-1.724108,0.128743}, + {-0.267640,0.820472}, + {0.369300,1.266272}, + {-0.485413,-1.174063}, + {-1.258036,0.730961}, + {-1.037161,-0.806028}, + {-1.128983,-0.308337}, + {0.655767,-0.390841}, + {-0.343421,0.248034}, + {0.458703,-0.580272}, + {-0.309516,-0.875010}, + {0.612543,0.577868}, + {0.291884,0.221870}, + {0.556053,0.899818}, + {-0.155180,-0.104632}, + {0.342271,0.297307}, + {0.201082,0.328868}, + {1.519672,-1.255112}, + {-0.277044,0.809604}, + {-0.983866,-0.270883}, + {-0.252473,0.652332}, + {0.320750,0.253181}, + {0.439080,-1.174365}, + {0.577125,0.328839}, + {0.900496,0.913433}, + {0.217882,-0.002589}, + {-0.005437,-0.172455}, + {0.777052,-0.589731}, + {-0.319754,-0.552669}, + {0.663022,0.005191}, + {-0.444068,0.973952}, + {-0.284655,0.373087}, + {-0.653444,0.000541}, + {0.937499,-0.190486}, + {-0.353436,-0.421615}, + {-0.586946,1.251421}, + {-0.106296,-0.907972}, + {-0.133041,-1.699473}, + {-1.323406,1.678851}, + {0.297010,-1.495266}, + {-0.282727,-0.006885}, + {2.101317,-0.581565}, + {-0.386652,0.065565}, + {-0.086661,0.930770}, + {1.072493,-0.689899}, + {-1.072787,1.386659}, + {1.079130,0.126657}, + {-0.255408,-0.604117}, + {0.923296,0.431058}, + {0.884115,0.288090}, + {-0.783201,-0.804343}, + {-1.563031,0.029382}, + {-0.366755,0.047618}, + {0.931579,0.790832}, + {0.079395,-1.064498}, + {-0.576885,-1.423422}, + {1.061247,-0.359222}, + {-0.079346,-0.583210}, + {-0.513897,-1.038086}, + {-0.306731,-0.347102}, + {-0.303644,0.082931}, + {1.070749,0.846657}, + {0.596321,-0.863198}, + {-1.493087,0.752431}, + {-0.326493,-0.259466}, + {0.762672,0.637558}, + {0.470650,-0.475920}, + {1.217709,1.223485}, + {-0.105262,0.348860}, + {0.809125,0.110621}, + {0.705164,-0.451192}, + {0.256454,0.998392}, + {-0.182322,-1.808778}, + {0.132926,-0.046858}, + {-0.115529,-0.094157}, + {-0.386512,-0.427899}, + {1.703266,0.413302}, + {1.689060,0.300520}, + {-0.746970,-0.620105}, + {0.331307,1.166821}, + {-1.642881,-0.355440}, + {0.284702,-0.125837}, + {-0.942006,0.609114}, + {0.490133,-0.550940}, + {0.479289,0.712846}, + {-0.733015,1.085078}, + {1.342473,0.807258}, + {-0.139847,-0.210786}, + {-1.019707,-0.083367}, + {-0.515722,-0.667669}, + {-0.490205,0.536208}, + {1.137698,-2.187429}, + {0.689605,-0.279192}, + {-0.758482,-1.078222}, + {-0.062444,-1.440962}, + {-0.959758,-0.131322}, + {0.578693,1.089248}, + {-0.447809,0.153117}, + {-0.380639,0.131958}, + {0.663486,0.877594}, + {0.280871,-1.058013}, + {-0.699962,0.353879}, + {-0.162627,0.269167}, + {-0.204061,0.751909}, + {0.209289,-0.584008}, + {0.284208,0.331193}, + {0.885480,0.772389}, + {-0.252435,-0.861216}, + {1.302831,0.447444}, + {0.039083,-0.234160}, + {-0.935810,-0.162396}, + {0.125644,0.184471}, + {0.445812,-1.213550}, + {-1.380393,0.775430}, + {-0.188419,0.701213}, + {0.684211,-0.154271}, + {-0.182573,0.039267}, + {0.811469,-0.969950}, + {-0.778200,1.188098}, + {-0.049732,-0.445024}, + {-0.852271,-0.949873}, + {0.086241,-0.750884}, + {-0.096712,-1.624033}, + {-0.400723,0.228941}, + {1.049161,-2.253919}, + {-0.058805,-0.708923}, + {-1.286261,-1.145985}, + {-0.215680,0.977318}, + {-1.137437,0.643552}, + {0.648707,0.534293}, + {-0.097589,0.270605}, + {-0.536918,0.019383}, + {0.467302,0.109569}, + {-1.583003,-0.761356}, + {-0.935186,-0.891575}, + {-0.514207,0.428989}, + {0.765034,-0.341230}, + {0.067731,0.661021}, + {-0.145722,0.204315}, + {-0.062658,0.608009}, + {0.471454,0.095159}, + {-0.452387,1.030955}, + {0.553401,-0.726777}, + {0.622963,0.530085}, + {0.208907,1.294012}, + {-0.324651,1.366459}, + {-0.576267,-0.393594}, + {-1.011991,0.804189}, + {0.737499,0.822178}, + {0.481131,-0.143674}, + {-0.684440,0.644153}, + {0.794158,-0.398822}, + {0.568346,0.400063}, + {0.913021,-0.104825}, + {-0.181232,-0.575912}, + {-1.186140,0.417101}, + {0.311493,0.955016}, + {0.331007,1.201278}, + {0.208202,0.031411}, + {0.463080,0.501488}, + {0.482757,0.079090}, + {-0.880469,0.584826}, + {-0.159840,-0.023861}, + {0.845792,-0.498914}, + {1.200194,-0.998738}, + {-0.687638,0.627621}, + {0.834554,-0.044152}, + {-0.567932,0.022438}, + {0.649994,-0.451273}, + {1.550910,0.386612}, + {0.643220,-1.226031}, + {-0.084707,0.483131}, + {1.142138,-0.495484}, + {0.591518,0.600105}, + {0.909766,-0.968842}, + {-0.318164,-1.216190}, + {-0.002672,0.682111}, + {0.303462,-0.734521}, + {-1.328197,-0.512260}, + {0.142123,-0.446938}, + {-0.563399,-0.108576}, + {-0.595759,0.432539}, + {0.140978,-0.820013}, + {0.691118,-0.298545}, + {-0.892137,0.532776}, + {0.882700,-0.514615}, + {-1.126496,-0.553388}, + {-0.366223,0.264003}, + {1.216088,-0.643513}, + {0.144411,0.190855}, + {-0.513814,1.301282}, + {-0.139218,-1.666939}, + {-0.873328,1.087577}, + {0.368330,-0.436673}, + {-0.799562,0.387875}, + {1.105326,0.374214}, + {0.212973,0.611913}, + {-1.233469,-0.191584}, + {-0.678596,-0.747265}, + {-1.464750,0.891797}, + {-0.103633,0.529639}, + {0.946408,0.704495}, + {-0.247739,0.650610}, + {0.314285,-0.478465}, + {-0.801484,-1.330346}, + {-0.474770,0.029146}, + {0.156161,0.354246}, + {-0.514883,0.437114}, + {-0.723243,-0.302359}, + {-0.623393,-0.064006}, + {0.668911,0.512527}, + {-0.200754,0.270304}, + {1.274333,-1.593959}, + {-0.433487,-0.077630}, + {1.022869,-0.724708}, + {1.302765,-0.324157}, + {0.048530,0.524041}, + {0.580503,0.255952}, + {0.871851,-0.571890}, + {-1.320527,0.372024}, + {-0.837724,-1.330308}, + {-0.130319,1.947338}, + {-0.966811,-0.248498}, + {-0.980519,0.121219}, + {-0.928127,0.014107}, + {0.784902,-0.292815}, + {-0.001154,0.102495}, + {0.174204,-0.798143}, + {-0.616828,-1.187243}, + {0.901858,0.095972}, + {-0.036058,-0.624901}, + {-0.136308,0.048002}, + {0.724986,0.204018}, + {-0.290315,-0.226273}, + {-0.937261,0.310854}, + {1.350983,1.247481}, + {0.132400,-0.117268}, + {-0.433586,0.672210}, + {0.427985,1.263974}, + {0.053098,-0.134753}, + {0.145390,-1.579824}, + {-0.466987,-0.271971}, + {-0.452877,-0.054139}, + {-0.137701,-0.493978}, + {0.449226,0.123858}, + {0.641004,-1.580859}, + {0.732717,0.424758}, + {-1.191464,-0.668713}, + {-0.068454,-1.558817}, + {-1.255019,0.090546}, + {0.133334,-0.672320}, + {-0.357994,-0.062960}, + {-0.179648,-0.136934}, + {-1.405926,-0.152062}, + {-0.122649,-0.447278}, + {-0.956039,0.706032}, + {-0.577964,0.702715}, + {-1.092396,-0.224851}, + {-0.080453,0.539972}, + {0.941582,0.526443}, + {-0.245442,-0.421211}, + {-0.655510,0.175952}, + {0.090653,0.356258}, + {0.597282,0.245042}, + {-1.281953,1.174625}, + {0.246278,0.484865}, + {-2.421806,-0.626013}, + {-0.515321,0.348373}, + {0.100784,-0.155870}, + {-0.518027,-0.137351}, + {-1.091217,0.932436}, + {0.298705,0.215227}, + {-0.032357,0.318942}, + {-0.028669,0.835347}, + {-0.164235,-0.633671}, + {-0.978889,0.405411}, + {-0.366083,-0.163942}, + {-0.367713,0.709928}, + {-0.245638,-0.099905}, + {-0.171231,0.640628}, + {-0.531550,-0.252464}, + {-0.460142,1.860309}, + {-1.486483,-0.241096}, + {-1.050993,-0.330973}, + {0.877660,0.278261}, + {0.471375,0.863250}, + {0.815270,0.878291}, + {-1.064940,1.248690}, + {-0.069835,-0.017150}, + {1.102388,0.275357}, + {1.179494,0.240331}, + {-1.664730,-0.144800}, + {-0.236780,-0.450388}, + {0.727520,-0.630164}, + {-0.976490,-0.375161}, + {1.003983,-1.257875}, + {-0.358144,-0.688150}, + {0.425984,0.320394}, + {0.145065,-0.070437}, + {-0.791365,-0.328291}, + {0.251614,-0.243055}, + {-0.393163,0.191665}, + {-0.150863,-0.584294}, + {-0.673513,-0.686572}, + {-0.402621,-0.474615}, + {-1.157962,-0.033111}, + {0.452590,-1.526519}, + {0.021951,-0.726401}, + {-0.912745,0.826707}, + {-0.372052,0.412758}, + {0.777297,-0.106160}, + {-0.135258,0.030331}, + {-0.109689,-0.926576}, + {0.683335,-1.604886}, + {-0.421987,0.744210}, + {-0.557095,-0.775698}, + {0.454006,-0.044498}, + {0.177879,0.041843}, + {0.074312,0.324311}, + {-1.059395,0.620565}, + {-0.421680,0.527942}, + {-1.202068,1.160552}, + {-0.115764,-0.745636}, + {-1.541088,0.056196}, + {0.381186,0.008007}, + {-0.499599,0.141341}, + {0.013978,-0.125940}, + {0.090000,-1.187147}, + {1.160943,-0.631971}, + {-0.156704,0.697033}, + {-1.239590,-0.623728}, + {-0.792073,0.313426}, + {-0.731100,-0.549662}, + {-0.357447,1.054545}, + {-1.142243,-0.677072}, + {0.337990,0.046116}, + {0.530248,-1.446341}, + {0.636612,-0.662750}, + {-2.179262,0.191543}, + {-0.550411,0.747675}, + {-0.402629,0.988314}, + {-0.083953,0.479871}, + {0.124996,-0.359557}, + {0.421828,0.346338}, + {-0.171740,-1.735271}, + {1.095081,-0.775815}, + {-0.492503,0.267703}, + {-0.204414,0.545646}, + {0.385776,-0.276769}, + {0.183290,0.903289}, + {-0.084581,-0.121421}, + {-0.245414,-0.714739}, + {-0.576804,0.885006}, + {-1.119495,-0.231658}, + {1.164001,0.578247}, + {0.112226,0.129056}, + {-0.593079,-1.115176}, + {0.166237,-0.014866}, + {-0.444435,0.569202}, + {-1.420244,-0.532449}, + {-0.340449,-0.654735}, + {1.268462,-0.042484}, + {-0.553843,-0.819293}, + {0.303196,-0.769441}, + {0.388195,-0.520681}, + {-0.196868,-0.813691}, + {0.519316,-1.007083}, + {0.706958,0.112890}, + {-1.075358,-0.054663}, + {0.741997,0.785043}, + {0.052625,-0.121979}, + {0.253025,0.356385}, + {0.828369,-0.593061}, + {-0.384827,0.456143}, + {-0.140667,0.196871}, + {-1.966096,-0.083070}, + {-1.020553,-1.461990}, + {0.190510,-0.037306}, + {-0.625134,-0.080120}, + {-0.562010,-0.950249}, + {-0.230976,-0.527893}, + {-0.228677,-0.348693}, + {-0.332359,-0.311350}, + {-0.704024,-1.084836}, + {-0.434046,0.133438}, + {-0.318342,-0.053535}, + {-0.096872,0.012919}, + {-0.610696,-0.174108}, + {-0.252555,-0.509190}, + {1.061245,0.467663}, + {0.252635,-0.703320}, + {-0.212390,1.327738}, + {0.587415,0.199159}, + {-0.966466,-0.076941}, + {-0.829028,1.083157}, + {-0.505337,1.097833}, + {0.691992,0.091951}, + {0.564158,0.597321}, + {0.804210,0.592029}, + {-0.413688,0.496419}, + {-0.298775,0.196912}, + {-0.092485,-0.806745}, + {-1.159163,0.204774}, + {-0.794889,-0.067174}, + {-0.438785,-0.115991}, + {0.282720,-0.231078}, + {-1.228366,-0.260419}, + {-1.528740,-0.246528}, + {-0.246221,-0.580162}, + {0.114350,-1.968410}, + {-0.218031,-0.356657}, + {-0.948797,0.708502}, + {-0.805080,-0.480688}, + {-0.334364,0.785381}, + {0.070317,-0.128118}, + {0.470661,-0.323759}, + {-0.185075,0.483122}, + {-0.404439,0.149669}, + {0.074842,0.256006}, + {-1.013446,0.621396}, + {-0.134759,0.287886}, + {0.376520,1.192665}, + {-0.362520,-0.634418}, + {0.362985,-0.196815}, + {0.653376,0.725399}, + {1.234385,-0.520766}, + {0.281393,1.887825}, + {-0.506625,0.262909}, + {-1.755273,0.507609}, + {-0.321531,-0.128175}, + {0.301331,-0.922664}, + {-0.600594,-1.248979}, + {-0.314934,-0.073132}, + {-1.253293,-0.794391}, + {-0.119523,-0.106375}, + {-1.036734,-0.848670}, + {-0.204574,0.546471}, + {0.823228,0.262015}, + {1.082957,-0.114482}, + {-0.728824,0.148125}, + {-0.883430,0.785116}, + {0.641440,-0.078952}, + {-1.272558,0.134591}, + {0.505240,-0.602016}, + {-0.972164,1.092034}, + {0.612247,0.549404}, + {0.450208,0.493039}, + {-0.525409,0.940858}, + {-0.216053,0.053321}, + {-0.034777,0.076897}, + {-0.559997,-1.618377}, + {-0.739954,0.626905}, + {-0.033963,-0.233715}, + {0.672760,-0.049505}, + {-0.208845,-0.160882}, + {0.953452,-0.034831}, + {-0.376313,-0.779698}, + {-1.116935,0.789470}, + {1.852068,-0.400982}, + {0.337988,-0.001624}, + {0.591794,-0.223387}, + {-0.764729,-0.256717}, + {0.409644,-0.331827}, + {0.353446,0.986947}, + {0.013275,-0.074213}, + {0.197200,-0.544923}, + {-0.331489,0.568903}, + {0.432285,-0.929833}, + {0.600862,0.718698}, + {0.872893,-0.419268}, + {-0.200237,-0.718290}, + {0.242213,0.079084}, + {-1.577807,1.174048}, + {-0.379725,0.187433}, + {0.307646,1.344402}, + {1.215462,0.395933}, + {0.029692,0.606788}, + {0.892763,-0.031153}, + {0.685208,0.002816}, + {0.907146,0.248276}, + {0.328204,0.310385}, + {-0.450021,-0.534631}, + {2.075611,-0.976094}, + {0.337534,0.624849}, + {-0.375221,-0.715899}, + {-0.134676,-0.128634}, + {-0.654845,-0.951174}, + {-0.407146,-0.844925}, + {-1.268266,-0.592878}, + {-0.624101,-0.781781}, + {-0.162159,-0.785210}, + {-1.763260,0.357187}, + {-0.408447,0.565726}, + {-0.392385,-0.323932}, + {0.070956,-0.460428}, + {-0.053136,0.207713}, + {-0.164207,-1.296008}, + {-1.192106,-1.901697}, + {-0.431213,-1.017489}, + {-0.520848,1.407188}, + {0.145023,-0.336089}, + {0.856252,-0.968676}, + {0.695109,-1.115058}, + {0.942748,0.032814}, + {-0.442368,0.501998}, + {-1.339842,0.494702}, + {0.793722,0.683030}, + {-0.080036,-0.001120}, + {-0.124282,-0.176612}, + {-0.510859,-0.403349}, + {-0.013581,-0.068892}, + {-0.285268,0.123699}, + {0.681833,-0.376550}, + {0.665080,1.385498}, + {-1.217502,0.225975}, + {-0.594094,-0.361329}, + {0.640636,-1.635224}, + {0.440288,-0.173718}, + {-1.095971,0.028588}, + {-0.391012,0.536173}, + {-0.679180,-0.332060}, + {0.443795,0.206495}, + {0.102913,-0.012004}, + {-0.877523,-1.194485}, + {1.576267,-0.479076}, + {-1.125040,-0.707965}, + {-0.293637,-0.295395}, + {1.163673,0.261285}, + {-0.009871,1.620751}, + {0.420659,1.657904}, + {0.184678,0.360919}, + {-1.117315,-0.182509}, + {-1.805887,-0.737423}, + {1.715050,-0.359039}, + {0.548347,-0.711148}, + {0.819885,-0.536776}, + {0.038829,-0.046101}, + {-1.555754,1.115475}, + {0.059829,-0.900202}, + {0.215772,0.610962}, + {0.008583,-0.164357}, + {-0.394604,-0.266908}, + {-0.089186,0.115016}, + {0.879229,-1.099212}, + {0.666276,-1.094933}, + {-2.243026,0.931909}, + {1.069452,-0.301207}, + {1.192592,1.144332}, + {-0.546448,-0.404087}, + {1.042238,0.099649}, + {-1.150986,-0.352998}, + {1.671102,0.062038}, + {-0.292935,-0.142184}, + {0.912273,0.927933}, + {-0.610804,-0.790526}, + {-1.233318,0.582164}, + {0.362886,0.126435}, + {0.266818,0.880278}, + {0.334312,-0.851251}, + {-0.625542,0.254909}, + {0.730234,0.366879}, + {0.714704,0.004163}, + {1.194976,-0.023707}, + {0.326624,-0.471626}, + {-0.229043,-0.827678}, + {0.325709,-0.115376}, + {0.677117,-0.136203}, + {0.609055,-0.553231}, + {0.043072,-0.424984}, + {0.441790,0.828142}, + {-0.436910,-0.103521}, + {-0.626695,0.363246}, + {-1.091702,0.016860}, + {0.576059,0.141374}, + {-0.152014,-0.661996}, + {-0.774034,-0.052961}, + {0.523869,0.787151}, + {0.022872,0.624295}, + {2.371050,2.241895}, + {0.099188,-0.686992}, + {-0.026026,-0.171252}, + {0.675816,1.843051}, + {0.006666,0.000152}, + {1.021349,0.543076}, + {-0.602923,0.676056}, + {1.027891,-0.418795}, + {-1.759205,-1.102256}, + {1.116023,0.103083}, + {0.576224,-1.411952}, + {-0.156183,1.999043}, + {0.124434,-0.238939}, + {-0.938087,0.337435}, + {0.047635,0.159295}, + {0.217816,-0.807263}, + {-0.727492,0.439254}, + {0.245795,-1.372293}, + {1.078585,0.289308}, + {-0.746381,-0.190481}, + {0.461490,-0.156236}, + {0.279562,-0.141011}, + {0.800455,0.112162}, + {0.846632,-1.442145}, + {0.896583,-0.366371}, + {0.142449,0.555705}, + {0.443817,-0.165670}, + {-0.278247,1.893330}, + {-0.148235,0.209155}, + {0.819120,-0.340799}, + {0.110860,-0.461213}, + {-0.191900,-1.200356}, + {0.385260,0.158268}, + {0.179177,-0.338312}, + {0.286717,0.336873}, + {-0.596235,-0.074333}, + {0.311757,-1.159880}, + {-0.906439,0.587565}, + {0.837066,-0.107715}, + {-0.260451,-1.427325}, + {-0.216606,1.473217}, + {-1.717780,-0.058343}, + {-1.378627,0.891233}, + {-0.079320,0.532493}, + {-0.016687,0.630684}, + {0.240314,0.096040}, + {-0.331577,0.458243}, + {0.372299,-1.365709}, + {-0.741196,1.252891}, + {-0.264394,-0.346368}, + {0.174941,0.592150}, + {-0.182301,0.472894}, + {-1.078744,0.352627}, + {0.668825,-0.839549}, + {-0.794913,0.098837}, + {0.346916,0.827142}, + {-0.557851,-0.824683}, + {0.152571,-1.089133}, + {0.317379,-0.377552}, + {-0.310447,-0.798186}, + {1.416259,0.538289}, + {-0.139209,0.950880}, + {-0.671851,-0.023958}, + {-0.295455,0.491929}, + {-0.042358,-0.225679}, + {0.306427,-0.412672}, + {-0.096405,-0.210148}, + {1.661258,-0.451881}, + {0.887263,-0.441136}, + {1.303738,0.032488}, + {1.248415,-0.771581}, + {-0.521452,0.088019}, + {-1.103925,-1.154315}, + {0.257631,1.121379}, + {-0.262130,0.533858}, + {0.605826,-0.581051}, + {-0.188663,0.498607}, + {0.764838,0.473480}, + {0.860975,-1.159374}, + {0.452993,0.327307}, + {0.175875,1.009939}, + {0.281291,-0.479527}, + {0.434156,0.687246}, + {0.453294,0.558911}, + {0.191183,-0.316014}, + {0.214000,0.309648}, + {0.502847,0.327473}, + {-0.398865,-1.147691}, + {-0.952348,0.394180}, + {-0.349121,-0.235417}, + {-0.449837,0.044554}, + {-0.402914,-0.408737}, + {0.199668,0.760049}, + {0.010913,-0.831466}, + {0.090912,0.009287}, + {0.512837,-0.858424}, + {-0.283099,-0.240292}, + {-0.112692,-0.322550}, + {-0.417705,-0.353556}, + {-1.267119,0.235106}, + {-0.412714,-1.078769}, + {-1.068857,-0.020876}, + {0.735610,-0.698172}, + {0.097437,1.100995}, + {-0.824265,-0.625636}, + {-0.151463,0.035774}, + {-0.097028,-0.167782}, + {-0.354245,-0.055691}, + {0.360549,0.749328}, + {0.718972,-0.297089}, + {0.093750,-0.638153}, + {-0.247393,-0.297925}, + {-1.029741,-0.068838}, + {0.526758,0.786855}, + {-0.926147,0.224848}, + {0.558481,-0.057841}, + {-0.267158,-0.691253}, + {-1.247372,-0.770014}, + {-0.163633,-1.488970}, + {-0.501774,0.176045}, + {0.136177,-0.868078}, + {0.777970,0.447295}, + {0.460035,0.095623}, + {0.503416,-0.169723}, + {1.171534,-0.676447}, + {-0.713499,0.434530}, + {0.462648,0.066601}, + {-0.832730,-1.270562}, + {0.765136,0.913623}, + {0.417389,0.798048}, + {-1.426013,-0.274914}, + {-0.825985,-0.424720}, + {0.603344,-0.834278}, + {0.709370,0.850793}, + {0.003214,-0.250830}, + {-1.002978,-0.742748}, + {-0.936138,0.680271}, + {-0.053393,0.089266}, + {0.420002,-0.368487}, + {0.710330,-0.438794}, + {-1.087089,0.102425}, + {0.476970,-1.002341}, + {0.375935,0.399873}, + {-0.989189,0.653074}, + {0.872430,0.758053}, + {-0.890879,-0.312795}, + {-0.238132,-0.250050}, + {0.849829,-0.245135}, + {-0.306339,1.034213}, + {0.133859,-0.614994}, + {-0.556895,0.160389}, + {-0.042028,-1.154500}, + {-0.019949,-0.576390}, + {-1.028293,0.814275}, + {0.766851,0.887268}, + {0.044484,-0.512244}, + {0.795847,-0.238133}, + {-0.123321,1.153876}, + {1.732138,0.309731}, + {-0.429759,0.508320}, + {-0.700518,-0.577407}, + {0.586965,0.247099}, + {0.474665,-0.264909}, + {0.657846,0.682646}, + {1.683598,-0.181147}, + {0.481185,0.407061}, + {-0.867097,-0.307912}, + {-0.884851,0.803434}, + {0.248120,0.335810}, + {-0.766947,-0.015652}, + {0.138088,-0.540963}, + {0.483644,-0.292753}, + {0.434778,-0.933118}, + {0.969690,-0.575479}, + {0.033365,-0.110259}, + {0.045278,-0.657264}, + {-0.823623,0.516920}, + {-0.153628,-1.007980}, + {-0.500080,0.938031}, + {-0.332981,0.507900}, + {0.290413,0.159538}, + {-0.402051,0.813947}, + {0.464196,0.574152}, + {0.578220,-1.425212}, + {0.202852,-0.043236}, + {1.658922,0.205793}, + {-0.485749,-0.745853}, + {-0.446857,0.377168}, + {0.876179,1.074485}, + {-0.584951,0.013578}, + {-0.837915,-0.240871}, + {-1.524292,0.233789}, + {-0.825139,0.748604}, + {1.596491,0.933630}, + {-0.401496,-1.003424}, + {-0.258193,-0.695623}, + {-0.052062,-0.166794}, + {0.690957,0.351045}, + {0.493275,-0.920828}, + {-0.863543,1.297232}, + {-0.108419,0.062067}, + {1.378657,-1.208240}, + {0.085856,-1.104558}, + {-0.366961,0.245213}, + {0.832540,0.165383}, + {-0.584261,0.126903}, + {0.016941,0.536423}, + {-0.270773,1.502084}, + {-0.372237,-0.400977}, + {1.068030,-0.451306}, + {-0.621204,-0.546822}, + {1.960128,0.187646}, + {-0.280504,-0.872304}, + {0.683431,0.366819}, + {0.595984,-0.857526}, + {-0.631380,-0.386350}, + {0.020853,-0.369727}, + {-0.212579,0.923348}, + {0.683995,-0.323235}, + {0.805253,0.720984}, + {-0.198278,-0.751235}, + {-0.587794,1.028549}, + {0.082077,0.108813}, + {0.745455,-0.151971}, + {-0.976860,-1.417301}, + {-0.100352,0.301667}, + {0.452015,0.239125}, + {-1.198564,1.164572}, + {-0.347850,-0.780059}, + {1.005080,-0.098043}, + {-0.076527,0.140155}, + {0.822524,0.259489}, + {-0.484033,0.190539}, + {0.547659,0.465998}, + {0.402279,-0.058429}, + {-0.145342,0.125883}, + {-0.136622,1.065746}, + {0.408618,-0.650430}, + {0.015056,0.491154}, + {1.132468,-0.328837}, + {-0.012391,-0.686920}, + {0.053038,0.495824}, + {0.071729,-0.474581}, + {-0.440191,-0.561736}, + {-0.524869,0.365948}, + {0.556736,-0.017547}, + {0.292031,-0.097135}, + {1.006116,1.298618}, + {0.516901,0.626829}, + {0.630999,-0.413970}, + {0.774604,-1.207384}, + {-0.615805,0.565898}, + {0.364355,-0.950000}, + {0.530245,-1.069383}, + {1.242254,0.041582}, + {1.198631,-0.852988}, + {0.409406,-0.362121}, + {-0.051573,1.378894}, + {0.526354,0.639450}, + {-0.194904,-1.121370}, + {0.927330,1.050282}, + {-1.444789,0.271173}, + {-0.428099,0.664772}, + {-0.780386,0.717917}, + {-0.113324,-0.553108}, + {0.355862,-0.738216}, + {-0.099107,0.064152}, + {-0.154411,1.265266}, + {0.802506,-0.378603}, + {-0.254708,-0.134292}, + {0.098108,-0.759107}, + {-0.609531,-1.121607}, + {-0.421901,-0.211898}, + {0.711968,-0.180637}, + {-1.105167,1.156956}, + {-1.003797,0.694685}, + {0.049084,-0.230107}, + {-0.236223,1.025917}, + {0.404298,-0.017089}, + {-0.066885,0.931927}, + {-1.723563,-0.969529}, + {0.491575,-0.029033}, + {0.623884,-0.068448}, + {0.176416,-0.045140}, + {-0.898063,-0.441314}, + {0.054965,-0.105671}, + {0.099547,0.031943}, + {-0.136638,-0.641491}, + {-0.416031,0.788225}, + {0.421132,0.199360}, + {0.973337,-0.185653}, + {0.088055,0.466610}, + {0.175948,0.713615}, + {-0.186074,-0.718673}, + {-0.477278,0.873979}, + {0.439899,0.385747}, + {0.281673,1.501744}, + {-0.893871,0.167312}, + {-1.196201,0.511553}, + {-0.088248,1.523528}, + {-0.127180,0.047668}, + {-1.244524,1.220496}, + {-0.458583,0.408467}, + {-0.423980,-0.843592}, + {-0.680569,-0.034943}, + {0.025603,-0.219165}, + {-0.182524,-0.609754}, + {-0.540846,1.056731}, + {0.303247,1.820157}, + {0.180851,0.479806}, + {0.025760,-1.252858}, + {-0.747286,-0.234204}, + {-1.773173,0.069396}, + {0.370812,-0.513683}, + {-0.420497,-0.847213}, + {-0.820247,0.180888}, + {0.377636,-0.251796}, + {-0.084840,0.837256}, + {0.204533,-0.516983}, + {-0.579383,0.361949}, + {-0.079244,-0.997139}, + {0.763352,-0.920005}, + {0.991156,0.097808}, + {-0.207017,-0.379039}, + {-1.048663,0.392404}, + {-0.947993,-0.165707}, + {0.222565,-1.486800}, + {1.309369,0.187803}, + {0.083914,0.759151}, + {0.017533,-0.350594}, + {0.936769,-0.133694}, + {-0.542859,0.015576}, + {0.527186,1.057142}, + {0.576027,-1.107543}, + {-0.597828,0.116528}, + {-0.573770,-0.408299}, + {-0.564696,0.907437}, + {-0.843667,0.002832}, + {1.708716,-1.282816}, + {0.099415,-0.410289}, + {-1.175233,0.409935}, + {-0.505987,1.096503}, + {0.831878,-0.633435}, + {-0.036724,0.894208}, + {-1.009229,0.523294}, + {-0.206856,-0.518026}, + {-0.265399,0.734165}, + {-1.418101,-0.082190}, + {0.605095,0.372543}, + {-1.234487,1.112847}, + {-0.036487,0.136546}, + {-0.027486,-0.021950}, + {0.087476,0.308363}, + {0.380610,-0.770809}, + {-0.612494,0.395982}, + {-0.760804,0.774983}, + {1.865483,0.743280}, + {0.077926,0.679733}, + {-0.346491,-0.172862}, + {0.652737,-0.498038}, + {-0.306556,-0.127240}, + {1.422770,-0.788084}, + {0.727473,0.199273}, + {0.998929,0.906173}, + {-0.062778,-0.292218}, + {0.389584,-0.499927}, + {1.122804,0.323068}, + {-0.936607,0.116318}, + {0.080546,-1.053398}, + {-0.108415,0.262303}, + {0.675554,-0.771375}, + {0.697370,0.301939}, + {-0.516065,0.371745}, + {-1.958861,-0.787043}, + {1.816436,-0.421257}, + {0.580993,0.294074}, + {-0.218823,-0.831417}, + {-0.217031,-1.430616}, + {-0.483142,0.379944}, + {0.067187,-0.582305}, + {-0.697808,-0.168340}, + {1.293952,0.231077}, + {0.097290,-0.755162}, + {0.165245,0.091931}, + {-1.238996,0.033182}, + {0.094961,-0.517375}, + {-0.390291,0.240153}, + {0.023253,2.137456}, + {0.621424,-0.412412}, + {0.242280,-0.594768}, + {-0.765264,-0.423112}, + {-0.153731,0.730757}, + {0.419930,0.768227}, + {0.164315,0.199661}, + {-1.536602,0.855813}, + {0.226126,-0.357326}, + {0.350009,0.143890}, + {0.337303,0.843891}, + {-0.411561,-1.142193}, + {-0.701707,-0.241532}, + {-0.754151,-0.193665}, + {-0.371459,-0.379980}, + {-0.276399,-0.210742}, + {-1.074638,0.834850}, + {1.617356,-0.576681}, + {1.568916,-0.678719}, + {0.562247,0.287642}, + {0.631863,1.237075}, + {0.042284,-0.047805}, + {1.485053,-0.684224}, + {0.160235,-0.248368}, + {-0.389660,0.710686}, + {-0.050819,0.065209}, + {0.147388,0.158528}, + {0.327583,-1.242319}, + {-0.185792,-0.398783}, + {-0.880967,-0.168451}, + {0.561261,0.309319}, + {0.114879,0.834084}, + {-0.630472,0.320430}, + {0.435172,-0.147865}, + {0.138108,0.189852}, + {0.433189,0.538220}, + {-0.539843,-0.734402}, + {0.102453,1.548384}, + {-0.349662,-0.123426}, + {-0.497825,-0.681592}, + {-0.815304,0.920879}, + {0.264205,1.651104}, + {-0.360736,-0.822221}, + {-0.546373,-0.203813}, + {1.506398,0.351934}, + {1.271735,0.262145}, + {0.706702,0.382961}, + {0.063130,0.014527}, + {-0.198279,-0.082914}, + {0.756777,0.133322}, + {0.762393,0.070534}, + {-1.168252,0.042773}, + {-0.875856,0.058973}, + {-0.907179,1.363516}, + {0.003700,1.289862}, + {0.279690,-0.489829}, + {-0.952025,-0.016869}, + {-0.062242,0.118709}, + {0.335991,-0.262022}, + {-0.135763,0.124727}, + {0.827726,-0.460658}, + {0.070106,0.118099}, + {-0.594234,0.138962}, + {0.638866,1.436196}, + {0.038912,0.342362}, + {-0.409336,1.245498}, + {0.246502,-0.213165}, + {-0.522154,-0.329476}, + {-1.023245,-0.070043}, + {0.648593,-0.512078}, + {0.202472,-1.312851}, + {-1.306352,-0.890312}, + {1.086565,-0.802461}, + {0.842372,-1.343072}, + {-0.159571,-0.014023}, + {0.857682,-0.038734}, + {-1.088896,-0.345921}, + {0.822683,0.990156}, + {-0.329881,0.808677}, + {1.062717,1.498025}, + {-0.433379,-0.433149}, + {-1.122758,-0.127346}, + {0.542121,0.927791}, + {0.308221,0.175934}, + {-0.149790,-1.068382}, + {-0.616779,-0.744305}, + {0.839533,-0.157706}, + {0.303678,0.382350}, + {0.194006,-0.212379}, + {0.033246,-0.903250}, + {-0.338256,-0.678675}, + {-0.613313,-0.387690}, + {-1.010888,-0.461805}, + {0.256900,1.327843}, + {0.791153,0.371449}, + {0.412562,-0.756850}, + {0.065134,-0.322337}, + {0.083713,0.126607}, + {0.723780,1.256984}, + {-1.243036,-0.742905}, + {0.026896,0.353344}, + {-0.269050,0.745763}, + {1.149596,0.347420}, + {-0.774535,0.020295}, + {0.596979,0.015554}, + {-0.615475,-0.620565}, + {0.318177,0.396116}, + {0.421686,-0.052160}, + {-0.430877,-1.293244}, + {-0.155236,-0.215658}, + {-0.602139,0.532974}, + {-0.243152,-1.579031}, + {0.123780,-0.983632}, + {0.136269,-0.821246}, + {0.284418,0.304578}, + {-0.397824,0.300438}, + {-0.360441,0.227509}, + {0.046855,-0.171865}, + {-1.804252,-0.700048}, + {-0.924882,-0.556849}, + {0.134748,0.082988}, + {-0.132825,-0.916706}, + {0.786704,0.720149}, + {1.091863,0.641613}, + {0.881371,0.215342}, + {-0.096880,0.560482}, + {0.422486,-0.921443}, + {0.341221,-0.894846}, + {0.075976,1.064656}, + {-0.533020,-0.023005}, + {0.320752,0.244138}, + {-0.040666,0.065450}, + {1.450750,0.008950}, + {0.306952,-0.562488}, + {0.302953,0.123134}, + {0.798245,0.094443}, + {0.038655,-0.516631}, + {-0.252824,1.501311}, + {-0.356779,0.297983}, + {-0.180288,1.164347}, + {-1.407410,-0.435116}, + {-0.576522,-0.443552}, + {0.111603,-0.209512}, + {0.136332,1.190104}, + {-0.810554,0.693664}, + {0.308525,0.629498}, + {0.318195,-2.104560}, + {0.162520,-0.149801}, + {-1.142162,1.218633}, + {-0.351640,-0.468696}, + {-0.793111,-0.658338}, + {-0.575915,0.941180}, + {0.317133,0.669761}, + {0.985808,-0.707916}, + {0.260989,0.770580}, + {-0.078153,-0.123214}, + {0.053145,1.817637}, + {-0.628024,0.069947}, + {-0.777414,-0.126421}, + {-0.647336,0.166883}, + {2.207409,-0.473580}, + {-1.038409,0.398710}, + {-0.345503,0.161175}, + {0.081747,0.890997}, + {-0.308902,-0.075592}, + {-0.139376,-0.676387}, + {0.971584,-0.470253}, + {-0.162857,1.149113}, + {0.171516,0.587119}, + {-0.613744,-0.035450}, + {-0.580046,-0.329255}, + {0.100551,-1.085898}, + {-0.592872,-0.489665}, + {-0.941300,-0.498021}, + {0.156036,0.709273}, + {0.178233,-0.632015}, + {0.678891,0.228611}, + {0.492409,-0.005288}, + {-1.497998,-1.024431}, + {0.838897,-0.110250}, + {0.568010,-1.606525}, + {-0.432611,0.904418}, + {0.334915,1.309759}, + {-0.890282,1.529258}, + {-1.064858,-1.150747}, + {0.051353,0.433881}, + {-0.146728,-0.312565}, + {-1.063791,-0.097197}, + {-0.181281,0.331634}, + {1.723937,-0.176101}, + {0.569951,0.990671}, + {0.418655,-0.675772}, + {0.182521,-0.095608}, + {-1.007120,0.018916}, + {1.718394,1.198867}, + {-0.313048,0.068845}, + {-1.421110,-0.661129}, + {-1.370764,-0.150880}, + {0.358122,1.405506}, + {-2.015900,-0.734896}, + {0.605181,-0.924120}, + {-1.191318,0.682983}, + {-0.456857,-0.148538}, + {0.300737,-0.194614}, + {0.929323,0.927409}, + {-0.450904,0.410019}, + {0.838989,0.855354}, + {0.011216,0.148217}, + {1.790998,-0.435076}, + {0.979138,0.801324}, + {-0.434199,0.113647}, + {0.244367,-0.759697}, + {-0.866268,-0.172338}, + {0.185045,-0.400993}, + {-0.381384,-0.328469}, + {0.870050,-1.131930}, + {0.475579,-1.270791}, + {0.553011,-0.863202}, + {0.654535,0.866937}, + {0.636370,0.353826}, + {0.532848,-0.266808}, + {-0.305542,0.323175}, + {0.817581,-1.178811}, + {-1.196670,0.435729}, + {-0.879273,-0.080918}, + {-0.355981,0.831777}, + {-0.514107,-0.221697}, + {-0.173027,0.391314}, + {0.480640,-0.762188}, + {-1.365528,0.280669}, + {-1.190631,-0.468936}, + {0.865182,-1.193025}, + {0.501712,1.474804}, + {-0.256834,0.036278}, + {0.625077,-0.710525}, + {0.236352,1.463872}, + {1.622799,-0.836983}, + {-1.629799,-0.761636}, + {0.048897,1.161363}, + {-0.782579,1.512752}, + {0.305203,-0.203621}, + {0.078598,0.853412}, + {-0.590944,0.241544}, + {0.173496,-1.406007}, + {-0.999952,-0.051233}, + {0.671370,-0.805464}, + {-0.681366,0.306463}, + {0.562013,-1.218074}, + {-0.901352,0.429769}, + {-0.149506,0.266835}, + {0.214535,1.287188}, + {-0.169843,-0.687892}, + {-0.054779,1.567896}, + {0.240689,0.339854}, + {-0.874400,-0.867453}, + {0.412938,0.074314}, + {0.567298,-2.005843}, + {0.023167,0.258225}, + {-1.641902,0.893004}, + {-0.335666,-0.481124}, + {-0.406708,-0.010981}, + {0.658780,0.316174}, + {-0.955737,0.114306}, + {-0.015993,-1.537689}, + {1.424653,0.275514}, + {0.391517,-0.073148}, + {-0.745075,0.282317}, + {0.345172,0.271172}, + {0.481076,0.739154}, + {-0.356021,-0.874318}, + {-0.063438,0.390779}, + {-1.109843,-0.988009}, + {0.717374,0.051986}, + {-0.076888,0.729893}, + {1.231962,0.770958}, + {-0.473425,0.077225}, + {-0.541175,0.273609}, + {0.353179,-1.140094}, + {0.000531,0.335460}, + {-0.553490,-0.163401}, + {-0.267372,-0.190631}, + {-1.005119,0.844056}, + {-0.739355,-0.466000}, + {1.232900,-0.286890}, + {0.072653,0.156869}, + {0.766814,0.123674}, + {0.409127,0.391504}, + {-1.568030,0.076824}, + {0.312427,1.087632}, + {0.194971,0.012558}, + {-0.835118,-0.977949}, + {1.155426,0.060691}, + {-0.251222,0.836983}, + {0.405056,0.222589}, + {0.062390,-0.297580}, + {0.201353,-0.620657}, + {-0.057828,0.302448}, + {0.353545,-0.819051}, + {-1.077600,0.701107}, + {0.551567,-0.547460}, + {-0.206217,0.843281}, + {0.195007,-0.522554}, + {0.786147,0.742689}, + {-0.915141,-0.436052}, + {-1.052682,1.424224}, + {0.597211,-0.177125}, + {-0.226331,-0.785225}, + {-1.502941,0.305148}, + {0.211830,0.257461}, + {0.039781,0.621727}, + {1.764019,-0.364944}, + {-0.011250,0.080853}, + {-0.037767,-0.191529}, + {0.120387,0.320196}, + {1.215214,0.159849}, + {0.951333,-0.128658}, + {0.683926,0.291417}, + {0.465572,0.464227}, + {0.237083,-0.278794}, + {0.825346,1.939517}, + {-1.000650,0.397936}, + {-0.422528,0.457669}, + {-0.415993,-0.857881}, + {0.654893,0.925834}, + {0.702427,0.341379}, + {-0.992852,-0.485504}, + {0.468854,-0.558263}, + {1.051053,-1.438013}, + {-1.609177,-0.229971}, + {-0.338898,1.308837}, + {1.716121,-0.108408}, + {-1.842097,-0.281067}, + {0.180047,0.058089}, + {0.314948,-0.365466}, + {-0.598626,-1.149004}, + {0.282546,0.129074}, + {-0.297604,-0.102458}, + {-0.134736,0.128291}, + {1.822758,-0.192577}, + {0.071825,-0.011008}, + {0.497849,-0.199343}, + {-0.005720,-0.569142}, + {-0.765651,-0.543594}, + {-1.172104,-0.011979}, + {-0.242091,0.779012}, + {-0.028042,0.723704}, + {0.451185,-0.941516}, + {-0.613115,-0.114437}, + {-0.972157,0.133869}, + {-0.076452,-0.516053}, + {0.083782,0.204923}, + {0.784000,0.582870}, + {-0.183293,0.586900}, + {-0.219489,0.464479}, + {0.144135,1.149970}, + {0.288305,-0.029936}, + {1.159682,0.771728}, + {-0.068957,0.519200}, + {-0.352525,-0.019248}, + {-0.265696,-0.606806}, + {-0.369018,0.437127}, + {0.533511,-0.112122}, + {-0.720835,0.975622}, + {1.285089,-0.946088}, + {0.455252,0.289840}, + {-1.326309,-0.639170}, + {0.108470,-0.476583}, + {0.142548,0.079352}, + {-0.029694,0.643831}, + {-1.482084,-0.771038}, + {-0.465824,-1.087531}, + {0.707385,0.077513}, + {-0.076182,1.057646}, + {0.379631,0.409768}, + {0.188938,-0.425715}, + {-0.234099,-0.734066}, + {0.043174,0.676531}, + {-1.163066,-0.193611}, + {-0.159620,-0.673125}, + {0.127940,-1.817839}, + {-0.451725,0.015069}, + {0.235742,0.360075}, + {1.748806,-0.323556}, + {-1.276301,0.117820}, + {0.166940,0.213350}, + {0.355975,0.062672}, + {-0.320198,-1.132743}, + {-0.855608,-1.215465}, + {0.013539,0.799086}, + {0.828422,0.915972}, + {1.006847,0.215101}, + {0.595009,0.252831}, + {0.442370,0.482821}, + {-0.693609,0.417306}, + {0.288466,-1.005315}, + {-0.396817,0.004994}, + {-0.293724,-1.217092}, + {1.212464,0.943142}, + {-0.865108,0.242460}, + {0.390441,0.080091}, + {0.871808,-1.076529}, + {0.254390,-0.387861}, + {0.532100,-1.371890}, + {0.132686,-1.074121}, + {0.426648,0.209831}, + {1.146969,0.503369}, + {-0.668154,-0.483259}, + {0.259931,-0.150336}, + {0.082358,-0.893764}, + {0.840501,-0.011365}, + {-0.082053,0.647275}, + {0.266846,1.226206}, + {-0.140652,-0.516312}, + {0.643273,-0.881556}, + {-0.379870,1.065882}, + {0.680447,0.242642}, + {-1.571274,-0.140568}, + {-0.535686,0.628896}, + {-0.010813,-0.606330}, + {0.361251,1.002445}, + {1.065906,-0.068655}, + {-0.224415,1.117594}, + {0.218497,-0.668069}, + {-0.429568,0.891438}, + {-0.998373,-0.389920}, + {0.226733,-0.730284}, + {1.059704,-0.349823}, + {-0.625330,-0.250376}, + {0.007118,1.525240}, + {-0.162942,-0.147716}, + {-0.666501,1.257793}, + {-0.909984,-0.138492}, + {-1.032952,-0.006279}, + {-0.404583,-1.848097}, + {-1.225754,0.434826}, + {1.235797,-0.792226}, + {0.783316,-0.750591}, + {-0.975057,0.365633}, + {-1.894987,-0.971523}, + {-0.147116,0.722479}, + {0.279787,0.076446}, + {1.433566,0.223812}, + {0.878914,-0.054495}, + {0.011693,0.776712}, + {-0.558728,0.481371}, + {0.641182,0.167371}, + {-0.669665,-0.807005}, + {-0.791191,0.591605}, + {-0.461665,0.714639}, + {0.066197,-0.199694}, + {-1.124229,0.833225}, + {-1.295771,-0.025693}, + {-0.037691,-0.391047}, + {-0.847875,0.862880}, + {0.441229,0.830506}, + {-0.259800,-0.491246}, + {-0.240834,0.911920}, + {0.442518,-0.580840}, + {1.561534,1.501570}, + {0.280203,0.397246}, + {-0.194177,0.276828}, + {0.944982,-0.351264}, + {0.022922,0.275745}, + {-0.867058,-1.632255}, + {0.280170,-0.145873}, + {0.108578,-0.052305}, + {-0.745809,-0.673504}, + {-0.616121,-0.379739}, + {1.008981,-0.155303}, + {0.285808,-0.263033}, + {0.601160,-0.612923}, + {0.900771,0.463246}, + {-1.013394,-0.618011}, + {1.233695,-0.032871}, + {-0.521967,-0.979415}, + {0.273272,-0.433226}, + {-0.240057,0.465270}, + {-0.465325,0.770377}, + {0.988019,-1.088975}, + {0.592680,0.367929}, + {0.800055,-0.721733}, + {-0.737244,-1.452977}, + {-0.427059,0.281520}, + {0.866413,-0.643401}, + {-0.182692,0.588766}, + {0.273523,0.294392}, + {0.566235,0.542400}, + {0.129606,0.397222}, + {-0.579409,0.288147}, + {-0.238510,0.268652}, + {1.122152,0.526534}, + {-0.841624,1.691837}, + {0.833782,1.207890}, + {-0.924153,2.110262}, + {-0.474350,-0.238235}, + {-0.515517,0.124354}, + {-0.064715,-0.236171}, + {0.599675,1.079644}, + {1.849341,0.024192}, + {0.161045,-0.379662}, + {0.823915,0.389173}, + {-1.260631,-0.467304}, + {0.052479,-0.187389}, + {-0.036665,0.449072}, + {0.069593,-0.152828}, + {0.068830,-1.285841}, + {0.680442,0.401365}, + {-0.160834,-2.024653}, + {-0.929411,0.671114}, + {-0.421687,0.749814}, + {-0.065965,0.527096}, + {0.929475,-0.741284}, + {-0.077824,-0.442484}, + {0.193024,-0.911981}, + {-0.101269,0.845595}, + {0.165756,0.295690}, + {0.319546,0.593792}, + {-0.808930,0.153177}, + {1.124408,0.458110}, + {0.771971,0.222809}, + {-0.167902,0.238733}, + {-0.169285,1.231875}, + {-1.585493,0.216024}, + {-0.747700,0.098100}, + {0.340226,-0.192779}, + {-1.219417,-0.107218}, + {0.228007,0.456442}, + {-0.007155,-0.634464}, + {-1.875543,0.567589}, + {-0.519810,-2.179719}, + {-0.904975,-2.451302}, + {0.736883,-0.419567}, + {0.918135,-1.128765}, + {0.384645,0.353239}, + {0.434095,-0.284308}, + {-0.374883,-0.095262}, + {-0.304398,0.413076}, + {-0.748666,1.124787}, + {-0.701671,0.451972}, + {0.395372,0.412637}, + {0.588244,-0.145257}, + {0.405163,1.023715}, + {0.744314,0.958872}, + {-0.037084,-0.577777}, + {-0.628322,-1.456151}, + {0.762014,-0.483828}, + {-0.958353,-0.171473}, + {-0.113997,1.464166}, + {1.350982,-0.530942}, + {-0.172846,-0.004565}, + {0.233537,0.941079}, + {-0.200530,0.383425}, + {0.264278,0.095382}, + {0.725498,1.193517}, + {1.280922,-0.026653}, + {0.097571,-0.441089}, + {0.300984,0.414280}, + {-0.041914,-0.544705}, + {1.009088,0.188493}, + {0.866042,-0.355025}, + {-0.317615,-0.910565}, + {0.489751,-0.574142}, + {0.963424,-0.661532}, + {-0.318844,-0.517722}, + {-0.190129,0.036885}, + {0.186444,-0.158205}, + {0.078693,-2.586327}, + {-0.266931,0.725793}, + {-0.074349,0.454831}, + {-0.374770,0.697565}, + {-0.467025,-0.014349}, + {-0.260550,-0.127574}, + {0.666807,0.559806}, + {-0.271031,-0.063661}, + {0.095739,0.428225}, + {-0.115755,0.220370}, + {1.075172,-0.821800}, + {1.387517,-1.151660}, + {-1.516364,0.833318}, + {-0.347857,0.250917}, + {0.299464,0.749435}, + {0.154734,-1.501682}, + {-0.503228,1.050996}, + {0.327790,-0.112045}, + {0.987849,-0.260528}, + {0.449412,1.852591}, + {-0.526460,0.814047}, + {-0.451808,-0.480134}, + {0.678355,0.739133}, + {0.317312,-0.328581}, + {0.196623,0.404023}, + {0.324616,1.699530}, + {-0.776618,-0.269720}, + {0.162184,0.179116}, + {0.297846,-0.710724}, + {-0.169321,0.167991}, + {1.769393,1.076862}, + {-1.380745,-0.595286}, + {0.568804,0.534699}, + {-0.846191,-0.871218}, + {-0.110816,-0.141844}, + {0.285220,-0.612886}, + {-1.000946,-0.050010}, + {-0.101431,-0.938313}, + {0.162775,0.079309}, + {-0.582009,0.345429}, + {0.124885,0.247372}, + {-1.328240,0.510701}, + {0.442295,0.051789}, + {0.949722,0.676903}, + {-0.111284,0.899622}, + {-0.437720,-0.322130}, + {-0.258154,0.985684}, + {-0.758257,0.557973}, + {-0.421330,-0.073546}, + {1.197222,-0.621330}, + {-1.526086,0.768420}, + {0.144164,0.595554}, + {0.071158,0.831643}, + {0.121315,1.096341}, + {-0.442333,0.055718}, + {0.261819,-0.929387}, + {-0.335194,-0.703410}, + {-0.634767,-0.488540}, + {-0.152389,-0.588104}, + {0.153830,-0.655196}, + {-0.631695,0.677282}, + {1.746302,-0.602460}, + {0.338172,-0.699808}, + {0.901305,0.660470}, + {1.137559,-0.192002}, + {-0.332112,0.081961}, + {-0.379872,0.728106}, + {-0.433884,-1.073145}, + {-0.247557,0.726460}, + {-0.232024,-0.849128}, + {1.187650,-0.092062}, + {-0.392385,-0.780775}, + {0.413751,-0.559636}, + {-0.431597,-0.961824}, + {0.463489,0.645597}, + {-0.897957,-0.663863}, + {0.842534,-0.688768}, + {-0.834302,-0.540110}, + {0.174923,-0.886926}, + {0.256774,-0.733313}, + {-0.513784,-0.360074}, + {0.156928,0.710061}, + {-0.779415,-0.205818}, + {1.122295,-0.263072}, + {-0.067941,-0.241437}, + {0.775305,-1.499039}, + {-0.959691,-0.336725}, + {-0.557347,0.644162}, + {0.097356,0.117803}, + {0.085507,1.845262}, + {0.507571,-0.452847}, + {0.157979,0.584192}, + {0.534463,0.510878}, + {0.436897,-0.704341}, + {-0.598275,-1.183016}, + {-0.479736,1.993246}, + {-1.004427,-0.606627}, + {1.175857,-0.209354}, + {-0.555928,0.024468}, + {-0.519805,-0.867264}, + {0.391430,0.558873}, + {-0.640640,0.630178}, + {-1.513294,0.362170}, + {-0.096170,0.302206}, + {1.549390,0.176401}, + {-0.712729,0.480838}, + {0.400243,-0.498461}, + {0.050925,-0.342701}, + {0.365122,0.134136}, + {0.517262,1.140502}, + {0.650985,-0.879352}, + {0.791790,0.189469}, + {0.654234,0.497645}, + {0.384115,-0.034611}, + {-0.125724,0.640141}, + {-0.543262,-1.255624}, + {-0.220592,-0.656310}, + {-0.130609,-0.147886}, + {-0.441347,0.720036}, + {0.400598,-0.080680}, + {-0.199337,0.873405}, + {0.032691,1.536398}, + {-0.093394,-1.310056}, + {-0.854984,1.071773}, + {0.102072,-0.810930}, + {-0.477344,0.066698}, + {0.648895,0.026279}, + {-0.285891,1.400032}, + {-1.216298,-0.236778}, + {-0.549714,0.688796}, + {-0.062685,-0.343855}, + {-0.341088,0.238776}, + {0.105347,0.048365}, + {0.514533,-0.634733}, + {-0.571926,0.456588}, + {0.367809,-0.456143}, + {0.979090,-1.286519}, + {-1.218222,0.367350}, + {-0.590629,-1.532832}, + {-1.718226,0.242958}, + {1.096783,-0.711503}, + {0.588342,0.376010}, + {0.744463,0.371433}, + {0.003243,0.668123}, + {0.062086,0.809872}, + {-1.132122,-0.104988}, + {0.084982,0.995250}, + {-0.688752,0.216891}, + {0.215504,-0.061450}, + {0.452003,-0.690233}, + {-0.723135,-0.275493}, + {0.357621,-0.515781}, + {-0.890998,-0.479333}, + {0.498701,-0.923387}, + {0.936200,-2.091405}, + {-0.879032,1.485557}, + {0.332185,-0.128280}, + {0.550373,0.387625}, + {0.632224,0.633608}, + {-0.605378,1.048378}, + {-0.472907,0.472679}, + {-0.926621,0.312398}, + {-0.285207,-0.148072}, + {-0.160155,-0.599110}, + {0.743425,0.098568}, + {0.668188,1.079139}, + {1.112103,1.452457}, + {-0.727684,-0.625500}, + {0.582495,0.602978}, + {-0.533045,-0.290135}, + {-0.137783,-0.815375}, + {-0.423199,-0.027111}, + {-0.199832,0.858830}, + {-0.774598,-0.479101}, + {-0.808559,0.112108}, + {-0.095061,-0.376614}, + {-0.643351,1.359531}, + {0.932951,-1.417012}, + {-0.848382,-0.222414}, + {-1.002188,-1.075297}, + {-0.939211,-0.668392}, + {0.479471,-0.342248}, + {-0.651955,0.089450}, + {-0.529345,1.103163}, + {-0.297371,0.787987}, + {-0.692098,-0.212505}, + {0.441398,0.601694}, + {1.155338,0.506600}, + {0.806606,-0.500708}, + {-0.740199,-1.292330}, + {-0.301074,0.068852}, + {0.517610,0.645486}, + {-0.240596,0.629380}, + {0.078991,-0.446581}, + {0.463990,-0.548239}, + {0.076625,-0.265612}, + {0.100232,-0.929770}, + {0.066872,0.589058}, + {-0.187736,-0.658316}, + {-0.822249,0.309850}, + {-0.917348,0.269891}, + {-0.295888,0.149902}, + {0.910250,0.779854}, + {-0.763011,-0.047352}, + {-0.345678,-0.728869}, + {0.991317,-1.211605}, + {0.654773,-1.301914}, + {0.240193,0.127080}, + {0.683297,0.857939}, + {-1.056701,0.902413}, + {0.538899,-0.329668}, + {-0.212189,0.730930}, + {-1.240264,-0.481620}, + {-0.735395,-0.030127}, + {-0.024994,-0.142647}, + {0.112034,-0.735685}, + {0.427365,-0.104027}, + {-0.416424,-1.693984}, + {1.186313,0.507243}, + {-1.550728,0.625737}, + {-0.395223,1.280803}, + {0.117296,0.255594}, + {0.078576,-0.343091}, + {0.336925,-0.610704}, + {0.535086,-0.319883}, + {0.586244,0.858364}, + {0.792222,-0.425311}, + {-1.174751,-0.317509}, + {-0.296053,1.341013}, + {-0.761628,0.373641}, + {0.144214,-0.064574}, + {0.308336,-0.161496}, + {0.713510,0.549545}, + {0.561945,0.014662}, + {0.618634,0.376704}, + {0.566078,-0.488592}, + {0.749551,-0.008964}, + {-1.439229,-1.800224}, + {0.330291,0.691467}, + {-0.371258,1.717772}, + {0.264541,1.219097}, + {-0.449660,0.278444}, + {-0.925116,-0.622006}, + {1.810841,0.357436}, + {-0.361036,-0.568890}, + {-0.245604,-0.543745}, + {-0.809004,-0.297720}, + {0.673398,-1.349551}, + {0.320146,0.122381}, + {0.055778,0.645761}, + {-1.114450,0.141513}, + {0.191087,1.024756}, + {-0.230242,0.131826}, + {1.440529,-0.146838}, + {-0.309778,-0.905495}, + {0.038309,0.453297}, + {-0.322784,0.721147}, + {-0.358682,-0.408192}, + {-0.387312,-1.581744}, + {0.455011,0.089694}, + {-0.435709,0.434022}, + {1.121966,0.703677}, + {-0.000289,0.898656}, + {0.370298,0.569843}, + {-0.759395,0.155326}, + {0.264595,-0.758241}, + {-0.717438,-1.284560}, + {0.534397,0.044761}, + {-0.387217,-0.850411}, + {0.044635,-0.092650}, + {-0.372661,-0.068370}, + {0.066867,0.992163}, + {0.309686,-0.088930}, + {-0.551975,1.140835}, + {0.282269,-0.265153}, + {-0.385975,0.629002}, + {-0.588541,0.936380}, + {-0.450421,-0.312229}, + {-0.584466,0.390126}, + {-0.561504,0.846689}, + {-0.327959,1.138398}, + {0.772840,-1.154541}, + {0.109965,0.119873}, + {-1.041428,0.030014}, + {-1.054290,-0.520300}, + {-0.401694,-1.322928}, + {0.339501,-1.053816}, + {-1.483539,0.383590}, + {0.179033,-0.005078}, + {-0.449563,0.617536}, + {0.159361,-0.300597}, + {0.681503,0.425180}, + {0.075334,-0.054530}, + {1.127598,-0.722161}, + {0.830144,-0.411552}, + {0.130735,-0.537078}, + {-0.318294,0.279468}, + {1.329998,0.436047}, + {0.628394,0.202456}, + {0.452344,-1.322196}, + {-1.328185,1.430783}, + {-0.607721,-0.864380}, + {0.504693,-0.747412}, + {0.873797,0.066753}, + {-1.716981,-1.433918}, + {-1.009027,-0.760573}, + {-0.113434,0.171071}, + {-0.037380,0.247667}, + {0.522725,-0.251274}, + {0.372523,-0.578671}, + {0.363876,-0.147056}, + {0.646783,-0.450081}, + {1.137476,0.323571}, + {-0.780254,-0.368106}, + {1.146234,0.162286}, + {0.762737,0.417214}, + {-1.238331,0.742666}, + {-0.390029,-0.580793}, + {0.171207,0.920070}, + {0.371806,-0.258019}, + {-1.675454,0.112764}, + {0.314425,0.532884}, + {-0.212717,0.521552}, + {1.230658,0.602619}, + {0.024240,1.086085}, + {-0.753075,0.421991}, + {1.184260,0.288993}, + {-0.156075,-0.349412}, + {0.070528,-0.556874}, + {1.304863,0.059083}, + {0.075264,0.205343}, + {-0.115468,0.910225}, + {-0.086719,-0.359175}, + {0.580907,1.065438}, + {0.059108,-1.456124}, + {1.143980,-0.250649}, + {-0.532360,0.202426}, + {-1.306963,0.894754}, + {-0.004374,0.331473}, + {0.530959,1.017206}, + {0.896061,-0.486310}, + {0.124527,-0.835825}, + {0.401800,-0.694786}, + {0.131098,-0.507110}, + {-0.493495,-1.031719}, + {-0.380582,0.015232}, + {-1.773868,0.203092}, + {-0.243199,-0.939094}, + {-0.243723,-1.167272}, + {0.991581,0.396060}, + {-0.559749,0.941881}, + {0.942520,1.077600}, + {-0.572208,0.399250}, + {-1.198896,0.820616}, + {-0.733767,0.042879}, + {-1.020932,1.153919}, + {-1.048099,0.943322}, + {-0.354407,0.317066}, + {0.308045,0.211141}, + {0.831764,-1.378969}, + {-0.007062,-0.513552}, + {0.967642,0.641026}, + {-0.668442,0.316706}, + {-1.122864,-0.024464}, + {0.316990,0.362859}, + {-0.111627,0.744548}, + {0.185230,-0.636517}, + {1.227635,-0.165264}, + {-0.506497,0.297073}, + {-0.317230,-0.293662}, + {0.344244,0.550272}, + {0.086386,0.725618}, + {-0.374595,0.121906}, + {0.205497,1.783572}, + {0.647253,-0.895754}, + {0.162982,-0.022414}, + {-0.994075,-1.237339}, + {1.033565,-0.151604}, + {-0.280396,0.878138}, + {-0.264564,-0.165480}, + {0.301752,0.255018}, + {-0.615882,0.711428}, + {0.300740,0.246028}, + {1.845295,-0.214744}, + {1.080206,-0.092894}, + {0.015605,0.522865}, + {1.172807,-0.447869}, + {-0.821485,0.490399}, + {-0.306496,0.230408}, + {0.709987,-0.375342}, + {-0.355816,0.453023}, + {-0.212208,-0.678919}, + {0.091036,-0.565006}, + {0.116062,-0.416735}, + {1.050847,0.339220}, + {1.742643,-0.228713}, + {-0.434887,-0.201646}, + {-0.382463,-0.917137}, + {-0.598962,0.979455}, + {-0.678083,-0.074060}, + {1.074554,0.667668}, + {-0.175566,0.080397}, + {-0.746242,-0.837080}, + {0.569198,-0.288397}, + {-0.419237,0.814960}, + {1.110668,0.610994}, + {1.024729,-0.522782}, + {0.287071,0.129891}, + {1.059693,0.192434}, + {-0.500546,1.681387}, + {-0.352649,0.693367}, + {1.330871,0.878471}, + {1.452162,1.296531}, + {-0.561816,1.060767}, + {-0.024246,0.549463}, + {-0.558191,-0.475732}, + {0.579874,-0.378951}, + {-0.386188,0.616314}, + {1.904212,-0.081406}, + {0.056011,0.587343}, + {2.079102,-0.449990}, + {-0.585793,0.200955}, + {-0.148105,-0.720863}, + {-0.871106,1.178992}, + {-0.259457,0.018706}, + {-0.838352,-0.101366}, + {1.104726,-0.165176}, + {-0.376425,0.962019}, + {-0.383321,-0.621639}, + {0.185654,-0.673447}, + {0.088111,0.910684}, + {1.972742,1.066469}, + {0.343070,1.425779}, + {0.235284,-1.008437}, + {-0.232498,-0.780531}, + {-0.285426,0.387394}, + {0.570176,0.601760}, + {0.857470,0.042025}, + {0.823288,0.485621}, + {-0.161700,0.393089}, + {0.653084,-0.695477}, + {0.397400,1.144465}, + {0.330464,1.209299}, + {-0.905504,0.536976}, + {0.462790,0.056269}, + {0.181789,0.418193}, + {-0.442622,-0.997435}, + {-0.622074,-1.020432}, + {0.174594,-0.272027}, + {0.195162,0.424718}, + {-0.483125,-0.014181}, + {-0.333027,-0.666385}, + {-0.225218,-1.387923}, + {0.380830,-0.801521}, + {0.500795,0.083064}, + {-0.354031,0.562019}, + {-0.322369,0.355784}, + {-0.689934,1.420140}, + {0.505533,0.590711}, + {-0.258165,-0.519527}, + {0.484829,0.168475}, + {-0.887195,0.627565}, + {-0.569851,0.255714}, + {0.656937,1.030732}, + {0.253163,1.183688}, + {-0.090994,0.350419}, + {-0.621855,0.522503}, + {1.260944,-0.340844}, + {-0.328843,1.339729}, + {-0.187433,0.904883}, + {-0.091476,1.344383}, + {-0.398040,-0.259532}, + {0.059961,-0.952296}, + {-0.669200,-0.513899}, + {0.882696,-0.883357}, + {0.445337,0.858188}, + {-0.376645,0.216174}, + {0.251451,1.293422}, + {-0.343713,0.459366}, + {-0.790002,-1.400639}, + {-0.281481,0.156530}, + {-0.050578,-0.812539}, + {-0.069669,-0.942398}, + {0.206314,1.062811}, + {-0.862538,0.079873}, + {-0.142145,-0.179803}, + {-0.635656,0.187704}, + {-0.288690,-0.632587}, + {0.489273,-1.319410}, + {-0.113265,0.243749}, + {-0.547880,0.138515}, + {0.503130,-0.553393}, + {-1.042138,1.207500}, + {0.993756,1.771553}, + {0.945115,0.708578}, + {-0.755664,-0.227831}, + {2.114421,0.144923}, + {1.322935,0.007610}, + {0.668800,0.872877}, + {1.206511,1.284430}, + {0.119083,1.037143}, + {0.469420,-0.968104}, + {0.178111,-0.706050}, + {-0.093654,0.351570}, + {1.216869,-0.083921}, + {1.128239,-0.721634}, + {-0.603763,-1.222727}, + {-0.246507,0.765585}, + {-0.469168,-0.154943}, + {0.115194,-0.645646}, + {-0.628875,-0.134190}, + {-0.218869,1.072319}, + {-0.304600,-0.845963}, + {0.041486,0.312707}, + {-0.824256,0.026274}, + {-0.398291,0.206157}, + {0.865547,0.384018}, + {-0.518704,-0.244805}, + {0.770365,-0.244413}, + {-0.853040,1.803973}, + {-0.112336,0.330401}, + {0.389707,0.066202}, + {-1.206726,-0.931216}, + {0.890161,1.029948}, + {0.224077,-0.218359}, + {-0.835221,0.379948}, + {-0.576608,0.010603}, + {-0.046229,-0.651582}, + {0.149031,-0.006860}, + {-0.232445,-0.153048}, + {-0.361445,-0.624316}, + {-0.089316,-0.902206}, + {-0.677576,0.291582}, + {-0.694052,0.341786}, + {0.604152,0.954109}, + {-0.451568,-1.027999}, + {0.888470,0.246610}, + {1.378708,-0.162367}, + {0.807884,-0.154657}, + {-0.121010,0.723971}, + {0.756675,-0.287967}, + {-1.352302,0.460834}, + {-0.539413,-0.417247}, + {0.138693,0.716212}, + {-1.262669,0.189740}, + {-0.127893,0.098501}, + {-2.031114,-0.515120}, + {-0.566216,0.134760}, + {-0.894512,-1.013835}, + {0.545570,-0.785318}, + {0.314537,-0.541041}, + {-0.623232,-0.972520}, + {-0.239815,-0.060572}, + {-0.016385,0.088118}, + {0.233685,0.536110}, + {-0.701300,0.465990}, + {0.772176,-0.169732}, + {-0.111524,-0.101524}, + {0.058288,1.465041}, + {0.712798,-0.116610}, + {0.667813,0.354510}, + {-0.055343,-0.426603}, + {0.923450,-0.343740}, + {0.351264,-0.768122}, + {-0.881422,0.152680}, + {-0.929116,1.638255}, + {0.167936,-0.278059}, + {1.027618,0.529101}, + {-0.777487,-0.773029}, + {-0.171119,-0.587115}, + {-0.630818,0.969008}, + {0.561234,0.268168}, + {0.106045,-0.638529}, + {1.266788,-1.129971}, + {-0.995631,-0.558621}, + {0.188110,-0.702478}, + {0.335395,-0.240620}, + {-0.116215,0.260554}, + {0.680446,-0.603189}, + {0.904362,1.717741}, + {-0.015833,0.746788}, + {-0.148045,0.051645}, + {0.009869,0.846651}, + {0.298090,1.350605}, + {1.345340,-1.423719}, + {-0.754747,-1.335279}, + {0.419094,-0.864441}, + {-0.145479,-0.797688}, + {0.135712,0.991836}, + {0.225006,-0.060168}, + {0.355427,0.550726}, + {1.954229,0.656213}, + {-0.169736,0.311985}, + {0.939487,0.650424}, + {0.789964,-0.684274}, + {0.164532,0.093543}, + {0.060515,0.106031}, + {-0.024316,-0.913373}, + {-0.582858,0.242192}, + {-0.599441,0.706627}, + {-0.037631,-0.529508}, + {0.108102,0.029830}, + {-0.766994,0.601282}, + {-1.162212,-0.241856}, + {-0.283526,1.599770}, + {-1.549907,-0.505364}, + {0.722774,0.073483}, + {-1.024597,-0.392075}, + {0.858099,-0.287027}, + {0.327537,-1.007954}, + {0.667032,-0.025028}, + {0.975513,0.143732}, + {0.018982,0.474133}, + {-0.098149,1.106961}, + {-0.108187,-0.707083}, + {-0.219794,0.475886}, + {0.210508,-0.510677}, + {-0.416087,-0.900413}, + {-0.752409,-0.392688}, + {0.327123,-0.496539}, + {-0.879819,-1.010528}, + {-1.401704,-0.483436}, + {-1.566675,-0.015039}, + {-0.550926,-0.315944}, + {-0.711913,-0.986015}, + {0.408434,-0.200798}, + {-0.921718,0.340502}, + {-1.323506,-0.767555}, + {0.762208,-0.010204}, + {1.414222,-0.108579}, + {-1.279120,-0.115126}, + {-1.063315,-0.287798}, + {-0.612699,0.708367}, + {1.058841,-0.974767}, + {-0.887090,0.515838}, + {-0.169713,-0.586082}, + {0.468957,-1.057315}, + {-1.137185,-0.201351}, + {0.857001,0.506281}, + {-0.694478,1.116885}, + {-0.101536,0.252581}, + {-0.186678,0.121469}, + {0.237319,1.220649}, + {0.590731,0.106154}, + {-0.307152,-0.195058}, + {-0.534827,0.484876}, + {1.112901,0.239961}, + {0.050445,0.481539}, + {0.545830,0.854745}, + {-0.687006,-0.117939}, + {0.167796,0.067286}, + {-0.200961,-0.851043}, + {-0.029250,-0.070030}, + {0.571111,-0.402512}, + {-0.291893,-0.486622}, + {0.199427,-0.464909}, + {0.485504,0.196643}, + {-1.203786,1.305744}, + {-0.457443,2.058590}, + {-0.206683,-0.175040}, + {0.166361,0.461590}, + {-0.426843,-1.352936}, + {0.501698,0.238129}, + {-0.809285,-0.792133}, + {-0.655155,0.336089}, + {0.726113,-1.582158}, + {-0.150580,0.179097}, + {0.715039,-1.127365}, + {-0.012255,-1.422302}, + {-0.291115,-0.120922}, + {0.109163,0.722364}, + {0.653337,0.016132}, + {0.459079,-0.773381}, + {-1.171660,1.182249}, + {-0.102436,0.837007}, + {0.845445,0.528685}, + {-0.409713,0.406902}, + {0.830749,0.057450}, + {0.671611,0.782030}, + {0.200145,-1.167993}, + {-0.205830,-0.256860}, + {0.341035,0.280555}, + {-1.201147,-0.323218}, + {-0.212821,0.050460}, + {0.742152,-0.323082}, + {0.819270,0.195198}, + {0.669024,0.897072}, + {-0.501893,-0.365942}, + {-1.308934,0.089249}, + {-0.037597,-0.113499}, + {-1.004372,0.368385}, + {0.141077,-0.067610}, + {0.275376,-0.743583}, + {-0.191894,-1.129273}, + {-1.258964,-0.039886}, + {0.728804,-1.000285}, + {1.086578,-0.617149}, + {-0.855317,-0.310454}, + {-0.147711,0.408143}, + {-0.517206,0.043758}, + {0.719426,-1.283598}, + {-0.235939,0.668859}, + {-0.380010,-0.313257}, + {0.316778,-0.118759}, + {-0.262927,-1.567183}, + {-0.282733,0.420140}, + {0.818925,-0.012589}, + {0.357610,0.577911}, + {-0.190272,-0.414123}, + {0.625359,1.169565}, + {-0.917634,0.809205}, + {0.909000,-0.614465}, + {-0.273865,0.307313}, + {0.708742,1.146401}, + {-0.736018,1.297624}, + {-0.132588,-0.042389}, + {0.752216,-0.630562}, + {0.602787,-0.506396}, + {0.633488,0.200361}, + {0.862136,-0.559107}, + {0.745865,-1.328896}, + {-0.015377,-0.603058}, + {0.012261,0.207465}, + {-1.262966,0.309847}, + {-0.816732,-0.048421}, + {1.368862,-0.089376}, + {-0.950272,-0.966439}, + {0.201282,-0.088005}, + {-0.675286,0.791768}, + {0.857350,-0.330363}, + {0.297582,-0.494692}, + {-0.536755,0.002392}, + {-0.209953,0.732953}, + {-0.443116,-0.086068}, + {-1.175001,0.573199}, + {-0.515406,0.620601}, + {0.519220,0.365639}, + {0.179975,-0.360670}, + {-0.307683,0.106896}, + {0.132153,0.727465}, + {-0.280980,-0.228803}, + {0.239138,-0.878369}, + {-0.037641,0.340422}, + {0.908774,-1.101317}, + {0.049850,-0.299075}, + {0.019113,0.674994}, + {-0.015975,0.379414}, + {0.288954,-0.809359}, + {0.347018,-1.157598}, + {0.074732,-0.537650}, + {0.996135,-0.001765}, + {0.056827,-0.488387}, + {-0.833093,0.386931}, + {0.758476,0.872903}, + {-0.745092,-0.444934}, + {-0.224247,-0.116532}, + {-0.204749,0.261726}, + {0.404937,0.616612}, + {0.339130,0.532116}, + {0.321454,-0.851996}, + {0.318065,0.804013}, + {0.255111,-0.303607}, + {0.430730,0.409011}, + {0.336340,-0.608268}, + {0.689794,0.099887}, + {0.120092,0.052738}, + {-0.588516,-0.366448}, + {0.325651,-0.658579}, + {0.947989,-0.734417}, + {0.016734,-0.728917}, + {-0.841605,0.381322}, + {0.231804,0.206317}, + {1.051284,-0.490680}, + {-0.050906,-0.211480}, + {-0.105047,0.477795}, + {-0.252414,-0.626855}, + {-0.057217,-0.134807}, + {1.067822,-0.178322}, + {-0.086659,-1.147155}, + {-0.741801,0.582173}, + {0.803925,-1.119881}, + {0.543473,0.197205}, + {0.407991,-0.434675}, + {0.107264,-0.319198}, + {1.091457,0.760169}, + {-0.013718,0.000686}, + {-1.248275,0.208178}, + {-0.899392,0.261502}, + {-0.631148,-0.302873}, + {0.083128,0.705050}, + {-0.778608,-0.788078}, + {1.135346,-0.872922}, + {-1.157340,-0.867567}, + {-0.593543,-2.187029}, + {0.093469,0.234575}, + {0.443437,-0.304265}, + {1.551142,-1.422596}, + {0.442576,-1.577903}, + {0.192425,0.160683}, + {-0.902680,-0.431437}, + {-1.004525,-0.745898}, + {-0.483396,-0.192180}, + {1.080987,-0.266741}, + {-0.903296,1.170854}, + {-0.364402,0.684777}, + {0.309202,-0.017096}, + {-0.492831,-0.600043}, + {-1.612991,-0.804477}, + {-0.407146,-0.758813}, + {0.829137,-0.603992}, + {-0.251557,-0.383196}, + {-0.743938,0.109216}, + {1.011679,-0.340907}, + {0.241315,0.068707}, + {-1.006463,0.402521}, + {0.031220,-0.028792}, + {-0.417251,-1.398311}, + {0.775474,0.111723}, + {-1.223098,-0.658243}, + {2.340365,-0.265007}, + {0.301015,-0.206530}, + {-0.200633,-0.557171}, + {-0.202832,0.319060}, + {-0.010049,0.742861}, + {0.106082,0.811121}, + {0.055592,-0.191956}, + {0.355395,0.583195}, + {0.282830,-0.170406}, + {0.025638,1.918779}, + {0.944669,-0.058716}, + {1.264998,1.490664}, + {0.823037,0.092036}, + {1.217579,-0.491040}, + {0.037653,-0.782702}, + {0.149131,-0.656208}, + {0.410757,1.584757}, + {1.325665,0.028426}, + {0.971514,-0.170968}, + {0.142927,-0.349601}, + {-0.675615,1.239243}, + {1.118417,0.482521}, + {-0.525994,0.493175}, + {-1.053111,-0.390079}, + {0.030564,0.067288}, + {-0.074059,-0.899509}, + {-0.360663,0.382902}, + {0.550419,0.853873}, + {-0.544569,-0.824151}, + {0.568337,0.130398}, + {-0.604970,0.925242}, + {0.220753,-0.254279}, + {0.337711,0.557667}, + {-0.753422,-0.586669}, + {0.428708,-0.232984}, + {1.794279,0.483338}, + {1.304773,-0.365589}, + {-0.433436,-0.791504}, + {-0.214934,0.966716}, + {-0.305057,0.580224}, + {-0.106751,-0.822595}, + {1.028315,-0.877748}, + {0.852443,-0.409121}, + {0.625301,0.180248}, + {1.396398,0.143160}, + {1.108587,0.541150}, + {0.468621,-1.043421}, + {0.906804,0.715312}, + {-0.766680,0.905431}, + {-0.441257,0.668639}, + {0.284121,-0.043281}, + {-0.616953,0.794195}, + {0.163532,-0.395955}, + {-0.412360,-0.597153}, + {0.241518,-0.585513}, + {0.482960,0.567925}, + {-1.054434,-0.649045}, + {0.605650,-0.378689}, + {-0.609803,0.359699}, + {1.365516,0.646388}, + {-0.344219,0.120575}, + {-0.654285,-0.631225}, + {0.468870,0.618246}, + {-0.390055,0.556382}, + {-0.508965,0.454676}, + {0.116800,0.138547}, + {-1.168829,-0.304091}, + {-0.385664,-0.659049}, + {-0.639212,-1.396839}, + {1.224527,1.061921}, + {-0.712606,-0.081001}, + {0.120125,-0.300214}, + {0.179791,-0.636082}, + {-0.605018,-0.693630}, + {-0.678318,-0.318564}, + {-0.598472,-0.031708}, + {-0.520574,-0.296742}, + {0.067744,-0.796947}, + {0.696445,0.463145}, + {0.094760,-0.023756}, + {-1.028425,1.287291}, + {-0.669956,0.116063}, + {-0.209304,0.099915}, + {-1.108453,-0.002002}, + {-0.060206,-0.515472}, + {0.981295,0.380674}, + {0.263531,-0.667106}, + {0.250979,0.072504}, + {-0.096590,0.766292}, + {0.920231,-0.755035}, + {-0.505097,-1.091862}, + {-0.615787,0.117510}, + {0.368374,0.389098}, + {-0.126383,-0.430203}, + {0.164085,-0.529933}, + {0.599555,-0.034148}, + {1.102519,-0.438562}, + {0.085070,-0.251993}, + {0.865140,0.585431}, + {0.934833,-1.057558}, + {0.249809,-0.620187}, + {0.265592,1.080486}, + {-0.634548,-0.038819}, + {-0.150059,0.264938}, + {0.250318,1.521858}, + {-0.173384,-0.223300}, + {0.129138,0.492724}, + {1.592594,0.165069}, + {-0.331133,1.012240}, + {-0.697260,-0.195315}, + {-0.312506,-1.024730}, + {-0.234223,-0.824909}, + {-0.383885,0.106128}, + {-0.175865,0.392687}, + {-0.510849,-0.462690}, + {-1.018937,1.151529}, + {-0.038301,-0.066566}, + {0.530731,0.127405}, + {-0.208679,-0.107666}, + {0.120497,1.016165}, + {-0.052440,0.725401}, + {1.832884,-0.342007}, + {0.092143,0.258115}, + {-1.159934,-0.970688}, + {0.589430,-0.586012}, + {1.209632,1.986167}, + {-0.366520,0.055513}, + {0.384307,0.775611}, + {-0.877936,-2.193519}, + {-0.003713,1.002400}, + {-1.173911,0.755036}, + {-0.477599,0.075858}, + {0.388147,0.137404}, + {-0.270243,-0.165515}, + {-0.260462,1.171696}, + {-0.150456,-0.885312}, + {0.469399,-0.599552}, + {-0.597813,-0.750128}, + {0.095583,-0.274177}, + {-0.509728,1.587391}, + {0.972749,0.614814}, + {-0.752960,-0.189362}, + {1.062092,-0.210413}, + {-0.114508,0.325050}, + {1.881627,0.271021}, + {-1.128107,-0.567826}, + {0.014185,-0.695967}, + {0.338390,0.827812}, + {-0.274898,0.464329}, + {0.550296,0.200794}, + {-0.197346,-1.187593}, + {-0.155908,-0.802583}, + {-0.207092,-0.070371}, + {-0.486399,-1.113643}, + {-0.129494,-0.242884}, + {0.631126,0.237594}, + {0.772150,-1.293381}, + {-0.148225,1.069063}, + {-0.557726,0.180037}, + {-0.251261,0.420506}, + {-0.687525,-1.530252}, + {0.308271,-0.038557}, + {-1.212547,0.035603}, + {-0.060400,-0.303898}, + {1.425639,-0.355048}, + {0.144429,0.420649}, + {-0.688609,-0.997562}, + {0.259183,-0.891376}, + {0.275503,-0.114022}, + {-1.060990,-0.859264}, + {-1.590535,-0.179986}, + {-0.197122,-0.339152}, + {-1.741402,-1.241081}, + {-0.101596,-0.103421}, + {-0.576440,-0.998940}, + {-0.159847,-0.078504}, + {-0.598367,-0.701100}, + {0.454856,0.507896}, + {-1.739180,-0.913037}, + {1.341986,0.134193}, + {-0.290217,-0.535215}, + {0.783955,-0.574633}, + {-0.126710,-1.241383}, + {-1.693904,-0.209030}, + {0.500406,0.058675}, + {0.876139,-0.205673}, + {0.347464,1.353533}, + {-0.250533,-0.590198}, + {-0.049717,0.984800}, + {-1.667565,-0.013165}, + {0.328547,0.584034}, + {-0.578874,-0.321222}, + {0.607281,-0.663825}, + {-0.042807,-0.635103}, + {-0.198325,-0.054844}, + {-0.567400,-1.007322}, + {0.181597,-0.281650}, + {0.922825,0.237707}, + {-0.725941,0.008540}, + {0.146820,0.712341}, + {-2.004479,0.919673}, + {-0.437029,-0.158475}, + {0.009848,0.194884}, + {0.064501,0.515108}, + {0.966986,-0.106012}, + {0.431525,-0.640987}, + {0.226213,0.704404}, + {-0.389554,0.297250}, + {0.227194,-0.123749}, + {0.958163,0.684737}, + {-0.763641,-1.299124}, + {-0.519729,1.144937}, + {0.517323,0.380140}, + {0.358759,-0.376012}, + {0.485276,-1.189659}, + {-1.128039,0.154856}, + {0.012640,-0.800780}, + {-1.023062,0.541789}, + {-0.088985,1.220985}, + {-0.274541,0.330453}, + {-0.223176,0.277022}, + {-1.250833,0.859561}, + {0.166349,-1.059528}, + {0.706370,1.301363}, + {0.865846,-0.966971}, + {-0.746104,-0.181980}, + {-0.382071,-0.287606}, + {-0.696105,0.935651}, + {-0.754779,-0.608633}, + {1.558518,-0.068025}, + {-0.730162,-1.159437}, + {-1.243312,-0.025267}, + {0.538259,-0.151188}, + {0.755668,0.731049}, + {0.362774,-1.112199}, + {0.951361,-0.710292}, + {1.205493,0.703087}, + {-0.384461,-0.900938}, + {0.558954,0.738985}, + {0.534887,-0.264438}, + {0.451519,-0.094902}, + {0.271715,-0.849368}, + {-0.622068,-0.879637}, + {0.747059,0.748628}, + {-0.141696,-0.554025}, + {-0.162613,-0.058699}, + {-0.438999,-0.305623}, + {-0.974950,-0.030913}, + {-0.836826,-1.211227}, + {0.066026,-0.500706}, + {0.317875,0.639406}, + {1.768633,-1.108933}, + {-0.169267,-0.005666}, + {0.308455,0.547168}, + {-0.792556,-0.067929}, + {-1.053188,-0.742882}, + {-0.439344,1.796462}, + {0.928509,-1.153488}, + {-0.883353,0.292079}, + {1.150053,-0.757907}, + {0.159497,0.386146}, + {-0.575171,0.435701}, + {-0.104603,-0.597094}, + {-0.010359,-0.762375}, + {0.533096,-0.049087}, + {-0.622529,-0.504482}, + {-0.649558,-0.521691}, + {1.604563,-0.953022}, + {0.483842,0.422572}, + {0.604771,0.258910}, + {-0.420070,0.075085}, + {-0.670900,-0.537843}, + {-0.643097,-0.750436}, + {2.158761,-0.134695}, + {-0.699376,1.792557}, + {0.316584,0.159085}, + {-1.290301,0.659405}, + {-0.470062,0.491114}, + {-0.217911,0.097260}, + {-0.883950,0.411357}, + {-1.137233,-0.417558}, + {-0.060187,0.823960}, + {-0.527339,0.909397}, + {0.614027,-0.516774}, + {0.326730,-0.720490}, + {-0.732945,1.140511}, + {0.527214,-0.857791}, + {0.354728,0.527356}, + {-1.042879,-0.843408}, + {0.388951,-0.250227}, + {-0.760452,-0.272504}, + {0.670556,1.780283}, + {0.178493,-0.103607}, + {0.281239,0.573283}, + {-0.276774,-0.666889}, + {-0.369088,-0.515050}, + {-1.566099,-0.292304}, + {0.241018,0.111041}, + {-0.579810,-0.131634}, + {0.614676,-1.020588}, + {2.122965,-0.652456}, + {1.003513,-0.009904}, + {0.384063,-0.315227}, + {1.662325,-1.228987}, + {0.421827,-0.875429}, + {0.615807,-1.046427}, + {-0.369778,0.103087}, + {-1.400076,-1.351331}, + {0.243226,0.565874}, + {-0.190009,-1.569295}, + {0.431636,-0.614997}, + {0.640676,-0.202974}, + {0.723470,0.490124}, + {0.178854,0.920912}, + {0.291047,0.310138}, + {1.437523,-0.613064}, + {0.311316,1.098868}, + {0.064226,0.222299}, + {0.635425,0.681261}, + {-2.079335,-0.027042}, + {-1.620853,-0.434969}, + {-0.771540,-0.951936}, + {0.075813,-0.359065}, + {-0.196248,0.026575}, + {0.549859,-0.479033}, + {0.779249,-0.479395}, + {0.489763,0.682128}, + {0.779679,0.447111}, + {0.248959,-0.926465}, + {-0.978864,-0.625647}, + {0.487766,-0.729178}, + {0.488021,-0.395398}, + {-1.132487,-0.266249}, + {-0.946289,-0.121230}, + {-0.043873,-0.494146}, + {-1.797368,-0.163129}, + {0.604546,0.840547}, + {-0.100001,0.205591}, + {-0.704900,-0.745045}, + {0.141108,-0.367080}, + {0.714093,0.338304}, + {-0.211548,0.288865}, + {-0.139203,1.696446}, + {0.398683,-0.856051}, + {-1.399684,1.056120}, + {-0.172748,-0.560887}, + {-0.742047,-1.011942}, + {0.435281,-1.466353}, + {0.372200,0.312796}, + {-0.470258,0.052912}, + {-0.720672,-0.015639}, + {0.525673,0.064041}, + {0.322946,0.778343}, + {-0.715545,0.200291}, + {-0.638279,-0.376644}, + {0.318214,1.262688}, + {0.518733,-0.228811}, + {-0.587650,-1.462563}, + {0.669318,-0.231777}, + {0.771174,0.304270}, + {-0.186317,1.664676}, + {0.111617,-1.626430}, + {-0.574343,1.310556}, + {1.093523,1.010366}, + {-0.051229,0.373412}, + {-1.055527,-0.123199}, + {1.258413,-0.434222}, + {0.204129,0.827730}, + {-0.609029,0.323469}, + {1.834988,0.769506}, + {-0.473224,0.009616}, + {-0.936846,-1.464676}, + {0.419282,0.867511}, + {0.691505,-0.431348}, + {0.462740,-0.806883}, + {-0.077804,0.056353}, + {0.201756,0.460018}, + {-0.101533,-0.186722}, + {-0.683106,-0.812029}, + {0.393013,0.220783}, + {0.960070,0.016689}, + {-0.818561,0.072895}, + {-0.304093,0.221132}, + {0.432887,0.613225}, + {0.799350,1.722360}, + {-1.201054,0.101461}, + {-0.284951,-0.099726}, + {-0.284407,1.019124}, + {1.161096,-1.015084}, + {0.470649,0.547416}, + {0.910485,-0.148244}, + {0.903437,-0.639555}, + {0.414630,-0.744832}, + {-0.807047,0.328593}, + {0.546277,0.129403}, + {0.979881,1.317070}, + {0.815188,-1.157551}, + {0.652102,0.325572}, + {0.986148,-0.443291}, + {0.321192,-0.168401}, + {-0.095464,0.134572}, + {-0.644626,-0.367752}, + {1.186512,1.426639}, + {-1.268228,-1.212135}, + {0.329307,-0.048942}, + {-0.453068,0.181014}, + {-0.120221,1.319718}, + {0.203761,1.057543}, + {0.323603,-0.370886}, + {1.278257,0.506360}, + {-0.137128,-0.217014}, + {-0.123980,-0.196150}, + {0.969988,0.131635}, + {1.034595,0.043616}, + {0.051072,-0.038913}, + {0.475718,0.545762}, + {0.860966,-0.183492}, + {1.509751,0.139050}, + {0.183777,0.478787}, + {0.452950,0.262511}, + {1.193602,-0.473727}, + {1.279293,1.055423}, + {0.496909,0.719865}, + {1.540333,-0.346943}, + {-0.293427,-0.718329}, + {0.304463,1.034630}, + {0.081471,-1.789542}, + {-0.654413,0.275167}, + {-0.234365,0.326354}, + {-1.026665,0.836313}, + {1.740778,-0.446498}, + {1.571499,0.008159}, + {-1.551162,0.190736}, + {0.766180,-1.958868}, + {-0.246677,0.141081}, + {-1.245445,-1.767784}, + {0.338713,-0.398232}, + {-0.167049,0.337391}, + {1.670908,-0.878596}, + {-0.346210,0.066791}, + {-0.167848,-0.262351}, + {-0.838038,-0.908504}, + {0.665549,-0.241012}, + {0.507867,-1.133164}, + {0.083940,-0.788292}, + {0.689884,0.002313}, + {0.188896,0.230707}, + {-0.395535,0.585358}, + {0.759700,0.630998}, + {0.406334,0.692208}, + {-0.523691,0.244080}, + {-0.358877,-0.192886}, + {0.658757,-1.197811}, + {0.276591,-0.550659}, + {1.042222,-0.377038}, + {-0.519696,0.588037}, + {0.042507,0.893983}, + {-1.038433,-0.388424}, + {0.229740,0.097563}, + {0.050357,0.853214}, + {1.178250,0.666711}, + {1.119683,0.327372}, + {0.299392,0.581337}, + {-0.726023,0.958577}, + {-2.087364,-0.040116}, + {-0.733430,-0.365305}, + {-0.183230,0.747083}, + {0.195544,-0.669629}, + {0.096009,0.081064}, + {-0.158337,0.140540}, + {-0.141282,1.098426}, + {-0.200366,-0.260091}, + {0.179909,0.324990}, + {-0.177505,0.710188}, + {0.418389,0.656253}, + {0.201164,-0.480767}, + {-0.663206,-0.632061}, + {0.866354,0.298333}, + {0.580605,-0.186255}, + {1.573994,-0.905037}, + {-0.331628,-0.857198}, + {0.740416,0.061667}, + {-0.564123,-0.882095}, + {-0.015107,0.034831}, + {0.843711,0.918154}, + {-1.214840,0.950409}, + {-0.362231,0.026602}, + {-0.345554,0.438305}, + {-0.413601,0.471900}, + {-1.395099,-1.305808}, + {-0.405840,-0.326921}, + {0.411408,-0.368048}, + {0.883666,-0.358755}, + {-0.035198,0.003136}, + {0.954488,-0.213214}, + {0.332939,0.172640}, + {0.959216,0.688263}, + {0.018761,2.039100}, + {2.100315,0.051013}, + {-0.271325,-0.485585}, + {0.510974,-0.232181}, + {-0.510400,-0.715401}, + {0.026534,-0.521681}, + {0.089140,0.147550}, + {-0.756320,0.829660}, + {-0.500559,0.266032}, + {-0.082253,0.526760}, + {-0.317537,1.100217}, + {0.537659,0.004379}, + {-0.511521,-0.070164}, + {-0.950504,0.979454}, + {-0.434086,-0.894423}, + {-0.161771,0.383922}, + {0.169965,0.443431}, + {1.126951,0.313781}, + {-0.083320,0.064187}, + {1.105827,0.058595}, + {1.599304,1.457213}, + {0.097539,-0.136787}, + {0.050654,0.763772}, + {-0.815735,0.069732}, + {0.712392,0.340298}, + {-0.349751,1.663162}, + {-0.520406,0.437961}, + {-0.182619,-1.106802}, + {1.249108,0.082180}, + {-1.228325,-0.360564}, + {-1.231868,-0.419608}, + {-0.294485,0.226044}, + {-0.060826,0.702817}, + {-1.200765,0.467426}, + {-0.116198,0.278628}, + {1.214728,0.324470}, + {0.225038,0.563450}, + {-0.007607,-0.256299}, + {-1.010766,-0.953903}, + {-0.277060,0.812392}, + {0.707381,0.168940}, + {-0.918905,0.693847}, + {0.282631,-0.353127}, + {0.225166,1.501837}, + {-0.954247,-0.586650}, + {0.318076,-0.497355}, + {-0.418723,0.065298}, + {0.084946,0.228400}, + {0.307594,0.474237}, + {-0.107772,-0.421675}, + {-0.232476,0.576236}, + {0.586626,-0.859792}, + {0.283680,-1.605937}, + {0.065020,0.212051}, + {-0.474997,-0.555701}, + {0.353018,0.138387}, + {-1.107164,0.434415}, + {0.138023,1.048943}, + {0.390060,-0.475007}, + {0.216655,-1.005081}, + {-0.421095,0.760430}, + {0.827316,0.631502}, + {-0.349654,0.360977}, + {0.492383,1.430285}, + {-1.500687,0.296066}, + {-0.380852,-0.291811}, + {-0.484800,-0.267565}, + {-0.346712,0.186646}, + {-0.083542,0.405885}, + {-0.188996,1.142481}, + {1.320101,0.391448}, + {-0.146608,0.368600}, + {-1.163383,0.327332}, + {0.298202,-0.377332}, + {-0.805110,0.443164}, + {-0.871706,0.069784}, + {0.373116,-0.326406}, + {-0.607307,0.912847}, + {-0.607633,-0.101585}, + {1.970281,1.321946}, + {-0.148369,0.105401}, + {-0.282688,0.816048}, + {1.025746,0.483259}, + {-0.713131,0.610143}, + {0.300423,-0.665059}, + {-0.374302,0.666611}, + {-0.869616,0.119894}, + {1.018758,-0.715852}, + {-0.928172,-1.549172}, + {0.085113,0.833680}, + {1.108642,0.496890}, + {-1.549615,-1.217051}, + {0.266179,-0.905077}, + {-0.215376,0.513998}, + {1.069599,0.120225}, + {-0.307138,-0.329984}, + {-0.571582,-0.130708}, + {2.142098,-1.288388}, + {-0.420347,1.053044}, + {0.495939,-0.195319}, + {0.502492,0.785095}, + {0.766173,0.428730}, + {-0.099107,-0.093918}, + {0.729183,-0.195718}, + {0.426967,0.415027}, + {-0.895545,0.886429}, + {-0.968602,-1.162273}, + {0.416021,-0.046332}, + {-1.219170,0.166351}, + {0.586550,-0.244157}, + {0.838475,-0.615897}, + {-0.672975,-0.618807}, + {-0.360221,-0.009750}, + {-0.674237,-0.787390}, + {0.760231,-0.187308}, + {-0.812272,-0.645441}, + {0.790059,-0.221013}, + {-0.232809,-1.981273}, + {1.111118,0.087870}, + {0.404225,-1.245472}, + {0.461102,0.105999}, + {0.013247,1.296239}, + {-0.108755,0.536528}, + {-1.449621,0.250056}, + {-0.195004,-1.416802}, + {0.037800,-0.364457}, + {0.552454,-0.675048}, + {-0.065913,0.268582}, + {-0.831306,-0.075565}, + {0.515745,-0.533599}, + {-1.138916,-1.364227}, + {-0.070245,-0.567231}, + {0.128759,0.526600}, + {0.665589,0.326906}, + {-0.224787,0.432314}, + {-0.228078,-0.843603}, + {-0.031752,-0.495566}, + {0.022634,-0.591376}, + {-0.700905,1.335250}, + {-0.661231,0.287638}, + {0.023830,-0.433696}, + {-1.666931,-1.034963}, + {0.531734,-0.239730}, + {-0.827702,-1.580614}, + {-0.751258,0.940162}, + {-0.287944,-0.191240}, + {-0.907179,-0.244279}, + {0.709229,-0.938878}, + {0.900749,0.288377}, + {-0.676512,1.189215}, + {0.514203,0.472178}, + {0.721634,-0.583054}, + {1.061447,0.267226}, + {-1.211157,0.301310}, + {-0.167337,-0.373970}, + {0.028457,0.985726}, + {0.110579,-0.098623}, + {-0.172895,-0.801720}, + {1.208278,0.474267}, + {-0.384456,-1.699807}, + {-0.218454,-0.500844}, + {-0.106211,0.296750}, + {-1.006444,-0.168547}, + {0.382713,-0.009482}, + {0.331157,-0.878432}, + {0.031083,-0.458680}, + {-0.365436,-0.454964}, + {-0.398935,-0.993382}, + {-0.769671,0.501222}, + {-0.051267,-0.864739}, + {1.167413,0.251483}, + {-0.638681,-0.123305}, + {-0.903249,-1.315449}, + {1.127817,0.729152}, + {-1.489803,-0.197712}, + {0.258543,-0.400706}, + {-0.067041,-0.250410}, + {1.170671,0.585027}, + {-1.025814,-0.952182}, + {0.191594,-0.695594}, + {1.088652,0.211765}, + {-0.672739,0.157990}, + {0.594503,-0.652204}, + {0.621315,-1.149470}, + {-1.002667,-0.051699}, + {-0.548659,0.070243}, + {-0.256829,-0.297262}, + {0.978255,0.627959}, + {0.645651,0.839562}, + {0.851345,-0.772047}, + {0.605615,-1.084795}, + {-1.066617,0.157309}, + {-0.431485,-0.334219}, + {-0.065427,-1.128954}, + {-0.568002,-1.040160}, + {0.572203,-0.754751}, + {0.659738,-0.070165}, + {-0.381698,-0.328700}, + {-1.564251,0.477004}, + {0.088705,-1.206888}, + {0.054398,1.727333}, + {-0.225188,-0.242253}, + {0.166157,-0.688561}, + {-0.949477,0.963288}, + {0.412511,0.460764}, + {-0.156152,-0.188229}, + {1.155036,0.424556}, + {-0.490640,-0.278005}, + {-0.412096,0.287758}, + {1.863923,-0.062265}, + {-0.222627,0.474599}, + {1.395178,0.343841}, + {-0.147666,-1.077881}, + {-1.174875,0.087301}, + {0.690832,0.894002}, + {0.207429,-0.821849}, + {1.005274,1.609804}, + {0.371987,-0.429320}, + {-0.514226,-0.590668}, + {-0.026782,0.397409}, + {1.015714,0.810520}, + {0.927649,0.649634}, + {0.776910,-0.296798}, + {0.976134,0.656214}, + {0.003040,-0.262665}, + {0.315733,1.042726}, + {-0.596531,0.246790}, + {-0.402001,0.608359}, + {0.581907,0.501635}, + {1.279527,0.729790}, + {0.490545,0.881851}, + {1.094798,-1.607173}, + {0.965914,0.484647}, + {-0.960222,0.649783}, + {0.364875,-0.219241}, + {-0.077840,-0.737867}, + {0.774998,0.247243}, + {-0.119677,-0.232309}, + {-0.570180,-0.118825}, + {0.977602,1.283441}, + {0.831912,-0.804168}, + {-0.196479,-0.062512}, + {0.656737,0.855329}, + {0.528258,-0.285970}, + {-2.250344,0.084504}, + {0.546068,0.570570}, + {-0.858377,-0.909879}, + {-1.108219,0.488554}, + {-0.490006,-0.454847}, + {0.049783,-0.432571}, + {0.144726,1.065848}, + {-1.394773,0.611523}, + {0.082976,0.531777}, + {0.285337,-0.535880}, + {0.308235,-0.704091}, + {-0.234517,0.379574}, + {-0.039539,0.828459}, + {0.357857,-0.609556}, + {0.753604,-1.306881}, + {0.790172,0.034169}, + {0.056248,-0.121251}, + {0.186954,0.648174}, + {-0.995005,0.274405}, + {-1.001077,0.860050}, + {-0.057085,1.511382}, + {-1.206087,0.878339}, + {0.137995,1.844478}, + {-1.493125,-0.998766}, + {0.745860,-0.643919}, + {-2.238097,1.200986}, + {-1.456539,0.719147}, + {0.950348,0.805055}, + {-0.011920,1.722326}, + {1.586502,-0.601509}, + {-0.761579,-0.427211}, + {-0.442142,0.336680}, + {0.366955,-0.402493}, + {0.706776,1.396136}, + {-0.456781,0.836723}, + {1.000545,-0.568838}, + {0.385663,0.662292}, + {0.477626,0.829285}, + {-0.458256,-1.032467}, + {-0.359687,-0.822045}, + {-0.684604,0.498532}, + {-1.225389,0.177601}, + {0.432596,0.406977}, + {-0.151285,0.179645}, + {1.147279,-1.685706}, + {0.525030,0.020319}, + {-0.118010,-0.066492}, + {-0.080738,0.414352}, + {0.066255,0.637437}, + {0.213317,-0.937024}, + {0.349175,-0.783824}, + {-0.536209,0.153490}, + {-0.439903,-0.158521}, + {0.270046,0.415777}, + {0.680110,-0.429989}, + {0.868958,-0.394753}, + {-0.327469,-0.604439}, + {0.018249,0.086110}, + {0.863033,-0.847249}, + {0.819329,0.546402}, + {1.547121,-0.605341}, + {-0.742487,0.218372}, + {-0.531181,-0.785213}, + {-0.414961,-1.837414}, + {-0.697729,-0.105849}, + {0.562781,1.161757}, + {-0.252197,0.174986}, + {1.019893,-1.022593}, + {1.147283,-0.216186}, + {-0.192484,0.544878}, + {-0.288308,-1.126081}, + {-0.653159,1.145602}, + {0.356144,-0.300500}, + {-1.877840,-0.660298}, + {-0.888508,0.081546}, + {0.095668,-0.650209}, + {-0.996078,-0.377501}, + {-0.936371,-1.051814}, + {0.735572,0.371096}, + {0.667417,0.241111}, + {-1.166763,-0.795707}, + {-0.604337,-0.214551}, + {0.366715,-0.220244}, + {0.135127,-1.369202}, + {-1.280505,0.349096}, + {1.611228,0.383331}, + {0.010946,-0.325781}, + {0.156384,1.852116}, + {-0.937935,0.398887}, + {-0.149062,0.073763}, + {2.104644,1.227660}, + {-0.626178,-0.143603}, + {0.148232,0.324548}, + {0.172888,-0.311778}, + {-1.220482,-0.578080}, + {-0.817595,1.215959}, + {-0.071187,-0.946781}, + {-0.316114,-0.621434}, + {0.612704,-0.753227}, + {0.053054,-0.899090}, + {-0.548320,-0.228200}, + {0.163999,0.796821}, + {-0.245404,0.209061}, + {0.441967,1.234234}, + {-0.551563,0.044447}, + {0.658026,0.187557}, + {0.127459,-0.986518}, + {-1.929082,-1.281298}, + {-0.281742,-0.218021}, + {-0.024907,0.738612}, + {-0.576868,0.213936}, + {1.047293,1.199670}, + {-0.588133,0.536676}, + {-0.873318,-0.257263}, + {-0.173412,-0.363335}, + {-0.711159,-1.458770}, + {-0.627417,-0.146663}, + {0.734973,0.087137}, + {1.617436,-0.176356}, + {-0.695416,0.009464}, + {0.641452,0.164848}, + {-0.365163,-0.298145}, + {-0.040627,-0.594555}, + {-1.136559,0.782394}, + {0.889175,1.501206}, + {-0.505251,-0.965412}, + {-0.235839,0.215222}, + {-0.031725,0.742335}, + {0.298775,-0.150465}, + {-0.849287,0.112957}, + {1.179378,0.099546}, + {0.512879,0.770936}, + {-1.199297,-0.033108}, + {-0.539796,0.936294}, + {-0.205207,-1.051996}, + {-0.131672,0.924508}, + {-0.089858,0.043459}, + {-0.523057,0.636311}, + {-0.307674,1.349578}, + {0.036264,0.711152}, + {1.140221,-0.739087}, + {-0.755562,0.284111}, + {-0.724637,2.054996}, + {-0.342831,-0.691441}, + {-0.131512,-0.096478}, + {-0.257152,0.074351}, + {0.214615,1.055861}, + {1.802147,-0.650688}, + {0.494614,-0.618490}, + {0.345858,-0.425000}, + {-0.654990,0.633968}, + {1.944518,-0.824383}, + {0.027463,-1.406552}, + {-0.356381,1.000390}, + {-0.326255,-0.349790}, + {-1.301773,-0.173698}, + {1.209587,0.733830}, + {-0.415904,-0.973085}, + {-0.342312,0.036046}, + {-0.186381,0.151542}, + {-0.326625,0.939369}, + {0.462830,-0.373640}, + {0.606673,-0.179940}, + {-0.484880,0.561731}, + {-0.508378,-0.365497}, + {0.234596,-1.627686}, + {1.368364,-0.734676}, + {-0.795618,-1.015961}, + {-2.239029,-0.882143}, + {0.465919,-0.251305}, + {0.445335,-1.446642}, + {-0.265756,0.613863}, + {-0.452452,-0.137435}, + {0.431065,0.801259}, + {-0.152433,0.602319}, + {-0.540982,-0.360173}, + {0.631619,0.163229}, + {-0.006424,-0.396139}, + {-1.237030,0.367923}, + {-0.850830,-0.132116}, + {0.775877,-0.627868}, + {0.771979,-0.413618}, + {0.022536,0.168067}, + {1.196601,0.009715}, + {-0.617334,0.060062}, + {0.364119,-0.116998}, + {0.673689,0.458119}, + {0.149576,-0.055954}, + {-0.543521,0.313275}, + {-0.158121,0.340606}, + {-1.637515,0.192407}, + {-0.980130,-1.214198}, + {0.271889,-1.100195}, + {-0.043511,-0.011070}, + {1.944409,1.536861}, + {1.054500,-0.241073}, + {-0.266577,-1.534933}, + {-0.040460,-0.625212}, + {-0.459612,-1.252847}, + {0.965432,0.594862}, + {0.576392,-0.927788}, + {-0.551566,0.279525}, + {0.426353,0.063682}, + {0.612646,-1.516517}, + {-0.007228,-0.346205}, + {0.011120,0.115249}, + {0.472003,-0.089491}, + {0.714530,-0.399992}, + {-0.151271,-0.191677}, + {-0.775722,0.462697}, + {0.938747,-0.059595}, + {-0.019837,0.256951}, + {1.336979,-0.025192}, + {-0.897808,-0.356736}, + {-0.805198,0.998662}, + {-0.427256,0.460826}, + {0.649266,-0.173119}, + {0.712430,-0.425832}, + {-0.254883,0.091398}, + {-0.082338,-0.612070}, + {0.215579,-0.567451}, + {-1.144568,0.155085}, + {0.780083,-0.289786}, + {-0.695259,0.933670}, + {0.982418,-1.676289}, + {2.030334,1.321377}, + {0.038067,0.527490}, + {-0.875315,-0.009320}, + {0.068908,-1.082731}, + {-0.327867,0.493442}, + {-0.247380,0.306530}, + {-0.737028,0.122061}, + {0.989016,0.117014}, + {-0.043846,0.663677}, + {0.666528,-1.034380}, + {0.394277,0.951912}, + {-0.002676,0.539665}, + {1.144832,0.222148}, + {0.575492,0.698214}, + {-0.465967,0.644700}, + {0.135505,-0.027215}, + {0.971868,0.345926}, + {0.064156,-0.279836}, + {-0.379608,0.096507}, + {-0.122669,-0.207917}, + {0.579961,0.725394}, + {0.595409,-0.048807}, + {1.252596,-0.666008}, + {0.928256,0.648530}, + {-0.765453,0.753437}, + {-0.869056,-0.282207}, + {0.599402,1.136827}, + {-0.491976,1.257567}, + {-0.690075,0.095121}, + {0.114144,0.613636}, + {-0.016676,0.984432}, + {-0.038227,1.273482}, + {-0.273440,0.465032}, + {-0.042422,-0.082568}, + {0.293014,-0.062751}, + {0.091950,1.052528}, + {1.290355,0.079452}, + {-0.373801,-0.287744}, + {0.178010,0.153087}, + {-0.069493,-0.767951}, + {0.592277,-0.164846}, + {-0.624072,0.699601}, + {-0.164866,0.014304}, + {-0.989879,0.549690}, + {-0.390924,0.210302}, + {0.028281,1.109096}, + {0.200445,-0.121299}, + {-0.837043,-0.089108}, + {-0.330949,-0.683155}, + {-1.497096,-0.744454}, + {0.724696,1.325496}, + {1.093918,-0.158002}, + {-0.986055,0.252052}, + {0.738405,0.425232}, + {0.346898,-0.636832}, + {0.795577,-0.558523}, + {1.639357,0.539509}, + {-1.027171,-1.972701}, + {-0.526853,0.066382}, + {0.029728,0.371083}, + {0.493240,-0.618207}, + {-0.085066,0.157037}, + {-0.598327,0.875382}, + {0.473045,-0.683630}, + {-0.190108,0.531203}, + {0.755223,-0.445656}, + {-0.970831,-0.378947}, + {0.691900,-0.774742}, + {-0.566027,-1.971771}, + {0.221130,0.861383}, + {1.126111,-1.603044}, + {-0.238397,-0.723054}, + {-1.355820,0.134919}, + {0.901198,0.804579}, + {-0.152608,-0.056988}, + {-0.405939,0.133609}, + {-0.748368,-0.793250}, + {-1.127288,-0.628552}, + {-0.545445,-0.085877}, + {-0.731033,1.379358}, + {0.017076,0.460959}, + {0.860053,0.187958}, + {-0.398644,0.846772}, + {-0.136298,-0.593748}, + {-0.570386,-0.054041}, + {-0.208522,0.414807}, + {1.089348,0.418117}, + {0.071506,-0.234059}, + {0.803787,-0.420491}, + {0.379378,1.744838}, + {0.984846,-0.269280}, + {0.287580,1.777600}, + {-0.044561,0.393765}, + {1.037652,0.288589}, + {1.365033,1.028047}, + {-0.268731,0.214781}, + {-1.399734,-0.585635}, + {0.396474,-0.012739}, + {-0.310157,-0.572639}, + {-0.869280,-0.470035}, + {-0.767115,-0.147986}, + {-0.594210,-0.009435}, + {-0.259161,0.687769}, + {0.400244,0.052298}, + {-0.081466,1.100944}, + {-0.597903,-0.298039}, + {-0.112978,0.185533}, + {-1.188213,0.607802}, + {0.406532,0.557457}, + {0.053603,0.608809}, + {-0.909431,-1.412004}, + {0.092312,-0.308009}, + {-1.045767,-0.193634}, + {-0.655190,0.515159}, + {-0.979891,-0.064583}, + {-0.305666,2.135184}, + {0.263726,-1.169643}, + {0.138287,0.442218}, + {0.414382,-0.295128}, + {-1.223938,-0.394704}, + {-0.670657,-0.732705}, + {-0.130172,1.369600}, + {0.795171,0.769043}, + {-0.363984,0.127902}, + {-0.154541,-0.229581}, + {0.285194,1.725037}, + {-1.330522,0.314956}, + {-0.233268,-0.249791}, + {-0.867872,-0.116151}, + {0.528821,0.939245}, + {0.529436,-0.728938}, + {1.562335,-0.647528}, + {0.100798,0.930577}, + {-0.638534,-0.474881}, + {-0.985353,-0.905430}, + {-0.508469,-0.557904}, + {0.109266,-0.555654}, + {0.066719,-1.050199}, + {0.086614,0.288710}, + {-0.064293,0.794723}, + {0.211760,0.375610}, + {-0.388465,0.047865}, + {0.115226,0.666505}, + {0.090883,-1.307463}, + {-0.505210,-0.481163}, + {0.297328,0.181031}, + {-1.005686,-0.291049}, + {-0.384623,-0.349974}, + {-1.117550,-0.533047}, + {-0.273571,1.197142}, + {-0.355377,-0.791390}, + {-1.166707,0.219873}, + {-0.039557,0.571754}, + {-0.869280,0.219124}, + {-0.267389,0.851277}, + {-0.047552,-0.759693}, + {-1.247211,0.340410}, + {0.074985,-0.567950}, + {0.114898,-0.993669}, + {1.315018,1.236524}, + {0.490222,-1.122814}, + {-0.208569,0.122706}, + {0.811257,0.284157}, + {-1.535386,-0.961487}, + {-0.575903,-0.329705}, + {-0.440839,0.189689}, + {0.461173,0.106876}, + {-1.404882,-0.039592}, + {0.157627,-0.164670}, + {-0.143457,-0.082398}, + {0.137764,-1.405608}, + {1.138510,0.467085}, + {-0.569274,0.068115}, + {0.254692,-0.256963}, + {-0.200568,-0.105250}, + {0.649507,0.852508}, + {0.256781,0.075334}, + {-0.422662,0.827176}, + {0.453451,-0.274344}, + {-0.619070,-0.789528}, + {0.511156,-0.517215}, + {-0.746724,0.533320}, + {-0.266023,0.211951}, + {0.820569,-0.021797}, + {0.906967,-0.184995}, + {0.080283,-0.845286}, + {0.216563,-0.065165}, + {-1.069864,-0.627168}, + {-0.694919,-0.377147}, + {0.560266,0.723653}, + {-1.810003,0.936073}, + {0.401495,-0.323666}, + {0.279725,-0.512582}, + {0.115233,0.391509}, + {-0.049100,0.503527}, + {0.381476,-0.924580}, + {0.158435,-0.369579}, + {-1.724612,-0.082530}, + {0.146337,-0.627385}, + {-0.580628,-1.005474}, + {-1.283667,-0.367336}, + {1.671694,0.093866}, + {0.495123,0.338942}, + {1.386453,1.289725}, + {0.046473,-0.010269}, + {0.345976,0.217331}, + {-1.307691,0.901025}, + {0.011671,-0.051992}, + {0.446749,0.491618}, + {-0.798861,-1.715122}, + {0.459684,0.845517}, + {-0.619994,-0.080941}, + {0.726701,0.519006}, + {0.366870,-1.500535}, + {-0.695698,-0.307731}, + {0.383154,-0.604660}, + {-0.200421,-0.592773}, + {0.845962,0.202566}, + {-0.081811,-0.479720}, + {-0.162211,0.211402}, + {-0.508318,-0.515009}, + {-0.598247,-0.160839}, + {-0.361101,1.022331}, + {-0.593453,-0.828867}, + {-0.335951,-1.161512}, + {0.323913,0.171438}, + {0.880390,-0.900887}, + {0.961106,1.439049}, + {-0.145219,0.714873}, + {-0.035628,0.517433}, + {-1.289047,0.344996}, + {0.823198,-0.391606}, + {-0.666119,-0.158353}, + {-0.497984,-0.154500}, + {0.346989,1.546966}, + {0.708533,-0.966663}, + {0.374617,1.425507}, + {-0.337693,0.237900}, + {0.070178,-1.763557}, + {-0.029864,-0.502392}, + {1.018740,0.551282}, + {0.470196,0.024369}, + {-1.046625,0.923415}, + {-0.440020,0.376281}, + {0.735956,-1.156211}, + {-0.994301,0.170391}, + {0.092725,0.006086}, + {0.907493,-0.090784}, + {0.594763,0.737713}, + {0.906663,-0.107508}, + {-0.367296,-0.557330}, + {-2.018388,0.168510}, + {0.752505,0.463679}, + {0.078006,0.290962}, + {0.109202,1.088115}, + {-0.098741,2.088661}, + {0.628856,0.143489}, + {0.531659,-0.603075}, + {-0.792778,0.565173}, + {1.033181,0.091416}, + {-0.436632,1.313604}, + {-0.484757,-0.142273}, + {0.419226,-1.120024}, + {0.480503,1.065520}, + {-0.237411,-0.260825}, + {0.605263,-0.918341}, + {0.875513,-0.731113}, + {1.386509,1.669871}, + {-0.213429,0.316753}, + {0.131674,1.000488}, + {0.748148,-0.249815}, + {-0.533266,0.340614}, + {-0.869102,0.414872}, + {0.441595,-0.694290}, + {0.054900,1.807807}, + {-1.703986,-0.934117}, + {-1.249102,0.046980}, + {-0.221412,-0.687920}, + {0.448836,0.201658}, + {0.650497,1.040959}, + {0.177494,-0.799854}, + {-0.085265,0.556515}, + {-0.932668,-0.426775}, + {-0.062327,-1.158497}, + {-0.500424,-0.587836}, + {0.391493,-0.387043}, + {-0.617236,-0.317457}, + {-0.578667,0.512964}, + {-0.169709,-0.817154}, + {-0.110670,0.372632}, + {-0.222525,-0.793149}, + {-0.009570,0.182038}, + {-0.527806,0.463093}, + {-1.697382,-1.718132}, + {0.361860,0.075201}, + {0.089404,0.241598}, + {-0.946784,0.814996}, + {-0.613512,-0.255426}, + {-0.177349,-0.488484}, + {0.054348,-0.553629}, + {-0.194009,1.167781}, + {1.709740,0.267476}, + {-0.821832,-0.696939}, + {-0.200828,-0.430296}, + {1.069248,-0.373373}, + {-0.238442,-0.199476}, + {-0.180144,-0.025549}, + {-0.139817,-0.071419}, + {-0.173577,-0.475708}, + {0.304222,-0.368525}, + {-0.590842,-0.064255}, + {-1.185859,-1.155381}, + {-0.081806,-0.629742}, + {0.922781,0.144932}, + {0.942112,0.322870}, + {0.825791,1.003816}, + {0.826714,-0.826888}, + {0.213177,0.794777}, + {-0.099002,-0.002608}, + {-0.492385,0.451787}, + {0.128127,1.082202}, + {0.271635,-1.443648}, + {-0.178330,-1.243963}, + {-0.067726,0.414538}, + {-0.546234,0.480571}, + {-0.991696,-0.224893}, + {0.432404,-0.524750}, + {-0.501489,-0.744894}, + {0.103839,-1.138339}, + {-0.279854,-0.368705}, + {0.455291,0.602993}, + {-1.678218,0.178024}, + {-0.130112,0.138684}, + {-1.101287,0.579001}, + {-0.092947,-0.011740}, + {0.295525,0.118103}, + {0.785569,0.325779}, + {0.504792,-0.455453}, + {1.132796,0.017106}, + {0.033302,0.186834}, + {0.810809,-0.362816}, + {-0.474375,0.097647}, + {-1.062575,-0.732286}, + {0.342440,-0.680445}, + {-0.732904,-0.575352}, + {0.303712,-0.631739}, + {-0.319236,-1.030421}, + {-0.387937,-0.348376}, + {-1.079633,0.118041}, + {-0.602187,-0.491677}, + {0.423529,0.249166}, + {-0.952323,0.209902}, + {0.034247,0.375740}, + {-0.592018,-0.397569}, + {-0.163837,-0.427724}, + {0.382374,-0.150979}, + {0.555706,-0.725082}, + {-0.355857,0.158597}, + {0.761846,0.076153}, + {-0.634078,-0.304593}, + {0.471280,-0.916497}, + {0.242803,0.758195}, + {0.754191,1.510976}, + {1.548155,-0.494631}, + {0.691794,-0.562304}, + {0.668136,-0.981643}, + {-0.254217,-0.991335}, + {-0.318592,-0.794923}, + {-0.462833,-0.254355}, + {0.963190,-0.369654}, + {-0.006760,0.514227}, + {-0.029911,0.884285}, + {0.486003,-0.768507}, + {0.111313,-0.201531}, + {0.594695,-0.372400}, + {0.590731,-0.701254}, + {-0.563540,0.783977}, + {0.368562,-1.798989}, + {0.756754,0.099174}, + {-0.637641,-1.143978}, + {0.650260,-0.244381}, + {-0.691307,-1.071333}, + {0.861524,0.340780}, + {0.505066,0.009908}, + {1.474460,0.787023}, + {0.976164,0.140441}, + {-0.254395,-0.077743}, + {-0.607054,-0.319290}, + {0.265146,0.411305}, + {-1.013336,0.386584}, + {0.105899,0.018232}, + {0.563171,-0.016770}, + {-0.940128,-0.278832}, + {-0.221102,0.977281}, + {1.567826,0.261716}, + {0.196254,-1.341196}, + {-0.102125,0.328156}, + {-0.201069,-0.674704}, + {0.352926,-0.898702}, + {0.911536,0.859603}, + {-0.528193,0.953868}, + {1.140887,0.032021}, + {-0.020405,0.168142}, + {0.328295,-0.517896}, + {-0.337676,0.588593}, + {0.585343,0.249905}, + {-0.287053,-0.782415}, + {0.794615,0.416868}, + {-0.332534,1.181646}, + {0.674689,-0.239908}, + {-0.248407,0.137528}, + {-0.301989,0.114605}, + {-0.044851,0.768646}, + {0.542929,0.080812}, + {-0.071794,-0.299563}, + {-0.734715,0.382308}, + {-0.421130,0.911202}, + {-0.430273,0.472535}, + {-0.687487,-0.273706}, + {0.367111,-0.660188}, + {-0.918680,0.527015}, + {-0.341398,0.970202}, + {-0.107157,0.886225}, + {0.938713,-0.223450}, + {-0.671171,-0.152803}, + {-0.385831,0.640238}, + {-0.780561,-0.635265}, + {0.715185,0.185086}, + {-0.699200,0.606720}, + {-0.653360,0.102234}, + {0.131534,-1.084895}, + {0.261869,0.060136}, + {0.317683,-0.939159}, + {-0.840538,-0.043646}, + {-1.424293,0.084761}, + {1.215854,-0.694838}, + {0.062843,-0.337987}, + {0.563976,0.504785}, + {-0.080370,0.085930}, + {0.032035,-1.010920}, + {0.551369,0.494227}, + {-0.116020,0.300480}, + {0.331724,0.036285}, + {-0.382426,-0.529493}, + {1.077808,-0.458413}, + {0.331854,1.032253}, + {-0.535004,-0.323188}, + {-0.819970,0.052055}, + {0.719559,-0.602325}, + {0.915057,0.257542}, + {-0.428636,-0.009926}, + {-1.805475,0.369659}, + {-0.614094,-0.001800}, + {-1.235578,-0.052044}, + {0.097063,-0.732735}, + {-1.460257,1.469093}, + {1.278098,-0.169305}, + {-1.378817,0.540052}, + {0.493755,-0.307548}, + {0.218180,1.141994}, + {-0.221486,-0.292270}, + {0.287143,-0.163096}, + {0.703925,0.446666}, + {0.212925,0.082821}, + {0.484300,0.306027}, + {0.357386,-1.297873}, + {-0.738326,-0.241678}, + {-0.741457,-0.442234}, + {0.327873,0.656962}, + {-0.853324,0.049464}, + {0.311712,-0.772024}, + {0.492337,-0.224030}, + {-0.072145,-0.706020}, + {0.120789,-0.269756}, + {0.510265,-0.199574}, + {0.305081,1.339218}, + {-1.174933,-0.318689}, + {-0.310504,0.857660}, + {-0.260578,-0.738450}, + {0.840290,-0.412105}, + {0.978639,0.996309}, + {0.545701,-0.214489}, + {0.442492,0.140782}, + {0.134327,-0.614024}, + {0.152361,-0.415766}, + {0.402772,-0.590738}, + {-0.086536,0.126473}, + {0.212853,0.348347}, + {1.454511,0.690384}, + {-0.525360,0.196963}, + {0.096687,-0.682747}, + {0.001357,0.832025}, + {-0.426188,-0.466376}, + {0.206853,-0.152419}, + {0.687454,1.804000}, + {-1.322728,1.203989}, + {0.482003,-1.241984}, + {0.500789,-0.065064}, + {0.244065,0.269642}, + {-0.469472,-0.237159}, + {-0.066490,-0.163310}, + {-0.281095,-0.567134}, + {0.893307,0.612599}, + {-0.632126,-0.774347}, + {0.109283,0.368826}, + {0.148461,-0.404510}, + {-0.667521,1.577892}, + {0.218306,0.265584}, + {0.264606,-0.211250}, + {0.652372,-0.157857}, + {-0.577376,-0.888662}, + {-0.945390,0.153267}, + {0.375344,-1.667404}, + {-0.156601,-0.117106}, + {-1.462571,-0.718417}, + {-0.575509,-0.808437}, + {0.364817,0.078618}, + {-0.403867,0.323323}, + {0.157170,0.940718}, + {-0.905934,0.911193}, + {0.173700,1.333921}, + {0.056693,-0.033255}, + {-0.296912,-0.103485}, + {0.153056,-0.604195}, + {0.377705,0.504978}, + {-0.673747,0.286633}, + {0.034797,0.558569}, + {-0.710120,-0.480598}, + {-0.362652,-0.642279}, + {-0.284230,0.181896}, + {-0.426250,2.162377}, + {0.985906,-1.488951}, + {-0.458442,-0.456442}, + {0.553374,-0.612342}, + {-0.809457,-0.439975}, + {0.180812,0.353789}, + {-0.978222,0.464068}, + {-0.300099,0.132864}, + {1.487060,0.218514}, + {0.957071,0.801319}, + {-1.294117,0.020448}, + {0.445091,0.773514}, + {-0.199977,0.450449}, + {1.443591,0.429417}, + {-0.113708,0.610933}, + {0.137175,-0.859998}, + {-0.132513,-1.322847}, + {-1.005503,-0.177505}, + {0.000357,0.779256}, + {1.075366,0.024032}, + {0.459241,0.710256}, + {-0.305482,0.106401}, + {-0.276184,1.043264}, + {0.516417,-1.254294}, + {-0.131916,0.527997}, + {0.234204,-1.557823}, + {0.030533,-0.531908}, + {1.085678,-0.371773}, + {-0.221198,-0.710384}, + {-0.063287,0.159905}, + {0.444706,-0.383745}, + {-0.446182,-0.684475}, + {0.740908,0.413410}, + {0.167352,0.712524}, + {0.392175,0.355523}, + {0.129803,-0.137579}, + {-0.528156,-0.906438}, + {0.405284,-0.052276}, + {0.240957,-1.088857}, + {0.642791,-0.012554}, + {-0.439821,0.196588}, + {0.640984,0.397706}, + {-1.267697,-0.882481}, + {-0.129466,1.197844}, + {1.461545,-0.514695}, + {-0.664521,-0.084123}, + {-0.351623,1.236291}, + {0.412838,-0.694709}, + {0.414800,-0.181844}, + {-0.304968,-0.380719}, + {1.155782,-0.095914}, + {-0.071784,-1.320101}, + {-0.694458,0.795722}, + {0.810258,0.637455}, + {1.163340,-0.742524}, + {-0.963930,0.444600}, + {0.655143,0.089189}, + {-0.592677,-1.127872}, + {0.887550,-0.327055}, + {0.625412,-0.529684}, + {0.713678,-0.696201}, + {0.055567,-0.252346}, + {0.166431,0.153213}, + {0.441026,-1.378759}, + {0.559243,-0.537530}, + {0.202748,0.275560}, + {-0.840727,0.168231}, + {-0.064211,0.001891}, + {0.281684,0.135740}, + {-0.358316,-0.959788}, + {1.306011,0.464514}, + {-1.036941,-0.959162}, + {1.406593,0.632846}, + {-1.569454,-0.365218}, + {-0.346228,0.731728}, + {-1.295997,0.560615}, + {-0.959968,0.986496}, + {-0.585640,-0.657095}, + {-0.118904,-0.871209}, + {0.926150,-0.531476}, + {0.933032,0.480609}, + {0.263173,0.494663}, + {0.886100,-0.059677}, + {-0.369519,-0.535388}, + {0.421964,-0.910301}, + {-0.326652,-0.190231}, + {0.547934,0.631971}, + {0.710113,-0.411325}, + {0.693213,-0.929055}, + {0.018916,-0.458380}, + {-0.289372,-0.644681}, + {1.603608,-0.790238}, + {-0.870347,-0.519386}, + {-0.120219,-0.195792}, + {0.896996,0.754328}, + {-1.072971,0.660451}, + {-0.169902,0.618787}, + {1.392250,0.699588}, + {0.102127,-1.159976}, + {0.654802,-1.138594}, + {0.341693,0.533089}, + {0.622157,0.293998}, + {0.739470,-0.685871}, + {0.889143,-1.040852}, + {0.028575,1.018274}, + {1.349263,-0.463929}, + {0.455431,-0.360066}, + {-0.778939,1.099713}, + {-0.893473,0.754993}, + {0.004027,-0.390836}, + {-0.251340,0.012372}, + {-0.222768,-0.628511}, + {-0.106092,-1.338030}, + {-1.913003,0.816801}, + {0.249156,-0.479677}, + {-0.736923,1.666795}, + {1.082270,-0.175401}, + {-0.885157,0.570095}, + {-0.049028,0.558581}, + {-0.490770,0.519661}, + {-0.287551,-0.111662}, + {1.033980,0.682340}, + {0.087287,1.358185}, + {-0.050552,0.564941}, + {-0.303037,0.089188}, + {0.842740,0.611644}, + {0.467414,-0.006327}, + {0.466794,0.602077}, + {0.439659,-0.483228}, + {0.974723,-0.062053}, + {-0.260206,-1.049128}, + {-0.205828,0.295329}, + {-1.647119,0.441492}, + {-0.714502,0.081394}, + {-0.205006,-0.757855}, + {-1.960274,0.470666}, + {-0.533298,0.409415}, + {0.855841,1.096989}, + {0.358798,0.730984}, + {0.750960,-0.725304}, + {1.146306,1.834112}, + {-0.476547,0.068212}, + {-0.694398,-0.779186}, + {1.092268,-0.985842}, + {1.398056,-0.217714}, + {0.251666,0.911836}, + {0.110386,0.085893}, + {0.701887,0.259171}, + {0.516668,0.334310}, + {-0.003315,-0.918830}, + {-0.195731,0.013077}, + {0.430466,-0.277817}, + {1.030171,-0.394052}, + {-0.225629,-0.195349}, + {-0.027538,-0.056974}, + {0.031358,0.064035}, + {0.387717,0.243636}, + {0.317769,-0.582616}, + {0.940290,0.778192}, + {-0.490807,-0.763537}, + {0.207110,-0.045007}, + {1.971938,0.382367}, + {-0.727075,0.439464}, + {-0.077633,0.672896}, + {-1.460959,1.007622}, + {-0.025801,-0.096694}, + {-0.993988,-0.999907}, + {0.464187,0.789316}, + {0.256421,-1.363865}, + {0.159660,-0.277453}, + {-0.006103,0.852472}, + {0.060031,0.596424}, + {0.620580,0.715707}, + {0.276113,-0.545072}, + {-1.012081,-1.133049}, + {-0.097912,-0.474511}, + {1.319384,0.602481}, + {-0.031653,0.663256}, + {0.386930,0.752664}, + {-0.991397,-0.430424}, + {0.051973,-1.136431}, + {-1.149435,0.841670}, + {-0.186103,0.364773}, + {-0.412187,0.132497}, + {-0.775032,0.368945}, + {0.032215,0.521604}, + {1.015831,-0.411670}, + {0.726604,-0.273412}, + {-0.017691,0.358815}, + {-0.486292,-1.210999}, + {-0.099767,0.094482}, + {0.097904,0.233600}, + {-1.240408,0.247283}, + {0.721376,-1.415937}, + {0.561702,0.753190}, + {-0.214495,-0.390780}, + {-0.433983,-0.193696}, + {-0.539126,-0.635186}, + {0.334874,0.117167}, + {0.112738,-0.692831}, + {1.294694,1.248792}, + {-0.305773,0.353188}, + {1.021686,0.202287}, + {0.256958,-0.390091}, + {0.166097,0.454005}, + {-0.079576,-1.102067}, + {1.538520,-0.563688}, + {-1.731706,-1.126758}, + {-0.670402,0.414350}, + {0.514859,-0.033709}, + {0.457049,-0.953866}, + {-0.025339,-0.186967}, + {0.921516,-0.006589}, + {1.133250,0.762349}, + {-1.942749,-0.290318}, + {-1.006259,-1.719958}, + {0.583133,0.184458}, + {1.533676,0.565125}, + {1.678753,1.997106}, + {0.414856,0.635099}, + {0.248681,-0.371868}, + {-0.480461,0.508675}, + {0.128528,1.225431}, + {-1.035243,-0.326540}, + {-0.591735,-0.256529}, + {0.404609,0.115763}, + {-0.127455,-0.322196}, + {-1.377901,0.027817}, + {-0.419663,-0.117352}, + {0.100835,-0.416059}, + {0.112067,-0.455572}, + {-0.918836,-1.089230}, + {0.819424,-0.676223}, + {-1.262287,-0.710934}, + {-1.405267,-0.629728}, + {-0.245684,0.259446}, + {0.275126,0.743111}, + {-0.632728,0.059081}, + {-0.268444,1.149652}, + {0.262731,-0.503980}, + {-0.732316,1.865036}, + {0.546659,-0.355999}, + {1.055911,-0.387197}, + {0.493665,-0.753767}, + {-0.182871,0.659888}, + {0.622885,-1.309388}, + {-0.557757,-0.093695}, + {0.098147,0.439508}, + {0.803828,-0.887762}, + {-0.324194,-0.317906}, + {-1.732072,-0.835605}, + {-0.244274,0.535165}, + {0.459924,0.794849}, + {-0.678300,1.156888}, + {-0.492597,0.785141}, + {0.158968,0.435641}, + {-0.036905,0.358065}, + {0.110872,-0.689448}, + {0.880365,-1.190838}, + {0.796720,1.588231}, + {-1.706377,0.554221}, + {-0.358409,-0.529411}, + {-0.715658,0.777524}, + {-0.561075,-0.227583}, + {0.899021,-0.235572}, + {0.525853,-1.659359}, + {0.079290,0.113489}, + {0.113024,0.340952}, + {-0.139241,0.174221}, + {0.224799,0.763237}, + {-1.379719,0.258011}, + {-0.935142,-0.447336}, + {-0.784769,0.357662}, + {-0.232321,-1.397151}, + {-1.450584,0.943146}, + {-0.324962,-0.543177}, + {-1.282408,0.863020}, + {0.050112,0.898989}, + {-0.604191,-0.538101}, + {0.343664,-0.068146}, + {0.102684,-0.123663}, + {0.928256,0.360823}, + {-0.097289,0.462497}, + {-0.092053,0.034602}, + {0.440637,-0.296188}, + {1.149567,-0.825341}, + {0.260298,-0.546318}, + {0.369902,-0.765528}, + {-0.115122,-0.752161}, + {-0.134579,-0.097381}, + {-0.352925,-0.341836}, + {-0.133949,0.670338}, + {-1.133992,-0.211796}, + {-0.771100,0.093373}, + {-0.958877,0.269735}, + {-1.004989,-0.185393}, + {-0.095868,0.247778}, + {-2.586064,-0.157309}, + {0.225446,-0.204901}, + {0.848046,-0.114858}, + {0.944526,0.415761}, + {0.175256,0.081095}, + {-0.221988,0.520441}, + {0.101561,0.235463}, + {1.036973,0.143210}, + {1.226535,-0.837936}, + {0.071154,-0.334797}, + {0.002085,-1.605103}, + {-0.217532,-0.203431}, + {-0.020084,-0.177046}, + {1.594854,0.364505}, + {0.353434,0.078027}, + {-0.408512,0.470233}, + {1.312720,-0.497096}, + {-0.446915,1.180362}, + {0.576132,-0.033510}, + {0.987148,0.361694}, + {-0.741101,0.494390}, + {-0.147701,0.106470}, + {-0.122341,0.707589}, + {-0.828018,0.595488}, + {0.358592,0.384138}, + {1.122524,-0.548564}, + {0.865484,0.246095}, + {-0.347659,0.661972}, + {-0.629108,-0.078289}, + {0.435537,0.266599}, + {-0.290543,0.076388}, + {1.350286,-1.026417}, + {-0.279524,0.033803}, + {0.805857,-1.271171}, + {1.494965,-0.166193}, + {0.224108,-0.156611}, + {0.348711,0.043524}, + {0.486362,0.705632}, + {-0.135721,0.860144}, + {-0.419355,-0.933635}, + {0.585876,-0.739752}, + {0.348953,1.633115}, + {-0.716160,-0.030413}, + {-1.012214,0.928111}, + {1.274223,-1.604781}, + {0.986726,0.442809}, + {0.926012,-1.822679}, + {-0.976620,-0.129446}, + {-0.631693,-1.113716}, + {0.013938,-0.471054}, + {-0.337122,0.006422}, + {-0.075227,1.194378}, + {0.192303,0.005400}, + {0.482293,0.882435}, + {0.759362,-1.106292}, + {-0.178414,0.131685}, + {-0.109098,-0.738940}, + {0.076915,1.201590}, + {-0.065114,-0.913385}, + {0.258717,0.253192}, + {0.006675,0.474848}, + {-0.120236,0.074537}, + {-0.914876,-0.604674}, + {-0.239318,0.139784}, + {0.373102,-0.811346}, + {-0.112757,1.025991}, + {0.939548,0.465295}, + {-0.350290,-0.018134}, + {-0.562664,0.175504}, + {0.514850,-0.074323}, + {0.521176,0.137696}, + {0.194373,0.197405}, + {0.927279,1.181192}, + {-0.118453,-0.014140}, + {1.916604,-0.970558}, + {0.612289,-1.323595}, + {-0.046588,0.676538}, + {-0.361614,0.343330}, + {-0.072801,-0.258052}, + {-0.387405,-0.305871}, + {-0.953448,-0.183769}, + {0.528532,-0.434791}, + {-0.180672,-0.359667}, + {-0.599359,0.653634}, + {0.050363,-0.480589}, + {0.233107,0.154633}, + {-0.948858,0.182072}, + {0.456937,-0.516302}, + {0.303400,0.828243}, + {-0.675064,-0.986310}, + {-0.305059,0.166836}, + {1.464878,0.165149}, + {0.374637,-0.656082}, + {0.718124,-1.594720}, + {0.470116,-0.781559}, + {0.309853,-0.650064}, + {-1.133502,0.331558}, + {0.145630,-0.142324}, + {-0.157430,-0.301290}, + {1.777805,0.083103}, + {0.717511,0.394040}, + {-0.145187,0.174645}, + {-0.557239,0.572090}, + {0.191157,0.101788}, + {0.484733,0.137371}, + {0.285309,-0.047834}, + {0.197723,0.435201}, + {1.212389,1.074376}, + {1.174508,-1.056099}, + {-0.076020,-0.321082}, + {-1.196586,-0.557423}, + {-0.610224,-1.475905}, + {-0.009208,0.213072}, + {0.515729,-1.346302}, + {0.103609,-0.105880}, + {-1.120470,0.071781}, + {-0.777519,0.463790}, + {1.156226,-0.298195}, + {0.203968,0.760272}, + {-0.780637,-0.918900}, + {-0.769841,-0.775429}, + {0.935468,0.026705}, + {-0.241774,1.112869}, + {0.227628,0.184193}, + {-0.183832,0.409623}, + {1.130661,0.731075}, + {-0.555506,0.437555}, + {0.457972,-1.800335}, + {0.272675,0.660832}, + {-1.884673,0.050126}, + {-0.580737,-0.779387}, + {1.227434,0.547756}, + {0.053354,-0.616688}, + {0.478480,0.910639}, + {-0.333049,0.719330}, + {0.010465,-0.612533}, + {0.906478,0.818118}, + {-1.193153,-1.824502}, + {0.706058,0.615496}, + {-0.370577,-0.145762}, + {-0.902391,-0.628656}, + {-0.106987,-0.364320}, + {-0.084966,-1.302484}, + {0.849559,-0.758851}, + {-0.721184,0.072056}, + {0.445967,0.442923}, + {1.135449,1.092539}, + {0.250839,1.832846}, + {0.242031,-0.912937}, + {0.969083,-1.380916}, + {-0.854039,0.805446}, + {-0.063648,-0.529546}, + {-0.556826,0.358275}, + {0.502400,-0.419893}, + {1.121981,-0.341123}, + {0.146130,1.403614}, + {-1.507194,0.954692}, + {1.696664,1.704881}, + {-0.599841,-0.359776}, + {-0.044186,-0.459231}, + {-0.118475,-0.554999}, + {-0.833973,-0.512125}, + {-1.163373,-0.238938}, + {-0.208580,0.332700}, + {0.371481,-0.478670}, + {-0.607465,-1.178812}, + {-0.293391,0.125643}, + {-0.646705,0.940141}, + {0.189148,-1.350865}, + {0.342294,-1.580507}, + {-1.132454,-0.157761}, + {-0.019979,0.524966}, + {-0.169449,-0.519595}, + {1.065918,-0.985098}, + {-0.915971,-0.284780}, + {0.098857,-1.215288}, + {0.783253,0.635773}, + {0.449313,-0.510098}, + {0.689266,0.814086}, + {-0.144834,-0.612379}, + {-1.427958,0.199905}, + {-0.474064,-0.742974}, + {-0.337112,-0.137790}, + {-0.674899,-0.264672}, + {0.912269,1.104826}, + {0.831791,-0.341448}, + {-0.388669,0.672793}, + {1.087330,1.281850}, + {0.118528,0.631338}, + {-0.206049,-0.715623}, + {-0.781056,0.033644}, + {0.792916,0.295321}, + {-0.482422,-0.237909}, + {0.261478,-0.752447}, + {-0.754615,-0.516213}, + {0.192734,0.378640}, + {-0.439435,-0.431982}, + {-0.946669,0.479718}, + {-0.357092,-0.691345}, + {1.157752,0.666368}, + {-1.383208,0.311908}, + {0.409399,0.461214}, + {-0.698759,-0.607928}, + {-0.482476,1.416944}, + {-0.199183,0.371134}, + {-0.082352,0.429145}, + {0.432215,-1.285389}, + {-0.244029,-0.686566}, + {-1.015378,0.249656}, + {0.956609,0.256536}, + {-1.108435,-0.400837}, + {0.358475,0.626661}, + {0.376849,0.118413}, + {0.384957,-0.159492}, + {1.550985,0.318564}, + {-0.658378,0.829656}, + {0.070058,-1.867597}, + {-0.556355,0.877398}, + {-0.939162,-0.758821}, + {-0.975259,0.428551}, + {-0.465374,0.248586}, + {-0.647683,0.162461}, + {0.478579,-0.086328}, + {1.171809,-1.210333}, + {0.350605,-0.026423}, + {-1.535107,-0.289105}, + {0.569494,0.289004}, + {-0.842191,-0.535135}, + {-1.056587,-0.341966}, + {0.571423,-0.949688}, + {0.377006,0.223183}, + {0.895255,-1.194232}, + {0.407145,0.361737}, + {-0.133994,-1.212235}, + {-0.635602,0.102165}, + {-0.112363,0.370473}, + {0.088680,-0.934189}, + {0.189376,0.032527}, + {0.241638,0.015864}, + {0.926939,-0.360267}, + {0.633242,-0.199406}, + {-0.777074,0.718454}, + {1.263760,1.272871}, + {-0.887876,0.895443}, + {0.045161,-0.732052}, + {-0.500926,0.113907}, + {-0.126137,0.817229}, + {0.086923,-0.332814}, + {0.016727,0.325903}, + {-0.336638,-0.207087}, + {-0.613900,-0.550235}, + {1.069793,-0.208412}, + {0.077398,-1.607311}, + {-0.215649,0.115757}, + {-0.404151,-0.996211}, + {0.226156,-0.014279}, + {-1.177157,0.074822}, + {-0.140062,0.186657}, + {-0.409112,-0.330324}, + {1.309929,-0.332041}, + {0.821633,0.695834}, + {-0.938862,-1.552127}, + {0.075839,1.054654}, + {0.323977,-1.147671}, + {0.310022,0.038229}, + {-0.359029,-0.022630}, + {0.324017,0.387352}, + {-0.048052,0.500409}, + {-0.768604,-0.470784}, + {0.684604,0.201031}, + {0.736939,-1.300678}, + {-0.479045,-1.017034}, + {0.007828,-0.810752}, + {-0.304589,-0.420991}, + {0.655603,-0.376914}, + {-0.526926,-0.309443}, + {1.263186,0.124584}, + {-0.301892,0.095891}, + {0.329349,0.607629}, + {0.858170,0.481326}, + {0.863272,-1.044820}, + {-0.185530,0.990111}, + {-0.944209,0.851341}, + {-0.140130,1.176828}, + {0.656967,-0.249158}, + {0.831843,0.166278}, + {0.281441,1.026104}, + {0.815836,1.287209}, + {1.204176,-0.446447}, + {-0.824919,-0.004133}, + {-1.288957,0.000250}, + {0.202791,0.163948}, + {-0.652007,1.250650}, + {-0.940207,1.250555}, + {0.060222,-0.160424}, + {0.276591,-0.733905}, + {1.240840,-0.391642}, + {1.228907,0.734534}, + {0.183878,0.004227}, + {0.471755,-0.211169}, + {1.313163,1.109955}, + {0.040600,-1.427535}, + {-1.534644,0.502761}, + {-0.618235,0.755691}, + {0.075225,0.536254}, + {-0.464799,-0.526058}, + {-0.418575,-0.584390}, + {-0.394190,-1.816489}, + {0.225854,0.231993}, + {-0.635186,-0.053889}, + {-0.064877,-0.134776}, + {-0.030140,0.052716}, + {-0.548128,-0.690454}, + {0.386017,0.089867}, + {1.770913,0.146184}, + {-0.245883,1.392924}, + {-0.437879,0.537205}, + {-0.330323,0.467750}, + {0.586680,-1.393470}, + {-0.120830,-0.437540}, + {-0.963768,0.437445}, + {0.330936,-0.667993}, + {0.308680,-1.588304}, + {0.825726,0.482044}, + {0.226749,-0.379008}, + {0.713663,0.392264}, + {-0.364814,-1.242878}, + {-0.029851,-0.845113}, + {0.519322,-0.794357}, + {0.118346,-1.295004}, + {-0.992456,1.318909}, + {-0.072580,-0.019761}, + {-0.289738,1.767553}, + {-1.316428,0.126071}, + {1.683718,0.210909}, + {1.611788,0.725453}, + {0.165352,0.295910}, + {2.416738,0.700021}, + {0.526805,-0.148660}, + {0.937490,-0.086265}, + {0.818973,0.716807}, + {1.269264,0.610734}, + {0.966294,0.177897}, + {-0.865904,0.933524}, + {-0.204972,0.387884}, + {1.036139,-0.352334}, + {0.025383,0.301119}, + {1.257758,-0.315413}, + {0.678906,0.616848}, + {1.169668,-0.413489}, + {-0.307375,0.005018}, + {0.073738,-0.187008}, + {1.813125,-0.752193}, + {1.392039,-0.785845}, + {-0.643245,0.390684}, + {0.463355,0.238971}, + {-0.002376,-0.085880}, + {-0.838524,1.114617}, + {-0.367220,-0.351002}, + {0.266690,-0.777264}, + {0.192761,-0.720230}, + {-1.500903,0.695838}, + {0.493120,0.067029}, + {0.030118,1.236780}, + {0.034760,-0.819626}, + {0.293606,0.201533}, + {0.312385,1.481040}, + {0.644201,-0.675942}, + {-0.630559,0.140196}, + {0.752821,0.626086}, + {-0.310553,0.372922}, + {0.511409,1.005211}, + {-0.312640,1.205754}, + {0.047365,1.161801}, + {0.634709,0.848718}, + {-0.185228,0.068916}, + {0.710197,-0.424226}, + {-0.627263,0.410260}, + {-0.890694,1.019410}, + {-0.911236,-0.507543}, + {0.072052,-0.119403}, + {0.277360,0.255984}, + {0.011718,-0.365213}, + {-1.242291,-0.359709}, + {-0.266353,-0.290392}, + {-1.193119,-0.901162}, + {0.016134,-0.154263}, + {-0.392536,-1.082696}, + {0.997809,0.053994}, + {-1.230871,-0.639927}, + {0.753734,0.260376}, + {-0.177411,-0.654997}, + {-0.664207,-0.818289}, + {0.558704,-0.173549}, + {-0.456297,-0.523642}, + {0.437174,0.603725}, + {1.110922,0.929951}, + {-1.145341,0.606142}, + {0.762613,-0.534990}, + {1.123318,0.182479}, + {-0.924404,0.074693}, + {0.421870,-0.803706}, + {0.237068,-0.731789}, + {0.114878,0.715037}, + {-0.115797,0.490062}, + {0.613808,-0.057239}, + {-0.002727,0.385070}, + {0.118135,-0.066553}, + {-0.137414,-0.095722}, + {0.241358,-0.096421}, + {-0.514497,-0.904141}, + {-0.484342,1.537877}, + {-0.143724,0.510801}, + {0.761716,0.162944}, + {0.627842,-0.387618}, + {-0.263134,-0.631088}, + {0.435091,0.285372}, + {-0.506864,1.600501}, + {-0.514922,-0.416914}, + {-0.127203,0.976581}, + {-1.080020,-1.111665}, + {0.197020,0.354050}, + {1.494278,-0.024726}, + {-0.547009,0.483956}, + {-0.111064,-1.245961}, + {-0.654196,-0.610226}, + {0.233488,0.119793}, + {-0.816235,-0.666550}, + {-0.154340,0.061817}, + {-0.949530,0.341751}, + {0.045377,1.203108}, + {0.430596,1.308333}, + {-0.016732,-0.389215}, + {0.399432,0.672581}, + {0.459967,0.156065}, + {-0.095913,-1.398591}, + {-1.249649,-0.318145}, + {0.584487,0.046164}, + {0.523293,-0.263306}, + {0.928685,-0.941009}, + {-0.094772,1.143322}, + {-0.647698,0.255648}, + {-1.029936,0.187780}, + {0.514449,1.421299}, + {0.437990,-0.736063}, + {-0.148725,-1.226925}, + {0.735137,-0.988119}, + {1.047799,-0.121534}, + {-0.407426,0.264870}, + {-0.700435,-1.115746}, + {0.532253,0.835391}, + {-0.713866,-0.766539}, + {-0.594814,-1.583788}, + {-0.091316,0.186157}, + {-1.061280,0.790775}, + {1.196936,-0.655124}, + {0.138017,-0.110440}, + {-0.482455,-0.535907}, + {1.275872,-0.400182}, + {-0.064806,0.484727}, + {0.401664,-0.613058}, + {-0.700481,-0.936574}, + {0.532775,0.696085}, + {1.008801,0.749932}, + {-0.986396,-1.189219}, + {-0.913639,0.371736}, + {0.784265,-0.263053}, + {-0.408200,-1.066935}, + {-0.668052,-0.239838}, + {-1.178900,-1.241531}, + {-0.853686,0.295449}, + {0.166123,-1.515813}, + {-0.444517,0.062558}, + {0.332299,0.329983}, + {-1.982113,-0.485853}, + {1.132998,-1.205220}, + {-0.804666,0.302509}, + {-0.238308,-0.134546}, + {0.710908,-0.432452}, + {0.315154,1.398999}, + {-0.681044,0.872108}, + {0.606473,0.523653}, + {0.014945,0.278227}, + {-0.139660,0.507999}, + {0.589431,1.064057}, + {1.203018,-0.095737}, + {-0.706335,0.844312}, + {-0.457733,0.411376}, + {1.392476,0.615478}, + {0.503531,0.629748}, + {-1.868925,1.019854}, + {0.623614,-0.097751}, + {1.591276,-0.051853}, + {-0.113714,0.458968}, + {0.053809,-0.896137}, + {0.828523,-0.324982}, + {-0.897275,0.933097}, + {1.465266,0.219218}, + {-0.328468,-0.511827}, + {-0.269574,0.240325}, + {0.158350,-0.002023}, + {0.007904,0.374705}, + {-0.748152,-0.404403}, + {0.401461,1.023925}, + {-0.694375,0.165567}, + {-0.750854,-0.441250}, + {-0.732961,1.478016}, + {-1.351355,-0.403812}, + {1.015405,-0.641125}, + {-1.187931,0.516955}, + {0.356994,0.568579}, + {-0.980631,-1.747832}, + {0.841677,-0.390122}, + {-0.341402,-0.520199}, + {0.267459,0.114024}, + {-0.241603,-0.232871}, + {0.477839,0.132306}, + {-1.470251,0.729433}, + {0.041666,-1.683171}, + {0.476142,0.743715}, + {-0.601401,-0.980501}, + {0.652458,-0.252309}, + {0.456130,-0.278763}, + {1.118120,0.633555}, + {-0.749787,-0.239808}, + {-0.104785,0.184428}, + {0.669072,0.512814}, + {-0.766815,-0.611725}, + {0.264691,0.519192}, + {0.723239,0.197053}, + {0.208870,-1.040927}, + {0.225315,1.672246}, + {-0.292557,0.249723}, + {0.028916,0.585265}, + {0.095992,0.356909}, + {-0.555301,-0.057219}, + {-0.928637,-0.681245}, + {-0.528215,0.113653}, + {0.051210,-0.925710}, + {-0.488349,-1.072004}, + {0.388358,-0.829677}, + {-0.440984,0.402262}, + {-0.587779,0.415484}, + {-0.854813,-1.202757}, + {0.140449,0.615316}, + {-0.969118,0.625102}, + {0.723061,-0.023433}, + {-0.466547,-1.193377}, + {0.174382,-0.191844}, + {-0.069412,0.744591}, + {0.614304,0.878272}, + {1.039704,-0.498006}, + {-0.308974,0.145160}, + {1.014526,-0.374036}, + {0.252267,0.687180}, + {-0.162024,-0.879458}, + {-0.069318,-0.136461}, + {1.084086,-0.626762}, + {-0.337708,0.138883}, + {-0.614793,0.495342}, + {-0.313819,0.218629}, + {-0.355789,-0.208860}, + {1.264926,-0.581676}, + {0.995574,1.298469}, + {0.048826,1.154609}, + {0.853013,0.154451}, + {-0.288999,-0.321106}, + {-0.313594,-1.063780}, + {0.993070,0.561339}, + {0.227798,1.300257}, + {0.228511,1.096806}, + {-0.206126,-0.606261}, + {0.534751,1.086407}, + {0.990795,-0.239272}, + {-0.221983,-1.228456}, + {-0.853842,-0.354515}, + {-1.529191,-0.080374}, + {0.510801,0.916183}, + {-0.406386,0.535647}, + {-0.894904,-0.543193}, + {-0.238739,-0.062090}, + {-0.888515,-0.567698}, + {-0.480891,-0.205695}, + {0.174172,-0.275572}, + {-0.272541,0.816420}, + {-2.017061,-0.971229}, + {0.654095,-0.688792}, + {-1.521416,-0.151355}, + {-0.419304,-0.564373}, + {-0.683359,-0.964495}, + {0.191915,0.116535}, + {-0.122173,0.698014}, + {0.091031,0.996259}, + {0.807417,-0.307397}, + {0.503590,-0.560922}, + {-0.025515,-0.177932}, + {-1.471801,0.431103}, + {-0.274382,-1.436026}, + {0.410563,0.251427}, + {-0.688289,0.531037}, + {0.235751,-0.017373}, + {1.697625,0.330051}, + {1.296692,-0.008806}, + {-0.161821,-1.267515}, + {-0.157375,0.552060}, + {0.194818,-0.498418}, + {-0.803649,0.679683}, + {-0.085934,0.145656}, + {1.299868,-0.011962}, + {-0.912591,-0.421947}, + {1.145332,0.300821}, + {0.269805,0.306810}, + {-0.204528,-0.802886}, + {-0.467310,0.023213}, + {-0.143521,-0.064844}, + {-0.615181,-0.550979}, + {-1.849136,-0.009920}, + {0.171609,-0.665812}, + {-0.491934,0.882227}, + {-1.650295,0.114048}, + {-0.400294,0.424205}, + {-0.514118,-0.669073}, + {0.258922,0.794121}, + {0.049997,0.134089}, + {0.194488,-0.156671}, + {0.344593,-0.056610}, + {-0.065019,-0.791255}, + {-0.712143,-0.889316}, + {-0.037947,-0.410308}, + {-0.608536,0.363014}, + {-0.995931,0.748773}, + {-0.532246,1.524272}, + {-1.273984,-0.692641}, + {0.216458,-0.969723}, + {0.596969,1.207691}, + {0.630096,0.619046}, + {0.053170,0.680191}, + {-0.316325,2.215220}, + {-0.727683,0.614145}, + {-0.426250,-0.833144}, + {0.824881,-0.500053}, + {-0.529623,0.311797}, + {-0.178255,0.825478}, + {0.103841,-0.104707}, + {-0.031122,0.452810}, + {-1.102562,-0.565139}, + {0.562892,-1.009280}, + {-0.990678,0.532690}, + {0.780854,-0.558275}, + {-0.797341,-0.248667}, + {0.419113,0.984902}, + {-0.373388,-0.223312}, + {-0.219678,-0.502263}, + {0.073586,-0.923303}, + {0.462648,-0.208484}, + {0.402837,1.456425}, + {0.394849,0.801398}, + {-0.032908,-0.398294}, + {0.137910,0.005318}, + {-0.388445,0.932065}, + {-0.968678,0.568907}, + {-1.168897,0.713647}, + {-0.135803,0.675903}, + {-0.798947,0.409210}, + {-0.210345,0.474493}, + {-0.996924,-0.261361}, + {-0.376090,-0.169902}, + {-0.084624,-0.337132}, + {-0.149856,1.151486}, + {-0.334993,-0.025083}, + {0.014955,-0.281633}, + {-0.296591,1.360250}, + {-0.356625,-0.268706}, + {0.092831,-0.664457}, + {0.661417,1.101560}, + {0.818075,-0.436305}, + {0.257700,0.826407}, + {-0.876984,-0.265632}, + {-0.847009,0.983195}, + {0.533962,0.025176}, + {0.475236,-0.021672}, + {-0.408513,0.144330}, + {-0.054836,-0.056845}, + {-0.811997,-0.428748}, + {-0.041344,0.580983}, + {-0.403695,1.106749}, + {-0.782566,-0.126241}, + {-0.164866,0.115952}, + {-0.511490,-0.220781}, + {0.758437,1.045866}, + {1.585939,0.717827}, + {0.198230,-0.423196}, + {0.425990,0.760640}, + {0.349586,0.560766}, + {-0.394644,0.704755}, + {0.816262,0.894866}, + {0.669015,2.130989}, + {0.400988,0.020291}, + {0.271768,0.213246}, + {0.677947,-0.681183}, + {-1.418844,-0.062849}, + {0.154916,-0.318327}, + {-0.397071,2.104998}, + {0.775958,-0.897373}, + {-0.332711,0.107389}, + {0.120366,-0.286305}, + {0.329814,-0.271822}, + {0.103319,-1.265877}, + {-0.729148,1.209006}, + {0.782576,-1.122029}, + {-0.924092,-0.627575}, + {-0.804932,-0.421433}, + {0.344793,-0.265698}, + {0.408639,0.540421}, + {-0.154016,0.136751}, + {-1.289312,0.562553}, + {-0.541214,0.328546}, + {0.113700,0.137387}, + {-0.357670,0.284727}, + {0.870838,-0.493262}, + {-0.984308,-0.399538}, + {0.156173,0.616735}, + {0.558083,0.793972}, + {-0.041236,-0.886977}, + {-0.272831,-0.458041}, + {0.720271,-1.299717}, + {0.800746,-0.688169}, + {0.003356,-0.488594}, + {0.112341,1.180680}, + {-0.404111,-0.185403}, + {-1.132811,0.187327}, + {0.278689,0.563330}, + {-0.475478,0.253690}, + {0.822805,-1.018580}, + {-0.536317,-0.432998}, + {1.196511,0.646342}, + {0.248643,-0.351856}, + {0.023010,0.801504}, + {0.082477,0.227903}, + {-0.739984,1.409377}, + {-1.093346,0.284272}, + {0.014437,0.797834}, + {-0.231989,-0.756894}, + {-0.324308,-0.373406}, + {0.327255,0.165462}, + {0.077915,0.976373}, + {0.099804,-0.232398}, + {-0.188951,-1.848099}, + {-0.264076,0.299642}, + {-0.249151,0.531139}, + {-0.085369,0.191014}, + {0.418407,0.643442}, + {0.548592,-0.986217}, + {0.201831,-0.013044}, + {0.402804,0.414341}, + {0.672157,-1.203954}, + {0.095442,-0.174176}, + {0.841303,-0.015891}, + {-1.263681,-1.045229}, + {0.761722,0.884349}, + {-1.504885,-0.472921}, + {-0.346331,0.174952}, + {0.933591,0.149618}, + {0.730042,-0.463471}, + {-0.475737,1.006552}, + {0.759548,-0.283706}, + {0.157366,-1.489094}, + {0.523688,0.334166}, + {0.876784,0.002512}, + {-1.026722,0.090503}, + {-1.165607,0.169016}, + {0.359693,-0.053239}, + {0.215738,0.499053}, + {-0.350342,0.196230}, + {0.896169,0.062044}, + {2.042446,-1.127256}, + {-0.534803,-0.041073}, + {-0.164018,0.930955}, + {1.250713,0.249031}, + {-0.869230,0.749397}, + {0.340076,-0.429473}, + {0.156416,-0.607349}, + {-0.876436,0.247448}, + {0.631910,-0.711511}, + {-0.353926,0.595086}, + {-0.317500,0.152275}, + {0.016852,0.409049}, + {0.138180,-0.897995}, + {-1.043338,0.106864}, + {0.249097,0.765102}, + {-0.063449,-0.898102}, + {-0.009991,0.423051}, + {-2.479719,-0.472494}, + {0.089759,0.324779}, + {-0.425748,-0.136768}, + {-0.039432,0.113546}, + {0.378075,0.584178}, + {-0.116790,-0.340992}, + {1.409989,0.608333}, + {0.185191,0.854648}, + {0.148669,-0.916006}, + {0.243601,-0.578485}, + {0.534792,0.128748}, + {0.096589,-0.011526}, + {0.302454,-0.104072}, + {0.557113,-0.581964}, + {0.123224,0.084108}, + {-0.040691,1.241659}, + {-0.976656,-0.139564}, + {0.461107,0.951388}, + {-0.172467,-1.082873}, + {-1.153675,-0.385351}, + {-0.618565,0.103723}, + {0.584970,-0.576273}, + {-0.072267,0.632778}, + {-1.229002,-0.083644}, + {-0.398376,-0.960650}, + {-0.182248,0.182768}, + {0.047476,-0.416691}, + {-0.006784,0.265975}, + {0.197887,-0.503323}, + {1.187192,-0.302236}, + {-0.243130,-1.039109}, + {-0.062329,0.768271}, + {0.943091,0.735741}, + {-0.034137,0.599684}, + {-0.528197,-0.012226}, + {-1.206841,0.534777}, + {-0.136555,0.133648}, + {-0.026909,-0.925145}, + {0.545718,0.306186}, + {0.019155,0.114856}, + {0.108414,0.467932}, + {-0.690591,0.822777}, + {-0.784363,-0.578012}, + {-0.355875,0.224161}, + {1.082772,0.724638}, + {0.259778,-0.690524}, + {0.144948,-0.594185}, + {-0.569524,-0.553273}, + {0.951085,-1.238274}, + {-0.334362,0.954367}, + {0.270034,-0.455925}, + {0.135168,0.992027}, + {0.673968,-0.116692}, + {1.150927,-0.985755}, + {0.401896,-0.044726}, + {-0.404015,0.215494}, + {-0.874189,-0.310641}, + {-1.076193,-1.010944}, + {-1.077048,-0.032036}, + {-0.059354,-0.173463}, + {-0.218021,0.018288}, + {-0.196944,-0.747249}, + {0.734062,0.379284}, + {1.158500,0.450099}, + {-0.858797,0.229643}, + {1.308480,-0.146091}, + {-0.741501,0.254662}, + {1.000943,0.157585}, + {0.521755,-0.098708}, + {0.086764,0.359042}, + {-0.099892,0.739584}, + {0.340750,-1.523697}, + {-0.536943,1.085834}, + {0.570584,0.105172}, + {0.202618,-0.072868}, + {-0.636440,0.211023}, + {0.497984,0.587557}, + {-0.110149,-1.306920}, + {-0.679943,0.412284}, + {-0.316334,-0.908325}, + {-0.711702,1.541623}, + {1.257867,0.108194}, + {-0.642721,-0.461193}, + {-0.358721,-0.241200}, + {0.150649,-1.176602}, + {-1.319244,0.289257}, + {0.773558,0.096770}, + {-0.827512,-0.185106}, + {-0.040823,-1.803707}, + {0.649424,-0.745211}, + {1.254139,0.001556}, + {0.329440,-0.291886}, + {-0.640815,-0.162880}, + {0.091218,1.039846}, + {0.699821,-0.470335}, + {-0.583234,-0.635644}, + {0.819819,-1.751943}, + {-0.721584,0.787984}, + {-0.179237,0.328456}, + {-0.063781,0.429699}, + {1.631510,0.041000}, + {0.122645,-0.926669}, + {0.970309,-0.036087}, + {-0.204184,-0.045486}, + {-0.597965,0.889277}, + {-0.564184,-0.344697}, + {-1.064722,-1.138890}, + {-0.751389,-0.391462}, + {-0.024089,0.535480}, + {-0.265461,0.383199}, + {-0.504780,-1.007336}, + {-1.021076,0.831820}, + {0.141181,-0.805943}, + {0.451375,0.655968}, + {1.100952,0.897682}, + {0.205680,-1.447828}, + {-0.748725,0.229730}, + {0.886689,-0.042364}, + {-1.821520,-0.303140}, + {0.697765,-0.619635}, + {-0.046616,-0.261678}, + {-0.207704,-0.328292}, + {-0.534695,-0.547877}, + {-1.575192,0.622682}, + {0.469863,0.483822}, + {-0.215089,1.552073}, + {0.505524,-0.648942}, + {0.262484,0.623770}, + {0.427704,-0.562431}, + {-0.872769,0.672559}, + {-0.020422,-0.187349}, + {1.243445,-1.678458}, + {0.123213,-0.587475}, + {0.071629,-0.272299}, + {0.150438,0.166304}, + {-0.278067,-0.782556}, + {0.011738,-0.690190}, + {0.881321,-0.960599}, + {0.234258,-0.529572}, + {-1.583603,-1.199128}, + {0.394669,-0.930577}, + {-0.358556,1.527559}, + {-1.524935,-0.981286}, + {-1.283556,0.168284}, + {-0.071836,-0.156780}, + {1.300191,1.006321}, + {-1.238737,0.048229}, + {-0.377324,-0.229504}, + {1.099479,0.998962}, + {-0.298661,-1.195932}, + {-0.283137,-0.159995}, + {0.098216,1.750651}, + {-1.026856,0.639700}, + {0.770303,0.037554}, + {-0.190248,-0.145522}, + {-0.674866,0.016212}, + {-1.556569,1.310796}, + {-0.417356,1.000320}, + {1.292398,-0.862891}, + {-0.666403,1.999084}, + {0.359215,0.069716}, + {0.347212,-0.033478}, + {-0.378434,-0.364239}, + {-0.177074,0.536678}, + {0.665238,-0.817818}, + {-0.050101,0.086105}, + {0.402255,-0.348473}, + {-0.108418,-0.286375}, + {0.632875,-0.573563}, + {-0.401028,-1.098233}, + {-0.209670,-0.524291}, + {1.161718,-0.018141}, + {0.062103,0.583460}, + {0.477218,1.102610}, + {-0.467535,1.244971}, + {-0.375225,-0.086564}, + {0.628985,-0.808293}, + {1.769568,-0.074081}, + {-0.632422,0.452516}, + {-0.080602,0.904194}, + {-0.036578,0.987790}, + {-1.059879,-0.224910}, + {-0.942022,0.248616}, + {0.604268,0.203433}, + {0.511442,-0.200682}, + {-1.007013,0.355784}, + {-0.895393,-0.034260}, + {-1.057717,1.382638}, + {0.611742,0.856244}, + {0.703185,-0.058025}, + {-0.130182,-0.591155}, + {0.638317,-0.190395}, + {0.522978,-0.891479}, + {-0.002451,-0.012145}, + {-0.321576,0.154897}, + {-1.017726,0.839232}, + {0.275647,-0.836124}, + {-0.118267,-0.695792}, + {-2.185583,-0.392189}, + {0.732423,-0.118374}, + {0.884142,0.303615}, + {-1.341810,-0.498593}, + {-0.479942,-0.379985}, + {0.111066,-2.027992}, + {0.639038,-1.018160}, + {0.123944,0.497292}, + {-1.415298,-0.098769}, + {1.108608,-1.269705}, + {-1.101691,0.124200}, + {0.442822,-0.443518}, + {-1.122461,0.522937}, + {-0.142504,-0.305149}, + {-0.176067,-0.623792}, + {-0.196882,0.715774}, + {0.406265,0.244901}, + {1.161033,0.506478}, + {0.167092,-0.544898}, + {-0.008688,-0.682775}, + {-0.481234,-0.114580}, + {-0.301007,-0.278349}, + {0.839510,-0.084011}, + {0.523550,0.618197}, + {-1.485248,1.869149}, + {-0.385724,0.172770}, + {-0.388899,-0.581958}, + {0.615073,-0.767256}, + {0.695869,1.535576}, + {-1.500226,-0.888290}, + {-0.511725,0.657499}, + {-0.738649,-0.437450}, + {0.652296,-0.153666}, + {-0.169144,-0.366049}, + {-0.213299,0.312138}, + {-0.862391,-0.179164}, + {0.479733,1.023316}, + {-1.704103,-0.974490}, + {-0.348370,-1.488505}, + {-1.099062,0.282122}, + {-1.578280,-0.162824}, + {-1.091052,0.744575}, + {-0.515178,-0.044797}, + {0.065343,0.960922}, + {-0.051800,-0.142943}, + {-0.117723,-1.467680}, + {-0.643133,1.163677}, + {-0.034072,0.261251}, + {0.464990,-0.130008}, + {0.133313,-1.401987}, + {0.126248,0.450691}, + {-0.003664,-0.323720}, + {0.142170,-0.755157}, + {-1.656898,-0.020361}, + {-0.612778,0.036440}, + {0.353884,-0.743228}, + {-0.430287,-0.179029}, + {0.625341,0.171575}, + {1.016815,-0.257385}, + {0.324956,-0.714199}, + {-1.174736,-0.158217}, + {-0.274466,-0.771165}, + {-0.393455,-0.971745}, + {-0.298555,0.790057}, + {-0.646557,-1.558486}, + {0.758193,0.973426}, + {-0.512463,-0.785605}, + {0.980556,-0.044524}, + {0.453143,0.624350}, + {1.147269,0.020674}, + {-0.501269,-0.404065}, + {-0.244718,-0.507250}, + {0.770791,0.097876}, + {0.244499,-0.019047}, + {-0.727271,-1.001762}, + {-0.366096,-0.511113}, + {0.479774,0.574401}, + {0.917365,-0.129024}, + {-0.745295,-0.245488}, + {0.745051,1.034707}, + {0.810366,-0.847422}, + {0.235447,0.300914}, + {-0.708897,-0.941699}, + {0.309677,-1.041238}, + {-0.081649,0.128611}, + {0.844397,0.010619}, + {-1.009033,0.934418}, + {1.144116,0.074744}, + {-0.057235,-0.308853}, + {0.360603,0.036429}, + {0.830911,-0.450962}, + {-0.194946,-0.151025}, + {-0.211182,0.118259}, + {0.021337,0.332110}, + {0.129465,-0.225661}, + {-1.052171,-0.755217}, + {0.633623,-0.177776}, + {0.100743,-0.704954}, + {-0.818968,1.180590}, + {-0.535346,-0.545943}, + {-0.006770,0.316309}, + {0.775806,0.533149}, + {0.339163,0.050466}, + {0.318535,-0.074793}, + {-1.297398,-0.351562}, + {-0.772665,1.015512}, + {0.295548,-0.180960}, + {-0.044699,-0.203172}, + {0.724933,-1.023951}, + {-0.167979,-0.725819}, + {0.686506,0.268161}, + {-0.480277,-0.221435}, + {-0.056920,0.480959}, + {0.030116,-0.272789}, + {-0.302421,0.129490}, + {-1.671242,0.181529}, + {-0.281706,-0.333536}, + {0.016290,-0.028753}, + {-0.259901,-0.190484}, + {0.289524,-0.195349}, + {-1.337980,0.540319}, + {0.661628,-0.670418}, + {0.599796,0.557768}, + {0.580559,0.969807}, + {0.031230,0.964814}, + {0.198048,0.444485}, + {0.578456,-0.883133}, + {0.624222,1.329692}, + {-0.625168,-0.127331}, + {-0.017311,1.164091}, + {-0.621783,-0.446638}, + {0.701142,-0.309340}, + {-1.057874,-0.834624}, + {0.346678,-1.338687}, + {0.667874,-0.522838}, + {-1.028893,-0.504854}, + {-1.338328,-0.931585}, + {0.287635,0.120742}, + {0.230818,0.167010}, + {-0.328503,-0.748337}, + {-0.255351,0.964045}, + {0.510160,-1.611867}, + {0.223958,-0.860844}, + {0.239175,-0.837760}, + {1.266567,-0.125655}, + {0.582400,0.156299}, + {0.251579,-1.778354}, + {0.650474,0.028121}, + {0.993767,-0.090186}, + {0.441591,-0.361052}, + {-1.413507,0.317850}, + {0.334364,-0.332911}, + {-0.010362,-0.177608}, + {0.014458,-0.502127}, + {-0.919481,-1.160841}, + {-0.443414,0.552915}, + {-0.054788,-1.052794}, + {-0.561902,0.153077}, + {-0.677469,-0.159762}, + {0.650310,-0.922686}, + {0.296712,0.812605}, + {-0.294342,0.055605}, + {-0.535585,-1.384576}, + {-1.433487,-0.747544}, + {0.645626,-0.741622}, + {0.920579,-0.258878}, + {0.169646,0.529906}, + {0.674057,0.410030}, + {-0.351663,0.199608}, + {-0.339342,-0.416492}, + {-0.271758,1.138671}, + {0.224929,-1.327320}, + {0.601037,1.033542}, + {-0.193132,-0.768238}, + {0.364633,-0.653041}, + {0.783166,-0.809904}, + {0.559880,0.350413}, + {0.615788,-0.237848}, + {0.236813,-0.842202}, + {0.031135,-0.661401}, + {0.349296,-0.774153}, + {1.759036,-0.724450}, + {-0.116563,0.294276}, + {0.375200,-1.357901}, + {-1.029118,1.305234}, + {0.497985,-0.464184}, + {-0.295867,-0.349915}, + {0.221068,-0.835466}, + {-0.838100,0.275901}, + {-1.020066,0.277497}, + {1.091145,0.328918}, + {0.327124,0.702349}, + {-0.476125,0.304774}, + {0.520932,0.875467}, + {-1.726524,1.028699}, + {0.060615,0.113976}, + {0.297927,1.293605}, + {-0.405591,0.650445}, + {0.037677,-0.734049}, + {-0.565393,0.943537}, + {0.910424,-0.580765}, + {0.493416,-0.962297}, + {0.956024,0.716498}, + {0.474440,0.623715}, + {-0.922501,-0.564992}, + {-0.794655,0.719802}, + {0.596664,-0.091353}, + {-1.236730,0.412576}, + {-0.041676,0.394763}, + {0.786846,0.085198}, + {1.051734,-0.257630}, + {-0.906726,-1.590711}, + {0.362094,-1.386569}, + {0.148797,-0.901821}, + {-0.736306,0.417423}, + {0.329381,-0.221941}, + {0.009126,0.513875}, + {-1.192236,0.638637}, + {-0.317820,0.575279}, + {1.586186,-0.027898}, + {-0.025386,0.094059}, + {-0.315796,-0.838576}, + {0.030063,-0.320087}, + {0.534822,0.130995}, + {0.477222,-0.398652}, + {-0.913466,-0.563169}, + {-0.823684,-0.189615}, + {-0.213996,0.665743}, + {0.654202,0.146227}, + {-0.004974,0.257017}, + {-0.024927,-0.214095}, + {-1.045988,0.681355}, + {0.146436,0.294438}, + {1.089600,-0.127405}, + {0.798004,0.931002}, + {-0.505832,0.828742}, + {0.361348,-0.830710}, + {-0.305041,1.032923}, + {-0.728657,-0.579665}, + {0.517347,-0.452207}, + {0.879566,-0.278807}, + {-0.124969,-0.036169}, + {0.628951,-0.089218}, + {-0.603025,-0.528341}, + {0.019535,1.501341}, + {0.881593,0.143029}, + {-0.231925,-0.097508}, + {0.538676,0.300952}, + {-0.127155,0.296466}, + {-0.274248,0.005941}, + {1.500761,-0.345010}, + {-0.907824,1.044908}, + {0.414848,1.043371}, + {-0.867983,-0.304333}, + {0.044936,0.571416}, + {-0.266616,0.376188}, + {0.878846,0.549724}, + {-0.170746,0.362205}, + {0.160919,0.167739}, + {0.462195,0.540838}, + {-0.875388,-0.096774}, + {0.307478,-0.185363}, + {-0.181949,0.313114}, + {-0.085873,-0.399748}, + {-0.129085,1.140098}, + {-0.252383,0.086665}, + {0.189609,-1.301528}, + {0.382798,0.498417}, + {-0.506249,-0.317346}, + {-1.212357,0.230474}, + {0.474321,0.181404}, + {0.681870,-0.999781}, + {0.607469,-0.406532}, + {0.622035,-0.522596}, + {0.227928,0.106501}, + {-0.379127,-0.283975}, + {0.139899,-0.090042}, + {0.672276,-0.271219}, + {-0.234798,-0.982539}, + {0.475426,-0.896914}, + {-0.325514,0.546342}, + {0.437787,0.300656}, + {-0.625297,-0.525772}, + {-0.061169,0.198968}, + {-0.094667,0.112590}, + {0.786903,0.717350}, + {-0.109661,-0.225045}, + {0.186298,-1.271786}, + {-0.369875,0.986481}, + {0.689748,-0.439040}, + {-0.965116,-0.848020}, + {0.656998,-2.318079}, + {0.002981,0.218055}, + {-1.189818,0.355672}, + {0.584073,-1.050715}, + {-0.108002,-0.588069}, + {-0.313385,0.621555}, + {-0.889104,-0.082471}, + {-0.769348,1.617374}, + {-1.728674,1.396468}, + {-0.616521,1.370656}, + {-1.249198,0.309463}, + {0.189456,-0.979952}, + {-0.118186,1.507419}, + {0.747125,0.309914}, + {-0.614646,1.308353}, + {0.333443,-1.419442}, + {-1.700063,0.680655}, + {0.266295,0.063078}, + {-1.331327,0.169856}, + {0.242049,-1.531715}, + {0.960667,-0.302137}, + {-0.061825,0.429394}, + {-0.329970,0.278702}, + {0.410208,1.176057}, + {-0.789042,-0.174484}, + {-0.238696,-0.184614}, + {0.602804,0.051704}, + {-0.633642,0.103324}, + {0.065643,-0.546136}, + {-0.339235,-0.673524}, + {-0.315448,-0.300233}, + {-0.864395,0.215781}, + {0.254565,0.459681}, + {-0.723593,1.270257}, + {-0.583801,0.838345}, + {-0.808536,-0.416249}, + {-0.053534,0.820439}, + {0.798705,-0.418082}, + {1.776613,-1.110952}, + {0.366472,0.636865}, + {0.324757,0.701457}, + {-0.036684,0.112409}, + {-0.877729,0.003873}, + {-1.084160,-0.401799}, + {-0.008295,0.326360}, + {0.787213,-0.261947}, + {0.836987,-0.392854}, + {0.275954,0.382297}, + {-0.690174,0.027938}, + {-0.374934,0.437628}, + {-0.759869,0.360720}, + {-0.638815,0.093196}, + {0.189722,-0.218160}, + {-0.454777,-1.027413}, + {1.236142,0.310097}, + {0.477871,-0.594035}, + {-0.124788,-0.108431}, + {0.544631,0.996734}, + {-0.496622,-0.463029}, + {0.625047,0.069807}, + {0.557384,0.060492}, + {-0.265568,-1.409334}, + {0.239741,0.259396}, + {0.904890,-0.068242}, + {-0.744938,0.163030}, + {-0.471091,-0.345572}, + {-0.273164,0.370181}, + {0.729318,1.531839}, + {-0.726184,-0.223504}, + {0.242483,0.053784}, + {-0.205845,-0.562647}, + {-2.151637,-0.069466}, + {-0.846446,0.795935}, + {1.110915,-0.399958}, + {0.489046,-0.556660}, + {0.205667,0.176983}, + {0.328136,0.200920}, + {0.527322,0.191632}, + {1.546037,-0.657550}, + {-0.310488,0.301548}, + {0.585276,0.957516}, + {0.128524,0.840981}, + {0.018146,1.407488}, + {-1.516386,0.228783}, + {0.124218,-0.156492}, + {0.265637,0.315627}, + {-1.063782,-0.367510}, + {0.827797,0.276360}, + {1.960161,-1.227262}, + {0.806068,1.260862}, + {0.373849,-0.276127}, + {-0.498184,-0.462535}, + {-0.077592,0.327073}, + {0.588710,-0.430273}, + {-0.905723,-1.065033}, + {-0.016188,-0.290291}, + {-0.109620,0.477222}, + {0.565824,-0.470857}, + {0.705157,0.606991}, + {0.614145,-0.049931}, + {-0.031315,-0.632364}, + {0.072033,-0.559342}, + {0.458793,1.387290}, + {0.206636,0.224213}, + {-0.392240,-0.854508}, + {-0.839329,1.695036}, + {0.566507,-0.629087}, + {0.370644,-1.070375}, + {0.761916,-0.623349}, + {0.602129,0.418224}, + {0.790301,-0.310664}, + {1.481982,0.146058}, + {-1.573813,0.024454}, + {0.567915,-0.336681}, + {-0.639597,0.182668}, + {1.260436,2.207508}, + {0.696288,0.181341}, + {0.376110,0.431512}, + {-0.000551,0.056281}, + {0.402438,-0.361156}, + {0.072172,0.279490}, + {-0.885060,-0.641645}, + {1.385817,0.885361}, + {0.690711,-0.158455}, + {-0.960198,-0.182059}, + {0.321308,0.180684}, + {0.147669,-0.549752}, + {-0.107020,0.306074}, + {0.174252,0.899434}, + {0.061913,-0.189282}, + {1.102905,-1.250777}, + {0.223198,-0.637361}, + {-2.146420,0.173387}, + {-0.084436,-0.775938}, + {0.287327,0.446614}, + {1.090236,0.383949}, + {1.121181,0.127876}, + {0.103766,0.991675}, + {1.242702,0.272046}, + {1.008926,-0.211179}, + {-1.353983,-0.705201}, + {-1.661310,0.179906}, + {-0.572442,0.843940}, + {0.534838,-0.420940}, + {1.906158,1.102764}, + {-0.553360,-0.478077}, + {-0.636383,-1.315762}, + {-1.124395,0.081685}, + {0.220542,0.468091}, + {-1.229590,-0.659073}, + {-0.564517,0.239986}, + {-1.172267,-0.314597}, + {0.151538,0.149107}, + {0.242211,-0.821363}, + {0.254545,0.273831}, + {-0.534100,-0.226399}, + {1.163542,-0.942243}, + {1.041018,0.317274}, + {-0.401554,-0.096105}, + {-0.113999,-0.117513}, + {-0.010346,-0.748131}, + {0.354813,0.636504}, + {-0.681541,-0.112983}, + {-0.488145,0.464117}, + {-0.193164,0.061733}, + {-0.192093,-0.321730}, + {0.509883,0.382645}, + {-1.403973,-0.336215}, + {0.394349,-0.205158}, + {0.391611,-0.502082}, + {0.616434,-0.022915}, + {0.804218,-0.495715}, + {-0.079753,0.070374}, + {0.341990,-0.635143}, + {0.067861,-0.236447}, + {-1.101606,-0.120961}, + {0.442884,-0.438436}, + {0.212980,0.309736}, + {0.528495,-0.251375}, + {-0.692353,-0.169402}, + {0.562221,-0.028760}, + {0.590351,0.405250}, + {-0.717372,0.369161}, + {-0.806613,0.504272}, + {0.286954,1.111197}, + {-0.105423,-0.153474}, + {-0.346757,-1.116428}, + {0.226199,-0.504658}, + {0.004135,-0.101712}, + {-0.040985,-0.512184}, + {-0.022114,-0.025237}, + {-0.334621,-0.134380}, + {0.534726,-0.729250}, + {-0.282945,-0.576566}, + {-0.931037,0.047644}, + {1.365371,-0.644779}, + {0.168399,-1.211458}, + {2.486020,-1.456800}, + {-0.004467,-0.574279}, + {-0.401257,1.031333}, + {0.424854,0.679751}, + {-0.360869,-0.836076}, + {-0.349323,1.100520}, + {0.126475,0.711401}, + {-0.075597,1.820855}, + {-1.746648,1.113080}, + {-0.153525,-0.544782}, + {-0.533184,-0.693391}, + {-0.769927,-0.582211}, + {-0.680363,0.216778}, + {-0.004214,-1.526735}, + {-0.086907,-0.002847}, + {0.232166,-0.016912}, + {0.817197,0.482386}, + {-1.105532,0.491655}, + {-0.376338,0.410127}, + {1.042417,0.054103}, + {-0.241349,-0.748510}, + {-0.014625,-0.417149}, + {0.738367,0.443956}, + {-1.044035,0.497683}, + {0.292520,-0.751995}, + {-0.217407,0.722108}, + {0.918647,-0.718313}, + {-0.164316,0.409743}, + {1.309759,0.090394}, + {0.233709,-0.815158}, + {-0.239462,0.605397}, + {-0.039005,-0.027079}, + {-0.954133,-0.096347}, + {1.816169,0.521655}, + {0.153716,-0.328576}, + {0.835515,-0.359370}, + {-0.705611,-0.523065}, + {0.138570,-0.063344}, + {0.083846,-0.023266}, + {-0.562762,-0.812709}, + {0.365173,-0.859163}, + {0.578421,-0.182048}, + {-0.126089,1.117181}, + {0.617319,-1.086710}, + {0.769929,0.422361}, + {-1.309781,1.172984}, + {-0.596821,-0.251837}, + {0.212351,-0.811837}, + {-0.162098,-0.192380}, + {-0.813093,1.121627}, + {0.256762,0.936857}, + {-0.875631,1.008870}, + {0.247567,0.868075}, + {0.971357,-0.738473}, + {-0.226325,0.330532}, + {-0.162002,0.916161}, + {-0.400712,1.001422}, + {0.074112,1.112345}, + {0.860980,0.266196}, + {0.395444,-0.557019}, + {0.120734,-1.186860}, + {0.556697,0.066680}, + {0.854588,0.178589}, + {2.451387,-1.403948}, + {0.227316,0.024298}, + {0.591620,0.075444}, + {0.200034,0.061233}, + {0.482442,-0.836773}, + {1.044504,0.162091}, + {0.928003,-0.484096}, + {0.382501,-0.191498}, + {-0.375135,0.607373}, + {-0.736591,0.301910}, + {0.174839,-0.142515}, + {0.733383,0.997919}, + {-0.786136,-1.067298}, + {-0.206222,-0.113384}, + {-0.464171,0.094194}, + {-1.350080,-0.791223}, + {-1.126134,-0.116062}, + {-0.208917,-1.109539}, + {-0.370726,-0.057655}, + {-0.091744,-1.090501}, + {-0.208418,0.132989}, + {0.864632,-0.798601}, + {1.102361,1.368734}, + {-0.272215,-0.247604}, + {-1.023085,-0.986586}, + {-0.065967,0.605997}, + {0.063587,-0.976618}, + {-0.267152,-0.116898}, + {-0.461969,-0.203471}, + {-0.573852,0.570464}, + {-0.138348,0.534036}, + {-0.090592,0.936618}, + {0.850179,-0.537120}, + {-0.433713,-0.556356}, + {-0.537237,-0.713364}, + {0.426253,-0.478599}, + {1.133750,-0.964272}, + {-1.331896,0.116871}, + {0.191830,0.696149}, + {-0.109898,-1.447008}, + {0.959592,0.346543}, + {0.261532,-0.822086}, + {0.303775,-1.459434}, + {0.530404,0.421720}, + {-0.453037,-1.463699}, + {0.123500,0.017147}, + {0.172476,-0.507657}, + {-0.160135,1.263925}, + {0.030836,0.556500}, + {-0.185416,-0.025333}, + {0.637640,0.395256}, + {0.089760,-0.864083}, + {0.577483,1.581489}, + {0.979522,1.296548}, + {-0.497799,-0.045689}, + {-0.047660,1.066061}, + {0.048446,-1.060159}, + {-0.968548,-0.221439}, + {1.484060,0.378410}, + {-0.770293,-0.087204}, + {-0.764451,-0.554893}, + {0.348932,-0.676770}, + {-1.210537,0.339603}, + {0.924898,-0.536966}, + {-1.159727,-0.216140}, + {-0.625226,-0.977963}, + {0.640809,0.919168}, + {-0.239144,0.785286}, + {0.809998,0.679827}, + {0.397941,-0.337279}, + {1.158469,-0.284939}, + {0.740868,-0.632110}, + {0.246451,0.582746}, + {1.169569,-0.447871}, + {-0.206093,-0.436712}, + {1.593053,-0.562783}, + {-0.072116,-1.390822}, + {0.534517,-0.038637}, + {0.034689,0.141429}, + {0.474386,0.514105}, + {0.572791,-0.330251}, + {-0.548599,-0.594569}, + {-1.071301,-0.270923}, + {0.486895,0.652847}, + {-0.069770,1.249662}, + {-0.040552,-0.687992}, + {-0.284734,0.643650}, + {-0.808577,0.013167}, + {-0.452947,0.353593}, + {-0.729562,-2.012804}, + {1.237631,-1.264824}, + {0.110039,1.404809}, + {0.107938,-0.296577}, + {0.386214,-0.709940}, + {1.137573,0.606987}, + {0.412215,-0.555525}, + {-1.988232,-0.162112}, + {0.848561,0.408090}, + {-0.811612,0.394181}, + {0.485756,-0.746334}, + {0.049115,-0.087741}, + {-1.022135,-0.921590}, + {-0.633999,0.061617}, + {-0.090648,0.618570}, + {-1.247020,-0.001903}, + {-0.421031,-0.238286}, + {0.711286,-0.314523}, + {-0.147505,-0.383916}, + {-0.683990,0.445952}, + {0.432133,-0.119312}, + {-1.132072,-0.396738}, + {0.135841,0.222292}, + {-0.230532,0.331470}, + {0.254731,-0.376331}, + {-0.776682,0.039871}, + {-1.169703,-0.331153}, + {-0.873728,0.067719}, + {-0.207084,-0.835310}, + {0.037790,-0.362456}, + {0.583451,1.129280}, + {-0.558111,-0.573604}, + {0.856679,-0.022411}, + {0.164767,0.141428}, + {-0.009111,-0.317562}, + {1.150656,1.264776}, + {-0.789474,0.292994}, + {-0.466256,0.131396}, + {-0.773386,0.095435}, + {-0.310801,0.037979}, + {0.426976,0.983285}, + {0.477342,0.671231}, + {0.453581,0.460922}, + {-0.126415,0.223835}, + {-0.197906,-0.189931}, + {-0.526443,0.635295}, + {-0.729339,-0.271754}, + {-0.277572,-0.106432}, + {0.605958,0.268731}, + {0.697244,-0.324635}, + {-0.601406,0.750119}, + {2.020241,-0.455436}, + {-0.545556,-1.777371}, + {-0.106454,-0.323364}, + {0.730151,-0.521349}, + {-0.222232,-0.678729}, + {-0.822648,0.759164}, + {0.347482,0.318147}, + {0.320443,1.047896}, + {-0.007527,-0.099273}, + {-0.469680,0.811059}, + {-0.725923,0.045348}, + {-0.845127,0.408992}, + {-0.483176,-0.402357}, + {-0.244242,-0.138255}, + {0.777707,0.361076}, + {-0.284361,-1.213446}, + {-0.005269,1.151649}, + {-0.132040,-0.605975}, + {-0.614343,0.207020}, + {0.172750,1.326225}, + {-0.902838,0.195327}, + {0.343014,-0.865008}, + {0.125967,0.451258}, + {0.332072,0.614969}, + {-0.298182,0.490626}, + {1.424204,-0.479491}, + {-0.031385,0.164505}, + {0.233636,-1.315612}, + {-0.450889,0.377407}, + {0.029363,0.410567}, + {0.306058,0.200634}, + {-1.349288,0.431649}, + {0.358784,0.047745}, + {-0.557686,1.348221}, + {-0.061715,-0.056931}, + {-0.363172,0.195052}, + {-0.657930,-0.139592}, + {-0.228460,0.043261}, + {-0.400956,-0.445312}, + {-0.518420,0.120859}, + {-0.698407,-1.044712}, + {1.235472,1.348407}, + {0.487842,0.303364}, + {-0.723742,0.780963}, + {-0.593303,-0.225305}, + {-0.534609,0.308384}, + {0.517702,0.592656}, + {0.954708,0.946876}, + {0.138369,0.042618}, + {-0.011117,0.156468}, + {0.129045,-0.782424}, + {0.544442,-0.335302}, + {0.100454,0.021699}, + {-0.414913,-0.364941}, + {-1.446169,0.180437}, + {-0.104807,-1.198166}, + {-0.663552,0.253006}, + {-0.873757,0.653705}, + {0.913861,0.776582}, + {0.408304,-0.209211}, + {-0.292234,0.935191}, + {0.612411,0.506772}, + {0.052624,-0.170316}, + {-0.316935,0.099714}, + {-0.353097,0.013558}, + {1.233948,0.295996}, + {0.369796,0.587798}, + {-0.240517,-0.082754}, + {0.456761,1.042474}, + {-0.213108,0.167637}, + {0.399378,-1.139074}, + {0.884318,-0.559808}, + {1.445237,-0.362312}, + {0.116480,1.022887}, + {-1.064627,-0.325939}, + {0.517946,-0.548647}, + {0.415227,0.031714}, + {0.100481,-0.138348}, + {-0.809183,-0.296851}, + {0.780624,1.262479}, + {0.563065,-0.043795}, + {0.912444,-0.494706}, + {-0.734037,0.870375}, + {-0.318819,1.118381}, + {-0.000746,-0.287874}, + {-1.164864,-0.526955}, + {0.294943,0.563007}, + {-0.310269,0.305960}, + {-0.477327,-0.723869}, + {1.444745,0.187725}, + {1.871817,-0.263160}, + {-0.194735,0.555531}, + {-0.321051,-0.730174}, + {-0.190988,-0.402861}, + {-0.471553,-0.864754}, + {0.858125,-1.345250}, + {-0.616872,0.087958}, + {1.283791,0.027641}, + {0.256228,-1.305667}, + {0.135487,-0.829405}, + {-1.326564,0.237115}, + {-0.150936,0.123060}, + {0.525275,-1.201838}, + {0.345162,-0.254455}, + {-0.289832,-0.377094}, + {-0.152667,-0.439359}, + {-1.044104,-0.312180}, + {0.123564,0.909003}, + {0.092452,-0.627863}, + {-1.077986,0.652712}, + {0.546415,0.317801}, + {-0.327865,0.791680}, + {-0.742691,0.429484}, + {1.359870,0.653960}, + {0.618629,-0.810634}, + {-1.486101,-0.628531}, + {0.594045,-0.133495}, + {-0.470586,0.135156}, + {-0.143237,-0.465263}, + {-1.088628,0.943733}, + {0.198579,-0.639867}, + {-0.063074,-0.021058}, + {0.108028,0.446404}, + {1.189162,0.613968}, + {0.337471,-1.129207}, + {-0.455311,0.326954}, + {-0.570540,-1.907149}, + {-0.314445,0.220247}, + {-0.644406,0.871505}, + {-0.516263,0.822251}, + {-0.557629,-0.170696}, + {0.722273,-0.131339}, + {0.230421,0.790328}, + {-0.104488,-1.716517}, + {-1.241919,0.455016}, + {-0.692486,1.120817}, + {1.549314,-0.046370}, + {-0.106043,0.644970}, + {-0.074406,-0.804419}, + {0.548174,0.128521}, + {-0.595960,-0.462357}, + {0.142829,-0.219578}, + {-0.162097,-0.875243}, + {0.686753,0.775003}, + {0.873880,1.383881}, + {-0.653841,0.636136}, + {0.383632,-0.777116}, + {-1.108266,0.038942}, + {0.971520,0.211922}, + {-0.268643,0.730017}, + {0.855520,0.049969}, + {0.302034,-0.524310}, + {-0.852706,-0.537224}, + {-0.804297,-0.114715}, + {-1.478564,-0.084384}, + {-0.408535,0.423840}, + {-0.168721,-0.141810}, + {0.077383,0.243237}, + {-1.559434,1.191402}, + {1.022154,-0.100324}, + {0.323561,0.469589}, + {-0.663531,0.640213}, + {0.554019,1.763611}, + {1.013954,-0.099589}, + {-0.768361,0.429501}, + {-1.056947,-0.854475}, + {0.199817,-1.902227}, + {-0.070703,-0.504816}, + {-0.936270,0.009265}, + {0.151126,-0.507320}, + {-0.504326,0.276844}, + {-0.314265,1.314549}, + {0.326736,-0.579350}, + {0.592561,-0.964175}, + {-0.223907,-0.829707}, + {-0.401792,-0.560375}, + {0.302453,-0.641377}, + {0.179660,0.273186}, + {-0.093790,-1.403175}, + {-0.547478,-0.365566}, + {-1.082055,-0.079541}, + {0.493591,0.675680}, + {0.488427,0.562525}, + {0.214921,0.219073}, + {1.036597,-0.145378}, + {-0.027255,-0.113060}, + {0.673240,0.620677}, + {0.723878,-0.899601}, + {0.069137,-0.059731}, + {0.241888,0.932147}, + {0.990557,0.522072}, + {0.333210,-0.429499}, + {0.416918,0.495753}, + {-0.659767,-0.994323}, + {0.616175,0.547587}, + {1.096390,0.648779}, + {1.512614,1.140619}, + {-0.038962,-1.035122}, + {-1.083694,-0.279680}, + {0.614096,0.432151}, + {-0.347563,0.062973}, + {1.386988,-0.035997}, + {0.327510,-0.207868}, + {-1.183518,-1.737384}, + {-0.208895,1.406995}, + {0.663338,-0.017747}, + {-0.897272,-0.573788}, + {0.942633,-0.547325}, + {-0.099388,-0.254556}, + {-0.201353,0.644556}, + {0.866075,-0.228444}, + {0.946155,-0.216844}, + {-0.253558,0.114459}, + {0.715896,0.743102}, + {-0.359932,0.276616}, + {-0.210247,-0.083149}, + {0.802847,0.140860}, + {0.408994,0.029881}, + {0.377356,0.319152}, + {-0.372690,-0.245271}, + {0.676166,0.109436}, + {0.724096,0.333436}, + {0.221166,0.187551}, + {-0.391584,0.738071}, + {0.005351,0.778829}, + {-0.358326,0.932486}, + {0.490539,0.803589}, + {-1.940728,-0.191677}, + {0.344834,0.501654}, + {0.800213,0.523732}, + {0.582049,-0.075948}, + {-0.161980,0.485703}, + {-0.259158,-0.582118}, + {1.062836,0.273222}, + {-0.778178,0.190672}, + {0.714527,-1.538556}, + {-0.396795,0.449148}, + {-0.781750,0.953574}, + {-0.338389,-0.501176}, + {-0.641856,-0.054484}, + {0.563696,-0.904985}, + {-0.099391,1.184931}, + {-0.112808,0.108574}, + {0.646080,0.427004}, + {0.212517,0.155965}, + {0.535560,-0.571720}, + {0.553376,-0.294148}, + {-1.607834,-0.184165}, + {-1.547767,0.680574}, + {0.781165,0.154537}, + {0.560969,0.631483}, + {0.495580,1.820957}, + {0.007403,-0.213880}, + {-0.133441,0.263800}, + {-0.539947,-1.040542}, + {0.451911,-0.153928}, + {0.637194,0.419776}, + {1.273621,1.299122}, + {-0.212328,0.126958}, + {-0.797461,1.644603}, + {-0.122874,1.002433}, + {0.531739,1.435631}, + {-0.292445,0.088739}, + {0.116979,0.506073}, + {0.300921,-0.773498}, + {-0.001333,-0.556370}, + {-0.895409,0.437721}, + {0.917279,0.508782}, + {-0.491002,0.775053}, + {0.198360,-0.494544}, + {-0.466188,0.389353}, + {1.026724,0.378360}, + {0.554313,0.153011}, + {2.109013,0.702959}, + {-1.076990,-0.126220}, + {-0.628257,-0.250837}, + {-0.360120,-0.713433}, + {0.323767,-0.526853}, + {0.618992,0.232543}, + {0.680284,-0.239604}, + {-0.469444,0.121707}, + {-0.121518,-0.113712}, + {0.429205,-0.768057}, + {0.120817,-0.738954}, + {0.246917,-0.025595}, + {0.223685,0.828870}, + {0.558682,0.833145}, + {-0.226176,-1.141426}, + {0.592138,0.661966}, + {0.057983,-0.123112}, + {-0.277232,0.942800}, + {0.380806,-0.215897}, + {-1.027768,-0.692785}, + {1.629491,-1.099912}, + {-0.047831,-1.555090}, + {-0.577377,-0.165198}, + {0.708597,-0.250402}, + {-1.063587,-0.338164}, + {0.505373,0.385189}, + {0.072781,-0.658487}, + {0.542617,-0.198652}, + {1.367844,0.323822}, + {-0.727703,0.962762}, + {-0.393308,0.873045}, + {-0.950481,0.223532}, + {1.018389,0.884161}, + {-0.042519,0.854602}, + {-1.358413,-0.098257}, + {0.245351,-0.975102}, + {-0.055406,-1.219287}, + {1.325559,-0.297813}, + {-0.072107,-0.600966}, + {-0.045452,-0.636110}, + {1.196032,-0.569957}, + {0.455332,-1.319878}, + {-0.547178,-0.392150}, + {-1.296887,-0.758016}, + {0.862281,0.903182}, + {-0.538526,-0.948723}, + {0.065158,0.398744}, + {-0.565977,-0.745461}, + {-0.050462,0.869712}, + {0.205620,-0.219247}, + {0.093927,-0.270377}, + {1.113685,-1.069443}, + {-0.718055,0.556379}, + {0.050929,0.307347}, + {-1.222501,0.207457}, + {0.951141,-1.438969}, + {-0.003803,-0.125003}, + {-1.267607,0.411439}, + {-0.857943,-1.588554}, + {0.596604,-0.286897}, + {-0.872539,-0.101087}, + {-0.658556,0.189207}, + {-0.387868,-0.070786}, + {-0.462842,0.344476}, + {1.085369,-0.860640}, + {1.581858,1.043663}, + {-0.972570,0.171239}, + {-0.075607,-0.486479}, + {1.421958,-1.399106}, + {-0.589684,0.410053}, + {0.377491,0.034375}, + {0.428788,0.365635}, + {-0.528193,-1.238089}, + {0.262891,0.578832}, + {0.066590,0.188433}, + {-0.745635,-0.018847}, + {-0.116912,-0.514034}, + {0.597006,0.677949}, + {0.107517,-0.406065}, + {1.015423,0.001044}, + {-0.197476,0.574557}, + {-0.248416,-0.193462}, + {0.473342,-1.017108}, + {0.137976,1.024174}, + {-0.210346,0.751566}, + {-1.015057,-0.473646}, + {-0.595567,0.801209}, + {0.796281,0.545814}, + {-0.856927,-0.309617}, + {0.591179,1.361440}, + {0.157283,-0.776932}, + {0.393443,1.025215}, + {0.537778,0.697904}, + {2.219707,0.499801}, + {1.273309,-0.828332}, + {-0.982928,0.949413}, + {-1.153902,0.670467}, + {-0.156032,-0.994523}, + {0.821935,-0.378448}, + {0.260809,0.087339}, + {0.216860,-0.601138}, + {-0.882410,-0.227433}, + {-0.440866,-0.094405}, + {-0.074585,0.039917}, + {-0.737009,1.217088}, + {-0.268090,0.493822}, + {-0.066510,-0.570724}, + {-0.203579,0.757423}, + {0.062591,-0.452128}, + {0.507822,1.130258}, + {-1.135255,-0.393007}, + {0.740321,0.411285}, + {-0.402801,-0.390182}, + {0.794407,0.970310}, + {0.566977,0.605520}, + {-0.537209,0.639380}, + {-0.426697,0.138911}, + {-0.087417,0.452920}, + {-1.152861,-0.321958}, + {-0.284884,0.639191}, + {0.145500,0.907847}, + {0.982621,0.367939}, + {-0.195191,1.137989}, + {0.211046,-1.239543}, + {0.562427,-0.534005}, + {0.830928,-0.588515}, + {0.651664,-0.531934}, + {-0.056867,0.384091}, + {-0.589129,1.364900}, + {-0.141771,-0.114847}, + {-0.411185,0.073030}, + {-0.265763,0.272064}, + {0.882316,0.793624}, + {-0.160386,0.002500}, + {-0.235607,-0.567823}, + {-1.210585,0.206751}, + {0.817503,0.330202}, + {-0.162811,-1.417884}, + {0.592217,0.010516}, + {1.662363,-0.402841}, + {-0.446189,0.501595}, + {-0.729150,-0.238869}, + {-0.452834,0.078506}, + {-1.518996,-0.427439}, + {-0.266874,0.101362}, + {0.531735,-0.547254}, + {-0.965587,0.011378}, + {-0.298296,-0.096297}, + {-0.149287,0.531172}, + {0.448779,-0.448307}, + {1.047356,-0.315960}, + {1.247794,0.506753}, + {0.590511,0.472349}, + {0.121279,-0.433674}, + {-0.114362,0.767422}, + {1.581429,0.955828}, + {1.476868,-0.288333}, + {-0.556583,-1.164155}, + {-0.059431,-1.160055}, + {0.634128,1.002689}, + {-0.575933,0.033633}, + {1.081099,1.385344}, + {-1.422736,0.075505}, + {1.046288,0.401673}, + {0.435929,-0.472107}, + {-0.206122,0.348224}, + {-0.412777,-0.109916}, + {0.121895,-0.581462}, + {-0.133105,0.264961}, + {-0.850482,-0.072401}, + {-0.577871,0.376519}, + {-1.388756,-0.023759}, + {0.779804,-0.186311}, + {-0.620828,-0.118957}, + {0.932679,0.434943}, + {0.633370,0.592508}, + {1.134259,0.028486}, + {0.799487,0.223794}, + {-0.347314,-0.170474}, + {0.539087,-0.221093}, + {-0.820533,0.307851}, + {-0.717160,0.017505}, + {0.542587,-1.162436}, + {-0.624600,0.801725}, + {1.352536,-0.143812}, + {-0.796545,-0.900611}, + {-0.356700,-0.350123}, + {0.038018,0.541666}, + {0.289386,0.401983}, + {-0.137301,1.430812}, + {1.503273,0.402538}, + {-0.492407,-0.424006}, + {0.932498,-0.226829}, + {0.093021,0.081391}, + {-0.093971,-0.658882}, + {-0.284706,-0.026044}, + {-0.226983,0.526229}, + {0.029324,0.041975}, + {0.873120,0.151935}, + {-0.393476,-0.848702}, + {1.838695,-0.084288}, + {-0.074042,1.079671}, + {0.039939,-1.111425}, + {0.669271,2.216002}, + {-0.589368,-0.446797}, + {-0.465512,0.085837}, + {0.651261,0.403519}, + {0.218905,-0.766309}, + {-0.128001,0.073902}, + {-0.272830,-0.432066}, + {0.519152,-0.589446}, + {-0.311524,0.233018}, + {-0.545692,-0.664651}, + {-1.380502,0.757145}, + {-0.000180,-0.339163}, + {0.446891,0.438011}, + {0.454009,-0.094370}, + {-1.035878,0.187205}, + {-0.896572,0.237276}, + {0.382598,0.442667}, + {-2.504186,-0.537285}, + {0.099216,0.970556}, + {-0.381212,-0.168048}, + {0.554364,-0.100494}, + {-0.269872,-1.498621}, + {-0.494833,-0.343613}, + {0.449499,0.124923}, + {0.027846,-0.151862}, + {-0.115574,-0.391918}, + {0.431950,-0.632974}, + {-0.223079,0.433815}, + {-0.360470,0.230335}, + {-0.351935,-0.652477}, + {-0.699202,-0.709860}, + {0.165994,1.156386}, + {0.946215,-0.422976}, + {-0.694515,0.460667}, + {0.163665,-0.096615}, + {-0.011231,0.132682}, + {1.105695,0.245389}, + {1.070530,0.039658}, + {-0.393505,-0.942814}, + {0.695178,-0.279964}, + {0.373143,-0.153469}, + {0.068343,-0.246175}, + {0.255959,0.802372}, + {-0.561208,0.096934}, + {-0.520615,-0.044160}, + {0.829240,-0.282919}, + {0.617384,-0.417490}, + {1.900495,1.234182}, + {-1.341464,1.226474}, + {-0.168441,-0.813023}, + {1.015085,-0.464638}, + {0.369413,-0.066272}, + {-0.239524,0.683590}, + {0.357866,-0.112409}, + {1.009900,1.254497}, + {0.068589,0.356761}, + {-0.438932,-0.304929}, + {-0.012575,-0.341361}, + {0.299906,-0.036658}, + {0.404167,-0.128515}, + {0.366136,-1.307424}, + {-0.598692,-1.008058}, + {0.110613,-0.159653}, + {1.201734,0.376235}, + {-0.704852,0.106275}, + {0.007635,0.082348}, + {-0.767279,0.145814}, + {-2.046550,1.123715}, + {-0.006254,-0.772897}, + {1.860613,0.657821}, + {-1.010233,0.378664}, + {0.049775,0.410985}, + {-1.426361,0.659661}, + {0.362923,0.949449}, + {0.169229,-0.433502}, + {1.588609,-1.429715}, + {1.714049,1.762603}, + {0.280914,0.315189}, + {-0.366100,0.687960}, + {-0.017839,0.001341}, + {-0.011156,-0.946371}, + {0.605485,-0.901263}, + {1.083968,-1.642610}, + {0.689493,1.137977}, + {-1.346342,-1.228991}, + {0.441885,0.428678}, + {-0.300121,-0.242661}, + {0.151982,0.516324}, + {1.165886,0.321775}, + {-0.428105,0.187019}, + {-1.004687,0.294742}, + {0.338772,1.213508}, + {0.988679,-0.037867}, + {-0.224368,0.155973}, + {0.141559,0.186316}, + {-0.644438,0.395989}, + {-0.199866,-0.523264}, + {-0.107300,-0.461294}, + {0.358698,-0.649953}, + {-0.634770,-0.312915}, + {-0.564734,-0.715844}, + {0.255026,-1.108371}, + {-0.086293,0.312637}, + {0.814938,-0.283814}, + {1.229763,0.128464}, + {0.227974,-0.418647}, + {-0.120043,-0.684067}, + {0.077666,-0.085758}, + {-0.050780,-0.670323}, + {0.136626,0.813804}, + {0.594956,-0.407936}, + {0.955985,-0.191253}, + {0.489552,-1.486926}, + {0.577579,-0.486322}, + {0.562717,-0.751664}, + {0.002459,0.263571}, + {0.288905,-0.878478}, + {-0.464409,-0.538675}, + {0.286060,0.412672}, + {-0.181148,0.381556}, + {0.151361,0.358454}, + {-0.078488,0.251609}, + {0.773414,-0.739208}, + {0.691577,-0.694201}, + {-1.293390,-0.509235}, + {1.146156,-0.653543}, + {-0.242636,-0.801005}, + {0.353931,-0.135868}, + {-0.243086,-0.439001}, + {0.354013,-0.233653}, + {-0.277764,-0.677296}, + {0.473043,0.038362}, + {-0.176500,0.264359}, + {-0.625575,0.366112}, + {0.202867,0.941900}, + {-0.326032,0.671700}, + {-1.046037,-0.687290}, + {-0.868275,-0.007581}, + {-0.570060,0.286439}, + {0.713059,0.210833}, + {-1.294165,-0.028527}, + {0.071361,0.847772}, + {0.508287,0.046283}, + {0.058998,-0.528609}, + {-0.568115,1.051018}, + {0.922293,-0.377449}, + {0.202094,0.031911}, + {-0.114554,-0.415825}, + {-0.776175,-0.804922}, + {-0.057279,-0.584848}, + {0.412935,0.618731}, + {-1.092835,0.486985}, + {-0.678552,0.788882}, + {-0.968375,0.329940}, + {-0.714789,-0.149820}, + {-0.384156,0.175588}, + {0.730323,-0.459545}, + {-0.374056,-0.030715}, + {-0.530865,1.744913}, + {0.317942,0.712183}, + {0.514842,-1.521713}, + {-1.982352,0.917451}, + {0.533069,-0.184669}, + {-0.047735,-0.546721}, + {-0.084978,0.164704}, + {-0.713723,0.221991}, + {0.082505,-0.468486}, + {-0.100827,0.472135}, + {-0.666553,0.018597}, + {0.287429,-0.329748}, + {-1.436239,1.330035}, + {0.290806,-0.769263}, + {-0.048715,0.566687}, + {-0.968640,-0.211849}, + {0.088714,-1.498366}, + {-0.081821,-1.526247}, + {-0.569582,0.589569}, + {-0.581721,-0.848599}, + {-0.006144,-0.254501}, + {-0.374622,1.266927}, + {-0.426722,0.039232}, + {-0.613330,0.408639}, + {0.242699,-0.420023}, + {-0.511846,-0.344112}, + {0.055041,-0.785869}, + {0.817784,0.414807}, + {0.327502,-0.140078}, + {-0.177410,0.254219}, + {-0.697158,1.041201}, + {0.443662,0.437433}, + {0.255286,1.735288}, + {-0.986974,0.995444}, + {-0.170297,0.934111}, + {0.016505,-0.449689}, + {0.074375,0.925671}, + {-0.264038,-0.993178}, + {0.394263,0.428509}, + {0.275369,-0.148148}, + {-0.026461,0.786728}, + {0.219694,-0.715724}, + {-0.198181,-0.337653}, + {-0.046106,1.077969}, + {-0.427274,-1.648299}, + {0.916379,0.354817}, + {-0.495159,0.025080}, + {0.900671,-0.716446}, + {-0.255983,0.933249}, + {0.849832,-0.023818}, + {0.848812,1.222279}, + {0.762640,-0.407851}, + {-1.113535,-0.693755}, + {0.853063,-0.222685}, + {0.182071,-0.562988}, + {0.452813,-0.071797}, + {-1.401647,0.298240}, + {-1.096633,-0.276216}, + {-0.470637,-1.218317}, + {0.061808,0.397691}, + {0.600333,-0.767871}, + {1.008250,0.000708}, + {-0.647290,0.306240}, + {-0.398649,0.249797}, + {-1.305586,-0.172789}, + {0.385940,-1.320990}, + {0.758806,0.901173}, + {-0.002028,-0.687838}, + {-0.619773,-0.519246}, + {0.850480,-0.003780}, + {-0.327611,1.357023}, + {0.407292,0.562773}, + {-0.053213,-0.769666}, + {1.106032,1.282982}, + {-0.673619,1.289760}, + {0.476732,-0.611785}, + {0.152022,-1.680944}, + {-0.649479,-0.291411}, + {-0.012972,-0.162121}, + {-0.691724,0.407729}, + {0.236190,-1.267413}, + {0.533790,0.419325}, + {-0.018652,0.266647}, + {0.229770,0.165313}, + {-0.558823,-0.887105}, + {-0.764080,0.628785}, + {0.355465,0.190894}, + {-1.031620,0.424156}, + {0.210209,-0.511032}, + {2.231847,-1.271046}, + {0.495758,-0.561719}, + {-0.007179,-0.289322}, + {0.208132,1.637787}, + {-0.761436,-0.158279}, + {-1.584498,-0.324741}, + {0.085113,0.686596}, + {-0.430017,0.361140}, + {0.205829,-0.606992}, + {0.307451,0.417509}, + {-0.305665,0.631657}, + {-0.401597,-0.758367}, + {-0.231825,-0.733147}, + {0.413582,0.999199}, + {-0.017343,-0.416519}, + {-0.165102,-1.228027}, + {1.079916,0.834003}, + {-0.032758,1.090964}, + {0.682886,0.223947}, + {-0.125567,0.406849}, + {-0.291070,0.319598}, + {-0.433261,1.411476}, + {-0.521844,0.077749}, + {-1.622536,0.199245}, + {-1.152493,-1.236599}, + {0.010262,-1.143242}, + {0.590426,0.129957}, + {0.710855,-0.106919}, + {0.453857,-0.988619}, + {-0.904005,-0.503640}, + {0.589253,-0.486321}, + {-0.430470,-0.027916}, + {-0.820770,-0.751695}, + {-0.282278,-0.038594}, + {0.864998,0.097233}, + {0.111612,-0.288777}, + {-0.028031,-0.269425}, + {0.431845,0.101275}, + {-0.339818,-0.152321}, + {0.921835,0.289830}, + {-0.671086,-0.501673}, + {0.247329,0.183999}, + {0.567859,-0.307398}, + {0.116284,0.435589}, + {0.203286,0.041931}, + {0.492580,-1.168513}, + {0.661239,0.504958}, + {0.626179,0.315147}, + {1.241463,-0.126592}, + {-0.242149,0.706826}, + {0.022340,-1.150953}, + {-0.121594,0.286725}, + {-0.759044,0.336943}, + {1.203657,-0.225805}, + {-0.307556,-0.613049}, + {0.760114,-0.923164}, + {-1.293027,0.195280}, + {1.015077,0.098072}, + {-2.074471,-0.189545}, + {0.841240,0.955406}, + {-0.178337,0.721980}, + {1.160489,0.003816}, + {-0.384566,2.620896}, + {0.704705,0.063137}, + {0.548336,0.066192}, + {0.190808,-0.012015}, + {0.553649,0.329412}, + {-0.320558,0.795527}, + {-0.615417,0.909293}, + {-1.246752,-0.698925}, + {0.549175,0.281020}, + {-0.778784,-1.430814}, + {0.806743,0.036949}, + {0.477405,-0.736326}, + {-0.702940,-0.929653}, + {0.151960,0.582314}, + {0.865540,-0.423882}, + {0.491950,0.963153}, + {0.330508,0.053934}, + {0.464252,0.827913}, + {0.192361,-0.235847}, + {0.816402,-0.115001}, + {0.092131,-0.660784}, + {0.174107,0.285417}, + {-0.755223,0.514173}, + {0.364767,-0.792043}, + {-0.562086,-0.217651}, + {0.353453,0.348443}, + {0.585457,1.370006}, + {0.984197,-0.178664}, + {-0.366706,-0.786270}, + {1.414700,-0.134770}, + {0.941644,0.284337}, + {-0.455753,1.036933}, + {1.382049,0.541054}, + {0.575756,-0.046144}, + {-0.051649,0.048517}, + {-1.119540,0.541357}, + {0.273349,1.070178}, + {-0.456227,-0.374803}, + {-0.426392,-0.882598}, + {-0.085007,1.118462}, + {-0.265127,0.515600}, + {0.769586,-0.251247}, + {-0.458924,1.727463}, + {0.661363,0.210307}, + {0.953185,0.310892}, + {0.165745,-0.249229}, + {0.003256,-1.461112}, + {-1.295068,0.895661}, + {0.505398,-0.514159}, + {-0.794349,-0.483016}, + {-0.156867,-1.192899}, + {0.540678,0.515770}, + {-0.124202,-0.030591}, + {-0.391160,1.843647}, + {0.495854,0.368012}, + {0.973258,-0.316386}, + {-0.194668,-0.132074}, + {-0.155372,-0.897061}, + {0.231087,-0.105997}, + {-0.153340,-0.294455}, + {0.796845,0.174109}, + {0.603647,0.542966}, + {0.254563,0.674866}, + {-0.956172,-0.048158}, + {-0.530818,-0.801843}, + {-1.026113,-0.351077}, + {0.523780,0.415202}, + {-0.948912,-1.572310}, + {0.410020,0.659503}, + {-0.701486,-0.147504}, + {2.688922,0.358403}, + {1.560465,-0.433628}, + {-0.496547,-0.211502}, + {-0.124965,-0.391226}, + {-0.533224,0.503166}, + {-0.321520,-0.572785}, + {1.258924,0.163907}, + {0.151190,-0.084062}, + {0.226057,-0.056905}, + {0.587172,-0.471113}, + {-0.695980,-0.163141}, + {-1.237538,-0.208643}, + {0.998500,0.955563}, + {-0.179606,0.559009}, + {0.137764,-0.393149}, + {0.502345,-0.054011}, + {-0.904479,0.141850}, + {-0.350247,-0.211378}, + {0.404017,-0.839708}, + {1.263962,0.630874}, + {-0.135289,-2.442988}, + {0.442130,-0.830587}, + {0.122658,0.023062}, + {0.883724,0.665128}, + {-0.178230,0.306886}, + {-0.468211,0.071836}, + {0.246586,0.267636}, + {-0.557471,-0.275384}, + {0.580532,-0.339634}, + {0.229230,0.098588}, + {-0.037226,0.048941}, + {0.429143,-0.409864}, + {-0.994136,0.254552}, + {1.166575,0.976509}, + {0.851270,-0.625880}, + {-0.345877,0.458113}, + {1.414551,-0.046154}, + {-0.380014,0.085284}, + {-0.464670,0.922754}, + {0.372413,-0.292998}, + {0.047303,-0.678625}, + {0.754110,-0.077518}, + {-0.818388,-0.489265}, + {0.374833,0.280108}, + {0.074119,-1.470670}, + {-0.635899,-0.637640}, + {0.921722,0.985314}, + {-1.420950,0.022021}, + {0.627703,0.569002}, + {0.340334,0.147938}, + {0.400352,0.190057}, + {-1.088817,0.050628}, + {0.137021,0.484178}, + {0.078217,0.350442}, + {0.294682,0.070688}, + {-0.085588,0.602284}, + {0.673964,-0.173427}, + {-0.235137,-0.583674}, + {-0.707102,0.052630}, + {0.474050,-1.693641}, + {1.003813,0.543324}, + {0.628591,-0.050070}, + {-0.249527,0.767586}, + {-1.879195,-0.452537}, + {0.396132,-0.415229}, + {-0.028199,0.551825}, + {0.385329,-0.220834}, + {1.324679,-0.312798}, + {-0.642863,-0.825135}, + {-0.004710,-0.058157}, + {-0.847162,0.856134}, + {-0.740614,-0.863084}, + {-1.158400,0.973958}, + {-1.671737,-0.563632}, + {-0.650321,-0.235563}, + {0.598594,-0.545525}, + {0.526469,0.149947}, + {-0.237268,0.583359}, + {0.423311,-0.217139}, + {0.379071,1.034865}, + {-1.758812,0.686033}, + {-0.185959,0.643266}, + {0.032531,0.661944}, + {-0.298139,-0.817098}, + {-1.599706,-0.313605}, + {0.426141,-0.444764}, + {-1.006136,-0.819221}, + {-0.706618,-0.317805}, + {0.141126,1.084697}, + {0.623824,0.023016}, + {-1.046610,0.015300}, + {0.745230,0.751430}, + {-1.319946,-0.564289}, + {-0.604642,0.954636}, + {-0.483640,1.126604}, + {-0.757284,-0.011440}, + {-0.387955,-0.304309}, + {0.153010,2.368292}, + {0.914144,-1.029997}, + {-0.299668,-0.611878}, + {0.525482,-0.659581}, + {0.420515,0.491139}, + {-0.366100,0.268333}, + {0.341777,-1.103398}, + {-0.323677,0.907073}, + {-1.121212,0.392582}, + {0.633364,0.164803}, + {0.338245,-0.443073}, + {-0.135408,-0.702552}, + {-1.008789,-0.011260}, + {-0.781123,-0.685846}, + {0.776429,-0.662386}, + {1.057167,0.352887}, + {-0.597591,0.229540}, + {0.084232,1.119583}, + {-0.285929,0.236433}, + {0.186841,0.460782}, + {-0.172005,-0.130474}, + {0.310647,0.559606}, + {-0.119430,0.878673}, + {-1.612776,0.477573}, + {-0.154730,-0.506361}, + {-0.083025,-1.341480}, + {-0.590808,-0.873065}, + {0.237921,0.451140}, + {-1.029581,-0.416044}, + {-0.719467,-1.896297}, + {-0.051499,0.067354}, + {0.889375,-0.684079}, + {-0.718765,0.727295}, + {-0.536690,-0.605252}, + {-0.739059,-0.585248}, + {0.344357,0.106056}, + {-0.829777,0.728094}, + {-0.283713,0.261390}, + {0.152151,0.078054}, + {0.567021,0.126294}, + {0.291900,0.562743}, + {1.059085,0.084687}, + {-0.551331,-1.234712}, + {-0.588794,-1.091670}, + {-1.691073,-0.118561}, + {1.420551,-1.631329}, + {0.205528,-0.641568}, + {0.162794,0.566978}, + {0.766135,-0.410851}, + {-0.798597,0.988584}, + {-0.718769,-0.992680}, + {0.344092,0.608391}, + {0.292893,0.732026}, + {0.056027,-0.138066}, + {0.429755,0.079029}, + {0.187873,0.660457}, + {-0.517005,0.344139}, + {-0.147412,-0.311869}, + {-0.426811,-0.332282}, + {1.157440,-0.638019}, + {0.183905,-0.237103}, + {-0.779848,0.107454}, + {-0.451815,-0.023654}, + {-0.631830,0.052062}, + {-0.010302,0.265023}, + {-0.740212,0.667259}, + {-0.327306,-0.562585}, + {-0.036460,-0.926800}, + {-0.695698,0.585635}, + {0.506878,0.691465}, + {0.758726,0.102093}, + {0.084728,0.503180}, + {1.401625,0.519015}, + {-0.631581,-0.606695}, + {0.803128,-0.862507}, + {0.940896,0.866730}, + {0.194009,1.652032}, + {0.144810,-0.487873}, + {-0.461080,-0.403805}, + {0.002382,0.136163}, + {0.075381,-0.322951}, + {-0.966995,0.269808}, + {-0.030479,-0.126750}, + {-0.149463,0.291122}, + {1.059634,-0.087343}, + {-0.579570,0.637704}, + {-0.747178,-0.468939}, + {0.647099,-0.724797}, + {-0.223191,0.924383}, + {-0.337221,-0.601146}, + {-0.515588,0.209382}, + {-0.439052,-0.285641}, + {-0.461382,0.405431}, + {-0.342314,-0.077113}, + {-0.631056,-0.415190}, + {0.238351,-0.386171}, + {-0.862323,0.642213}, + {0.023490,1.420643}, + {-0.875054,-0.335857}, + {-0.501911,0.198525}, + {-0.610229,-0.615875}, + {-0.798574,0.715166}, + {0.822130,-1.270475}, + {-1.244082,0.455988}, + {1.012773,-0.052447}, + {1.371291,0.428342}, + {0.352000,-0.742200}, + {-0.239479,-0.204546}, + {-0.894340,-0.160308}, + {0.011754,-0.047223}, + {-0.665009,-1.202901}, + {-0.774045,-1.477797}, + {0.298235,0.642437}, + {0.281567,-0.363596}, + {-0.359115,0.641628}, + {0.457527,0.395590}, + {-0.613016,0.686037}, + {0.366476,-1.001394}, + {-1.256980,-0.267237}, + {-0.929750,0.866740}, + {0.450983,-0.179572}, + {-0.783167,0.315364}, + {0.373729,-0.263585}, + {-0.829264,1.092197}, + {-0.294844,-1.307715}, + {-0.382714,0.271065}, + {0.432171,1.321070}, + {1.193662,-0.601561}, + {0.441481,1.078067}, + {0.816584,0.272961}, + {0.550523,-0.150661}, + {0.184214,-0.219220}, + {-0.009063,-0.442284}, + {1.646675,-0.741609}, + {1.016200,0.837222}, + {-0.793906,-0.222885}, + {0.919271,0.064883}, + {-1.356202,0.423254}, + {0.049124,-0.191414}, + {-0.195965,0.184440}, + {1.121060,1.056448}, + {-1.033376,-0.124441}, + {0.347735,1.195392}, + {0.503386,0.384467}, + {0.000622,0.057254}, + {0.170387,-0.558950}, + {0.128132,0.079457}, + {1.004037,-0.526779}, + {0.385914,0.909700}, + {1.335021,-1.678956}, + {-0.288577,-0.895513}, + {0.565198,-0.882130}, + {0.225851,0.962253}, + {0.879317,-0.347095}, + {0.176626,0.994786}, + {-0.866639,-0.349720}, + {-0.671101,-0.515104}, + {-0.485501,0.483706}, + {-0.618060,0.335038}, + {0.041503,-0.588110}, + {0.111759,0.143271}, + {0.462091,-1.215689}, + {-0.745533,0.359722}, + {-0.258587,-0.704901}, + {0.274778,0.923238}, + {-0.004584,-0.433904}, + {-0.110584,0.522650}, + {0.310410,-0.005530}, + {-0.937176,-1.562305}, + {-0.827198,0.289808}, + {-0.698794,-2.184667}, + {-0.330698,-0.129384}, + {1.282239,0.020580}, + {0.367543,0.233161}, + {0.065772,0.245385}, + {-1.368919,-0.232512}, + {-0.022110,-0.434683}, + {0.989342,2.850177}, + {0.301916,-0.504838}, + {-0.199269,0.274472}, + {0.050557,-0.762571}, + {-0.439144,-1.131543}, + {-1.080251,-0.382884}, + {0.966876,-2.108684}, + {-0.843520,-0.663706}, + {0.898827,0.695593}, + {1.141696,1.743007}, + {-1.209097,0.920291}, + {-0.133004,-0.591750}, + {0.230189,-0.024491}, + {0.267833,-0.097969}, + {0.945771,-0.620059}, + {-1.927322,0.029121}, + {0.624278,-1.539738}, + {0.038578,0.956436}, + {-0.340126,0.630304}, + {0.615450,0.090583}, + {0.546216,-0.444248}, + {1.103206,-0.220818}, + {0.249552,-1.338686}, + {0.137988,-0.524542}, + {0.535324,-0.053403}, + {-0.312144,0.754749}, + {-0.305128,-0.570806}, + {-0.270710,-0.431734}, + {1.075527,-0.517887}, + {0.925849,-0.402164}, + {0.780606,-0.094631}, + {0.304430,-0.321345}, + {-2.161699,0.828282}, + {-0.074158,-0.677161}, + {-0.063345,-1.326582}, + {-0.309826,0.355096}, + {-0.276573,-0.413940}, + {0.647672,0.302474}, + {-0.232098,-1.147781}, + {0.120684,-1.621992}, + {0.955412,0.475249}, + {-1.220155,-0.114060}, + {1.336061,0.110965}, + {-0.643678,-0.340022}, + {-0.275077,-0.365716}, + {0.534379,-0.975696}, + {-1.015498,-0.567058}, + {-0.064751,-0.046544}, + {1.134877,-0.470992}, + {-1.008269,0.759255}, + {-0.144860,0.949311}, + {-0.732892,1.047155}, + {-1.535131,-0.961362}, + {-0.269558,0.444843}, + {0.059658,-0.187720}, + {0.035190,-0.221091}, + {-0.281704,-0.358197}, + {1.022722,0.075790}, + {-1.083448,-0.575743}, + {-1.302319,0.027091}, + {0.650458,1.349900}, + {-1.899117,1.012783}, + {0.181135,0.688259}, + {-0.202816,0.372898}, + {0.022705,1.006927}, + {0.407585,-0.837289}, + {0.002035,0.352033}, + {-0.356021,0.346572}, + {-0.617595,0.786143}, + {0.239147,-0.279550}, + {-0.088149,0.102956}, + {-0.145992,0.070007}, + {0.061313,-0.731353}, + {-0.584911,-0.334126}, + {-1.203326,0.593685}, + {-0.269043,-0.369218}, + {0.521335,-0.180848}, + {0.144528,0.438304}, + {0.735844,-0.087415}, + {0.843519,0.404185}, + {0.253477,0.233027}, + {0.286579,-0.892798}, + {0.017010,1.496329}, + {-0.282048,-0.432474}, + {-0.831781,-0.766073}, + {-0.339801,0.157388}, + {0.117625,-0.661367}, + {-0.133374,-0.349166}, + {-0.700496,-0.598886}, + {1.062019,-0.225486}, + {-0.844149,1.129804}, + {0.879032,0.843744}, + {-0.329666,0.330986}, + {0.186070,-0.855283}, + {-0.324321,-1.583881}, + {1.541431,-0.622636}, + {0.819195,-0.182278}, + {0.449811,-0.132524}, + {-0.888292,-1.515782}, + {-1.001516,-0.830254}, + {0.250502,-0.344122}, + {-0.187613,1.197694}, + {-0.529563,1.498822}, + {-0.076462,-0.133383}, + {0.650433,0.946105}, + {-0.483935,0.181802}, + {-0.723391,-0.925543}, + {-0.431870,-0.262836}, + {-0.422439,0.651529}, + {-0.782266,0.681568}, + {0.562754,-0.374426}, + {0.519622,0.043415}, + {-0.801116,1.075381}, + {-0.799244,-1.077313}, + {0.540276,1.027038}, + {-0.894727,-0.874882}, + {-0.749377,1.018981}, + {0.184097,-0.111914}, + {0.042289,-0.830370}, + {1.791222,-0.588920}, + {-0.047891,0.031348}, + {0.043701,-0.440535}, + {-0.840151,-0.568261}, + {0.323255,0.787932}, + {1.107241,0.054776}, + {0.060801,-0.856247}, + {-0.813509,0.705567}, + {-0.791245,1.459674}, + {-0.014035,-0.216140}, + {0.387915,0.037240}, + {0.642452,-0.129442}, + {-1.843821,-0.114364}, + {-0.035832,0.415178}, + {0.767540,0.263665}, + {-0.652285,-0.081054}, + {-1.285872,0.969226}, + {0.618911,0.255848}, + {-0.807479,0.457430}, + {1.064158,0.201941}, + {0.880563,0.083746}, + {-0.305545,1.351159}, + {0.904389,-0.245280}, + {-0.217445,0.025212}, + {-0.836006,-0.776473}, + {0.738829,1.044716}, + {0.284688,-0.270552}, + {1.085086,-0.533687}, + {0.671634,1.461351}, + {0.644988,-0.881924}, + {-0.894529,0.426442}, + {0.562243,0.029641}, + {0.404564,0.410895}, + {0.425106,-0.487737}, + {-0.640461,-0.176507}, + {-0.113150,-0.170049}, + {0.212635,-0.218543}, + {0.269008,1.255394}, + {0.432785,0.488759}, + {0.513129,0.005448}, + {0.099545,0.578849}, + {0.086904,-0.186066}, + {-1.555150,0.851275}, + {-0.032900,0.503340}, + {1.149826,0.331512}, + {0.073811,0.159585}, + {-0.223626,0.427643}, + {1.261585,0.418598}, + {0.601685,-0.525800}, + {-0.486987,-0.199185}, + {-0.059233,0.227470}, + {0.226861,0.459247}, + {-0.341422,-1.927231}, + {-0.171239,0.113076}, + {0.078549,1.096510}, + {-0.338355,-1.369953}, + {0.159905,-0.691937}, + {-0.307114,0.783536}, + {-0.566867,0.107976}, + {0.511947,-0.433910}, + {0.691441,-0.214146}, + {-0.603745,0.410150}, + {0.628406,1.315388}, + {0.785402,-0.016113}, + {0.897580,1.142371}, + {-0.523238,0.503762}, + {-1.709664,-0.720023}, + {0.458547,-0.008885}, + {-0.334689,-0.277679}, + {0.489018,-0.845080}, + {0.523348,0.669807}, + {-0.078580,0.679453}, + {0.434669,1.223368}, + {-0.046575,1.365787}, + {-0.280968,-0.687172}, + {-1.099810,0.666500}, + {-0.860152,-0.227991}, + {-0.330220,0.063645}, + {-0.469986,-0.845073}, + {-0.674068,1.048877}, + {0.455515,0.818142}, + {0.849858,-0.564687}, + {0.059095,-0.035666}, + {-0.223894,0.001953}, + {-0.067447,-1.792125}, + {1.605312,0.096682}, + {-1.475052,-0.104396}, + {-0.360386,-0.579824}, + {0.955123,1.157321}, + {-1.251963,0.038931}, + {0.370436,-0.992312}, + {1.371997,-0.487094}, + {0.015502,-0.447989}, + {-0.022840,-0.149928}, + {-0.664625,0.831535}, + {0.757109,0.066880}, + {-0.632931,-0.921457}, + {-0.231963,-0.193233}, + {0.777090,0.166369}, + {0.609395,-0.027552}, + {0.139106,0.541898}, + {0.942118,0.587904}, + {0.251157,-0.133831}, + {0.487019,0.189802}, + {0.457665,0.362136}, + {-0.424465,-1.249760}, + {0.581103,-0.376516}, + {0.510419,-0.590129}, + {1.037473,0.371550}, + {-0.466737,-1.004333}, + {-0.011938,0.537880}, + {0.547161,1.035422}, + {0.606423,-0.516887}, + {0.056961,1.039645}, + {0.477078,-0.559180}, + {-0.254626,-1.547132}, + {-1.133833,0.334869}, + {0.822161,0.621644}, + {-0.062360,-1.517223}, + {-0.703293,-0.420242}, + {0.317995,-0.825593}, + {0.736898,-0.336708}, + {0.771707,-0.083937}, + {-0.213908,0.357054}, + {1.824059,0.566277}, + {-0.196467,1.192675}, + {0.798056,0.142119}, + {-1.061991,0.018563}, + {-0.560025,0.370005}, + {0.454753,-0.180904}, + {-0.998511,0.325013}, + {-0.821580,-0.926141}, + {0.234012,-1.400391}, + {-0.674742,-0.704986}, + {-0.291769,1.030446}, + {-0.034057,0.722172}, + {0.696109,-0.239704}, + {0.209895,-1.576507}, + {-0.157850,0.127201}, + {0.466905,0.165965}, + {0.723092,-0.550305}, + {0.061567,0.078169}, + {-0.065939,0.569606}, + {-0.133807,0.770113}, + {0.393001,0.504942}, + {0.938111,-0.161913}, + {-0.597112,0.176459}, + {-0.258463,0.179758}, + {1.377765,-0.886022}, + {0.438264,0.736861}, + {-1.525573,0.999277}, + {-0.620013,0.193526}, + {0.575873,-1.214428}, + {-0.126903,0.386866}, + {0.530483,0.213737}, + {0.088473,-0.115534}, + {-0.212839,0.385450}, + {-1.321082,0.296746}, + {0.250801,0.116243}, + {-0.419752,0.580050}, + {0.941619,-1.096349}, + {0.016156,-0.012206}, + {0.223729,-0.513092}, + {0.431069,-0.090005}, + {-0.564370,0.121675}, + {0.207579,0.543705}, + {-0.569522,0.970283}, + {0.817061,0.419924}, + {-0.249714,0.263547}, + {0.715514,0.375579}, + {0.601764,0.078943}, + {0.912619,-0.785623}, + {-0.761932,0.233378}, + {0.345236,-0.083941}, + {0.256879,0.092192}, + {1.596566,0.978531}, + {0.233048,0.142618}, + {0.613216,-0.032437}, + {0.829523,-0.330173}, + {0.230123,-0.145399}, + {1.458398,1.026591}, + {0.430070,0.208748}, + {0.266168,0.118494}, + {0.539393,-0.277606}, + {-0.413476,-0.313748}, + {-0.369556,0.091205}, + {-0.326428,-0.843489}, + {0.876747,0.200702}, + {-0.649832,0.677572}, + {-0.132473,-0.408711}, + {-0.189154,-1.243630}, + {0.300237,-0.606909}, + {-0.727253,-1.333235}, + {0.491897,0.548159}, + {0.129355,1.663229}, + {-0.845514,-0.240228}, + {-0.375039,-0.919784}, + {0.911949,-0.218323}, + {0.235257,0.391849}, + {-0.246544,0.164098}, + {-0.231634,0.840406}, + {0.469351,-0.182122}, + {-1.743900,0.992432}, + {0.852607,-0.539289}, + {0.795267,-0.387124}, + {-0.185710,1.359292}, + {0.094303,0.079949}, + {0.642032,0.393244}, + {-0.155963,0.192307}, + {-0.348090,-0.970893}, + {0.392175,0.779526}, + {0.325050,-1.394403}, + {-0.089091,-0.577495}, + {-0.483524,0.167122}, + {-0.942847,0.788769}, + {-0.766730,-0.156880}, + {0.105378,0.028165}, + {-0.514349,0.215037}, + {0.561907,-0.681160}, + {0.734924,0.641628}, + {-0.145145,-0.683320}, + {0.393664,0.363491}, + {-0.681003,0.495072}, + {0.548521,-0.587928}, + {-0.058075,0.565056}, + {-0.107237,1.111712}, + {0.172436,-0.254398}, + {0.227540,-0.704157}, + {0.265045,-0.730209}, + {-0.869922,-0.474264}, + {-0.424165,0.721119}, + {-1.396401,-0.989424}, + {0.221913,-0.297296}, + {0.286758,-1.498876}, + {0.359150,0.152013}, + {0.112532,0.792481}, + {-0.518915,0.573917}, + {0.223169,-0.581940}, + {0.093260,-0.638841}, + {0.366104,0.042771}, + {0.417517,0.376103}, + {0.991679,-0.041029}, + {-0.060651,-0.884169}, + {-1.391370,0.124718}, + {1.114556,1.972558}, + {1.020741,-0.667193}, + {-0.025144,0.571881}, + {0.669084,-0.756397}, + {0.439585,-0.056732}, + {0.015199,0.202094}, + {0.566927,-0.613071}, + {-0.253624,0.616822}, + {-1.725917,0.187096}, + {-0.845198,1.593293}, + {-0.490629,-0.100485}, + {0.571619,-0.604498}, + {-0.018727,-0.145532}, + {-0.003540,0.086011}, + {-0.606243,-0.821588}, + {0.783794,0.540017}, + {1.102898,-0.136964}, + {0.216892,1.340393}, + {0.342599,-1.539241}, + {-0.575259,0.204180}, + {-1.488872,0.715385}, + {-0.221673,-0.742431}, + {-0.113355,0.020189}, + {0.213762,-0.406233}, + {-0.170202,-1.176525}, + {-0.131939,-0.115900}, + {0.612452,0.453876}, + {-0.743530,-0.455021}, + {0.466304,0.328039}, + {-0.258516,0.475259}, + {-0.516879,-0.380717}, + {-1.270884,-0.082694}, + {0.501087,-0.200590}, + {-1.445308,-0.484118}, + {0.650660,-0.526876}, + {-0.229810,-0.738966}, + {-0.802840,0.194996}, + {0.829044,-0.227303}, + {-0.054933,-0.287901}, + {0.285078,0.281370}, + {-0.363464,0.182841}, + {0.075010,-1.057872}, + {-0.589787,-0.269938}, + {1.178426,0.146037}, + {-0.073736,1.967197}, + {0.910865,0.370300}, + {-0.153322,0.395913}, + {1.123574,0.170210}, + {-0.882067,0.376414}, + {0.111788,0.783705}, + {-0.791890,0.455797}, + {0.724860,0.924557}, + {-1.174621,1.356142}, + {-1.081595,-0.106305}, + {-0.006296,-0.172133}, + {-0.122594,-1.407199}, + {-0.404103,0.582921}, + {-0.882765,0.122557}, + {0.094063,-0.110042}, + {1.335416,-0.733367}, + {0.464591,-0.575710}, + {-0.121591,-0.127096}, + {-0.062471,1.097518}, + {0.159503,1.027292}, + {-1.093872,-0.247750}, + {0.529288,-0.443974}, + {-0.136074,-0.048432}, + {0.556999,0.495463}, + {0.588577,0.128776}, + {0.462049,-0.451937}, + {0.353590,-0.723830}, + {0.204804,-1.625933}, + {0.092930,1.161258}, + {-1.224485,0.628751}, + {0.229420,-0.877564}, + {0.739953,-0.878338}, + {-0.892648,0.514262}, + {-0.544203,0.616829}, + {1.134951,-1.505910}, + {0.708691,0.176345}, + {-0.292243,0.137628}, + {-0.337737,-0.596135}, + {1.471883,0.535997}, + {-0.850951,0.121347}, + {0.243537,-0.589604}, + {-0.059771,1.176776}, + {-0.454490,0.804287}, + {0.070382,0.030761}, + {0.242788,0.176748}, + {-0.126759,0.129941}, + {0.030666,-0.850073}, + {1.875655,0.587808}, + {-0.161780,-1.784124}, + {-0.569807,0.916039}, + {-0.569185,0.072547}, + {-1.127872,0.026428}, + {-1.150343,1.487388}, + {0.720566,0.922631}, + {0.383465,-1.084402}, + {-1.237511,0.762091}, + {-0.099930,-0.928349}, + {-0.601861,-0.484212}, + {0.014186,0.985724}, + {0.396531,-0.374346}, + {0.370483,0.478921}, + {0.417636,0.285218}, + {0.144493,0.855940}, + {1.513194,-0.430838}, + {-0.286139,-0.974602}, + {-1.347122,-1.183399}, + {-0.109208,-0.834271}, + {-0.070154,-1.123663}, + {0.980670,0.398785}, + {1.504316,-1.491271}, + {0.365317,0.703937}, + {0.327227,-1.471393}, + {0.779325,-0.291336}, + {-0.813175,-0.633449}, + {0.201307,-1.315156}, + {-0.157624,0.806373}, + {1.101852,0.306818}, + {0.548022,0.618568}, + {0.914485,-1.093983}, + {-0.788237,1.330140}, + {0.204645,-1.260284}, + {0.708261,-0.487650}, + {0.831419,0.494045}, + {-0.479281,-0.174932}, + {0.274606,0.031707}, + {0.511466,1.479375}, + {-0.749887,0.138556}, + {0.094436,-1.604624}, + {1.701213,-0.021478}, + {1.273051,0.873564}, + {-0.564715,-0.604606}, + {0.576919,-0.577415}, + {0.854536,0.069007}, + {2.004698,-0.186701}, + {-1.020772,0.648632}, + {-0.474304,-0.256917}, + {0.280593,-0.442013}, + {0.609646,-0.099227}, + {-0.587909,-1.324509}, + {-0.478677,-0.380842}, + {0.992419,-0.833282}, + {-0.207837,0.203639}, + {0.504914,0.234515}, + {-0.266033,0.132612}, + {-0.242541,-0.095664}, + {-0.167233,-0.590706}, + {-1.276869,0.288847}, + {-0.312084,-0.687477}, + {0.271583,-0.587164}, + {0.515093,0.888483}, + {-0.886180,1.600277}, + {0.761687,1.283905}, + {-0.917327,-0.468507}, + {-0.255153,0.234853}, + {-0.698140,0.280238}, + {-0.173308,-0.549159}, + {1.163074,-0.136380}, + {-0.522856,-1.545376}, + {-0.250713,-0.577033}, + {0.127714,0.573650}, + {-0.619459,0.761195}, + {0.854662,-0.335280}, + {1.288629,-1.596849}, + {-0.259143,0.994771}, + {-0.089218,0.323881}, + {1.037082,-0.027840}, + {0.020579,1.366726}, + {-0.158254,0.495453}, + {0.551658,0.631316}, + {0.038543,-0.710163}, + {0.702737,-1.985090}, + {1.398746,-0.143418}, + {0.084599,-0.676724}, + {-0.015678,1.464065}, + {-0.034517,-1.102207}, + {-0.094801,-0.520467}, + {-0.203622,0.612699}, + {-1.132184,-0.715451}, + {-0.130513,0.631629}, + {-0.340655,0.517577}, + {-1.132617,-0.041877}, + {-0.913628,0.061052}, + {1.393766,-0.805041}, + {0.243021,-0.275513}, + {0.592899,0.812328}, + {-0.181057,0.511301}, + {-0.230935,0.289646}, + {-0.253628,1.248452}, + {-0.375765,-0.450903}, + {0.175142,-0.879180}, + {0.632521,0.051703}, + {0.714207,1.053456}, + {-0.848408,1.064349}, + {-0.233667,-0.270396}, + {0.383107,-0.240141}, + {0.507137,-0.249806}, + {-0.030230,-0.356838}, + {-0.578340,0.125787}, + {-1.095438,-1.281125}, + {0.471165,-1.473161}, + {-0.176499,-0.292983}, + {0.283998,-0.579375}, + {-1.456174,0.442805}, + {-1.091059,-0.554400}, + {0.325498,1.215230}, + {0.374914,-0.970670}, + {1.014939,0.866143}, + {-0.947639,0.514860}, + {0.945109,-0.393500}, + {-1.063523,-0.388257}, + {0.026398,-0.066196}, + {-0.485485,0.511262}, + {0.171215,-0.511392}, + {-1.389303,-0.782160}, + {0.119798,-0.872876}, + {-0.380890,-0.950004}, + {-0.454074,0.379206}, + {-0.150043,-0.133012}, + {0.209178,0.071162}, + {0.194253,-0.916240}, + {-0.696335,-1.251679}, + {-0.227848,0.695565}, + {-0.243941,-0.084309}, + {-0.950502,-0.635794}, + {-0.290364,0.216578}, + {-0.751428,-1.213585}, + {0.460577,-0.149599}, + {0.324715,0.166467}, + {-0.614041,-1.173885}, + {-0.142238,-0.336419}, + {-1.471493,-0.936717}, + {1.646690,0.184204}, + {0.225939,0.300060}, + {-0.128450,0.389350}, + {0.727421,-0.454894}, + {-0.435942,0.105538}, + {1.205978,0.100260}, + {-1.315567,0.308342}, + {0.754698,1.164033}, + {-0.107954,-0.172451}, + {-1.047203,1.015069}, + {-1.389840,-0.266683}, + {0.547945,0.616535}, + {-0.434114,0.849453}, + {0.071122,-0.277037}, + {-0.050800,0.284288}, + {-0.165278,0.009121}, + {-0.219966,-0.098418}, + {0.198508,0.353809}, + {-0.581533,0.448088}, + {-1.784726,-1.161621}, + {-0.604861,-0.274908}, + {0.183057,0.051142}, + {-0.317797,0.278299}, + {-0.850828,-0.630589}, + {0.104573,0.285301}, + {0.105866,0.698211}, + {-0.180861,-0.862928}, + {0.475285,-0.838884}, + {0.532029,-1.353946}, + {-0.605465,1.385299}, + {0.218651,-1.214866}, + {2.160576,-0.144045}, + {0.168189,1.107664}, + {0.299490,-0.176740}, + {-0.396194,0.210866}, + {-0.125884,-0.224011}, + {0.853672,0.228498}, + {-1.748178,-1.154824}, + {0.367379,0.232790}, + {-0.181073,-0.618603}, + {-0.789253,-0.907517}, + {0.589666,0.083053}, + {0.205531,-0.292960}, + {-1.755342,-0.647660}, + {1.320671,0.483386}, + {0.751741,-0.776958}, + {0.895885,0.848563}, + {0.581838,-0.625789}, + {-0.172855,-0.093791}, + {1.730868,-0.185926}, + {-0.859963,-0.199970}, + {0.619064,-1.075834}, + {-0.751592,-0.307590}, + {0.383126,0.058031}, + {0.532780,-0.855648}, + {-0.809753,0.598019}, + {0.523282,-0.210299}, + {0.092903,0.620162}, + {-0.841020,-0.066447}, + {-0.888254,0.244874}, + {-0.225321,-0.358074}, + {-0.523697,0.142496}, + {-0.211782,0.560938}, + {0.850574,-0.508918}, + {-0.016610,0.930612}, + {-0.170152,-0.661760}, + {0.379929,0.104789}, + {-0.781353,0.502040}, + {1.259342,-0.010921}, + {-0.135465,0.122281}, + {0.166991,-0.732114}, + {0.955615,-0.124115}, + {1.109480,-1.575200}, + {0.054263,-0.253799}, + {0.862238,-1.307799}, + {0.016864,0.606661}, + {0.483294,-0.230111}, + {1.663652,0.729566}, + {-0.611224,-0.653048}, + {-1.924986,-0.524554}, + {-0.603593,-0.245722}, + {0.878295,0.316568}, + {0.052504,-1.019809}, + {0.512341,0.171092}, + {0.774275,-0.490241}, + {-1.055341,0.751595}, + {-1.688396,1.987387}, + {-0.902226,-0.336708}, + {-0.433191,-0.099476}, + {-0.920050,1.128085}, + {-1.100896,0.374304}, + {0.388182,1.245751}, + {0.280377,0.511610}, + {-0.344954,-0.349710}, + {0.567448,-0.222402}, + {-0.230275,0.053800}, + {-1.450383,-0.655175}, + {-0.140144,0.256758}, + {-1.291789,0.096818}, + {-0.626539,-1.194533}, + {0.550245,-0.702534}, + {0.445211,0.411623}, + {0.860433,-0.689320}, + {0.660554,-0.055735}, + {0.924256,-0.222386}, + {1.467143,-0.039871}, + {0.423189,-0.130886}, + {-0.157257,-0.253543}, + {0.054858,0.012374}, + {0.004722,-0.181412}, + {1.204185,-0.360653}, + {0.683748,-1.078223}, + {0.114180,0.204924}, + {-0.209641,0.052979}, + {0.590545,-0.623896}, + {0.855198,0.077004}, + {-0.183976,0.390004}, + {0.562404,-0.634269}, + {0.638455,0.770984}, + {0.539077,0.058849}, + {1.143837,-0.619012}, + {0.379303,0.131913}, + {0.694961,-0.856962}, + {1.031972,-0.095841}, + {-0.414443,-0.130743}, + {-0.530670,-1.027409}, + {0.532992,0.593755}, + {-0.302745,0.408516}, + {-0.163969,-0.009049}, + {-0.937897,0.569411}, + {0.236075,-0.118090}, + {0.367388,0.920104}, + {-0.228411,-0.020714}, + {0.450075,-1.376905}, + {0.672742,0.878365}, + {0.272849,0.717775}, + {0.332603,-0.084299}, + {-0.123209,0.546980}, + {1.599618,-0.734019}, + {-1.207434,-1.476439}, + {0.126576,0.023655}, + {1.085747,0.148754}, + {-1.156599,-0.185243}, + {1.100054,-0.369996}, + {-0.075626,-0.451481}, + {-0.905205,-0.526888}, + {-0.401543,-0.591241}, + {-0.114917,-0.419392}, + {0.538569,-0.347340}, + {0.301107,-0.265479}, + {-1.341466,-0.843870}, + {-1.296856,-0.888799}, + {0.498068,-0.039892}, + {-0.390159,0.729649}, + {1.171404,1.213731}, + {-0.539536,-0.533475}, + {-0.471922,-0.364102}, + {0.204217,-0.768619}, + {0.692290,-0.199941}, + {0.682400,2.105154}, + {-0.663000,0.094841}, + {1.190975,1.491593}, + {-0.756086,0.111941}, + {0.061172,0.566461}, + {-0.048715,0.143162}, + {0.311618,-0.313990}, + {0.310462,0.386462}, + {0.466845,0.225448}, + {0.572650,-1.340082}, + {-0.824610,0.849502}, + {0.746589,-0.306592}, + {1.392851,0.308872}, + {0.506791,0.509163}, + {-1.012017,0.338057}, + {-0.425655,0.744355}, + {-0.177273,-1.268582}, + {1.931480,-0.463406}, + {-1.005768,-0.526282}, + {-0.554007,0.732979}, + {0.203002,1.016918}, + {-0.343580,0.392522}, + {0.671733,0.125681}, + {-1.033077,-0.210715}, + {-0.047144,-1.546564}, + {0.263303,-0.350745}, + {-0.790377,-0.556737}, + {0.347599,-0.244305}, + {-0.267536,-0.557566}, + {-0.914996,-0.772484}, + {-1.415204,0.476464}, + {0.636720,0.271362}, + {-0.160421,-0.202122}, + {0.256900,-0.971435}, + {-1.341629,-1.340080}, + {-0.996941,-0.175151}, + {-0.275634,-0.620064}, + {0.277806,1.181420}, + {0.257685,-0.644443}, + {0.972835,0.904661}, + {-0.069391,0.979036}, + {0.033424,1.180349}, + {1.601465,-0.899762}, + {-1.159530,-0.513358}, + {0.659085,-0.351394}, + {-0.778353,0.391627}, + {-0.732485,-0.817011}, + {0.160577,-0.745746}, + {-1.425300,0.587289}, + {0.466481,0.028874}, + {0.257711,-0.211149}, + {0.360215,0.446898}, + {0.160066,-0.290423}, + {-0.826929,0.104860}, + {-1.006527,1.418773}, + {0.086332,-0.509908}, + {-0.775915,-0.277061}, + {-0.568888,-1.679972}, + {-0.636057,0.987827}, + {-0.308029,0.307089}, + {0.717339,-0.888667}, + {-0.398455,0.051524}, + {1.624831,-0.428584}, + {-0.995265,-0.949414}, + {-0.574018,-0.660601}, + {0.821218,0.649943}, + {-0.066875,-0.742312}, + {-1.042409,-0.345767}, + {-0.694825,-0.086997}, + {0.892671,0.304710}, + {1.463746,1.347942}, + {-0.794659,-1.465119}, + {0.093978,-1.391761}, + {-0.289519,0.622867}, + {-0.038301,-0.287028}, + {0.225742,-0.501018}, + {-0.619576,1.728619}, + {-0.078345,0.521977}, + {0.410487,0.768793}, + {0.898314,-1.505122}, + {0.982556,-0.321653}, + {-0.156688,0.426663}, + {0.914887,0.476645}, + {-0.661801,-1.162848}, + {-0.834380,-0.187532}, + {-1.033042,-0.657361}, + {-0.258103,-0.279691}, + {-0.077377,-0.617789}, + {-0.067528,-0.795636}, + {0.697166,1.250363}, + {0.612638,0.426930}, + {0.414738,0.159230}, + {0.012610,1.110968}, + {0.088986,0.174993}, + {-0.701699,-0.585427}, + {0.005547,-1.001461}, + {-0.499370,-0.219090}, + {-0.409379,-1.410114}, + {0.678592,1.914758}, + {-0.333608,0.094601}, + {1.473032,-0.764558}, + {0.234098,0.682258}, + {-0.764432,0.203001}, + {-0.286558,-0.776227}, + {0.015636,-0.427128}, + {-0.829637,-0.587309}, + {0.126426,-0.046741}, + {-0.999990,-0.782663}, + {-1.231364,-0.812437}, + {-0.064503,-0.714886}, + {-0.917891,0.770603}, + {-0.586602,0.007693}, + {0.403223,0.712644}, + {-0.008010,-0.902316}, + {0.357368,0.403032}, + {0.138081,-0.123957}, + {-0.283588,0.063573}, + {-0.309539,0.658890}, + {-0.406599,0.958829}, + {-0.708649,-0.300691}, + {-0.292065,0.281290}, + {0.654537,0.474224}, + {-0.708419,-2.474893}, + {-0.285932,0.822338}, + {-1.107321,-0.186473}, + {-0.369601,-0.659469}, + {0.617200,-0.315311}, + {0.185574,-1.073683}, + {-1.332198,0.646972}, + {1.358647,-0.343407}, + {0.423292,0.187194}, + {-1.766024,0.026657}, + {-0.511465,-0.056579}, + {-0.202844,-0.666845}, + {-0.061273,0.149654}, + {-0.160488,0.253664}, + {-0.336715,0.856404}, + {-0.211530,0.286960}, + {-0.096027,-0.438433}, + {-0.123255,0.410071}, + {-0.588208,0.110857}, + {-0.160651,-0.237762}, + {0.178849,-0.486365}, + {0.523072,-0.604543}, + {-0.481635,0.822471}, + {-1.427760,1.475099}, + {-0.015193,0.056991}, + {-0.020920,-0.628689}, + {-0.662725,-0.334047}, + {-0.029955,0.271499}, + {-0.549856,0.193420}, + {-0.591084,-0.460397}, + {-0.847475,0.176087}, + {0.134666,1.535474}, + {-0.404517,1.774605}, + {-0.012591,-0.025081}, + {0.304635,0.349055}, + {1.032524,-1.067513}, + {-0.654717,-0.443237}, + {0.354067,-0.906890}, + {0.645732,-0.808004}, + {0.708526,0.422639}, + {0.251741,-0.199950}, + {-0.343301,-0.372559}, + {0.521966,0.293809}, + {0.596219,1.459711}, + {-0.911900,1.090172}, + {-0.180459,-0.242334}, + {0.043777,-0.308086}, + {0.892502,-0.297267}, + {0.069414,0.548758}, + {0.106618,0.638483}, + {0.075271,0.328460}, + {-0.453758,0.763184}, + {0.873083,-0.518432}, + {-0.165817,-0.466517}, + {-0.777957,0.195349}, + {-1.045421,-0.135624}, + {1.085889,0.201413}, + {0.045273,0.861950}, + {-0.380225,-0.540513}, + {1.234628,-0.061586}, + {0.388294,0.042646}, + {-1.184967,-0.334204}, + {-0.431482,0.137044}, + {-0.260536,-0.255510}, + {0.676812,-1.129665}, + {0.060250,-0.101155}, + {0.177268,0.504934}, + {0.447116,0.913391}, + {-0.188139,0.308266}, + {-0.461521,-0.562924}, + {0.803880,-0.403873}, + {-0.719793,0.283642}, + {-0.274215,-1.343825}, + {-0.176226,-0.931566}, + {-0.456589,0.988810}, + {0.069589,-0.085009}, + {0.498388,0.661623}, + {1.764237,-1.921451}, + {-0.520769,-0.283433}, + {-0.863480,-0.545718}, + {0.164524,-1.140960}, + {0.391842,1.388107}, + {-0.211966,-0.760097}, + {0.882238,0.726142}, + {-0.494735,-0.147398}, + {-2.130035,-0.271010}, + {-0.091024,-0.085686}, + {-1.139421,0.482023}, + {-1.313630,0.069675}, + {-1.013372,-0.030979}, + {-0.010000,-0.309232}, + {0.015798,-0.454868}, + {-0.021211,1.170452}, + {0.733800,0.657433}, + {-0.564449,-1.202041}, + {-1.438305,-0.225477}, + {0.737473,0.034093}, + {-0.124011,0.017096}, + {-1.054430,-0.490369}, + {0.735048,-0.170665}, + {-0.603735,-0.398150}, + {-0.291035,-1.773649}, + {-0.230866,0.024045}, + {0.565597,-0.230533}, + {0.341789,1.338716}, + {-0.174622,-0.278944}, + {-0.235408,-1.074645}, + {0.457028,0.409652}, + {0.792267,0.082481}, + {0.739603,-0.207675}, + {-0.446134,0.728303}, + {0.271171,0.646737}, + {-0.080809,-0.597354}, + {-0.333713,0.650210}, + {-0.058765,-0.037884}, + {0.313115,0.179699}, + {1.061631,0.029643}, + {-0.718130,-0.867332}, + {0.161520,-0.373053}, + {0.115240,1.018624}, + {-1.401570,-1.811324}, + {-0.389145,1.565653}, + {0.275466,0.553665}, + {1.366925,-0.550564}, + {-0.653708,-0.492507}, + {0.639135,0.108763}, + {0.502588,1.583952}, + {-0.959099,1.271320}, + {-1.233735,0.101634}, + {-0.740340,-0.248321}, + {-0.892102,0.109857}, + {-0.345742,0.073819}, + {0.031049,-0.115825}, + {0.366890,1.202980}, + {-0.555795,0.858266}, + {-0.789748,-0.582250}, + {-0.684044,-0.073831}, + {0.431366,-0.264677}, + {-0.251106,-1.079765}, + {-0.048445,-0.527598}, + {-0.257022,0.807331}, + {0.604370,0.108487}, + {1.193560,-0.504331}, + {0.887205,0.223083}, + {0.165226,0.181709}, + {-0.694678,0.305534}, + {-0.539173,-0.699254}, + {-0.962349,-2.031904}, + {0.437054,0.981274}, + {0.472644,0.330887}, + {0.577628,0.332816}, + {-0.547620,-0.333722}, + {-0.651263,2.080435}, + {-0.084852,0.079156}, + {-0.760344,0.805795}, + {0.499899,-1.470379}, + {0.351524,0.328809}, + {0.080884,-0.587359}, + {-0.553406,-0.169034}, + {0.039425,-0.538786}, + {0.858310,-0.140728}, + {0.472670,-2.246532}, + {-0.368775,-0.323302}, + {0.090378,-1.378154}, + {-0.550284,0.507064}, + {0.539224,0.603538}, + {-0.000691,-1.727633}, + {-2.003468,-0.661973}, + {0.337784,0.651070}, + {0.162028,0.567114}, + {-0.067531,0.050097}, + {0.182332,-0.719324}, + {-1.474951,0.685114}, + {0.860035,0.235277}, + {0.673692,-0.745029}, + {0.163864,0.823959}, + {0.712323,-0.579740}, + {0.133995,-0.852349}, + {-0.093329,-0.759119}, + {0.285367,1.120202}, + {0.187071,-0.415625}, + {0.522904,0.451246}, + {0.757153,0.243609}, + {0.184169,1.090276}, + {1.479287,-1.344383}, + {1.487636,0.349166}, + {-0.095602,0.755634}, + {-0.112605,0.207789}, + {-0.441569,-0.286210}, + {-0.409203,1.547667}, + {-0.546806,-1.646303}, + {1.074615,1.044879}, + {-0.434627,-0.525903}, + {-0.242109,1.227347}, + {-1.319122,0.275312}, + {-0.545729,0.662611}, + {0.343853,0.157724}, + {0.475258,0.149229}, + {0.253291,1.076345}, + {-0.570123,-1.272515}, + {-0.186610,0.269897}, + {-0.189057,1.120619}, + {-0.383515,0.226731}, + {0.924259,-0.098409}, + {-0.080234,-0.649794}, + {-0.726238,-1.386272}, + {0.806442,-0.219207}, + {0.024879,0.089845}, + {0.913936,-0.796274}, + {2.617004,-0.280960}, + {-0.718628,-0.178037}, + {-0.428151,0.215331}, + {-0.073535,-0.606667}, + {0.254862,0.639116}, + {1.488909,0.267331}, + {-0.583632,-0.698212}, + {1.157905,0.856185}, + {0.267413,0.309240}, + {-0.460028,0.787779}, + {0.527296,0.364704}, + {0.341824,-1.132002}, + {0.758196,0.233237}, + {0.556152,0.517602}, + {0.066575,-0.831919}, + {0.517617,-1.003521}, + {-0.448421,0.717349}, + {0.254943,0.001274}, + {-0.525383,-0.477606}, + {1.091618,0.208053}, + {-0.123831,-0.791330}, + {0.334160,0.226185}, + {-0.698222,0.706486}, + {-0.032881,0.242425}, + {-0.281343,0.751205}, + {0.632088,-1.214175}, + {0.073367,-1.174985}, + {-0.324776,-0.120150}, + {0.164874,0.111320}, + {0.609620,-0.439175}, + {0.031007,0.000219}, + {1.028218,-0.287004}, + {1.158747,0.853374}, + {-1.199486,-0.275183}, + {-1.283849,1.091030}, + {0.561488,-0.120327}, + {-0.287822,-0.044037}, + {-0.968829,-0.687665}, + {1.352591,-0.243109}, + {-1.373144,0.694374}, + {-0.378153,0.037286}, + {-0.802495,0.406625}, + {-0.041211,-0.643437}, + {0.185728,-0.003745}, + {-0.305742,-0.281991}, + {0.387514,-1.518495}, + {-0.242799,0.206669}, + {-0.669666,-0.599745}, + {-0.141009,-2.414735}, + {-0.003491,-0.033090}, + {-0.289344,-0.418806}, + {0.520367,0.013915}, + {0.555563,-1.274973}, + {-0.324143,0.296732}, + {-1.457603,0.238373}, + {0.410639,0.101798}, + {-1.012753,-0.935328}, + {0.899841,0.309905}, + {0.127096,-0.954350}, + {0.106654,1.147259}, + {-0.355125,-0.287927}, + {-1.547840,-0.332855}, + {-0.733110,0.032549}, + {-0.271676,0.273160}, + {-0.415254,-1.088883}, + {0.067924,-1.032075}, + {0.476029,-0.014800}, + {-0.003191,-0.439740}, + {-0.798743,0.822659}, + {0.883440,0.479619}, + {-1.455205,-0.328712}, + {0.775377,0.211114}, + {1.220351,0.695741}, + {0.452471,1.035777}, + {0.341504,-1.320770}, + {-0.611155,0.468035}, + {0.908185,0.273328}, + {0.292692,-1.200411}, + {-0.033289,-1.174946}, + {0.994273,-0.733959}, + {0.214130,0.413516}, + {0.274615,-0.372335}, + {1.346686,-1.437341}, + {-0.197733,-0.578892}, + {0.149638,-0.107375}, + {-0.339736,0.034751}, + {-0.338912,0.066107}, + {0.750437,0.078081}, + {-1.049538,0.591718}, + {-0.041805,0.895005}, + {-1.095430,0.700039}, + {-0.235200,0.094713}, + {0.065897,0.602921}, + {0.755398,-0.108273}, + {1.091147,0.071925}, + {0.228578,-0.294732}, + {-0.584694,-0.554632}, + {-0.078499,0.146121}, + {-0.915751,-0.799416}, + {-0.365473,0.373294}, + {-0.531644,-0.071814}, + {0.721813,0.581123}, + {-0.110709,0.244037}, + {0.199982,1.816332}, + {0.564345,1.371369}, + {0.467000,1.041223}, + {-0.686056,0.372524}, + {0.104741,-0.231289}, + {0.409822,-0.375921}, + {0.031726,-0.309260}, + {1.183292,0.898475}, + {-0.493938,-0.680656}, + {0.890296,0.420048}, + {0.070555,-0.613145}, + {-0.022719,0.779646}, + {1.421551,-0.488215}, + {-1.226503,1.639620}, + {-0.306046,0.416864}, + {-0.696823,0.344132}, + {-0.143656,1.441148}, + {-0.689809,-0.700984}, + {0.463316,0.449139}, + {-1.364012,0.198649}, + {0.449165,0.742472}, + {-0.486011,-1.473443}, + {0.500896,0.833914}, + {-0.622554,-0.239606}, + {1.189831,-1.242437}, + {1.151693,-0.330836}, + {0.920582,-0.666624}, + {-1.224090,-1.875929}, + {-1.092502,-0.769761}, + {-0.262561,-0.202329}, + {0.431854,1.719011}, + {-0.428703,-0.207687}, + {0.564636,0.288137}, + {-0.667355,0.277334}, + {0.180266,0.623707}, + {-0.315467,-0.069400}, + {-0.601639,-0.462335}, + {-0.948292,-0.538306}, + {-1.253119,-0.336230}, + {-0.049082,0.253962}, + {-0.451911,0.428742}, + {0.736800,0.882449}, + {-0.412044,0.366809}, + {-0.467545,-1.006095}, + {1.008279,1.350596}, + {-0.359243,1.473972}, + {0.331398,-0.803076}, + {-0.297361,-0.463851}, + {0.201236,-0.107912}, + {0.239863,0.923164}, + {-0.353475,0.650233}, + {0.384891,0.803903}, + {0.302545,1.670567}, + {0.799741,0.176856}, + {-0.024317,0.120099}, + {0.008041,-0.350004}, + {0.230942,0.570515}, + {-0.132010,0.455897}, + {-0.263291,-0.539349}, + {-0.645935,0.218008}, + {-0.463458,0.613702}, + {0.243487,1.705323}, + {-0.868175,1.548390}, + {-0.227668,1.410199}, + {0.658615,0.988933}, + {-1.447789,0.664133}, + {0.798315,0.707355}, + {0.425196,-1.360819}, + {-0.135508,-1.272751}, + {0.647140,0.224335}, + {1.161476,0.319277}, + {-0.480896,0.374320}, + {1.878285,0.118100}, + {-0.211065,2.614610}, + {0.436903,-0.128683}, + {1.200507,-0.109365}, + {-0.119335,-0.098252}, + {0.589978,0.683516}, + {-0.940828,1.101724}, + {-1.549157,0.580937}, + {-0.045247,1.021449}, + {0.032804,-0.767668}, + {0.999415,-0.176564}, + {-0.273115,-1.412497}, + {0.167989,-0.295090}, + {-0.036130,-0.505037}, + {0.340076,-0.586571}, + {-0.911702,0.260780}, + {-0.738639,-1.333492}, + {0.734417,-1.151579}, + {-1.217327,-0.926407}, + {0.231592,0.190441}, + {0.737205,-0.440307}, + {0.438334,-0.481113}, + {0.415552,0.334575}, + {0.720010,0.454014}, + {-0.802826,-0.345235}, + {-1.888756,0.673207}, + {-0.545520,-0.182574}, + {1.213482,0.417727}, + {-1.244954,0.421645}, + {-0.259205,-0.972422}, + {-0.804418,0.298643}, + {-0.497450,-1.013039}, + {-0.363112,-0.066604}, + {-0.295601,0.914620}, + {1.021939,-0.017453}, + {0.680981,0.298866}, + {1.107544,0.912255}, + {0.209341,0.491702}, + {1.108210,0.582607}, + {-1.014248,-0.037100}, + {0.258361,0.684969}, + {1.045870,-0.304365}, + {-0.871056,0.100909}, + {0.823420,-0.126928}, + {-1.214117,0.314406}, + {0.871430,0.118769}, + {-0.231277,0.241207}, + {0.035972,0.285960}, + {-0.742023,0.505129}, + {0.254087,0.341223}, + {0.454655,-0.525507}, + {0.755748,-0.462112}, + {0.587311,0.633949}, + {-1.442459,0.796037}, + {-0.318407,-0.290317}, + {-0.527692,-0.825944}, + {0.971368,-0.736664}, + {0.229420,1.203638}, + {-0.736167,-1.347227}, + {1.412800,0.828552}, + {0.740372,-0.240037}, + {0.876093,-1.017553}, + {-1.210328,0.107513}, + {1.137077,0.416858}, + {-0.750964,-0.268489}, + {-0.489146,-0.819406}, + {0.703970,-0.019085}, + {-0.301573,0.768771}, + {-0.280863,-0.923373}, + {-0.372715,0.726574}, + {0.399350,1.779629}, + {-0.254864,-0.001700}, + {0.357948,1.923558}, + {0.853556,-0.006690}, + {0.509726,0.496630}, + {-0.858094,-1.471612}, + {-1.728564,1.392049}, + {0.623779,-0.300334}, + {-0.675676,-0.167689}, + {-0.849742,-0.641322}, + {0.697436,-0.283774}, + {-0.275413,-0.855216}, + {0.109529,-1.411846}, + {-0.609845,1.742109}, + {0.172157,0.641408}, + {0.021837,0.465026}, + {-0.022089,-1.116902}, + {0.964458,0.032398}, + {0.532234,0.444177}, + {1.296815,-0.784017}, + {0.749398,0.180579}, + {0.574044,-0.467364}, + {-0.838701,-1.398614}, + {0.129156,0.516463}, + {-1.055356,-1.190214}, + {0.528734,-0.367550}, + {0.797226,0.908928}, + {-0.050036,0.414600}, + {-1.125256,-0.572235}, + {0.346222,0.074931}, + {-0.538717,-0.265686}, + {-0.056401,0.092578}, + {-0.207907,-0.019935}, + {1.012684,0.194750}, + {-0.367511,-0.884469}, + {0.107956,0.421098}, + {-0.130369,-0.206243}, + {-0.422989,0.053730}, + {0.242778,0.306604}, + {1.008636,-1.384316}, + {0.333947,0.589110}, + {-0.676884,0.681691}, + {0.948866,0.105958}, + {0.426000,0.672980}, + {-1.064013,0.336557}, + {-0.240377,0.553604}, + {-1.066478,-0.727211}, + {-0.640961,-0.431194}, + {-0.047056,0.430286}, + {1.455127,0.086339}, + {1.044019,0.478455}, + {-0.476166,0.241834}, + {0.380861,-1.272487}, + {-0.346503,-0.477271}, + {0.130709,0.817365}, + {-0.985777,-1.207054}, + {-0.046189,-1.202671}, + {-0.330047,0.026048}, + {-0.239273,1.694012}, + {-0.003318,-0.758511}, + {0.329162,-0.169705}, + {-0.474235,-0.351765}, + {0.503979,1.428228}, + {0.554457,0.574828}, + {-1.434442,-0.919440}, + {-0.451345,0.194554}, + {0.521378,-0.954107}, + {0.200849,0.335852}, + {-0.124435,0.284194}, + {-0.895518,-0.304695}, + {0.301791,0.348402}, + {0.093200,-1.526336}, + {0.633977,0.922629}, + {0.135976,-0.420617}, + {0.232458,-0.359167}, + {0.716139,0.072091}, + {0.254796,-0.013268}, + {-0.379655,-0.585246}, + {-0.022477,0.395561}, + {-1.191544,-0.383859}, + {1.447703,-0.326901}, + {1.032686,1.916231}, + {-0.883760,0.132351}, + {0.797983,0.389918}, + {0.690284,0.427680}, + {-0.500221,-0.126779}, + {-0.347322,1.756772}, + {0.199207,0.321965}, + {1.155876,-0.872054}, + {0.930258,-0.737929}, + {0.355776,0.125540}, + {0.111132,-0.084686}, + {-1.765447,-0.399887}, + {-0.484057,-0.693399}, + {0.164002,1.979783}, + {0.861997,0.458612}, + {1.264516,0.761647}, + {-0.265837,0.631914}, + {1.055233,0.348404}, + {-1.092578,-1.237799}, + {0.095743,-1.847219}, + {-0.335968,-0.005423}, + {-0.404703,0.532334}, + {-0.681848,-0.884532}, + {-1.117062,-1.755286}, + {-0.757974,-0.504821}, + {-0.349785,0.132151}, + {0.770082,0.883966}, + {-0.583158,-0.064996}, + {-1.505933,0.375539}, + {0.417048,0.888212}, + {0.276252,-0.045163}, + {-0.424762,-0.615027}, + {-0.365226,-0.268774}, + {0.618845,-0.605848}, + {0.164242,-0.422652}, + {0.645703,0.576558}, + {0.709919,0.591569}, + {0.666594,-0.737500}, + {0.026753,0.073156}, + {-0.021352,-0.729128}, + {0.909815,-0.255206}, + {-0.589314,-0.428360}, + {0.632534,-0.568628}, + {0.261934,-1.385056}, + {0.119414,0.325016}, + {0.805002,-1.770542}, + {0.277957,-0.422711}, + {0.741012,-1.257607}, + {1.212983,1.441817}, + {-0.765914,0.535380}, + {0.317519,-0.080034}, + {-0.338720,0.031978}, + {0.437849,0.750522}, + {0.047748,-0.215083}, + {-0.962192,-0.546992}, + {-0.645064,0.921583}, + {-0.551719,0.389382}, + {0.105114,-0.340749}, + {-0.310464,-1.039947}, + {0.161271,0.002407}, + {-0.846793,-0.332475}, + {0.085515,-0.070405}, + {0.516329,0.565764}, + {-0.035842,-1.577365}, + {-0.663475,-0.556161}, + {0.282857,0.891555}, + {-1.157957,0.323517}, + {0.468238,0.244984}, + {-0.001649,-1.302923}, + {-0.138291,0.749416}, + {0.078580,1.089354}, + {0.049946,-0.266946}, + {0.138307,-0.213026}, + {-0.398241,0.031845}, + {-1.097927,0.485306}, + {-0.228563,0.686991}, + {1.497539,0.916258}, + {0.779815,-0.813548}, + {-0.470301,-0.251974}, + {0.471512,1.453454}, + {-0.334489,-0.584985}, + {-0.471259,-1.117006}, + {0.399544,-0.900880}, + {0.372172,0.255576}, + {-0.107049,-0.126052}, + {0.408528,-0.020332}, + {0.284764,0.268221}, + {-0.298182,-0.221228}, + {-1.686760,0.052717}, + {-0.036532,0.036560}, + {-0.523159,-0.734161}, + {-1.978600,-0.302538}, + {-0.584814,-0.405386}, + {-0.741486,0.753370}, + {-0.040990,-0.509271}, + {-0.541529,-0.386237}, + {0.566418,0.037714}, + {0.151225,0.807270}, + {0.189559,-0.703980}, + {-0.079181,-0.363765}, + {-0.031324,-1.081530}, + {0.083723,-0.843167}, + {0.221127,0.064046}, + {-0.427889,0.022969}, + {0.139107,0.082158}, + {-0.086705,1.011836}, + {0.342143,0.246917}, + {0.207554,0.133077}, + {-0.080966,1.046769}, + {-1.059233,-1.085633}, + {-0.356010,0.718178}, + {-0.577859,-0.109375}, + {0.542744,1.108480}, + {-0.876346,-0.752113}, + {1.300557,-0.250276}, + {-1.010939,1.119039}, + {0.250270,-0.805066}, + {-0.711292,-0.052695}, + {-0.272900,0.801570}, + {-0.129894,-1.472325}, + {-0.059291,0.042281}, + {0.343083,0.256834}, + {0.652360,1.649133}, + {-0.441827,0.270447}, + {-0.338878,0.306703}, + {-0.533263,-0.367020}, + {-0.251497,-0.091588}, + {-0.288078,-0.953882}, + {-0.687001,1.500250}, + {-0.145605,-0.885543}, + {-0.295624,0.364480}, + {-0.773724,0.838420}, + {-0.755309,-0.637771}, + {0.140479,0.139850}, + {0.164407,-0.946375}, + {0.334796,0.474215}, + {-0.108846,0.443189}, + {-0.315848,-0.562709}, + {1.146425,-0.086577}, + {1.422925,1.452282}, + {0.528118,1.090295}, + {0.142858,-1.517183}, + {0.089292,-1.030106}, + {1.868715,-0.729473}, + {-0.847120,1.530669}, + {-0.619504,-0.077095}, + {0.013841,0.239227}, + {0.358968,-0.495570}, + {0.529144,-0.319802}, + {-0.237481,0.008175}, + {-0.949545,-1.524610}, + {-0.764478,1.202526}, + {-0.754071,0.211168}, + {0.726948,-0.350558}, + {-0.383736,-0.722571}, + {-0.531464,0.251220}, + {-0.215829,0.489119}, + {-0.673253,0.780101}, + {-0.425690,0.571457}, + {-0.591886,-0.066992}, + {-1.591411,-0.156612}, + {0.832392,-2.183463}, + {0.089291,0.262270}, + {0.334040,0.864206}, + {1.070955,-0.017792}, + {-0.209751,-0.368139}, + {0.320312,0.611719}, + {0.299755,-0.675094}, + {0.945826,0.192595}, + {0.160973,-0.236396}, + {-0.930557,-0.137053}, + {0.824962,-0.452584}, + {-0.781090,0.259436}, + {0.499810,-0.342312}, + {-0.976936,-0.295870}, + {-1.864960,-1.380520}, + {-0.343277,1.189033}, + {0.354532,0.766793}, + {-0.539951,0.213865}, + {-0.755910,0.577450}, + {-1.051209,-1.337479}, + {-0.047104,0.329372}, + {0.415117,-0.259529}, + {0.118073,0.808609}, + {1.623840,-0.219009}, + {-0.092132,1.145445}, + {-0.289294,0.153253}, + {-0.118908,0.241607}, + {-1.524828,-0.280118}, + {0.532567,-0.648456}, + {-0.104690,-0.952993}, + {0.096358,0.341141}, + {0.577925,-1.416989}, + {-0.472131,0.005166}, + {0.441558,0.684743}, + {-1.075276,0.458788}, + {-0.542887,-2.145492}, + {0.982289,-0.712595}, + {0.376656,-0.133513}, + {-0.495061,-0.153725}, + {-0.843701,-0.590876}, + {0.189824,-1.026949}, + {0.271507,0.450949}, + {-1.214261,1.019265}, + {-0.192929,0.809120}, + {0.580104,-0.580059}, + {-1.008693,0.258822}, + {-0.686540,-0.150929}, + {-0.806180,0.585680}, + {0.382421,0.681665}, + {0.993495,0.326671}, + {-0.011094,0.137639}, + {0.230903,1.353307}, + {0.321925,-0.530779}, + {0.445268,-0.218635}, + {-0.248939,-0.811110}, + {-0.438773,0.174895}, + {0.092849,-0.786051}, + {0.672213,0.282743}, + {0.310022,0.016750}, + {-0.554465,-1.296100}, + {1.167694,0.289020}, + {-1.008050,-1.267211}, + {1.337627,-0.727579}, + {1.107920,-0.800503}, + {1.580887,-0.434263}, + {0.534123,-0.023207}, + {-0.672041,-1.190008}, + {-0.623945,-1.000304}, + {-0.339638,-0.090139}, + {-0.247150,-0.090013}, + {-0.248865,-0.373625}, + {-1.008469,-0.345410}, + {0.219290,-0.748377}, + {-1.110240,0.109012}, + {-1.315957,-0.132981}, + {0.328799,0.407528}, + {0.992340,0.695968}, + {0.540487,0.100143}, + {-0.101748,1.200990}, + {1.372902,-0.484321}, + {0.182478,0.930679}, + {1.286810,-0.092169}, + {0.361417,-0.430697}, + {0.059600,0.508897}, + {0.957065,0.231615}, + {0.315519,0.910029}, + {-0.259820,-1.108543}, + {1.139876,1.306830}, + {0.111378,0.598970}, + {-1.158463,0.057921}, + {0.732254,0.269129}, + {-0.422410,0.384354}, + {0.434930,0.258197}, + {-0.135920,-0.584475}, + {-0.525475,0.266487}, + {0.479545,-1.317436}, + {-0.588906,-1.032770}, + {0.421416,-0.456796}, + {-1.112158,0.197872}, + {0.427474,-1.371221}, + {1.169989,0.066283}, + {-0.285752,0.682510}, + {-1.103367,-0.081644}, + {-0.492414,-0.508673}, + {-0.603259,0.274685}, + {0.453820,-0.705243}, + {0.451449,-0.286640}, + {-0.890995,1.493104}, + {-0.269448,-0.111697}, + {-0.284481,0.892255}, + {-0.156936,1.178820}, + {-0.026075,-0.288447}, + {0.192773,-0.689622}, + {0.408094,0.221306}, + {-0.077789,0.462070}, + {-0.763512,0.374190}, + {1.372160,-0.387671}, + {-0.961063,0.123053}, + {-0.563208,-1.176171}, + {-0.681526,0.053875}, + {0.246027,0.916420}, + {0.074971,0.397053}, + {-0.509338,-0.467579}, + {-0.028080,-0.246218}, + {-0.778298,-1.008908}, + {-0.688193,-0.856779}, + {2.135919,-0.463805}, + {-0.151521,-0.435434}, + {0.286563,-1.399753}, + {-0.238350,0.812805}, + {-0.637019,0.391566}, + {-0.930719,-0.753007}, + {-0.130401,-0.095141}, + {-2.022008,1.588912}, + {0.465128,-0.736271}, + {0.259710,0.008248}, + {-0.670376,0.573592}, + {-0.759845,-0.245010}, + {1.199012,1.484925}, + {0.117486,-1.283839}, + {0.823713,0.601557}, + {0.430107,1.305288}, + {-0.857913,-0.086698}, + {-0.240219,1.178419}, + {0.106586,-0.727451}, + {-0.013468,-0.553821}, + {0.331834,-0.839487}, + {-0.314308,-0.236823}, + {-1.020583,-0.465144}, + {-1.183478,-0.838031}, + {-0.688226,-0.504797}, + {-0.659946,0.110839}, + {-0.317790,-0.888356}, + {0.070495,-0.690989}, + {-0.215137,-0.280878}, + {-0.523957,-1.084659}, + {-1.625006,-0.827692}, + {-1.254357,-0.098812}, + {-0.037334,-0.320405}, + {-1.032500,-1.006692}, + {1.085823,-0.464633}, + {-0.424815,-0.295596}, + {-0.359488,-1.184184}, + {-0.081069,-0.021767}, + {0.194173,-1.145768}, + {-0.408176,-0.113861}, + {-0.210713,0.116032}, + {0.153323,-0.278102}, + {-0.824116,-0.348393}, + {1.711024,-0.546763}, + {0.732380,0.343069}, + {-0.031038,-0.890522}, + {0.333504,-0.385973}, + {0.838976,0.266577}, + {-0.957789,-0.709820}, + {0.084819,-0.404493}, + {0.086928,0.312046}, + {0.263436,0.677942}, + {-0.878981,-0.061526}, + {1.171282,-0.158491}, + {1.014568,-0.534002}, + {-0.414913,-0.218960}, + {1.441376,-0.016469}, + {-1.076862,0.575999}, + {-0.508823,-0.139239}, + {0.558421,0.010286}, + {0.950772,-0.758483}, + {-0.041742,0.060954}, + {-0.951736,-0.703192}, + {1.175201,0.090376}, + {-0.088403,0.175440}, + {1.137298,0.338050}, + {0.202901,-0.780958}, + {0.061536,1.037387}, + {0.163756,0.146354}, + {-1.082413,-0.656845}, + {-0.663994,-0.554342}, + {0.921438,0.127520}, + {-1.683027,-0.494672}, + {-1.207142,0.324501}, + {-1.591428,-0.689670}, + {0.380479,-0.276296}, + {-1.370787,-0.457896}, + {0.311180,0.865492}, + {0.329667,-0.284122}, + {0.764384,-0.263737}, + {0.388595,0.581989}, + {0.530794,0.089158}, + {-0.194579,-0.160770}, + {-0.497197,0.237652}, + {-0.969043,0.476531}, + {0.638742,0.543269}, + {-0.246685,-0.490291}, + {-0.504714,0.519112}, + {-0.275926,0.004395}, + {-0.679165,0.801614}, + {-1.013769,0.245981}, + {-1.048180,0.133878}, + {-0.347843,-0.709411}, + {-0.382321,0.205123}, + {-0.289524,0.058317}, + {0.779829,-0.108258}, + {-0.607607,-0.504919}, + {-0.313592,-0.887478}, + {-1.599302,0.151143}, + {-0.235541,0.112637}, + {0.193417,0.135649}, + {0.160499,-0.467862}, + {-0.417821,0.508193}, + {-0.371340,-0.797004}, + {-1.218597,-0.463920}, + {-0.329584,-0.832050}, + {0.403735,-0.347268}, + {0.312113,-0.544869}, + {-0.885796,-0.033127}, + {0.757105,0.871085}, + {-0.135961,0.870860}, + {-0.428802,-1.184347}, + {0.290754,0.685975}, + {0.025818,-0.815321}, + {0.241907,0.375104}, + {1.038442,0.255637}, + {0.196660,-0.681084}, + {-1.074595,-0.105662}, + {-1.073237,0.535047}, + {-1.330165,-0.216306}, + {0.568918,-1.460499}, + {0.046209,-1.528571}, + {0.044727,0.488519}, + {-0.583277,-0.315108}, + {-1.471177,-0.727805}, + {-0.046036,-0.582608}, + {-0.295384,0.529362}, + {0.361797,-0.922655}, + {0.397070,-0.019993}, + {-0.492521,-0.117990}, + {0.782889,1.170999}, + {0.662184,0.636561}, + {-1.735288,0.395381}, + {0.079380,-0.052730}, + {0.709996,0.654113}, + {-0.376010,-0.821716}, + {0.920385,-1.393132}, + {-0.322399,0.137951}, + {0.319344,-0.513440}, + {1.985403,-1.230494}, + {-0.254706,0.778217}, + {-0.381202,0.578765}, + {-0.175651,0.459589}, + {0.364902,-0.349097}, + {-0.521217,0.377102}, + {-0.696214,0.237524}, + {-1.428330,0.264137}, + {1.113969,-0.075405}, + {-1.211818,0.228307}, + {-0.100941,0.790198}, + {0.189215,-0.790792}, + {0.363891,-1.198473}, + {-0.964005,0.251669}, + {0.801589,-0.261038}, + {-1.090147,0.402919}, + {-0.227480,-0.351480}, + {-0.406823,0.119514}, + {-0.814855,1.243446}, + {0.516934,-1.114966}, + {0.026047,0.248718}, + {-0.378437,0.509858}, + {0.312049,0.311611}, + {-0.891748,0.177292}, + {0.608950,0.028471}, + {-0.495443,-0.650332}, + {-0.032869,0.579244}, + {1.360294,-1.192193}, + {-0.391750,0.494781}, + {-0.337458,0.448717}, + {0.363825,-0.229340}, + {-1.236290,0.427883}, + {0.399168,0.082217}, + {0.280208,-0.644907}, + {-0.759483,-1.003514}, + {1.269082,-0.253776}, + {0.442041,1.322204}, + {1.329775,-0.544052}, + {0.399145,0.137237}, + {0.772111,0.321600}, + {-0.588199,-0.243919}, + {-0.658466,-0.868454}, + {0.146449,-0.936439}, + {0.021534,-0.658851}, + {0.764039,0.391941}, + {0.200860,-0.212653}, + {0.159180,-0.042023}, + {-0.537129,-0.147575}, + {0.702245,-1.015617}, + {1.790915,0.570027}, + {0.766059,-1.875739}, + {-0.182925,-0.787800}, + {0.315391,0.206610}, + {0.710280,-0.029793}, + {0.798824,0.611930}, + {0.082498,-0.122377}, + {-0.441196,-0.130910}, + {0.361502,0.019255}, + {-0.494324,1.258054}, + {-0.658917,0.549865}, + {1.452774,0.133686}, + {-0.454627,-0.589725}, + {-0.880561,0.736115}, + {-0.035445,0.327460}, + {0.642400,0.698314}, + {0.196188,0.488357}, + {-1.092548,-0.378542}, + {1.012368,0.219866}, + {0.136436,1.050915}, + {0.450533,-0.095960}, + {-1.079073,0.205764}, + {0.129783,-0.607319}, + {0.304598,-0.028435}, + {1.256490,-0.636622}, + {0.251786,-0.305137}, + {-0.501987,0.211074}, + {-0.906736,-0.486202}, + {-0.082131,0.034965}, + {-0.584390,0.499364}, + {0.129603,-0.644452}, + {-0.480831,0.196367}, + {0.349143,1.779059}, + {0.431185,1.141092}, + {-0.747513,0.731564}, + {-0.786213,0.604126}, + {1.290785,0.708430}, + {-1.621136,0.607945}, + {-1.515636,0.414725}, + {-1.243614,0.535769}, + {-0.468547,0.431251}, + {-0.710815,-1.121571}, + {-1.329742,-0.444443}, + {-0.399959,0.076529}, + {-0.261205,-0.551109}, + {-0.712130,-1.339364}, + {-1.672925,1.158768}, + {0.511278,0.494824}, + {1.221284,-0.403334}, + {-0.689758,0.135193}, + {-0.266714,-1.264919}, + {-0.186901,-1.052718}, + {0.711819,1.601651}, + {-0.004976,-1.134699}, + {0.264689,0.143991}, + {-0.485013,0.240249}, + {-0.430138,-0.180132}, + {-0.448256,0.065344}, + {-0.313909,0.042542}, + {-1.788176,-1.003737}, + {-0.430691,0.515782}, + {-0.552024,0.033933}, + {-0.511113,-0.396641}, + {-0.667628,1.324609}, + {1.536055,-0.176847}, + {-0.371362,-0.780574}, + {-0.604459,-0.180242}, + {0.127890,-0.724469}, + {-0.546043,1.055909}, + {-1.160424,0.296830}, + {0.851429,-0.834491}, + {-0.653446,-0.319744}, + {-0.281928,0.036064}, + {0.152684,0.887427}, + {-0.584216,-1.129730}, + {-0.301487,-0.448074}, + {-0.644999,-0.062434}, + {-1.064140,-0.877770}, + {-0.025358,0.318626}, + {-0.169102,-1.656778}, + {-0.410128,1.517397}, + {0.908370,0.349006}, + {-1.017744,-0.256003}, + {-0.115645,0.371458}, + {-1.286410,-1.036681}, + {0.668494,-0.174631}, + {0.543753,-0.269535}, + {0.520788,-0.045167}, + {-0.348305,0.919992}, + {0.371761,0.757065}, + {0.314541,-0.679578}, + {0.365607,0.778578}, + {-0.119374,0.153537}, + {-0.266104,-1.198807}, + {0.480855,0.786074}, + {-0.032335,-0.840292}, + {0.610415,0.164635}, + {-0.644738,-0.147418}, + {0.544935,0.824594}, + {0.702994,-1.244186}, + {0.383204,1.467042}, + {0.264960,-0.885661}, + {0.500914,-0.588794}, + {0.070323,0.125276}, + {-1.166675,-1.286120}, + {2.429481,-0.059230}, + {0.764725,-0.984194}, + {1.319205,0.802877}, + {0.667521,-1.156544}, + {-0.490046,-1.778711}, + {0.006985,0.759426}, + {-0.060767,0.767774}, + {-0.536098,-0.574244}, + {-0.438429,-1.187924}, + {-0.482447,-1.117342}, + {-0.450270,-0.012118}, + {-0.862294,0.414935}, + {0.111836,-0.764191}, + {0.176201,-0.840321}, + {0.003283,0.329039}, + {-1.081580,-0.831850}, + {-0.757816,-0.792817}, + {1.390379,0.527990}, + {-0.423941,-0.375055}, + {1.019446,0.722048}, + {-1.226189,-0.806075}, + {-0.767485,-0.457873}, + {0.492217,-0.548094}, + {0.691643,-0.508868}, + {0.141146,-0.799097}, + {-0.090612,0.367936}, + {-1.588061,-0.270815}, + {-0.235590,-0.137989}, + {-0.055501,0.515153}, + {0.710591,-0.228057}, + {-0.499118,0.081473}, + {0.605634,-0.712194}, + {-1.465126,-0.300375}, + {-1.525912,0.646441}, + {-0.143056,0.092698}, + {-1.615522,0.655455}, + {-0.920867,0.776885}, + {1.293398,0.375770}, + {-0.367088,0.290023}, + {0.060016,-1.396905}, + {-0.564301,-0.163519}, + {0.765264,0.454371}, + {0.251582,-0.413469}, + {-0.202361,-0.426122}, + {-0.059972,0.009915}, + {-0.818937,0.409182}, + {0.019321,1.223693}, + {-0.308784,-0.106641}, + {-0.245638,-1.287715}, + {-1.559027,0.473275}, + {-0.523531,0.009086}, + {-0.815917,0.794331}, + {1.557748,0.201257}, + {-1.003834,0.532228}, + {-0.108970,-0.321004}, + {0.324720,-1.294292}, + {-0.526747,1.138428}, + {-0.648496,0.837288}, + {0.145426,0.003744}, + {0.995406,-0.617984}, + {0.658038,-0.080149}, + {0.680441,-0.468064}, + {1.360485,0.405642}, + {-0.648630,0.199765}, + {1.421996,0.120768}, + {-1.160572,0.425829}, + {-0.534584,0.437195}, + {0.263973,1.083009}, + {0.084184,-0.731033}, + {-0.583261,-0.202720}, + {-0.567244,-0.031166}, + {-0.393410,0.011082}, + {0.471308,0.529559}, + {0.817988,0.803892}, + {-0.436848,0.012289}, + {0.134056,-0.016346}, + {-0.510996,-0.160355}, + {0.301328,0.155798}, + {0.135075,-0.240089}, + {-2.111101,-0.043898}, + {0.492706,-1.075578}, + {0.331122,-0.193177}, + {-0.337675,-0.385101}, + {0.600488,-0.607441}, + {-0.482480,0.488866}, + {0.510644,-1.348219}, + {-0.900080,-0.246883}, + {0.054556,-0.043343}, + {-2.185732,-0.132914}, + {-1.179464,-0.506427}, + {0.060865,0.023893}, + {0.465712,-0.293140}, + {0.600472,-0.542588}, + {0.339465,-0.734740}, + {0.066566,-0.329599}, + {-0.182971,-0.834260}, + {-0.759862,-0.649675}, + {0.503928,0.562654}, + {0.180099,-0.072681}, + {-0.298720,0.091572}, + {0.414829,0.685094}, + {-0.178731,1.490621}, + {-0.764312,-0.940243}, + {-0.609986,0.139467}, + {0.620076,-0.882397}, + {-0.662503,-0.243036}, + {0.756788,0.492556}, + {-0.192028,-0.450766}, + {0.351446,0.122595}, + {0.312300,-0.348844}, + {-0.844268,0.241385}, + {-0.245266,-0.747779}, + {-1.043476,-2.173372}, + {0.689560,0.287984}, + {-0.604039,1.340161}, + {-0.186566,-1.016223}, + {-1.636023,-1.237069}, + {-0.183189,0.475359}, + {0.632049,-0.473980}, + {-0.105737,0.324525}, + {-0.734339,-0.411750}, + {-0.959041,-0.918415}, + {0.467121,-0.942991}, + {0.819873,0.146195}, + {0.528463,-0.981180}, + {0.144697,0.795032}, + {0.104364,0.648283}, + {0.183268,0.614067}, + {-1.164645,0.810951}, + {0.009496,0.610751}, + {-1.300113,-0.583004}, + {-1.015675,0.243285}, + {0.097064,0.342813}, + {-0.245720,0.670790}, + {0.205629,0.159022}, + {-0.262508,-0.028034}, + {-0.035008,0.785832}, + {0.565660,0.072977}, + {0.857016,-0.270113}, + {0.136789,-0.121418}, + {-0.656906,0.866977}, + {0.154962,1.086797}, + {1.053022,-1.172792}, + {0.226542,0.180113}, + {0.245718,-0.555295}, + {-0.232891,0.136740}, + {-0.930222,0.234981}, + {-0.486962,-0.336185}, + {0.350798,0.599626}, + {0.574125,0.169891}, + {0.614118,-0.392546}, + {-1.180994,0.390905}, + {0.683221,0.485573}, + {-0.841497,0.916893}, + {0.493882,0.242793}, + {1.254721,-0.271983}, + {-0.534063,0.438921}, + {0.575408,-0.133856}, + {0.312608,-0.033845}, + {0.580808,-0.613817}, + {-0.784972,-0.028488}, + {0.021831,-0.097100}, + {1.458365,-0.869399}, + {-1.300065,0.760049}, + {0.248812,-0.160696}, + {0.577725,0.443818}, + {-0.187965,1.600714}, + {0.318288,-0.795075}, + {-0.721696,-0.233585}, + {0.273242,0.614688}, + {0.681000,-0.554330}, + {-1.334662,-0.151226}, + {0.090395,0.928536}, + {0.810563,0.579363}, + {-1.128333,0.111594}, + {1.434974,0.769472}, + {-1.029423,0.004195}, + {-0.400590,0.108051}, + {-0.108363,-0.294703}, + {2.176060,-0.435633}, + {0.755020,0.883148}, + {-0.455663,-0.243404}, + {0.367326,-1.926805}, + {-0.455835,-0.070141}, + {1.081696,0.103537}, + {0.413618,-0.241936}, + {-0.155372,-0.490682}, + {-0.621036,0.039829}, + {0.890303,-0.313264}, + {-0.023574,-0.297114}, + {0.149197,0.434404}, + {-0.685611,-0.688437}, + {0.206938,0.778492}, + {-0.031417,0.174300}, + {-0.246155,-0.983701}, + {0.342626,1.369090}, + {-0.431405,0.516606}, + {-0.058886,-0.776391}, + {1.360163,0.224372}, + {1.125009,0.009836}, + {0.803894,0.584153}, + {-1.066450,-0.134171}, + {0.881308,-0.764883}, + {0.171104,0.260482}, + {0.114729,-0.114913}, + {0.883607,1.086200}, + {0.699362,-0.659063}, + {-0.164816,-0.175345}, + {0.387135,-0.085228}, + {-0.572309,0.619865}, + {-0.012015,-0.860950}, + {-0.342715,0.692370}, + {-0.024062,-0.039234}, + {0.292654,0.782865}, + {0.060171,0.442951}, + {0.160037,-0.381519}, + {0.408238,-0.320343}, + {-0.342973,-0.880725}, + {0.737359,0.306119}, + {-0.536555,-0.356491}, + {0.838071,-0.060380}, + {0.019197,-0.215087}, + {0.281771,0.139607}, + {-0.133836,-0.948025}, + {0.064779,-0.167417}, + {-0.325938,0.106840}, + {0.447499,0.335119}, + {0.025073,0.284159}, + {-0.052734,0.106778}, + {-0.701789,-1.485622}, + {0.518739,-0.597975}, + {-1.716639,0.510981}, + {-0.148489,0.188995}, + {0.199804,0.565255}, + {0.503694,-0.249207}, + {0.351417,0.318152}, + {-0.004846,0.498401}, + {-0.527585,0.429634}, + {2.230256,0.657682}, + {1.005492,0.534070}, + {0.335269,-0.396652}, + {-0.245966,0.173556}, + {1.145575,0.588938}, + {0.250537,0.473746}, + {0.273775,-0.223929}, + {0.015710,-0.244761}, + {-0.725572,0.598468}, + {0.272714,0.218757}, + {-1.388789,1.100565}, + {0.552103,-0.509940}, + {-1.061048,-0.439544}, + {0.192437,0.828632}, + {-0.847671,1.023359}, + {0.366431,-0.588009}, + {0.237764,0.442998}, + {-0.676158,-0.309010}, + {-0.610452,-0.659422}, + {-0.259924,0.412575}, + {0.388464,0.697350}, + {0.043340,0.184411}, + {-0.572546,-0.447644}, + {-0.330020,0.540548}, + {-0.476494,0.090675}, + {0.428011,0.507960}, + {-0.296043,-0.255790}, + {1.215630,-0.318831}, + {-1.154660,-0.477923}, + {-0.262266,1.238092}, + {-0.608603,0.453266}, + {-0.032630,-0.939531}, + {-1.660462,-0.153632}, + {1.705682,-0.866847}, + {0.429987,-0.912308}, + {0.416998,0.929955}, + {1.043259,0.307132}, + {-0.982368,0.014721}, + {0.123933,1.132765}, + {-0.203176,-0.346598}, + {0.070922,-0.385330}, + {0.144019,0.165251}, + {0.096086,-0.226780}, + {0.793344,0.135213}, + {-0.393406,-0.119594}, + {1.126684,-1.053134}, + {-0.132630,0.517421}, + {0.300448,-1.340154}, + {-0.834868,0.378596}, + {-0.132590,-0.127355}, + {-0.544568,1.427218}, + {-0.443372,0.521400}, + {-1.030830,1.124109}, + {-1.434174,0.036345}, + {-0.448801,-0.849006}, + {1.295485,1.176937}, + {0.612869,-0.763780}, + {-0.369440,-1.146724}, + {-0.183304,-0.234196}, + {0.228224,-0.830902}, + {1.022613,0.744120}, + {0.025729,0.401274}, + {-0.291958,0.275394}, + {-0.232227,-0.344890}, + {-0.372023,-0.748359}, + {0.399097,-0.026262}, + {-0.980706,0.557794}, + {-1.242178,-0.160578}, + {0.807544,0.089148}, + {-0.313827,-0.935789}, + {0.877743,0.053390}, + {-0.471764,-1.392615}, + {0.816500,1.445653}, + {-0.016996,-0.915960}, + {-0.919171,-0.825732}, + {0.536946,0.833119}, + {-1.361314,-0.838853}, + {-0.180351,-0.307114}, + {0.720178,1.060531}, + {0.168912,1.130233}, + {1.082306,0.407076}, + {0.193384,0.074239}, + {0.505658,-0.337304}, + {-0.059033,-0.040496}, + {-0.238771,-0.195282}, + {-0.160034,1.174256}, + {1.572109,-0.122569}, + {0.170932,-0.122646}, + {0.407778,0.454863}, + {-0.016869,-0.027842}, + {0.533907,-0.455801}, + {1.171133,1.451143}, + {-0.221926,0.445829}, + {-0.343024,-1.134887}, + {-0.084294,-0.803381}, + {1.762508,0.510097}, + {0.422538,-1.828873}, + {-0.272140,-0.351999}, + {-0.432142,1.296591}, + {-0.804792,1.207034}, + {-0.903372,0.071198}, + {0.221699,-0.548004}, + {0.296788,-0.487708}, + {-0.892082,0.116939}, + {0.118529,-0.058040}, + {0.889249,0.038813}, + {-1.435339,0.345064}, + {0.196684,0.414290}, + {-1.174361,-0.538056}, + {-0.655841,0.448240}, + {0.472673,-0.022418}, + {0.940362,0.311382}, + {-0.835209,-0.613456}, + {1.186347,0.367963}, + {-0.745946,-1.281948}, + {0.614204,-0.405224}, + {0.981560,0.711532}, + {-0.869991,0.308124}, + {-0.141029,-0.054972}, + {-0.145974,0.432189}, + {0.451887,-0.259041}, + {-0.784348,-0.033713}, + {0.793608,0.102305}, + {-0.744519,0.342470}, + {0.486741,0.105299}, + {0.347823,-0.107864}, + {-0.331637,0.717920}, + {-0.508501,1.192128}, + {1.490978,0.162327}, + {0.736492,-0.127445}, + {-0.085074,-0.474562}, + {0.599451,-0.167800}, + {0.674386,0.323677}, + {-0.412837,-0.758638}, + {0.609945,-0.786243}, + {0.606302,0.662258}, + {0.070750,0.124316}, + {0.362489,0.853723}, + {-0.421579,-0.217535}, + {-0.769619,2.120710}, + {-0.686205,-1.002458}, + {0.847970,0.499804}, + {-0.240487,-1.200173}, + {-0.787843,-0.870082}, + {0.134999,-0.037935}, + {1.418077,1.020690}, + {0.255585,-0.903872}, + {0.517503,1.018629}, + {0.222738,-0.956358}, + {-1.235963,0.716474}, + {0.896358,1.292193}, + {0.622993,0.939205}, + {0.032065,0.164409}, + {-0.779169,0.659748}, + {-0.738374,0.133285}, + {-0.620870,-0.855214}, + {0.342903,0.804248}, + {0.339164,-0.133036}, + {-1.661026,-0.210091}, + {0.245305,-0.675406}, + {-0.984197,0.390112}, + {-0.061474,-1.162560}, + {-0.723975,0.336075}, + {0.796753,-0.371630}, + {-0.548010,-0.761000}, + {-0.603116,-0.658810}, + {0.990442,0.351586}, + {-0.086890,-0.036006}, + {0.092425,-0.586906}, + {-0.925900,0.593131}, + {-0.763373,-0.389790}, + {-0.938653,-0.603703}, + {1.319069,0.867869}, + {0.485223,0.597602}, + {0.488264,-0.833841}, + {0.550617,-0.599518}, + {-0.329951,0.815395}, + {0.408096,-0.163820}, + {0.427087,-0.036759}, + {0.177247,0.112508}, + {0.674777,-0.049031}, + {-0.068546,1.438730}, + {0.238263,-1.518472}, + {0.883496,0.410851}, + {-0.306168,-0.121973}, + {0.119223,0.124116}, + {-0.458455,0.205762}, + {0.819118,-0.420270}, + {-0.502089,0.258248}, + {-0.168138,0.489351}, + {0.807982,-0.264625}, + {0.084262,-0.505577}, + {-0.559426,0.054462}, + {0.257622,-0.205514}, + {0.063041,-0.447553}, + {0.373281,0.067113}, + {-0.407206,-0.939355}, + {0.143221,-0.451897}, + {0.706256,0.478611}, + {0.537206,0.751956}, + {0.186734,-0.620411}, + {0.745475,-1.471416}, + {0.698281,0.256863}, + {0.042234,-0.046608}, + {0.099521,-0.430961}, + {0.236487,0.680732}, + {0.928581,0.289094}, + {-0.110851,0.188157}, + {-0.222611,-0.812705}, + {-0.633681,0.426959}, + {1.240335,-1.514135}, + {0.889274,-0.903866}, + {0.435835,0.552663}, + {0.713055,0.641659}, + {-0.042562,-0.629798}, + {-0.218147,-0.486607}, + {0.534103,-0.801708}, + {0.241010,0.206161}, + {0.572140,-0.082834}, + {-1.509288,-0.142938}, + {0.613317,-1.136810}, + {-0.196998,-0.273118}, + {-0.692536,-1.013502}, + {-0.524362,-0.353001}, + {-1.413574,-0.317148}, + {-0.184674,-1.254237}, + {0.212553,-0.393970}, + {0.115187,-0.497395}, + {-1.156764,0.217090}, + {-0.424303,-0.518804}, + {0.414805,0.157648}, + {0.213679,-0.158910}, + {-0.174193,0.696145}, + {0.085286,0.143396}, + {-1.850393,0.435779}, + {-0.015959,-0.039908}, + {-1.196652,-0.512413}, + {0.461147,1.083615}, + {1.188726,-1.253006}, + {0.191977,0.248884}, + {-0.633004,0.193534}, + {0.030327,0.447737}, + {-0.264705,0.787837}, + {0.010620,0.245484}, + {-0.824799,-0.704581}, + {-0.850004,0.204610}, + {0.381113,-0.610533}, + {0.471917,1.571607}, + {1.071030,-0.224993}, + {-0.384820,-0.304042}, + {0.283926,-0.337624}, + {-0.030392,-0.446234}, + {0.380697,1.115396}, + {-0.572464,0.561788}, + {0.625570,0.831812}, + {0.385308,0.863936}, + {-0.754364,0.169919}, + {0.019587,-0.256785}, + {0.572060,0.074947}, + {-0.701087,-0.235522}, + {-0.048703,0.055669}, + {1.222353,0.777241}, + {0.332950,0.082754}, + {-0.367895,-0.645924}, + {0.770417,0.554187}, + {-0.458786,-1.031422}, + {0.314500,-0.322402}, + {-0.683719,-0.429777}, + {-1.553851,-0.570942}, + {-0.067857,-0.160216}, + {2.145920,0.854215}, + {0.213836,-0.315033}, + {-0.513806,-0.416544}, + {-1.457721,-1.141119}, + {0.886807,-0.392147}, + {-0.193698,-0.206875}, + {0.548596,-0.465798}, + {0.215522,0.180953}, + {-0.391465,-0.142202}, + {0.902257,0.158063}, + {0.408777,-0.224758}, + {0.446692,0.091443}, + {-0.094655,0.081225}, + {0.499235,0.958718}, + {0.761380,-0.531675}, + {0.276579,1.203927}, + {0.276615,0.189762}, + {-0.100258,-0.732587}, + {-0.027769,1.596871}, + {0.462540,0.379880}, + {-0.341576,1.767737}, + {0.394437,-0.167993}, + {-0.105307,-0.509844}, + {0.334850,-2.520104}, + {0.845128,-0.104068}, + {-0.740984,-0.026126}, + {-0.974643,-0.280273}, + {-0.134239,-0.078789}, + {-0.299124,-0.863529}, + {0.106515,0.170939}, + {-0.927394,0.870161}, + {-0.491114,-1.917638}, + {-0.529767,-0.057114}, + {0.786100,-0.565618}, + {0.176072,-0.842280}, + {0.326239,-0.605491}, + {0.116318,1.170250}, + {0.644626,0.571773}, + {0.232028,-1.300912}, + {0.588283,0.271257}, + {-0.906647,-1.277791}, + {0.521843,-0.527216}, + {1.442306,0.379763}, + {0.236952,1.052319}, + {-0.295295,-0.568414}, + {0.242369,-0.208334}, + {-0.513807,-0.995215}, + {0.709065,0.862066}, + {-0.881110,-0.392734}, + {-0.341385,-0.818876}, + {-0.562235,-0.774610}, + {-0.383367,-0.394595}, + {0.193563,0.074610}, + {1.080435,0.606053}, + {0.541249,1.153279}, + {-0.507145,-0.367372}, + {-0.179289,0.029067}, + {0.098487,-0.117080}, + {-0.648908,1.440715}, + {0.227369,0.898461}, + {0.080062,-0.499544}, + {0.644433,-0.375275}, + {1.389011,0.012401}, + {-0.264708,-0.741045}, + {0.537436,-0.075225}, + {1.106610,-0.549125}, + {1.258275,-0.013265}, + {0.728976,0.175113}, + {-1.886547,-0.858978}, + {-0.781953,-0.791226}, + {0.122237,-0.660890}, + {-1.264703,-0.283197}, + {0.103200,-0.239052}, + {-0.243478,0.149221}, + {-0.144997,-0.203846}, + {-1.067080,-1.526123}, + {-0.976317,0.443019}, + {-1.106013,0.024286}, + {-0.311371,0.312037}, + {0.122867,-0.212564}, + {-1.891145,0.276717}, + {-0.898165,-0.258266}, + {0.160126,-1.155622}, + {0.322655,-0.124973}, + {0.709720,-0.446937}, + {0.646654,-0.041224}, + {-0.212961,0.280510}, + {0.377353,0.020557}, + {-0.559193,0.356275}, + {-0.304649,0.801474}, + {0.039679,-1.071028}, + {0.201060,0.268840}, + {0.060299,0.506095}, + {0.468796,0.933767}, + {-0.161046,0.352827}, + {0.444057,-0.026569}, + {-0.686397,0.188762}, + {-0.335728,0.854376}, + {1.571248,-0.778097}, + {-0.297224,-1.112280}, + {-0.298702,0.212694}, + {0.753050,-0.774688}, + {0.772973,0.801142}, + {1.006190,0.195367}, + {0.333846,-0.480112}, + {-0.391853,1.243410}, + {-0.695698,-0.290131}, + {-0.739155,-0.888427}, + {-0.332246,-1.694342}, + {-0.872134,-0.491913}, + {-1.196152,-0.951224}, + {0.677412,0.228122}, + {0.078804,0.855733}, + {0.835586,0.425326}, + {-0.229803,-0.248342}, + {-0.718329,-0.707283}, + {-0.509813,-1.200162}, + {0.225505,-1.007218}, + {-0.328166,-0.713028}, + {0.464166,0.043179}, + {0.309117,1.116584}, + {0.123684,0.813080}, + {-0.557566,0.056690}, + {0.771158,0.111089}, + {-0.102040,0.365176}, + {0.283581,-0.304576}, + {0.965047,0.603779}, + {-0.888726,0.478438}, + {0.477779,1.650476}, + {-1.743258,-0.545295}, + {1.377725,-0.340541}, + {-0.086465,0.288027}, + {0.172055,-1.416793}, + {-0.156652,-1.552419}, + {1.449604,-0.803632}, + {0.172637,0.621346}, + {0.793824,1.127283}, + {-0.470779,0.819345}, + {0.854335,-0.217494}, + {1.238408,-0.227297}, + {-0.446910,-0.251604}, + {-0.124721,0.631903}, + {1.355742,-0.253180}, + {0.521698,-0.380554}, + {0.610522,-0.644701}, + {-0.081964,0.075793}, + {-0.023329,1.079615}, + {0.035329,0.305532}, + {0.833652,0.329381}, + {1.248972,-0.520503}, + {1.090623,-0.312108}, + {-0.298609,0.072040}, + {-1.133040,-1.182362}, + {0.439116,0.599685}, + {-0.255228,-0.318038}, + {-0.027322,0.405769}, + {-0.892907,1.076022}, + {-0.262922,0.302096}, + {-0.920155,-0.097186}, + {-0.540438,1.415810}, + {0.272013,-1.071177}, + {-1.292397,-0.727006}, + {-0.061905,-0.763598}, + {-0.941549,0.110682}, + {-0.295776,0.793431}, + {-0.169404,2.201666}, + {-0.222637,-0.543007}, + {-0.231419,1.018982}, + {0.431675,-0.674150}, + {0.647789,1.313624}, + {-0.264086,-1.589729}, + {-0.501708,1.108352}, + {-0.208768,-0.310074}, + {-0.597616,0.571167}, + {0.001134,-0.028259}, + {1.776513,0.322038}, + {0.000932,0.887187}, + {-0.308110,-0.292049}, + {-0.532540,-0.401817}, + {0.489140,-0.274389}, + {2.617062,0.127502}, + {0.147567,1.240201}, + {0.663675,0.555925}, + {-0.074294,-0.891471}, + {-0.052708,1.536838}, + {0.022298,-0.206741}, + {0.479854,0.468749}, + {-0.554820,1.208232}, + {0.082508,0.244005}, + {0.308910,0.266430}, + {-0.474058,0.730188}, + {-0.234200,-0.862644}, + {0.952488,0.374155}, + {-1.407313,0.324058}, + {0.255768,0.333183}, + {-1.409944,0.885110}, + {-0.133868,0.923739}, + {0.365945,-0.286467}, + {-0.173753,-0.130918}, + {-0.127021,-0.366972}, + {0.038457,0.743113}, + {-0.478880,-0.722286}, + {-0.422107,-0.391745}, + {1.431973,1.075899}, + {0.065443,0.277849}, + {-1.101839,-0.748236}, + {0.291738,0.774096}, + {-0.408096,0.206278}, + {-1.180762,0.039864}, + {0.986053,-0.063561}, + {0.898749,0.024366}, + {0.206499,0.151574}, + {0.542112,0.681856}, + {0.773880,0.684502}, + {-0.241328,-0.031931}, + {-0.382695,-0.326442}, + {-0.849252,-0.163569}, + {-0.224038,0.104381}, + {-0.271735,0.180993}, + {-0.297649,1.141589}, + {-0.707010,-0.959005}, + {0.401963,-0.582866}, + {-0.715231,-0.495908}, + {0.530290,-1.238800}, + {-0.754427,0.394484}, + {0.419279,-1.220995}, + {0.230175,0.787427}, + {0.371875,-0.606294}, + {0.450371,-0.675309}, + {0.171612,-0.392663}, + {0.044028,0.193995}, + {0.390951,0.897858}, + {0.462471,-1.607671}, + {1.295156,0.465999}, + {0.793000,-0.411269}, + {0.521132,-0.780113}, + {0.533996,-0.337154}, + {0.465286,0.327814}, + {0.575773,0.419234}, + {-0.030753,-0.501412}, + {-0.575181,-1.392250}, + {0.464516,0.592014}, + {-1.051143,0.268391}, + {0.131935,0.110597}, + {0.074115,0.640275}, + {1.141666,-0.715042}, + {0.981527,0.398484}, + {-0.318100,-0.014155}, + {0.180788,-2.372129}, + {-0.228512,-1.445935}, + {0.604143,0.511910}, + {0.061448,0.220588}, + {1.285856,0.755178}, + {-0.007362,0.382650}, + {-0.121693,-1.355384}, + {0.384877,1.724619}, + {0.501171,0.169846}, + {0.072657,1.420837}, + {-0.653957,-1.801468}, + {1.157954,-0.653464}, + {-0.086409,0.466198}, + {-0.284619,-1.509457}, + {0.250620,0.007603}, + {-0.493596,-0.521283}, + {0.052350,0.242415}, + {-0.662703,0.329744}, + {0.270573,0.839284}, + {1.071362,-1.329600}, + {1.398703,-0.282566}, + {-0.731533,1.666659}, + {1.288748,0.120392}, + {-0.275091,-0.249067}, + {0.385583,0.034420}, + {-0.019935,-0.619918}, + {0.126886,0.241649}, + {-0.634954,-0.683893}, + {-0.689498,-0.555893}, + {0.355284,-0.081731}, + {-1.040687,-0.136149}, + {-0.539910,-1.308056}, + {-0.577548,0.394734}, + {-1.345688,0.532236}, + {-0.139622,0.230896}, + {0.266085,-0.109778}, + {0.720346,1.119455}, + {0.079954,0.124289}, + {0.511923,-1.657132}, + {-2.248034,0.251991}, + {1.364589,0.688028}, + {0.888909,-0.151714}, + {-0.569128,0.357256}, + {-0.771377,1.271462}, + {-0.737187,-0.032195}, + {-0.719654,0.068332}, + {-0.741507,-0.004577}, + {-0.437575,0.452222}, + {0.046679,0.449842}, + {-0.220268,-0.231133}, + {0.487091,-0.782256}, + {-0.588303,-0.523988}, + {0.078759,0.662810}, + {1.248130,-0.793583}, + {0.508679,0.242683}, + {0.870960,-0.005896}, + {0.322792,-0.772706}, + {-0.837291,-0.424434}, + {-0.273942,-0.068730}, + {-0.996061,0.634835}, + {-0.325385,0.366167}, + {-1.601558,-0.215569}, + {0.865809,-0.026148}, + {1.361558,-0.115469}, + {-0.588242,-0.102336}, + {-0.387966,0.323272}, + {0.289584,-0.504165}, + {-0.754503,-1.114553}, + {-0.353904,-0.014974}, + {-0.948798,0.383592}, + {-0.060121,-1.007894}, + {-0.209254,0.035108}, + {-0.191868,-0.327112}, + {-0.872958,1.449912}, + {1.215036,0.727058}, + {-0.851767,0.775217}, + {0.370956,-0.452360}, + {-0.325553,-0.956322}, + {-0.341459,1.281000}, + {-0.094430,-0.289030}, + {0.272220,0.131684}, + {-0.490177,-0.806252}, + {-0.099482,0.801627}, + {0.660006,-0.111388}, + {-0.412095,0.392647}, + {-0.019833,0.332668}, + {-0.076947,1.499139}, + {-0.243294,1.683990}, + {-0.671076,-0.433132}, + {0.167768,-0.058623}, + {1.324849,0.390514}, + {-0.069259,-1.476604}, + {-0.201312,-0.076595}, + {0.817829,-0.669267}, + {0.271931,0.149985}, + {-0.209551,-0.803738}, + {0.823791,-0.880931}, + {0.945366,-0.396813}, + {-0.636227,0.164765}, + {-0.560128,1.371587}, + {-0.210411,-0.871558}, + {0.049073,0.899454}, + {-0.426285,0.802485}, + {0.481298,0.695859}, + {-1.158734,0.585655}, + {0.344093,-0.512270}, + {0.837968,0.186502}, + {0.446366,-0.555741}, + {0.389203,-0.792521}, + {-1.165375,-1.629469}, + {-1.254712,0.471550}, + {0.689930,1.197958}, + {-1.004811,0.105754}, + {0.841131,0.147341}, + {0.154420,-0.297913}, + {-0.796042,-0.454021}, + {-1.231614,-1.187511}, + {-1.109815,-0.141912}, + {-0.566546,-0.288210}, + {-0.661025,0.127627}, + {-1.017198,-1.001861}, + {1.186309,0.060379}, + {-0.220627,1.019218}, + {-1.293678,-0.087054}, + {-0.025609,0.418478}, + {0.771157,-0.681107}, + {0.539560,0.233353}, + {-0.378370,0.264538}, + {1.893478,-0.101454}, + {0.248258,-0.000550}, + {-0.031156,-0.785691}, + {1.781812,-1.292306}, + {1.084657,0.507894}, + {-0.699208,0.885340}, + {1.285794,-0.619386}, + {0.955586,-0.121447}, + {-0.914452,-1.178647}, + {-0.242399,-0.427685}, + {-0.000717,0.064139}, + {0.574391,-0.693162}, + {0.485580,-0.614569}, + {-0.408661,-0.616323}, + {-0.464543,0.219753}, + {0.765718,0.874867}, + {1.166937,-0.037645}, + {-0.387840,0.839810}, + {-0.522687,1.260869}, + {0.079230,0.752776}, + {-1.317984,1.303184}, + {1.280048,0.412472}, + {1.609177,-1.354228}, + {1.037420,0.014540}, + {0.221589,0.058322}, + {-0.629552,0.832290}, + {-1.314747,0.685569}, + {0.279436,-0.743734}, + {-1.036796,0.905691}, + {0.495922,0.253242}, + {-0.916021,0.154075}, + {0.864485,0.140135}, + {-0.350216,-0.107206}, + {-0.536267,0.213086}, + {1.398571,-0.305908}, + {-1.517443,-0.348266}, + {0.316594,0.475011}, + {-0.682424,0.439457}, + {-0.443305,1.044724}, + {-0.515239,-0.514528}, + {-1.187287,0.148757}, + {0.286934,-0.102590}, + {0.258621,-0.932940}, + {1.392701,-0.258996}, + {-0.247044,0.662986}, + {-0.039077,-0.511042}, + {0.844728,-0.217617}, + {0.655759,-0.440128}, + {-0.413628,-0.925661}, + {-0.488104,-1.044892}, + {-0.543050,0.155919}, + {0.817307,0.193785}, + {0.341966,0.009039}, + {0.574199,0.718193}, + {-0.179957,-0.492905}, + {0.487152,0.524160}, + {0.329158,-0.281555}, + {-0.816659,-1.487422}, + {0.535622,0.409912}, + {0.252481,-0.624546}, + {-0.108432,-0.823732}, + {0.302554,-1.011194}, + {-0.425776,-1.472152}, + {-0.398910,-0.198658}, + {-0.068758,-1.227234}, + {0.126371,-0.758421}, + {0.343071,-0.216133}, + {0.001535,1.505001}, + {0.112153,0.738745}, + {-1.513525,-1.478555}, + {0.939067,1.193568}, + {0.382158,-0.305531}, + {-0.777582,-1.155642}, + {-0.672354,-0.312022}, + {-0.374348,-1.352798}, + {-0.418581,0.634617}, + {0.217850,-0.116165}, + {0.432181,0.426225}, + {-0.889372,0.893485}, + {0.855687,-0.582910}, + {-0.438450,-0.263930}, + {-0.466874,-0.869459}, + {0.040757,-0.535451}, + {-0.140064,0.789127}, + {-0.027951,0.105940}, + {-0.437942,-0.211395}, + {-0.040889,-0.017258}, + {0.338753,0.833301}, + {0.111661,-0.175934}, + {0.984011,0.077959}, + {-0.244420,0.211986}, + {-1.269522,0.063911}, + {0.409668,-0.303990}, + {0.462926,1.021879}, + {0.011614,-0.284044}, + {1.020808,0.476647}, + {0.196290,0.617474}, + {-1.098523,0.371501}, + {0.161323,-0.313071}, + {-0.002902,0.397897}, + {-0.356512,0.045680}, + {0.279592,-0.533235}, + {-0.475045,0.692805}, + {-0.089288,-0.703191}, + {-0.405232,-0.892280}, + {1.186783,0.798136}, + {-1.149640,-0.304031}, + {-0.243771,-0.696568}, + {-1.109856,0.231693}, + {0.587465,-0.480350}, + {0.184300,0.622183}, + {0.153163,0.512540}, + {1.675888,0.477305}, + {0.698217,0.670234}, + {0.860644,1.171471}, + {-0.330617,0.580491}, + {-0.058262,-0.788790}, + {-0.358326,-0.426058}, + {0.905134,-0.409635}, + {-0.008586,0.990271}, + {0.929488,-0.596337}, + {-1.358305,0.391919}, + {0.902404,0.342821}, + {-0.063962,0.618381}, + {-0.053813,0.301008}, + {0.297584,-0.666505}, + {0.556545,0.163475}, + {-0.105724,0.005318}, + {0.756775,0.828292}, + {-0.274629,-0.880320}, + {-0.476757,-1.149811}, + {1.127103,-0.294822}, + {-1.437952,0.298334}, + {0.907496,0.739951}, + {0.482075,0.004954}, + {0.157887,-0.816916}, + {-1.104784,0.063870}, + {-0.724938,-0.327697}, + {-0.487298,0.975783}, + {-0.065203,0.869972}, + {-0.211487,-0.462389}, + {1.094010,0.177366}, + {0.291395,-1.629667}, + {0.319282,0.785872}, + {1.229602,0.954910}, + {-0.342436,-0.978418}, + {0.352808,-0.930560}, + {0.347757,-0.981736}, + {0.298532,-0.077863}, + {-0.714535,-0.393789}, + {-0.333766,-0.139255}, + {-0.418941,0.359123}, + {-0.645184,0.861929}, + {-0.722475,0.301444}, + {-0.583318,1.352369}, + {-0.712937,0.243635}, + {0.440878,-0.827122}, + {0.327224,-0.062067}, + {0.186287,1.258463}, + {-0.729241,0.868902}, + {0.541857,-0.200516}, + {1.156841,-0.049354}, + {1.070085,-0.139319}, + {0.275765,0.779653}, + {0.355802,-0.444176}, + {-0.215164,1.591130}, + {0.410285,-0.761158}, + {-0.921834,-0.002490}, + {-0.552404,-0.660768}, + {0.405438,0.139289}, + {-0.275428,-0.582028}, + {0.727740,-0.766058}, + {-0.306953,-0.280078}, + {0.816312,-0.261072}, + {-0.199058,0.147132}, + {-0.360431,1.125081}, + {1.191538,-0.047433}, + {0.305817,-0.633319}, + {-0.494003,0.488029}, + {0.212671,0.098168}, + {0.210869,-0.461609}, + {-0.134279,0.437562}, + {0.343639,-0.292114}, + {-0.041375,-0.808615}, + {-1.049076,0.685913}, + {-0.665760,-1.010501}, + {-0.316509,-0.003953}, + {0.009980,0.599501}, + {0.638152,-0.300940}, + {-1.337720,-1.392983}, + {-0.275772,0.226258}, + {-0.550300,0.251820}, + {-0.584194,0.093470}, + {0.610120,1.230993}, + {-0.976958,0.361009}, + {-0.875544,1.373339}, + {0.287035,-0.431066}, + {-0.467716,0.616202}, + {-0.521935,-1.111703}, + {-0.098289,-0.170971}, + {-0.189521,-0.430798}, + {0.994687,-0.127269}, + {0.197679,0.364513}, + {-0.553761,-1.362114}, + {-1.599143,0.283164}, + {0.343200,0.241993}, + {0.950041,0.135606}, + {-0.496251,0.947582}, + {0.112208,-0.474788}, + {-0.043567,-0.201243}, + {-0.152120,0.819050}, + {-0.698148,-0.987049}, + {0.472844,0.167428}, + {0.805574,0.137483}, + {0.993595,0.361435}, + {-0.755927,0.329879}, + {-0.477493,0.425378}, + {0.513390,0.862967}, + {-0.370640,-1.203726}, + {0.303774,0.888996}, + {-0.531538,-0.061148}, + {0.292513,1.123151}, + {-1.375406,0.912479}, + {0.874095,0.312105}, + {0.285703,1.070449}, + {-0.327598,0.204123}, + {0.514364,-0.591838}, + {0.187292,0.151885}, + {-0.305341,0.797145}, + {0.512371,-0.430627}, + {-0.263249,1.117044}, + {1.457063,0.655659}, + {0.400834,-0.687060}, + {-0.534341,0.199095}, + {-0.670479,-0.049629}, + {0.170424,0.355076}, + {-0.089197,-0.199899}, + {-0.516640,-0.098609}, + {-1.415132,-0.986232}, + {-0.543245,-0.612453}, + {1.700407,-0.111663}, + {-0.333996,0.941663}, + {-0.558882,0.628745}, + {-0.189070,-0.269156}, + {-0.092103,0.289742}, + {1.721874,-0.613049}, + {0.400596,-1.689893}, + {0.029330,0.780505}, + {0.702801,-1.886583}, + {0.527904,1.344383}, + {-1.532567,-0.282722}, + {-0.187656,1.032522}, + {-0.563567,0.352977}, + {1.552724,1.036609}, + {-0.362367,0.884433}, + {0.907224,-0.245049}, + {0.968850,0.022296}, + {0.991932,-0.528220}, + {-0.574841,-0.667893}, + {-1.285195,-0.410222}, + {0.961984,0.592525}, + {0.851798,-0.802477}, + {-1.049946,-0.207182}, + {0.797470,-0.161487}, + {-0.749814,0.644751}, + {1.147914,0.191578}, + {1.094925,-0.009702}, + {-0.016473,-0.192798}, + {-0.479182,-0.608849}, + {-0.521973,0.822191}, + {-0.532269,0.303592}, + {1.239154,0.041944}, + {0.389138,0.091142}, + {-0.663000,0.328936}, + {0.342085,-0.836875}, + {-1.076007,-0.660702}, + {-0.134030,0.851663}, + {0.024222,0.084575}, + {-1.902667,-0.772045}, + {-0.584827,-0.179968}, + {0.072428,0.119199}, + {-0.342968,0.700217}, + {-0.467256,-0.216460}, + {0.245841,0.459667}, + {-0.569716,-0.968906}, + {-0.425136,-0.329992}, + {-0.290409,0.687952}, + {0.225955,0.172615}, + {1.003682,-0.248519}, + {-0.114798,1.216756}, + {1.860231,-0.053088}, + {0.106746,-0.618765}, + {0.288442,-0.650337}, + {0.718256,-0.694432}, + {-0.331457,-0.719543}, + {1.068076,0.148336}, + {-0.096353,-0.028651}, + {0.897863,-0.741848}, + {0.412489,1.038703}, + {-0.114692,-0.055749}, + {0.139043,-0.040275}, + {0.638080,-0.220795}, + {-0.633578,1.226884}, + {-0.251365,1.662993}, + {0.225500,0.307234}, + {-0.602385,-1.321478}, + {0.034489,-0.600173}, + {-0.758390,-0.563067}, + {-0.284530,-0.408226}, + {-0.579724,1.090416}, + {0.564264,-0.546693}, + {1.299442,-0.259779}, + {0.540747,0.139655}, + {0.950786,0.132223}, + {-0.293267,-0.682357}, + {-0.926701,1.267867}, + {-0.861209,-0.469813}, + {0.266995,0.266466}, + {-0.336500,0.231023}, + {-0.345643,0.297993}, + {-1.065829,-0.717767}, + {0.337612,-0.915230}, + {0.091474,0.162675}, + {0.308361,-0.094296}, + {0.577293,-1.348639}, + {-0.284413,0.283653}, + {0.357282,0.494051}, + {1.245152,0.281545}, + {-1.431170,-0.390320}, + {0.181289,0.594357}, + {0.532038,-1.703506}, + {-0.080299,-0.145390}, + {0.706124,0.883663}, + {-0.383556,-0.058734}, + {-0.778841,-0.343133}, + {0.466969,-0.233412}, + {0.438538,-0.476148}, + {0.583980,-0.010636}, + {-0.877575,0.042320}, + {0.360100,-1.169871}, + {-0.088032,-0.398826}, + {-0.476665,-0.290729}, + {0.290340,0.526910}, + {0.348399,-0.419803}, + {0.846750,0.362483}, + {1.325840,0.694740}, + {-0.345673,-0.490818}, + {-0.280731,-0.855840}, + {1.003652,0.167563}, + {0.046835,0.199770}, + {-0.137995,0.109839}, + {1.236355,0.414718}, + {0.076375,0.187022}, + {0.540177,1.332342}, + {-0.536548,0.170836}, + {-0.538823,-0.787885}, + {-0.030721,-0.152529}, + {-0.197468,-0.453547}, + {-0.860949,-0.359616}, + {-0.076259,-0.168284}, + {0.128913,0.374510}, + {0.491855,0.338274}, + {0.841089,0.539245}, + {-0.918791,-0.642914}, + {0.722143,0.109400}, + {-1.613346,0.192994}, + {0.138179,0.384452}, + {0.217286,0.484391}, + {-0.617670,0.552131}, + {-0.314759,1.396384}, + {0.680449,0.920245}, + {-0.776923,0.591054}, + {0.357123,0.348420}, + {-0.552000,-0.959852}, + {-0.457786,-0.012405}, + {0.194398,0.372935}, + {-1.158776,-0.739099}, + {-0.119856,0.695673}, + {-1.044994,0.542655}, + {-0.057589,0.663487}, + {-0.637497,1.383641}, + {0.841195,1.016650}, + {-0.227216,0.350548}, + {-0.666675,0.297665}, + {-0.837852,0.428705}, + {-1.515275,-0.555662}, + {-0.151261,-0.712636}, + {-0.221931,-0.513521}, + {-1.443995,0.844288}, + {0.313953,0.097811}, + {-0.204681,-0.430877}, + {0.980967,-0.423177}, + {0.232925,-0.543011}, + {0.306555,-0.317551}, + {-1.105006,-0.200727}, + {-0.491818,-0.043239}, + {-0.024608,-0.174225}, + {0.033530,2.148918}, + {-0.623382,-0.443777}, + {-1.073524,0.750841}, + {-0.120307,1.009256}, + {0.383676,-0.259419}, + {-0.313467,-1.256964}, + {-0.422919,-0.188656}, + {1.284099,0.681505}, + {0.223126,-0.031646}, + {0.306322,-0.620767}, + {0.442285,0.769126}, + {-0.724718,-0.051262}, + {0.239249,-0.361381}, + {0.330321,-0.151744}, + {-0.732583,0.357697}, + {1.352363,0.469735}, + {-0.520244,-1.172771}, + {-0.830415,0.617391}, + {-0.345373,-0.338332}, + {-0.195310,1.495399}, + {-0.303452,-0.330434}, + {-0.858515,0.736562}, + {-0.299252,0.080389}, + {1.345959,-0.872637}, + {0.074448,-0.237625}, + {1.059866,-0.609576}, + {-0.575313,0.866044}, + {-0.077763,1.006470}, + {-1.001055,0.181480}, + {0.602403,-0.828705}, + {0.704641,-0.635900}, + {0.125989,0.812281}, + {-0.020565,-0.376771}, + {0.086654,0.473210}, + {-0.807156,-0.842660}, + {1.800373,0.552391}, + {-0.130840,0.401600}, + {1.213215,0.407588}, + {0.032867,0.902099}, + {-0.647827,-0.660410}, + {0.139245,0.572428}, + {0.503025,-0.013337}, + {-0.345741,-0.790109}, + {1.992791,-0.453862}, + {-1.025935,0.141881}, + {1.284579,-0.440883}, + {-0.079254,0.984268}, + {0.774126,0.771004}, + {0.446898,0.009177}, + {-0.145382,0.156029}, + {0.640419,1.548422}, + {0.417477,-0.537218}, + {-0.166369,-1.168204}, + {-1.576589,-0.006857}, + {-0.568257,0.799393}, + {-0.097194,0.950091}, + {0.517471,-1.411220}, + {0.238796,-0.516115}, + {0.520339,0.649062}, + {0.066756,-0.377378}, + {-0.337598,0.506655}, + {0.082550,-0.452063}, + {0.348994,0.931952}, + {-0.986407,-0.704322}, + {-0.127239,0.598529}, + {0.326580,-0.100612}, + {-0.479889,-0.405277}, + {-1.261540,0.389325}, + {-0.326830,-0.479964}, + {0.362882,0.916080}, + {0.351699,0.236263}, + {0.339159,-0.569330}, + {0.193999,0.722854}, + {-0.383134,-0.307248}, + {0.983325,-0.083201}, + {0.134546,1.185024}, + {0.453730,0.055284}, + {0.699766,-0.295923}, + {-1.300227,2.106761}, + {1.649077,0.568909}, + {1.754100,-0.494836}, + {1.533405,0.734520}, + {1.171021,0.482031}, + {1.401353,0.104870}, + {0.365542,-1.022673}, + {-0.297745,0.086303}, + {0.811492,0.413641}, + {-0.006258,0.257878}, + {0.025602,0.267244}, + {0.302591,0.729528}, + {1.143575,0.702035}, + {0.878501,0.429343}, + {-0.568291,1.009797}, + {0.475038,-0.837439}, + {0.463692,0.574354}, + {-0.262200,-0.340073}, + {-0.092665,0.807504}, + {0.502834,-0.559747}, + {-0.405528,0.310426}, + {0.892265,0.595287}, + {1.606894,-1.747076}, + {-0.552482,0.153944}, + {-1.140951,0.420524}, + {-0.002796,0.745166}, + {1.856330,-0.471658}, + {-0.278099,0.079846}, + {-0.859602,0.915874}, + {-0.131552,-0.316820}, + {-0.384475,-0.141175}, + {1.036717,-0.801126}, + {-0.243963,-0.971380}, + {-0.096054,0.106090}, + {-1.006589,0.633260}, + {1.195284,0.049783}, + {1.377535,0.570432}, + {0.727388,0.842091}, + {-0.591521,-0.187649}, + {0.435684,-0.688750}, + {-0.294460,0.716584}, + {1.215540,-0.474825}, + {-0.696852,-1.070607}, + {-0.396589,0.554698}, + {0.089609,-0.423692}, + {-1.348885,-0.346625}, + {0.203519,0.440114}, + {0.743717,-0.894146}, + {-0.159810,-0.334923}, + {0.682591,-0.546565}, + {-0.712575,0.476973}, + {-1.104661,-0.456355}, + {-0.479537,0.251457}, + {-1.174705,-0.052909}, + {-0.352342,0.708805}, + {0.131579,-0.078383}, + {0.418601,0.558629}, + {-0.035404,-0.244368}, + {0.264606,-1.039640}, + {-0.949351,0.500103}, + {0.788048,0.890085}, + {-0.089676,0.665759}, + {-0.926300,0.785008}, + {0.511916,0.407786}, + {0.421369,-0.501708}, + {0.673039,-0.920122}, + {-1.286538,-0.354717}, + {0.248195,0.038161}, + {-0.205990,1.080045}, + {-0.217009,0.702000}, + {-0.276423,0.807365}, + {-0.426657,0.829259}, + {1.389469,-0.172937}, + {0.242023,0.337750}, + {0.111603,-1.317547}, + {-0.474308,-0.557545}, + {-0.943573,0.433703}, + {0.637707,-0.325782}, + {0.288693,0.683452}, + {0.404386,0.934451}, + {0.280019,0.234267}, + {0.235777,-0.732291}, + {0.679205,-0.897298}, + {-0.633602,1.471122}, + {0.135238,0.129816}, + {-0.615491,-0.198805}, + {-0.064142,-0.264310}, + {-0.386053,-0.523291}, + {0.905432,-0.812653}, + {-0.251535,0.119324}, + {0.544902,-1.468042}, + {0.940112,-1.020098}, + {0.261122,0.539496}, + {-1.028811,-1.062924}, + {-0.961214,1.210793}, + {0.440965,-0.383521}, + {-0.471681,-0.646258}, + {-0.640999,0.630283}, + {-0.593379,0.907085}, + {-0.559648,-0.906520}, + {0.131252,0.190629}, + {-1.155937,0.469075}, + {-0.774295,0.491694}, + {-0.391053,0.660751}, + {0.248040,0.038323}, + {-0.603211,0.265228}, + {-1.222478,-0.223261}, + {1.022423,0.355851}, + {0.285110,0.398718}, + {1.496522,-0.815689}, + {0.651223,-0.214058}, + {1.483784,-0.345858}, + {0.338015,-0.489712}, + {-0.046722,-0.437334}, + {0.159075,-1.718044}, + {-0.190740,-0.099638}, + {0.061885,0.049811}, + {0.679428,-0.232491}, + {0.435870,-0.001996}, + {1.027309,-0.975858}, + {-0.014691,-0.487557}, + {-0.295080,0.752236}, + {-0.274321,0.469497}, + {-0.517557,1.067698}, + {0.064585,0.127431}, + {-1.046478,-0.199519}, + {0.243379,0.939476}, + {0.061894,-0.918354}, + {0.182123,0.572483}, + {0.530045,0.686889}, + {-0.039721,-0.301593}, + {1.310340,-1.022175}, + {0.167251,-0.342483}, + {-0.873160,0.739288}, + {1.084948,-1.081913}, + {0.987790,-0.737875}, + {1.115765,0.832754}, + {0.710369,0.565371}, + {1.222391,-0.328709}, + {0.981649,-0.055245}, + {-0.777509,-1.846205}, + {0.368035,0.488807}, + {-1.365216,0.569074}, + {1.124465,0.671338}, + {0.992709,0.751788}, + {-0.470874,0.278596}, + {0.636061,-0.169493}, + {0.359905,0.085555}, + {0.222456,0.382605}, + {-1.173254,0.201384}, + {0.279053,-1.466444}, + {-0.551690,1.345065}, + {-0.510876,-0.198530}, + {0.495703,-0.623988}, + {0.084364,0.323890}, + {-1.999895,-0.270420}, + {-0.076837,1.042714}, + {-0.752037,0.184538}, + {0.788181,-0.585590}, + {-0.331946,0.352529}, + {-0.573372,0.687863}, + {0.138512,-0.567696}, + {-0.295121,-0.726297}, + {-0.543169,0.137349}, + {-1.715495,-1.038332}, + {-0.792709,1.829956}, + {-0.512584,-0.042359}, + {0.314335,0.342696}, + {0.301736,0.685331}, + {0.538495,1.567646}, + {0.619975,0.078173}, + {-0.498993,-0.523364}, + {-0.772238,0.214198}, + {-0.098512,-0.182276}, + {0.454210,-0.534136}, + {-1.022817,-1.137971}, + {0.073646,1.100400}, + {-1.024269,-1.297541}, + {0.102126,-0.936219}, + {-0.656945,0.838675}, + {-0.883419,-0.256136}, + {-0.187742,-0.020857}, + {0.277194,-0.076560}, + {0.664217,-0.799587}, + {-0.150595,-0.678707}, + {1.282330,-0.650995}, + {0.230992,-0.615056}, + {1.240003,-0.672353}, + {-0.277618,-0.291440}, + {0.819647,0.226890}, + {0.150397,-0.913147}, + {-0.416220,0.946438}, + {-0.076384,1.536212}, + {1.392241,-1.502352}, + {1.326505,-0.499578}, + {-0.091994,-0.153227}, + {-0.961196,0.689524}, + {0.781255,-0.480439}, + {0.928013,0.550042}, + {-0.232140,0.627398}, + {-0.954812,-0.337019}, + {0.310334,1.994616}, + {0.437513,-0.248398}, + {0.219854,0.604570}, + {-0.986371,0.508113}, + {0.338285,-1.014958}, + {0.109864,0.456381}, + {0.279878,-0.662212}, + {0.837898,0.324217}, + {0.556637,0.129244}, + {0.274982,0.417030}, + {-0.610253,-0.031767}, + {0.087246,-0.527219}, + {-0.003924,-0.518842}, + {-1.162910,0.023406}, + {-0.748007,-0.086280}, + {-1.473481,0.519776}, + {0.227004,-0.462845}, + {-1.082161,0.747261}, + {-0.506904,0.368379}, + {-0.400566,-0.884841}, + {0.601519,0.983189}, + {-0.166960,0.343570}, + {-1.095310,0.099506}, + {1.360160,0.674208}, + {-0.147483,0.107427}, + {0.281204,-0.417472}, + {0.661175,-0.414379}, + {-1.448734,1.031802}, + {-0.755926,0.045997}, + {-0.411609,0.573619}, + {0.557744,0.825309}, + {-0.849476,-0.220213}, + {0.491201,0.095585}, + {0.495856,-0.624079}, + {0.271922,-0.075840}, + {-1.176081,0.131668}, + {0.199308,0.838635}, + {1.157825,-0.261944}, + {0.499849,0.118281}, + {0.977981,0.048878}, + {1.199673,-0.964225}, + {0.858596,-0.581090}, + {-0.452553,-0.218746}, + {0.299985,0.111416}, + {0.658092,0.162666}, + {-1.038127,-1.509123}, + {-0.476839,-0.238866}, + {-0.825964,-0.083540}, + {-0.311650,0.915382}, + {-0.346397,0.095597}, + {1.291551,-0.057599}, + {-0.180325,1.013067}, + {-0.377176,-0.025424}, + {-0.170279,-0.752118}, + {-1.045206,-0.436628}, + {1.077868,0.598796}, + {-1.083213,-1.758250}, + {-0.312935,0.179621}, + {0.255198,-0.202909}, + {0.713268,-1.475905}, + {-0.464259,0.230728}, + {-0.089435,0.405254}, + {0.475353,-0.424938}, + {-0.867856,-0.104100}, + {-0.636819,-0.246586}, + {-0.172386,0.532258}, + {-0.100517,-0.057939}, + {-0.090309,-0.013900}, + {-0.012730,-0.418781}, + {-0.323899,-0.112924}, + {0.548806,-0.078950}, + {0.011270,-0.804839}, + {-1.476368,0.179108}, + {0.820229,-0.630583}, + {1.295267,-0.443406}, + {0.544548,0.943069}, + {1.785252,-0.261154}, + {2.075199,-0.129452}, + {0.294332,0.738836}, + {-0.488866,1.007274}, + {-0.503534,-1.208814}, + {-0.422143,0.460624}, + {-0.695711,1.140055}, + {-0.298145,0.028151}, + {-0.530038,0.012494}, + {1.063207,0.272223}, + {0.307094,-0.925566}, + {-0.396384,-0.079196}, + {-0.264129,-0.690633}, + {0.342815,1.176028}, + {0.208513,0.031339}, + {1.092949,-1.279019}, + {-0.182367,1.458113}, + {0.459643,0.537035}, + {-1.422746,-0.199628}, + {0.120842,0.431555}, + {0.120487,0.860370}, + {0.880075,-1.318327}, + {-0.918494,-0.508262}, + {1.039805,-0.397278}, + {-1.116948,-0.764242}, + {-0.648588,0.086831}, + {-0.310475,0.435516}, + {0.627558,-0.763336}, + {-0.357348,1.121826}, + {-0.261118,-0.210469}, + {0.566079,0.338734}, + {0.732632,-0.864559}, + {-0.031237,-0.416613}, + {-0.486114,0.440274}, + {1.080200,0.451333}, + {0.411008,-0.914379}, + {1.630417,-0.573224}, + {1.789973,-0.128818}, + {-1.282816,-0.068424}, + {0.649218,-0.044922}, + {0.219130,0.525529}, + {-0.370677,-0.053050}, + {1.003421,-0.883361}, + {-0.342108,-0.405991}, + {0.559990,0.090486}, + {-0.819193,1.397662}, + {-0.712352,0.014975}, + {0.372887,0.809808}, + {0.368211,0.098352}, + {0.107715,0.035441}, + {-1.024098,0.171511}, + {-1.378939,-0.282636}, + {-0.515788,0.376429}, + {0.019939,0.105386}, + {-0.458813,-0.083868}, + {-0.496787,0.049241}, + {0.463699,0.772761}, + {-0.261173,1.395466}, + {-0.700428,-0.454140}, + {0.203633,0.129327}, + {0.688547,-0.064068}, + {-0.286357,-0.615908}, + {1.006754,-0.251008}, + {0.233480,0.634520}, + {0.098067,-0.799585}, + {0.531663,1.047693}, + {-0.357639,0.643432}, + {-0.454815,-1.314132}, + {0.024120,0.533402}, + {-0.411249,-1.147575}, + {-0.478917,0.650582}, + {0.527923,-0.220407}, + {0.760079,-0.003595}, + {-1.436180,1.015680}, + {0.226704,0.663645}, + {-0.045143,-0.061152}, + {-0.302953,0.503048}, + {-1.017092,-0.028102}, + {-0.437520,-0.181724}, + {0.691820,0.557386}, + {0.481078,0.854929}, + {0.210535,-0.105821}, + {0.309759,1.545655}, + {-0.118720,-0.106134}, + {-0.491147,0.073132}, + {-0.315558,1.304714}, + {-0.069603,-0.566994}, + {-1.420324,-0.302228}, + {-0.001001,-0.159619}, + {0.538514,-0.717943}, + {-0.023256,0.486612}, + {0.961986,-0.094342}, + {1.390177,1.690547}, + {0.060921,-0.573038}, + {1.227780,-1.614966}, + {0.860354,0.141537}, + {-0.673537,-0.182732}, + {-0.394389,0.486924}, + {0.189958,-0.299760}, + {-0.187816,0.758961}, + {0.930850,0.838789}, + {0.532089,0.052800}, + {1.183978,0.043238}, + {0.000885,1.006165}, + {0.652237,-0.033242}, + {-0.062365,0.853989}, + {0.074019,1.062932}, + {0.548674,1.299869}, + {0.635525,0.892433}, + {1.040413,-0.904244}, + {-0.637131,-1.220854}, + {-0.178723,0.705191}, + {0.679517,-1.054694}, + {0.050417,0.463792}, + {-0.432476,-0.705006}, + {0.479097,-1.050954}, + {0.759427,-0.851752}, + {1.022693,-0.592958}, + {-1.062087,0.416080}, + {0.240269,-0.546121}, + {0.721674,0.787447}, + {0.390897,0.893822}, + {-1.344788,-0.366112}, + {-0.388957,1.529754}, + {-0.410491,-0.551688}, + {0.059600,0.157555}, + {0.589211,0.635496}, + {1.524161,-0.681505}, + {0.382074,0.694384}, + {0.184238,-1.242472}, + {-1.872358,0.314061}, + {0.197887,-0.051333}, + {0.134921,1.052766}, + {0.262707,0.571038}, + {0.217454,1.533922}, + {-0.473612,1.565367}, + {-0.430548,-0.327960}, + {2.456992,0.326251}, + {-0.249071,-1.096478}, + {1.629764,0.016947}, + {-0.311299,-0.966789}, + {-0.271977,0.129707}, + {0.570742,0.441806}, + {-0.663392,-0.189752}, + {-0.657755,-0.378028}, + {-0.289619,0.178035}, + {-1.547191,-1.379442}, + {0.318863,0.097885}, + {-0.133141,-0.867632}, + {1.709726,-0.325249}, + {-0.859378,-1.097579}, + {-0.824774,-1.066003}, + {0.667650,-0.896375}, + {0.771396,0.193745}, + {0.187997,0.834902}, + {0.264365,-0.077232}, + {-0.205345,-0.363629}, + {0.785119,0.128526}, + {-0.691053,-0.612586}, + {0.013257,-0.052083}, + {0.825087,0.514926}, + {-0.296533,0.266757}, + {0.172197,-1.001242}, + {-0.096571,0.384834}, + {0.009580,-0.143642}, + {-0.430595,0.227296}, + {0.246564,-0.054633}, + {-0.094468,-0.110370}, + {-0.692380,0.378773}, + {-0.199042,-1.555449}, + {0.505427,0.687997}, + {0.449979,0.039450}, + {0.393759,-0.881240}, + {1.174371,0.587504}, + {-0.022562,-0.094548}, + {0.799280,-1.480472}, + {0.041460,-1.331186}, + {-0.092273,-0.056904}, + {1.089637,1.394368}, + {0.377098,-0.286844}, + {-1.518074,0.303598}, + {-0.424125,-0.919862}, + {0.735314,0.790515}, + {-0.419136,-0.537595}, + {-0.224393,-1.089326}, + {-0.932735,0.204017}, + {-1.046173,-0.492433}, + {0.530493,-0.892328}, + {-1.605953,-0.056949}, + {-0.082756,-0.072003}, + {-0.273932,-0.025963}, + {-0.800355,0.314344}, + {0.072312,0.478394}, + {0.398293,0.285516}, + {-0.548830,0.122373}, + {-0.168767,0.843687}, + {-0.270897,1.661998}, + {-1.170453,-0.201107}, + {-0.475110,-0.145280}, + {1.305465,-0.282810}, + {-0.315642,0.100244}, + {-0.086178,1.029969}, + {0.615427,0.779651}, + {-0.207107,0.112033}, + {1.324170,-0.301879}, + {0.970426,-0.300709}, + {-0.051026,-1.504892}, + {-0.710653,0.471644}, + {-0.246991,0.815189}, + {0.603725,0.395888}, + {0.287185,-0.903460}, + {0.542505,-0.034145}, + {0.491362,0.846853}, + {-0.795065,-0.413406}, + {-0.094830,-1.353670}, + {0.848408,-0.279441}, + {0.423856,-0.773367}, + {0.223410,-0.744911}, + {-0.290439,0.138562}, + {0.179655,-0.293731}, + {0.963360,1.602055}, + {-0.162586,-0.561803}, + {0.690172,-0.162130}, + {-0.056525,-0.217605}, + {0.406531,-1.570055}, + {-0.214027,1.317937}, + {-1.324464,0.041843}, + {0.524061,0.463133}, + {-0.308113,-0.660500}, + {-0.045374,0.866035}, + {-1.375194,-0.346669}, + {-0.241115,-1.057360}, + {1.046871,1.007542}, + {-1.538573,-0.349429}, + {-1.296515,0.500255}, + {-0.319061,1.182597}, + {0.822835,1.088292}, + {-0.242570,0.808708}, + {-0.741186,-0.287133}, + {-0.043203,-0.170825}, + {0.086436,1.296764}, + {0.039347,0.444439}, + {-0.452934,0.019311}, + {0.165106,0.678114}, + {0.077917,0.386698}, + {-0.827517,0.531529}, + {0.008533,0.559169}, + {0.779173,-1.106132}, + {-0.141012,-1.305121}, + {-0.017937,0.457808}, + {1.289752,0.160765}, + {0.540358,1.399083}, + {-0.512611,0.568784}, + {-0.648622,-0.300842}, + {-0.293245,1.682090}, + {0.675206,0.479373}, + {-0.247437,0.127139}, + {0.385699,-1.137733}, + {0.734392,0.440471}, + {-1.045057,-0.228324}, + {0.556728,-0.598054}, + {-0.283752,-0.097712}, + {-0.555117,0.220327}, + {0.850535,0.713509}, + {-0.187237,-0.137412}, + {-0.069355,-0.705473}, + {0.514740,-0.842808}, + {-0.680879,-0.366539}, + {0.249006,-0.335864}, + {-0.098391,0.639156}, + {0.171737,-0.709357}, + {-0.443634,-0.636049}, + {1.088524,0.709373}, + {1.223219,-0.602659}, + {1.372139,-0.120711}, + {0.934723,0.998017}, + {-0.627598,0.214279}, + {1.030711,-0.173404}, + {0.136914,0.142240}, + {-0.703009,-1.393580}, + {0.296772,-0.271707}, + {-0.650348,0.475265}, + {0.681210,-0.614719}, + {-0.063976,0.173702}, + {0.927263,-0.034156}, + {0.436673,0.433596}, + {-0.011766,0.233163}, + {-0.461304,-2.176818}, + {-0.555505,-0.395928}, + {-0.121968,-0.515902}, + {-0.078036,-0.661705}, + {0.922070,-1.399317}, + {0.438197,-0.410533}, + {0.889117,2.238643}, + {-0.109874,-1.599532}, + {-0.122962,-0.682850}, + {-1.305958,-0.154182}, + {0.431402,1.018367}, + {-0.143377,-0.893054}, + {0.560765,-0.446487}, + {0.753484,-0.241121}, + {-0.967923,0.257292}, + {-0.119665,-1.032914}, + {-0.991815,0.479675}, + {-0.629275,0.847630}, + {0.721789,0.636400}, + {0.977668,-0.039434}, + {0.187379,-0.387067}, + {-0.314152,0.141318}, + {-0.817531,0.628117}, + {-0.923341,-0.167044}, + {-0.155868,-0.084994}, + {-0.686082,-0.206933}, + {0.021763,-1.069100}, + {0.091063,-0.184178}, + {-0.307996,-0.942727}, + {0.036592,0.643156}, + {-0.299491,1.314708}, + {-0.149338,-0.041127}, + {-0.365165,0.727747}, + {-0.591302,-0.009641}, + {-0.511106,0.790851}, + {-0.008839,-0.298441}, + {0.450988,-0.963904}, + {-0.043228,-0.140045}, + {0.622787,-0.480381}, + {1.330465,-0.430632}, + {0.237069,0.372814}, + {0.013612,0.660065}, + {-0.005838,0.638106}, + {0.099138,0.487362}, + {-0.462270,0.760901}, + {-0.039276,-0.367186}, + {-0.849389,0.963066}, + {0.260960,-0.760724}, + {-0.017266,-0.504135}, + {0.468009,0.090059}, + {1.015524,0.512994}, + {0.320663,-0.586802}, + {1.320691,-0.542734}, + {-0.662519,-0.014055}, + {-0.297684,-0.044484}, + {-0.799770,-0.356844}, + {-0.382747,0.640791}, + {-0.656885,0.305997}, + {0.114703,-0.966648}, + {0.136089,-0.769987}, + {0.032134,-0.482388}, + {0.164098,-0.131159}, + {0.378416,0.078075}, + {-0.221686,1.091587}, + {-0.103693,0.709294}, + {-0.345252,-0.305954}, + {1.203122,-0.260458}, + {0.793078,-1.844025}, + {0.052521,0.691232}, + {0.327413,1.180506}, + {0.000942,-0.045549}, + {0.500746,-0.800283}, + {-0.118962,-0.269397}, + {0.302711,-0.955327}, + {-0.451537,-0.663640}, + {-0.783589,-0.143810}, + {0.777130,0.550576}, + {-1.296793,-0.096188}, + {0.156387,1.318119}, + {-0.441793,0.789109}, + {0.098510,-0.721234}, + {1.144887,0.174284}, + {-0.628743,1.542204}, + {-0.746915,-1.002669}, + {0.640209,1.564354}, + {-0.042800,0.694716}, + {-1.546423,0.892586}, + {-0.302209,1.431112}, + {-0.691142,0.333508}, + {-0.429388,-1.099203}, + {1.047799,-0.141377}, + {-0.835629,-0.419429}, + {-0.395704,0.291504}, + {1.169077,-0.006899}, + {-0.000406,-1.023570}, + {-0.005843,0.363119}, + {-0.830499,-0.161589}, + {-0.049930,0.150634}, + {0.110034,0.489642}, + {0.229673,-0.090654}, + {0.628243,1.472188}, + {-0.426285,-0.014405}, + {0.704156,-0.031663}, + {1.408712,-0.223024}, + {-0.310124,0.322176}, + {1.341750,-0.011950}, + {-0.475503,-0.217211}, + {-0.322988,0.045987}, + {-0.293056,0.205099}, + {-0.120599,-0.231858}, + {-0.145756,-1.419736}, + {0.586338,0.525593}, + {-0.107314,0.053626}, + {-0.592978,-0.037145}, + {-1.158385,-1.045554}, + {0.119389,0.728346}, + {1.574950,-0.490199}, + {-0.282055,-0.229629}, + {0.168220,0.641829}, + {0.215137,0.436435}, + {-1.469822,-1.022768}, + {0.122827,-0.355324}, + {0.340368,0.460545}, + {-0.133655,-0.013018}, + {-0.214706,-0.229367}, + {1.137280,-0.600999}, + {-0.774999,-1.178053}, + {1.518943,1.058591}, + {0.407081,-0.502228}, + {-1.241990,0.417551}, + {0.014212,0.382705}, + {1.079171,0.037512}, + {1.449532,-0.035599}, + {-0.342860,0.119856}, + {-0.203089,1.758978}, + {0.892215,-0.343795}, + {-0.742509,-0.990385}, + {0.467033,-0.033716}, + {0.478131,-0.642241}, + {1.344997,-0.160438}, + {-0.420145,0.331979}, + {-0.652954,0.592996}, + {-0.495241,0.174791}, + {0.187080,-0.257417}, + {-0.382043,-0.147167}, + {0.529967,0.430835}, + {0.479963,-0.054450}, + {-0.878576,0.171068}, + {0.128695,-0.437802}, + {-0.715424,-0.054429}, + {-0.735767,1.208460}, + {0.913745,0.145152}, + {-0.901428,0.263530}, + {-0.108728,1.211707}, + {0.869162,1.245237}, + {1.346936,0.981211}, + {0.064847,-0.378967}, + {0.076235,1.113281}, + {-0.158075,-0.350806}, + {-0.830559,0.718345}, + {0.165189,0.659124}, + {0.566927,-0.057358}, + {-0.256642,0.501692}, + {-0.496891,0.558987}, + {0.314791,1.531419}, + {-0.105210,-0.967250}, + {0.340576,0.711382}, + {-1.141627,-1.066447}, + {-0.110436,-0.387441}, + {0.079143,-0.720602}, + {0.166833,0.239506}, + {-0.442205,-0.338438}, + {0.483370,0.156757}, + {0.693114,0.276451}, + {-0.183391,0.020851}, + {0.204206,-0.677262}, + {0.689076,0.309579}, + {-0.481239,-0.584827}, + {-0.933420,-0.491870}, + {-0.520784,-0.281925}, + {1.692787,-0.862935}, + {0.974295,-0.065542}, + {0.013460,-0.253194}, + {-0.484361,0.487765}, + {1.102883,-0.797744}, + {1.017178,-0.706175}, + {-0.306430,0.465774}, + {0.652186,0.377622}, + {-0.509788,-0.117614}, + {-0.182832,0.281499}, + {-0.243806,-0.608884}, + {-0.812188,1.031517}, + {-0.318785,-1.096473}, + {-0.753378,0.448524}, + {0.190946,0.805434}, + {1.315679,0.386423}, + {0.517649,-0.029638}, + {0.005505,0.303030}, + {0.245582,-0.056264}, + {-1.003810,0.352134}, + {0.145024,0.704185}, + {0.462317,0.143256}, + {0.942234,0.897553}, + {-0.215521,-0.331736}, + {-0.486441,-0.282984}, + {-0.132013,-0.653772}, + {0.703166,-0.978950}, + {1.265242,-0.730936}, + {0.541313,-1.092878}, + {-0.426889,-0.709462}, + {0.358945,-0.092949}, + {1.287703,-0.466656}, + {-0.029177,-0.528144}, + {-1.262047,-0.156719}, + {1.119061,-0.140010}, + {0.744231,1.364940}, + {-1.477712,0.677879}, + {1.394701,0.568561}, + {-0.709296,1.089103}, + {-1.084068,1.032923}, + {0.692925,-1.436255}, + {-0.583488,0.006146}, + {-0.096832,0.481081}, + {0.065004,-0.486029}, + {0.870241,-0.777612}, + {-0.485691,1.334895}, + {1.654056,-0.558402}, + {-0.123607,-0.634878}, + {-0.327436,-0.483555}, + {-0.308836,0.238801}, + {0.997275,0.372461}, + {1.298622,-0.350636}, + {0.054553,-0.251766}, + {-0.663848,0.096227}, + {-0.414783,-0.476282}, + {0.017994,-0.596242}, + {0.073553,0.224045}, + {-0.017235,-0.787626}, + {-0.513162,-0.883175}, + {0.296796,-0.667669}, + {0.609890,0.396096}, + {-0.429109,0.719473}, + {1.004360,-0.399219}, + {-0.729476,-0.121898}, + {0.495306,0.262692}, + {-0.113961,-0.354866}, + {-0.397658,0.111103}, + {0.772712,0.034410}, + {1.351640,-0.201355}, + {-0.632191,-0.828298}, + {-1.263127,-0.771645}, + {0.439372,-1.090465}, + {0.360964,-0.050497}, + {0.347296,-0.241183}, + {0.779991,1.223795}, + {-0.304319,0.532105}, + {0.438098,0.404655}, + {-0.851470,-0.274463}, + {-0.456542,0.692725}, + {-0.246019,0.385583}, + {0.191244,0.619761}, + {-1.086195,0.003533}, + {0.904869,0.542475}, + {0.998638,0.170402}, + {-0.706807,-0.315809}, + {0.166527,-0.172701}, + {-1.000581,-0.025441}, + {-0.835619,1.640966}, + {0.465558,-0.261938}, + {-0.312499,1.039515}, + {0.963936,0.325342}, + {-0.691905,-1.644457}, + {0.352920,-1.072839}, + {0.628098,0.001310}, + {0.081833,0.343911}, + {0.014168,0.756927}, + {-0.973338,-0.558293}, + {-0.871959,-0.104032}, + {-0.002001,-0.006319}, + {1.286904,-0.201689}, + {0.244030,1.578598}, + {-0.616804,0.274645}, + {-0.318141,0.335599}, + {-0.697360,-0.095197}, + {0.011818,-0.863732}, + {-0.138582,-0.019176}, + {-0.725250,-0.217377}, + {-0.875897,0.417330}, + {-0.319059,0.539565}, + {-0.482789,-0.312334}, + {0.409422,1.158154}, + {-0.015202,0.405469}, + {0.566499,-0.239419}, + {-0.048926,-0.333125}, + {0.123632,-0.575811}, + {-0.737014,1.050065}, + {-0.498796,-0.462582}, + {1.103683,-1.514551}, + {-0.494598,-0.326410}, + {-0.197300,0.386700}, + {0.062856,0.241676}, + {1.540076,0.134030}, + {0.167199,0.718623}, + {1.460202,0.168436}, + {-0.151115,1.190752}, + {-1.605562,-0.849851}, + {-0.182316,0.843664}, + {0.063442,-0.632068}, + {0.600120,-1.467388}, + {-0.214057,0.008288}, + {-0.591725,0.015858}, + {0.426621,-0.467059}, + {0.308007,-0.521593}, + {0.187186,0.432812}, + {0.771873,-0.797405}, + {-1.666113,-0.612908}, + {0.662923,-0.640449}, + {0.418502,0.839952}, + {0.567399,1.411843}, + {1.409143,0.943162}, + {0.272974,0.334327}, + {-0.194930,-0.042914}, + {-0.656420,0.632150}, + {-1.041831,0.166806}, + {0.747201,0.813639}, + {0.281704,0.944374}, + {1.358369,0.491507}, + {0.367469,-0.875805}, + {-0.422513,0.169091}, + {1.285167,0.685694}, + {0.330428,-0.193560}, + {0.299608,0.675410}, + {-0.270314,-0.081031}, + {0.064389,1.581159}, + {-0.222432,-0.019499}, + {0.426707,0.157563}, + {0.722662,-0.647789}, + {0.242988,0.714443}, + {0.748898,-0.308079}, + {-0.016544,0.354901}, + {-0.997099,-0.209123}, + {-0.235030,-0.400691}, + {-0.203206,1.099828}, + {0.142727,0.095450}, + {-0.341516,0.326233}, + {0.095229,0.019195}, + {-0.660175,0.112390}, + {0.905233,-0.514587}, + {0.319161,-0.949665}, + {-0.405405,-2.149487}, + {0.208820,0.999381}, + {-0.315606,1.516585}, + {-0.641859,-1.688719}, + {0.964642,-0.657701}, + {0.065903,-0.060402}, + {-0.026539,-0.681936}, + {-0.614921,-0.563590}, + {0.246976,-0.939397}, + {0.385899,0.281023}, + {-0.094005,0.848061}, + {-0.169226,0.774612}, + {-0.724207,0.299136}, + {-1.194411,-0.024786}, + {0.882686,-0.287766}, + {-0.483190,-0.806528}, + {-0.483338,0.922785}, + {0.041603,0.257413}, + {0.498249,0.308889}, + {0.634894,-0.438796}, + {0.295743,-0.624397}, + {0.071996,0.006979}, + {-0.372322,-0.699701}, + {-0.914731,1.474448}, + {-0.027933,-0.761139}, + {-0.295425,-0.913413}, + {1.158772,-0.605934}, + {-1.099764,1.238334}, + {0.225717,-0.107705}, + {-0.060501,-0.133608}, + {-1.004261,-0.846772}, + {1.353121,0.234258}, + {0.115511,-0.813911}, + {-2.526341,-0.552748}, + {0.628997,0.483053}, + {-0.185551,0.719097}, + {1.038135,-1.267809}, + {-0.807875,-0.433980}, + {-0.095644,0.352912}, + {-0.401847,0.180421}, + {0.326983,-0.414106}, + {-0.700716,-0.454423}, + {1.753344,0.341367}, + {-0.495613,0.589827}, + {0.795817,-0.022842}, + {-0.921182,-0.686602}, + {-1.692668,-0.029685}, + {-1.122250,-0.221354}, + {-0.588052,1.370316}, + {0.988746,-0.162050}, + {-0.653970,-0.824491}, + {0.362938,-0.445459}, + {1.171398,-0.033829}, + {-0.128480,0.441175}, + {-0.102669,-0.405796}, + {1.815588,-0.843343}, + {-0.009833,-0.493984}, + {-0.949789,1.129682}, + {0.396000,0.520610}, + {0.793786,-1.116647}, + {0.245421,-0.634161}, + {-1.542438,0.723155}, + {-0.983627,-0.634587}, + {0.325658,0.423862}, + {0.686591,0.678101}, + {0.840170,1.189774}, + {-0.124161,0.328021}, + {-0.670110,0.306719}, + {-0.647672,-0.390379}, + {-0.799760,-0.896996}, + {0.791386,0.183740}, + {-0.999459,0.290365}, + {0.108208,0.682826}, + {0.722602,-0.063568}, + {0.675050,-0.417068}, + {0.049737,-0.626277}, + {-0.091161,-0.152698}, + {-0.169368,-0.424080}, + {0.965155,1.073006}, + {0.875146,0.371974}, + {0.027511,-0.094845}, + {0.046664,-0.034023}, + {0.088000,0.191606}, + {-0.292866,0.357606}, + {0.486410,-0.150151}, + {0.758034,0.769236}, + {0.373728,0.795101}, + {-0.271229,-0.284477}, + {1.579846,-0.350881}, + {-0.201557,0.028050}, + {-0.509997,0.955817}, + {0.452960,0.647232}, + {-0.406892,0.567143}, + {-1.706461,1.360423}, + {0.953890,-0.875465}, + {0.657629,0.021581}, + {-0.129957,-1.226930}, + {-0.302970,-0.942701}, + {0.048147,-0.690086}, + {-0.477384,0.846820}, + {0.024795,1.669001}, + {1.201373,0.130037}, + {0.028444,-0.954818}, + {0.597766,-0.157195}, + {1.257619,-0.713805}, + {-0.793364,0.384184}, + {-1.448279,0.244332}, + {-0.241725,0.023413}, + {-0.834162,-1.002103}, + {-0.092808,-0.130621}, + {0.251400,0.563136}, + {0.142776,-0.576081}, + {0.082036,-0.836429}, + {0.477424,-0.233922}, + {0.592498,-0.708705}, + {-0.092424,-0.165077}, + {0.961011,-0.437526}, + {-0.040373,-0.007315}, + {0.151106,0.495559}, + {-0.791185,-0.172713}, + {0.532989,-0.116812}, + {0.323417,-0.257345}, + {-1.564697,1.408229}, + {-0.721557,1.018666}, + {0.590124,-0.231628}, + {0.771734,-0.400268}, + {-0.051036,0.575551}, + {-0.045053,-0.822877}, + {0.870412,0.425655}, + {-0.252330,-0.444619}, + {-0.101144,-0.403048}, + {-0.027262,1.535667}, + {-0.641673,-0.519516}, + {0.738704,0.547992}, + {0.168648,-0.151548}, + {-1.710591,0.257789}, + {-0.092677,0.346082}, + {-0.338101,0.082259}, + {-0.050333,-0.211235}, + {-0.699288,-0.374695}, + {-0.591992,1.089774}, + {0.627032,-0.226781}, + {-0.162334,0.632005}, + {1.473994,-0.687098}, + {-0.034147,-0.046207}, + {1.689347,0.546087}, + {-0.064003,0.303521}, + {0.024821,-0.361900}, + {0.625408,0.536032}, + {0.859899,-0.542843}, + {-0.768487,0.655731}, + {0.156214,0.442436}, + {-0.920403,-0.423091}, + {0.288070,-0.057672}, + {0.835439,-0.025869}, + {0.486492,-0.403805}, + {-0.670555,-0.015233}, + {0.202429,-0.231184}, + {0.368462,0.045512}, + {-0.759523,-0.656840}, + {-0.306825,-1.845469}, + {-1.126798,0.416730}, + {0.253965,-0.048144}, + {0.573909,0.256679}, + {-0.077506,0.902226}, + {0.106140,-0.161830}, + {0.944351,-0.103539}, + {0.996280,0.024614}, + {-0.437475,-0.095610}, + {1.605320,0.269590}, + {-0.030932,0.428579}, + {0.298472,-0.901861}, + {-0.459703,-1.415808}, + {-1.427354,-0.827994}, + {-0.668940,-0.453174}, + {0.081398,-0.075764}, + {0.449178,0.115437}, + {1.319972,0.180253}, + {0.214731,-0.518376}, + {0.401389,-0.697856}, + {-0.966804,-0.086393}, + {0.091583,0.256263}, + {0.121284,-0.390260}, + {0.682460,0.337722}, + {-0.528372,-0.012843}, + {0.535463,0.220828}, + {-0.207327,-0.002275}, + {0.032177,-1.481349}, + {-1.046740,0.503154}, + {0.990748,-1.593273}, + {-0.395646,0.419805}, + {0.309283,-0.466387}, + {1.107873,0.046100}, + {0.557575,0.602810}, + {-0.973449,-0.826520}, + {1.174536,-0.115438}, + {0.270087,-0.056070}, + {0.301369,-1.259042}, + {0.176198,0.039041}, + {0.685912,-1.168439}, + {0.868333,0.870309}, + {0.428619,-0.314340}, + {-0.605176,-0.019613}, + {0.551734,0.028005}, + {0.967593,-0.636688}, + {0.282477,0.393573}, + {0.681596,-0.537855}, + {0.080952,0.362344}, + {1.080137,-1.004045}, + {-0.121193,-0.497869}, + {0.873317,-0.001814}, + {-0.626031,-0.544039}, + {0.108145,-0.684680}, + {-0.563032,-0.925852}, + {0.979941,-0.514612}, + {-0.608938,0.633467}, + {-0.053909,0.182506}, + {-0.043155,1.357664}, + {-0.258396,0.276981}, + {-0.273572,-0.131251}, + {-0.146091,-0.601641}, + {-0.285407,-0.362421}, + {-0.145943,-0.085332}, + {1.246647,-0.702939}, + {0.000929,-0.146198}, + {0.426066,0.520638}, + {-0.385219,-1.726361}, + {0.895211,0.932719}, + {1.007455,-1.259203}, + {-0.192862,0.700090}, + {-0.229940,0.047657}, + {-0.530813,-0.440148}, + {-0.611116,-0.509634}, + {-0.580100,0.142553}, + {0.614953,0.098769}, + {1.398503,0.775546}, + {-0.541719,-1.671509}, + {-0.241597,1.020908}, + {-1.077532,-0.515526}, + {0.655762,0.775059}, + {-0.765450,-1.239293}, + {0.962747,-0.806323}, + {-0.609721,0.251087}, + {0.050378,-0.384786}, + {0.848758,0.698701}, + {2.116104,1.231120}, + {0.111879,-0.017177}, + {-0.687465,-0.181288}, + {-0.675059,-0.418819}, + {0.279545,-0.339861}, + {-0.599722,0.492495}, + {0.684005,-0.397453}, + {0.147776,-0.639692}, + {0.097598,-0.641184}, + {0.081977,0.034408}, + {-1.362164,0.108665}, + {0.163552,-1.671503}, + {0.040631,-1.212350}, + {0.291558,0.657082}, + {-0.295903,-1.140027}, + {-0.376469,1.434394}, + {0.423132,1.500112}, + {0.939533,0.706458}, + {-0.723371,0.467943}, + {0.734789,-1.367821}, + {-0.286426,-0.430950}, + {0.741645,0.202610}, + {-0.474269,-0.383443}, + {-0.111238,-1.258131}, + {0.660971,-0.293692}, + {-1.682554,0.395094}, + {-0.315600,1.396362}, + {-0.537842,0.199873}, + {-0.495910,1.133647}, + {-0.202967,0.311606}, + {0.956309,1.302041}, + {0.014266,1.520439}, + {-0.219412,0.174062}, + {-0.681151,-0.951635}, + {0.404607,1.513381}, + {0.416153,0.210891}, + {0.142163,0.694091}, + {0.076219,0.460826}, + {-1.083648,1.037683}, + {0.270994,0.354254}, + {0.986873,2.149951}, + {0.393861,0.989633}, + {0.688971,0.339303}, + {0.071278,0.056799}, + {-1.016039,-0.020912}, + {-1.334468,-0.536643}, + {0.734131,-0.538999}, + {0.610162,-0.467191}, + {0.178098,0.248881}, + {1.107075,0.903290}, + {0.067019,0.376517}, + {0.063519,0.307756}, + {0.222092,0.047481}, + {-0.642008,1.339605}, + {-1.434671,0.390346}, + {-0.286363,-1.096375}, + {0.528233,-0.114303}, + {0.002839,-0.363739}, + {0.081966,0.477424}, + {-0.745078,-0.212704}, + {0.262151,-0.629614}, + {0.650702,0.297788}, + {-0.360384,0.654797}, + {-1.210552,0.346825}, + {-1.123528,0.141074}, + {0.254125,0.134089}, + {-0.854449,-1.272994}, + {0.503444,0.407784}, + {-0.063343,0.002590}, + {-1.217891,0.297324}, + {1.362821,-0.092500}, + {-0.620024,-0.181695}, + {-0.583878,-0.087572}, + {-0.077708,-0.591811}, + {0.407316,0.210572}, + {0.370971,-1.195471}, + {-0.299583,1.320451}, + {0.203216,0.646346}, + {0.366164,0.909438}, + {0.203023,0.338926}, + {0.886110,-0.616392}, + {0.123373,-0.265751}, + {1.002188,-0.721736}, + {-0.087786,-0.162014}, + {-0.147706,-0.257366}, + {0.138837,0.156403}, + {-0.935765,-0.897313}, + {0.145589,0.934317}, + {-1.257050,0.339883}, + {-0.640691,-0.497094}, + {0.249565,0.324230}, + {0.429013,-0.807024}, + {0.951042,-0.750363}, + {-0.233908,0.322168}, + {-0.155345,-0.058620}, + {-0.923954,1.122193}, + {0.575643,0.585440}, + {0.020598,1.436937}, + {-0.091407,-0.699294}, + {0.578322,1.106103}, + {-0.103452,-0.119980}, + {1.023561,0.237926}, + {-0.294089,-0.806202}, + {0.353528,-0.555679}, + {-0.047433,-0.322646}, + {1.165529,0.140760}, + {-0.792405,-0.115971}, + {-1.054716,-1.248429}, + {-0.445960,-0.522722}, + {-0.535668,-0.623538}, + {1.871897,0.379341}, + {-0.602944,0.291409}, + {0.163383,-0.302622}, + {-0.434323,-0.137421}, + {-0.350281,0.083213}, + {0.871609,-0.841751}, + {0.975364,-0.601977}, + {0.494758,0.224624}, + {0.242478,0.421058}, + {0.232225,-1.453569}, + {0.414761,0.849492}, + {0.604876,0.053472}, + {0.281405,-0.468279}, + {-0.722334,-0.651553}, + {0.212448,0.783791}, + {0.338838,0.566970}, + {0.968908,0.412173}, + {-0.818738,1.184692}, + {-0.942716,1.063357}, + {0.156179,-0.884947}, + {0.275563,-0.824764}, + {0.161075,0.512591}, + {-0.063483,-0.132659}, + {0.244437,0.539625}, + {-1.022381,0.103652}, + {-0.191213,0.245448}, + {1.202137,-0.341605}, + {-0.830870,0.088173}, + {-0.376038,-1.505356}, + {-0.132499,-0.483134}, + {1.405172,-0.388605}, + {-0.731394,-0.474684}, + {0.424459,1.084378}, + {0.569630,-0.465403}, + {0.342360,0.588034}, + {0.530620,0.584731}, + {0.465075,0.367666}, + {0.476078,-0.835102}, + {0.325328,0.098233}, + {-0.588893,0.045396}, + {0.190879,0.254040}, + {0.743863,1.485769}, + {0.092567,0.772116}, + {-0.316621,0.345606}, + {-0.782686,-0.306573}, + {-0.034863,-0.764078}, + {0.087823,1.095970}, + {0.006421,0.475137}, + {-0.539624,1.058665}, + {-0.112003,-0.421538}, + {0.814427,-2.240315}, + {0.297667,0.029955}, + {0.387983,0.365167}, + {-0.512255,0.697944}, + {-1.002389,-1.053748}, + {0.785925,-0.982717}, + {0.513858,-0.382507}, + {-0.739047,0.720458}, + {0.563904,-0.592574}, + {0.269190,-0.290482}, + {-0.443868,1.120572}, + {-1.130339,0.430364}, + {0.653121,-1.146882}, + {-0.143795,-0.395516}, + {-0.601965,0.136010}, + {0.108440,-1.108889}, + {-0.633592,-0.202239}, + {-0.057448,0.917590}, + {-0.339216,0.038929}, + {-0.236586,0.236913}, + {0.250535,0.573183}, + {-1.205567,-0.151059}, + {0.435760,0.422565}, + {0.195745,-0.511377}, + {1.127967,-0.973948}, + {0.989271,-1.392772}, + {0.135742,0.374199}, + {-0.344161,0.674263}, + {-0.011739,-0.360829}, + {-1.431782,0.085627}, + {-0.120657,0.501635}, + {0.750871,0.035088}, + {-0.415468,-0.782156}, + {0.295173,0.275036}, + {-0.601768,0.944578}, + {-0.818800,-0.499709}, + {0.750934,0.255211}, + {0.011539,-0.207586}, + {-0.059063,0.577347}, + {0.027127,0.182079}, + {0.058243,0.931415}, + {-0.671812,0.744172}, + {0.645644,0.221537}, + {-0.870574,-0.487558}, + {1.078105,0.615241}, + {-0.212722,-0.339828}, + {1.044228,-0.140719}, + {0.507397,-0.046622}, + {-0.034885,-0.440408}, + {0.752870,2.271021}, + {-0.581907,-0.235032}, + {-0.322662,-0.221511}, + {0.415694,1.662084}, + {0.145703,-0.397409}, + {0.254030,0.000521}, + {-0.087437,-0.980333}, + {0.227735,-0.592052}, + {-1.659078,1.444394}, + {0.165351,0.893154}, + {0.143596,-1.051117}, + {-0.150326,-0.227989}, + {-0.176142,-2.753715}, + {-0.304719,-1.679630}, + {0.142689,1.087978}, + {-0.017008,-1.616949}, + {-1.541590,0.163136}, + {-0.310240,-0.896758}, + {-1.275426,0.756192}, + {1.243312,-0.449887}, + {1.116768,0.875750}, + {-0.707965,0.070670}, + {0.913211,-0.140092}, + {-0.979090,0.451250}, + {-0.864155,-1.828690}, + {0.921171,0.476562}, + {0.355440,0.234661}, + {-0.524266,0.329766}, + {-0.358736,-1.603375}, + {-0.648495,0.757445}, + {0.418951,0.216528}, + {-0.427809,-0.403671}, + {0.337321,-1.387978}, + {1.655019,-0.215407}, + {0.451075,-0.095607}, + {-0.244406,0.146289}, + {-0.137790,0.167550}, + {0.630097,0.525331}, + {1.207748,0.306192}, + {0.281222,2.135639}, + {1.263418,-0.404728}, + {-0.462965,-0.321707}, + {-0.502160,-0.109373}, + {0.267206,0.604009}, + {-0.095540,-0.133320}, + {-0.518950,-0.011799}, + {0.882133,-0.870423}, + {-0.273993,-0.871520}, + {-0.369624,-0.376413}, + {-0.426616,-1.054248}, + {0.605760,-0.041916}, + {-1.076826,-0.702786}, + {0.262593,0.312531}, + {-0.247497,0.678962}, + {0.286441,-0.227566}, + {-0.090176,-0.850555}, + {-0.613904,-0.323067}, + {-0.479344,0.855193}, + {0.812688,0.259328}, + {-0.397216,-0.922578}, + {0.056809,-0.180688}, + {-1.371158,0.243855}, + {-1.014261,0.371907}, + {0.033020,0.410626}, + {-0.916478,1.112751}, + {0.669737,1.082816}, + {0.431280,-0.142717}, + {0.497122,-0.690756}, + {-0.119205,-0.540953}, + {0.181345,0.682248}, + {0.031749,-0.632391}, + {-0.426867,0.192814}, + {-0.081193,0.403163}, + {0.211498,1.119102}, + {-0.832741,-0.389058}, + {0.687365,0.355030}, + {0.635475,-0.427351}, + {-0.546154,-0.025184}, + {-0.489334,0.302793}, + {-0.652276,-0.513544}, + {1.042010,-0.712245}, + {-1.620305,0.506514}, + {-0.862786,0.428432}, + {0.604738,-0.408423}, + {-0.521311,-0.121360}, + {0.541474,-1.269409}, + {-0.497038,0.414833}, + {-0.241790,-0.086959}, + {-0.152804,-0.480866}, + {-0.370062,1.004085}, + {0.669046,0.066165}, + {-0.781561,0.108622}, + {-0.559473,0.168401}, + {-0.453866,0.541715}, + {-0.674082,0.794643}, + {-1.933105,-0.147404}, + {1.300205,0.575127}, + {0.347053,1.234056}, + {0.029991,1.224125}, + {0.468447,0.084716}, + {0.172597,-0.493143}, + {0.474934,0.314407}, + {-0.641944,-1.460289}, + {-0.397220,1.519256}, + {-0.434311,0.720815}, + {0.309265,0.342057}, + {-1.198355,-0.052924}, + {-0.707677,0.641043}, + {-0.961501,-0.105753}, + {0.041026,-0.219741}, + {0.296451,-0.155747}, + {-0.041502,0.329670}, + {-0.175649,-1.146940}, + {0.291242,-0.629172}, + {0.201876,0.521308}, + {-1.249795,1.396366}, + {0.721736,-0.901069}, + {-0.279288,0.146240}, + {0.057212,-0.542932}, + {0.895544,0.168533}, + {1.243546,0.419985}, + {1.443173,0.998921}, + {1.178023,-0.424663}, + {0.944378,0.694314}, + {0.077267,-0.557875}, + {-0.100770,-0.061053}, + {0.091123,0.783914}, + {0.627541,-0.406884}, + {0.300425,0.129705}, + {1.588361,1.060950}, + {-0.737907,-0.102440}, + {-0.408529,-0.967258}, + {0.409326,-0.583521}, + {-0.252992,0.274365}, + {0.467400,0.293939}, + {0.616506,0.083653}, + {0.069252,0.630033}, + {1.261570,-0.161448}, + {0.980182,0.016625}, + {-0.967191,0.426424}, + {0.974353,0.373262}, + {0.465758,0.406121}, + {0.049765,0.155789}, + {1.019360,1.113022}, + {1.482616,-1.082850}, + {-0.370055,1.170347}, + {-0.914180,-0.076800}, + {0.711749,0.443053}, + {1.000344,-0.911585}, + {-0.685291,-0.007084}, + {0.003534,-1.342957}, + {-0.224481,-0.897010}, + {1.435450,1.058341}, + {0.901816,-1.078478}, + {0.440206,0.310660}, + {-0.440452,1.055084}, + {-0.481999,0.510978}, + {-0.425880,-0.638269}, + {-0.887044,0.737327}, + {0.766324,0.831116}, + {0.474519,0.013742}, + {0.719499,0.072296}, + {0.128751,0.551124}, + {-0.346348,-0.115964}, + {-0.027651,-0.597646}, + {0.459124,0.203102}, + {0.076236,0.050293}, + {-1.070625,1.089285}, + {0.946162,0.643590}, + {0.493112,-0.908918}, + {-0.530798,0.636518}, + {-0.775397,0.649794}, + {0.666540,-0.670376}, + {-0.051724,-1.176117}, + {0.734299,-0.049687}, + {-0.366040,0.690415}, + {-0.363912,-0.763731}, + {0.809317,-0.192377}, + {-0.584942,-0.575854}, + {0.212895,0.318501}, + {-0.229536,-0.564216}, + {0.325465,-0.148910}, + {-1.208239,0.149334}, + {-0.854608,-0.061222}, + {-1.275009,1.356758}, + {0.005121,0.384686}, + {0.540351,-0.968782}, + {0.522470,0.505677}, + {1.606856,0.455340}, + {0.390568,0.183534}, + {-0.517696,0.031122}, + {0.301117,2.578628}, + {-0.301510,-1.216527}, + {-0.342228,-0.046947}, + {-0.348194,0.992603}, + {-0.067880,-0.448626}, + {1.327164,0.245718}, + {-0.452255,-1.409662}, + {0.439151,1.195320}, + {-1.258445,1.550755}, + {-0.487881,1.205291}, + {-0.539438,-0.040513}, + {0.112800,0.659260}, + {0.163991,-0.512811}, + {-0.598902,0.260073}, + {-0.759021,1.076704}, + {-0.850034,-0.410968}, + {0.017091,-0.374513}, + {-1.673326,0.068799}, + {0.965866,-0.779812}, + {-0.058769,-0.720178}, + {-0.055818,-0.470524}, + {-1.050913,0.161955}, + {1.117855,0.191514}, + {1.104705,0.175696}, + {0.367485,-0.458936}, + {0.138570,0.060696}, + {-0.646029,0.418187}, + {0.562371,-0.098041}, + {0.132342,0.156962}, + {0.616000,0.247797}, + {-0.849396,-0.017041}, + {-1.265605,-0.174037}, + {0.263149,0.173862}, + {-0.947393,-0.548476}, + {-0.781072,-1.083780}, + {0.283519,-1.581446}, + {-0.649758,0.090980}, + {0.080903,-0.435490}, + {-0.546066,-0.445276}, + {0.883145,0.033681}, + {-1.438228,-1.592795}, + {-0.929637,0.644398}, + {-0.843645,1.001079}, + {-0.103938,0.314698}, + {-0.882742,0.603233}, + {0.560060,0.672982}, + {0.265318,-0.520901}, + {0.037542,-0.468269}, + {-0.614846,-0.896426}, + {-0.811132,-0.075196}, + {-0.701491,-0.278436}, + {-0.169226,0.555609}, + {0.152666,0.988791}, + {0.155918,-1.638999}, + {-0.029867,-0.008556}, + {0.789905,-0.447722}, + {0.369189,0.638383}, + {0.224741,-0.857948}, + {1.360289,-0.368943}, + {1.012567,-1.472297}, + {0.750105,-0.167508}, + {0.543334,-0.115844}, + {0.551806,-1.337525}, + {1.881674,0.384950}, + {-0.334593,-0.392176}, + {0.568056,0.658811}, + {0.826330,-0.070998}, + {-0.837258,-0.838016}, + {-0.559858,-1.022418}, + {0.141410,-0.739586}, + {-0.910228,-1.581966}, + {-0.196767,-0.383060}, + {-1.084272,-0.459566}, + {-0.639058,0.491458}, + {0.003765,0.880280}, + {1.188473,-0.151647}, + {0.210026,-1.324828}, + {-0.100415,0.512765}, + {0.513964,-0.254631}, + {-0.644200,0.342062}, + {0.783293,0.003817}, + {0.641491,0.529011}, + {0.382460,-0.793553}, + {-0.168696,0.881504}, + {-0.665068,-0.411740}, + {-0.422928,-0.392841}, + {-0.293466,-0.490343}, + {0.174657,0.011203}, + {0.371092,0.692387}, + {0.221498,0.094331}, + {1.040101,-0.724797}, + {-0.594782,-0.235973}, + {0.067611,-1.262378}, + {0.159732,-0.070026}, + {0.643780,-0.804505}, + {0.537444,0.286446}, + {0.032259,-0.725526}, + {-0.348096,1.322484}, + {-0.412691,-0.682603}, + {0.064050,-0.147144}, + {-1.125518,-0.730751}, + {0.100103,-0.336546}, + {0.011121,-1.408579}, + {-0.435174,0.184880}, + {0.216681,0.145450}, + {0.160929,-0.027522}, + {-0.094411,0.775505}, + {0.917143,-0.930427}, + {0.346981,0.563719}, + {-1.570088,-0.176042}, + {-0.151329,-1.215049}, + {-0.517596,-0.556149}, + {1.388624,0.121150}, + {-1.346197,-0.331584}, + {-1.014897,-0.904715}, + {-0.370488,0.625232}, + {0.234481,-0.599066}, + {-0.838492,0.445635}, + {0.570000,0.510314}, + {-0.117676,0.285231}, + {1.428193,0.287780}, + {0.846940,0.133845}, + {1.197855,0.607831}, + {-0.882803,-1.383388}, + {0.034651,-0.574273}, + {0.081993,-1.106833}, + {-0.415176,-0.051580}, + {-0.142726,0.131354}, + {0.705295,0.285068}, + {0.616462,0.274167}, + {0.542851,-0.557143}, + {-0.453895,1.480666}, + {0.389829,0.139984}, + {0.729928,0.418423}, + {0.199777,0.543327}, + {-0.777423,-0.121813}, + {0.544161,1.047456}, + {0.144618,0.189402}, + {-0.330806,-0.839508}, + {-0.386112,0.095356}, + {0.334664,-0.570556}, + {0.688800,0.258836}, + {-0.375194,0.976342}, + {-0.979181,0.389248}, + {0.352754,0.182541}, + {-0.557678,0.183718}, + {0.059676,-0.515850}, + {0.889687,0.384437}, + {0.326761,-0.569045}, + {-0.356064,0.960982}, + {-0.015646,0.537468}, + {0.070428,-0.848307}, + {-0.986289,0.860168}, + {-0.141119,0.141116}, + {0.387450,1.352744}, + {0.898063,0.207277}, + {0.307952,0.280249}, + {-1.091253,-0.645560}, + {1.079365,0.448420}, + {0.318470,-0.047758}, + {-0.664574,0.564786}, + {-0.568208,0.492372}, + {0.143767,0.051228}, + {-0.416511,0.722973}, + {-0.892012,-0.308575}, + {0.361998,-0.008642}, + {-0.497223,-0.648014}, + {0.249791,-0.081327}, + {0.207192,0.128874}, + {-1.025766,-0.510293}, + {0.098964,0.621213}, + {-0.490461,0.631713}, + {-0.448633,1.805053}, + {-0.321075,-0.425673}, + {0.109959,0.748809}, + {-0.636473,0.818729}, + {-0.323787,-0.565485}, + {-0.031436,0.886588}, + {-1.100856,-0.295367}, + {0.013026,1.275442}, + {1.243183,-0.863036}, + {-0.016862,-1.104960}, + {-0.503751,0.059092}, + {-0.428264,-1.092108}, + {0.240446,0.733125}, + {-0.924166,-0.286675}, + {0.081255,0.268827}, + {0.578614,0.267076}, + {0.855698,0.686772}, + {0.694556,0.169285}, + {0.065727,-1.138257}, + {-1.326172,-0.634456}, + {-0.290709,0.244074}, + {0.184962,-0.684550}, + {-0.484932,-0.874069}, + {0.683665,-1.045173}, + {-0.583586,0.853352}, + {-0.817727,-1.045137}, + {-0.661010,-1.251055}, + {-0.369424,0.527159}, + {-1.301217,0.246717}, + {0.143446,0.006156}, + {-0.073755,0.534466}, + {-1.136401,-0.589760}, + {-0.607309,-0.316112}, + {0.335294,-0.448585}, + {-0.574601,0.205810}, + {-0.239630,0.283724}, + {-0.697449,-0.307286}, + {0.071816,0.155103}, + {1.367617,-1.141154}, + {-0.396951,-0.248389}, + {-1.092599,-0.617174}, + {-1.294691,-0.226609}, + {-0.380847,-0.089574}, + {-0.743203,0.637321}, + {0.235272,-0.819851}, + {-1.195970,0.512104}, + {-1.679973,-0.738527}, + {0.575380,-0.899765}, + {-1.649001,-0.199959}, + {0.213428,1.358885}, + {0.943931,-0.471162}, + {0.432717,0.866101}, + {0.145445,0.133728}, + {-0.555018,0.149227}, + {-0.914787,0.598720}, + {-0.653930,-0.654901}, + {-1.346925,0.329945}, + {-0.171424,-0.565344}, + {-0.301527,0.240508}, + {1.273836,-0.145758}, + {-0.675821,-1.095405}, + {-0.413545,-0.143713}, + {-0.106844,0.824615}, + {0.131452,-1.038036}, + {-0.326685,1.463916}, + {-0.584519,-0.458745}, + {-0.543369,-1.094143}, + {0.143483,-0.846585}, + {0.272163,0.167407}, + {0.401943,-0.563082}, + {1.212306,0.087879}, + {0.504145,-0.648031}, + {-0.462351,-0.159423}, + {-0.319523,0.179709}, + {1.357242,0.045627}, + {1.074160,0.840235}, + {0.790452,0.720079}, + {-0.705431,0.410349}, + {0.416680,-0.002549}, + {-0.884954,-0.146867}, + {-0.808279,-0.171336}, + {-1.018281,0.721639}, + {0.822228,1.039615}, + {1.037790,0.060549}, + {-0.074556,-0.200271}, + {-0.880853,-0.366553}, + {-0.343761,0.333341}, + {-0.313231,-0.586011}, + {0.283823,0.573617}, + {1.143016,0.089887}, + {0.410687,1.083689}, + {0.277861,-0.083366}, + {0.021606,-0.194773}, + {-0.750214,1.458612}, + {0.917402,-0.016748}, + {-0.339684,-0.337568}, + {1.005284,-0.645882}, + {-0.519209,0.899330}, + {0.826162,-0.741211}, + {1.300132,-1.109551}, + {-0.374995,-0.317730}, + {0.785101,0.228184}, + {0.415868,0.737788}, + {0.527210,-0.188643}, + {0.376705,0.413658}, + {0.989599,0.805633}, + {-0.137061,-0.915614}, + {-1.702346,-0.057933}, + {-1.956591,0.046432}, + {-0.416960,0.338240}, + {-0.658461,-1.216968}, + {0.365795,0.659371}, + {0.252050,-0.558653}, + {-0.454467,0.004934}, + {0.504714,0.229244}, + {-0.278911,-0.228103}, + {-0.127623,-0.114296}, + {-0.014266,-0.342689}, + {-0.604625,0.121864}, + {-0.387685,-0.068082}, + {-0.091712,0.800537}, + {0.485931,-0.161304}, + {-0.016110,0.493620}, + {-0.653134,-0.353877}, + {-1.046778,0.196967}, + {-0.263242,-0.289129}, + {0.336474,-0.180203}, + {0.298396,-0.644825}, + {-0.427587,0.572250}, + {-0.208223,0.053185}, + {0.533386,-1.227956}, + {-0.725350,0.128195}, + {0.672904,0.530250}, + {-0.061316,-0.194678}, + {-0.709433,-0.046001}, + {-0.588879,0.353459}, + {0.123260,0.618527}, + {-0.549665,0.060101}, + {0.890191,-0.845135}, + {-0.454263,-1.313850}, + {0.783957,-0.491876}, + {1.361276,0.023611}, + {-0.458428,0.042147}, + {-0.143219,-0.073745}, + {0.074903,-0.017429}, + {-0.067903,-0.816547}, + {-0.380387,-0.772921}, + {-0.240030,1.420491}, + {-0.003621,0.010600}, + {-0.444036,0.409901}, + {0.277409,0.726745}, + {0.119726,1.707099}, + {-0.621712,-0.457125}, + {-0.214421,1.545744}, + {0.278621,-0.735467}, + {-0.099482,0.119682}, + {0.952647,-1.013460}, + {-0.290825,-0.041022}, + {0.368084,-0.002760}, + {-0.689006,-0.068005}, + {0.015785,0.505867}, + {1.306051,0.203435}, + {-0.263603,-0.214893}, + {0.292584,-0.248845}, + {-0.344389,-1.191472}, + {0.096606,-0.045469}, + {0.147219,0.465939}, + {-0.579923,-1.133735}, + {-0.918253,-0.931145}, + {0.557217,0.127417}, + {0.614199,0.613104}, + {0.412233,0.943510}, + {-0.471662,-0.514960}, + {-0.817375,-0.836164}, + {-0.264718,-0.546935}, + {0.508435,0.771316}, + {0.031847,-1.856060}, + {-0.443846,-0.260004}, + {-0.716667,-1.374211}, + {0.501604,0.548927}, + {0.314912,1.032581}, + {-0.781109,0.916868}, + {-0.869837,-1.039860}, + {0.630546,0.674600}, + {0.272632,0.214175}, + {0.531070,0.330978}, + {0.675056,-0.653400}, + {0.573720,0.836919}, + {-0.611225,0.014075}, + {-0.257263,-0.391545}, + {-0.759020,-0.312859}, + {0.264351,0.791373}, + {-0.438730,-0.456151}, + {-0.103243,-0.632429}, + {0.482892,0.141475}, + {-1.072978,0.148871}, + {-0.939209,-0.558985}, + {0.464793,-0.984782}, + {0.344131,0.564869}, + {1.005227,-0.360487}, + {-0.225080,0.071180}, + {0.208733,-0.458590}, + {0.680123,-1.202615}, + {-0.308920,0.517768}, + {0.980274,0.589646}, + {0.902236,-0.040233}, + {-1.138100,0.039754}, + {0.169840,0.120056}, + {-0.733937,0.211810}, + {0.623660,-0.836100}, + {-0.173754,0.076214}, + {-0.541470,0.864952}, + {-0.080678,-0.163713}, + {-0.044093,0.109390}, + {-0.028695,-0.639742}, + {0.643003,0.482195}, + {-0.364304,-0.293403}, + {-0.231682,-0.410161}, + {-0.467438,-0.345931}, + {-0.390529,0.236207}, + {-0.175126,0.380258}, + {0.978393,0.640634}, + {0.257795,-0.903357}, + {0.641261,0.315085}, + {-0.098354,0.511919}, + {-0.717823,-0.919712}, + {0.709709,-0.590981}, + {0.997767,0.207366}, + {0.588275,-0.122289}, + {-0.222499,0.042538}, + {0.394217,0.054417}, + {0.214881,0.114854}, + {0.596482,0.581786}, + {0.477025,-0.157396}, + {-0.633506,-1.318668}, + {-0.037122,0.440028}, + {0.968742,-0.275315}, + {-0.513770,0.381195}, + {1.098776,0.728930}, + {0.150417,-0.421163}, + {-0.902237,1.142415}, + {-0.729498,0.499136}, + {0.418742,0.861949}, + {0.267916,-0.737845}, + {0.024422,0.770033}, + {0.566193,0.531592}, + {0.166300,-0.113780}, + {-0.275348,-0.044917}, + {0.629763,-0.044562}, + {0.108581,-0.580329}, + {0.247883,-0.494344}, + {-1.462176,0.531806}, + {0.324773,-1.258865}, + {-0.406431,0.059552}, + {0.113265,0.337107}, + {-0.506166,1.040579}, + {-0.703153,0.839870}, + {-0.260571,-1.535683}, + {-0.454874,-0.041822}, + {-0.199992,-0.302883}, + {-0.743083,-0.906848}, + {-0.675013,-0.597745}, + {-0.338081,-1.521178}, + {0.931345,-1.090509}, + {0.651153,-1.330153}, + {-1.079088,0.315838}, + {0.246740,0.044863}, + {0.202616,1.446147}, + {-0.433066,0.284324}, + {-0.609858,0.344346}, + {1.142330,-0.944550}, + {-0.350428,-0.881955}, + {-0.451507,-1.605877}, + {-0.400012,-0.239471}, + {-0.136838,-0.775874}, + {0.282265,-0.413392}, + {-0.988833,1.529659}, + {0.719835,0.005099}, + {0.052020,-0.477086}, + {-1.283307,0.058599}, + {0.165701,0.649111}, + {1.021960,-1.416111}, + {0.940476,0.062629}, + {-0.751199,0.038566}, + {0.243450,-0.762697}, + {-0.649152,0.044560}, + {0.908395,0.209002}, + {0.325158,0.216998}, + {0.396454,0.138658}, + {-0.763522,-0.025907}, + {-0.762589,-0.137472}, + {-0.327529,-1.036809}, + {-0.632504,0.676907}, + {0.183574,0.389227}, + {-0.859700,-0.703806}, + {-1.154826,-0.991693}, + {0.449444,0.396030}, + {0.441770,0.491508}, + {-1.205186,0.299378}, + {1.050428,-0.456205}, + {0.096725,0.154959}, + {0.584349,-0.864514}, + {-1.679030,1.143489}, + {0.008505,0.228789}, + {-0.661763,0.775812}, + {0.142798,-0.623065}, + {-0.241421,-0.526502}, + {1.106520,0.156370}, + {0.365753,-0.256303}, + {-0.977046,1.118332}, + {0.884009,0.203437}, + {-0.353712,0.852741}, + {1.135822,-0.309740}, + {-0.439555,-0.067368}, + {0.554689,-0.288402}, + {1.734416,1.344531}, + {-1.349819,0.759427}, + {0.102799,-0.495112}, + {0.063102,0.722775}, + {-1.222947,-0.080150}, + {-0.340332,1.061612}, + {-0.228259,-1.903851}, + {-0.090773,0.687378}, + {0.203348,0.507128}, + {-0.577364,-0.212706}, + {-0.857515,-0.853969}, + {-0.562304,0.383151}, + {-0.918214,-1.478510}, + {1.026666,0.071216}, + {-0.012886,-0.308529}, + {0.022988,-0.145717}, + {0.234582,1.146633}, + {1.975283,-0.173765}, + {-1.487083,0.919537}, + {-1.203767,1.128685}, + {-1.355804,-0.425852}, + {-0.102354,-1.008553}, + {-0.436827,0.374401}, + {-1.741085,0.223597}, + {-0.898223,0.399684}, + {0.002133,-0.652951}, + {0.333743,0.185220}, + {-0.163247,1.355073}, + {-0.198911,-0.789921}, + {0.240101,0.133008}, + {-0.149245,-0.404471}, + {1.281203,-0.360689}, + {-0.172603,-0.635725}, + {0.286292,-0.148272}, + {-0.989616,0.037128}, + {-0.811488,1.305276}, + {0.736930,-1.009141}, + {1.069361,-0.737178}, + {0.752787,-0.592366}, + {-0.668359,0.755571}, + {0.005078,-0.395512}, + {0.006600,0.636287}, + {-0.619231,-0.611731}, + {0.333470,-0.919963}, + {-0.492449,-1.419036}, + {-0.622632,0.194757}, + {0.676292,1.819990}, + {-0.328240,0.542470}, + {0.345128,-0.019528}, + {-0.616645,0.691087}, + {-0.507449,-0.432094}, + {-0.204852,-0.217874}, + {0.834005,-0.099980}, + {1.199202,-0.293367}, + {0.449203,-0.521362}, + {0.226780,-0.171567}, + {0.523436,0.775392}, + {-0.711218,-0.421231}, + {0.151391,-1.096606}, + {-0.249307,0.995733}, + {0.245582,-0.339674}, + {0.412624,-0.060258}, + {-0.300827,0.023954}, + {-0.265459,0.720401}, + {-0.496526,-2.099281}, + {-0.605097,-0.001741}, + {-1.378320,-0.341276}, + {-0.994346,0.085029}, + {1.632400,0.360458}, + {-0.491899,-0.396243}, + {-0.010321,-1.021544}, + {-1.316304,0.895828}, + {-0.198830,-0.208983}, + {0.916044,0.314340}, + {0.562103,-0.885413}, + {0.878424,-0.092960}, + {-1.045844,-0.687749}, + {-1.295066,-0.226382}, + {-0.359215,0.110638}, + {0.540396,-0.456394}, + {1.030585,0.127512}, + {-0.085532,0.952881}, + {0.106917,0.478915}, + {-0.664272,-0.344642}, + {0.788052,1.409984}, + {-0.673592,1.430835}, + {-0.718720,-0.290875}, + {-0.721900,0.085461}, + {0.476120,-0.538352}, + {0.554070,0.581590}, + {-0.576287,-0.853427}, + {-0.431295,-0.014809}, + {-2.353094,1.312785}, + {1.022447,1.017332}, + {0.418273,2.001674}, + {-0.898325,0.139499}, + {0.235885,0.080549}, + {0.183877,0.730680}, + {1.009956,0.519400}, + {-0.689154,0.060848}, + {-0.683728,-0.649710}, + {0.079095,0.516578}, + {-1.386436,-0.530334}, + {0.302774,-0.053089}, + {-0.248980,0.192447}, + {-0.680767,0.423570}, + {-0.043439,0.510224}, + {-1.016935,0.183362}, + {0.076796,-1.333739}, + {-0.313256,-1.452270}, + {-0.850463,0.112410}, + {0.244360,-0.084178}, + {0.067792,-0.882987}, + {-0.569372,-0.399011}, + {-0.189225,0.729525}, + {-0.588975,-0.077969}, + {1.010968,-0.489609}, + {-0.395063,0.239897}, + {0.025387,0.354833}, + {0.725579,0.805842}, + {-1.146500,-0.264508}, + {-0.222810,-1.814964}, + {0.507912,-1.443934}, + {0.296149,0.880303}, + {-0.439268,1.606203}, + {0.334727,0.325640}, + {-0.869431,-0.847762}, + {-0.407707,0.153088}, + {0.348556,0.542411}, + {-0.082133,0.838110}, + {-0.377740,0.348750}, + {-0.523685,0.000306}, + {0.451224,1.080533}, + {0.864641,0.961894}, + {-0.464419,-0.075393}, + {0.247437,-0.100790}, + {0.677059,-0.034906}, + {0.977166,0.730818}, + {0.276546,-0.403567}, + {-0.380227,-0.745522}, + {-0.300027,0.125790}, + {0.454573,0.006509}, + {-0.771309,0.081517}, + {-0.311846,-0.412134}, + {-0.014595,0.090009}, + {0.707382,-0.074778}, + {-1.353019,-0.753631}, + {-0.100071,0.822131}, + {0.954790,-0.432571}, + {-0.078897,-0.647015}, + {0.386041,-0.035061}, + {0.448108,0.197019}, + {-0.270952,0.887823}, + {0.648405,-1.073664}, + {0.044912,-0.754380}, + {-0.455401,-1.209139}, + {-1.242109,0.132042}, + {0.391696,-0.419274}, + {-0.160193,-1.086374}, + {0.193327,0.720599}, + {1.178831,-0.759304}, + {-0.564605,1.076430}, + {-0.643302,-0.416708}, + {-0.962134,-0.990827}, + {0.368858,-0.144279}, + {0.036509,-0.440959}, + {0.179113,0.270476}, + {0.049637,-0.799549}, + {0.618109,-0.582336}, + {-1.394815,0.395536}, + {0.810724,-0.184896}, + {-0.176056,-0.058013}, + {-0.488312,-0.368066}, + {-0.080337,-0.440737}, + {0.116364,0.953468}, + {-0.307639,-0.302137}, + {0.341945,0.164106}, + {-0.466698,-1.158425}, + {0.052765,-0.344994}, + {-0.107626,-0.229995}, + {0.080011,0.653158}, + {-0.438442,0.465432}, + {1.422075,-0.608592}, + {0.108080,-1.057456}, + {-0.484339,-0.907178}, + {-0.746907,-1.978396}, + {-0.177762,0.203051}, + {0.386845,-1.106388}, + {0.611978,-1.018232}, + {0.520887,-0.361754}, + {-0.360101,-0.064618}, + {0.794305,0.526908}, + {0.619432,-0.126033}, + {-0.340265,-1.373028}, + {0.847319,1.149398}, + {-0.270491,-0.369213}, + {-1.409881,0.523044}, + {-0.402942,0.347133}, + {0.100939,-0.350152}, + {-0.107951,-0.680471}, + {0.436856,-0.753223}, + {-0.874005,0.762825}, + {1.008767,-0.929545}, + {0.927536,-0.502055}, + {1.498450,-0.602521}, + {0.762959,-0.278194}, + {-1.522717,-0.649417}, + {0.994833,-0.186581}, + {0.216919,0.567066}, + {0.850492,-0.682931}, + {-0.777097,-0.903028}, + {-0.850634,-0.188701}, + {0.044620,1.541080}, + {-0.307342,-0.202304}, + {-1.090498,-0.818833}, + {-0.004279,0.647200}, + {-0.290596,0.500608}, + {-0.009800,-0.272120}, + {-1.731344,-0.849070}, + {-0.389416,-0.540169}, + {1.177543,0.747062}, + {-0.858150,-0.456143}, + {0.973307,1.377374}, + {1.032589,0.695827}, + {0.015056,0.450971}, + {-0.934915,-0.677001}, + {0.342935,0.069114}, + {0.145474,-0.791543}, + {1.997462,-0.362196}, + {-0.993218,-0.020078}, + {1.123258,-0.113204}, + {0.125841,1.008802}, + {0.727876,1.066038}, + {-0.224529,0.890501}, + {0.213441,1.187995}, + {0.239012,-0.848701}, + {-0.519815,-0.475935}, + {0.113620,-0.506924}, + {0.203290,-0.296634}, + {-0.290231,-0.514121}, + {0.218741,1.021963}, + {-1.315299,0.334324}, + {-0.936988,0.419998}, + {0.886813,0.145840}, + {-0.188194,-1.261272}, + {0.949296,0.646163}, + {-0.826651,-0.432253}, + {0.061005,0.573649}, + {0.922200,-1.334003}, + {-0.006091,0.134091}, + {1.024516,0.063476}, + {-0.089739,-0.290697}, + {0.339610,0.989953}, + {0.555781,-1.426528}, + {-0.025669,-0.189457}, + {-0.710042,0.953935}, + {-1.262187,0.132588}, + {0.658343,-0.530960}, + {0.676713,-0.669361}, + {0.834718,-2.007914}, + {0.833518,0.359230}, + {0.649170,-0.687822}, + {-0.001830,-0.386894}, + {0.994915,-0.229340}, + {0.092444,0.399221}, + {0.536323,-0.782432}, + {0.262010,1.204889}, + {-0.208387,0.425622}, + {-1.100914,1.683131}, + {-1.658393,-0.775979}, + {-0.078725,-0.220114}, + {-0.303566,0.923927}, + {-0.225885,0.033406}, + {-0.837593,0.349616}, + {-0.560227,0.714755}, + {0.551992,-0.393791}, + {0.541405,-0.530435}, + {-1.165526,0.078792}, + {-1.026038,0.387096}, + {-0.517090,-0.484350}, + {0.136127,0.124638}, + {0.698761,0.346848}, + {-0.783071,0.074379}, + {0.158195,1.117125}, + {0.712435,-0.286792}, + {-0.362540,-1.001977}, + {-0.261314,1.161940}, + {1.007828,0.544864}, + {0.141605,0.538099}, + {-0.536036,-0.744530}, + {-0.056455,1.157725}, + {0.270982,-0.362836}, + {1.263497,0.040674}, + {0.146764,-0.753269}, + {0.364839,0.210494}, + {0.142940,0.490340}, + {0.272361,0.068047}, + {-1.040589,1.260799}, + {1.008508,0.670697}, + {-1.014574,2.123840}, + {-0.791800,-1.531609}, + {-1.780964,0.224965}, + {1.573411,0.802257}, + {-0.041381,0.109724}, + {-1.138676,0.501035}, + {-0.552511,0.754384}, + {0.074825,-0.740712}, + {0.310992,-0.947818}, + {-0.161513,1.611466}, + {0.351436,-0.213846}, + {-0.232344,0.926067}, + {-0.712473,0.154074}, + {0.531308,0.239847}, + {0.530134,0.456501}, + {-0.297722,-0.791948}, + {-0.072871,-1.399393}, + {0.183656,0.497474}, + {-0.279718,-0.393118}, + {0.648989,-0.820860}, + {0.372595,-1.044493}, + {1.032547,0.849237}, + {1.174671,-0.618382}, + {-1.652857,-1.472496}, + {0.158852,0.191819}, + {0.298620,0.279073}, + {-0.234746,-0.135384}, + {-0.875820,0.319486}, + {-0.426039,0.843713}, + {-0.496797,-0.192881}, + {-0.578836,0.257663}, + {-0.238402,0.900325}, + {-0.204088,-1.191861}, + {0.736090,1.052130}, + {-0.052316,-0.025508}, + {-0.213198,-0.936710}, + {-0.491398,0.410943}, + {0.177843,0.351607}, + {0.413028,-0.384109}, + {-0.296570,0.034297}, + {-0.222102,0.514522}, + {0.347397,-0.839739}, + {0.755191,0.119118}, + {-1.317696,1.106367}, + {0.012111,0.796336}, + {0.227983,0.378704}, + {-0.182946,0.270691}, + {-0.133785,0.099382}, + {-0.266511,0.038997}, + {-0.821681,0.553035}, + {0.389307,-1.106532}, + {0.135254,-0.883464}, + {1.870178,-0.286558}, + {-0.437784,-0.288228}, + {0.390194,0.094215}, + {0.606508,-1.296029}, + {-0.093019,-0.614305}, + {1.233362,1.207790}, + {0.161323,-0.765341}, + {-0.350088,1.001790}, + {-0.502004,-0.037202}, + {-0.067642,-0.030906}, + {-0.579459,-0.835251}, + {-0.327448,-1.330617}, + {-0.822818,-0.500291}, + {1.616254,-0.161664}, + {0.523254,0.304197}, + {0.874754,0.727626}, + {-0.625833,0.211643}, + {-0.295817,-0.417120}, + {-0.533891,0.548556}, + {-0.558758,0.571516}, + {0.822203,0.414686}, + {1.369430,0.325986}, + {1.064004,0.174272}, + {-0.985833,0.875381}, + {-0.345980,0.354199}, + {0.100855,1.346421}, + {1.413487,-0.299202}, + {-0.121055,-1.168458}, + {0.501534,-0.001734}, + {-0.099610,0.124655}, + {-0.014849,-0.560165}, + {1.152084,0.973772}, + {-0.517379,-0.823509}, + {0.020539,-0.675177}, + {-0.039182,0.878191}, + {0.067950,0.560550}, + {-1.394269,0.829335}, + {-0.441627,-0.010153}, + {0.385140,0.222085}, + {0.653992,-0.840685}, + {0.554082,-0.687828}, + {0.754380,-0.171576}, + {0.690489,-0.152949}, + {0.000351,-0.549264}, + {0.634582,-0.004171}, + {-0.818523,1.190795}, + {-0.877491,-0.566566}, + {-1.770940,-0.640230}, + {-0.681648,0.896819}, + {0.714653,-1.455870}, + {0.904495,-1.333302}, + {0.574457,-0.384864}, + {-0.758292,-0.483590}, + {0.187676,0.405114}, + {0.994700,-0.071836}, + {0.104159,0.532615}, + {-0.044879,-0.582247}, + {0.088417,0.343948}, + {-0.123630,-0.413369}, + {-0.520220,1.012739}, + {-0.210080,-0.180696}, + {1.090599,-0.559357}, + {0.684438,0.378806}, + {-0.026784,0.937192}, + {1.281961,0.075214}, + {0.730268,-0.520097}, + {0.937449,-1.019487}, + {-0.061509,-0.176202}, + {-0.421825,0.313385}, + {-0.367561,0.463862}, + {-0.121494,-0.479397}, + {0.550684,-0.312000}, + {-0.047790,-0.598700}, + {-0.759626,-0.857538}, + {0.464120,-0.230825}, + {0.787116,-0.630031}, + {-0.508880,0.581898}, + {-0.454863,0.576846}, + {-0.207468,1.946940}, + {-0.913960,-0.235153}, + {1.143211,0.111025}, + {-0.137003,0.162749}, + {-1.146435,1.853002}, + {-0.318815,-0.421180}, + {-0.260398,-0.035725}, + {0.175171,-0.048527}, + {-0.261859,0.350284}, + {0.162278,-0.033220}, + {-0.592133,-0.719742}, + {1.618602,0.334038}, + {-0.096548,-0.880363}, + {-0.348537,0.448118}, + {-0.662260,0.179356}, + {1.039235,0.256463}, + {-0.996895,0.746454}, + {-0.834224,-0.090841}, + {-0.647685,-0.812629}, + {-1.308253,0.412350}, + {-0.125295,-0.126640}, + {0.576406,-0.583028}, + {-0.374377,-0.094747}, + {0.533871,-0.080927}, + {0.515122,-1.155921}, + {-0.507165,0.282523}, + {-0.699975,1.619406}, + {0.182354,-0.753123}, + {0.710919,-0.243223}, + {1.477830,-0.025138}, + {1.782881,0.259661}, + {-0.521191,0.411698}, + {-0.166741,0.852319}, + {0.207224,-0.159255}, + {-0.487196,1.583805}, + {0.420298,-0.587703}, + {-0.287136,0.347728}, + {-0.058681,-1.279535}, + {-0.213399,-0.886647}, + {-1.030968,0.343184}, + {0.028405,-0.952633}, + {0.464603,0.442204}, + {0.931560,0.453043}, + {0.284575,0.967136}, + {0.138022,0.059599}, + {-0.451299,-1.015639}, + {1.003979,1.068919}, + {-0.655263,-0.663366}, + {-0.019621,-0.138225}, + {0.156525,-0.341867}, + {0.381232,0.059268}, + {-0.023279,-0.077880}, + {-0.156909,0.250573}, + {-0.169278,-0.914286}, + {0.305569,-0.291525}, + {0.731565,0.454905}, + {1.160261,0.085413}, + {-0.402037,-0.336640}, + {-0.086852,1.607379}, + {1.032812,0.761434}, + {-1.011438,0.206404}, + {-0.152752,0.593129}, + {0.239131,-0.087052}, + {0.808812,-0.541022}, + {-0.140430,-1.364158}, + {0.194295,0.880644}, + {0.118366,0.064148}, + {-0.536040,0.778541}, + {-0.720747,0.002512}, + {0.088296,-1.191485}, + {0.644848,-0.444607}, + {0.485903,0.409511}, + {1.460176,-0.876221}, + {-0.339190,-0.439055}, + {0.447675,0.418898}, + {-1.175829,-0.902773}, + {0.534399,0.539156}, + {-0.365101,-0.459903}, + {-0.889603,-0.728754}, + {-0.720091,0.356776}, + {0.152954,0.223066}, + {1.507327,0.739365}, + {0.310249,-0.006371}, + {-0.112344,-0.419108}, + {0.843904,-0.314723}, + {0.087930,0.313616}, + {0.844712,0.196815}, + {0.375568,0.356237}, + {0.204981,-0.400083}, + {0.361654,-0.270180}, + {-0.424588,-0.363919}, + {-0.302380,0.390982}, + {0.538019,-0.362291}, + {-0.287025,0.105711}, + {-0.592141,-0.264936}, + {-0.265425,0.583077}, + {-0.152032,0.522918}, + {-0.189186,-0.250399}, + {-1.096465,0.469056}, + {-0.888549,-1.140952}, + {-0.501972,-0.339613}, + {-0.203446,0.426474}, + {-0.039456,-0.535356}, + {0.070475,0.484328}, + {0.924276,-0.396241}, + {-0.106967,0.012352}, + {-0.367264,0.819153}, + {0.456802,0.237844}, + {0.563188,-1.024814}, + {0.009682,-0.064482}, + {-0.764852,0.219713}, + {-0.414932,-0.531342}, + {-0.088775,-0.892699}, + {-0.473699,0.186136}, + {-0.776648,-0.582610}, + {0.175734,-1.058049}, + {1.285690,-0.391957}, + {-0.091057,-1.011907}, + {-0.162767,0.561617}, + {0.031953,-0.540131}, + {0.534081,0.664403}, + {-0.360770,0.122694}, + {-0.178962,0.466559}, + {-0.004184,-0.337578}, + {-0.757067,0.029093}, + {-1.101300,0.209913}, + {0.465322,-0.086027}, + {-0.168690,1.115947}, + {0.263414,-0.000775}, + {0.159567,0.853760}, + {0.094110,-0.060344}, + {-0.421000,-1.195796}, + {0.441781,0.242496}, + {-0.021002,-0.381271}, + {-0.481126,-0.563097}, + {-0.798248,-0.508280}, + {-0.268196,0.934724}, + {1.292721,-0.335166}, + {0.226534,0.445048}, + {1.184933,0.558462}, + {0.375495,-1.145480}, + {0.748214,-0.745104}, + {0.688162,1.047310}, + {0.637883,0.949140}, + {-0.578133,-0.371881}, + {-0.506057,0.137040}, + {-0.392437,-1.031430}, + {-1.250713,-1.946813}, + {-0.206704,1.462894}, + {0.398430,-0.219612}, + {0.730672,-0.702692}, + {-0.698928,-0.450961}, + {0.584867,-0.708127}, + {0.590944,-0.109226}, + {-0.542510,0.253958}, + {-0.268875,1.111628}, + {0.649546,-0.696286}, + {-1.149829,-0.309965}, + {-0.154368,-1.500089}, + {0.822416,0.353288}, + {0.501110,-0.318761}, + {-0.212429,-0.008096}, + {-0.006164,-0.123611}, + {0.288868,0.048345}, + {-0.574713,-0.524916}, + {0.018293,-1.030497}, + {-0.005055,-0.072736}, + {0.723568,-0.635163}, + {0.237863,-0.875191}, + {-1.247980,-0.863139}, + {-0.302079,-0.212290}, + {-0.421802,-0.759025}, + {-0.589974,-0.507471}, + {-0.334862,0.003375}, + {0.401797,0.706722}, + {-0.461749,0.283630}, + {-0.841187,-0.665548}, + {-0.626371,0.618334}, + {-0.020821,0.503040}, + {0.116914,-0.093341}, + {-0.151675,-0.528033}, + {-0.193343,-1.099319}, + {0.274029,0.445690}, + {-0.021446,-1.220103}, + {0.513206,-0.740022}, + {1.777028,0.407704}, + {0.786759,0.109353}, + {-1.004914,0.876901}, + {0.464743,1.170006}, + {-0.002439,0.125068}, + {0.962875,-0.407956}, + {0.530559,-0.756573}, + {-0.389738,0.110620}, + {-0.556624,0.014509}, + {-0.132983,0.247574}, + {0.587943,-0.342146}, + {1.296368,0.197680}, + {-0.733120,-0.623643}, + {-0.011093,0.978888}, + {0.039641,-0.978184}, + {-0.443314,-0.153156}, + {0.588043,0.490341}, + {0.218709,0.363791}, + {-0.914626,0.826702}, + {1.411108,-0.816719}, + {-0.490262,-0.144227}, + {-1.206037,1.156620}, + {-0.662082,0.479091}, + {0.615883,-0.149877}, + {1.177829,-0.036366}, + {0.394260,-1.578483}, + {0.383648,0.485998}, + {-0.028002,0.334074}, + {0.722762,0.190366}, + {0.475814,0.082245}, + {0.439991,-0.022567}, + {0.014753,0.128088}, + {-1.144640,-0.335474}, + {0.470690,0.257257}, + {-0.751319,-1.107300}, + {0.531539,0.456327}, + {0.464679,0.083408}, + {0.077604,-2.053833}, + {-0.031526,-0.401000}, + {-0.741780,-0.921745}, + {-0.504616,-1.015580}, + {0.999344,-0.252633}, + {0.199592,-0.614304}, + {-1.630268,-0.100880}, + {-0.754618,-0.275004}, + {-1.115735,-0.519031}, + {-0.156714,-0.646913}, + {-0.315061,0.123277}, + {-0.414084,-0.655534}, + {0.469319,-0.330941}, + {0.647004,-0.163404}, + {-0.255922,1.618105}, + {-1.376396,-0.535470}, + {1.334960,-0.249415}, + {-0.920735,-0.189727}, + {2.380895,-0.939174}, + {-0.661720,0.252740}, + {1.948294,-0.096848}, + {-1.518951,-0.774151}, + {0.370676,-0.131442}, + {0.135880,0.077151}, + {-0.793921,0.407360}, + {0.434706,0.909590}, + {-0.892096,0.523341}, + {-0.077199,0.691331}, + {-0.703000,0.726934}, + {-0.793375,-0.399673}, + {0.170385,-0.177280}, + {0.497139,0.034646}, + {-0.972295,1.093025}, + {-0.260981,-0.434597}, + {0.295369,0.422417}, + {0.508523,0.711213}, + {-0.589540,0.610066}, + {0.089695,0.577849}, + {-1.169455,0.371278}, + {0.097553,-0.508773}, + {-1.427358,-0.450822}, + {0.764169,-0.321795}, + {0.281425,1.167852}, + {-0.513064,-0.109472}, + {1.086924,0.792903}, + {-0.003835,0.815400}, + {-0.876442,-0.231937}, + {0.483821,-0.227180}, + {0.779304,0.300537}, + {-1.021341,-1.075650}, + {-0.042599,1.217835}, + {-0.124324,1.154569}, + {0.983924,0.128325}, + {-0.262283,-0.571139}, + {0.163939,0.036503}, + {0.502541,-0.457276}, + {0.027506,0.551723}, + {-0.759208,-0.190703}, + {-0.532469,1.757544}, + {-0.097832,1.793890}, + {-0.233310,0.236538}, + {-0.296963,-0.245692}, + {0.331985,0.497470}, + {1.077897,-0.029477}, + {0.485004,-1.550032}, + {0.829323,-1.208018}, + {-0.417397,-0.885481}, + {-0.910960,0.333680}, + {0.505911,0.222267}, + {-0.779049,-0.648859}, + {0.024723,-0.506963}, + {-1.044112,0.858742}, + {0.349329,0.199761}, + {0.426148,0.579699}, + {1.397881,-0.625570}, + {-0.999539,0.150193}, + {-0.506555,-0.493017}, + {0.815503,-1.014094}, + {-0.309845,0.860823}, + {0.636101,0.034581}, + {0.383700,0.629026}, + {0.046350,-0.409060}, + {0.382661,0.192436}, + {1.578886,0.214420}, + {-0.287174,0.113654}, + {-0.567400,0.209722}, + {0.432908,-0.738713}, + {-0.114021,1.023082}, + {-0.087467,-0.003324}, + {1.628689,0.382128}, + {0.930859,-0.955031}, + {0.365787,-0.587545}, + {-0.566131,0.401941}, + {1.205574,-0.693033}, + {1.041772,-0.318306}, + {0.520455,-0.180903}, + {1.313961,0.417802}, + {-0.785333,-0.826391}, + {-0.003165,0.987190}, + {0.202221,-1.499396}, + {-0.156205,0.234217}, + {-0.034555,-0.710464}, + {0.578915,0.025341}, + {-0.967250,0.482964}, + {-0.125553,0.645679}, + {0.121600,0.282214}, + {-0.467374,-0.523647}, + {0.801851,0.110140}, + {-0.202959,0.245792}, + {0.964451,-0.823875}, + {-0.720574,-0.733981}, + {-1.552269,0.726240}, + {0.240196,0.208363}, + {-1.020113,0.453542}, + {0.835032,0.546624}, + {-0.427770,0.890482}, + {0.244842,-0.570207}, + {0.187974,-0.525677}, + {-0.033276,-0.603446}, + {0.681630,0.069452}, + {-0.076943,1.444004}, + {-0.466249,-1.483352}, + {-0.333822,-0.553728}, + {-0.464640,1.570671}, + {0.247143,-0.404809}, + {0.217763,-1.913662}, + {0.569612,0.403222}, + {-0.950478,0.269484}, + {1.296281,-0.340172}, + {0.248056,-0.421869}, + {0.333895,1.464495}, + {-0.974868,0.646046}, + {0.432670,-1.031978}, + {1.128838,0.295748}, + {-0.460823,0.493682}, + {-0.717489,1.188427}, + {1.258650,-0.377973}, + {-0.828146,0.064178}, + {0.641771,-0.060587}, + {0.245022,0.356199}, + {0.154221,-0.400658}, + {0.570724,0.989517}, + {-0.412180,0.972591}, + {0.350613,0.545597}, + {1.122365,-1.975271}, + {0.160367,0.137915}, + {0.352691,-0.878584}, + {0.423026,0.373635}, + {-0.726179,0.179411}, + {-0.338326,-1.788241}, + {1.947859,1.575207}, + {-0.951344,0.536022}, + {0.247396,-0.497166}, + {0.724586,-0.403144}, + {-0.061126,-0.153871}, + {0.528230,-0.103315}, + {-0.022290,-0.672390}, + {-0.000978,-0.182703}, + {-0.241614,-0.359854}, + {0.220241,0.428535}, + {0.798476,-0.295902}, + {-0.146218,0.143398}, + {-0.619417,0.438462}, + {-0.308855,0.331077}, + {-1.361136,1.024312}, + {-0.647613,0.907512}, + {0.233092,-1.078341}, + {1.052241,-0.621467}, + {-0.198725,1.172681}, + {-0.081506,0.023033}, + {-0.547092,0.137317}, + {0.637615,1.859723}, + {-0.623497,-0.596191}, + {0.149195,-0.605881}, + {0.093756,0.630550}, + {0.213268,-0.787503}, + {0.426453,-0.185747}, + {-1.548568,0.881788}, + {0.051195,0.231489}, + {0.209291,-0.593744}, + {0.628475,0.857678}, + {-1.089235,-0.641101}, + {0.594605,-0.576514}, + {0.252215,-0.021007}, + {1.067553,0.471123}, + {0.321541,-0.402181}, + {0.284533,-0.960188}, + {0.541105,-0.082863}, + {0.565337,1.026278}, + {0.317525,-1.185003}, + {0.530922,-0.175306}, + {-0.946283,1.216512}, + {-0.462192,0.124213}, + {-0.067219,0.018689}, + {-0.295595,0.227283}, + {-1.116823,0.278792}, + {0.252187,-0.143898}, + {-1.275510,0.009213}, + {-0.097323,-1.128635}, + {-0.292395,-0.146099}, + {0.287647,0.343419}, + {-0.297120,1.037639}, + {-1.152909,-1.062561}, + {0.117167,0.480675}, + {0.542487,0.344975}, + {-0.269590,0.071787}, + {0.351416,1.336789}, + {-0.679649,1.205267}, + {0.158638,0.405538}, + {0.690315,-0.580242}, + {-0.528184,0.321935}, + {-0.275456,0.434026}, + {1.047915,-0.868060}, + {-0.268058,0.433124}, + {0.395739,0.168345}, + {-0.706243,0.261628}, + {-1.686516,0.100118}, + {1.210646,0.205449}, + {-0.403912,1.149188}, + {0.218345,-0.059565}, + {0.666191,-1.686280}, + {-1.080821,0.264224}, + {0.133752,-0.095685}, + {-0.765833,-0.042006}, + {-0.851086,-0.571563}, + {-0.431850,-0.146573}, + {-0.083487,0.324847}, + {-0.458226,0.266507}, + {-1.653483,0.274261}, + {-0.892105,0.192638}, + {0.325240,0.618814}, + {0.839860,-0.650172}, + {0.586121,0.493141}, + {0.424046,-0.596069}, + {0.579320,-0.426532}, + {-0.860414,-0.096015}, + {1.231735,-0.063091}, + {0.667487,0.509589}, + {-0.244143,-0.241915}, + {0.392425,-0.336987}, + {-0.577080,0.077028}, + {-0.243798,0.518442}, + {-0.186535,-0.514620}, + {-0.350824,0.893193}, + {-1.068767,-0.852674}, + {0.256260,-0.692879}, + {0.700920,-0.234622}, + {-1.148149,0.242284}, + {0.140398,-0.995881}, + {-1.137315,-0.101466}, + {0.642480,1.006613}, + {-0.539053,-0.106642}, + {0.894393,-0.576259}, + {0.055949,-0.805028}, + {-0.346054,-0.817483}, + {-0.401898,0.351013}, + {0.959261,-0.648991}, + {-0.653608,1.002869}, + {0.844153,0.220495}, + {-0.631592,-0.347616}, + {-0.725926,1.047737}, + {0.236023,0.283730}, + {0.123264,0.320307}, + {1.048852,-0.451049}, + {-0.411348,-0.986237}, + {-0.003611,-1.217079}, + {-0.178690,0.757153}, + {-0.913871,0.555166}, + {0.359649,-0.092164}, + {-0.762808,-1.868481}, + {-0.459054,-0.002625}, + {-0.409244,-0.658257}, + {0.538408,-0.336349}, + {-0.748231,-0.660716}, + {-0.250560,-0.025371}, + {0.456996,-0.231112}, + {0.299549,-1.219953}, + {1.172228,-0.394426}, + {-0.378361,0.665830}, + {0.415112,0.418938}, + {-0.548112,0.102843}, + {-0.133962,-0.903369}, + {-0.468702,0.681193}, + {1.222459,1.556622}, + {0.578721,0.124503}, + {-0.465609,-1.236596}, + {0.344855,0.485644}, + {-0.769591,0.360454}, + {-0.285111,-0.421824}, + {0.383924,-0.612774}, + {-0.340934,-0.217555}, + {1.033859,-0.961846}, + {-0.638277,-0.124713}, + {0.713854,-1.025591}, + {0.641113,0.723899}, + {-0.714185,0.025297}, + {-0.243242,-0.632974}, + {0.004698,-0.561759}, + {0.826869,1.173450}, + {0.966164,-0.707247}, + {-0.542635,1.049767}, + {-0.518506,-0.302156}, + {0.545221,-0.705138}, + {-0.102193,-0.186358}, + {0.365136,0.095347}, + {0.201770,-0.480568}, + {0.016332,0.581984}, + {-0.200321,-0.337498}, + {0.655831,0.299526}, + {-0.638049,0.233237}, + {1.424052,-0.333001}, + {0.052369,-0.134042}, + {-0.288253,1.232961}, + {0.183916,-0.245885}, + {0.477995,-1.296021}, + {-0.386385,-0.681627}, + {-0.871080,0.846105}, + {0.995819,-0.009435}, + {0.296135,0.463088}, + {0.504048,0.026186}, + {0.829560,-1.492906}, + {0.848924,-0.979175}, + {-0.656607,-0.872808}, + {0.063178,-0.565062}, + {-0.543978,0.668214}, + {-0.282821,-0.442039}, + {0.348789,0.133412}, + {-0.108280,-0.389999}, + {0.463560,-0.296653}, + {0.762565,-0.939430}, + {0.562681,0.745310}, + {-0.475544,-0.766254}, + {-0.140575,0.199589}, + {-0.681751,-0.057548}, + {-1.695019,-0.254700}, + {-0.534453,-1.252818}, + {-0.097463,-0.033164}, + {0.013134,0.327568}, + {0.838379,0.372423}, + {0.665435,-1.323001}, + {-0.545902,1.244126}, + {-0.272644,0.828079}, + {-0.246118,0.092456}, + {1.201818,0.219538}, + {0.298446,0.028810}, + {0.130586,-1.150124}, + {-0.189182,0.693609}, + {-0.220031,0.117008}, + {0.553178,-1.375086}, + {0.699370,0.127016}, + {0.961901,0.570180}, + {-0.251472,-0.425322}, + {0.846566,0.693479}, + {-0.078834,-0.799604}, + {-0.174930,-0.493040}, + {-1.328997,-0.114349}, + {0.127677,0.719281}, + {-1.121602,-1.078388}, + {-0.664228,1.733879}, + {1.383895,-0.064893}, + {0.539674,-2.059210}, + {-1.022668,0.526521}, + {0.733573,-0.308119}, + {-0.188367,1.132020}, + {0.610091,-0.282697}, + {0.423397,0.009993}, + {0.393636,-0.644193}, + {0.128715,-0.357517}, + {0.517623,-0.447918}, + {0.158965,1.067064}, + {0.371601,-0.581261}, + {-0.927113,-0.619224}, + {1.303716,-1.165499}, + {0.322206,0.200896}, + {-0.825444,0.595176}, + {0.762828,-1.494917}, + {1.295692,-1.470736}, + {0.013767,-0.200418}, + {-0.238785,-0.631234}, + {-0.022044,-0.446997}, + {0.407923,-0.215020}, + {-0.523749,-0.371120}, + {0.713283,0.184292}, + {-0.268406,-0.526939}, + {0.138893,-1.775308}, + {-0.937942,1.003578}, + {-0.063107,0.546195}, + {-0.317434,0.743692}, + {0.750336,0.359023}, + {-0.674060,-1.184966}, + {2.118200,0.150908}, + {0.312808,0.577403}, + {-0.115615,-0.380405}, + {0.093313,0.277709}, + {0.781873,-0.614278}, + {0.868257,-0.087240}, + {0.696852,-0.037947}, + {0.418258,-0.615206}, + {-0.502346,-0.363948}, + {0.607748,1.486425}, + {-0.564759,0.351200}, + {-0.583354,-1.006512}, + {0.270122,-0.440737}, + {0.779603,-0.084426}, + {-0.007898,-0.106035}, + {0.320554,0.214694}, + {-0.177764,-1.660508}, + {0.364537,-0.190366}, + {0.239589,-0.553225}, + {-0.383177,0.604839}, + {0.055061,0.152930}, + {0.224963,0.592680}, + {0.196291,-0.213862}, + {-0.145762,0.712477}, + {0.968561,0.056109}, + {0.598746,0.380951}, + {0.702798,0.468182}, + {-0.052676,-0.835553}, + {0.586200,-0.290487}, + {-0.725037,-0.556427}, + {0.267490,-0.645407}, + {-0.859603,0.256510}, + {-1.167129,-0.483687}, + {-0.249517,-0.840456}, + {-0.081174,-0.251055}, + {-0.107692,1.266167}, + {0.924662,-0.992418}, + {0.178689,0.182523}, + {-0.559303,-0.632352}, + {-0.754172,-0.225666}, + {0.422639,-0.820600}, + {0.948590,1.657351}, + {-0.281405,-0.169279}, + {0.057540,0.103383}, + {0.965329,-0.888955}, + {-0.568440,1.343059}, + {-0.186236,-0.018155}, + {-0.110761,-0.791860}, + {-0.525465,-0.172692}, + {-0.820201,-0.368637}, + {0.488156,-0.537817}, + {-0.115891,-0.625948}, + {-0.244424,-0.566245}, + {-0.034738,-0.193282}, + {0.995996,1.175802}, + {0.633444,1.030137}, + {0.651915,0.959199}, + {1.923756,-0.905022}, + {-1.312415,0.148790}, + {-0.096677,-0.026953}, + {0.390501,0.602404}, + {0.867561,-0.780886}, + {-0.248516,0.609102}, + {0.754966,-0.110229}, + {0.193581,-1.306164}, + {-0.006005,-0.435352}, + {-0.309464,0.845346}, + {-1.119399,-0.660584}, + {1.827421,-0.534782}, + {1.365352,-0.177950}, + {-0.386234,-0.795813}, + {-0.468086,-0.003789}, + {0.881840,0.036744}, + {-0.514770,-0.810572}, + {0.151684,0.110164}, + {0.458389,0.323786}, + {-0.120473,-1.314917}, + {0.204646,1.100970}, + {0.020544,0.284023}, + {-1.429218,1.177050}, + {0.905353,0.885557}, + {-1.160315,1.849909}, + {-1.424230,-1.176559}, + {-0.905514,0.530293}, + {0.395918,0.575079}, + {-0.420402,0.728284}, + {-0.068162,-0.727264}, + {-1.231408,0.352116}, + {-0.629367,0.024142}, + {-0.776077,0.835663}, + {1.388639,1.024976}, + {0.079304,0.123010}, + {-0.742089,-0.595562}, + {0.413633,0.178427}, + {1.148139,0.310845}, + {-1.223023,-0.107151}, + {0.893529,-0.158779}, + {0.455295,0.570938}, + {0.361370,0.154722}, + {0.452221,0.207669}, + {0.342056,0.533909}, + {1.139659,0.955398}, + {0.954993,0.826294}, + {0.436891,0.869010}, + {0.229994,-0.244482}, + {0.099847,-0.476888}, + {-0.522935,0.503299}, + {-0.406360,0.610955}, + {0.944435,-0.128204}, + {0.065770,-1.670135}, + {0.740768,-0.036056}, + {-0.584472,-2.391807}, + {-0.818919,0.704807}, + {-0.164141,0.180842}, + {-0.896661,0.450317}, + {0.871090,0.180263}, + {0.135365,1.111712}, + {-0.834453,-0.341845}, + {-0.257690,-0.035587}, + {-0.462253,0.690694}, + {-0.658742,-0.564799}, + {-0.424196,2.228747}, + {0.041939,-0.154539}, + {-0.403634,0.374377}, + {-1.213989,-0.071425}, + {-1.333255,0.641658}, + {0.544231,0.130374}, + {-0.285297,-0.101088}, + {0.409156,0.353600}, + {-0.616579,-0.490166}, + {0.138329,1.149111}, + {-0.089856,-0.208823}, + {0.269195,0.727445}, + {-0.532599,0.947341}, + {1.064642,0.518264}, + {-0.160568,0.127441}, + {-0.982412,0.428601}, + {0.671490,-0.105111}, + {-0.544419,0.539514}, + {0.650748,0.073317}, + {1.383643,0.790720}, + {0.254461,-1.150863}, + {-1.104232,0.797452}, + {-0.254246,-0.008363}, + {-0.300772,-0.103863}, + {0.576015,0.396718}, + {1.176581,0.732102}, + {0.153447,0.054295}, + {0.000016,-0.797409}, + {0.700654,0.049420}, + {-0.194685,-0.862644}, + {-0.478585,-0.200502}, + {-1.569114,-0.100896}, + {-0.099857,1.359227}, + {0.499119,0.183329}, + {-0.594711,0.176504}, + {0.329206,1.105346}, + {0.247398,-0.273746}, + {-0.345935,-0.650667}, + {-0.038984,-0.023328}, + {-0.333903,-0.697988}, + {-1.651307,-0.010374}, + {0.135007,-0.017740}, + {-0.899312,0.155947}, + {-0.464175,-0.248264}, + {0.009996,0.360149}, + {-0.695577,-0.382261}, + {-0.402334,-0.007657}, + {0.620490,0.453809}, + {0.091440,0.758711}, + {0.343166,1.541721}, + {0.429339,-0.421495}, + {-1.151836,0.034463}, + {-0.085981,0.906358}, + {-0.026440,1.303161}, + {0.193819,0.354018}, + {0.562069,-0.395005}, + {-0.439914,-0.948032}, + {-0.334438,0.562737}, + {-0.864347,0.208509}, + {-0.643184,-0.135769}, + {0.053163,0.285246}, + {1.646151,-0.432861}, + {1.132792,-0.101623}, + {-0.698541,0.212543}, + {-0.600253,-0.394334}, + {-1.414120,-0.017888}, + {-0.368393,-0.718877}, + {-0.680915,0.363811}, + {-0.319313,0.322213}, + {-0.244923,0.003331}, + {1.157367,-0.139673}, + {0.607064,-0.324347}, + {-0.644671,-0.765634}, + {0.089788,-0.064507}, + {-0.720007,-0.670351}, + {0.360654,0.469579}, + {-0.309126,-0.364294}, + {0.500641,-0.866124}, + {-0.320571,-0.281417}, + {-0.224328,1.348302}, + {0.115238,0.182192}, + {-0.936327,-0.335628}, + {0.137544,0.668139}, + {0.100546,-0.022904}, + {-0.024822,-0.108423}, + {0.011225,0.990800}, + {-0.279834,-0.438608}, + {-0.275984,0.874441}, + {-0.823737,0.963043}, + {-0.768202,1.310865}, + {-0.066729,1.666242}, + {0.907228,0.372265}, + {-0.319255,0.457291}, + {-0.671123,0.800845}, + {-0.077611,0.279797}, + {-0.194283,-0.608156}, + {-0.041376,-0.876926}, + {-0.020332,-0.458281}, + {-0.440460,0.163008}, + {0.454897,0.330234}, + {-0.331951,-1.540866}, + {-0.633680,-0.034518}, + {0.757495,0.101301}, + {-0.833573,-0.786251}, + {0.965374,-1.392252}, + {-1.562416,-0.203946}, + {0.170349,0.102477}, + {-0.297897,0.362400}, + {-0.231639,-0.158231}, + {0.959721,0.665986}, + {1.098533,0.573646}, + {-0.091776,0.472902}, + {0.533416,-1.030881}, + {0.526210,1.060061}, + {-0.223194,0.188243}, + {-0.611879,-1.854657}, + {0.428365,0.538233}, + {-1.044283,-0.338610}, + {0.027523,0.049873}, + {-0.049738,0.893777}, + {-0.579892,-0.756394}, + {-0.740191,0.748805}, + {-0.542898,-1.202564}, + {0.825741,-0.048525}, + {0.539443,-1.170783}, + {1.033500,0.348025}, + {0.715562,0.128228}, + {0.108775,0.269008}, + {0.955005,0.864143}, + {-0.207915,0.674605}, + {1.403034,0.313231}, + {0.296529,-1.450481}, + {0.548132,1.537754}, + {-0.021173,-0.057581}, + {0.936941,0.628264}, + {-0.628539,0.130955}, + {0.068526,0.421100}, + {-0.403953,-1.199911}, + {1.453961,-0.456943}, + {-0.201087,0.108304}, + {0.271445,0.783038}, + {0.520304,0.921613}, + {-1.395021,-0.780013}, + {0.131228,-0.186797}, + {-0.855353,0.537660}, + {-0.337268,-0.724038}, + {-0.432516,0.344531}, + {-0.767389,0.464180}, + {-1.035498,0.530026}, + {0.441212,0.883714}, + {1.105195,-0.408422}, + {-1.103082,-0.169069}, + {-0.295896,0.969360}, + {-0.478854,-0.782398}, + {0.416756,0.605709}, + {0.733967,0.544675}, + {0.971172,0.356416}, + {0.599161,-1.120536}, + {-0.248181,0.556249}, + {0.887368,-0.641314}, + {0.673646,-0.843245}, + {-0.312341,0.397320}, + {0.729720,1.731690}, + {-0.801968,0.323223}, + {-0.536627,0.327754}, + {1.622578,-0.105935}, + {-1.750543,-0.207221}, + {-1.908934,-0.520022}, + {-1.469000,0.309230}, + {-0.115261,0.192568}, + {-0.122709,0.084334}, + {0.189000,0.696045}, + {0.493215,-1.328955}, + {-0.721492,-0.333963}, + {1.161054,-0.002184}, + {0.512723,1.972711}, + {-0.444754,-0.130414}, + {-0.868852,-0.249870}, + {-0.816170,0.515289}, + {1.022070,-0.030086}, + {-0.638999,-1.338192}, + {0.242959,0.271414}, + {-0.602075,-0.601963}, + {0.423126,0.633321}, + {0.223533,0.010055}, + {0.646706,1.390161}, + {-0.357542,0.682465}, + {-2.009524,-0.830636}, + {-0.778937,-0.933904}, + {0.175269,-1.002111}, + {-0.634257,0.665399}, + {-0.657813,0.290878}, + {0.747272,-0.428248}, + {0.007320,-0.768663}, + {1.248404,-0.212529}, + {-0.270378,0.342898}, + {-0.666666,-1.140755}, + {0.196211,1.501705}, + {0.302202,0.083526}, + {0.991868,-0.189178}, + {0.155298,-1.253545}, + {-0.466703,-0.348936}, + {0.716118,0.723010}, + {-1.105804,-0.353013}, + {0.555094,0.469380}, + {-0.287244,1.500390}, + {-0.246485,0.237558}, + {-0.510462,-0.763731}, + {-0.561608,-0.551817}, + {-0.069471,0.227096}, + {1.137497,0.948345}, + {0.172721,-0.065489}, + {0.748416,0.831896}, + {-0.155555,-0.792121}, + {-0.477453,0.763809}, + {0.124495,0.775665}, + {-0.615673,0.574783}, + {0.204540,0.358135}, + {-0.903123,-0.381671}, + {0.487242,0.995473}, + {-0.926024,0.064502}, + {0.929931,0.258942}, + {0.312395,-0.341280}, + {0.549625,-0.936615}, + {-0.861195,0.434874}, + {1.386344,1.002935}, + {0.150581,1.440757}, + {-0.223814,0.226411}, + {-1.239970,0.911429}, + {0.525911,-0.294822}, + {0.774677,-0.033484}, + {-0.481076,-0.140935}, + {0.097171,0.602864}, + {0.273227,1.072022}, + {0.309890,0.473631}, + {-0.466034,0.111893}, + {-0.691036,0.030113}, + {-0.821156,-0.280252}, + {-0.526502,-0.289481}, + {0.720837,0.871377}, + {0.790615,0.875528}, + {0.797253,0.484843}, + {0.111852,-1.055992}, + {0.169400,0.295747}, + {1.171135,-0.137264}, + {0.290213,0.662161}, + {-0.393626,-0.143884}, + {-0.749653,-0.256666}, + {0.260497,0.439210}, + {1.135854,-0.431511}, + {0.258906,0.670444}, + {-1.066888,-0.119150}, + {0.453981,0.837529}, + {0.411804,0.845536}, + {-1.059449,0.036210}, + {0.764611,0.473083}, + {-0.027347,0.346493}, + {0.339275,-1.308645}, + {-0.110170,-0.533479}, + {-0.509505,0.121273}, + {0.007601,0.222193}, + {0.245116,1.845521}, + {-0.063218,0.106742}, + {0.947333,0.014644}, + {0.082611,-0.363300}, + {0.686892,-0.186853}, + {1.235221,0.021879}, + {-0.257780,0.017378}, + {0.015664,0.281120}, + {0.190295,0.897504}, + {0.379354,0.120590}, + {0.427338,-0.164006}, + {1.172924,0.915224}, + {0.721570,-1.247163}, + {0.084550,0.312004}, + {-1.286085,0.190192}, + {0.284174,-0.119200}, + {-0.010789,-1.373622}, + {-0.185711,-0.418035}, + {0.505770,0.363854}, + {0.061188,0.700576}, + {-0.462928,0.573874}, + {0.740084,-0.629523}, + {0.528961,1.652541}, + {0.623314,0.190869}, + {-0.597870,-0.927126}, + {0.533533,0.251731}, + {0.277124,1.153433}, + {0.851106,-0.786252}, + {-1.330171,1.147345}, + {-0.464697,0.070864}, + {0.212042,-0.145618}, + {-0.687571,1.186801}, + {0.481482,0.178028}, + {-0.149879,0.044565}, + {-0.223578,0.104703}, + {0.574649,-0.285176}, + {-1.833740,0.013517}, + {-1.725660,-0.234990}, + {-0.463536,0.588847}, + {0.902710,0.788674}, + {-0.254637,-0.532033}, + {0.572229,1.349808}, + {-0.063305,-0.215431}, + {0.516429,0.299522}, + {-1.130246,0.308680}, + {-0.900674,-0.507683}, + {-0.583496,0.223002}, + {-0.592279,-0.950809}, + {-0.100426,-0.586777}, + {-0.028076,0.677118}, + {-1.803788,-0.573550}, + {-1.088822,1.183910}, + {0.596317,-1.549580}, + {0.668189,-0.306555}, + {-0.020441,0.607971}, + {0.853888,0.246148}, + {0.879904,1.225752}, + {1.614124,0.830021}, + {-0.291743,-0.135559}, + {0.458523,-0.480775}, + {0.275255,0.138678}, + {0.883940,0.525436}, + {-0.542455,-0.182128}, + {0.999170,-0.332015}, + {0.099745,0.792268}, + {0.708489,0.722752}, + {-1.050482,-0.202141}, + {-1.139348,0.223888}, + {-0.165198,-0.429917}, + {0.319484,0.084528}, + {0.047179,0.526009}, + {-1.274314,-0.347434}, + {-0.377124,0.028014}, + {-0.360881,0.915426}, + {-0.725553,-1.003947}, + {0.135016,0.821066}, + {0.748460,0.802817}, + {0.130105,0.256667}, + {-0.269583,0.719719}, + {0.649401,0.873793}, + {0.987143,0.161186}, + {-0.240362,0.789136}, + {-0.121450,0.924916}, + {-0.259843,0.404871}, + {0.016597,-0.851491}, + {-0.042926,-0.009539}, + {-0.196370,-0.423108}, + {-1.535905,0.622120}, + {-0.853325,0.069428}, + {-0.713308,0.493254}, + {0.023896,0.016209}, + {-1.230161,0.130732}, + {0.290839,-1.217903}, + {-0.256162,-0.539416}, + {0.629392,0.257101}, + {0.982458,-0.309371}, + {1.120927,1.254970}, + {2.080817,-0.873252}, + {-0.419871,0.427512}, + {-0.008634,0.589147}, + {-1.033991,-0.181336}, + {0.243382,-0.186332}, + {0.333660,-0.327366}, + {0.221360,0.080553}, + {0.704698,0.309089}, + {-0.450895,0.130395}, + {0.168094,-0.573576}, + {1.018659,0.358155}, + {0.418952,-0.622499}, + {-0.997778,0.362820}, + {0.222152,-0.219744}, + {-0.166802,0.480155}, + {-0.919339,-0.890832}, + {-0.286039,0.292035}, + {0.448303,-0.301572}, + {-0.449567,1.207951}, + {0.897655,-0.477985}, + {0.503965,-0.545751}, + {0.401514,-1.644501}, + {0.271308,0.286347}, + {-0.284592,0.577983}, + {-0.009884,0.478410}, + {1.517272,-1.524143}, + {-1.437806,0.700884}, + {-0.275556,-1.439763}, + {1.893314,-0.130608}, + {-0.166340,0.557318}, + {-0.691321,0.091720}, + {-0.106616,0.561819}, + {-0.383283,-0.766395}, + {0.775944,0.312252}, + {0.208777,-0.783645}, + {-0.680476,0.061669}, + {0.183494,-1.161476}, + {-0.392678,-0.523162}, + {-0.073376,0.398882}, + {1.160349,-0.807825}, + {-0.986883,0.472541}, + {-0.034247,-0.317474}, + {0.352450,-0.542563}, + {0.578726,0.400276}, + {-0.141064,-0.541357}, + {-0.202180,0.303236}, + {-0.873698,-0.388820}, + {-1.241604,-0.714657}, + {0.264090,-1.498626}, + {0.602075,0.227838}, + {-0.154430,0.667914}, + {-1.462996,0.458992}, + {-0.822634,0.424372}, + {-0.658739,0.865879}, + {-0.422218,0.182616}, + {0.053181,-0.072330}, + {-0.062806,0.762247}, + {0.835446,-1.311912}, + {0.087703,0.026320}, + {0.542328,-0.151886}, + {-1.828505,0.593531}, + {-1.080520,1.086271}, + {0.849256,0.525323}, + {0.497942,0.697413}, + {-0.244531,1.043887}, + {-1.458797,-0.216500}, + {-1.214738,-1.022308}, + {0.159061,-0.098262}, + {0.727952,1.271393}, + {-0.754485,0.954004}, + {-0.176632,0.615747}, + {0.028411,-0.767032}, + {-0.748180,-0.441965}, + {0.242074,-0.788659}, + {0.670060,1.096734}, + {0.154009,-1.243446}, + {0.850586,-1.501833}, + {1.150581,0.774110}, + {-0.989572,0.879881}, + {-0.575178,0.294339}, + {0.003447,0.489239}, + {1.145287,0.324623}, + {0.184091,-1.062771}, + {0.158889,0.215402}, + {0.201577,0.011042}, + {-0.181512,-0.504270}, + {-0.055374,0.590276}, + {-0.531721,-0.884568}, + {-0.209470,-0.372283}, + {-1.255795,-0.759923}, + {0.366333,-0.922058}, + {1.322717,-0.181335}, + {-0.678275,1.164669}, + {-0.750670,-0.137794}, + {0.112897,0.410423}, + {0.191286,0.113733}, + {-0.452766,0.723349}, + {-0.736083,-0.170689}, + {0.692416,0.132405}, + {1.018870,-1.559833}, + {-1.443120,-0.229399}, + {0.716224,0.947647}, + {0.279685,0.653005}, + {0.710520,0.177459}, + {-0.557518,-1.425511}, + {-0.256127,0.315232}, + {-0.082281,0.579783}, + {-0.857951,-0.531888}, + {-0.747733,1.197090}, + {-0.006789,-0.966185}, + {-0.612837,-0.621645}, + {1.132351,0.561013}, + {0.365387,0.280771}, + {0.819015,0.005642}, + {0.077710,-0.275083}, + {-0.589305,0.053577}, + {0.746235,0.106363}, + {0.483010,-0.756925}, + {0.555464,-1.006915}, + {1.083126,-0.706053}, + {-0.114394,-0.110508}, + {1.101602,-1.451006}, + {0.482109,0.584615}, + {0.242472,-1.768441}, + {2.096101,0.679566}, + {-0.527421,-0.071384}, + {1.001152,0.540874}, + {1.515730,-0.408948}, + {-1.081754,-0.587317}, + {-1.534001,-0.908835}, + {0.161009,0.022969}, + {-0.555147,0.084544}, + {-0.049147,0.004229}, + {-0.281130,1.140545}, + {1.877216,0.501126}, + {0.834883,0.052106}, + {0.108568,-1.416109}, + {-0.496393,-0.851726}, + {-0.546421,-0.850434}, + {-0.100497,0.366563}, + {-0.505233,-0.181871}, + {0.003181,-0.257644}, + {-0.427184,0.802357}, + {2.175829,0.214003}, + {-1.470833,-0.859757}, + {0.177123,-0.005589}, + {-0.155512,-0.028954}, + {-0.576782,-0.183170}, + {0.659928,0.889550}, + {0.547329,-0.667458}, + {1.543267,-0.883763}, + {-0.027341,-0.587168}, + {-0.767299,0.181322}, + {-0.058809,0.621716}, + {-0.136666,0.112151}, + {1.320616,-0.923620}, + {-0.758136,0.563569}, + {-0.896224,0.826225}, + {0.415972,1.835909}, + {-0.226084,0.573171}, + {0.648683,0.868590}, + {0.148597,0.095773}, + {-0.923255,-0.006413}, + {0.008498,0.345011}, + {-0.438936,-0.177137}, + {-0.220799,0.289912}, + {0.374629,-1.246758}, + {-0.405352,-0.920192}, + {0.267008,0.274742}, + {-0.976383,-0.137177}, + {0.688771,1.380999}, + {-0.478994,-0.518246}, + {0.005349,0.286922}, + {-0.296630,0.203362}, + {-0.543880,-0.873593}, + {1.511098,-0.907825}, + {0.433183,-1.112696}, + {0.716750,-0.497192}, + {0.545947,0.471261}, + {1.624519,-0.037766}, + {-0.383763,-0.364185}, + {-0.361717,0.471989}, + {-0.997984,1.419701}, + {0.816524,-0.299520}, + {-0.245384,0.189731}, + {0.065447,-0.059209}, + {0.779328,0.204790}, + {0.731539,-0.345297}, + {0.404574,0.248687}, + {1.043347,2.307089}, + {0.334605,-0.253063}, + {-0.216840,-0.098456}, + {0.350238,-0.382642}, + {0.349119,-0.532957}, + {-1.859158,-0.233730}, + {0.862392,-0.445325}, + {-0.101752,-0.036104}, + {-0.378956,-0.338704}, + {-0.994805,0.464318}, + {-0.996382,0.208659}, + {0.808323,0.455032}, + {-2.112046,0.061540}, + {0.819598,0.624593}, + {0.878981,1.053073}, + {-0.341489,-0.442258}, + {-0.496671,-0.854729}, + {0.065132,0.231571}, + {-0.246478,0.530029}, + {-0.284105,0.054951}, + {0.376465,-0.172238}, + {0.299234,0.652101}, + {-0.627995,1.886543}, + {-0.482888,-0.856058}, + {-0.830026,-0.832774}, + {0.779929,0.337171}, + {-0.369851,-0.412797}, + {-0.432700,0.692209}, + {-0.065776,1.142133}, + {1.054275,-0.392488}, + {-0.718737,-0.644947}, + {-0.076992,-0.542669}, + {-0.175216,0.328426}, + {-1.591234,-0.008631}, + {-0.369091,-0.575943}, + {-0.664370,0.357384}, + {-0.223916,-0.159983}, + {-0.524674,0.109124}, + {0.980964,0.285221}, + {1.085013,0.302149}, + {0.239054,-1.200352}, + {-1.131626,0.880129}, + {0.611328,0.462691}, + {0.109595,-0.038623}, + {0.137486,0.811529}, + {0.196871,-0.418142}, + {0.699526,-0.181672}, + {-0.998589,0.332045}, + {-0.339367,-0.358573}, + {-0.870253,0.811889}, + {0.424311,2.218276}, + {0.122027,0.056903}, + {-0.485555,-0.599874}, + {-0.023325,0.457989}, + {-0.257390,0.531017}, + {-0.594800,-0.363526}, + {1.037002,0.461854}, + {0.667577,0.489237}, + {0.025804,0.603610}, + {-0.453581,-0.162107}, + {0.230955,-0.243543}, + {-0.669782,0.966822}, + {-0.624782,-0.044558}, + {-0.787855,0.834564}, + {-0.309755,-0.555690}, + {0.895544,0.561778}, + {-0.081447,-0.146939}, + {0.741198,-0.128052}, + {0.669056,0.986545}, + {-0.747874,0.482845}, + {0.073550,-0.909752}, + {-0.872751,-0.413878}, + {-0.863929,-0.294266}, + {1.093727,-0.577195}, + {-0.161357,0.324918}, + {0.125704,0.723239}, + {-0.766171,-0.998274}, + {-0.023512,0.626686}, + {-0.790729,-0.296770}, + {2.140339,0.378394}, + {-0.262331,0.246625}, + {-0.856882,-0.281878}, + {0.997209,0.093078}, + {1.148219,-0.546145}, + {-0.030454,0.592030}, + {0.076696,0.233782}, + {-0.141260,-0.777390}, + {-0.589189,-0.483685}, + {0.289672,0.386135}, + {-1.264861,-0.995417}, + {-0.042752,-0.532604}, + {-0.134781,0.365284}, + {-0.340780,1.472232}, + {-1.483415,0.914143}, + {-0.283508,0.156881}, + {-0.736152,-1.343692}, + {-0.096745,0.290601}, + {0.091744,0.223455}, + {-0.353464,0.284825}, + {-2.136104,-0.528703}, + {0.494303,0.010275}, + {0.096905,-0.401126}, + {0.727808,0.185508}, + {-0.613681,0.534158}, + {1.044872,0.971303}, + {0.717104,0.100286}, + {-1.419618,-0.604448}, + {-0.410767,-0.231726}, + {0.848536,0.951917}, + {0.746859,-0.161283}, + {-1.056914,-0.626140}, + {-0.302984,0.411916}, + {-0.391683,0.373145}, + {-0.314457,0.491804}, + {1.239795,-0.694703}, + {-0.168077,-0.742324}, + {0.053671,0.573151}, + {1.116908,-0.547143}, + {-0.580176,1.202944}, + {0.088589,-0.455011}, + {0.779909,0.947051}, + {-0.559228,-0.818329}, + {-0.112108,-0.428851}, + {0.483455,0.814911}, + {1.219918,-1.265525}, + {-0.808586,0.580155}, + {-0.538486,-0.056154}, + {0.696324,0.122801}, + {-0.312645,-0.640077}, + {0.504048,-1.031634}, + {0.178747,0.494393}, + {1.744485,1.430984}, + {-0.106728,0.085838}, + {-0.572292,0.236523}, + {0.052278,0.163252}, + {0.083152,-0.214327}, + {0.114333,0.425771}, + {0.359542,-0.296919}, + {-0.935315,0.054319}, + {0.076361,-0.824908}, + {-0.081657,0.104635}, + {-0.267140,-0.395640}, + {0.426262,-1.206860}, + {0.257655,0.559848}, + {0.244592,1.151796}, + {0.897633,-0.515393}, + {0.418324,0.647156}, + {-0.741549,0.112829}, + {0.988401,-0.625204}, + {0.369894,-0.802808}, + {0.658272,-2.303792}, + {-0.215105,1.646744}, + {0.519888,1.012419}, + {-0.238965,-0.324462}, + {-0.112710,0.191850}, + {-0.066331,-1.146826}, + {-0.038528,-0.023964}, + {0.373568,0.001974}, + {-0.864264,-0.906543}, + {0.679871,0.421732}, + {-0.043741,1.101931}, + {-0.552452,-0.138525}, + {-0.095636,-0.883681}, + {-0.072871,0.876045}, + {-0.238791,0.132820}, + {0.244078,-0.390211}, + {-0.082340,0.487018}, + {0.796116,0.096262}, + {0.408338,0.230686}, + {-0.441585,-0.626388}, + {0.365510,0.719968}, + {0.126699,-0.388437}, + {0.110592,-0.075274}, + {2.264902,-1.563334}, + {-0.272466,-0.015424}, + {0.608222,1.351945}, + {-1.147737,1.113406}, + {0.284979,-0.205787}, + {-0.450449,0.238860}, + {1.027885,-0.840673}, + {-0.455186,-0.221859}, + {-0.938632,-2.082159}, + {1.391911,0.802204}, + {0.975475,-0.276338}, + {-0.243330,-0.064295}, + {0.138971,0.536216}, + {0.691166,0.177819}, + {1.026026,-1.879955}, + {-0.187583,0.063026}, + {-0.074402,-0.288843}, + {-0.243687,0.652614}, + {-1.212718,-0.767727}, + {0.251387,0.506600}, + {-0.660165,0.422242}, + {0.679188,1.371130}, + {-0.170699,-0.614176}, + {0.520129,-0.476992}, + {0.848435,-0.401178}, + {0.405024,-0.093561}, + {0.626143,0.076985}, + {0.295405,-0.762852}, + {0.549177,0.725065}, + {0.526664,0.156528}, + {0.977468,-0.889557}, + {-0.501570,-0.343316}, + {-2.000729,-1.623071}, + {-1.946962,0.328553}, + {0.777598,-0.856117}, + {-0.326491,0.100360}, + {0.198779,-0.141495}, + {-0.995361,-1.077920}, + {0.047623,-0.345042}, + {1.887429,-0.220347}, + {-0.157694,0.558083}, + {0.462495,-0.577463}, + {-0.215078,-0.858704}, + {1.253739,0.253756}, + {-0.169634,-1.005008}, + {-0.047497,0.740879}, + {-0.581666,0.040685}, + {-0.201745,1.662973}, + {0.317519,-1.047738}, + {0.967803,0.032915}, + {0.212464,0.089187}, + {0.718780,0.944362}, + {-1.948257,-0.331151}, + {0.922229,-0.646998}, + {-0.627500,0.378164}, + {-0.222201,-1.313254}, + {-0.266142,0.014479}, + {-0.424176,-0.993625}, + {-0.059820,0.319289}, + {-0.843761,-0.433096}, + {0.087394,-0.412266}, + {0.305914,-1.210798}, + {0.471462,0.643052}, + {1.252232,0.000904}, + {0.216403,-0.122659}, + {1.216662,0.381311}, + {1.296341,-0.140316}, + {-0.022925,0.194975}, + {0.862409,0.620792}, + {0.064807,1.351515}, + {-0.565969,-0.236810}, + {-0.155437,0.605360}, + {0.051996,0.325921}, + {0.150445,0.429124}, + {0.459964,0.511976}, + {0.428904,0.323586}, + {0.188316,-0.513317}, + {0.939000,1.371945}, + {0.649626,-0.024783}, + {1.376851,0.200015}, + {-0.048111,-1.183880}, + {-0.786435,-0.777301}, + {-0.241709,1.388115}, + {-0.109006,0.946566}, + {1.156840,1.561297}, + {-0.127523,1.700414}, + {0.761736,-0.883463}, + {-1.099255,-0.579362}, + {1.338325,0.799131}, + {-1.021709,0.379151}, + {-0.994399,0.063684}, + {0.818383,-0.273057}, + {0.668366,-0.297543}, + {-1.015779,0.889539}, + {0.913941,-0.629156}, + {-1.700678,0.079532}, + {0.256160,-0.369452}, + {0.150019,0.098158}, + {-0.119020,-1.045646}, + {0.741243,-0.716726}, + {-1.108436,0.863056}, + {0.307252,0.506812}, + {-0.171352,-0.503576}, + {1.261155,0.176500}, + {0.174007,-0.712686}, + {-0.141806,0.330990}, + {-0.109117,-0.228317}, + {0.203634,0.606610}, + {-0.712412,0.250541}, + {-0.137947,0.768827}, + {-0.744735,0.914129}, + {-1.167755,0.152721}, + {0.327150,-0.113608}, + {0.177006,-0.387882}, + {0.848800,0.884244}, + {-0.111614,-0.152304}, + {-0.300267,0.243189}, + {0.093467,0.290017}, + {1.352682,0.983666}, + {0.299551,0.490373}, + {-0.353636,0.504747}, + {0.613392,-0.069319}, + {1.054224,-0.871011}, + {2.339625,-0.344715}, + {-1.010481,0.230538}, + {-0.539544,-0.583309}, + {0.499012,0.102340}, + {-0.575380,0.783295}, + {0.805940,0.307558}, + {0.417599,-0.060720}, + {-0.177191,-0.033481}, + {0.109710,-0.280558}, + {0.446148,-0.888981}, + {0.195612,-0.768271}, + {0.039506,0.628468}, + {-0.492624,-0.504992}, + {-1.396420,-0.011736}, + {-0.046356,0.570300}, + {1.085142,-1.294011}, + {0.752542,-0.090279}, + {-1.473829,0.875925}, + {0.761430,-0.161165}, + {0.959718,0.258992}, + {0.460259,0.467090}, + {0.108088,-0.414908}, + {0.842820,0.796490}, + {0.248226,0.228333}, + {-0.166433,-2.038801}, + {-1.326628,-0.722473}, + {-0.475355,0.696458}, + {0.138056,0.500725}, + {0.168092,-0.866839}, + {0.019798,-0.447601}, + {-0.724926,0.046180}, + {-0.276801,1.054389}, + {0.003609,-0.044388}, + {-0.692568,0.378780}, + {-0.950437,-0.173717}, + {0.251268,-0.282029}, + {-0.439649,0.031710}, + {-1.080425,-0.215370}, + {0.719048,-0.338402}, + {-0.687926,-0.765291}, + {-0.401951,-1.098793}, + {-0.568740,-0.550765}, + {-1.100182,-1.817952}, + {0.427277,0.515781}, + {-0.227288,0.535524}, + {0.311561,-0.427903}, + {0.531886,0.638625}, + {-1.225598,-0.291583}, + {-0.123388,-0.705261}, + {0.958207,0.537159}, + {0.328784,-0.348955}, + {0.027395,-0.081869}, + {0.067524,0.032020}, + {0.528416,-0.759115}, + {0.941596,-0.896593}, + {-0.219845,-0.026498}, + {-0.032095,1.010285}, + {-0.610792,0.633952}, + {0.108644,0.649716}, + {0.552711,0.848451}, + {0.201063,0.583580}, + {-1.261548,0.388021}, + {0.890668,-0.175176}, + {0.607208,-0.307948}, + {-0.205981,0.041344}, + {-0.776250,0.177243}, + {0.337239,0.161071}, + {-0.037705,-0.120282}, + {-0.014045,-1.241609}, + {-0.555803,0.188605}, + {0.241814,-0.987252}, + {-0.463139,0.874492}, + {-0.070504,0.160308}, + {-0.178391,0.972757}, + {-0.366224,-1.177044}, + {0.971867,0.479103}, + {0.125259,0.461216}, + {0.694764,-1.494325}, + {-0.277845,0.320865}, + {0.616292,-0.626879}, + {-0.030863,0.874982}, + {-0.766846,-0.016767}, + {-0.369774,0.258101}, + {-0.149097,0.291851}, + {-0.493542,-0.295266}, + {1.146361,-0.267924}, + {-0.934380,-0.011444}, + {0.415305,0.183752}, + {-0.491891,-0.357477}, + {-0.560602,-0.794771}, + {0.317386,0.323920}, + {-0.500328,-0.562780}, + {0.041451,-0.181370}, + {-0.529525,-0.497591}, + {0.648109,0.580791}, + {-0.582613,-0.249940}, + {-0.051540,-0.826063}, + {1.646775,0.986751}, + {0.481024,-0.258589}, + {-0.789469,-0.719895}, + {0.638624,-0.406398}, + {-0.281974,-0.250588}, + {-0.619277,-0.458814}, + {1.953618,-0.616999}, + {1.097286,0.692794}, + {-0.079763,1.146230}, + {-0.662413,-0.114838}, + {-0.710125,-0.561579}, + {0.652582,-1.218519}, + {-1.107519,-1.568995}, + {-0.128567,-0.868703}, + {1.148380,-0.401765}, + {0.275385,0.300600}, + {0.619924,0.435204}, + {0.536274,-1.285634}, + {-0.410239,-0.168935}, + {0.305748,0.032075}, + {-0.278987,-0.244613}, + {0.272564,-0.215397}, + {0.442925,0.284863}, + {0.343083,-0.985089}, + {0.243655,-0.535491}, + {-0.058256,-0.138061}, + {1.469464,0.252023}, + {0.457389,0.293408}, + {-0.401809,0.313757}, + {0.756131,-0.077182}, + {-0.785143,0.185929}, + {0.335933,0.863780}, + {-0.386318,-0.435270}, + {0.083281,-0.052628}, + {0.228627,-0.248970}, + {0.607702,-0.139063}, + {-0.640376,-1.314560}, + {-0.128571,-0.846763}, + {0.614100,-0.123165}, + {0.129793,-0.321393}, + {-0.266171,-0.648007}, + {0.416713,-0.029613}, + {0.225510,0.728644}, + {0.393598,0.429328}, + {1.597007,-0.340253}, + {0.768635,0.000382}, + {0.010930,0.047671}, + {-0.193073,0.323188}, + {-1.230056,0.049060}, + {-0.445542,-0.226577}, + {-1.104063,-0.513824}, + {0.799375,0.141533}, + {0.706937,0.178929}, + {0.236867,0.128337}, + {-0.097298,-1.042810}, + {-0.735652,0.420616}, + {-0.588963,-0.623118}, + {-1.635909,0.027266}, + {-0.945824,1.046139}, + {-0.697924,-0.368466}, + {0.335071,-0.324357}, + {0.418055,-0.170021}, + {-0.243762,0.064872}, + {0.400947,-0.261076}, + {-0.356738,-0.672932}, + {1.059406,0.747656}, + {0.122394,-0.472220}, + {0.295724,0.705496}, + {-0.593362,0.561189}, + {0.827451,-0.913072}, + {0.575753,-0.582888}, + {-0.449487,-1.203258}, + {0.002070,-0.209496}, + {-0.819372,1.013107}, + {-0.223983,0.409793}, + {-0.105117,-0.240320}, + {0.505813,0.544863}, + {-0.062506,0.840417}, + {-0.074185,-1.498686}, + {-0.050561,-0.531679}, + {-0.407497,0.036355}, + {-0.640938,-0.667689}, + {0.015491,0.043753}, + {0.687209,-1.632878}, + {0.618242,-1.063427}, + {-0.241815,-0.839270}, + {0.602280,0.346705}, + {-0.701291,0.105225}, + {-0.407340,-0.339801}, + {-0.345298,-1.047087}, + {-0.134469,-0.783420}, + {-0.543787,1.086768}, + {-0.222433,-0.012544}, + {0.760408,-0.125045}, + {-0.585757,-1.015366}, + {-0.622145,-0.507983}, + {-0.105669,-0.357043}, + {-0.255007,0.058948}, + {-0.925739,0.274361}, + {-0.375779,-0.555844}, + {0.432849,0.596696}, + {0.057883,-0.368657}, + {-0.451532,-0.509855}, + {-0.756553,-1.048769}, + {-0.348112,-0.540951}, + {-0.831728,-0.598372}, + {0.332533,0.729092}, + {-0.135877,0.565378}, + {0.062568,-0.041090}, + {-0.367750,-0.509901}, + {-0.553719,-0.111947}, + {-1.021522,0.275873}, + {-0.050085,0.315809}, + {-0.928466,0.206772}, + {-1.191365,1.451377}, + {0.920724,1.063243}, + {-0.063332,-0.406468}, + {-0.515630,-1.279352}, + {0.487661,-0.818408}, + {-0.027072,-0.002359}, + {0.227643,0.002201}, + {1.084393,0.067814}, + {0.552847,0.362214}, + {0.199879,0.680228}, + {0.372569,0.685069}, + {0.292540,0.321147}, + {0.363653,0.247260}, + {-0.588959,-0.794473}, + {0.352148,0.263375}, + {0.524180,-1.109269}, + {-0.285997,-0.110195}, + {-1.179159,-0.952197}, + {0.573545,0.373895}, + {-0.224947,0.447142}, + {0.137062,-0.810396}, + {0.027311,-0.504226}, + {1.193193,0.163454}, + {0.554125,0.651387}, + {0.650385,0.140576}, + {-0.818715,-0.166574}, + {0.098850,0.910239}, + {-0.364286,1.396334}, + {-0.209655,-0.775914}, + {-0.370780,-1.208692}, + {-0.047578,0.440463}, + {1.233010,-0.648612}, + {-0.140918,0.321229}, + {0.196838,0.020064}, + {0.376956,0.417526}, + {0.185651,0.879134}, + {0.640523,-0.156284}, + {0.743281,-0.154083}, + {-0.360541,-0.915597}, + {-0.177171,-0.588081}, + {0.960627,-0.156028}, + {0.537350,-0.452252}, + {-0.235733,-0.027291}, + {-0.746237,-0.017686}, + {-0.406613,0.579063}, + {-0.994922,-1.060790}, + {-0.669324,0.430821}, + {-0.398869,-0.634411}, + {0.762944,-0.143725}, + {0.283899,0.878354}, + {-0.070692,-1.069885}, + {1.509989,-0.562410}, + {0.612479,-0.758589}, + {-0.176361,-0.743195}, + {-1.116313,-0.446980}, + {-0.007589,0.391379}, + {0.102751,0.106416}, + {0.704608,-0.302822}, + {0.013309,-0.343502}, + {1.258582,-0.751478}, + {-0.768097,-1.864140}, + {-1.428795,0.401529}, + {-0.620903,-1.088542}, + {-0.328758,-0.244061}, + {-0.351989,-0.302104}, + {0.040004,0.117331}, + {-0.116617,-0.037641}, + {-0.271723,0.244152}, + {0.359241,-0.171465}, + {-0.586401,-0.121233}, + {0.604605,1.161484}, + {-0.403794,1.518033}, + {-0.320099,-1.946147}, + {1.265835,-1.070397}, + {1.028280,0.157896}, + {0.070852,0.788980}, + {-0.628415,-0.602539}, + {-0.452347,0.152041}, + {0.078811,0.062621}, + {0.343871,1.592619}, + {-0.148877,0.159315}, + {-0.000463,-0.181856}, + {-1.639889,-0.376867}, + {0.521937,1.142912}, + {0.935462,-0.231012}, + {0.779969,-0.218677}, + {-0.354689,-0.476571}, + {-0.904562,0.034987}, + {0.125173,0.573088}, + {-0.495766,-1.612758}, + {-2.062263,0.055393}, + {-0.580883,0.751677}, + {0.616167,-0.770758}, + {0.926324,-0.141294}, + {1.046484,-0.562055}, + {0.375710,-0.089429}, + {-1.166185,-0.487809}, + {-0.707975,-0.729558}, + {-0.118322,-0.402670}, + {0.272092,0.594689}, + {0.240115,-0.224296}, + {0.244773,-0.446577}, + {-0.046161,0.215951}, + {1.385255,-0.292633}, + {0.161275,-0.089966}, + {-0.145126,-0.954704}, + {-0.061937,0.085533}, + {-0.448217,-0.232410}, + {-0.295303,0.406249}, + {-0.273240,-0.980753}, + {-0.413078,0.765020}, + {0.565840,-0.524401}, + {0.554666,-0.284595}, + {0.114768,0.187983}, + {-0.890592,-0.266010}, + {0.650560,0.103151}, + {0.586884,-0.342944}, + {0.626604,-1.021207}, + {-1.554120,-0.024893}, + {1.869185,0.210050}, + {-0.012275,0.388102}, + {-0.462074,-0.605148}, + {0.255341,-0.179884}, + {-0.340660,-1.397953}, + {0.187923,0.360639}, + {0.484712,-0.181846}, + {-0.177458,0.360760}, + {-0.482337,-0.081107}, + {-0.253224,0.661932}, + {-0.724755,0.316380}, + {-0.028731,-0.097583}, + {-0.090675,0.918420}, + {-0.288796,-0.874214}, + {-1.281843,-1.346400}, + {-1.975214,0.339394}, + {-0.613541,0.515236}, + {0.250206,0.074632}, + {0.996936,0.863932}, + {-0.782503,-0.162518}, + {-0.086359,-1.378544}, + {0.721407,-0.891762}, + {0.240897,0.580625}, + {-0.133187,1.084532}, + {1.435339,-0.476021}, + {0.283575,0.906435}, + {-0.470645,-0.523456}, + {-0.939491,-0.042648}, + {-0.949484,-0.012379}, + {-0.083733,-0.312338}, + {-0.885689,-0.387254}, + {0.644921,-1.190076}, + {-1.121036,-0.485559}, + {-0.356930,-0.523413}, + {-0.479120,-0.096518}, + {0.952204,-0.417529}, + {0.557766,-1.049478}, + {1.135059,-0.173027}, + {-0.302560,-0.322420}, + {-0.183123,-0.081440}, + {0.074167,-0.077368}, + {-1.407874,0.624530}, + {-0.230311,-0.298617}, + {0.770821,0.424980}, + {-1.662785,-0.094771}, + {-0.287911,0.475809}, + {-0.048476,-0.203032}, + {0.553445,-1.016724}, + {-0.376555,-0.217766}, + {0.114631,-0.345042}, + {-0.593877,0.872006}, + {0.276043,0.101842}, + {0.882983,0.102907}, + {0.001158,-0.755667}, + {0.047028,-0.324113}, + {-0.646981,0.918540}, + {0.291671,0.556886}, + {-0.137889,-1.529846}, + {0.298642,-0.279176}, + {1.768655,-0.293840}, + {-0.235337,-0.109834}, + {0.114141,-1.468380}, + {0.478717,0.202262}, + {-0.370501,-1.198972}, + {-0.151985,0.917563}, + {-0.053941,0.940994}, + {1.249975,-0.625239}, + {0.398662,0.117818}, + {-0.205314,-0.918815}, + {-0.419043,-0.126397}, + {-1.290054,0.482208}, + {0.604014,-0.941747}, + {0.399735,0.820368}, + {-0.249355,1.154546}, + {0.359412,-1.303754}, + {-0.016680,-1.368714}, + {0.248771,-0.238636}, + {-0.263899,0.869256}, + {-0.369987,-0.283830}, + {-0.466650,-0.208697}, + {-1.657492,-0.255177}, + {0.933283,0.293801}, + {2.525568,-0.350252}, + {-0.106274,-0.303690}, + {-0.411917,1.078396}, + {-0.386613,-1.306253}, + {0.971809,-0.252645}, + {0.155680,0.462985}, + {-0.520441,-0.015665}, + {0.566224,-0.363200}, + {0.858518,-0.442505}, + {-0.176691,0.428155}, + {-0.006586,-0.742642}, + {-0.224886,-0.229415}, + {1.261164,-0.739608}, + {-0.669418,-0.283427}, + {1.069320,-0.425814}, + {-1.009479,0.708147}, + {-0.473014,-0.106836}, + {0.283953,-0.549942}, + {-0.853421,-0.329629}, + {-0.464193,0.622219}, + {-0.087188,-0.801405}, + {0.500055,0.318167}, + {1.123225,0.074764}, + {-0.235380,-0.485006}, + {-0.714091,0.030128}, + {-0.239461,-1.534452}, + {1.116795,-0.824399}, + {-0.825487,-0.207473}, + {-0.051835,-0.448793}, + {0.164883,0.984871}, + {0.253362,-0.188939}, + {-0.372140,-0.968723}, + {0.119889,0.519344}, + {1.497227,-0.331945}, + {-1.279538,-0.084243}, + {1.188019,-0.265337}, + {0.213106,-1.016021}, + {0.100412,0.388037}, + {-0.512935,-0.810146}, + {-0.598912,-0.689186}, + {-0.567116,-1.257426}, + {0.086859,-0.193039}, + {-0.940346,0.374944}, + {-0.034308,0.275811}, + {-0.545470,0.096491}, + {-0.093181,0.866228}, + {-1.219487,0.113771}, + {1.206312,0.106241}, + {0.892992,-0.849006}, + {-1.354809,0.769571}, + {0.735957,0.424012}, + {-0.565301,0.510339}, + {-0.899932,0.461990}, + {1.103376,0.451826}, + {0.132011,-0.842416}, + {-0.638797,0.144869}, + {-0.642707,0.416796}, + {-0.427401,0.363543}, + {0.168475,-0.766367}, + {-0.751506,0.061892}, + {0.574152,-0.505695}, + {-0.335072,-0.286006}, + {-0.834026,0.619608}, + {0.547215,0.287132}, + {0.298914,-0.179478}, + {-0.561363,0.759409}, + {0.745341,0.945481}, + {-0.902903,-0.037729}, + {-0.390261,-0.658194}, + {0.279026,0.870289}, + {-0.157925,0.902163}, + {0.536656,1.220876}, + {0.488578,0.348556}, + {-0.531355,0.421049}, + {0.117253,0.950821}, + {0.718010,-0.541365}, + {-0.837644,0.805630}, + {0.181802,-0.456620}, + {-1.144830,-0.841213}, + {0.996041,0.509847}, + {-0.317890,1.355479}, + {0.444140,0.143680}, + {-0.301898,0.640867}, + {0.655019,0.121403}, + {-0.515694,1.185059}, + {0.107950,0.148497}, + {-0.134465,0.366955}, + {-0.413694,-0.651129}, + {-1.609086,-0.006717}, + {1.545435,0.251703}, + {-0.413004,-0.506535}, + {1.058658,-0.827896}, + {-0.625554,-1.151844}, + {0.662481,0.578591}, + {-0.053525,0.667165}, + {-1.458461,0.403909}, + {1.438034,1.671089}, + {0.449605,-0.144770}, + {-0.211705,0.239155}, + {0.737903,-0.691716}, + {-0.892143,-0.156775}, + {1.022161,0.568443}, + {-0.895021,-1.159661}, + {-0.129957,-1.015277}, + {0.025829,0.618146}, + {-0.725841,1.354559}, + {-0.404110,0.239310}, + {-0.381553,-1.030973}, + {0.661700,0.726828}, + {-0.871968,-0.873774}, + {-0.634683,-1.073318}, + {-0.190002,0.527019}, + {0.450145,0.068487}, + {-0.493345,-0.565194}, + {-0.067292,-1.089015}, + {0.311426,-0.162816}, + {0.696492,-1.081337}, + {-0.079561,0.192018}, + {-1.038164,0.001589}, + {-1.209152,0.260031}, + {0.517225,0.673063}, + {-1.070390,0.051018}, + {-0.172812,-0.518776}, + {0.246896,0.360236}, + {1.261445,-1.363637}, + {-0.249520,0.115168}, + {-1.039049,1.002534}, + {0.995219,-0.530594}, + {0.158186,-0.370508}, + {0.269083,-0.100298}, + {0.446531,0.134572}, + {0.163460,-0.234424}, + {0.655361,-0.266745}, + {1.368913,-1.221585}, + {-0.037131,0.339951}, + {-0.094642,0.057267}, + {1.801376,1.555417}, + {-0.674158,-0.035333}, + {1.133275,-0.083941}, + {-0.528994,0.797127}, + {-0.613801,-0.039986}, + {0.326418,0.552173}, + {0.961590,0.195621}, + {0.164999,-0.415260}, + {1.123196,-0.173849}, + {-1.028232,-0.935003}, + {-0.006582,-0.860200}, + {0.017667,0.604943}, + {-0.069771,-0.320669}, + {0.410253,-0.394301}, + {-0.464009,-1.065665}, + {-0.388085,-0.714962}, + {-0.379551,-0.026035}, + {-0.465111,0.046714}, + {0.329026,1.072201}, + {-0.204617,0.340843}, + {0.353240,-0.991605}, + {0.276096,0.606240}, + {0.180433,0.509623}, + {0.603712,-1.428401}, + {-0.288965,0.170324}, + {0.199499,-0.953213}, + {0.555000,-0.156563}, + {-0.332052,-0.212173}, + {-0.551909,-1.110573}, + {-0.701355,-0.256082}, + {0.052215,-0.905251}, + {0.154667,0.287735}, + {-0.375212,0.075292}, + {0.831316,-0.327454}, + {-0.544062,-0.324524}, + {0.375690,0.435796}, + {1.420773,-1.694466}, + {-0.472987,-0.933482}, + {-0.295863,1.125223}, + {1.051997,-0.065696}, + {-0.318684,-0.268566}, + {-0.407761,0.906795}, + {0.611763,-0.834517}, + {-0.577473,-0.618957}, + {-0.056931,1.173181}, + {1.188827,-0.751072}, + {-0.395580,-0.277524}, + {-0.286643,-0.821660}, + {-0.243831,-0.902510}, + {-0.859681,0.635123}, + {0.132016,0.648423}, + {0.176409,-0.202077}, + {0.916956,-0.416387}, + {-0.387859,0.270335}, + {-0.470603,-1.118427}, + {-0.082099,0.536118}, + {-0.319736,0.623595}, + {0.105603,-1.227178}, + {-0.246468,-0.676755}, + {-0.137842,-0.198255}, + {-0.612401,0.267072}, + {0.140070,0.928564}, + {-0.276867,-0.692713}, + {0.330789,0.082247}, + {-0.310965,0.471960}, + {-0.638029,-0.130571}, + {-0.227627,0.371444}, + {1.447594,-0.579724}, + {1.434342,1.967624}, + {-0.533127,-0.360049}, + {0.090985,0.865811}, + {1.621069,-0.655068}, + {-0.107101,0.602642}, + {-0.678090,-0.200194}, + {0.631410,0.856782}, + {0.026655,-0.682962}, + {1.024181,-2.110779}, + {-0.329181,-0.015544}, + {-0.869617,0.964415}, + {-0.574403,0.639381}, + {-0.200844,-0.526831}, + {-0.254985,-0.692828}, + {-0.627544,0.386942}, + {-0.594953,0.059818}, + {-0.728173,0.322703}, + {-0.125809,-0.264083}, + {-0.862048,-0.024952}, + {-0.305275,0.632945}, + {0.503292,0.276135}, + {-1.035994,-0.815081}, + {0.004263,-0.952890}, + {0.188009,-0.695292}, + {-0.490270,-0.076733}, + {-0.847985,1.389987}, + {0.757101,0.356868}, + {-0.744715,0.614691}, + {-1.179587,-1.951262}, + {0.406179,-0.501517}, + {-0.567337,0.303614}, + {-0.351789,1.342365}, + {1.001646,-0.588464}, + {-0.751630,-0.865141}, + {-0.336056,0.681107}, + {0.181667,-0.648438}, + {0.661723,-0.599597}, + {-0.843666,0.930312}, + {0.610179,0.011804}, + {0.637391,0.730488}, + {0.887057,-0.039574}, + {-0.596744,0.306742}, + {0.693533,-0.788946}, + {0.358266,-0.635755}, + {-0.103668,1.012763}, + {-0.409437,0.643533}, + {0.623653,-0.403418}, + {0.974759,-0.268196}, + {0.726314,0.552070}, + {-0.209079,-0.180960}, + {-0.253123,0.174441}, + {-0.343619,-0.120766}, + {0.153239,-1.407465}, + {0.003501,-0.301579}, + {-0.565188,1.263652}, + {0.256238,0.366026}, + {-0.196671,0.887337}, + {-0.842150,1.461294}, + {-0.109778,-0.496130}, + {0.715528,-0.835101}, + {-0.091186,1.525347}, + {1.127749,0.614371}, + {0.816348,0.223844}, + {0.088529,0.545457}, + {0.681807,-0.374392}, + {0.497116,0.065098}, + {1.063631,0.330052}, + {-0.473036,0.034874}, + {-0.157862,-0.001305}, + {0.434218,0.197264}, + {-0.550799,0.054486}, + {0.973037,0.002784}, + {0.493822,1.160678}, + {0.413581,1.777586}, + {0.337161,0.056664}, + {-0.209438,-0.856569}, + {0.312104,-0.137281}, + {-0.812145,-1.333425}, + {-0.687317,1.281605}, + {0.245950,0.130437}, + {-1.137658,-1.119996}, + {-0.321589,-0.976619}, + {1.042918,0.688281}, + {0.126441,-0.281123}, + {-0.690719,0.538968}, + {0.814742,0.984337}, + {0.800806,1.660842}, + {0.253362,0.679494}, + {0.289842,0.084567}, + {0.065649,-1.313600}, + {1.285205,0.734431}, + {0.200443,-0.037244}, + {1.168457,0.074900}, + {0.726807,-0.504987}, + {-0.246237,-0.309694}, + {-0.030608,0.807033}, + {-0.040489,-0.022902}, + {-0.102770,-0.193521}, + {0.760273,-0.024193}, + {0.153393,0.638818}, + {-0.049047,0.072808}, + {-0.751583,0.168734}, + {-0.163908,-0.509905}, + {0.673933,-0.014424}, + {-0.833475,-1.008629}, + {-0.590986,-0.105231}, + {0.643961,0.628600}, + {0.438267,0.052614}, + {0.110321,0.046113}, + {-0.517915,1.355916}, + {0.868033,-0.159152}, + {0.371602,-0.857592}, + {-0.419888,-0.337480}, + {0.558052,0.219982}, + {-1.131058,-1.257138}, + {0.733544,0.933340}, + {-0.646570,-0.253332}, + {-0.419020,0.398702}, + {1.839728,-0.458298}, + {0.357707,-1.077159}, + {0.104771,0.546341}, + {-1.056007,-0.099425}, + {-0.111075,-2.042791}, + {0.053667,1.959269}, + {0.389828,-0.320662}, + {1.618109,0.681527}, + {0.103634,-1.050246}, + {0.915626,0.011762}, + {1.378525,0.843142}, + {-0.180366,-1.548472}, + {0.582354,0.761079}, + {-0.022354,-0.375777}, + {-0.465816,-0.153786}, + {0.803733,1.015041}, + {-0.844731,-0.505638}, + {0.629193,-0.387865}, + {-0.170733,0.143273}, + {-0.240827,0.231065}, + {-1.250344,-0.026121}, + {-0.388932,0.564174}, + {0.216054,-0.002170}, + {0.232108,1.522422}, + {0.519424,-0.502575}, + {-0.052313,0.444903}, + {-0.705677,-0.812735}, + {-1.176015,-1.380785}, + {-1.723397,-0.849389}, + {-0.225763,-0.831275}, + {-0.102199,-0.389384}, + {0.320482,-0.065426}, + {0.050518,-0.353202}, + {0.095464,0.245600}, + {0.610228,-1.495030}, + {0.499674,0.301388}, + {0.079124,-0.689882}, + {-0.176226,0.270693}, + {0.591074,-0.395837}, + {0.962485,1.108556}, + {-0.376415,1.325772}, + {1.593700,-1.306007}, + {-0.669529,0.727318}, + {0.730542,-0.798588}, + {-1.006559,-1.222182}, + {0.105828,-0.657938}, + {-0.965177,-0.739113}, + {-0.235450,0.413555}, + {0.384625,-0.100571}, + {1.362594,-1.289672}, + {1.236262,0.729084}, + {0.648425,-0.684215}, + {0.986055,-0.194520}, + {-1.152769,-0.783978}, + {0.576223,0.548201}, + {0.097504,-0.259566}, + {-0.360024,0.723081}, + {0.607059,-1.003423}, + {-0.227951,-0.734850}, + {-0.294650,-1.235194}, + {0.193334,-1.675714}, + {-0.767385,0.618813}, + {0.098473,-1.515022}, + {0.358150,-0.135228}, + {1.113325,1.368268}, + {-0.151595,-0.246173}, + {-1.570232,-0.023322}, + {-1.226877,-0.155807}, + {1.879898,0.177321}, + {1.050730,-0.192028}, + {0.075023,0.738806}, + {0.439378,0.159967}, + {-0.870739,-0.053774}, + {-0.613293,1.773483}, + {1.022477,0.589100}, + {-1.903232,-0.116118}, + {0.130492,0.364978}, + {-0.889512,0.294264}, + {-0.898750,0.561895}, + {0.251006,0.804611}, + {-0.113566,-0.941961}, + {-0.234088,-0.917563}, + {-0.250283,-0.288450}, + {-0.907878,-0.094818}, + {-0.881149,0.528179}, + {-1.303454,-0.223259}, + {0.206582,0.221846}, + {-1.571029,1.443146}, + {-0.706678,-0.390482}, + {0.141913,0.510894}, + {0.182936,0.421928}, + {-0.119593,0.561059}, + {-0.744027,0.428400}, + {-0.152375,-0.959526}, + {1.160939,-0.069288}, + {-0.076280,0.162181}, + {0.327619,0.155115}, + {-0.530834,0.574725}, + {-0.430831,-0.101593}, + {0.920280,-0.279728}, + {0.031487,-0.263205}, + {-0.576176,-0.109081}, + {0.808516,-0.116405}, + {1.125426,-0.338095}, + {-0.908021,-0.070953}, + {0.115823,0.531403}, + {0.848018,-0.378923}, + {-0.380277,-0.804293}, + {-0.373310,0.893974}, + {-0.330087,0.948002}, + {-0.086096,-0.437250}, + {-0.469167,0.454149}, + {0.970617,0.231241}, + {-0.817633,0.825176}, + {-0.435250,0.430634}, + {1.683802,0.853621}, + {1.351207,0.235931}, + {-0.050678,-0.032962}, + {-0.355436,0.398207}, + {-0.678845,-0.389077}, + {-0.273377,-0.710650}, + {-1.210956,0.678632}, + {-0.755085,-0.086894}, + {-1.100352,0.299255}, + {-0.035763,0.330123}, + {0.322939,1.101242}, + {0.595764,-1.157084}, + {-1.243325,-0.664861}, + {-1.663768,-0.505836}, + {-1.267451,0.873669}, + {-0.455003,-0.043938}, + {0.470999,0.538119}, + {0.579555,-0.717479}, + {-0.802576,0.421240}, + {-0.237682,0.488393}, + {0.862354,0.812298}, + {0.230856,0.213576}, + {0.141439,0.509505}, + {0.206889,0.858483}, + {0.026078,-0.546219}, + {0.781592,-0.388893}, + {-0.123377,-0.794665}, + {0.068495,1.214323}, + {-0.714881,-1.054803}, + {-0.461472,-0.106502}, + {0.562470,-0.529948}, + {-0.709943,-1.806260}, + {0.774827,0.627849}, + {-0.082874,0.781436}, + {-0.301659,-0.219263}, + {0.608640,-0.139735}, + {-0.786892,-1.283778}, + {-0.366386,-1.194705}, + {1.061684,-0.463841}, + {-0.559144,0.542831}, + {-0.177584,1.693041}, + {-0.677950,0.092316}, + {0.408613,-0.701200}, + {0.245716,-0.034669}, + {0.997366,-0.451955}, + {-0.206925,0.136163}, + {0.352996,1.213371}, + {0.148059,0.397297}, + {1.053839,0.169786}, + {0.573741,-0.636227}, + {0.612745,-0.530977}, + {0.516292,0.150499}, + {-0.036636,1.234072}, + {-0.283012,0.155921}, + {-0.487859,0.275921}, + {-0.763096,1.543259}, + {-1.012146,0.104486}, + {0.648292,0.052648}, + {1.113207,-1.334106}, + {1.621335,-0.326147}, + {0.044245,1.144835}, + {-0.604862,-0.428931}, + {0.208504,0.480038}, + {0.621283,-0.263113}, + {-0.268506,-1.286471}, + {-1.190871,-0.981942}, + {-0.343443,-0.970982}, + {-0.443971,0.172888}, + {-0.529676,0.789394}, + {-0.747990,-0.355262}, + {0.260979,-0.616260}, + {-0.364506,0.875792}, + {0.230262,-0.650448}, + {-0.157869,-0.224029}, + {-0.138491,0.273796}, + {-0.337906,0.142918}, + {-1.126425,1.012362}, + {-0.045829,-1.204217}, + {-0.040201,0.072991}, + {0.095082,-0.512595}, + {0.391243,-0.697281}, + {0.028836,0.470680}, + {-0.254693,0.317709}, + {0.527280,0.185890}, + {0.679726,-0.539661}, + {0.536096,0.202399}, + {0.636754,-0.073378}, + {-1.635579,0.303301}, + {-0.055276,-0.309005}, + {-0.377681,-0.618366}, + {-0.570992,0.899069}, + {0.318571,-1.082007}, + {-0.501136,-0.050577}, + {0.463349,-0.492909}, + {-0.586518,1.437252}, + {-1.498805,0.669497}, + {-0.668884,0.501976}, + {0.849874,-0.274321}, + {1.503969,0.089087}, + {0.495296,-0.282796}, + {0.643539,-0.319368}, + {-0.003123,0.503895}, + {0.448926,0.415716}, + {1.300971,1.185440}, + {0.666304,-1.011385}, + {-0.501095,-0.437884}, + {0.126722,-0.628526}, + {0.602820,0.306907}, + {-1.052462,1.759648}, + {0.804709,-0.383309}, + {-0.783674,0.703607}, + {0.555353,-0.894576}, + {0.367530,-1.251446}, + {-0.379656,1.053925}, + {-0.368063,1.523577}, + {-0.512766,1.220449}, + {0.310470,1.126447}, + {-0.668240,-0.719845}, + {1.311328,-0.273581}, + {1.193026,0.758730}, + {0.011468,0.411093}, + {0.679916,0.227215}, + {0.200297,-0.461842}, + {0.203994,-0.360266}, + {-1.711995,-0.791191}, + {-0.587169,-0.795622}, + {-0.126559,0.539690}, + {-0.311544,0.215622}, + {0.624084,-0.939499}, + {0.451027,0.963659}, + {0.053951,0.473962}, + {-0.378173,-0.754404}, + {-0.483375,0.169867}, + {0.327772,0.443014}, + {0.438977,-0.918669}, + {0.272163,0.913450}, + {-1.148166,-1.651656}, + {0.678756,0.022641}, + {-0.162722,1.419714}, + {-0.442976,-0.324650}, + {-0.101127,-0.176612}, + {-0.257379,-0.900592}, + {-0.692997,-0.167735}, + {-0.576470,-1.033809}, + {0.129483,-0.795888}, + {-0.091165,-0.991940}, + {-1.546060,0.754515}, + {-1.955953,0.823558}, + {-0.507420,-0.342439}, + {0.839643,0.549449}, + {1.041734,-0.351442}, + {-0.099299,0.427514}, + {0.396409,0.685967}, + {1.582812,1.019917}, + {0.095047,-1.033650}, + {1.097222,0.232333}, + {0.235403,0.744469}, + {-0.956056,-0.248764}, + {-0.007542,1.351857}, + {0.829327,0.165330}, + {1.934778,0.740345}, + {-0.042057,-0.505659}, + {0.029940,0.584136}, + {-0.660522,0.974654}, + {0.550707,0.625208}, + {-0.736240,-0.090338}, + {-0.773422,1.383895}, + {0.164752,0.971219}, + {-0.078130,-0.016604}, + {1.174557,-0.671066}, + {0.709217,-0.447833}, + {1.173960,0.447247}, + {-0.452182,-0.283778}, + {0.221362,0.238256}, + {0.438321,1.115051}, + {0.385345,-0.134963}, + {-0.116907,-0.452026}, + {1.326754,-0.143928}, + {0.377629,0.647795}, + {0.706637,0.054253}, + {0.484648,0.233001}, + {0.559643,-0.014661}, + {0.442585,0.019897}, + {-0.481860,0.319169}, + {-1.873430,-0.373696}, + {-1.468880,-0.338588}, + {-0.564341,0.015573}, + {0.135980,-1.308351}, + {-0.209918,0.409567}, + {0.134787,0.555218}, + {-0.280328,0.229205}, + {0.356642,0.145734}, + {1.209981,-0.768739}, + {0.323467,0.471938}, + {-0.538486,0.833259}, + {0.377447,1.471453}, + {-1.542076,0.534062}, + {0.308006,-0.915789}, + {0.667877,0.838388}, + {-1.325876,-0.147813}, + {0.049283,-0.409670}, + {0.822751,-0.324401}, + {-0.248490,0.044080}, + {0.397286,-0.527903}, + {0.267321,0.173917}, + {0.097825,-0.258165}, + {0.156112,-0.403906}, + {-1.493610,-0.584519}, + {1.035700,-0.624181}, + {0.193366,0.367275}, + {-0.591444,-0.918827}, + {-0.031241,1.199647}, + {-0.635795,-0.401301}, + {0.292380,-1.257504}, + {0.790531,0.283300}, + {-0.612248,-0.856913}, + {-0.003711,0.557474}, + {0.046168,0.504684}, + {-0.258980,-0.145285}, + {-0.700174,0.664606}, + {-1.044332,0.112828}, + {-1.203219,-0.050509}, + {-0.098679,0.681808}, + {0.117978,1.020073}, + {-0.138431,-0.213658}, + {-0.373621,0.314261}, + {-1.125660,0.217905}, + {0.579220,0.315413}, + {0.819870,-0.421409}, + {0.215607,0.366435}, + {-0.391899,-0.353763}, + {0.031600,0.391145}, + {0.779146,-0.001210}, + {-0.371743,0.236842}, + {0.044205,0.077276}, + {-0.029682,0.564854}, + {-0.803910,0.609822}, + {0.083413,-0.621601}, + {-0.569837,-0.201887}, + {-1.037479,0.198802}, + {0.870755,-0.457554}, + {-0.644685,0.562159}, + {-0.368567,-0.571753}, + {-0.908622,0.593380}, + {-0.022836,-0.725834}, + {-0.212127,0.760100}, + {0.182831,-0.768164}, + {1.377295,0.894573}, + {-0.388203,-1.179584}, + {-0.366572,0.592177}, + {-1.357572,1.221986}, + {-1.467493,1.254612}, + {0.728275,1.398245}, + {0.270538,-0.980435}, + {-0.109704,0.391466}, + {-0.819701,-0.282182}, + {-1.576902,-0.264228}, + {-0.293211,-0.354652}, + {0.932537,0.499530}, + {0.124587,0.187973}, + {-1.182933,0.450079}, + {0.045172,0.295898}, + {-0.952133,-0.026615}, + {-1.077399,1.492134}, + {2.165598,-0.025851}, + {0.615697,-0.448814}, + {0.371116,0.104843}, + {-0.637342,0.743420}, + {-0.339935,1.886651}, + {-0.118879,-0.518939}, + {-1.136926,0.479470}, + {0.151684,0.264658}, + {-0.017438,0.081592}, + {0.013367,-0.432744}, + {0.818175,-0.660425}, + {0.169977,1.246542}, + {0.046875,-0.572609}, + {0.971265,1.007843}, + {0.552874,-0.763970}, + {0.402362,0.688291}, + {-0.177514,0.862440}, + {0.727237,0.600365}, + {-0.123267,-0.320214}, + {-0.973245,-1.093332}, + {-0.622050,0.480692}, + {0.850534,0.250697}, + {1.435793,-1.334161}, + {-0.297031,-1.179966}, + {0.304224,0.432995}, + {-0.319411,0.044257}, + {-0.130799,-0.801940}, + {0.073259,-0.088438}, + {-0.115683,0.651869}, + {-1.284032,0.744815}, + {-0.572874,1.298015}, + {0.284922,-0.246805}, + {0.516957,0.398332}, + {-0.407991,-0.949022}, + {0.136622,0.969059}, + {0.040189,-0.190255}, + {-0.287121,-0.074766}, + {-0.610242,-0.365421}, + {-0.695631,0.472487}, + {-0.761210,-1.011743}, + {-0.159401,0.335151}, + {-0.127480,-2.513513}, + {-0.621617,-0.001532}, + {-0.233636,0.540107}, + {-0.615082,0.740370}, + {0.728082,-0.745504}, + {0.755201,-0.364350}, + {1.455688,0.113219}, + {-0.384111,1.799205}, + {-0.060414,0.594761}, + {-0.645534,-1.282521}, + {1.354648,-0.365049}, + {0.700581,-0.261592}, + {-0.420933,0.412919}, + {-0.118914,-0.126970}, + {-0.369305,-0.651979}, + {0.833302,-0.776442}, + {-0.889951,0.333417}, + {0.717829,0.832634}, + {-0.780598,-0.353698}, + {-0.126353,0.156872}, + {-0.870306,-0.186695}, + {0.188068,-0.272942}, + {-0.853431,-0.099724}, + {-0.972554,-0.599254}, + {-1.109184,-0.599650}, + {0.911559,0.240889}, + {-0.351639,-0.044241}, + {0.189684,-1.491880}, + {0.667445,-0.069260}, + {0.369786,-0.124370}, + {0.521743,-0.479616}, + {-1.023666,0.709321}, + {-0.009410,-1.304473}, + {0.457866,-0.753617}, + {0.514681,-1.122756}, + {0.052715,0.047106}, + {-0.308785,-0.058814}, + {-0.543798,0.853832}, + {0.057451,0.111738}, + {0.023706,0.449120}, + {0.854094,-2.321072}, + {-1.288841,0.610626}, + {1.070943,0.900281}, + {-0.314136,0.986491}, + {-0.484965,-0.906231}, + {-0.534703,-0.786444}, + {0.529497,0.880418}, + {-0.594563,-0.523274}, + {-0.714857,-0.819102}, + {0.846788,-0.989649}, + {-0.535982,0.146718}, + {-0.205090,-1.063691}, + {0.080422,-1.044347}, + {0.026911,0.228324}, + {1.491431,0.321161}, + {0.661557,-0.309540}, + {0.438783,-0.302408}, + {0.264915,1.176531}, + {0.410967,-0.019055}, + {0.147043,-0.649251}, + {0.492513,-0.013112}, + {0.332999,-0.478951}, + {0.068906,0.560099}, + {-0.486798,-0.215182}, + {-0.415900,0.858515}, + {0.705293,1.097754}, + {-0.154359,0.384802}, + {-0.221449,-0.178315}, + {-0.575917,0.074498}, + {0.146447,0.313370}, + {0.126790,0.398399}, + {0.289635,-0.126919}, + {-0.074227,-0.213796}, + {-0.065885,0.678123}, + {0.656923,0.499602}, + {-0.564350,-0.575801}, + {-0.629272,1.852769}, + {-0.652193,-1.012536}, + {0.935159,0.505553}, + {0.010577,0.401854}, + {0.400071,0.797892}, + {-0.638037,0.362640}, + {-1.348614,-0.440950}, + {0.377069,-0.621824}, + {0.782456,0.777046}, + {0.279392,-0.409277}, + {-0.093743,-0.882047}, + {0.432319,-0.202289}, + {-0.854399,0.269268}, + {-0.569395,-0.550870}, + {-1.305619,-0.766131}, + {0.399734,0.356151}, + {-0.587518,0.990603}, + {-0.461472,-0.854095}, + {-0.776429,1.123592}, + {-2.094551,0.016854}, + {-0.852694,-0.164675}, + {-0.752425,-1.146923}, + {0.235446,0.097446}, + {-0.191573,0.584031}, + {0.036355,0.837690}, + {0.950405,-0.468673}, + {0.022319,0.946512}, + {-0.666949,0.540367}, + {-0.517209,-0.408994}, + {-1.497582,1.429821}, + {-1.424709,-0.265863}, + {1.067800,-0.018164}, + {-0.403612,0.521463}, + {0.520736,0.179845}, + {1.558446,2.297753}, + {-0.611957,0.341035}, + {0.574676,0.189530}, + {0.258192,-0.367458}, + {-0.515869,-0.068053}, + {0.320528,0.981756}, + {0.756459,0.855889}, + {-0.436195,0.505209}, + {-0.197706,-0.042505}, + {0.570348,-0.442366}, + {0.618202,-1.234316}, + {-0.246493,0.145392}, + {0.249191,0.204177}, + {-0.504036,-0.337933}, + {0.265983,0.156993}, + {1.010411,-0.820082}, + {0.967946,-1.061406}, + {-0.994254,0.516854}, + {0.246911,-1.559882}, + {-0.224508,-1.563141}, + {-0.420039,-0.552007}, + {0.078066,-0.074774}, + {-0.203336,-0.297024}, + {-0.109335,0.225023}, + {1.250758,-0.808705}, + {-1.025240,0.921113}, + {0.077180,1.828942}, + {-0.881796,-0.755137}, + {-0.091333,-1.279348}, + {-0.062119,0.378901}, + {-1.499594,0.831770}, + {-1.371222,0.612782}, + {0.282594,0.759345}, + {0.601033,-0.540685}, + {0.873884,-2.107622}, + {-0.413409,1.183102}, + {0.035613,0.033901}, + {-0.371701,-0.512521}, + {-0.390149,0.589897}, + {-0.421352,-0.052553}, + {0.213716,-0.657424}, + {-0.090430,-0.071487}, + {0.058196,-0.653575}, + {-0.705436,0.067998}, + {-0.053729,-0.957150}, + {-0.271140,0.371048}, + {1.052676,1.059416}, + {1.043681,0.143528}, + {1.356857,0.687629}, + {0.091930,1.509739}, + {0.339513,0.792737}, + {-0.055242,1.281981}, + {0.029510,0.013582}, + {-0.120412,0.188881}, + {-1.249855,-0.851677}, + {-1.079515,-0.452445}, + {0.393657,-1.150160}, + {-0.008601,-0.141600}, + {0.225137,0.963209}, + {-0.201913,0.770309}, + {-0.791302,-0.165032}, + {0.517454,-1.029753}, + {-0.607919,-0.209344}, + {0.527461,-0.735633}, + {-0.266679,-0.286525}, + {-1.703636,-1.176549}, + {-0.200180,0.435851}, + {0.269835,0.613393}, + {0.745864,-0.434237}, + {0.471439,1.529898}, + {0.363553,-0.002981}, + {-0.338163,0.906062}, + {0.883375,-0.307422}, + {-1.120693,-0.268472}, + {1.221899,2.130810}, + {0.141656,0.031991}, + {-1.233096,0.667534}, + {0.624299,0.425867}, + {-0.170222,0.592248}, + {1.076470,1.444681}, + {-0.183938,0.142772}, + {-0.821524,-1.008571}, + {-0.146813,0.404454}, + {0.684416,-1.073105}, + {1.117901,-0.560429}, + {0.530161,-0.027038}, + {-0.253069,-1.639337}, + {-0.717668,-1.081437}, + {0.653127,0.114892}, + {0.095271,0.140140}, + {-0.053616,0.987509}, + {-0.122837,0.191773}, + {-0.706302,0.420038}, + {1.186340,1.028863}, + {-0.117144,-0.018757}, + {1.239061,-0.216330}, + {0.295645,0.318719}, + {-0.287663,0.752288}, + {1.436414,1.607598}, + {-1.174806,0.781807}, + {0.919130,0.760221}, + {-1.465950,-0.301338}, + {-0.028985,0.532472}, + {0.108693,0.221737}, + {-0.679071,-0.035699}, + {0.046814,-1.058415}, + {0.343905,0.344772}, + {0.570854,0.524909}, + {0.315360,0.196929}, + {-0.434684,1.005404}, + {-0.404268,0.684464}, + {-0.747997,-0.269495}, + {-0.358844,0.247169}, + {-0.714708,-0.157657}, + {1.004165,0.448171}, + {-1.235014,-0.550712}, + {0.442388,-0.935624}, + {0.702100,-0.807752}, + {0.358939,-0.783201}, + {-1.133754,-0.837761}, + {-0.467297,-0.165956}, + {1.008790,0.066224}, + {-0.272849,0.330043}, + {-1.966277,1.246796}, + {-0.917265,-1.017836}, + {-0.027061,-0.299158}, + {1.124767,-0.984969}, + {0.146385,1.049555}, + {0.558241,0.085019}, + {-0.158555,-1.463400}, + {-0.133509,-0.671532}, + {0.666487,-0.563999}, + {0.656119,0.119249}, + {1.041716,0.447584}, + {-0.025932,0.527085}, + {-1.593675,-0.940512}, + {0.218719,0.224522}, + {0.858700,-0.400714}, + {-1.323566,-1.320280}, + {-1.019153,-0.525948}, + {1.737703,0.326414}, + {-0.638443,0.055007}, + {0.086753,0.243740}, + {-0.885970,0.377519}, + {1.184245,0.505174}, + {0.202493,-0.306676}, + {1.189207,-0.823331}, + {0.398937,0.120145}, + {-0.646384,0.314075}, + {-1.137885,-0.095339}, + {0.948864,-0.716966}, + {0.463843,-0.358252}, + {0.980654,-0.901849}, + {-1.215558,-0.298514}, + {0.270095,0.365947}, + {0.140718,-0.306677}, + {0.587339,-0.550040}, + {0.855364,-0.692435}, + {-0.456061,-0.045239}, + {0.462259,-0.725169}, + {0.724895,0.455988}, + {-1.028200,-0.257751}, + {-1.072973,-1.142716}, + {-0.576397,-1.548709}, + {-0.284426,0.134787}, + {-1.039392,0.502217}, + {-0.217312,-0.180047}, + {0.694919,0.186815}, + {-0.847320,-1.048344}, + {-1.022385,-0.565583}, + {-0.660343,0.410869}, + {-0.718115,-0.544506}, + {-0.182651,0.469230}, + {-0.231679,-0.362006}, + {-0.015608,0.083363}, + {1.222271,-0.723882}, + {-0.508861,-0.822197}, + {-0.902930,0.636436}, + {0.112424,-0.324648}, + {0.315799,-0.188587}, + {1.024169,-0.474601}, + {-1.152947,0.595031}, + {0.902782,-0.236906}, + {-0.241519,0.977620}, + {-1.518523,-0.585001}, + {-0.000930,0.727162}, + {0.877585,1.068244}, + {-1.638870,-0.206063}, + {1.408922,-0.130538}, + {-0.523389,-0.811424}, + {0.101777,0.366629}, + {1.289354,-0.426427}, + {0.604590,-1.337170}, + {-0.058429,1.861749}, + {-0.561091,-0.637419}, + {0.424127,-0.323688}, + {-0.081614,-1.449043}, + {0.968017,0.267704}, + {0.108011,0.499381}, + {0.170847,-0.487345}, + {-0.458183,-0.767461}, + {-0.039893,0.250217}, + {0.131645,-1.086087}, + {0.161841,0.342612}, + {-1.600553,0.342165}, + {0.541176,0.414102}, + {0.409636,0.349951}, + {1.204189,-1.086040}, + {0.350477,0.682488}, + {-0.721238,0.208825}, + {0.428534,-0.790265}, + {0.121097,-0.359704}, + {1.361358,1.230809}, + {-0.384294,0.472650}, + {0.145290,-0.174952}, + {-0.046377,-0.107608}, + {-0.383656,0.796097}, + {1.031273,0.264224}, + {1.167621,-0.300218}, + {-0.292386,-0.318581}, + {-0.335417,-1.144967}, + {-0.648088,-0.289108}, + {-0.068185,-0.682794}, + {0.894230,0.285057}, + {-1.260050,0.086270}, + {0.247349,0.104827}, + {0.007993,0.124410}, + {-0.089590,-0.563814}, + {1.509332,-1.875702}, + {-0.076540,1.065093}, + {0.316001,-0.172131}, + {0.102151,-0.953328}, + {-0.190367,0.254101}, + {0.255213,1.104178}, + {0.291825,-0.052904}, + {-1.058847,-0.004168}, + {-0.293184,-0.372100}, + {-0.420888,0.496658}, + {0.646020,0.472691}, + {-0.568856,-0.424865}, + {-0.822198,0.342074}, + {0.566707,-0.906916}, + {0.880532,-1.481777}, + {-0.158097,0.395299}, + {-0.169400,-0.308643}, + {-0.420999,-0.995964}, + {-0.134220,-0.451067}, + {-0.560854,-0.358684}, + {0.533672,0.609505}, + {0.225296,-0.259670}, + {0.136387,1.320238}, + {-0.143082,-0.656944}, + {-0.039519,-0.440310}, + {0.064516,-0.216104}, + {0.327496,-1.720161}, + {1.222967,0.133978}, + {0.344704,-0.992218}, + {-0.298720,1.336461}, + {0.910618,0.343415}, + {0.792131,-0.077562}, + {-0.078523,0.161363}, + {0.419388,0.354756}, + {-1.022862,-0.528513}, + {0.024169,0.636111}, + {-0.121226,0.869259}, + {0.269960,0.147618}, + {-0.173962,-0.286819}, + {-0.610308,-0.112641}, + {1.516570,0.220792}, + {0.067268,-0.929080}, + {0.140334,1.330344}, + {0.126366,-1.081471}, + {-0.243734,-0.118978}, + {-0.277617,-1.194380}, + {-0.682716,0.298833}, + {-1.288838,1.513837}, + {-1.077710,-0.288363}, + {0.353844,0.331654}, + {-0.496007,-0.449799}, + {0.674501,-0.901818}, + {-0.425209,-0.743499}, + {-0.493533,-0.014724}, + {-0.126484,-0.166360}, + {0.321523,-1.190012}, + {-0.243319,0.253336}, + {-0.324947,-0.463787}, + {0.224061,-0.778740}, + {-0.022366,-0.614416}, + {-0.104315,-0.614804}, + {0.416559,0.514345}, + {-0.380783,-0.071819}, + {1.224245,-0.170595}, + {0.668510,0.088242}, + {0.011928,-0.606299}, + {-1.276925,-0.185928}, + {1.427795,0.603522}, + {-0.687761,-0.603504}, + {-0.132693,-0.457303}, + {-0.680173,-0.865798}, + {-0.251745,-0.935759}, + {0.444854,-0.248104}, + {0.068890,0.189164}, + {-0.218620,-1.194219}, + {0.102438,0.748316}, + {0.626796,-0.085816}, + {0.382283,0.477754}, + {-0.055020,-0.453327}, + {-0.629663,-0.255501}, + {-0.314275,-0.853495}, + {0.153019,0.700717}, + {0.819287,0.714535}, + {0.078689,-0.639930}, + {-0.470512,-0.225320}, + {0.479791,0.944982}, + {1.631216,1.256571}, + {-0.936889,0.646269}, + {-0.494894,0.683656}, + {0.921918,0.268295}, + {0.561338,0.520386}, + {0.414373,1.463005}, + {0.760467,0.214625}, + {0.964109,-0.139284}, + {-0.587657,-0.930694}, + {0.299208,0.117574}, + {-0.452623,1.080372}, + {-0.206742,-0.027465}, + {-0.995999,0.131516}, + {-0.409115,-1.251451}, + {0.286588,0.339968}, + {0.248896,0.976740}, + {-0.600229,-1.037789}, + {1.217989,-0.829786}, + {-0.533772,-0.390166}, + {-0.252891,0.090843}, + {0.830241,-0.674900}, + {-0.305120,-0.830369}, + {-0.491488,0.649178}, + {0.438337,-0.155879}, + {-0.355961,0.587665}, + {0.504438,0.139915}, + {0.729127,-0.183104}, + {0.107723,-0.278060}, + {0.688445,0.756468}, + {0.393728,-1.411304}, + {0.536781,1.086957}, + {-0.520090,-0.203326}, + {0.533082,-0.846444}, + {-0.394528,0.670604}, + {-0.382789,-0.861758}, + {0.250303,0.478741}, + {-0.327998,0.777437}, + {0.733849,-0.765777}, + {-0.089826,-1.110802}, + {-0.206186,-0.678356}, + {0.386616,0.326163}, + {0.525415,-1.219435}, + {0.133794,0.344521}, + {0.004897,-0.582482}, + {-0.750436,-0.832588}, + {1.048079,-0.016272}, + {1.705627,0.415836}, + {1.430775,0.468125}, + {0.131126,-0.137068}, + {0.835151,-0.271749}, + {-0.298794,0.661111}, + {-1.031776,-0.466190}, + {0.920307,0.012391}, + {0.714790,0.765926}, + {0.049065,1.311591}, + {-0.718093,-0.406004}, + {0.398720,-1.039662}, + {-0.246073,0.103843}, + {-0.710795,0.507890}, + {0.091547,-0.294237}, + {1.265596,0.506513}, + {0.247169,-0.808032}, + {0.329468,-0.429356}, + {0.401651,-1.497002}, + {-0.915131,0.517771}, + {-0.158804,-1.010671}, + {0.337866,0.270349}, + {-0.334280,-0.437324}, + {0.587549,-0.839959}, + {0.609462,0.218756}, + {0.663163,0.295161}, + {0.199296,-0.011211}, + {0.336088,-0.804984}, + {-0.689722,0.139018}, + {1.805106,0.071002}, + {0.012271,-0.185305}, + {-0.242626,1.069228}, + {-0.001816,-0.770260}, + {1.082567,-0.538776}, + {-0.300932,0.408739}, + {0.673658,-0.546763}, + {-0.522996,-0.593263}, + {0.783541,0.018982}, + {0.129059,1.126919}, + {0.089440,0.382453}, + {-0.027288,0.112335}, + {0.207647,-0.722367}, + {-0.570810,0.360483}, + {0.285651,-0.252501}, + {0.723943,0.093512}, + {0.112908,0.175056}, + {-0.488045,0.285721}, + {-0.059020,-0.037746}, + {-0.512124,-0.099456}, + {-0.349365,-0.609648}, + {0.107796,-0.112698}, + {-1.477146,0.619852}, + {0.417878,1.275517}, + {0.029314,-0.196885}, + {0.570071,-0.086919}, + {0.249916,0.287204}, + {0.383593,0.201145}, + {0.114623,0.900762}, + {0.682162,-0.223562}, + {0.322560,0.917578}, + {0.750428,0.353774}, + {-0.948208,0.123629}, + {0.768450,0.085982}, + {1.272772,0.309070}, + {-0.439142,-0.382147}, + {-0.008128,-1.247159}, + {0.009078,-0.697620}, + {0.007060,0.961034}, + {0.129413,0.505956}, + {-1.910256,-0.665300}, + {0.069935,-1.173748}, + {-0.120057,0.181999}, + {0.399439,-0.688444}, + {0.284874,0.541595}, + {0.285854,0.693654}, + {-0.001666,-0.103849}, + {-1.224582,1.329128}, + {-0.648986,0.890249}, + {-0.388631,-0.337343}, + {-0.610412,0.675449}, + {0.271354,-0.522851}, + {-0.469737,0.289745}, + {-0.135145,0.094711}, + {0.391914,0.360719}, + {-1.432849,-0.395919}, + {0.718524,0.095473}, + {0.971875,0.020463}, + {0.321075,1.646243}, + {-0.198847,-0.236427}, + {1.874800,-0.097315}, + {-0.243075,-0.495529}, + {0.920510,0.609915}, + {0.471311,-2.079300}, + {-0.581785,-1.219514}, + {-0.280604,0.335288}, + {0.744908,1.156712}, + {1.065821,1.187737}, + {0.063306,0.219678}, + {0.149226,0.523140}, + {-0.223783,-0.203258}, + {-0.453659,-0.055288}, + {-0.577265,0.580418}, + {-0.394131,0.807998}, + {-0.805989,0.389628}, + {0.497947,0.244122}, + {0.156364,0.586017}, + {-0.824797,1.008399}, + {0.152007,-1.426285}, + {0.515238,0.477685}, + {-0.477381,0.117855}, + {-0.950519,-1.318016}, + {0.420935,0.940154}, + {-1.026912,-0.466710}, + {-0.582401,0.139818}, + {-0.549374,-0.236186}, + {0.644767,-0.465686}, + {0.830889,-0.265762}, + {-0.144430,-0.761845}, + {-0.128806,-1.521828}, + {-0.372228,-0.069244}, + {-0.492768,0.219460}, + {-0.490296,0.354823}, + {-0.848195,0.898729}, + {0.865969,-0.571089}, + {-0.454317,0.699749}, + {0.042831,-0.315084}, + {-0.285471,-0.292725}, + {-0.534360,0.172237}, + {0.689555,0.264977}, + {0.815292,-1.505314}, + {0.497006,-0.098925}, + {0.298728,0.364288}, + {0.136240,0.303815}, + {0.283923,0.596503}, + {0.114502,-0.238589}, + {-0.297723,0.385486}, + {-0.316969,0.430939}, + {0.040942,-0.313941}, + {-0.289333,0.351903}, + {0.896973,0.079274}, + {-0.268520,0.041966}, + {1.030958,-0.635246}, + {-1.875177,0.592061}, + {-0.430594,-0.653622}, + {0.267462,0.655383}, + {-0.514834,1.076798}, + {-0.097106,0.538920}, + {0.013117,0.662483}, + {0.644666,0.595031}, + {-0.117338,0.439290}, + {-0.357636,-0.677673}, + {-0.088865,-0.231393}, + {0.965777,-0.113227}, + {0.220975,0.768523}, + {-0.828622,0.050192}, + {-0.240097,-0.029707}, + {-1.058309,1.038959}, + {-0.570250,-0.924301}, + {-0.262456,-1.462101}, + {-1.228857,-0.142778}, + {0.469875,0.739288}, + {1.100930,0.341907}, + {0.672967,-0.393436}, + {0.518804,0.496781}, + {-0.142314,0.761519}, + {0.125922,-0.550510}, + {-0.348100,-0.273610}, + {-0.427612,0.061501}, + {0.256513,0.747116}, + {-0.059648,0.168510}, + {-0.913990,0.875762}, + {-0.802038,0.135093}, + {0.203664,-0.374754}, + {0.469188,-0.636419}, + {0.809588,0.460623}, + {0.113743,0.524456}, + {-0.272354,-0.854766}, + {0.022865,0.418124}, + {-0.133409,0.060661}, + {1.539998,-0.517456}, + {-0.645522,-0.426623}, + {-0.371401,-0.661202}, + {-0.122534,1.261750}, + {0.093323,-0.383381}, + {0.134252,0.902849}, + {0.511477,1.313929}, + {0.099273,0.514895}, + {-0.058003,0.969434}, + {-0.141294,-0.471783}, + {-0.429620,-0.154513}, + {-0.287361,-0.442306}, + {-0.336878,-0.062789}, + {-0.605904,0.102936}, + {-0.142869,-0.443398}, + {1.535686,1.529627}, + {0.367539,0.095620}, + {0.212680,0.531485}, + {0.604709,-0.251699}, + {-0.161790,-0.242223}, + {-0.575133,0.475413}, + {0.007935,0.138656}, + {-0.156317,0.351535}, + {1.107248,1.232089}, + {-0.269558,0.504884}, + {0.074465,-0.942669}, + {0.141073,-0.429191}, + {-0.269876,0.330541}, + {-0.209983,0.505994}, + {0.562585,1.614445}, + {0.439637,-1.675931}, + {0.030853,-1.163880}, + {0.304423,1.022936}, + {-0.327022,-0.504994}, + {1.936745,-1.338733}, + {-0.351500,-0.385984}, + {-0.563641,-0.826557}, + {-0.380570,0.789590}, + {-0.148708,0.255027}, + {-0.888800,-1.395291}, + {0.632760,-0.463043}, + {0.234656,0.303244}, + {0.116743,-0.473395}, + {0.271851,0.175900}, + {-0.552514,-0.338339}, + {0.691982,0.143707}, + {-0.976338,0.662087}, + {-0.504830,0.685742}, + {-0.264117,-0.307242}, + {0.511863,0.356987}, + {0.055412,-1.049023}, + {0.191737,0.267756}, + {0.231510,-1.056609}, + {0.204476,-0.636612}, + {-0.133734,1.938848}, + {0.255605,-1.483930}, + {1.011052,1.161027}, + {0.898627,0.805878}, + {-0.213312,0.436263}, + {0.755626,0.187831}, + {-0.762523,0.657359}, + {0.036146,0.739059}, + {-0.116160,-0.417153}, + {-0.150632,-0.670163}, + {0.418430,-0.878027}, + {0.525073,-0.538173}, + {-0.370425,-1.117374}, + {-0.757346,0.213995}, + {-0.208166,-0.014412}, + {1.041135,-0.440021}, + {0.745159,-0.655492}, + {0.075926,-0.175046}, + {-0.667127,-1.402322}, + {-0.420118,-0.660770}, + {-0.911100,-0.316687}, + {-0.103679,0.220340}, + {-0.660715,-0.765549}, + {-1.825846,0.383159}, + {-0.802056,-0.280138}, + {-0.373981,0.538737}, + {-0.426700,0.773436}, + {-0.163357,0.074898}, + {1.227122,1.422060}, + {1.288474,-0.542456}, + {-1.032935,0.639189}, + {0.437950,-0.087142}, + {0.475027,-0.968816}, + {0.165371,0.564307}, + {-0.510503,-0.411686}, + {-1.231209,-0.637638}, + {1.256137,-0.449882}, + {-1.522424,-0.184787}, + {-1.028042,0.985088}, + {1.030749,-0.439651}, + {-0.387196,0.411551}, + {1.188856,0.408318}, + {-0.587327,-0.142216}, + {1.135026,-0.262557}, + {-0.508316,-0.762131}, + {-0.149100,0.280352}, + {-0.951866,0.279302}, + {-0.604205,-0.672315}, + {1.600248,-0.457873}, + {0.569092,0.161693}, + {-1.152617,0.488698}, + {0.409741,0.570698}, + {-0.507684,-0.112046}, + {-0.748483,1.030598}, + {-0.076532,-0.294944}, + {0.270334,-0.074069}, + {0.758352,0.152663}, + {-1.269700,0.914973}, + {-0.730966,0.274066}, + {-1.529546,-0.878928}, + {-1.992355,-0.301284}, + {-0.645659,0.223827}, + {-1.002499,0.318252}, + {0.165309,-0.639122}, + {-1.019766,0.307431}, + {0.679903,-1.055646}, + {-0.003741,0.179578}, + {0.256276,0.808911}, + {1.114403,-1.010407}, + {-1.146745,-0.331667}, + {0.404155,0.383710}, + {-0.237773,0.921262}, + {1.885775,0.430458}, + {-0.818223,0.346674}, + {-0.078311,0.863722}, + {-0.428592,0.254773}, + {0.534155,0.809113}, + {1.383017,0.888617}, + {-0.515986,-0.599548}, + {0.212821,-0.000715}, + {-1.206773,0.526967}, + {0.014093,0.006118}, + {0.158839,-1.216860}, + {-0.027659,0.926053}, + {0.019575,0.165710}, + {0.197453,-0.230582}, + {1.261566,0.802630}, + {0.197086,0.008144}, + {0.059366,-1.335864}, + {0.762630,0.316835}, + {0.094044,0.216878}, + {-0.061064,0.344751}, + {1.017651,-1.442284}, + {0.827257,0.377237}, + {-1.187013,-0.462500}, + {0.582280,-0.502331}, + {0.744537,-1.480232}, + {-0.629860,0.197390}, + {0.059392,-0.392031}, + {-0.574393,0.117983}, + {0.129667,-0.171614}, + {-0.108789,-0.144976}, + {-0.289720,0.028863}, + {-0.236768,0.375456}, + {-0.026387,-0.120244}, + {-0.494994,1.099108}, + {-0.243313,-0.271767}, + {0.887063,-0.199488}, + {-1.520577,0.158127}, + {1.002710,-0.502214}, + {-0.690706,-0.243567}, + {-1.318276,-0.321401}, + {-0.458306,-0.366136}, + {-0.120988,0.372985}, + {-0.278336,0.750513}, + {-0.430248,0.203486}, + {-0.431980,0.898660}, + {0.147149,0.183560}, + {-0.761892,-0.033976}, + {0.544541,0.195048}, + {-1.004320,0.048136}, + {0.445875,0.124557}, + {0.819350,0.116228}, + {-0.074228,-0.359250}, + {0.149207,0.639891}, + {0.338190,0.705314}, + {0.771753,0.452919}, + {0.713768,-0.325439}, + {0.792008,0.244063}, + {0.619732,-0.670480}, + {-0.192255,-0.539623}, + {-0.071555,0.106152}, + {-0.531400,0.439331}, + {0.858087,0.454744}, + {-0.324386,-0.432407}, + {-0.049221,-0.765374}, + {0.524452,0.531419}, + {0.003815,0.508387}, + {-0.841803,-0.132345}, + {-0.251592,0.174575}, + {0.134064,-0.846480}, + {-0.380022,-0.772825}, + {0.570028,0.455106}, + {0.685860,0.878152}, + {0.349189,-0.979386}, + {-0.870929,0.582146}, + {-0.970770,-0.902920}, + {1.432578,0.124514}, + {-1.833284,0.491911}, + {-0.632608,0.655085}, + {-0.587920,-0.340920}, + {-0.688839,-0.890105}, + {0.453233,-1.036321}, + {1.020132,0.523791}, + {0.951761,0.683777}, + {-1.376582,1.527485}, + {0.236742,-1.750241}, + {-0.460403,0.501992}, + {1.020721,0.229132}, + {1.051587,-0.362471}, + {-0.259974,0.863537}, + {0.429171,1.050911}, + {0.191844,0.578415}, + {-0.231841,0.432569}, + {-0.984387,-0.084837}, + {-0.358412,0.102102}, + {0.878619,0.582503}, + {-0.205932,0.835352}, + {-0.103196,-0.742711}, + {1.284650,-0.553309}, + {-0.438278,-0.845167}, + {-0.180808,-0.562684}, + {-1.415280,0.309014}, + {1.032654,1.546299}, + {-0.578971,0.502129}, + {-0.372922,0.342322}, + {-0.601495,-0.396972}, + {0.449218,1.693786}, + {-0.215480,-0.912576}, + {-0.305294,-0.068039}, + {1.234584,0.890927}, + {-0.133936,-0.401511}, + {-0.029240,-0.508774}, + {-0.446670,0.056391}, + {0.438196,0.121282}, + {-0.235203,-0.016227}, + {0.085158,0.853693}, + {0.589462,-0.003206}, + {-0.347001,1.098295}, + {-0.482088,0.276294}, + {1.115959,0.104063}, + {1.222275,-0.122048}, + {1.131900,-0.401884}, + {0.416713,0.972292}, + {0.268957,0.822470}, + {-0.378075,-0.239070}, + {0.678130,-0.622487}, + {0.001222,0.176722}, + {0.515715,0.556026}, + {-0.811341,-0.664363}, + {-0.066931,-0.106832}, + {0.259630,-0.482719}, + {-1.051136,0.675293}, + {-0.444388,-0.119788}, + {0.307477,-0.014828}, + {-0.184077,0.282394}, + {-0.719949,0.155395}, + {0.689853,0.466149}, + {0.254500,-1.065029}, + {-1.153940,1.026575}, + {-0.724639,0.811474}, + {0.280946,0.774506}, + {1.733286,0.702247}, + {0.057015,-0.144861}, + {1.201717,-0.620823}, + {-1.489848,-0.513420}, + {0.007687,0.478682}, + {0.217798,-0.381518}, + {0.395505,0.487883}, + {0.637114,0.738214}, + {-0.696254,-0.017240}, + {-0.601473,-0.310016}, + {-0.911395,-0.423135}, + {0.943762,0.871834}, + {0.712787,-0.214152}, + {-0.154493,0.356730}, + {0.439694,2.528324}, + {0.511167,-0.597179}, + {-1.077821,1.509451}, + {0.534645,-0.031730}, + {0.367335,-0.235827}, + {-1.523038,0.527418}, + {0.337825,-0.714982}, + {-0.447831,-0.426621}, + {-1.118101,-0.239219}, + {0.531552,0.943312}, + {-1.294295,-0.742653}, + {0.625772,0.643434}, + {-0.277690,-0.187306}, + {0.253799,-0.294410}, + {-0.613186,0.208064}, + {-0.188373,-0.612828}, + {0.217985,-0.165977}, + {0.588750,0.477662}, + {-0.901009,-0.304080}, + {-1.010997,0.557475}, + {-0.375059,-0.290759}, + {0.071666,-0.579673}, + {0.210535,0.735150}, + {-0.448087,-0.526083}, + {0.398716,0.065340}, + {0.485392,1.369999}, + {-0.299177,-1.126727}, + {-0.103942,0.680101}, + {0.328730,0.178544}, + {0.142174,0.134296}, + {0.204866,-0.912750}, + {-2.020140,0.645009}, + {0.177036,-0.288237}, + {-0.069950,1.225832}, + {-0.304805,0.134353}, + {-1.765184,-0.128221}, + {-0.393885,-0.444420}, + {-1.330829,0.743254}, + {0.830278,0.671366}, + {0.869670,-0.919906}, + {1.211946,-1.221721}, + {0.363820,0.389598}, + {-0.613657,-0.172961}, + {0.534523,-0.777950}, + {0.899525,0.837620}, + {0.229674,0.539808}, + {-0.588145,1.541271}, + {0.526527,0.218288}, + {0.108346,-0.146209}, + {0.256885,0.222342}, + {-0.471906,-0.622017}, + {-1.040667,-1.033413}, + {1.262585,0.812615}, + {-0.109457,1.184248}, + {-0.777400,-1.560435}, + {0.151619,-0.442552}, + {1.678563,0.504373}, + {-0.589008,-0.440073}, + {-0.173452,0.875637}, + {-0.330927,-0.861614}, + {0.529098,0.754519}, + {-0.530484,0.361856}, + {-0.340118,-0.014196}, + {-0.443443,-0.221920}, + {-0.295703,0.775663}, + {0.931839,0.391841}, + {1.227308,0.357324}, + {1.058906,-0.561328}, + {0.379099,0.857939}, + {0.379845,0.088003}, + {2.175076,0.202864}, + {0.100406,-0.297335}, + {0.240141,-0.401507}, + {0.578608,0.265995}, + {-0.515623,0.946173}, + {-0.587795,-0.555286}, + {0.383657,-0.195416}, + {0.759589,-0.774641}, + {-0.109808,-0.123684}, + {0.172620,1.054034}, + {0.231130,1.353771}, + {0.832332,-0.629704}, + {0.736182,-0.815986}, + {1.913341,-0.066831}, + {0.548944,0.930218}, + {1.187104,0.054595}, + {-0.065391,1.307484}, + {-1.032659,-0.304898}, + {0.770218,0.384590}, + {-0.461868,0.279681}, + {0.659794,1.167296}, + {-0.280067,1.596266}, + {-0.557632,-1.620087}, + {0.231064,0.159401}, + {-0.585902,-0.632748}, + {-1.008761,0.180220}, + {-2.136943,0.182556}, + {0.578714,-0.151526}, + {0.468830,-0.370074}, + {-0.124409,0.101686}, + {-0.623913,0.511890}, + {0.603725,-0.110424}, + {0.086402,0.305489}, + {0.397162,-0.844066}, + {0.287331,0.595819}, + {0.435615,-0.308301}, + {-1.631188,1.233723}, + {-0.099963,-0.568243}, + {-0.069033,-0.553885}, + {0.465490,1.705170}, + {-1.502903,0.051838}, + {0.202618,0.056840}, + {0.690444,0.625482}, + {0.529718,-0.327767}, + {-0.489490,-0.609651}, + {0.832393,1.453277}, + {1.712547,0.803720}, + {0.189576,-1.727333}, + {0.907285,-0.228063}, + {1.339552,-0.868890}, + {-1.166663,-1.224587}, + {-0.379674,0.609648}, + {-0.573722,-0.147682}, + {-0.268252,-0.294019}, + {-0.342327,0.622820}, + {-0.973481,1.055302}, + {0.765404,-0.814623}, + {-0.533027,-1.451319}, + {-0.272482,1.012991}, + {-0.542893,-1.562890}, + {-0.171077,0.717300}, + {0.308168,0.116356}, + {0.314240,-0.370956}, + {0.804733,-0.334112}, + {0.386616,-0.027912}, + {-0.099513,0.902143}, + {-0.123303,0.843877}, + {1.079426,-0.071035}, + {0.598008,-0.248097}, + {0.573794,0.625676}, + {0.290775,0.601791}, + {-0.846620,-0.609600}, + {0.441754,0.374976}, + {-0.292908,-0.310313}, + {0.389009,-1.122842}, + {-1.994184,-0.597685}, + {-0.288490,-0.137211}, + {0.826802,-0.414513}, + {0.440020,-0.030550}, + {-0.776099,-0.389480}, + {0.554564,0.554801}, + {1.224902,0.286133}, + {-0.979788,0.109225}, + {1.253196,0.209456}, + {0.251155,0.753947}, + {0.665114,-0.393747}, + {-0.564377,-0.513027}, + {1.288081,-2.157011}, + {0.235869,0.471166}, + {-0.406039,0.027257}, + {-0.294357,-0.382251}, + {0.119859,-0.100326}, + {-0.458593,0.981385}, + {1.025987,-0.633064}, + {0.615666,1.604773}, + {0.594899,-0.462359}, + {0.309323,0.834967}, + {1.020212,0.969725}, + {-0.195893,-0.386131}, + {-0.627758,0.223954}, + {-1.018009,0.285884}, + {-0.624008,0.485126}, + {0.160685,-0.253051}, + {-1.063582,1.681213}, + {-0.198088,-0.757754}, + {0.728279,0.034337}, + {0.762127,-0.032588}, + {0.221347,-0.818478}, + {0.269797,-1.110743}, + {-1.210268,-0.495728}, + {0.485286,-0.320922}, + {-0.155302,0.041326}, + {-0.402684,1.638042}, + {-0.478496,-0.696576}, + {0.857587,-0.932290}, + {-0.479103,-1.444577}, + {0.106673,0.771573}, + {0.174064,0.228316}, + {0.379493,0.761051}, + {-0.573243,-0.279958}, + {0.611776,0.691011}, + {0.437668,0.574424}, + {1.270251,0.249666}, + {0.164892,0.358455}, + {0.667730,1.155659}, + {0.466743,0.958982}, + {-0.728237,-0.561067}, + {-0.191912,0.053633}, + {-0.319731,-0.092707}, + {-0.675490,0.366198}, + {0.535741,-1.151621}, + {-0.343547,0.839867}, + {0.751048,-1.498414}, + {1.666151,-0.356844}, + {0.042997,0.353855}, + {0.599371,0.374659}, + {-0.030844,-0.467997}, + {0.527571,-0.170217}, + {1.039629,0.511229}, + {0.139445,-0.375293}, + {-0.643767,-0.579323}, + {-0.213417,0.056574}, + {0.868315,-0.291497}, + {1.312809,0.661863}, + {-0.239329,-0.350563}, + {0.055933,1.334509}, + {-0.896131,1.594030}, + {-0.843781,-1.287317}, + {0.346229,-0.350082}, + {-0.385374,-0.165116}, + {0.058133,-0.170327}, + {-0.302902,-0.091267}, + {-0.224982,-0.275217}, + {-0.639219,0.182658}, + {1.005439,0.970002}, + {0.302856,0.157512}, + {0.167572,0.392681}, + {-0.183465,-0.536818}, + {-0.276488,0.932653}, + {-0.698586,-0.291830}, + {-0.663474,0.073177}, + {-0.707151,0.843712}, + {0.813781,-0.237099}, + {-0.567100,-0.155201}, + {-0.695440,0.900429}, + {-0.507948,-0.238936}, + {0.813905,-1.435846}, + {-1.030962,0.416183}, + {0.010413,-0.077815}, + {-0.456217,0.939060}, + {-0.280898,0.860698}, + {-1.059189,-0.026381}, + {0.418985,0.103886}, + {0.243547,0.263705}, + {1.022534,-0.870284}, + {-0.319105,-0.830518}, + {0.309283,0.131609}, + {-0.366955,0.545398}, + {-1.091913,0.803764}, + {0.919995,-1.444688}, + {-0.514388,-0.892124}, + {0.046488,-0.043293}, + {-0.097040,-0.142277}, + {-0.621773,0.278483}, + {-0.238226,-0.303143}, + {-0.239201,-0.202993}, + {0.828891,-0.447296}, + {-0.814409,-0.762757}, + {0.317636,-0.775188}, + {-0.704665,-0.001095}, + {0.190795,-0.410853}, + {0.438536,0.007221}, + {-1.275473,1.581711}, + {-1.032641,0.427879}, + {0.043270,0.560571}, + {-0.310790,-0.295852}, + {-0.322617,-0.582956}, + {-0.823786,0.792678}, + {-0.825312,0.460310}, + {-0.142982,-0.231356}, + {-0.107885,0.006865}, + {-0.428315,-0.575707}, + {-0.451766,-1.312755}, + {-0.605263,0.052154}, + {-0.858527,0.472405}, + {-0.147632,0.851068}, + {-0.032356,-0.398183}, + {-0.601653,-0.044037}, + {0.037578,0.212620}, + {0.475474,0.577324}, + {-1.937575,-1.393675}, + {0.241383,-0.543812}, + {0.300632,-0.384921}, + {0.860763,0.252422}, + {0.040594,-0.371765}, + {0.552900,0.011664}, + {-0.353449,0.312965}, + {0.857064,1.235445}, + {-0.408279,-0.576770}, + {0.133850,-0.708734}, + {0.979223,1.697775}, + {-0.859229,-0.252335}, + {-1.136499,-0.537318}, + {-0.025246,0.178310}, + {1.169886,-0.131893}, + {0.491317,-0.071596}, + {1.485336,-0.526005}, + {1.948320,-0.173133}, + {0.359882,-0.593865}, + {0.784955,0.290084}, + {-0.367032,0.564664}, + {-0.053053,0.166978}, + {0.576522,-1.319649}, + {0.593626,-0.037716}, + {0.330368,0.727155}, + {0.248306,0.837877}, + {-0.596916,-0.440271}, + {-0.031691,0.753502}, + {-0.427416,1.496483}, + {0.024830,0.428486}, + {-0.251342,-1.094742}, + {0.345125,-0.553380}, + {-0.898429,-0.026258}, + {0.712027,0.447699}, + {-1.220289,-0.815846}, + {0.262894,0.251074}, + {-0.136647,0.183869}, + {0.404985,-0.461170}, + {0.431711,-1.281842}, + {0.163396,0.332593}, + {-0.552892,0.335223}, + {-0.672727,-0.000601}, + {0.044287,0.469885}, + {0.199923,0.345696}, + {0.723835,-0.177781}, + {-0.379719,0.397453}, + {-0.641487,1.511009}, + {0.061980,0.031751}, + {-0.844554,0.892103}, + {-0.715934,-1.294866}, + {0.173878,-1.451147}, + {0.564775,-0.224633}, + {-0.475705,0.218131}, + {1.368321,2.155638}, + {-0.559571,-0.151806}, + {0.367671,-1.069871}, + {-0.480085,-0.683981}, + {-0.968596,-0.196502}, + {0.088215,-0.398611}, + {0.089681,0.049280}, + {0.019565,0.640091}, + {0.804096,-0.312743}, + {-0.029222,-0.817238}, + {0.111560,0.026803}, + {1.124348,-0.247172}, + {0.828146,-1.297903}, + {0.584710,1.072408}, + {-1.079120,0.519528}, + {-0.559623,-2.083301}, + {-0.013739,0.168279}, + {0.094835,-0.001691}, + {-0.176566,-0.071756}, + {0.143178,0.023358}, + {-1.209996,-0.402923}, + {0.502949,-0.787258}, + {-0.439794,-0.826874}, + {0.037231,-0.182201}, + {0.559047,-0.316920}, + {1.353808,-0.063423}, + {-0.184105,-1.087707}, + {0.520159,0.016875}, + {0.408005,0.337109}, + {0.012034,-0.141686}, + {-0.116381,0.989265}, + {0.215828,-0.819388}, + {-0.175628,0.230390}, + {-0.392693,-0.773533}, + {0.019304,0.018939}, + {0.019620,1.129002}, + {-0.266461,0.476351}, + {-0.932192,-0.308265}, + {1.087973,0.187229}, + {0.878040,0.274679}, + {-0.967149,-1.149465}, + {0.110062,-0.288712}, + {0.410077,0.016828}, + {-1.137827,0.737936}, + {0.556373,0.712373}, + {-0.136341,-0.106141}, + {0.966315,0.131986}, + {-1.636164,0.243468}, + {1.058806,-0.648276}, + {0.211281,1.021837}, + {-0.200606,0.108194}, + {0.343630,0.685307}, + {0.492227,-0.038799}, + {0.033762,0.584277}, + {0.236607,0.567255}, + {0.680730,0.758640}, + {-1.029663,1.126743}, + {-1.572466,-0.113236}, + {-0.285795,0.080142}, + {-0.974205,-0.403896}, + {1.117339,-0.485668}, + {-0.600984,-1.054548}, + {0.893469,-0.995996}, + {1.668182,-0.272915}, + {-0.209205,0.453159}, + {0.256428,-0.019136}, + {0.333610,0.511375}, + {-1.232951,0.873284}, + {-0.761203,-0.368131}, + {-0.518450,-1.168993}, + {0.742393,-0.718962}, + {0.449123,0.250070}, + {0.014006,-0.412005}, + {-0.680747,-0.172112}, + {0.116133,-0.562759}, + {0.460738,-0.656872}, + {0.650550,0.619822}, + {0.131879,0.424197}, + {-0.553638,-1.742206}, + {0.312592,0.469697}, + {-0.531606,-0.391612}, + {1.380083,1.445451}, + {-0.921923,-0.915796}, + {-1.153275,0.556598}, + {-0.161191,0.501045}, + {-0.702263,-0.058096}, + {0.560614,0.671590}, + {0.036180,-0.376868}, + {-0.588677,0.721655}, + {0.621821,-0.164663}, + {0.794529,0.699955}, + {-0.719335,0.651360}, + {0.148510,0.760655}, + {-0.114731,0.951111}, + {0.895827,0.383900}, + {-0.746435,0.641606}, + {-0.421358,0.631822}, + {0.466984,-0.324033}, + {0.489916,-0.957898}, + {0.079711,0.062274}, + {1.246410,-0.778342}, + {-0.318010,0.318632}, + {0.510297,-0.392028}, + {1.251361,1.171531}, + {0.293846,0.756420}, + {-0.909834,-1.088653}, + {0.185629,-0.928923}, + {-0.192179,0.381852}, + {0.128132,-0.618807}, + {1.135265,1.096902}, + {1.130910,0.031333}, + {0.189199,-0.530720}, + {0.364752,0.516586}, + {-0.640494,-0.438013}, + {-0.554450,0.002218}, + {-1.568253,-0.283404}, + {0.597701,-0.124230}, + {1.153399,0.400638}, + {0.290154,-0.118022}, + {-0.394926,0.335760}, + {-0.046594,-1.272174}, + {0.520793,-0.596359}, + {0.684737,1.409372}, + {2.146829,-0.595201}, + {0.334683,0.150969}, + {0.037160,0.579834}, + {0.559788,-1.024755}, + {-0.268161,-1.685690}, + {-0.777837,0.327112}, + {-0.628273,-0.114822}, + {-2.163572,0.843763}, + {-0.523453,1.909596}, + {-0.390204,0.742400}, + {0.184483,-0.248507}, + {0.492118,0.308610}, + {0.809920,-0.427897}, + {0.210169,-0.601697}, + {0.065808,-0.422819}, + {-1.259986,0.023207}, + {-1.222129,0.568027}, + {-0.255664,-0.612253}, + {0.228229,0.962349}, + {-1.340872,1.427331}, + {-0.567869,-1.869379}, + {-0.763201,-0.271214}, + {-1.445104,0.226024}, + {-0.645348,0.310639}, + {-0.516378,0.457223}, + {0.261481,-0.723054}, + {0.698503,-0.491313}, + {0.002835,0.081625}, + {-1.025465,-0.176307}, + {-0.479908,0.644662}, + {-0.748698,-0.134649}, + {0.463082,-1.921004}, + {0.586063,-2.033114}, + {-0.458925,0.394895}, + {-0.509606,0.005512}, + {-0.447751,-1.910113}, + {-1.557059,-0.149125}, + {0.534921,-0.429562}, + {0.211883,0.620042}, + {-1.527148,0.587183}, + {0.401908,1.280822}, + {0.031060,0.420576}, + {-0.762789,-0.367085}, + {1.175118,-0.820434}, + {-0.478197,-0.370352}, + {-0.236025,0.061470}, + {0.686564,-0.585512}, + {-0.237052,0.253177}, + {-0.729385,-0.466642}, + {-0.662395,-0.391071}, + {0.273296,0.506813}, + {0.965051,-0.027263}, + {0.070026,1.046618}, + {0.092287,0.070415}, + {-0.908972,-0.539245}, + {-0.623800,1.413496}, + {0.325102,0.822477}, + {-0.518215,0.034588}, + {0.220737,0.705239}, + {-0.818519,-0.857503}, + {-1.388012,0.171706}, + {0.650287,1.022428}, + {2.412083,-0.776552}, + {-0.297618,1.080676}, + {0.467493,-0.420103}, + {-0.059584,-0.053936}, + {0.624517,-0.194404}, + {0.036811,1.302039}, + {0.842010,-0.194790}, + {0.215698,0.725725}, + {-0.272988,0.542958}, + {-0.298502,1.190862}, + {0.166648,0.297913}, + {-0.783560,-0.385328}, + {0.351894,-0.279022}, + {0.183874,0.243079}, + {0.134334,0.079331}, + {-0.383688,0.849714}, + {-0.227904,0.641252}, + {0.329318,0.943028}, + {0.936512,1.038576}, + {0.757479,0.393397}, + {1.478493,-0.037539}, + {-1.189804,0.402658}, + {0.292558,-1.779022}, + {-0.284935,-0.366083}, + {-0.386498,1.453383}, + {0.611253,0.499528}, + {-0.251683,0.181155}, + {0.804380,-0.388200}, + {-0.231037,0.258398}, + {0.623782,0.017725}, + {0.468501,0.540843}, + {0.054289,1.158843}, + {0.109397,0.089475}, + {0.057510,0.640870}, + {-1.007740,-1.110276}, + {0.732886,0.842128}, + {0.268033,-0.755497}, + {-0.031795,-0.214367}, + {-0.643266,-0.275480}, + {1.885364,-0.353332}, + {1.004060,-1.001434}, + {-0.017497,0.894947}, + {1.829552,0.069833}, + {-0.930362,-0.271928}, + {-0.374898,0.170401}, + {-0.104757,-0.184549}, + {1.479948,-0.472800}, + {-0.766489,-0.268751}, + {-0.188110,0.343063}, + {-0.068686,0.373199}, + {-0.335110,0.539789}, + {0.926700,-0.263069}, + {-0.060970,0.075089}, + {-0.047239,-2.343455}, + {-0.758616,-0.638756}, + {0.194242,0.628520}, + {-0.670422,-0.252502}, + {-0.586947,1.217569}, + {0.325827,0.180049}, + {-1.170374,-0.478935}, + {1.157467,0.136615}, + {0.553874,0.901300}, + {0.489163,0.191637}, + {0.233215,-0.282606}, + {1.394105,-0.595516}, + {-0.616522,0.715078}, + {-0.840391,-0.099596}, + {0.539287,-0.316566}, + {-0.384641,1.575414}, + {0.708599,0.923721}, + {-0.728650,0.399285}, + {-0.884493,-0.797352}, + {0.346664,0.439675}, + {-0.912444,-1.014233}, + {0.440793,1.115063}, + {-0.852873,-0.619209}, + {0.167686,-0.498302}, + {1.288179,0.409765}, + {1.402931,0.688458}, + {-0.515123,-0.824088}, + {0.192950,-0.248628}, + {-0.062076,0.319169}, + {0.488478,2.046597}, + {-0.279347,0.144513}, + {-0.425342,-0.162927}, + {0.794761,0.950190}, + {0.050606,-1.039568}, + {0.258260,0.371916}, + {0.299544,0.840263}, + {1.011669,1.277889}, + {-0.455175,0.008475}, + {0.006032,0.495940}, + {-0.564037,0.951911}, + {-0.739710,0.911333}, + {0.288278,0.246605}, + {-0.415489,0.418020}, + {0.214393,-0.216782}, + {-0.258230,0.012515}, + {0.085156,-1.067564}, + {-0.477948,-0.126020}, + {0.819553,0.227472}, + {0.218761,0.118708}, + {-1.147643,0.315880}, + {-0.227523,0.539005}, + {0.001495,0.428174}, + {1.833835,-0.253958}, + {0.094817,-0.427417}, + {0.304182,0.027684}, + {-0.448943,1.724177}, + {0.306482,-1.723176}, + {0.297892,0.566358}, + {0.070474,-0.408958}, + {-1.135178,0.616141}, + {1.174561,0.739951}, + {-0.427643,-0.076585}, + {-0.143676,-0.561043}, + {-0.575947,-0.963853}, + {0.287610,-0.416596}, + {1.053362,0.219671}, + {0.215916,-0.082404}, + {-0.004859,1.016390}, + {-0.304115,-1.250074}, + {-0.804160,1.414419}, + {0.435396,1.580271}, + {-0.540909,-0.386004}, + {0.391329,0.175570}, + {0.068666,-0.634001}, + {-0.924601,-1.223534}, + {-0.244715,-1.882378}, + {-0.005935,0.055254}, + {0.053374,-2.037105}, + {-0.222229,-0.314341}, + {1.683783,-0.136252}, + {-0.209519,0.319064}, + {0.128087,0.515904}, + {1.057809,0.518777}, + {1.302667,-0.667992}, + {0.711711,1.370832}, + {-0.425870,-0.921453}, + {-0.282099,-0.019978}, + {0.475885,0.778538}, + {-1.191533,0.734870}, + {-0.029950,0.617866}, + {-0.455740,-0.735148}, + {-1.482617,0.289506}, + {-0.281529,-1.036867}, + {-0.900051,-0.070463}, + {-0.281393,-0.018742}, + {-1.565083,0.033298}, + {-1.253289,0.604701}, + {-1.473103,0.505138}, + {-1.337558,-0.025304}, + {0.025156,0.114029}, + {1.186775,0.120767}, + {0.833490,-1.016311}, + {-0.566033,-1.332979}, + {-0.525104,-0.650364}, + {-0.791062,0.388240}, + {1.154731,1.317110}, + {-0.317317,-0.091369}, + {0.113614,0.044248}, + {-0.258272,-0.047712}, + {1.078975,0.638972}, + {-0.597647,0.741361}, + {-0.489840,-0.645206}, + {0.555416,0.241694}, + {-0.612925,-1.006549}, + {-1.021876,-0.178930}, + {-0.739651,0.372522}, + {0.602211,1.641040}, + {0.379708,-0.413169}, + {0.089748,-0.616324}, + {0.599494,-0.401401}, + {0.259038,1.039479}, + {0.006801,-0.534216}, + {-1.441283,-0.788294}, + {0.652339,-0.170895}, + {0.170934,0.389251}, + {0.369531,1.157200}, + {-1.009088,0.126682}, + {-0.315585,0.221797}, + {0.202527,1.134547}, + {-0.272163,-0.354116}, + {-0.278950,-0.284232}, + {-0.055980,-0.181156}, + {-0.432454,-0.002721}, + {-0.818628,-0.041833}, + {-0.544952,-0.105704}, + {0.552322,0.225571}, + {-0.429020,-0.426446}, + {0.450359,0.329922}, + {-0.420977,0.010542}, + {0.524081,0.061941}, + {-0.611116,-0.497061}, + {-0.185940,-1.029832}, + {-0.352210,0.272805}, + {-0.523549,0.577421}, + {0.484978,-0.655545}, + {0.426839,0.473204}, + {-0.694465,0.191582}, + {1.346640,-0.894402}, + {-0.108025,0.551475}, + {0.196850,0.014778}, + {0.461298,-0.661029}, + {1.183668,-0.482788}, + {0.451475,1.978741}, + {0.436252,-0.573917}, + {-0.793265,0.340729}, + {0.372344,0.278611}, + {-0.754183,0.302767}, + {-1.031154,-1.065581}, + {0.628203,-0.223986}, + {0.430165,-0.891388}, + {-0.015695,-0.279011}, + {0.048695,-1.308632}, + {-0.269414,-0.197042}, + {-0.795862,1.044719}, + {0.436994,-0.946302}, + {0.660415,0.069112}, + {-0.073069,-0.338405}, + {-1.016127,-0.176174}, + {0.603558,0.251424}, + {0.051546,-0.212910}, + {-0.297017,-1.927157}, + {-0.110347,-0.266009}, + {0.592700,-0.192662}, + {-0.562193,-0.059079}, + {-0.549655,1.273057}, + {0.063368,0.733878}, + {-0.221776,1.592995}, + {-0.742231,-1.023633}, + {-0.300987,1.027012}, + {0.819822,1.696182}, + {-0.391936,0.788524}, + {0.532161,-0.042235}, + {-0.366096,-0.206694}, + {-0.124892,-0.264484}, + {-0.704913,0.651417}, + {2.149216,-0.035024}, + {-0.208488,0.467413}, + {0.197927,-0.450251}, + {0.775973,0.707921}, + {-0.971095,0.934934}, + {-0.675312,-0.556623}, + {0.398423,2.014933}, + {1.314999,0.121784}, + {-0.149328,-0.548591}, + {0.624388,0.554257}, + {0.794465,-0.762318}, + {-0.342740,-0.044003}, + {0.664133,0.988572}, + {-0.591256,-0.550813}, + {0.004503,-0.209721}, + {-0.704415,1.115631}, + {0.499527,-0.865457}, + {-0.427010,-0.058056}, + {-0.442966,-0.801730}, + {-0.028645,-0.432707}, + {-0.520193,-0.477441}, + {0.693746,-0.591685}, + {-0.723356,-0.124885}, + {-0.271467,0.138230}, + {0.378694,-1.346075}, + {0.867608,-0.861081}, + {-0.030809,-0.637696}, + {1.547649,-0.433481}, + {0.281972,1.218074}, + {0.289769,-0.252994}, + {-0.547299,-1.114947}, + {0.281379,0.103827}, + {0.144241,0.141649}, + {0.882615,0.777328}, + {0.293825,-0.291434}, + {0.115586,0.642325}, + {-0.661045,-0.025898}, + {0.339237,0.790670}, + {-0.709378,0.173682}, + {-0.691671,0.227216}, + {-0.093392,0.390772}, + {-0.822655,1.661899}, + {0.470760,-0.539462}, + {0.883847,0.324028}, + {-0.816597,-0.501790}, + {-0.171583,-1.222645}, + {0.589553,0.087931}, + {0.352979,-0.325299}, + {-0.040087,0.573102}, + {-0.333396,0.702907}, + {0.678815,0.634352}, + {1.236381,-0.495768}, + {0.455672,1.242359}, + {-0.877502,-1.177867}, + {0.036368,0.084722}, + {-0.261535,1.262188}, + {-0.187800,0.138469}, + {0.075047,0.017116}, + {-0.553277,-0.427987}, + {0.203971,-0.219700}, + {-0.102810,0.727420}, + {-0.208146,0.641188}, + {0.505555,-1.229252}, + {-0.089677,-0.317869}, + {0.045298,0.553962}, + {0.682165,0.978041}, + {0.758240,1.062833}, + {-0.591609,-0.169416}, + {0.200002,-0.806496}, + {0.401893,-0.505467}, + {-0.049368,0.974221}, + {-1.338392,-1.052507}, + {-0.234168,-0.459732}, + {-0.049076,-0.787956}, + {-0.440995,0.824773}, + {-0.310494,0.155186}, + {0.629950,0.438434}, + {0.128082,-0.298934}, + {-0.889005,-0.700750}, + {0.725139,1.108872}, + {0.806530,0.172376}, + {1.274152,-1.109091}, + {0.361415,0.304318}, + {-0.770589,-1.690576}, + {-0.077050,-1.541958}, + {0.055098,0.140834}, + {-1.027384,-0.083170}, + {-0.387121,1.173074}, + {-0.511185,-0.640359}, + {0.970168,0.278280}, + {-0.399875,-0.215985}, + {0.578435,0.171387}, + {-0.143334,-0.387392}, + {1.048777,0.181700}, + {0.369934,0.608091}, + {1.128358,-0.533869}, + {0.725995,-0.677232}, + {0.131748,-0.914071}, + {-0.661664,0.557397}, + {0.864385,0.026499}, + {-0.076076,-0.384927}, + {-1.700148,0.806878}, + {-0.093025,0.160711}, + {0.657889,-0.819687}, + {1.415252,0.043090}, + {-0.474513,1.021749}, + {-0.235819,0.669443}, + {-0.209294,0.038555}, + {0.350373,0.947927}, + {-0.473777,0.450919}, + {-0.439863,-1.296476}, + {-0.041963,0.452473}, + {0.519491,-0.934337}, + {0.029848,0.199221}, + {0.568997,0.413023}, + {-0.422968,0.191107}, + {-1.046889,-0.575230}, + {0.555575,0.114778}, + {-0.271803,-0.125287}, + {-1.492866,-0.813928}, + {0.581882,-0.352968}, + {-0.802623,1.377947}, + {0.700558,0.297364}, + {0.010499,0.485443}, + {0.030525,-0.214066}, + {0.290003,-0.036848}, + {0.177382,0.633674}, + {-0.142112,-0.817479}, + {-1.506692,0.130953}, + {-0.549851,0.089496}, + {0.530755,1.632153}, + {0.958531,-1.707736}, + {0.610349,2.078139}, + {-0.086293,0.239772}, + {0.202042,-0.362267}, + {0.894271,-1.466671}, + {0.438957,0.318388}, + {-0.721440,-1.241242}, + {0.570884,0.929768}, + {0.691115,0.078293}, + {2.031262,0.005026}, + {0.614740,0.403247}, + {-0.153316,-0.453097}, + {-0.500683,-0.473711}, + {-0.604458,0.407987}, + {0.182040,0.697141}, + {-0.162319,0.006736}, + {0.525699,0.675310}, + {-0.360962,-0.686781}, + {1.308789,-0.386448}, + {-0.174349,-0.941565}, + {-1.104866,0.335170}, + {-0.705175,0.291939}, + {-0.244608,-0.192226}, + {0.962480,0.146916}, + {0.413036,-0.045753}, + {0.322721,0.586207}, + {-0.285444,0.020732}, + {-0.201547,-0.960376}, + {-0.525784,0.598120}, + {-0.594926,0.215987}, + {-0.157909,-0.395456}, + {0.609670,0.114630}, + {0.326789,-0.001808}, + {-0.652800,0.608450}, + {0.630816,-0.318163}, + {1.290349,-0.308122}, + {0.302288,0.042105}, + {-0.618234,-0.122607}, + {-0.671018,0.647521}, + {-0.033489,1.029981}, + {1.127675,0.838844}, + {-0.391586,0.406333}, + {0.634599,-0.206173}, + {-0.158274,0.281173}, + {0.031888,0.459707}, + {-0.371921,0.932324}, + {0.076527,-0.283407}, + {-0.241424,0.283793}, + {0.312402,0.175612}, + {0.212368,-0.432081}, + {-0.773642,0.100780}, + {0.251432,0.483141}, + {-0.166812,-0.067869}, + {0.027261,0.793139}, + {0.764140,0.027200}, + {0.014120,-0.858433}, + {-0.996727,0.370392}, + {0.132527,0.167380}, + {0.972844,0.615013}, + {-0.400845,-1.129354}, + {0.468849,-0.867083}, + {1.017556,-0.782061}, + {-0.109531,-0.643417}, + {-0.213625,0.158193}, + {0.199067,-0.074333}, + {0.344584,-1.074916}, + {-0.221442,0.527535}, + {-0.427743,0.192179}, + {-0.445158,0.223376}, + {-0.406246,-1.129810}, + {0.498180,-0.537912}, + {0.246385,1.147774}, + {1.124593,0.638781}, + {-0.238219,-1.178279}, + {0.564715,0.082624}, + {0.009528,-0.294926}, + {0.449595,-0.413499}, + {-0.222000,-0.383341}, + {-0.293071,-0.020010}, + {0.262525,-0.619825}, + {-0.622110,0.994815}, + {0.826520,-0.318905}, + {-0.139956,0.034670}, + {-0.602776,1.445757}, + {-0.000428,0.515115}, + {0.262184,-0.002736}, + {1.304981,-0.501046}, + {-0.321231,0.622551}, + {1.054329,-0.220852}, + {-0.492771,-0.940654}, + {-0.780517,1.146123}, + {-0.030875,-1.453137}, + {0.833466,-0.395468}, + {0.523778,0.759513}, + {-1.126077,-0.417115}, + {-0.556663,0.032786}, + {0.206892,-1.122757}, + {-0.366164,1.106942}, + {0.152365,-0.067752}, + {0.046570,-0.568357}, + {-1.294625,0.304168}, + {-0.314597,-0.414620}, + {1.204236,0.126016}, + {-0.051512,0.247893}, + {-0.662050,-0.548429}, + {0.806882,0.635211}, + {0.354519,0.315406}, + {-0.102549,-0.307759}, + {-0.945865,-1.144877}, + {0.092988,-0.095752}, + {-0.590799,1.426964}, + {-0.512031,-0.295192}, + {-0.241074,-0.440517}, + {0.829680,0.087681}, + {-0.109337,-0.289886}, + {0.656985,0.294518}, + {0.564203,0.206732}, + {-0.898597,-0.207926}, + {0.327259,0.685055}, + {1.226880,-0.695505}, + {-0.829727,0.718718}, + {-1.451225,-0.289371}, + {0.837042,1.220714}, + {-0.158113,0.175430}, + {0.974037,-0.062980}, + {0.178835,0.169509}, + {1.118203,0.735886}, + {0.104949,-0.340257}, + {0.378724,0.089648}, + {0.214056,-0.821406}, + {1.396107,0.599080}, + {0.369926,0.109247}, + {0.673800,0.763612}, + {-0.268951,-0.230063}, + {0.567933,0.162580}, + {-1.689604,-0.345288}, + {0.137885,-0.093063}, + {-0.298533,-0.191792}, + {1.251967,-0.136681}, + {-0.693495,-0.932444}, + {-0.555325,-0.131594}, + {0.236263,-0.069815}, + {-1.252648,0.035106}, + {-1.764317,0.733486}, + {-0.075051,1.622354}, + {-0.085244,-0.605377}, + {-0.642959,-0.089863}, + {-0.113593,-0.099045}, + {0.058362,-1.029047}, + {0.826847,0.113454}, + {-0.244119,-0.050284}, + {-1.073509,0.123867}, + {-0.904460,-0.901549}, + {0.453204,-0.459712}, + {-1.264724,-0.418653}, + {0.472295,-1.485124}, + {0.323558,-0.092765}, + {1.800720,0.519789}, + {-1.126308,-0.318456}, + {0.724158,-0.269665}, + {0.710385,0.177657}, + {-0.783852,-0.215007}, + {-1.354067,0.031020}, + {-1.015185,0.249321}, + {0.839984,1.457903}, + {-0.353245,-0.313877}, + {0.763070,0.903317}, + {-1.656538,-0.791042}, + {-0.892608,-0.381481}, + {0.649284,-0.643492}, + {1.455720,-0.133815}, + {0.732560,-0.289157}, + {-0.377583,-1.019029}, + {-0.377847,-1.270397}, + {0.809711,-0.293496}, + {-1.027232,-0.492600}, + {-0.531947,-1.149837}, + {-0.321890,0.886703}, + {-0.603477,-1.377457}, + {0.259723,-0.220563}, + {0.949998,0.240148}, + {0.261264,0.890932}, + {0.595257,-1.336390}, + {-0.362741,0.082717}, + {-0.355324,-0.058517}, + {-0.404853,-0.487143}, + {-0.431324,0.299014}, + {0.079328,-0.804580}, + {0.824935,-0.454231}, + {0.262757,-0.554689}, + {0.126869,-0.439135}, + {-1.051874,-0.512746}, + {0.293715,0.904688}, + {-1.530512,-0.258114}, + {0.782473,1.192382}, + {0.532046,0.769399}, + {0.384142,-0.126943}, + {0.161275,-0.961466}, + {-0.060918,-0.053277}, + {0.876995,1.833961}, + {-0.747767,0.165348}, + {-0.052410,-0.612302}, + {0.814379,0.370027}, + {0.848717,-0.351940}, + {-0.797478,-0.346407}, + {0.451936,1.010194}, + {0.582376,0.949018}, + {-0.342362,0.108576}, + {0.556515,-0.142943}, + {0.728162,-1.097160}, + {-1.075414,0.137602}, + {0.457708,-0.654780}, + {0.165246,1.781712}, + {-0.319642,-0.993107}, + {-0.584410,0.462585}, + {-0.203283,-0.682679}, + {-0.872903,0.560968}, + {0.545374,0.278981}, + {0.918419,0.246065}, + {-0.632251,-0.167158}, + {-0.285094,0.517218}, + {0.742545,-0.428022}, + {-0.272512,-0.650121}, + {0.007097,-0.259464}, + {0.321549,-0.153838}, + {-0.935528,-0.478174}, + {-0.609717,-0.076270}, + {-0.755654,-0.453108}, + {0.881595,0.809393}, + {-0.851194,-0.126438}, + {-0.678539,-0.168662}, + {-0.735439,1.454476}, + {-0.702070,-0.732654}, + {0.950217,0.061374}, + {0.931381,0.383055}, + {-1.577577,-0.830957}, + {1.081051,0.875738}, + {0.946201,1.485701}, + {0.433276,0.890427}, + {1.505338,0.234134}, + {0.083216,0.185535}, + {0.206556,0.692397}, + {0.800164,1.210478}, + {0.308393,-0.573495}, + {-0.455541,0.377465}, + {0.285379,0.593679}, + {1.807014,0.007663}, + {1.599165,-0.768434}, + {-0.182963,-1.147207}, + {0.691660,0.496669}, + {0.235179,-0.284885}, + {-0.461998,0.542110}, + {-1.935320,-0.774389}, + {-0.078056,-0.127823}, + {0.299281,-0.033361}, + {0.302731,0.078716}, + {0.069066,-0.050105}, + {0.221607,-1.239222}, + {0.340220,0.582368}, + {-0.565872,0.345751}, + {-0.470414,0.191707}, + {-0.086475,-1.321960}, + {-0.653337,1.499706}, + {-1.186698,0.203143}, + {0.362014,0.335224}, + {0.763790,-0.914370}, + {1.135858,-1.463878}, + {0.719099,-0.477518}, + {0.269766,0.421199}, + {0.064365,-0.175814}, + {-0.367548,0.001256}, + {0.544776,-0.698629}, + {0.615651,-0.386841}, + {-0.875089,-0.516872}, + {0.413476,-1.281108}, + {0.502809,-0.490843}, + {-2.204143,0.110420}, + {-0.385040,-0.740596}, + {0.695904,0.385231}, + {0.255709,0.008205}, + {-0.586557,-0.564665}, + {0.803747,0.411107}, + {1.601181,0.662062}, + {0.865286,-0.979781}, + {0.689845,0.519237}, + {0.395498,0.145840}, + {-0.626369,0.344739}, + {0.042164,0.051887}, + {-1.403498,0.671656}, + {0.598572,0.681828}, + {1.220256,-1.165620}, + {-0.793312,0.715179}, + {-0.234183,0.019938}, + {0.385507,0.226328}, + {-0.450997,-1.107601}, + {-1.171289,0.649867}, + {-1.080178,-1.231856}, + {-0.061619,1.143806}, + {0.430298,0.525364}, + {-1.049354,0.166192}, + {-0.080776,-0.357525}, + {0.511572,-1.785495}, + {-0.558196,0.261639}, + {-0.887145,0.298578}, + {-1.566637,0.706769}, + {1.151140,0.445122}, + {-0.586133,0.107778}, + {-0.804525,0.245580}, + {0.980744,1.043818}, + {-0.070419,-0.910922}, + {-0.451713,0.466261}, + {1.125777,0.160904}, + {0.577041,0.069860}, + {1.144021,-0.150339}, + {-0.411414,0.404973}, + {0.188443,0.548050}, + {0.225498,-0.614626}, + {1.398432,-1.427287}, + {-0.035313,0.492779}, + {0.460713,-1.022950}, + {-0.523193,-0.887124}, + {-1.045011,0.261402}, + {1.388863,-0.612235}, + {0.475152,-0.857959}, + {0.468680,-0.231389}, + {0.983306,0.199760}, + {-0.645385,0.205021}, + {-0.363448,-0.870316}, + {-0.003819,0.010668}, + {0.471121,0.244769}, + {-0.040500,0.556180}, + {-1.479050,0.358434}, + {0.182788,0.373558}, + {-0.858638,-0.878108}, + {0.001368,0.436654}, + {0.142518,0.294864}, + {-1.153171,0.438127}, + {0.937820,0.034099}, + {1.521724,-0.077421}, + {-0.377694,-0.278517}, + {1.467230,-0.459260}, + {0.145964,0.357560}, + {0.619192,-1.480037}, + {-0.797876,0.686615}, + {-0.465726,1.294829}, + {1.120753,0.433341}, + {0.481084,0.429728}, + {-0.993491,-0.218804}, + {0.080120,0.061366}, + {-0.345080,-1.108765}, + {0.597685,-1.108810}, + {0.272861,-1.448070}, + {0.103180,-0.368753}, + {0.452562,-0.193846}, + {-0.047889,-0.169513}, + {-0.062237,-0.499899}, + {-0.208393,1.227431}, + {0.358621,-0.122079}, + {-0.538647,0.167846}, + {-0.535399,0.147300}, + {-0.016851,-0.523791}, + {0.185591,0.287441}, + {-0.076126,0.077379}, + {0.111808,-0.298068}, + {-0.360049,0.447806}, + {-0.468579,0.021829}, + {0.999254,0.093009}, + {0.409156,0.087569}, + {-0.290239,1.155172}, + {-0.631769,0.113278}, + {-0.485475,0.352847}, + {0.132807,0.899243}, + {0.231351,-0.149363}, + {0.389824,-1.011206}, + {-0.093767,0.618494}, + {0.302881,0.883287}, + {0.253348,-0.020438}, + {0.310115,0.544154}, + {-0.181672,0.250213}, + {0.785253,-0.002714}, + {0.399704,-0.310344}, + {-1.634428,0.357997}, + {0.976723,0.117106}, + {-0.663422,0.938808}, + {1.142522,0.426250}, + {-0.176854,0.538674}, + {1.134571,1.976267}, + {-0.793977,0.553600}, + {-0.496199,0.132777}, + {0.428161,1.342281}, + {0.881731,-0.349207}, + {0.487284,-0.673507}, + {0.834150,0.300816}, + {1.043740,0.574802}, + {-0.108407,1.056837}, + {-0.745715,0.304328}, + {0.494903,0.535517}, + {-0.608093,0.752694}, + {0.430291,-0.135674}, + {-0.174181,-1.362910}, + {-0.064613,-1.995513}, + {-0.704478,0.276742}, + {0.232225,-0.347325}, + {0.129886,0.297225}, + {0.095056,0.366532}, + {1.123177,-0.516860}, + {0.280489,0.548995}, + {0.950114,0.871146}, + {-0.045855,-0.101106}, + {0.323361,0.916197}, + {-0.379042,-0.789420}, + {0.155370,-0.526626}, + {0.123440,-0.404112}, + {1.122189,-0.542010}, + {0.287594,-0.412748}, + {-0.487695,-0.914112}, + {0.326158,-0.133099}, + {-0.166449,-1.353339}, + {-0.055827,0.625175}, + {-1.228110,0.059411}, + {-0.274514,-1.194058}, + {0.008816,-0.571387}, + {-0.700423,0.936284}, + {-0.528928,0.824434}, + {-0.436216,1.131698}, + {-1.371594,-0.535034}, + {-0.002092,0.190907}, + {-0.652668,1.278957}, + {0.101573,-0.906194}, + {0.783427,-0.139790}, + {-2.499705,-0.774554}, + {0.580857,0.350367}, + {-0.259410,0.346345}, + {1.443858,0.066180}, + {1.007880,-0.608615}, + {-1.185398,-0.124630}, + {-1.074749,-0.104417}, + {-0.075128,0.869631}, + {-0.157998,1.035636}, + {-0.212559,-0.416354}, + {0.399589,-0.077372}, + {0.139788,0.342017}, + {1.188158,-1.194288}, + {0.290935,0.230597}, + {0.467906,0.144104}, + {0.777358,0.288836}, + {0.818580,0.308433}, + {-0.210142,0.214512}, + {0.315948,-0.636328}, + {-0.005891,-0.999753}, + {0.072755,-0.563891}, + {0.425654,0.196551}, + {0.361411,-0.211226}, + {0.905206,-1.349513}, + {-0.790974,-0.395724}, + {0.525156,0.770383}, + {-0.092408,-0.488183}, + {0.265920,-0.036150}, + {-0.276333,-0.689856}, + {0.117261,0.005735}, + {-0.665691,-0.164460}, + {0.312157,-0.594442}, + {0.107864,-0.443120}, + {1.118670,-0.671898}, + {-0.022763,0.583797}, + {0.510916,-0.179671}, + {0.714169,-0.104546}, + {0.396036,1.216840}, + {0.373920,0.135520}, + {0.553972,-0.997894}, + {0.052585,0.462084}, + {-0.150044,-0.163447}, + {1.461147,0.659548}, + {-1.000455,-1.680109}, + {-0.717611,-0.210337}, + {-0.772596,-0.251350}, + {0.537726,1.050492}, + {-0.482650,-0.283289}, + {-0.633239,-0.569656}, + {-0.904458,-0.617468}, + {0.109119,-1.522443}, + {-1.226419,-0.899079}, + {0.379579,-0.252179}, + {-0.104614,0.852366}, + {-0.503179,0.002718}, + {0.361405,-0.255127}, + {0.707854,-0.139151}, + {0.588351,0.341695}, + {0.541234,0.404290}, + {-0.423201,0.945891}, + {0.540899,0.903758}, + {-0.383715,-1.224310}, + {0.541671,-0.191686}, + {0.220524,-0.467755}, + {0.419523,-0.261834}, + {-0.248004,-0.524029}, + {1.166929,-0.005245}, + {0.162462,0.683697}, + {0.021613,-1.336883}, + {-0.371790,-0.820360}, + {0.064987,-0.180902}, + {-0.530311,-0.237448}, + {0.014535,0.196268}, + {0.302158,-0.943375}, + {-0.741328,-0.621982}, + {-0.990134,-0.843669}, + {0.298802,0.314671}, + {0.150737,-0.515418}, + {0.642389,0.170803}, + {-0.660634,-0.070932}, + {-0.466752,0.294915}, + {0.498991,0.882812}, + {-0.120033,-0.318492}, + {-0.283866,0.416022}, + {-1.125159,0.156951}, + {0.164229,0.285664}, + {-0.680682,0.531478}, + {-0.228335,0.444181}, + {0.424797,-0.850202}, + {-0.620993,1.933195}, + {0.618146,1.057688}, + {0.351681,0.093757}, + {0.343992,-0.350496}, + {0.419756,-0.682277}, + {0.132223,-0.220393}, + {0.315669,-0.077213}, + {0.623756,-0.047636}, + {-0.980970,0.008924}, + {-0.180176,0.848320}, + {1.546197,0.370102}, + {0.713022,-0.899697}, + {-0.512503,-0.004650}, + {-1.161518,0.132127}, + {-1.041393,-0.554167}, + {-0.036518,0.378256}, + {-0.567661,-0.897940}, + {0.259504,-0.049623}, + {-0.026158,-0.270600}, + {0.724927,-0.499448}, + {0.138307,1.291056}, + {-1.822129,-1.644371}, + {0.671500,0.097591}, + {-0.980895,0.107560}, + {-0.420513,0.010420}, + {0.003000,-0.162645}, + {0.447768,-0.633708}, + {0.382118,0.153956}, + {-0.223916,-0.841490}, + {-1.102503,-0.035876}, + {0.040286,0.813246}, + {0.067205,-2.636223}, + {-1.058178,-0.439882}, + {0.240943,0.599442}, + {-0.266778,-1.074089}, + {0.320826,-0.918839}, + {-0.646954,-0.007690}, + {-0.530749,-0.347252}, + {-0.393036,-0.123253}, + {0.053211,-2.091439}, + {-0.481911,-0.677379}, + {-0.014975,0.997160}, + {0.536010,1.088136}, + {-1.031007,-1.129666}, + {-0.116730,0.519996}, + {1.565485,-0.343272}, + {-0.368459,0.506657}, + {-0.230470,-0.260120}, + {0.621381,1.007440}, + {0.186324,-0.312790}, + {0.273069,-0.166279}, + {0.201102,1.556145}, + {-1.115634,1.567159}, + {-0.648866,-0.322859}, + {-0.704410,0.380438}, + {0.342389,0.213936}, + {-0.042804,0.701810}, + {0.016719,0.090798}, + {-0.731592,-0.277491}, + {0.103078,0.783883}, + {0.345053,0.215559}, + {0.067924,1.081925}, + {0.369806,-0.219722}, + {1.098806,0.215612}, + {-0.724316,-0.036048}, + {0.186158,0.608022}, + {0.139663,0.056514}, + {-0.575010,-0.801492}, + {-1.123663,-0.414602}, + {0.564236,0.266108}, + {-0.391462,0.093429}, + {0.144703,-0.560902}, + {-0.686121,1.329790}, + {-0.379640,-0.241261}, + {-0.498875,-1.364991}, + {0.541470,0.214751}, + {-0.508841,-0.694946}, + {0.812702,0.407024}, + {0.257132,0.128592}, + {-1.187255,-0.495273}, + {0.020247,-0.196925}, + {0.188392,-0.459074}, + {-0.932918,0.525366}, + {1.134929,1.151288}, + {-1.296745,-0.844320}, + {-0.610290,-1.014578}, + {0.623994,0.443023}, + {-0.303615,-1.049124}, + {-0.597543,-0.208275}, + {0.252960,0.992397}, + {-0.023412,0.368284}, + {-0.429581,-0.070039}, + {0.923782,-0.778340}, + {0.060056,-0.739469}, + {0.753096,0.478049}, + {-0.127857,0.093383}, + {0.106401,0.423911}, + {-0.183224,-0.032369}, + {-0.381160,0.851604}, + {-0.797228,-0.217383}, + {0.227067,0.316891}, + {0.451114,1.830366}, + {-1.042958,0.186763}, + {-0.171936,0.478779}, + {-0.075379,0.034822}, + {0.385404,1.160047}, + {0.105260,-1.211098}, + {1.211046,-1.103540}, + {0.308818,-1.042156}, + {-0.704631,-0.115963}, + {0.012675,-0.547391}, + {-0.484557,-0.100460}, + {-0.836917,-0.043501}, + {-0.463115,1.544351}, + {0.309894,-0.669455}, + {0.685375,0.000866}, + {0.511942,0.836813}, + {-0.929517,-0.531037}, + {0.050933,0.075894}, + {0.845070,1.231045}, + {0.796139,0.796776}, + {0.766749,-0.653760}, + {0.742048,1.398289}, + {-0.403017,-0.007496}, + {-0.509706,1.110607}, + {-1.449968,0.427343}, + {-0.010909,1.223294}, + {-0.077727,-0.670769}, + {0.526333,0.308160}, + {0.319094,-0.176388}, + {0.742543,1.379446}, + {1.245044,1.188638}, + {-0.025489,-0.164810}, + {0.608945,-0.073624}, + {-0.174670,-0.273746}, + {-0.624686,1.010041}, + {-0.670461,0.584006}, + {-0.444858,-1.904891}, + {0.222806,0.547945}, + {0.138390,0.546322}, + {-0.446882,-0.696967}, + {-0.628694,-1.208785}, + {-2.152300,-0.613403}, + {-0.096864,0.068138}, + {-0.301906,-0.946012}, + {-0.369820,-0.646125}, + {-1.447581,-0.646713}, + {-0.400707,-0.494477}, + {-0.635435,-0.038456}, + {0.296783,0.278288}, + {-1.001213,0.042941}, + {0.091071,0.902239}, + {-0.460656,0.281628}, + {0.479946,0.142043}, + {-0.487485,-0.696643}, + {-0.407485,-0.541246}, + {-0.607882,-0.853128}, + {-1.305443,-0.877425}, + {-0.359749,-0.647498}, + {-0.626709,0.576527}, + {-0.148729,-0.090456}, + {0.172979,0.177948}, + {-0.107637,-0.478667}, + {0.366998,0.024629}, + {0.462107,0.857612}, + {-0.460563,0.248349}, + {0.907838,0.853909}, + {0.783150,0.585374}, + {-0.299669,-0.212882}, + {1.119594,0.504852}, + {0.377228,0.481423}, + {0.852296,0.676788}, + {-0.286757,-0.002129}, + {0.209843,-0.977784}, + {-0.441823,-0.072773}, + {0.917957,-0.753300}, + {0.273348,-0.628772}, + {-0.284862,0.155215}, + {-0.247355,-0.247082}, + {2.118546,-0.537469}, + {-0.310251,-0.363626}, + {1.378995,0.614774}, + {0.009172,-1.398820}, + {-0.300000,0.441999}, + {-0.297449,0.954413}, + {0.683275,0.180768}, + {-0.371476,-1.618431}, + {-0.175134,-1.231505}, + {-0.749555,-0.428287}, + {-0.969477,0.592818}, + {0.687133,-0.691685}, + {-0.165526,-0.045505}, + {0.910848,-0.391948}, + {1.179305,0.100935}, + {0.166614,-0.729254}, + {-1.130469,0.164593}, + {-1.549639,0.217721}, + {-0.481054,-0.872328}, + {-0.586590,-1.074824}, + {0.091563,0.381294}, + {-0.609678,-0.230306}, + {0.503876,0.238278}, + {-0.562595,1.625733}, + {1.273220,0.329444}, + {0.309265,-0.432313}, + {0.950421,0.011570}, + {0.374275,-0.221395}, + {-0.002535,-0.068439}, + {-0.704010,-0.714205}, + {0.645151,-0.117244}, + {-0.548621,0.089519}, + {-1.310708,0.214149}, + {-0.222895,0.327611}, + {-1.536313,0.422522}, + {0.805899,-1.158480}, + {0.201190,0.527469}, + {0.085621,-0.741991}, + {-0.638953,0.135701}, + {0.610284,0.256558}, + {-0.021550,-0.185034}, + {-0.663349,0.344785}, + {1.234438,0.087483}, + {-0.131234,-1.490191}, + {0.256245,0.425473}, + {-0.093340,0.831930}, + {-1.552555,-0.056483}, + {0.441688,0.115210}, + {0.108127,0.046402}, + {-0.367616,-0.887437}, + {-0.808894,-0.681247}, + {-0.609795,-0.206087}, + {0.578144,0.401209}, + {-0.066620,0.628916}, + {0.230375,-0.294361}, + {0.168031,0.445080}, + {0.184035,0.358481}, + {0.251087,-0.489438}, + {-0.945207,2.090916}, + {-0.899493,0.281441}, + {-0.600711,0.695281}, + {0.496877,1.825249}, + {0.557064,1.787828}, + {-0.032903,0.096150}, + {-0.171482,-0.526085}, + {-0.560700,0.472487}, + {-0.295947,0.009918}, + {1.142040,0.416169}, + {-0.447775,0.074483}, + {-0.823909,-1.010476}, + {-1.547191,1.727266}, + {-0.760387,-0.877929}, + {-1.629711,-0.932786}, + {0.486282,0.248117}, + {-0.264396,0.926022}, + {1.081113,0.075435}, + {-0.643699,-0.289886}, + {0.440984,0.308158}, + {0.821736,-0.810105}, + {-1.505203,-1.521192}, + {-0.542677,0.842918}, + {0.164887,0.399004}, + {-0.811521,0.078831}, + {0.797827,-1.167125}, + {-0.401101,-0.501867}, + {0.364811,-0.809028}, + {0.734068,-0.323428}, + {-0.319197,-0.550535}, + {-0.271324,-0.367006}, + {-0.059699,0.983663}, + {-1.366932,0.282483}, + {0.168976,0.203650}, + {0.302598,-0.221575}, + {1.175485,0.753488}, + {0.107512,1.781766}, + {0.946028,-0.282479}, + {-0.679608,-0.932184}, + {-1.191856,0.201361}, + {-0.166462,-0.053378}, + {-0.812532,-0.147616}, + {1.611017,0.674833}, + {0.314528,1.017239}, + {-1.162592,0.325194}, + {-1.032033,0.635921}, + {0.084120,-0.730470}, + {0.494315,0.897198}, + {0.847109,0.168996}, + {1.644454,0.751446}, + {-0.353970,-0.863128}, + {0.678397,0.141939}, + {-0.973674,-2.013022}, + {0.685345,0.419897}, + {-1.288642,-0.442089}, + {-0.054887,-0.748914}, + {-0.601785,-0.605123}, + {-0.214297,-0.391510}, + {-1.074972,0.659726}, + {0.105391,0.708672}, + {-0.113354,-0.765485}, + {0.300873,0.781452}, + {0.170277,0.599499}, + {0.147834,-0.954326}, + {-0.339726,-0.501183}, + {0.544002,0.385444}, + {0.352044,1.066552}, + {0.911869,0.956912}, + {-0.191047,0.108966}, + {1.413499,-0.757569}, + {0.706789,-1.026854}, + {0.539308,-0.138690}, + {0.080942,-0.272806}, + {0.098018,0.018024}, + {0.195238,-0.389384}, + {0.488144,-0.357992}, + {-0.309817,0.010149}, + {-1.032893,-0.592658}, + {-0.298775,-0.388887}, + {1.131782,-1.690704}, + {-0.193514,0.171204}, + {-0.537903,-0.543134}, + {0.659055,-0.601144}, + {0.304951,0.294985}, + {0.888941,0.970043}, + {0.458543,-0.183693}, + {-0.759308,0.795668}, + {-0.350375,-0.113882}, + {-0.127585,0.382365}, + {-0.213916,0.521858}, + {-0.344818,0.116112}, + {-0.092834,-0.185633}, + {0.061649,1.365497}, + {0.476463,-0.791558}, + {-0.984206,0.997109}, + {-0.057978,-0.489422}, + {-0.194234,-0.607085}, + {-0.657674,0.088412}, + {-0.469191,0.137722}, + {1.011820,-0.291022}, + {-0.303269,-0.626332}, + {0.561159,-0.200477}, + {0.140475,0.804297}, + {0.160608,-0.598328}, + {0.213319,1.449153}, + {1.142243,0.283340}, + {0.065037,-0.257834}, + {0.261033,0.207025}, + {0.700460,0.482503}, + {0.843141,-0.154417}, + {0.292633,0.402510}, + {-0.818789,-0.671620}, + {0.736334,-0.267822}, + {-0.736153,0.705889}, + {-1.012207,-0.010744}, + {0.662579,0.401311}, + {-0.387354,-0.679445}, + {1.209621,-0.153205}, + {-0.701672,0.069607}, + {1.319853,1.085888}, + {1.254748,-0.101110}, + {0.266011,-0.499106}, + {0.615725,0.884454}, + {-1.011208,0.102181}, + {-1.099802,-0.974027}, + {-0.531963,-0.562972}, + {0.121607,-0.356338}, + {0.518231,0.154831}, + {0.499951,1.188225}, + {-0.817457,1.714401}, + {0.369950,0.572897}, + {-0.414845,-0.182628}, + {-0.718216,1.117213}, + {-1.333928,0.469810}, + {-1.207522,-0.417102}, + {0.561111,0.726184}, + {-1.117766,-0.219214}, + {0.744550,-0.034760}, + {0.797619,1.455506}, + {-0.584053,0.337943}, + {0.157397,-0.757585}, + {0.116196,-0.446006}, + {0.146428,0.467807}, + {0.714421,-0.366232}, + {1.429872,0.625346}, + {-0.033015,0.198674}, + {0.105885,-0.216353}, + {-0.023687,0.692143}, + {-0.048073,0.669529}, + {-0.205184,0.780326}, + {0.266525,0.176072}, + {0.141148,0.252191}, + {-0.388369,0.046018}, + {0.299170,-0.177464}, + {-1.081893,-1.145642}, + {0.010014,0.514986}, + {0.448166,-0.748932}, + {-0.295357,-0.035173}, + {-0.033904,0.187373}, + {-0.964666,-0.232491}, + {0.485426,-1.478534}, + {0.150372,0.430681}, + {1.004055,0.755612}, + {-1.273932,-0.382681}, + {-0.123319,0.320989}, + {-0.919513,-0.315545}, + {-0.497703,0.345372}, + {0.182013,-0.018783}, + {0.188130,-1.169909}, + {-0.716006,-0.184715}, + {0.178950,-0.378160}, + {-1.121777,0.261067}, + {-0.884913,0.533499}, + {-0.252487,-0.381490}, + {-0.521029,-0.459944}, + {0.109009,-0.604069}, + {-0.131799,-0.166129}, + {-0.915776,0.867035}, + {-0.051356,-0.189373}, + {0.352025,0.298949}, + {0.197533,0.081879}, + {-0.198604,0.668512}, + {1.153004,0.840196}, + {-0.111957,-0.162456}, + {1.271047,0.649951}, + {-0.272905,1.016445}, + {-0.490432,-1.110506}, + {0.098962,0.280027}, + {-0.149747,-1.055724}, + {0.592247,-0.565550}, + {1.155912,-1.145805}, + {0.763039,0.568494}, + {-0.395993,0.406406}, + {0.047324,0.263514}, + {-0.137376,0.214639}, + {-0.226893,-0.197915}, + {0.966088,-0.475559}, + {-0.194234,-0.012569}, + {-0.473935,-0.886494}, + {-0.265603,0.751773}, + {-1.593588,0.084399}, + {1.119877,0.854302}, + {-0.038422,0.118207}, + {0.370947,0.914543}, + {1.114324,0.036220}, + {0.206356,-0.695196}, + {1.075653,0.031579}, + {-0.428467,0.099867}, + {-0.942289,0.247139}, + {-0.925418,-0.511600}, + {-0.275870,-0.147021}, + {0.403291,-0.774485}, + {-0.147236,-0.816691}, + {0.715749,-0.581534}, + {0.714183,-0.266639}, + {-0.530022,0.395632}, + {-0.081142,0.308192}, + {0.776196,-1.301781}, + {0.402042,0.760863}, + {0.582426,1.116527}, + {0.303501,-1.230810}, + {0.909943,-0.101521}, + {-0.304997,0.216745}, + {-0.534911,-1.278462}, + {0.117181,0.344833}, + {0.598680,-0.801582}, + {-0.488952,0.298129}, + {-0.577852,-1.244262}, + {1.066878,-0.383162}, + {0.365205,-0.304288}, + {0.219744,1.047894}, + {-0.203519,0.603274}, + {0.562170,0.561149}, + {0.172008,0.053308}, + {-0.240833,-0.248882}, + {0.374048,0.395277}, + {-0.184462,0.712107}, + {-0.744861,-0.403328}, + {0.909695,-0.029738}, + {-0.518537,0.759702}, + {0.075402,0.358815}, + {1.141827,-0.585600}, + {-0.562473,0.258697}, + {-1.676194,0.124049}, + {0.233487,-1.891531}, + {-0.829451,0.542206}, + {0.671130,-0.997574}, + {-0.508597,-0.729909}, + {1.180725,-0.338574}, + {1.129566,-0.232048}, + {-0.380058,0.044743}, + {-0.520974,0.138217}, + {0.316724,0.009838}, + {0.133527,-1.443095}, + {0.420516,0.089332}, + {-0.302825,0.028929}, + {1.668571,-0.092751}, + {0.452698,0.532245}, + {0.360685,-1.949182}, + {-0.909377,1.422417}, + {0.108981,0.031519}, + {0.529371,-0.320971}, + {-0.439658,0.288459}, + {0.212286,-0.312996}, + {0.505587,0.680236}, + {0.990288,-0.247507}, + {-0.568695,-0.327833}, + {-0.026999,-2.401438}, + {0.339704,-0.467720}, + {1.232324,-0.049586}, + {-1.244245,-0.285340}, + {-1.630956,0.212445}, + {0.099499,0.057161}, + {0.764231,-0.893147}, + {0.454370,-0.132950}, + {0.140425,0.680194}, + {0.516606,0.024468}, + {-0.862301,0.058704}, + {0.505420,0.269336}, + {-1.237570,-0.038382}, + {0.535371,-1.536667}, + {-0.363929,-0.038955}, + {0.024531,0.914036}, + {0.543681,0.532978}, + {-0.515135,-0.698846}, + {-0.428846,0.073398}, + {-1.039931,0.055062}, + {-0.621873,-1.226401}, + {0.007829,0.811232}, + {0.571021,-0.114346}, + {-0.382807,0.023667}, + {-1.068780,-1.869853}, + {1.156098,-0.153257}, + {0.573828,-0.535261}, + {-0.790467,0.176901}, + {-0.315664,0.803594}, + {-0.334936,0.354728}, + {-0.055522,0.952521}, + {1.315614,0.102351}, + {0.491766,0.538302}, + {0.653814,-0.342202}, + {-0.127639,-1.045441}, + {0.819444,-0.227273}, + {-0.029933,0.258527}, + {-0.824566,0.432697}, + {0.165227,-0.560056}, + {-0.588310,0.436099}, + {-0.421849,-0.388859}, + {-0.090400,-1.251581}, + {-0.533719,1.429956}, + {0.394513,1.115320}, + {-0.782266,0.768142}, + {-0.197776,0.622177}, + {-0.067525,1.525139}, + {1.756764,0.035239}, + {0.798450,-0.795585}, + {-0.262068,0.632512}, + {1.880538,-0.279111}, + {-0.792909,-0.561815}, + {0.888441,1.301812}, + {0.701364,-0.873528}, + {1.343495,-0.562411}, + {0.868597,0.141126}, + {-0.328745,0.918909}, + {-0.941006,-1.339590}, + {-1.343155,-0.049963}, + {-0.574658,-1.478137}, + {0.137838,0.792901}, + {-0.041365,0.454133}, + {0.091431,-0.459571}, + {-1.358113,-0.736001}, + {-0.192427,-0.926593}, + {0.350541,0.433002}, + {-0.084577,-0.444999}, + {0.205895,-0.138558}, + {-0.941218,-0.106877}, + {-0.194195,0.335722}, + {0.734401,-0.283139}, + {1.613564,-0.517256}, + {-0.090641,0.231313}, + {0.266345,0.222315}, + {0.518095,0.960832}, + {0.250561,-0.619001}, + {-0.130002,-0.001817}, + {-0.447930,0.628615}, + {-1.273623,0.406367}, + {0.212427,0.986079}, + {-0.997576,-0.940297}, + {0.375197,0.358510}, + {0.229471,-1.781878}, + {0.184320,0.461606}, + {0.434436,-0.414778}, + {0.034886,-0.062974}, + {-1.325976,0.135652}, + {0.189020,-0.739167}, + {-0.205637,-0.572855}, + {0.860524,-0.315333}, + {0.469117,-1.548092}, + {-0.513513,1.158982}, + {-0.837350,0.105504}, + {-0.061953,-0.530778}, + {0.293859,0.467221}, + {-1.319548,-0.912039}, + {-0.137013,-0.872433}, + {0.387589,-0.454601}, + {-0.234174,-0.245068}, + {-0.744095,-0.128278}, + {-0.391439,0.309053}, + {0.908503,0.583369}, + {0.802960,0.512355}, + {-0.685064,1.108868}, + {0.251810,0.543558}, + {-0.142699,0.735253}, + {-0.039414,-0.908746}, + {0.003694,-0.414133}, + {0.715774,0.070174}, + {-0.374828,1.309546}, + {-0.427538,0.385587}, + {1.338794,0.002127}, + {-0.216609,-0.694721}, + {-1.047300,0.562533}, + {0.397480,0.627659}, + {-0.068233,-1.155685}, + {-0.553008,0.472904}, + {-0.042893,-0.644339}, + {-0.448845,-1.208575}, + {-1.198214,0.953970}, + {0.997727,0.245114}, + {0.597755,0.536424}, + {0.056192,0.023036}, + {-0.599560,0.905339}, + {-0.495127,-1.106235}, + {-0.677290,-0.536778}, + {-0.732936,0.552336}, + {-0.341833,0.636930}, + {0.745283,0.226951}, + {-1.677101,-0.140140}, + {0.185817,1.107540}, + {-0.845686,-0.138093}, + {0.337944,-0.600359}, + {1.011849,0.076595}, + {-0.535078,0.401710}, + {-0.509358,0.080738}, + {-0.713136,0.201088}, + {-0.037796,-0.459023}, + {0.077312,0.078831}, + {-0.674500,0.304809}, + {0.022353,0.208630}, + {0.234088,-0.185560}, + {-0.100573,-0.317607}, + {1.598601,0.170815}, + {1.128860,0.395856}, + {0.126361,0.194856}, + {-0.743378,-1.283214}, + {-0.729153,-1.745945}, + {0.427334,0.514369}, + {-0.260759,0.127843}, + {0.726265,0.484686}, + {-1.043220,1.583933}, + {0.058154,0.202930}, + {-0.691332,0.298501}, + {0.914411,-0.450303}, + {0.871508,-0.248846}, + {-0.880065,-1.352105}, + {-0.347400,-0.479989}, + {-0.523254,-0.137392}, + {0.062610,0.321808}, + {0.583315,1.055442}, + {-0.543484,0.434486}, + {-0.325772,-0.127451}, + {-0.691826,-2.465879}, + {-0.182029,-0.371495}, + {0.061634,0.106658}, + {0.465593,-0.215001}, + {0.799056,-0.576378}, + {0.246446,0.624574}, + {-0.629259,-0.126268}, + {-0.332421,-0.594629}, + {0.811796,0.672092}, + {-0.362575,-0.952485}, + {-0.013237,-0.559132}, + {0.462364,-0.104255}, + {-1.326460,-0.448336}, + {-0.472969,-1.030240}, + {0.263871,0.137456}, + {0.289922,0.058766}, + {0.129665,-0.095386}, + {0.004142,0.060144}, + {0.440724,0.236644}, + {-0.648048,-0.197413}, + {-0.313149,0.016730}, + {-0.002432,0.336209}, + {0.258660,1.080749}, + {-0.622678,-0.971236}, + {-0.756907,-0.630989}, + {-0.511331,1.518728}, + {0.044649,-0.192437}, + {-0.525301,1.021474}, + {-0.281214,0.054685}, + {-1.829357,-0.855561}, + {-1.000657,-0.711545}, + {0.117003,-0.447632}, + {0.776485,-0.166259}, + {0.540743,0.110749}, + {0.957454,-0.352617}, + {1.317026,1.546090}, + {0.140886,0.013168}, + {-0.570171,0.392356}, + {-0.129722,0.788992}, + {-0.725847,0.653395}, + {0.679142,0.364229}, + {0.007173,-0.853037}, + {0.914126,-0.596944}, + {0.066525,0.639936}, + {0.026810,0.096725}, + {-0.538577,-0.152497}, + {0.239321,1.002422}, + {0.129554,-1.193610}, + {-0.187528,0.700211}, + {-0.645819,0.080298}, + {0.283125,0.043507}, + {0.350661,0.372335}, + {-0.655806,0.541560}, + {0.259071,0.914486}, + {-0.920489,-0.623889}, + {0.682493,0.379061}, + {-0.505215,0.663097}, + {-0.426863,-0.323863}, + {0.363894,0.848174}, + {-0.959164,0.304144}, + {0.370840,0.239161}, + {-0.576532,1.683390}, + {0.072048,-0.479737}, + {0.248627,-0.740696}, + {0.267982,-1.331841}, + {-0.742341,-0.098982}, + {-1.397583,0.691099}, + {0.062944,-0.918057}, + {-0.341076,-0.572305}, + {-0.625912,0.261916}, + {0.000942,0.115087}, + {-0.175561,-0.065593}, + {0.613856,-0.651875}, + {-0.374162,-1.289950}, + {-0.165900,-0.183065}, + {0.934889,-0.088622}, + {-0.658801,-0.699260}, + {-0.381254,-0.924817}, + {-0.606669,0.746831}, + {-0.801585,-0.060323}, + {0.750367,-1.191764}, + {0.422306,0.025905}, + {-0.348244,-0.193827}, + {0.533889,0.323919}, + {-0.475731,-0.614214}, + {1.358458,1.027040}, + {0.041062,0.716650}, + {1.086781,0.856076}, + {-0.318239,-0.090265}, + {-0.583590,-0.229458}, + {0.280177,-0.106195}, + {-0.066028,1.050147}, + {0.446572,0.653688}, + {1.619855,1.546549}, + {-0.200833,-0.507327}, + {1.815705,1.725080}, + {0.491063,-0.912080}, + {-0.302422,-0.518018}, + {-1.497067,-0.317440}, + {0.268533,-2.004116}, + {-0.197770,-0.600212}, + {0.599980,0.496906}, + {-0.801705,-0.434370}, + {-0.209023,-0.416797}, + {0.089678,0.179194}, + {0.720592,-0.140217}, + {0.937690,0.785413}, + {0.390751,0.123322}, + {0.407110,-0.263791}, + {-0.635582,0.585058}, + {1.028085,0.038369}, + {0.650746,-0.320141}, + {0.273652,-0.045191}, + {-0.773139,-0.851372}, + {0.357316,0.497209}, + {0.140061,0.278817}, + {-0.416838,-1.327050}, + {1.445687,-0.014796}, + {0.457813,0.799090}, + {-0.556724,0.854916}, + {-0.641068,-0.733796}, + {-0.186028,0.209995}, + {0.018928,-0.915909}, + {-0.352721,0.748722}, + {-0.917271,0.414704}, + {-1.388564,0.625074}, + {-0.601451,1.435210}, + {-0.090926,-0.755952}, + {-0.293108,-1.116392}, + {0.041463,-0.942099}, + {0.666369,-0.398063}, + {0.076754,-0.528375}, + {0.698873,-1.134724}, + {-0.392975,-1.312348}, + {-0.526917,0.774984}, + {-0.133714,-0.398997}, + {-0.990661,-0.808244}, + {0.208158,0.174976}, + {-0.042402,0.479397}, + {0.972845,-1.260660}, + {-0.360790,2.380324}, + {-1.161445,-0.617964}, + {-1.369325,0.963665}, + {0.712060,0.409267}, + {0.061189,1.091821}, + {0.108450,0.248626}, + {-0.532186,0.684632}, + {0.049827,0.344103}, + {-0.730446,-0.644051}, + {0.644672,0.108521}, + {-0.311770,0.388340}, + {0.133496,0.663978}, + {-1.068918,-0.856697}, + {-0.186471,-2.407906}, + {0.497449,0.217132}, + {0.553690,0.561973}, + {-0.222306,0.573912}, + {0.294889,-0.153714}, + {-0.467937,-0.114124}, + {0.505513,0.947824}, + {0.835613,1.387442}, + {0.099424,-0.647555}, + {-1.266308,0.746230}, + {-0.314232,-0.506824}, + {-0.017508,1.148471}, + {-0.005104,0.544153}, + {1.347437,0.169568}, + {0.736192,-2.120244}, + {0.478583,-0.538318}, + {-0.845261,-0.241234}, + {0.711244,0.248858}, + {-0.960539,0.885631}, + {0.519557,0.157119}, + {0.400078,-0.558660}, + {-0.355913,-0.726436}, + {0.620301,0.283481}, + {0.437469,0.894420}, + {-0.246065,-0.441159}, + {-0.207652,0.260112}, + {0.235413,1.202266}, + {-0.147333,0.651418}, + {-0.885893,-0.987513}, + {-0.126637,-0.161050}, + {0.198054,-0.239859}, + {0.753221,-0.122113}, + {0.852570,0.312679}, + {-1.421536,0.339068}, + {-0.608847,0.082841}, + {0.806647,-0.618066}, + {-0.055481,0.361346}, + {0.524385,1.872652}, + {-0.288788,-0.146810}, + {-0.967147,-0.853194}, + {1.966405,-0.833411}, + {0.789003,-0.347270}, + {0.015620,-0.631887}, + {-0.150879,0.915769}, + {-1.491238,0.217030}, + {0.326333,1.498518}, + {0.141223,-0.389036}, + {-0.513646,0.793641}, + {0.900859,0.209672}, + {0.036641,-0.621067}, + {-0.472702,0.503169}, + {-0.229471,0.415297}, + {-0.063377,-0.510807}, + {1.772735,-0.165259}, + {0.367308,0.204078}, + {-0.811216,-0.742540}, + {-0.346736,-1.336241}, + {-0.390538,-0.215693}, + {0.273645,0.017357}, + {-0.411219,-0.583215}, + {0.179285,0.386901}, + {-0.714087,-0.705568}, + {0.354034,-0.029101}, + {-0.124648,-1.203258}, + {1.036534,-0.216642}, + {-0.079461,-0.167129}, + {-0.519538,0.969040}, + {-0.926647,-0.543191}, + {-0.311806,0.129944}, + {0.338452,0.046144}, + {0.443791,1.037348}, + {0.366235,0.139119}, + {-0.436045,-0.889787}, + {-0.487186,-0.329841}, + {0.501924,-0.296196}, + {-0.155070,0.928638}, + {-2.271375,-1.096587}, + {-0.875416,0.031515}, + {0.034895,1.136367}, + {1.259196,0.151467}, + {-0.252917,0.546385}, + {0.146755,0.215855}, + {-1.279319,1.584790}, + {-0.218261,-0.211344}, + {0.838865,-0.281694}, + {0.072992,0.018618}, + {-1.486640,-1.384387}, + {0.673440,0.783368}, + {0.039087,0.485902}, + {0.548339,-0.131470}, + {-0.662826,2.232434}, + {-0.724622,-0.767747}, + {-0.737761,-0.048276}, + {0.858736,0.000247}, + {-0.219835,-1.241124}, + {0.396621,-0.086901}, + {-1.437003,0.502828}, + {-1.537267,0.734791}, + {0.247638,-1.034931}, + {-0.879638,0.130748}, + {0.532153,0.697673}, + {0.869286,1.340851}, + {0.477714,-0.332712}, + {-0.081229,0.614635}, + {-0.409415,-0.046581}, + {0.677428,-1.891076}, + {-0.988289,0.508962}, + {0.887530,-0.096640}, + {-1.348466,0.384365}, + {-1.031462,-0.619078}, + {-0.457756,1.980067}, + {-1.307319,-0.821311}, + {-0.428687,-1.927863}, + {0.126831,0.314297}, + {0.552891,0.191885}, + {1.303032,-1.178928}, + {-0.456697,0.537127}, + {-0.138564,0.139533}, + {-0.864216,-0.683295}, + {0.036298,-1.122012}, + {0.480571,-0.713238}, + {0.192623,-0.245657}, + {1.311303,-0.200987}, + {0.399964,-0.611107}, + {0.442759,1.073488}, + {-0.696011,-1.128391}, + {0.170959,-0.286343}, + {1.066110,-0.985228}, + {-0.541647,0.438916}, + {-0.441049,1.398625}, + {0.351268,-0.444252}, + {-0.100225,-0.353511}, + {-0.544437,0.471382}, + {0.719671,0.361168}, + {0.651644,0.499506}, + {0.854268,-0.138822}, + {-0.292998,-1.397932}, + {0.351302,0.565472}, + {-0.249761,-0.289783}, + {0.579986,1.135063}, + {0.380274,0.431460}, + {0.142501,-0.768253}, + {1.174364,-1.250559}, + {0.124183,-0.664356}, + {-1.775768,-0.426318}, + {-0.410384,1.397669}, + {-0.001185,0.082445}, + {0.683819,0.016434}, + {-0.474231,-1.274486}, + {-0.227899,-0.715442}, + {0.190972,-1.037010}, + {0.515506,1.060213}, + {0.574070,-0.057852}, + {0.794263,0.456543}, + {0.941117,0.348461}, + {0.714095,0.442504}, + {-1.016134,-0.621262}, + {1.501944,-0.164696}, + {0.859384,0.325223}, + {0.605958,-0.405522}, + {0.907773,-0.133478}, + {-0.652518,0.324279}, + {-0.223686,1.532219}, + {0.361665,0.114357}, + {0.118379,-1.485257}, + {0.306623,-1.663751}, + {-0.611527,0.305831}, + {-0.371509,0.148804}, + {-0.317648,0.168418}, + {-0.579078,-0.164959}, + {0.064958,1.214070}, + {-1.513764,-0.019390}, + {0.016424,2.001058}, + {-0.457485,-0.024951}, + {-0.847341,0.548593}, + {-0.839426,0.760265}, + {-0.698344,1.016456}, + {-0.246799,0.331351}, + {0.869786,-0.376963}, + {-0.318179,0.256495}, + {0.392127,-1.203653}, + {-0.120425,-0.077075}, + {1.005891,-0.597390}, + {0.055568,-0.619495}, + {0.760399,0.047681}, + {0.293058,0.480236}, + {0.295600,1.063913}, + {0.595203,0.121404}, + {0.681366,-0.184135}, + {1.298989,-0.786985}, + {-0.354303,0.275603}, + {0.255593,-0.140121}, + {1.054477,0.948719}, + {-0.798213,0.913454}, + {-0.582777,0.673212}, + {-1.973554,1.089905}, + {0.606828,-0.566130}, + {-0.539355,-1.199468}, + {0.086100,0.764955}, + {0.792542,-1.548656}, + {-0.533920,0.802166}, + {0.132591,-0.662338}, + {-0.061156,0.482952}, + {-0.104437,-0.056214}, + {-2.042381,0.317327}, + {-0.706828,0.899494}, + {-0.098682,0.865073}, + {0.231769,-0.480548}, + {-0.723515,-0.797806}, + {-0.333745,-0.255096}, + {1.425486,0.616569}, + {-0.223026,-0.286492}, + {0.945380,-0.819845}, + {-0.836305,0.433398}, + {0.888634,-0.227558}, + {-0.302648,-0.403994}, + {-0.266759,0.341454}, + {-0.911044,0.207652}, + {0.257598,0.267578}, + {-0.376137,-0.484206}, + {-0.106228,1.155262}, + {-0.547100,-1.021943}, + {-0.252786,0.099260}, + {0.089525,-0.008952}, + {-0.445924,0.184429}, + {0.141610,-0.548673}, + {-0.639422,-1.083761}, + {0.498910,0.621386}, + {0.093824,-0.107770}, + {-0.245646,0.217584}, + {-0.612243,-0.523719}, + {0.457347,0.364012}, + {-0.411336,-0.629464}, + {-0.092268,0.204563}, + {0.920493,-0.578667}, + {-0.869454,-0.238633}, + {-0.751389,0.777007}, + {0.580578,0.705056}, + {-1.233334,-1.695404}, + {-0.121305,0.368160}, + {0.782543,0.610795}, + {0.553925,1.300069}, + {1.374260,0.609157}, + {-1.357033,0.843414}, + {0.098626,-0.521365}, + {-0.032515,0.264753}, + {0.062218,0.085845}, + {0.138012,-1.084788}, + {-0.187827,1.380862}, + {0.263689,1.028871}, + {-1.215770,-0.552066}, + {-0.971891,-0.672402}, + {-0.256976,0.648996}, + {0.007809,-0.724976}, + {-1.053466,-0.103232}, + {0.957392,-1.526623}, + {0.387851,1.252142}, + {0.298416,-0.686813}, + {-0.249408,-0.417895}, + {-0.524619,-0.646987}, + {-0.101608,0.062621}, + {0.111389,-0.960781}, + {1.101285,0.205008}, + {-0.120747,-0.663793}, + {-0.602035,0.176470}, + {1.221108,0.961762}, + {0.159797,-0.161413}, + {-0.233941,0.806754}, + {1.256036,0.863057}, + {0.259618,0.549863}, + {0.320844,0.899846}, + {1.030547,-0.232090}, + {-0.517929,-0.918284}, + {0.680314,0.060717}, + {-0.505026,-1.527791}, + {0.162336,0.314724}, + {0.234991,-0.216314}, + {1.375132,0.094076}, + {-0.125705,-0.044844}, + {0.657598,0.128665}, + {0.281292,0.370853}, + {0.027894,-0.981212}, + {-0.732655,0.132501}, + {-0.338577,0.250010}, + {-1.883558,0.143130}, + {-1.095169,-0.539749}, + {0.166138,0.224390}, + {-1.094189,-0.104317}, + {-0.997375,-0.598321}, + {-0.535645,-0.686231}, + {1.289569,-0.268987}, + {0.998965,0.994487}, + {-0.349591,0.714244}, + {-0.457773,-1.093644}, + {-1.171475,1.478846}, + {0.523449,0.576947}, + {-0.610201,0.802389}, + {1.367942,-0.063770}, + {-1.189872,0.914725}, + {0.408213,0.132025}, + {-0.856124,-1.135856}, + {-0.347681,-0.706150}, + {0.226903,0.619634}, + {0.548890,0.651093}, + {-1.798606,-0.216122}, + {-0.220157,-0.282742}, + {0.108822,-0.485596}, + {-0.238309,-0.347750}, + {-0.476180,0.392785}, + {0.428713,-0.175999}, + {0.416074,-0.089752}, + {1.268016,-1.407373}, + {-0.322409,0.315716}, + {-0.086932,-0.954776}, + {-1.178527,1.119818}, + {0.873189,-0.405550}, + {-0.286794,-0.449645}, + {0.741120,-0.039714}, + {-0.401502,0.784565}, + {1.378832,0.131114}, + {-0.510286,-0.774428}, + {-0.241374,0.226729}, + {-0.413898,-0.710203}, + {-0.617347,-0.040064}, + {1.452338,-1.110283}, + {0.018838,-0.592385}, + {0.339572,-0.084802}, + {0.262142,1.120113}, + {0.382072,0.167998}, + {-0.273583,1.253093}, + {-0.509580,-0.586627}, + {-1.016938,0.501199}, + {0.530467,0.149760}, + {0.204492,0.038013}, + {0.074458,-0.292217}, + {0.257628,0.451130}, + {0.557490,-0.411723}, + {-0.181796,-0.641207}, + {-0.392248,-0.582808}, + {0.705525,-0.502120}, + {-1.021501,-0.207399}, + {-0.060821,0.298599}, + {-0.261969,-0.318225}, + {-0.350443,1.831054}, + {0.029182,0.719110}, + {-1.269295,-1.154099}, + {-1.488271,-1.469956}, + {0.176535,1.097410}, + {-1.195927,0.342358}, + {0.582184,0.396307}, + {-0.764560,-0.634440}, + {0.106084,-0.378503}, + {0.760363,0.649530}, + {-0.020356,-0.601389}, + {-0.423594,-0.651490}, + {0.600149,-0.395775}, + {0.421193,0.051504}, + {-1.364237,0.717686}, + {0.876530,-0.288772}, + {-0.098973,0.266692}, + {0.051789,0.462817}, + {0.361495,-0.346842}, + {-0.553109,0.940488}, + {-0.653951,0.277526}, + {0.163045,-0.244626}, + {-0.126776,-0.299731}, + {0.860475,0.302389}, + {0.606731,-0.425179}, + {0.305458,0.780583}, + {1.028347,-1.635167}, + {0.197608,1.209333}, + {0.150105,-0.773508}, + {-0.560487,-1.383294}, + {-0.657034,0.108016}, + {-0.629934,-0.335711}, + {-0.404889,0.112022}, + {0.350071,-0.125444}, + {-0.397430,-0.533393}, + {1.157015,-0.673598}, + {0.836126,-0.091404}, + {0.420003,0.030830}, + {0.304754,0.940964}, + {0.857632,-0.131707}, + {1.482902,-0.526416}, + {-0.506755,0.581483}, + {0.798173,-0.622550}, + {0.199645,0.054187}, + {-1.166797,-0.592686}, + {0.703425,-0.099088}, + {0.100574,-0.652021}, + {-0.452634,0.557510}, + {-0.395655,0.631259}, + {0.005128,-0.031089}, + {-0.476422,0.288975}, + {-0.696440,1.007601}, + {0.651351,0.229279}, + {-0.546184,0.967790}, + {-1.783408,0.458041}, + {-0.158492,0.721176}, + {-0.829438,-0.495769}, + {0.853862,-0.436152}, + {-0.510630,0.354021}, + {0.410283,-0.562993}, + {1.333456,0.619765}, + {0.680707,0.364967}, + {0.768117,0.202325}, + {-0.624035,0.194222}, + {-0.242982,-0.068768}, + {-0.060626,0.243812}, + {0.918857,0.010191}, + {-0.158575,-0.660882}, + {0.268070,-1.046163}, + {-0.550812,-0.916602}, + {0.222526,-1.326576}, + {-0.142632,1.771943}, + {-0.500111,0.366333}, + {0.045897,-0.931826}, + {0.061037,-0.398634}, + {-1.206603,1.049450}, + {-0.346603,0.009748}, + {-0.194651,-0.420179}, + {-0.172385,1.200766}, + {-0.276451,-1.221394}, + {-0.971227,0.736046}, + {0.849993,-0.122658}, + {0.565771,1.029030}, + {0.572575,-0.539519}, + {-0.278977,0.982730}, + {-0.406039,-0.534002}, + {-0.022104,-0.217645}, + {0.393789,-0.655764}, + {-0.821859,0.222043}, + {0.709829,-0.538537}, + {0.309091,1.335973}, + {0.555716,0.225149}, + {1.155433,-0.264109}, + {-0.224191,-0.004592}, + {-0.076549,0.928899}, + {0.141337,-0.500391}, + {-0.286491,0.403995}, + {0.340087,1.192301}, + {-0.264734,0.101794}, + {0.873252,-1.455120}, + {-0.574337,0.221889}, + {-1.110424,0.703227}, + {0.420803,0.333899}, + {0.277080,-0.644572}, + {-0.747538,0.159962}, + {0.552815,1.068068}, + {1.368512,0.010990}, + {-0.206001,-0.237472}, + {0.288503,-0.659436}, + {-0.954056,0.215502}, + {1.548500,-0.238286}, + {-0.889812,0.522877}, + {-0.012439,-0.723786}, + {-0.525273,-0.379121}, + {-0.527515,-1.502476}, + {0.133542,0.108887}, + {0.492447,-0.045511}, + {0.574807,-1.260810}, + {0.878001,0.683264}, + {-0.376682,-0.588180}, + {0.164608,0.358034}, + {0.459547,0.386397}, + {-1.374767,0.442204}, + {-0.699591,-0.427016}, + {-0.228447,-1.161662}, + {-0.322419,1.606881}, + {0.576055,1.101472}, + {0.563123,0.146375}, + {0.244216,-0.241690}, + {0.438112,-0.485327}, + {-1.276929,0.367200}, + {-0.181353,-1.346356}, + {-0.146869,-0.957341}, + {-2.198517,0.705247}, + {-0.289717,-0.177364}, + {0.280325,-1.142208}, + {0.002380,0.345383}, + {-0.418233,-1.133385}, + {0.183564,0.534520}, + {-0.372636,-0.051311}, + {-0.020811,-0.085884}, + {1.163894,-0.173220}, + {0.616165,0.230038}, + {-1.320575,-0.652613}, + {0.123778,-0.062176}, + {-0.722536,-0.008719}, + {1.340873,0.027244}, + {-0.294827,-0.522338}, + {-0.602427,0.183616}, + {-0.785766,-0.953680}, + {-0.286187,0.348720}, + {-0.280901,0.554931}, + {0.380116,0.763759}, + {0.780404,0.192032}, + {1.328343,1.436113}, + {-0.362877,0.085413}, + {1.403308,-0.413647}, + {0.773876,-0.086423}, + {-1.316530,-0.726207}, + {-0.379298,-0.390658}, + {-0.150301,0.006436}, + {0.370812,-0.684290}, + {-0.905463,-0.548246}, + {-0.072613,0.421906}, + {-0.211486,0.321136}, + {-0.247273,0.076461}, + {-1.160356,0.131643}, + {0.379819,-0.441965}, + {1.064987,0.033534}, + {-0.575692,-0.336300}, + {-0.131156,0.299834}, + {-0.907355,-0.562159}, + {-0.142894,-0.067061}, + {-0.305338,0.059685}, + {-0.890171,-0.918641}, + {-0.333344,0.104434}, + {0.450288,0.236190}, + {0.180918,-0.376193}, + {-0.816878,0.145535}, + {-0.789538,-1.143910}, + {-0.022631,0.224265}, + {-0.080696,0.591185}, + {-0.511739,0.521540}, + {1.522040,-1.191704}, + {-0.120255,0.225194}, + {-0.124457,0.484338}, + {-0.332395,0.668069}, + {1.358569,0.343165}, + {-0.907961,0.303291}, + {-0.726165,0.958101}, + {-0.631030,-0.969657}, + {0.187222,-0.841928}, + {-1.702365,-0.218011}, + {0.042628,-1.318380}, + {0.356098,0.394505}, + {-0.321503,-0.176962}, + {-1.508798,0.471924}, + {0.284711,-0.884522}, + {-0.279981,1.075346}, + {0.261212,0.062374}, + {0.730161,-0.028577}, + {1.413322,-0.696512}, + {-0.537404,-0.498826}, + {0.470840,-0.050515}, + {1.075743,1.816796}, + {0.238969,0.728689}, + {0.021923,-0.203939}, + {0.068466,0.691633}, + {-0.463844,0.382524}, + {0.536354,1.367231}, + {-0.269568,0.317660}, + {-0.509721,-0.056128}, + {-0.996035,0.482343}, + {-0.318504,0.613621}, + {0.724407,-0.391671}, + {-0.976483,0.002770}, + {0.168754,-0.138651}, + {-0.850412,0.004662}, + {-0.778271,0.301141}, + {-0.556300,-0.014048}, + {-0.144566,0.581755}, + {1.567425,-1.299013}, + {-0.633055,-1.176258}, + {-1.218887,1.088643}, + {-0.057700,0.210952}, + {-0.252005,-0.056308}, + {-0.164041,1.200916}, + {0.881096,-0.523409}, + {1.271002,0.348902}, + {0.300212,0.080781}, + {-1.259126,-0.385348}, + {0.380261,-0.005380}, + {0.301990,-0.096667}, + {-0.644417,0.661865}, + {0.031295,-0.414362}, + {0.513909,-0.849192}, + {1.037724,0.167813}, + {0.045507,0.302800}, + {-1.007752,-0.631584}, + {-1.626240,0.520166}, + {0.161739,-0.005463}, + {-1.011094,-0.296322}, + {0.530863,-0.353709}, + {0.919905,-1.215387}, + {-0.399307,0.348172}, + {0.124302,-0.831545}, + {-1.101106,0.209511}, + {0.423896,0.392179}, + {-0.194011,-0.630735}, + {-0.500591,0.215709}, + {0.031183,0.910928}, + {0.038389,-0.311259}, + {-0.355431,-1.334079}, + {0.530912,-0.294080}, + {-0.716034,-1.092596}, + {0.581166,0.307768}, + {0.499546,-1.691484}, + {-0.109812,-0.243400}, + {0.044216,0.158567}, + {-1.588308,-0.037482}, + {0.222448,-1.635453}, + {-0.184406,-0.084681}, + {1.961808,0.936940}, + {0.545590,0.745191}, + {0.655076,0.761226}, + {0.928499,-0.528748}, + {0.311753,0.419596}, + {1.127516,0.514393}, + {-1.142233,-1.018180}, + {-0.751043,0.873569}, + {-0.003552,-0.256010}, + {-0.055468,-0.040296}, + {-0.461006,0.063426}, + {0.114477,1.054606}, + {0.646237,-0.738074}, + {0.047691,0.563215}, + {0.182860,-0.736483}, + {1.006184,-0.743762}, + {0.208249,1.194100}, + {-0.936638,-0.678655}, + {1.379611,-1.003314}, + {-0.214213,0.683884}, + {-0.412822,0.050631}, + {0.206172,-0.486222}, + {-0.262572,0.662397}, + {0.484827,0.903902}, + {1.340717,0.828282}, + {0.376723,-0.394673}, + {0.947224,0.377674}, + {-1.479304,-0.488522}, + {-0.346264,-1.112863}, + {0.079983,-0.757019}, + {-0.589024,-0.865351}, + {0.154858,0.742523}, + {-0.185417,-1.110911}, + {0.054021,0.213561}, + {0.049129,0.159524}, + {0.250903,1.427318}, + {-1.002452,-1.002884}, + {-0.706890,0.148861}, + {-1.154288,-0.107721}, + {-0.817221,0.436977}, + {-0.157997,-0.870204}, + {1.385451,-1.059729}, + {-0.802317,0.030557}, + {0.536617,-0.377124}, + {-0.267416,1.257724}, + {0.271600,-0.064099}, + {-0.293484,0.280734}, + {-0.139114,-0.129475}, + {0.480314,-0.765081}, + {0.342935,-0.322883}, + {0.036162,-0.632071}, + {0.182499,0.303409}, + {0.388280,-0.850579}, + {-0.118716,0.915001}, + {-0.755100,-0.436041}, + {-0.860414,0.326513}, + {-0.078845,0.146499}, + {-0.454604,0.719797}, + {-2.241604,0.049962}, + {-1.192389,1.327719}, + {0.375567,1.037999}, + {0.689446,-0.703830}, + {0.302199,-0.655993}, + {-0.087239,0.488734}, + {0.211377,0.892874}, + {-1.046074,-0.479046}, + {-1.018003,0.367627}, + {-0.152274,1.650427}, + {-0.779947,1.239985}, + {0.952925,0.318968}, + {0.643531,0.231822}, + {-0.469200,-0.137811}, + {0.818526,-0.988439}, + {0.143608,-0.391619}, + {-0.078638,-0.494635}, + {-0.706101,-0.278646}, + {-0.828922,0.806409}, + {-0.198227,0.585023}, + {-0.181743,-0.538596}, + {0.696894,0.324933}, + {-1.035302,-0.067149}, + {1.116654,-0.636352}, + {-1.447442,-0.383901}, + {-0.842335,0.808594}, + {-0.059386,-1.333912}, + {0.039588,-0.568428}, + {1.841497,0.186063}, + {-0.222182,0.546696}, + {-0.492511,0.065429}, + {-0.049596,0.521704}, + {0.950219,0.001244}, + {0.239031,0.821970}, + {-0.148545,-0.111477}, + {-0.799855,0.719260}, + {-0.198976,-0.598787}, + {1.057029,-0.080555}, + {-0.042454,0.198415}, + {-0.396442,0.128443}, + {0.356674,0.917567}, + {0.629624,-0.252468}, + {0.494230,0.346046}, + {-0.203429,0.238311}, + {-1.254628,-0.489511}, + {-0.885587,1.273245}, + {0.130810,-0.161627}, + {0.060963,-0.761843}, + {-0.216955,-1.087269}, + {0.365978,0.094954}, + {0.912409,0.200455}, + {-1.054822,-0.278074}, + {0.608031,0.908329}, + {0.311314,-0.062994}, + {-1.084923,-0.437044}, + {0.483123,0.692619}, + {0.487429,0.109963}, + {-0.553350,0.131579}, + {-0.992250,0.280366}, + {-0.884746,0.002868}, + {-0.029371,1.412446}, + {0.678184,0.364567}, + {-0.139078,-0.387712}, + {-0.347524,1.175467}, + {-1.183990,-0.650822}, + {1.246393,-1.035660}, + {-0.296366,0.060319}, + {-1.583348,0.761657}, + {-0.150878,0.717756}, + {-0.539900,0.032499}, + {0.538042,-0.765398}, + {0.608876,-0.599854}, + {0.351878,-0.018209}, + {-0.963879,0.867025}, + {-0.746801,0.240322}, + {-0.264184,-0.061670}, + {0.684332,0.011746}, + {1.440898,-0.176096}, + {0.229892,-1.161869}, + {0.056788,-0.657892}, + {-0.700251,-0.949597}, + {-0.678207,-1.371336}, + {0.610739,0.719252}, + {-1.817905,-0.601268}, + {0.031990,0.180419}, + {0.060516,0.204577}, + {-0.679842,1.491688}, + {0.905999,-1.561989}, + {-0.013397,-0.658106}, + {0.646469,-0.124247}, + {0.231365,-0.066460}, + {0.072911,1.358672}, + {0.523387,0.767592}, + {-0.255464,-0.837687}, + {-0.347596,0.065474}, + {-0.118698,0.282555}, + {0.227003,-0.532110}, + {-0.105316,1.261845}, + {-1.287464,0.009365}, + {0.164639,0.004452}, + {0.487845,-0.036515}, + {0.237642,-0.113136}, + {0.280221,-0.370952}, + {-0.693740,-0.547488}, + {-0.026475,-1.513071}, + {0.562730,-0.294865}, + {-0.407170,-0.821101}, + {-0.007381,-0.255046}, + {-0.882883,0.044493}, + {0.458046,-0.236675}, + {-0.280611,0.402649}, + {0.655407,0.081470}, + {-0.583163,0.689875}, + {-0.126923,-0.141713}, + {0.568498,-0.192502}, + {0.207786,-0.707445}, + {0.181237,-0.315024}, + {0.452277,-0.237819}, + {0.804749,0.161488}, + {-0.668502,-0.165804}, + {-0.995984,-0.756193}, + {-1.477199,0.138328}, + {0.224779,0.153369}, + {0.714115,-0.105414}, + {0.755752,-1.157271}, + {-0.624159,0.288454}, + {0.410050,-0.940682}, + {-0.735226,0.333144}, + {-0.319454,-0.151368}, + {-0.534119,0.581015}, + {-1.021982,0.025073}, + {0.364749,-0.324409}, + {-0.809700,-0.013999}, + {-0.631631,-1.111146}, + {0.041314,-0.401087}, + {0.694871,0.735264}, + {-0.367532,-1.564337}, + {-0.580821,-0.330655}, + {0.183537,0.598051}, + {-0.245114,-0.399095}, + {0.431852,-0.491440}, + {-1.538842,0.741551}, + {0.355387,-0.411799}, + {0.047607,-1.484812}, + {-0.406563,-0.099734}, + {-0.476070,-0.974793}, + {0.424268,-0.049799}, + {-0.463479,0.342533}, + {-0.021704,-0.441977}, + {0.274849,0.092550}, + {0.062134,0.876438}, + {0.724167,-0.072370}, + {-0.878909,0.087750}, + {0.496256,-0.162627}, + {0.279006,0.247471}, + {1.112257,-0.008240}, + {-0.542958,1.121075}, + {0.883658,-1.033522}, + {0.665774,1.218471}, + {-0.485500,0.566506}, + {0.101171,-0.467048}, + {0.428733,0.037372}, + {0.070215,0.356568}, + {-0.115995,0.469828}, + {-0.288060,0.751706}, + {-0.893341,-0.479910}, + {0.129788,-0.712225}, + {0.607605,-0.659464}, + {-0.928870,0.184671}, + {1.532564,0.622921}, + {-0.259213,0.773723}, + {-0.613180,1.165169}, + {-0.246855,0.477170}, + {-0.763396,0.185209}, + {0.176437,-0.026025}, + {0.238849,0.442184}, + {-0.352254,-0.531682}, + {0.807799,-0.627800}, + {0.047221,0.691612}, + {-1.063426,-0.086542}, + {0.127711,-0.873769}, + {-0.266249,-0.401636}, + {-0.792988,0.561747}, + {1.359199,0.175116}, + {0.055027,0.221748}, + {-0.811887,0.783136}, + {-0.242847,1.170197}, + {0.603982,-0.386618}, + {-0.066028,-0.887924}, + {0.195072,-0.461362}, + {-0.124588,-1.349309}, + {-0.923671,0.021243}, + {0.672608,0.390882}, + {-0.157503,0.476204}, + {0.395069,1.581050}, + {0.546212,0.493126}, + {-0.275470,-0.171620}, + {0.279435,0.010272}, + {0.398665,-0.060216}, + {-0.540549,-0.545716}, + {-0.203679,0.332363}, + {-0.496097,-0.577372}, + {0.580802,0.437667}, + {1.112826,-0.947356}, + {-0.740122,-1.666636}, + {0.794783,-1.131704}, + {-0.942124,-0.854277}, + {-0.673412,0.214855}, + {-0.147656,0.291988}, + {-0.104863,0.388239}, + {0.076779,0.606955}, + {0.200388,0.524721}, + {-0.320980,0.897459}, + {0.075462,0.168864}, + {1.058383,-0.217411}, + {-0.257135,-0.135694}, + {-0.967934,-0.164808}, + {-0.923465,1.535662}, + {-0.342228,0.493143}, + {0.950437,0.330328}, + {1.159788,0.029407}, + {0.519360,-0.289634}, + {-0.387919,0.756822}, + {0.110258,-0.324655}, + {-0.834385,0.057787}, + {0.385197,0.770062}, + {-0.865068,-0.695108}, + {-0.163616,0.499126}, + {-0.260925,0.174936}, + {0.269825,-0.563868}, + {0.085977,0.711242}, + {-0.154136,-0.310298}, + {0.667896,0.312458}, + {0.455000,0.511352}, + {-0.119230,0.565919}, + {0.448509,-0.266193}, + {-0.076594,0.711581}, + {0.487758,-0.084284}, + {-0.134384,0.512608}, + {-0.073188,-1.588799}, + {0.263813,-1.537716}, + {-0.318161,0.668523}, + {0.716481,1.034983}, + {0.100407,0.603227}, + {1.278314,0.725134}, + {-1.102419,-0.668425}, + {-1.533689,-0.122580}, + {-0.015321,-0.363228}, + {-0.354993,-0.049059}, + {0.234433,-0.176360}, + {1.531154,1.445120}, + {0.196174,-0.704589}, + {0.939701,0.188199}, + {-0.883210,-0.154533}, + {0.533736,1.018771}, + {1.025444,-0.745913}, + {-0.224936,0.074982}, + {-0.445386,-0.861890}, + {0.037407,-0.227981}, + {-0.186347,-1.290577}, + {-0.309371,0.403374}, + {-0.532396,0.613887}, + {2.165530,1.358975}, + {2.007988,-0.415721}, + {1.170118,1.184736}, + {0.147671,0.285319}, + {0.189048,-1.372490}, + {0.572345,-0.160934}, + {-0.968055,0.078689}, + {-0.838057,0.005487}, + {0.002971,0.754035}, + {0.963936,-1.052451}, + {1.384693,-0.238220}, + {0.730919,-0.253514}, + {-0.055962,-1.239576}, + {-0.971576,0.081729}, + {1.592811,0.554873}, + {0.891373,-1.465274}, + {-0.436801,0.681487}, + {0.781594,-0.567997}, + {-0.734441,-0.356614}, + {-0.417233,0.307766}, + {-0.342015,-0.643618}, + {-0.292766,-0.377798}, + {0.524786,0.511648}, + {-0.581227,1.232650}, + {-0.014453,0.621820}, + {0.249726,0.375897}, + {0.606730,-0.436103}, + {0.470665,1.092492}, + {0.049061,0.242758}, + {0.356517,0.602295}, + {-0.136680,-0.171375}, + {0.138788,0.924838}, + {1.014005,-0.233081}, + {-1.201889,0.445990}, + {1.026871,-0.586108}, + {0.489435,1.106440}, + {-0.647070,0.966539}, + {0.412053,0.403891}, + {1.508765,0.651857}, + {0.967302,0.360629}, + {0.643439,0.542859}, + {0.009643,0.167438}, + {-0.043095,-0.479629}, + {-0.427617,-0.891696}, + {0.262743,0.496652}, + {0.399848,0.055136}, + {0.389352,-0.140837}, + {-0.874961,-0.286650}, + {-1.148781,0.964809}, + {-0.075158,-1.058411}, + {-1.356972,0.477178}, + {-0.583056,0.785091}, + {0.180521,0.643195}, + {-0.341790,0.582116}, + {0.617637,-0.386019}, + {0.287523,-0.641069}, + {0.445544,-1.046088}, + {0.056885,0.909019}, + {0.237974,-0.577966}, + {0.265120,0.170968}, + {0.831315,0.261175}, + {-0.053478,0.750541}, + {-0.910915,0.305149}, + {0.740491,0.199702}, + {-0.644430,0.804073}, + {-0.032674,0.043810}, + {0.506929,0.722204}, + {-1.458642,-0.012285}, + {1.125423,-0.870600}, + {-0.413975,-1.013859}, + {0.263494,-0.250882}, + {-0.509992,0.642512}, + {0.309917,0.102069}, + {0.432682,-0.594946}, + {0.389074,-0.347972}, + {0.363322,0.447382}, + {0.409466,0.684147}, + {-0.383569,1.103528}, + {0.400605,1.027698}, + {-0.244181,-1.174979}, + {-0.138094,-0.035489}, + {-0.732504,-1.119719}, + {0.401623,-0.226204}, + {-0.009444,-0.493273}, + {-0.623539,0.052497}, + {-0.082322,0.624134}, + {-0.241276,0.692779}, + {-0.855399,-0.954111}, + {-0.102812,0.455049}, + {-0.163148,-0.813131}, + {0.632547,-0.140929}, + {0.494530,-0.185368}, + {-0.193079,-0.723176}, + {0.337338,-0.445788}, + {0.401790,0.559695}, + {0.230591,-0.192288}, + {-0.300693,-0.121974}, + {1.384646,-0.585677}, + {0.325791,-0.040454}, + {-0.012575,0.226125}, + {-1.008117,-1.345584}, + {-0.253066,-0.722583}, + {0.510556,-1.634320}, + {-0.620574,0.638105}, + {0.744498,-0.848184}, + {-0.604678,0.294828}, + {0.576435,-0.241527}, + {-0.209046,1.633283}, + {-0.037161,-0.383274}, + {-0.522555,-0.336960}, + {0.454551,0.473618}, + {-0.155145,-0.383863}, + {0.691671,0.364433}, + {0.110858,-0.308247}, + {0.291931,-0.200529}, + {-0.257731,-0.294773}, + {-0.297832,-0.078972}, + {-1.000551,-0.056650}, + {-0.728054,1.617977}, + {0.683715,-0.328680}, + {-0.000525,0.011541}, + {0.620598,-0.661930}, + {0.264711,-0.928142}, + {0.228987,-0.335306}, + {-0.244599,-0.068855}, + {-0.836542,-0.817358}, + {0.092673,0.460987}, + {-1.129502,-0.114615}, + {-0.632434,0.515582}, + {0.031820,0.686984}, + {0.770886,-0.492505}, + {-0.596480,1.289307}, + {-0.101952,-0.691478}, + {-0.104274,-0.131200}, + {-0.625558,-1.086399}, + {0.877969,-0.772245}, + {0.268059,-0.223637}, + {-0.900697,1.204608}, + {0.050722,0.907601}, + {0.673273,0.381280}, + {-2.047377,-0.460464}, + {-0.180485,0.585813}, + {0.917693,-0.593887}, + {-0.800537,0.647290}, + {-0.440595,0.183335}, + {-0.713969,-0.073229}, + {-0.774967,-0.149180}, + {0.404131,0.588253}, + {-0.461998,-0.696968}, + {0.274178,-0.357117}, + {0.206730,0.108627}, + {-1.064527,-0.450529}, + {0.868135,-0.511465}, + {1.861500,-0.019361}, + {-0.168042,0.157278}, + {-0.306666,-0.372632}, + {-0.358648,0.439013}, + {-0.508541,0.110548}, + {0.429907,0.318529}, + {0.768140,0.536835}, + {-0.468226,-0.061801}, + {-0.479689,-0.447397}, + {1.419374,-0.900772}, + {1.265393,-0.725799}, + {-1.446047,0.967326}, + {-1.003305,-0.450572}, + {-0.765069,-0.367291}, + {0.058085,0.520892}, + {0.507400,0.307971}, + {-0.096135,0.082836}, + {0.499087,-0.483651}, + {0.786245,-0.896910}, + {-0.776823,-0.917120}, + {0.046113,-0.674221}, + {0.437166,-0.946565}, + {-0.481481,0.348660}, + {-0.303571,-1.297511}, + {0.184266,-0.433271}, + {0.351287,0.490834}, + {0.136868,0.207400}, + {-0.928643,-0.705652}, + {0.411477,-0.296834}, + {-0.130098,0.423371}, + {0.256138,0.201198}, + {1.325804,-1.394897}, + {-0.987536,0.911194}, + {0.467954,0.721556}, + {-1.111917,-0.388390}, + {-0.225829,-0.194731}, + {0.686892,0.002306}, + {0.017090,-0.337756}, + {0.320620,0.701407}, + {-0.126604,-0.448189}, + {-1.038320,0.350680}, + {0.525033,-0.775856}, + {1.423413,-0.907011}, + {-0.654169,1.310124}, + {-0.256723,-1.274182}, + {-0.148799,1.158405}, + {-1.309938,-0.423753}, + {-0.822022,0.520373}, + {-0.487639,-0.029609}, + {-1.731135,1.225201}, + {0.860007,0.817290}, + {1.085528,-0.477385}, + {0.170410,0.225994}, + {0.130012,0.501964}, + {1.362920,-1.040532}, + {0.274595,-0.360680}, + {-0.180443,-1.150807}, + {-1.010892,-2.785690}, + {-0.185408,0.645141}, + {0.408186,0.598987}, + {-0.276912,-0.233762}, + {-0.554369,0.384061}, + {-0.313129,-1.273413}, + {-0.295076,-0.206805}, + {-1.135422,0.314641}, + {-0.091967,1.316718}, + {-1.148036,0.420483}, + {0.464056,0.070829}, + {0.643956,-1.132460}, + {0.007388,-0.087534}, + {-0.670980,-0.644856}, + {-0.562657,0.103308}, + {-0.910544,-0.624181}, + {-1.294871,-0.704342}, + {0.253288,-1.249465}, + {0.010697,-0.206204}, + {0.032296,-0.068846}, + {0.227298,0.289679}, + {-1.018986,0.376146}, + {0.196228,0.336658}, + {0.324491,0.481509}, + {1.401432,-1.385349}, + {0.469776,-0.021242}, + {-0.359218,0.077900}, + {0.263855,-0.553276}, + {-1.338136,1.760596}, + {0.345680,-0.356526}, + {0.967508,-0.348957}, + {-0.000197,-0.317256}, + {0.266182,0.209979}, + {0.645966,-0.065156}, + {0.095471,0.687960}, + {-0.950904,0.472007}, + {0.237504,1.029535}, + {-1.188493,0.582823}, + {0.037901,0.276498}, + {1.500981,0.033858}, + {0.470859,0.204791}, + {-0.325697,-0.511828}, + {-0.701164,-0.624759}, + {-1.022831,0.029449}, + {-0.617654,-0.209681}, + {-1.086358,-0.753587}, + {-0.620495,0.350436}, + {0.255824,0.780289}, + {0.259997,0.853987}, + {0.178984,0.708660}, + {0.206355,0.342937}, + {-0.203803,0.123989}, + {0.087570,-0.018768}, + {-0.251778,0.402282}, + {-0.067944,0.802752}, + {0.814430,-1.075422}, + {0.980073,0.924960}, + {-0.643462,0.281085}, + {-0.043385,0.222169}, + {0.150379,-0.073680}, + {-0.866595,-0.370094}, + {0.070700,-0.031495}, + {-0.718160,-0.057721}, + {-1.453375,0.891355}, + {0.289324,0.775060}, + {0.181655,0.483275}, + {-0.752997,-0.073676}, + {-0.304538,-1.541777}, + {-0.709192,0.581410}, + {0.492839,-0.517246}, + {0.183811,-0.156000}, + {0.653373,0.230724}, + {0.406458,0.005703}, + {-0.311049,0.812297}, + {-0.520574,0.204449}, + {0.054290,-0.724717}, + {0.094583,-0.073227}, + {0.038531,1.556567}, + {-0.384123,-0.654494}, + {0.561946,-0.464299}, + {-0.404523,-0.766166}, + {-0.481575,0.460856}, + {-1.907571,-0.823209}, + {2.101905,0.161585}, + {0.287454,-0.132443}, + {1.242270,0.686925}, + {-0.921165,-0.565261}, + {0.611637,0.513699}, + {0.049954,-1.129081}, + {-0.501940,0.054891}, + {1.429713,-0.551187}, + {-0.836163,-0.446508}, + {0.278495,0.087073}, + {0.218168,-0.779450}, + {-0.223319,-0.407988}, + {0.634553,-0.616996}, + {1.182395,0.959111}, + {-0.978832,0.211972}, + {0.424967,-0.249287}, + {-0.041136,-0.865872}, + {0.678616,0.138109}, + {-0.183760,0.626009}, + {0.774335,0.071065}, + {-0.711756,0.994632}, + {-1.071178,-0.459611}, + {-0.483535,0.070145}, + {-1.195615,0.843780}, + {-0.466068,-0.769168}, + {-0.277629,-1.090422}, + {0.421671,-0.180614}, + {0.412349,0.215483}, + {0.770770,-1.211197}, + {0.216869,-1.257316}, + {1.131962,1.071910}, + {0.604317,1.569760}, + {-0.432696,-0.511691}, + {1.490919,0.544307}, + {0.722433,-0.223854}, + {-0.747281,0.587934}, + {0.591043,-0.389259}, + {0.915617,0.907123}, + {-0.090304,0.260222}, + {-0.286085,0.181432}, + {-1.366335,0.134996}, + {1.006915,-0.256088}, + {-0.742269,-0.287000}, + {-0.560519,0.149843}, + {0.228870,-0.089042}, + {0.485062,1.555019}, + {-2.098179,-1.037507}, + {0.281221,0.160181}, + {1.124136,0.576409}, + {0.377565,0.179290}, + {-0.774858,-0.594426}, + {0.057609,0.773926}, + {-0.352908,0.659389}, + {-0.214422,-0.486733}, + {1.185269,-0.773319}, + {2.361595,0.580060}, + {-0.480781,0.323322}, + {-0.280537,0.592566}, + {-0.518135,1.090907}, + {0.038454,-0.673850}, + {-0.396300,0.291648}, + {0.431237,-0.742958}, + {-0.354511,-0.258468}, + {0.589504,-0.340787}, + {0.350439,0.872189}, + {0.434521,0.321774}, + {-0.033107,0.105060}, + {0.708078,-0.753049}, + {0.529888,-0.271240}, + {0.536421,-1.059462}, + {-0.225809,-0.688310}, + {1.434065,0.509015}, + {-0.173576,0.479379}, + {-1.128043,-1.200555}, + {-0.400962,0.006900}, + {-0.193926,0.797977}, + {0.890121,-0.520395}, + {0.483454,-0.759030}, + {0.120016,0.881875}, + {-0.600343,-0.651720}, + {-1.451600,-1.029965}, + {0.761142,0.319997}, + {-0.112053,-1.155185}, + {1.220439,1.751782}, + {1.160185,0.688299}, + {-0.512242,-0.051162}, + {-0.706967,-0.136270}, + {0.615304,1.293581}, + {-1.400761,0.916505}, + {1.187036,0.351908}, + {0.080335,-1.965701}, + {-1.630052,0.439980}, + {-1.391160,0.129870}, + {1.155798,0.582881}, + {-0.065111,-1.099486}, + {0.125533,-0.003002}, + {-0.164680,0.102916}, + {0.466728,0.343552}, + {0.762902,0.475304}, + {0.744999,-0.654491}, + {-1.398257,0.311517}, + {-0.237558,-0.246793}, + {0.428761,0.156024}, + {0.570756,0.535184}, + {2.016382,-0.060246}, + {-1.088301,0.681331}, + {0.830869,-0.097576}, + {0.388942,1.207765}, + {-0.606217,-0.034154}, + {-0.231597,-0.930088}, + {-1.380885,-0.946200}, + {1.243384,-0.076184}, + {-0.876585,1.046718}, + {0.966272,0.210433}, + {-0.291174,0.271509}, + {0.211819,0.974055}, + {-0.463701,-0.565772}, + {0.487341,-0.602470}, + {-1.121183,-0.165544}, + {-0.252906,0.474726}, + {-0.402199,0.851284}, + {0.080496,-0.760036}, + {0.025413,-1.091766}, + {0.547332,-0.330242}, + {-0.672557,0.494495}, + {0.954815,-0.310860}, + {0.424952,0.387591}, + {-0.206481,-1.215096}, + {-0.565978,0.308471}, + {-0.594998,0.287291}, + {0.244841,-1.011218}, + {-0.121897,-0.182509}, + {0.436936,-0.388815}, + {-0.237612,0.125997}, + {0.469551,0.559430}, + {-0.150812,0.430465}, + {-0.309672,-0.159915}, + {-0.041266,-0.484249}, + {-0.498416,0.134495}, + {-0.216836,-0.600673}, + {0.753550,0.178144}, + {-0.829567,0.580848}, + {0.151586,0.985193}, + {-0.030831,0.835093}, + {-1.336242,-0.274785}, + {0.877728,0.795873}, + {-1.272274,-0.088021}, + {0.329721,0.397562}, + {0.284857,-0.480608}, + {0.682917,0.080741}, + {-0.101889,-0.248454}, + {-0.682076,1.494906}, + {0.629653,0.954928}, + {-0.543290,1.090091}, + {1.459454,0.219865}, + {0.242040,-0.001250}, + {1.335699,-0.279217}, + {-0.929197,-0.177255}, + {-1.073987,-0.628953}, + {-0.603636,0.406831}, + {-0.127502,-0.233138}, + {-0.595331,-1.556322}, + {-0.003979,-0.372901}, + {-0.071019,0.395963}, + {0.367574,-1.213747}, + {-0.334848,-0.212891}, + {0.545672,0.431015}, + {-0.319922,-1.488089}, + {1.622107,-0.160144}, + {-0.443496,-0.342474}, + {-0.182690,0.814460}, + {0.294580,0.439232}, + {-0.456404,-0.781690}, + {-0.239482,0.065164}, + {0.522642,0.114414}, + {0.220545,0.027521}, + {0.928442,-0.357315}, + {-0.037976,0.045284}, + {0.271085,-0.280372}, + {1.126150,-0.692677}, + {0.605778,-0.288038}, + {-0.839818,0.853392}, + {-0.017924,-0.218859}, + {0.193144,0.838310}, + {0.382364,-0.079117}, + {-1.218131,-1.625995}, + {0.587757,-0.067836}, + {1.112485,-0.821042}, + {-1.079681,1.113467}, + {0.739449,0.903260}, + {-0.337197,-0.539171}, + {-0.715782,0.433698}, + {-0.681131,-1.078419}, + {-0.399622,-0.481035}, + {0.985279,0.921888}, + {-0.886267,-0.759144}, + {0.477293,-0.151442}, + {-0.382453,-0.131280}, + {-0.996212,-0.422600}, + {0.704734,0.607694}, + {0.134826,0.350086}, + {-0.256879,0.214261}, + {-0.492210,-1.268288}, + {0.269138,1.401154}, + {-0.717996,0.256866}, + {0.058280,-0.897792}, + {0.335278,-0.190030}, + {-0.247184,-0.605186}, + {0.020146,0.328500}, + {-1.189915,0.129145}, + {0.215961,1.303383}, + {0.478757,0.180930}, + {-0.299342,-0.948503}, + {-1.146943,0.060521}, + {-0.868843,-1.063643}, + {0.923269,-0.045103}, + {-0.878523,1.072741}, + {0.151682,-0.385870}, + {1.248675,0.859689}, + {0.583381,-0.622081}, + {-0.427717,-0.653473}, + {0.114755,1.122795}, + {0.715533,-1.419478}, + {-0.653173,-0.975489}, + {0.388866,-0.494883}, + {0.991641,-1.615541}, + {1.623819,-0.756583}, + {-0.477507,-0.049437}, + {-0.921536,-0.203534}, + {0.524950,-1.209924}, + {0.015214,0.484588}, + {-0.744276,-0.907266}, + {-0.256785,0.726990}, + {-0.989783,0.236785}, + {-0.927026,0.190489}, + {-1.224202,0.044595}, + {0.695077,-0.066990}, + {0.118911,0.317058}, + {0.216068,0.148307}, + {0.147362,0.344791}, + {-0.335603,0.447019}, + {-1.224890,-0.325840}, + {0.002756,-0.321191}, + {-0.160248,1.419446}, + {1.272372,-0.411115}, + {0.090553,-0.020891}, + {-0.813158,0.552475}, + {-1.298817,0.862553}, + {-0.585694,1.251896}, + {-0.013283,-0.413138}, + {-0.297463,-0.903216}, + {-0.255549,1.091331}, + {-0.206760,0.800369}, + {-0.390704,0.606333}, + {0.513017,-1.429631}, + {0.433862,2.005801}, + {-0.383853,-0.598873}, + {1.005859,0.614970}, + {0.851717,0.475903}, + {0.326298,0.574711}, + {-0.558315,0.661107}, + {0.524201,0.697230}, + {0.354126,-1.373313}, + {-0.935029,0.948730}, + {-0.134743,0.135532}, + {0.276808,1.185467}, + {0.018978,0.217541}, + {-0.112404,1.728553}, + {-1.302444,0.146517}, + {0.311354,-0.511768}, + {-0.162418,1.170043}, + {1.221405,-0.185509}, + {0.187501,-0.388756}, + {-0.992425,0.895706}, + {0.010906,-0.436499}, + {-1.151269,-0.978387}, + {0.331651,2.365055}, + {-0.261792,-0.105662}, + {-0.015082,-1.027851}, + {-0.566662,-0.066912}, + {0.333652,0.030599}, + {-0.580868,1.197625}, + {-0.698983,-0.072313}, + {-0.336455,0.586318}, + {-0.460653,-1.130129}, + {1.129557,-0.342097}, + {0.675431,-0.111390}, + {0.656948,-1.198251}, + {0.124118,0.471617}, + {0.873740,-0.661021}, + {0.883188,-0.120431}, + {-0.231922,0.823063}, + {-0.037173,0.803393}, + {0.249852,-0.697130}, + {-0.608230,0.681932}, + {-0.243067,-0.598592}, + {1.280129,0.144530}, + {0.335054,-0.507225}, + {-0.148178,0.471538}, + {-1.320556,0.648198}, + {0.793534,0.184092}, + {0.175364,0.260736}, + {-0.345658,-1.638374}, + {-0.954853,0.361345}, + {-0.439794,-0.209984}, + {-0.580261,-0.437008}, + {-0.042380,-1.008410}, + {-0.256240,0.240739}, + {0.997668,0.041341}, + {0.084286,1.337007}, + {-0.089726,0.349824}, + {-0.351226,-0.439389}, + {0.789935,-0.231385}, + {0.559332,0.372916}, + {0.431332,-0.309163}, + {0.438769,0.729816}, + {-0.709308,-0.453381}, + {-0.806887,0.031475}, + {-0.109243,0.296421}, + {1.053895,-0.808360}, + {1.310377,-0.018203}, + {-0.088228,0.464224}, + {0.404860,1.091152}, + {0.980650,-0.822832}, + {-0.182331,0.154915}, + {-0.416259,0.293648}, + {-1.202575,0.608544}, + {-0.939778,0.311341}, + {0.362085,-0.732201}, + {0.318978,-0.637671}, + {-0.485214,0.461226}, + {-0.302925,-0.728450}, + {0.411979,-0.138660}, + {-0.429297,-0.510534}, + {-1.260831,-0.795375}, + {0.852526,-0.602336}, + {-0.795936,0.503556}, + {-1.379397,-0.490658}, + {0.325956,-1.584800}, + {-0.223558,0.569081}, + {0.081155,0.347926}, + {-0.295295,0.593889}, + {1.147863,0.678079}, + {0.666420,0.268891}, + {0.335919,-0.387414}, + {1.884109,-0.565796}, + {-1.155022,-0.181474}, + {-0.083694,0.434470}, + {-0.431032,-0.709799}, + {0.867853,-0.661146}, + {1.308108,-0.705654}, + {0.441709,0.237870}, + {0.906238,0.160666}, + {0.263269,-0.911975}, + {1.316673,0.073375}, + {0.495316,0.359938}, + {-0.137338,-0.098128}, + {1.551014,-0.986343}, + {0.852076,-0.721691}, + {0.453226,0.292144}, + {1.095678,-0.511793}, + {-0.038954,1.062364}, + {0.808936,-0.562206}, + {-0.290931,-0.645168}, + {0.256794,0.145837}, + {-0.849594,0.501363}, + {0.383039,-0.725827}, + {0.191017,0.987863}, + {-0.260132,0.407206}, + {0.386396,-1.059209}, + {-0.377412,-0.745123}, + {-0.291906,-0.531367}, + {-0.405497,0.709018}, + {0.620085,0.652872}, + {-0.848280,-0.510761}, + {0.284859,0.615713}, + {0.348772,-0.207622}, + {-0.055816,1.039482}, + {0.334478,0.209594}, + {1.605196,-0.420670}, + {-0.605169,-0.084273}, + {0.630320,0.781429}, + {0.014900,-0.362734}, + {0.894942,-0.727579}, + {0.067741,0.754466}, + {0.949988,-0.066743}, + {-0.253311,-0.959373}, + {-0.348181,0.499553}, + {0.059039,-0.130159}, + {-0.127018,-0.015114}, + {0.113024,-0.379652}, + {-0.474835,-0.334921}, + {0.787752,1.233290}, + {0.730310,-0.362158}, + {-0.043029,0.764059}, + {0.702234,0.977776}, + {-0.707870,0.675695}, + {-0.746668,-0.056283}, + {-1.427597,0.548321}, + {-0.889836,-0.322518}, + {0.559716,-0.205609}, + {0.866683,-0.427771}, + {0.190978,-0.991563}, + {-0.904855,0.124091}, + {0.050012,-0.833915}, + {-0.237735,0.753702}, + {1.054057,-0.159998}, + {-1.311705,-0.141423}, + {-0.167340,-0.857237}, + {0.299898,-2.073567}, + {1.438581,0.978587}, + {-0.643269,-0.584753}, + {0.133317,0.494257}, + {-0.649429,0.374599}, + {0.275902,-1.538577}, + {1.198951,-0.760458}, + {-1.385012,-0.069386}, + {-1.281703,-0.058265}, + {-0.555278,-0.011261}, + {-2.004580,-0.558871}, + {0.177745,-0.102492}, + {0.172073,-0.727798}, + {0.435496,-0.446889}, + {0.636023,-1.534272}, + {0.316862,0.134926}, + {-0.152594,-0.252641}, + {1.716484,-0.760875}, + {0.577497,1.141460}, + {0.259169,0.340464}, + {0.148970,-0.160064}, + {1.170360,0.759366}, + {-0.411688,0.120789}, + {0.282131,-0.723614}, + {-0.570560,-0.471775}, + {0.394987,0.179098}, + {0.078922,-1.605195}, + {1.222166,0.705268}, + {0.112494,0.182192}, + {-0.419529,-0.187154}, + {-1.690670,-0.646314}, + {-1.058211,0.228100}, + {0.214788,0.185218}, + {0.288251,0.244880}, + {-1.430080,-1.445750}, + {0.247476,-0.302103}, + {0.265110,-0.804134}, + {1.164424,1.113711}, + {0.311110,-1.210742}, + {0.796506,0.428281}, + {-0.316142,-0.291436}, + {-0.440177,-0.503075}, + {0.097647,-0.178009}, + {0.663421,0.217058}, + {0.665703,-0.958534}, + {0.310222,0.430380}, + {1.264676,0.514635}, + {0.652022,-0.675808}, + {0.546673,-0.732842}, + {-1.412238,0.029713}, + {1.812263,-0.439160}, + {-0.059908,-0.137715}, + {0.717444,-0.127056}, + {-0.231742,0.293963}, + {0.953017,0.337998}, + {-0.259151,0.250980}, + {0.052105,-0.381903}, + {0.152729,-1.519173}, + {-0.591415,-0.657243}, + {-0.150356,0.561554}, + {0.049513,-0.328535}, + {0.980559,-0.235285}, + {1.255975,-0.268207}, + {0.054851,0.313362}, + {1.065817,0.798603}, + {0.333122,0.943230}, + {0.173731,1.244529}, + {-0.137778,1.175759}, + {-0.572404,-0.089366}, + {-1.084071,0.201398}, + {-0.302239,-0.089035}, + {-2.102849,0.327512}, + {-0.071969,0.048153}, + {-0.987305,0.609359}, + {0.045616,-0.070737}, + {0.255401,-0.350403}, + {-0.325866,-0.684457}, + {-0.949723,-0.234736}, + {0.084110,-0.655785}, + {0.250549,1.066458}, + {0.025403,-0.832694}, + {-0.995800,0.738287}, + {0.298398,1.547136}, + {-1.442081,0.084168}, + {0.067213,-0.221365}, + {0.242559,0.174805}, + {-0.326723,-0.622174}, + {0.223836,-0.637175}, + {0.811831,-0.299335}, + {0.773214,0.551379}, + {0.392211,-0.445570}, + {-0.284968,-0.265439}, + {-0.881859,1.508451}, + {-0.347475,-0.325761}, + {-0.616885,-0.769191}, + {0.576795,-0.557282}, + {0.047390,0.337606}, + {-0.097859,1.780184}, + {-0.429312,1.112392}, + {-0.524623,0.219636}, + {0.405006,-0.298594}, + {0.382213,-1.012895}, + {-0.976113,-0.643431}, + {-0.135279,0.069899}, + {-0.077138,0.056443}, + {-0.622842,-0.648767}, + {-0.142333,-0.385734}, + {0.939501,1.168477}, + {-0.090723,-0.021190}, + {0.941865,-1.007430}, + {-0.986187,0.958079}, + {0.375743,0.363480}, + {-0.381949,-0.320752}, + {1.268664,-0.616885}, + {0.136944,0.263353}, + {-2.053794,0.961262}, + {-0.684081,-1.224868}, + {0.599383,0.140131}, + {-0.032657,0.782458}, + {0.385562,-0.313714}, + {0.404669,0.093627}, + {1.091659,0.677779}, + {-0.253105,-0.859333}, + {-0.324104,0.386444}, + {-1.904799,-0.146740}, + {0.373496,0.440722}, + {1.125800,0.354270}, + {-0.276754,-0.390405}, + {0.553166,-0.230742}, + {0.345504,1.257560}, + {0.326855,0.709150}, + {0.168127,0.088543}, + {0.349772,-0.368904}, + {-0.285477,-0.469480}, + {0.523761,-0.504454}, + {0.904464,-0.016717}, + {0.081565,-0.511504}, + {0.885394,0.427703}, + {-0.042153,0.607306}, + {-0.240457,-0.369428}, + {-0.476362,0.849541}, + {0.090063,-0.979648}, + {0.986172,-1.489947}, + {-1.101995,0.630631}, + {-0.700222,-0.297787}, + {-0.105735,-0.061019}, + {0.274621,0.286836}, + {0.956524,-0.005156}, + {1.141911,0.489715}, + {0.155700,0.477954}, + {0.161408,-0.280752}, + {0.208306,-0.382345}, + {-0.319743,-0.654164}, + {1.015004,-0.453518}, + {0.798286,0.047264}, + {-0.339036,1.191907}, + {-0.508641,0.191641}, + {-0.312756,0.231250}, + {1.006892,0.770095}, + {0.392099,-0.187454}, + {0.827204,-1.196456}, + {-0.071158,0.489808}, + {-0.111609,-0.123514}, + {-0.392260,1.137272}, + {-0.418037,-0.312706}, + {-0.890258,-0.638300}, + {0.922980,1.538843}, + {-0.076405,-0.034489}, + {-0.056280,0.132953}, + {0.470452,-0.751306}, + {-0.507513,-0.546397}, + {-1.195554,0.917548}, + {0.119745,-1.039416}, + {0.641056,0.873863}, + {-1.881030,0.230334}, + {-0.472662,-0.485251}, + {-0.731312,-0.241578}, + {1.386169,-0.814696}, + {0.439633,0.192069}, + {0.060629,-0.471375}, + {-0.908071,0.528836}, + {0.831151,0.885574}, + {-1.203440,-0.299895}, + {0.129863,0.106531}, + {0.936271,0.756381}, + {0.084020,-0.140794}, + {0.018339,-0.191766}, + {0.476259,1.311259}, + {0.250059,-1.190703}, + {-0.203745,0.761848}, + {-0.825526,-0.180980}, + {0.812343,0.263797}, + {-0.153643,0.325493}, + {-0.823435,-0.089900}, + {-0.936715,-0.947103}, + {0.504302,0.273732}, + {-0.136153,0.040614}, + {-0.228844,0.063628}, + {0.961477,-0.801511}, + {0.144958,0.157167}, + {-0.275340,0.067845}, + {0.982365,0.655564}, + {-0.101251,0.364215}, + {-0.518940,0.008418}, + {1.146963,0.276110}, + {-0.685455,0.477746}, + {-0.867617,0.334274}, + {-0.216229,-1.075130}, + {0.222334,0.883621}, + {0.561563,-0.562039}, + {0.122965,-1.491563}, + {0.905398,0.202764}, + {0.237011,0.541816}, + {0.995545,-0.305894}, + {0.621302,-0.394520}, + {0.118272,-0.759820}, + {0.217348,-1.054868}, + {0.146891,0.018121}, + {-1.551826,-0.096002}, + {0.015579,-0.036639}, + {1.011278,-1.192439}, + {-0.071961,0.011541}, + {-0.953020,-0.444260}, + {-0.367500,1.228606}, + {1.526161,0.151876}, + {1.107404,0.159669}, + {0.491996,-0.158496}, + {-0.098865,0.292759}, + {-0.430131,-1.325361}, + {1.032900,0.131424}, + {0.238858,-0.653212}, + {1.227567,-0.970755}, + {-1.135533,0.454609}, + {-0.498524,-0.586837}, + {-0.249832,0.164953}, + {0.788240,0.689636}, + {-1.805305,0.688304}, + {-0.568470,-0.213126}, + {-1.008743,0.494092}, + {-0.068211,-0.558996}, + {1.019529,-1.524452}, + {-1.555353,0.038906}, + {-1.517993,0.035634}, + {-0.183605,1.086476}, + {-0.901828,1.815693}, + {-0.376961,0.539305}, + {0.384843,0.052507}, + {-0.147705,-1.045677}, + {0.880142,-0.997078}, + {-0.854662,0.272260}, + {0.283422,1.151546}, + {-1.105150,0.930541}, + {0.044104,0.397594}, + {-0.104013,-0.673208}, + {-0.211616,-0.621975}, + {0.027161,0.371316}, + {0.600274,-0.606245}, + {0.806180,0.471603}, + {-1.008090,0.778175}, + {-0.289146,-0.809723}, + {-0.038659,-0.429242}, + {-1.334523,-0.137992}, + {-1.995175,0.137457}, + {0.021312,-0.091064}, + {-1.281258,-0.684793}, + {-0.413871,-0.292442}, + {0.381687,0.818085}, + {0.295284,0.101209}, + {0.665034,0.592564}, + {0.037124,0.035242}, + {0.132064,-0.657651}, + {1.053341,0.819935}, + {1.210807,0.675951}, + {0.457895,-1.075189}, + {0.358357,0.147282}, + {-0.499271,0.175458}, + {0.854323,0.068143}, + {1.991820,0.805889}, + {1.826429,-0.005057}, + {-0.467242,0.138414}, + {-0.366227,-1.697539}, + {0.485183,-0.821876}, + {0.536318,0.341220}, + {-0.441596,0.831566}, + {-0.134826,0.751288}, + {0.358869,1.095253}, + {-0.386092,0.078119}, + {-0.397661,-0.118587}, + {-0.419914,-1.100465}, + {0.280444,0.389289}, + {-0.832278,0.269468}, + {0.472347,0.132484}, + {0.088928,-0.278739}, + {0.361290,-0.444613}, + {-0.320039,-0.519034}, + {1.354470,0.178576}, + {-0.168088,-0.359028}, + {-1.317068,-0.040397}, + {-0.157570,0.775248}, + {0.150971,-0.256518}, + {0.921575,0.744693}, + {-0.137337,-0.764665}, + {-0.917358,-0.458914}, + {-0.705772,-0.263352}, + {-0.510704,-1.187616}, + {0.796905,0.825262}, + {-0.050399,0.512465}, + {0.768824,-0.159475}, + {-0.687249,0.364975}, + {-0.430008,-0.471340}, + {-0.202663,-0.386981}, + {-0.518536,0.608685}, + {0.525161,0.135142}, + {-0.372337,-0.486685}, + {0.717387,-1.392395}, + {0.854322,0.356855}, + {-1.102180,-0.156184}, + {-0.209081,-0.377676}, + {-0.967928,-0.798301}, + {0.111753,0.232228}, + {0.314745,0.446778}, + {-0.989801,0.082857}, + {-0.298760,0.326928}, + {-0.204933,0.197721}, + {1.048764,-0.114128}, + {-0.304972,0.032725}, + {0.104894,0.290204}, + {-0.045314,0.859009}, + {-0.718912,1.194088}, + {-0.242557,0.422101}, + {-0.859795,0.575768}, + {0.311124,-0.177388}, + {-1.427806,0.214970}, + {-0.645104,0.500403}, + {-0.219194,-0.984099}, + {0.788104,-0.907460}, + {0.513765,0.453685}, + {0.335412,-0.418488}, + {-1.097887,0.150175}, + {-0.979087,0.198912}, + {0.305300,-1.140391}, + {0.077787,0.856586}, + {0.214734,-0.592854}, + {-1.113305,0.320877}, + {-0.669169,0.448671}, + {0.253991,0.932563}, + {-0.455481,0.185849}, + {0.762277,-0.010084}, + {-0.477479,0.184388}, + {0.960667,0.390639}, + {-0.720191,0.037977}, + {-1.316302,1.152700}, + {0.398760,0.257566}, + {-0.401636,-0.419254}, + {-1.914376,1.449176}, + {-0.339228,0.296751}, + {0.207467,0.305288}, + {-1.731574,-0.030498}, + {-0.240750,-0.617304}, + {-0.237212,0.715578}, + {-0.416285,-1.008641}, + {0.634027,1.717009}, + {0.384123,-0.449106}, + {-1.160894,-1.767794}, + {0.618354,-0.261380}, + {-1.569626,-0.364495}, + {0.631915,-0.543410}, + {0.282734,-0.370501}, + {-0.977373,-0.433726}, + {1.432343,-0.462557}, + {-0.972547,0.004444}, + {0.784231,-0.243932}, + {-0.376546,-0.584034}, + {1.001247,-0.164126}, + {0.554715,-0.308636}, + {0.540227,0.426550}, + {-1.066853,-0.294694}, + {-0.504114,0.275915}, + {-0.949985,0.630675}, + {0.506317,-0.294027}, + {0.133689,0.989125}, + {0.105266,0.527915}, + {0.072913,0.211680}, + {0.381472,0.837872}, + {-0.183162,0.180758}, + {0.458198,-0.961007}, + {-0.004799,0.996245}, + {-1.561414,-0.676542}, + {-1.427195,0.800941}, + {0.173579,0.155504}, + {-0.830370,0.498583}, + {-0.232669,0.505982}, + {-0.096304,-0.750719}, + {1.906512,-1.461034}, + {-0.395663,-1.409489}, + {-0.705341,-0.497179}, + {-0.163104,-0.442154}, + {0.853744,-0.265722}, + {-0.361874,0.151299}, + {0.107204,-0.414142}, + {-0.106144,0.419209}, + {-1.286889,-0.802826}, + {-0.144332,0.370855}, + {0.474858,0.913496}, + {-0.867293,0.301363}, + {-0.545302,0.146680}, + {0.001880,0.805475}, + {1.320236,0.643083}, + {-1.141064,1.684144}, + {-0.128674,0.678582}, + {-0.343416,0.309854}, + {0.019772,1.077821}, + {-0.239235,-0.119506}, + {-0.373356,-0.583563}, + {0.403890,-0.534354}, + {-0.519976,0.020956}, + {0.712048,0.988539}, + {-0.861664,-0.493059}, + {0.093158,-0.833793}, + {1.052626,0.468904}, + {0.091221,0.456901}, + {-0.584013,-0.961460}, + {1.685019,0.470576}, + {-0.180148,-0.785828}, + {-0.210638,-0.498937}, + {0.934431,1.304392}, + {0.066268,-0.504962}, + {0.151449,-0.194295}, + {0.247991,0.136973}, + {-0.126328,-0.633755}, + {-0.857218,1.918319}, + {0.354034,0.566611}, + {-0.323836,-0.588707}, + {-0.093776,-0.592204}, + {-0.027068,-0.042178}, + {0.002969,0.636477}, + {-0.480469,-0.201484}, + {-1.191052,0.906057}, + {0.598655,-0.164748}, + {-0.044789,-1.118828}, + {-0.541816,-0.070911}, + {0.074609,1.345165}, + {-0.032322,-0.231974}, + {-0.449760,1.661760}, + {0.707548,0.034345}, + {-0.907888,-0.004174}, + {0.152966,0.440522}, + {0.046909,0.346149}, + {-0.281537,-1.219698}, + {-0.895213,1.513594}, + {-0.881255,0.124261}, + {-1.081693,-0.436486}, + {-0.106278,0.626797}, + {0.754899,0.295278}, + {-0.227234,0.474572}, + {-0.763770,-0.042921}, + {-1.002643,0.429052}, + {0.478156,-0.815031}, + {-0.733688,-0.279437}, + {-0.362104,0.064655}, + {-0.114674,0.196627}, + {0.044324,-1.013509}, + {-0.452231,-1.026683}, + {-0.928972,0.240171}, + {0.531384,-0.041877}, + {0.360475,2.263092}, + {-0.002502,0.278693}, + {-1.068170,-0.652698}, + {-0.133973,0.404417}, + {0.112787,0.817903}, + {0.093469,0.514351}, + {0.173190,0.030494}, + {-0.386117,-0.119304}, + {-0.150011,1.098977}, + {-0.718702,1.061190}, + {-0.187865,0.769379}, + {-0.673330,-0.520017}, + {-0.782271,0.749117}, + {1.040643,-0.447207}, + {-0.686538,-1.825913}, + {0.706101,-1.401344}, + {-0.031939,-0.069587}, + {1.026212,-0.730925}, + {0.311104,0.591601}, + {0.589268,-0.406947}, + {-0.305040,0.233919}, + {-0.658906,-0.074957}, + {-0.172826,0.539225}, + {1.621683,0.577736}, + {1.074205,0.776840}, + {-1.131216,-0.504166}, + {-0.664862,-0.542385}, + {-0.245912,0.040006}, + {1.012363,-0.520893}, + {-1.044423,-0.968495}, + {0.057525,-0.137602}, + {0.031642,-0.360814}, + {0.302685,0.776735}, + {-0.590976,0.666512}, + {-0.153819,-0.015702}, + {0.050475,1.733477}, + {0.474972,0.052117}, + {0.185655,-0.901557}, + {0.383428,0.150210}, + {0.254788,0.679409}, + {-0.224796,0.681574}, + {-0.256749,-1.077031}, + {0.134707,-0.760133}, + {1.014226,-1.619607}, + {-0.766887,-0.104736}, + {0.761824,-0.642466}, + {0.640060,0.025030}, + {0.717916,0.808046}, + {0.158375,-0.609786}, + {0.599932,0.529572}, + {0.920422,-1.417508}, + {0.247593,-0.365323}, + {0.143007,0.147123}, + {-0.698949,-0.661064}, + {0.099640,0.528546}, + {0.387466,1.303945}, + {0.721636,-0.563915}, + {-0.056200,-0.095831}, + {0.127167,0.466936}, + {0.614167,-0.250185}, + {0.324173,-0.104513}, + {0.564475,-0.584259}, + {0.000883,-0.715214}, + {0.175617,-0.853427}, + {-0.655242,0.141206}, + {-0.799496,-0.397656}, + {0.509296,-0.078758}, + {0.824815,-0.397955}, + {0.165592,-0.838807}, + {-1.406393,-0.034832}, + {-0.140087,-0.245922}, + {-0.039954,-0.580654}, + {0.592499,0.257650}, + {0.865662,-0.321183}, + {-0.348095,0.633829}, + {-0.222209,0.346638}, + {0.077141,-0.429164}, + {-0.612928,0.649756}, + {-0.218828,-0.978959}, + {-0.467017,0.873553}, + {1.012268,-0.236361}, + {0.935993,-0.768227}, + {-0.637278,0.397934}, + {-0.171380,0.726429}, + {-0.200094,1.039778}, + {-0.395740,-0.290233}, + {-0.251927,0.547605}, + {-0.317331,2.066899}, + {0.874234,-0.172457}, + {-0.112367,0.968130}, + {-0.608874,-0.281634}, + {0.458084,0.134327}, + {-0.327929,-0.153658}, + {-0.809721,-1.217724}, + {0.108791,0.635246}, + {-0.127071,0.688169}, + {-0.681222,0.292983}, + {-0.447850,-0.098757}, + {-0.059162,0.033865}, + {-1.459920,-0.167831}, + {-0.546872,1.304584}, + {0.567670,-0.764303}, + {-0.051371,0.814561}, + {0.018359,0.085225}, + {0.295254,0.367041}, + {0.923804,-0.382126}, + {-0.094986,0.179273}, + {0.751972,-1.355834}, + {-0.131853,-0.066514}, + {0.223027,-0.074406}, + {-0.447982,-0.207079}, + {-1.165943,-1.747960}, + {0.289496,-0.581631}, + {0.995888,-0.840471}, + {0.287864,-1.173235}, + {-0.035233,-0.012186}, + {1.404205,-0.502267}, + {0.271013,-0.607421}, + {0.082209,-0.294491}, + {1.108759,0.397367}, + {0.147693,-0.077201}, + {0.644694,-1.167422}, + {0.439444,-0.480603}, + {1.596557,0.704222}, + {0.202072,-1.010761}, + {0.472276,-0.171207}, + {0.496560,-0.780542}, + {1.279076,-0.623514}, + {0.182762,-0.393778}, + {0.150084,0.277712}, + {0.752527,0.683646}, + {0.480142,1.172231}, + {1.005193,-0.949569}, + {0.668218,-0.521006}, + {-0.401607,0.695572}, + {0.934451,-1.387263}, + {-1.060714,-0.674529}, + {0.445290,-0.241091}, + {0.757956,0.271408}, + {1.231487,0.237535}, + {-0.486448,0.433734}, + {-1.455954,1.581795}, + {-1.037576,-1.013962}, + {-0.251248,-0.324413}, + {1.064396,0.130331}, + {-1.209972,-0.399869}, + {0.412389,0.237274}, + {-0.971736,0.139207}, + {0.364493,0.360362}, + {0.462466,0.123618}, + {0.015647,0.662696}, + {0.521067,-0.464325}, + {-0.691029,-0.419101}, + {0.797372,-0.361360}, + {-0.711848,-0.337005}, + {0.276187,0.033567}, + {0.261731,0.465815}, + {-0.122547,-0.163457}, + {0.449124,0.025562}, + {-0.366007,-0.325535}, + {0.741756,0.044402}, + {0.795758,-1.009837}, + {-0.045791,-1.021170}, + {-0.690750,-0.553651}, + {-0.885860,0.289949}, + {0.587965,-0.598258}, + {0.645572,0.810630}, + {-0.008388,-0.730176}, + {0.161907,0.977525}, + {-0.967148,0.872038}, + {0.372738,-0.028752}, + {0.255575,1.354765}, + {-0.947345,0.186383}, + {0.938292,0.931974}, + {-0.137511,-1.156500}, + {1.535508,1.226839}, + {0.098197,0.233959}, + {1.091029,-0.489096}, + {0.919905,1.862780}, + {0.715268,0.128684}, + {0.737863,-0.154854}, + {-0.231765,-0.541695}, + {-0.512769,-0.574521}, + {-0.128448,0.487393}, + {0.352688,1.345931}, + {0.064971,-0.982254}, + {-0.726009,1.313529}, + {0.448623,-0.053441}, + {1.469537,-0.044362}, + {1.011843,0.352729}, + {1.063249,-0.322635}, + {-0.131380,0.533014}, + {0.451360,0.230248}, + {0.001995,0.153600}, + {1.646787,0.881911}, + {-1.458759,-0.586824}, + {-0.702392,-0.241636}, + {-0.074182,-0.072131}, + {0.262439,0.583482}, + {-0.476122,0.082469}, + {0.438068,0.803544}, + {-0.207061,0.660637}, + {0.567990,-0.597823}, + {-1.688718,-0.103409}, + {-0.829192,0.426556}, + {0.827020,0.826934}, + {0.441454,-0.546262}, + {-0.304897,-0.022233}, + {-0.357555,-0.612953}, + {-0.388052,0.013095}, + {0.777314,0.544567}, + {0.437676,0.305298}, + {-0.356608,-0.848358}, + {0.791083,-0.271240}, + {0.044885,0.107636}, + {0.364655,0.012973}, + {0.538263,-1.124278}, + {0.228271,-1.168910}, + {0.026633,-0.327359}, + {0.464736,-0.077427}, + {-0.438151,-0.387916}, + {0.384472,0.255111}, + {-0.913587,0.151118}, + {0.215311,0.261325}, + {0.133743,1.302663}, + {0.977288,-1.212393}, + {-1.005590,1.135110}, + {-1.031105,-0.046053}, + {0.034069,0.088167}, + {-1.874043,0.314546}, + {-0.138676,-0.665746}, + {-1.367737,0.809027}, + {-0.617917,0.576212}, + {-0.059977,0.148805}, + {1.021231,-1.734845}, + {0.232449,-1.635767}, + {-0.402629,0.093773}, + {0.306316,-0.589913}, + {0.691035,-0.933528}, + {-0.854344,-0.581280}, + {-0.550056,-0.087623}, + {-0.735359,0.440600}, + {-0.599941,-0.566529}, + {-0.157511,0.329776}, + {-0.620057,-0.573574}, + {-0.618399,-0.151361}, + {0.173969,-0.559218}, + {-0.316563,2.332789}, + {-0.512502,-0.263662}, + {0.127996,0.407326}, + {0.888734,-0.229112}, + {0.431876,-0.881928}, + {0.480039,-0.855335}, + {0.548737,0.504779}, + {0.039114,-0.355311}, + {-0.536205,1.175569}, + {-0.006012,-1.440053}, + {-0.366908,-0.714389}, + {-0.253160,-0.482878}, + {0.071598,-0.022415}, + {0.484456,0.242941}, + {0.353405,-0.516339}, + {0.269909,0.018111}, + {-0.512141,0.368190}, + {-0.034358,-0.690191}, + {0.186251,-0.383563}, + {-1.243734,1.020511}, + {-0.310334,-0.639568}, + {-0.238013,1.203421}, + {-0.276677,0.105597}, + {0.528988,0.213357}, + {0.351103,0.004227}, + {0.686052,-0.683489}, + {0.402253,-0.548756}, + {-0.244236,-0.179112}, + {0.039858,0.390838}, + {0.985325,0.842588}, + {0.440814,-0.329205}, + {0.666419,0.644613}, + {0.548497,-0.000859}, + {-0.938426,1.023278}, + {-0.941754,0.721262}, + {0.000099,1.114577}, + {-1.218951,1.191773}, + {-0.607709,0.205343}, + {-0.206425,0.838011}, + {0.699534,-0.002445}, + {1.352826,-0.100402}, + {0.041916,0.740550}, + {0.416504,-0.341657}, + {0.097466,1.186724}, + {0.687240,-0.367369}, + {0.545399,-0.035212}, + {0.374638,0.479261}, + {0.135228,-0.116509}, + {-0.608795,0.777712}, + {0.335622,0.171713}, + {-0.049759,0.394634}, + {0.882455,-0.007277}, + {0.074308,0.777326}, + {0.370312,0.102349}, + {0.376820,0.573884}, + {-0.431049,0.306366}, + {1.085490,0.744110}, + {-0.230620,-0.315921}, + {0.436716,0.557135}, + {-0.702941,0.571264}, + {0.221250,0.066672}, + {-0.570686,-0.286918}, + {-0.560485,-1.471082}, + {-0.314618,-0.584589}, + {-0.311362,0.168867}, + {1.173793,0.106905}, + {-1.017770,-0.355978}, + {-0.228067,-0.524127}, + {-0.163044,-1.799027}, + {-0.126843,-0.121222}, + {-0.360908,-0.655512}, + {1.040580,-1.978968}, + {-0.769183,0.705786}, + {-0.275717,-0.258945}, + {-0.590592,-1.078141}, + {-1.062724,0.958762}, + {0.123248,0.000726}, + {-0.630985,-0.643702}, + {-0.304755,0.333120}, + {-0.354195,-0.773979}, + {-1.222200,-0.340033}, + {-0.500831,-0.495272}, + {0.395941,0.305049}, + {1.926537,-0.064242}, + {0.102387,0.533556}, + {1.094398,0.165614}, + {-1.017921,-1.540784}, + {-0.218494,-0.929660}, + {-0.535317,0.186219}, + {1.199743,-0.241787}, + {0.086699,-0.643872}, + {-0.586069,0.057078}, + {0.457002,-0.144936}, + {0.938976,0.355965}, + {-0.478159,-0.863239}, + {0.123059,0.137369}, + {-0.726764,0.697758}, + {-0.776171,-0.293292}, + {0.532566,-0.658669}, + {0.490077,-0.101454}, + {0.031428,0.291178}, + {-0.667737,0.741288}, + {0.907230,0.233775}, + {0.515349,-0.227823}, + {1.010764,-0.015213}, + {0.444179,-0.562985}, + {-0.276474,0.657198}, + {-0.172263,0.956311}, + {-0.355806,0.703603}, + {-0.506885,-0.799493}, + {-0.697335,-0.297622}, + {-0.012191,1.840314}, + {-0.847463,0.284183}, + {0.854194,0.403219}, + {1.929827,0.528325}, + {-0.261886,0.577017}, + {-0.031070,-2.348125}, + {-0.155820,-0.265157}, + {0.512475,0.208609}, + {-1.450445,-0.816839}, + {0.564060,0.610582}, + {0.208762,0.538423}, + {-0.394083,-0.217364}, + {0.232377,-0.084660}, + {0.344522,0.516178}, + {-1.449901,-0.112290}, + {0.000158,-0.982079}, + {0.787346,1.416797}, + {0.158547,-0.490012}, + {-0.765118,0.416037}, + {0.552854,0.197313}, + {-0.560294,0.168624}, + {-0.710216,-0.278700}, + {-0.022732,0.174521}, + {-0.831227,0.475439}, + {0.219373,-0.678127}, + {-0.002961,-0.573618}, + {-0.945813,0.412736}, + {-0.979897,1.265908}, + {-0.311475,0.379769}, + {-0.082964,0.038846}, + {-0.500868,0.551077}, + {-1.116548,-0.382053}, + {-0.150512,-0.889516}, + {0.003441,-0.441244}, + {-0.155477,0.236868}, + {-0.372866,-0.003664}, + {0.517363,-0.227696}, + {0.348671,-1.184919}, + {0.023715,-0.857359}, + {-1.165542,0.373084}, + {-0.372004,0.745161}, + {1.486675,0.482708}, + {0.713017,-0.111925}, + {0.698459,0.261537}, + {-1.448937,0.151106}, + {-0.936754,0.023684}, + {0.896661,-0.031541}, + {0.360038,0.783076}, + {-0.094289,0.365897}, + {1.270895,0.047391}, + {-0.069325,-0.911174}, + {0.356797,-0.202779}, + {0.966214,-0.501017}, + {-1.056213,-0.334850}, + {-1.048820,1.448814}, + {-1.559907,0.438635}, + {-0.533985,0.378701}, + {1.577709,-0.730175}, + {0.591595,1.416816}, + {-0.192300,-0.219470}, + {0.299344,-0.860943}, + {0.318677,0.121607}, + {0.335483,0.070689}, + {-0.111371,-1.205420}, + {0.395077,0.205784}, + {1.026121,-0.818676}, + {-0.968687,0.857896}, + {0.312721,1.501156}, + {-0.482650,0.352206}, + {0.997697,0.112893}, + {0.950446,-0.398203}, + {0.097713,-1.070921}, + {-0.800673,-0.325717}, + {0.671945,-0.861890}, + {0.021531,-0.436324}, + {0.437880,1.356432}, + {0.457176,-0.276639}, + {-0.247776,0.777048}, + {0.251688,0.079969}, + {-1.334482,-1.474248}, + {-0.483623,0.743976}, + {0.355137,-0.034433}, + {-0.956198,-1.078557}, + {0.405169,1.702393}, + {-0.835610,-0.412153}, + {0.177645,-0.803742}, + {0.190991,-0.126655}, + {-0.293197,0.907349}, + {0.208255,0.226394}, + {-0.590120,-0.320991}, + {-0.477141,-0.954609}, + {0.534067,-0.035251}, + {-0.962419,0.424134}, + {0.409965,-0.074026}, + {-0.110630,-0.862237}, + {0.037791,0.944337}, + {0.944043,-0.704466}, + {-0.648236,0.057918}, + {-0.617177,-0.830966}, + {0.416183,-0.658194}, + {1.180214,0.519521}, + {-0.123865,-0.426364}, + {0.019066,0.317164}, + {0.234837,0.331158}, + {-0.656986,0.335032}, + {0.346063,-1.649529}, + {0.058210,-0.381788}, + {-0.260900,0.186365}, + {0.429371,0.681698}, + {1.939461,-1.181745}, + {-0.445243,-0.716289}, + {0.131740,0.865901}, + {-0.918136,-0.131137}, + {-0.053577,-0.373297}, + {-0.531049,0.031422}, + {-1.254709,0.556524}, + {-1.119247,0.394916}, + {-0.498215,-0.035437}, + {1.322329,0.190493}, + {-0.701283,-1.164440}, + {-0.361131,-0.504716}, + {-0.117174,0.107979}, + {0.700073,1.603625}, + {-0.582119,0.440169}, + {1.018868,-0.420729}, + {-0.212079,-0.280104}, + {1.132422,-0.035123}, + {0.026273,1.886585}, + {-0.729453,0.098911}, + {0.805546,0.750763}, + {0.224181,0.331261}, + {0.116170,0.259857}, + {0.100047,0.046190}, + {-0.055174,0.957446}, + {-1.456418,-1.105336}, + {0.290339,-0.811412}, + {-0.403941,-0.272939}, + {1.707646,0.332927}, + {0.858293,0.006974}, + {-0.476534,0.364698}, + {-0.705168,0.544668}, + {-0.667669,0.289049}, + {1.181489,-0.102266}, + {-0.363524,-0.507603}, + {0.077873,-0.227451}, + {-0.070765,0.236432}, + {0.547170,0.221358}, + {-0.084700,-0.954482}, + {-0.930200,-1.003973}, + {0.641949,1.189144}, + {0.292530,1.376169}, + {0.146329,0.050514}, + {0.504086,0.327294}, + {0.560656,-0.819642}, + {-0.782328,0.555732}, + {-0.321355,0.040423}, + {0.575312,0.676942}, + {0.676739,0.371605}, + {-0.739089,0.154797}, + {-0.196959,0.765774}, + {-0.075477,-0.064618}, + {-0.708957,-0.695153}, + {-0.114007,-0.274311}, + {-0.208777,-0.197655}, + {-0.330289,0.090402}, + {0.645717,-0.861720}, + {0.759627,1.159973}, + {0.736863,0.016140}, + {-0.290055,1.066642}, + {-0.360313,0.572408}, + {0.559798,-0.118348}, + {1.099664,0.913475}, + {-1.221145,0.753011}, + {-1.080846,-0.309538}, + {0.898748,-1.751489}, + {-0.793636,-0.682252}, + {0.601441,0.716634}, + {-0.754166,-0.295275}, + {-0.057178,-0.531244}, + {-0.503737,0.754428}, + {-0.092784,0.415358}, + {-0.428408,0.867882}, + {-0.531645,-0.427532}, + {0.015225,0.360774}, + {0.052039,0.804546}, + {0.140220,0.683936}, + {-0.183837,-0.075742}, + {0.141611,0.121116}, + {0.863189,-0.304942}, + {-0.183500,-1.267097}, + {0.721582,0.324832}, + {0.490362,-0.620402}, + {0.032723,-0.342147}, + {0.015191,0.299803}, + {-0.453198,0.232907}, + {0.890290,-0.037167}, + {1.101406,-0.724242}, + {-1.147539,-0.245951}, + {-1.727078,-1.683502}, + {0.261545,-0.107582}, + {0.068065,0.753220}, + {0.369570,0.796556}, + {0.143988,0.884428}, + {0.009223,-0.259795}, + {-0.207237,1.912655}, + {0.901343,0.446570}, + {1.779646,-0.190026}, + {0.060311,-0.035492}, + {0.471146,-0.987103}, + {-0.678292,-0.087719}, + {-0.381341,0.932014}, + {0.423463,-0.374888}, + {0.132522,-0.133326}, + {0.725087,-0.055467}, + {-0.026041,0.630602}, + {0.237645,-0.147676}, + {0.384787,0.046887}, + {1.184148,-0.971991}, + {0.904135,-1.133769}, + {1.047468,-0.174437}, + {-0.262063,1.567163}, + {-0.323006,0.521236}, + {0.517606,0.341770}, + {-0.289763,-0.525198}, + {1.140138,-0.745015}, + {0.748583,0.650728}, + {-0.040966,0.218449}, + {0.340059,0.915520}, + {0.031779,0.421656}, + {-0.394555,-0.262061}, + {0.204192,-0.199669}, + {-0.222583,0.416622}, + {0.026680,0.648281}, + {0.394312,-0.072898}, + {-0.547009,-0.610642}, + {-0.323403,-0.781335}, + {0.246200,-0.481307}, + {1.250227,-0.203189}, + {1.335570,0.028829}, + {0.907068,-0.322204}, + {-0.241285,0.672412}, + {-0.500388,1.413200}, + {0.348404,0.053563}, + {-0.515993,1.348158}, + {0.419507,0.843740}, + {-1.680552,-0.349667}, + {1.125661,0.162114}, + {-2.253658,-1.822658}, + {-0.603819,-0.131986}, + {-0.688067,-1.520234}, + {0.107885,1.042587}, + {0.794351,0.550783}, + {0.107568,0.622575}, + {0.427502,0.055636}, + {-0.386636,-0.648276}, + {-0.530590,0.233918}, + {-0.069396,-0.648418}, + {0.677155,1.610371}, + {-0.636080,0.824467}, + {1.069180,0.649464}, + {-1.099628,0.652186}, + {1.175325,0.015894}, + {0.519414,-1.197649}, + {-0.613790,-0.781378}, + {-1.117294,0.891372}, + {0.284313,-0.488536}, + {0.142283,1.641906}, + {1.718632,-0.694643}, + {-0.611194,-0.432577}, + {-0.251579,-0.852987}, + {-0.170100,0.486159}, + {0.320121,-0.580628}, + {0.872266,-0.384060}, + {-0.208309,0.139307}, + {-1.583756,-0.645014}, + {-0.702369,-0.541675}, + {0.336241,0.831866}, + {-0.865645,0.436119}, + {-0.620241,-0.606092}, + {-0.104203,0.984638}, + {-0.410559,-0.040961}, + {-0.416490,-0.226391}, + {0.088726,-0.220726}, + {-1.499559,-0.585178}, + {0.293249,0.186455}, + {-1.210379,-0.633716}, + {-0.277191,-1.244025}, + {1.139804,0.055639}, + {-0.228353,0.448129}, + {0.559068,-0.023119}, + {-1.221999,0.465622}, + {1.162107,-0.729434}, + {-0.368202,0.259066}, + {-0.285426,1.295138}, + {0.379646,0.224708}, + {0.294352,-0.551327}, + {-0.462702,0.187464}, + {-0.026366,-1.131739}, + {0.894485,-0.169837}, + {1.029962,-0.513169}, + {-0.308485,-0.846109}, + {0.013267,0.200561}, + {0.442056,0.037734}, + {-1.579953,-0.567456}, + {0.313331,0.287219}, + {0.237625,-1.467799}, + {-0.343068,0.471870}, + {0.808584,-0.605491}, + {-0.384505,0.285999}, + {-0.821182,1.140405}, + {0.083857,0.569015}, + {0.358021,0.251793}, + {-1.050896,0.222264}, + {0.693579,-0.417443}, + {0.488468,0.599156}, + {-0.102947,-1.320533}, + {0.340396,-0.671734}, + {0.618710,-0.219283}, + {-0.125032,-0.163230}, + {-0.088188,-0.534394}, + {0.682064,1.041136}, + {-0.344705,-0.089664}, + {-0.529053,0.255838}, + {-0.136569,-0.214062}, + {1.455681,0.491256}, + {1.238314,-0.436456}, + {0.183785,-0.294781}, + {-1.115245,1.248687}, + {-0.649421,-0.614780}, + {1.178710,-0.312908}, + {0.812326,-0.393600}, + {-0.874232,0.893146}, + {-1.043341,-0.195049}, + {-1.266037,-0.004749}, + {-0.377230,-0.359996}, + {-0.196225,0.796953}, + {0.996897,-0.623582}, + {-0.556859,-0.864103}, + {-1.371972,0.769551}, + {0.056397,-0.658378}, + {-0.074004,0.516830}, + {-0.019248,0.750291}, + {0.172892,-0.524600}, + {-0.598676,-0.007268}, + {0.137861,1.698237}, + {-0.084691,1.344243}, + {0.001925,-0.191394}, + {0.240667,-0.596132}, + {-0.139205,1.502034}, + {0.716061,-1.415551}, + {0.861506,-0.658005}, + {0.514495,0.090184}, + {-0.528631,1.006103}, + {-0.388832,-0.792382}, + {0.735890,0.122394}, + {-1.547132,1.015471}, + {0.121113,-0.501140}, + {0.975384,-1.280454}, + {0.079350,0.996285}, + {0.046097,-1.248331}, + {-0.978137,-0.857029}, + {-0.292484,0.917538}, + {0.476399,-0.533662}, + {-0.185424,0.410061}, + {-0.516918,0.560953}, + {-1.108884,0.242701}, + {0.393610,-1.112134}, + {-0.342411,0.026459}, + {0.960001,-0.039799}, + {0.292966,-0.871399}, + {0.509531,0.068985}, + {0.306125,0.182601}, + {0.684688,0.611943}, + {0.366705,-1.300976}, + {-0.161117,0.460565}, + {0.919045,0.162937}, + {-0.600136,0.528728}, + {0.807988,-0.082820}, + {0.723075,-1.101493}, + {0.408624,0.497548}, + {0.592179,-0.511883}, + {-0.624763,0.320432}, + {0.702432,0.047555}, + {-0.826321,0.702721}, + {-0.590704,0.927206}, + {-1.222225,0.520187}, + {0.057220,-0.355501}, + {-0.346697,0.327871}, + {-0.389801,-1.554275}, + {0.700315,-0.895953}, + {0.367463,0.307326}, + {-0.364395,-1.611608}, + {-0.506932,0.889372}, + {-0.243596,0.575283}, + {-0.802028,0.056860}, + {-0.171424,0.239689}, + {0.169908,-0.522395}, + {0.213199,-0.701460}, + {0.552262,0.906828}, + {-1.016062,0.643300}, + {0.298917,-0.477633}, + {0.354035,0.004910}, + {-0.091019,0.375327}, + {-0.237197,0.523797}, + {-0.445213,0.236868}, + {0.184486,0.210037}, + {-0.200655,-0.532764}, + {-0.165018,0.252682}, + {0.301383,-0.470096}, + {0.733004,-0.519851}, + {-0.340900,0.559258}, + {-0.003634,0.397142}, + {-0.158002,-0.601995}, + {1.029616,-0.712344}, + {-0.272084,1.292895}, + {-0.245181,0.153895}, + {1.537927,0.233934}, + {-0.194398,-0.207617}, + {-0.037529,-0.362480}, + {-1.439610,-0.069318}, + {-0.527334,-0.847175}, + {0.888073,1.120245}, + {0.759059,-1.709285}, + {-0.038818,-0.451563}, + {-1.569456,0.059742}, + {-1.135825,1.105116}, + {0.860456,-0.054651}, + {0.791421,0.583433}, + {0.300375,0.733727}, + {0.740330,0.173272}, + {0.720677,-0.006213}, + {0.211773,0.171237}, + {1.239301,0.513578}, + {-0.038229,-1.319419}, + {-1.110608,0.623842}, + {-1.199877,2.009182}, + {0.110201,1.359225}, + {-0.521048,1.259603}, + {-0.779884,0.080694}, + {0.922866,1.378522}, + {-0.036678,-0.256378}, + {0.630587,0.356473}, + {-0.818911,0.348724}, + {-0.823156,-0.403827}, + {-0.305461,-0.183285}, + {0.545495,-0.917827}, + {-0.307489,0.278087}, + {0.576430,0.263072}, + {-0.110932,0.343314}, + {-0.730010,0.924897}, + {0.492041,0.775198}, + {0.461854,0.423507}, + {0.427495,1.700151}, + {0.432533,0.301152}, + {-0.593518,1.393076}, + {-0.389399,-0.733757}, + {-1.049504,0.301791}, + {0.546392,0.734537}, + {0.338524,0.116400}, + {-0.597570,-1.925078}, + {0.322346,1.008118}, + {0.513935,-0.042958}, + {-0.518049,0.101353}, + {1.352677,-0.293425}, + {0.240988,-1.041734}, + {-0.691185,-1.063328}, + {0.130569,1.016253}, + {-0.586304,-0.555797}, + {0.462853,-0.235079}, + {0.079994,-0.355770}, + {0.153572,0.147783}, + {-0.596490,-0.795026}, + {0.326538,-0.790256}, + {-1.460756,-0.251033}, + {0.017858,0.259083}, + {0.507881,-1.054094}, + {0.266351,0.627879}, + {-0.752761,-0.513762}, + {-0.627282,0.008649}, + {-0.886446,0.842860}, + {-0.463043,-0.469626}, + {0.096623,0.933024}, + {-0.286410,0.744126}, + {-0.542282,1.126897}, + {-0.313235,0.205528}, + {-1.320519,0.277179}, + {0.071715,0.147248}, + {-0.903511,-0.083047}, + {0.656132,-1.350683}, + {-0.207632,-0.039248}, + {0.117073,-0.120780}, + {-1.332364,0.590990}, + {-0.380298,-0.400794}, + {-0.366577,0.174013}, + {0.485112,-0.117400}, + {0.372690,-0.023396}, + {-0.909507,-0.293390}, + {1.037746,0.057621}, + {0.939461,-1.025088}, + {1.893673,-0.611078}, + {0.078827,-0.951650}, + {-0.839030,0.090466}, + {-1.104840,-1.126416}, + {0.590214,0.068381}, + {1.100851,0.573205}, + {-0.393116,-0.875980}, + {-0.254150,-0.405253}, + {-0.278855,1.000683}, + {0.921864,0.463923}, + {-0.041988,-0.112156}, + {0.155288,-0.019315}, + {0.099627,0.916635}, + {-0.622412,-0.503004}, + {-0.262853,0.533022}, + {-2.349103,-0.232631}, + {-0.387689,-0.672924}, + {-0.981208,0.386278}, + {0.021049,-0.336082}, + {0.385965,1.431628}, + {0.084666,-0.022362}, + {1.501095,-0.445381}, + {-0.174828,0.029946}, + {-0.075096,-0.754793}, + {0.440599,-0.624117}, + {-0.191469,-0.122779}, + {-0.619664,0.048316}, + {0.681431,-1.113935}, + {0.392264,-0.416262}, + {-1.025569,0.426959}, + {0.231863,1.526328}, + {-0.235847,0.767781}, + {-0.081400,-1.937839}, + {-0.142145,0.413403}, + {-0.578059,-0.410749}, + {0.886248,-1.144489}, + {-0.584558,-0.717462}, + {0.337355,-0.804375}, + {-0.070221,0.776269}, + {-0.020066,0.015296}, + {-0.731855,1.217179}, + {0.430529,-0.118092}, + {0.121456,2.210222}, + {0.825156,-1.563617}, + {-0.365542,-0.034897}, + {0.238998,0.603491}, + {-0.488885,-0.418294}, + {0.519796,-1.412865}, + {-1.114191,-0.510320}, + {-0.752598,0.541650}, + {0.380631,-0.713726}, + {0.023115,1.015882}, + {-0.198359,0.433732}, + {0.103927,0.017306}, + {-0.039809,0.223707}, + {1.711996,0.402454}, + {-0.056678,0.174339}, + {-1.687713,-0.160125}, + {0.696416,-0.493909}, + {-0.873410,0.257890}, + {0.319853,0.072947}, + {-0.368300,0.341422}, + {-0.482285,0.930112}, + {-0.004708,0.893093}, + {-0.051559,0.713417}, + {1.244796,1.336726}, + {-0.104941,-0.449322}, + {0.655462,0.706759}, + {-0.239773,1.696788}, + {-0.324650,0.398949}, + {0.624589,0.044072}, + {0.357952,0.443955}, + {0.749903,1.159453}, + {-1.563112,-0.838062}, + {-0.617714,-0.025810}, + {1.450510,-0.020522}, + {0.225253,-1.483181}, + {-0.666102,-0.989824}, + {0.463322,0.622948}, + {-0.252765,-0.493345}, + {-0.030605,0.132428}, + {-0.104919,-1.328013}, + {0.512898,-0.265843}, + {0.641341,0.344586}, + {0.586485,-0.656758}, + {-0.869639,-1.444607}, + {-0.283470,-0.175611}, + {-0.403954,-0.687469}, + {0.222511,-0.720233}, + {-1.268683,-0.981553}, + {-0.379982,-0.435577}, + {1.266867,0.349347}, + {0.164557,-1.057785}, + {0.093567,0.955540}, + {-0.141307,-0.705522}, + {0.371905,0.120573}, + {-0.389172,-0.765473}, + {0.917816,-0.237643}, + {1.004090,0.178844}, + {-0.629418,-0.412242}, + {-0.210337,0.560592}, + {-0.318360,1.059381}, + {0.583389,-1.323808}, + {-0.817288,0.993688}, + {-0.878170,-1.153520}, + {0.368115,0.337455}, + {0.031655,0.110590}, + {0.265206,0.204946}, + {0.088893,0.170791}, + {-0.177558,2.292458}, + {0.141059,-0.985035}, + {-0.660856,-0.980383}, + {-0.609849,0.985874}, + {-0.214610,0.730502}, + {-0.616156,-0.316919}, + {0.694992,-0.768053}, + {-0.325122,-1.054053}, + {1.217558,-0.854166}, + {0.854051,-0.005104}, + {1.209427,-0.241328}, + {0.324556,0.132322}, + {-0.343527,0.053413}, + {0.224351,0.479553}, + {0.421346,-0.521788}, + {0.118883,-0.218365}, + {0.188380,-0.456052}, + {-0.349273,-0.770785}, + {0.219073,0.003962}, + {-0.296130,-0.656501}, + {0.636082,0.026015}, + {-0.625080,0.346952}, + {0.929759,0.857013}, + {0.187340,0.484039}, + {0.007584,-0.624158}, + {0.309799,-2.221435}, + {0.640643,1.329439}, + {0.226335,-0.805996}, + {0.822625,1.060992}, + {-0.470881,-1.000766}, + {0.425072,-0.397100}, + {-0.223623,0.531114}, + {0.292353,-0.088059}, + {0.366968,0.358980}, + {-0.753461,-0.700875}, + {0.249173,0.177231}, + {0.182607,-0.592219}, + {-0.058347,0.078718}, + {0.183978,-0.226199}, + {0.648659,-0.221680}, + {-0.656861,-0.408497}, + {0.798399,0.044049}, + {-1.154125,-0.803622}, + {0.008225,-0.136806}, + {0.676763,-0.316637}, + {-0.376109,0.251771}, + {-1.331292,1.241033}, + {0.190767,0.475373}, + {0.578552,1.172062}, + {0.505876,-0.233129}, + {-0.361797,-0.297199}, + {-0.097264,-0.225741}, + {-0.050572,-0.001436}, + {-0.454120,-0.192442}, + {1.120225,-0.898933}, + {-0.216917,0.333024}, + {0.110060,0.750588}, + {0.760030,0.575150}, + {0.975368,0.487183}, + {-0.416180,1.692559}, + {0.804607,-0.335317}, + {-0.669472,0.243862}, + {1.112954,-0.010765}, + {-0.312142,-0.937224}, + {-0.567689,-0.263702}, + {0.041868,0.572080}, + {1.804127,-0.566619}, + {-0.521481,1.063847}, + {1.819315,0.382287}, + {0.380872,-0.611233}, + {0.296314,-0.222157}, + {1.498113,0.879454}, + {1.518674,0.605166}, + {0.019620,-0.040801}, + {1.102724,0.266670}, + {-0.684836,-0.568236}, + {0.519185,-0.779516}, + {-0.226690,-0.818393}, + {0.394623,-1.286799}, + {0.900695,0.487765}, + {-0.799478,-0.400191}, + {-0.830514,-0.562055}, + {0.951365,-0.076491}, + {-0.152298,-1.042769}, + {0.069064,-1.023238}, + {0.053427,-1.985536}, + {-0.686719,0.206313}, + {-0.872301,0.294649}, + {-0.624577,-0.387285}, + {-0.050756,0.173358}, + {-0.721308,0.536205}, + {0.598027,-1.956268}, + {1.243462,-0.102223}, + {0.272178,0.642981}, + {0.490204,-1.332468}, + {-0.459636,1.005367}, + {-0.186912,-0.782287}, + {-0.912943,-0.294037}, + {1.394333,0.134047}, + {-0.104225,0.280412}, + {0.396206,-0.652859}, + {-1.350593,0.267762}, + {-0.192340,0.249925}, + {-0.294556,0.392405}, + {-0.585629,-0.706280}, + {0.416039,-0.105205}, + {0.230197,-0.642631}, + {-0.788622,-0.801780}, + {0.641724,0.143368}, + {0.868609,0.721575}, + {-0.648315,-0.221029}, + {-0.759865,-0.581518}, + {0.050452,-0.421412}, + {0.554405,-0.621567}, + {-0.620533,-0.351417}, + {-0.708260,0.277084}, + {-0.663141,0.789494}, + {0.544607,-0.890151}, + {0.915475,0.208660}, + {-0.089024,-1.629471}, + {0.122487,0.665973}, + {0.778714,-0.473087}, + {0.436424,-0.053708}, + {-0.962989,0.178894}, + {-0.093878,-1.372909}, + {-1.334592,-0.532912}, + {0.914235,-1.047946}, + {0.468339,0.302520}, + {0.144360,0.390533}, + {-0.851259,0.971010}, + {-0.701207,0.150590}, + {0.338131,-0.762748}, + {1.102405,-0.101683}, + {0.187218,1.112117}, + {0.825270,-0.520667}, + {0.520354,0.359599}, + {-0.541755,0.243781}, + {-0.025789,-0.276606}, + {0.663983,-0.217932}, + {-0.424530,0.937543}, + {0.087080,-0.695290}, + {0.125273,-0.056948}, + {-0.574391,0.829597}, + {0.707433,-0.081680}, + {1.053279,0.587411}, + {1.371934,-0.232203}, + {1.377562,-0.181817}, + {0.301180,1.214186}, + {-1.259045,-0.768218}, + {-0.106634,0.320428}, + {0.638354,0.147326}, + {1.035767,1.246632}, + {-0.484057,-0.778008}, + {-0.568900,0.810352}, + {1.343526,-0.565878}, + {-0.078860,0.468044}, + {-0.241550,-0.951938}, + {0.207429,-0.254585}, + {0.447816,-0.015839}, + {0.302137,0.164948}, + {0.563014,0.769551}, + {-1.148579,0.887160}, + {-0.083611,0.680195}, + {0.369397,0.512873}, + {0.381627,1.395393}, + {0.681791,0.515388}, + {-0.542576,-1.534588}, + {1.918437,0.611528}, + {-0.522244,1.209917}, + {-0.093985,-0.455651}, + {-0.107796,0.859061}, + {-1.018800,0.051540}, + {-0.539498,-0.754561}, + {-0.015481,-1.049091}, + {0.407858,0.681992}, + {1.168251,-0.815391}, + {0.280607,-0.068227}, + {-0.528591,0.091963}, + {-1.073499,-0.577745}, + {0.395243,-0.629384}, + {1.095985,-0.516588}, + {-0.136250,-0.015595}, + {-0.696164,0.819270}, + {-0.192516,-0.906690}, + {1.066016,0.386976}, + {0.084233,-0.420819}, + {0.691169,-0.036671}, + {0.304274,-0.143800}, + {0.174184,1.080694}, + {-0.812545,-0.113297}, + {0.498295,-0.183696}, + {1.482711,0.261931}, + {-1.195411,-0.365014}, + {-1.007641,-1.211093}, + {0.180812,-0.582404}, + {-0.600608,0.360349}, + {-0.795459,-0.612485}, + {-0.498403,-0.770827}, + {0.179341,0.252923}, + {0.078219,-0.134409}, + {0.029020,0.530232}, + {-1.082486,-0.964627}, + {0.475449,0.228865}, + {0.945295,-0.971173}, + {-0.376007,-0.822730}, + {-0.048402,-0.952172}, + {0.442908,0.788001}, + {-0.523677,0.317709}, + {0.249828,-0.866534}, + {0.288825,-0.711717}, + {0.749714,1.240367}, + {0.231159,-0.142686}, + {-0.672808,-0.212280}, + {-0.205479,0.294669}, + {-0.867840,1.497664}, + {0.602268,0.171039}, + {-0.439475,-0.397819}, + {0.056233,1.305299}, + {-0.202537,-1.087085}, + {0.879143,0.645517}, + {-0.098655,0.549591}, + {-0.079826,0.092852}, + {0.787565,-0.587819}, + {0.844504,0.083068}, + {-0.316615,-0.486807}, + {0.318470,-0.589745}, + {-0.323499,0.031700}, + {0.794815,1.192794}, + {-1.434705,-0.743418}, + {0.194635,0.496011}, + {-0.068369,1.097164}, + {0.055882,-0.610884}, + {-0.944299,-0.941208}, + {-0.498806,0.156640}, + {0.208447,-0.528226}, + {0.956777,-0.354452}, + {-0.879130,-1.356783}, + {-0.605954,1.495664}, + {-0.025056,0.107553}, + {0.610923,0.435619}, + {-1.008064,0.239170}, + {-0.137944,-0.395381}, + {-0.531626,0.570013}, + {0.039088,-0.074388}, + {-0.602167,-0.940069}, + {0.520930,0.839237}, + {-1.547177,0.015998}, + {0.439233,0.453052}, + {-0.029776,-0.125403}, + {-0.345532,0.150671}, + {0.283820,-0.311247}, + {0.691268,0.439948}, + {-0.297298,0.571417}, + {-0.664505,-0.174490}, + {1.265258,0.472942}, + {0.049889,0.244857}, + {-0.095322,0.754115}, + {-0.029737,-0.356600}, + {0.146569,-1.294022}, + {-0.295789,0.369970}, + {0.200032,-0.482899}, + {0.781168,1.247152}, + {-0.245575,0.442512}, + {-1.080089,-1.224498}, + {0.347986,-0.310894}, + {1.813778,-0.546107}, + {0.347830,1.098305}, + {1.139714,0.083681}, + {0.613995,-0.064648}, + {0.627980,-1.185934}, + {-0.088940,-0.247523}, + {0.293299,0.282612}, + {0.145607,-0.363898}, + {0.682261,0.069479}, + {-0.062785,-0.107404}, + {-0.404708,0.102763}, + {-0.237587,0.193964}, + {0.971118,1.637474}, + {-0.449309,0.565929}, + {1.795769,0.373496}, + {-0.873712,0.616632}, + {-0.196513,-0.640404}, + {-0.186019,-0.672891}, + {0.405301,-0.523678}, + {-1.000323,1.087868}, + {-0.748565,0.346213}, + {-0.533750,0.023908}, + {-0.576248,0.401431}, + {-0.892996,0.627997}, + {-0.467071,1.447969}, + {-0.139768,-1.028884}, + {0.278656,0.126379}, + {-0.238544,0.542289}, + {-0.270467,-1.010170}, + {-0.228088,0.216426}, + {1.142972,-0.627060}, + {1.031965,-0.434600}, + {0.340546,-0.237191}, + {-0.136616,0.924569}, + {-0.852451,0.409948}, + {-0.030960,0.003293}, + {0.751540,-0.478669}, + {0.454761,-0.433887}, + {-1.611252,0.302680}, + {0.003690,-0.193511}, + {-0.883646,-0.472813}, + {-0.217567,0.614904}, + {-0.060909,-0.291651}, + {0.348777,0.769840}, + {-0.205364,-0.945972}, + {0.100935,-1.105324}, + {-0.730546,1.197917}, + {0.037881,-1.364004}, + {-0.790273,-0.500485}, + {1.019594,1.405192}, + {0.553383,-0.760307}, + {0.079813,1.242097}, + {0.724602,0.322399}, + {0.691650,-0.277596}, + {-0.999711,0.814944}, + {-0.103090,0.702437}, + {-0.245544,-0.599467}, + {-0.194306,1.677402}, + {0.436362,1.246626}, + {0.206087,-0.136172}, + {1.747782,0.584106}, + {0.406945,0.500722}, + {0.401018,0.061251}, + {-0.485579,-0.126287}, + {0.102872,0.074572}, + {0.526394,-0.130306}, + {-0.997377,0.317494}, + {0.651321,-0.412428}, + {-1.160759,-1.663891}, + {-1.106270,0.202325}, + {-0.698919,0.195317}, + {0.486878,0.717703}, + {-0.998619,0.718843}, + {0.006452,0.669891}, + {1.418430,-0.380581}, + {-0.079725,0.248431}, + {0.034193,-0.516827}, + {0.087614,-0.200013}, + {-0.608534,-0.918271}, + {-0.096351,-0.320469}, + {-0.803814,-0.983979}, + {-0.563381,0.035484}, + {0.725737,0.753731}, + {0.945344,-0.412933}, + {1.252002,0.158636}, + {-0.615195,-0.442558}, + {-0.181433,-0.153078}, + {-0.131831,0.255303}, + {0.028794,0.045431}, + {-0.901468,-0.112194}, + {-0.240013,0.332503}, + {0.725427,1.028639}, + {-0.832698,-1.074637}, + {-0.087355,2.052221}, + {-1.695433,1.195954}, + {0.348765,0.618883}, + {-1.261736,0.226435}, + {-1.036571,1.108908}, + {-0.631858,0.969470}, + {-0.383927,0.513694}, + {-1.065415,0.305332}, + {-0.770717,-0.211612}, + {-0.042169,-0.577398}, + {0.778070,0.164015}, + {-0.308740,0.253317}, + {0.673013,0.384047}, + {-0.663271,-1.645542}, + {-0.594806,-0.266981}, + {0.031422,0.017209}, + {0.372819,0.179241}, + {-0.451831,-1.222927}, + {-1.473253,-1.466359}, + {-0.021394,1.299407}, + {0.517073,1.048515}, + {-0.492487,0.319604}, + {0.045902,-0.369191}, + {0.761630,-0.646184}, + {-1.143760,-0.877989}, + {-1.207937,0.402411}, + {0.647822,-0.684881}, + {1.561865,-0.520949}, + {0.034907,0.267810}, + {-0.060274,-1.422451}, + {-0.739349,0.707542}, + {-0.536740,-0.575886}, + {-0.052684,-0.290248}, + {-0.123131,-0.743400}, + {-0.514004,0.128876}, + {-0.865755,0.825335}, + {-1.093714,-1.041393}, + {1.399303,-0.474390}, + {-1.593978,-0.302014}, + {-0.647736,0.276940}, + {-1.921976,-1.024671}, + {-0.330629,-1.292647}, + {-0.758354,0.195156}, + {0.469699,0.035348}, + {-0.091111,0.143719}, + {-0.451077,0.345265}, + {0.206307,-1.201955}, + {-0.710390,1.963236}, + {0.375559,-0.576808}, + {0.149091,-1.086740}, + {-0.449572,0.325384}, + {-0.192764,0.050606}, + {0.421631,-0.018053}, + {1.221822,0.036003}, + {0.377659,0.155503}, + {0.659024,-0.972623}, + {0.028611,1.195320}, + {0.766597,1.851492}, + {-0.080947,-0.311238}, + {-0.546674,0.601715}, + {0.100401,-0.217646}, + {0.545637,0.168297}, + {-1.346635,-0.631837}, + {-0.682666,0.621478}, + {0.045733,-0.349107}, + {-1.244812,-0.204358}, + {-0.422721,0.108213}, + {0.079947,-0.097146}, + {-0.020068,0.559199}, + {0.297205,0.513111}, + {0.941640,0.417691}, + {-0.925712,-0.314921}, + {-0.315827,1.287305}, + {0.529011,0.755734}, + {-1.309677,0.875144}, + {-0.230303,0.267374}, + {0.868997,0.302759}, + {-0.111540,0.065648}, + {-0.142909,0.138899}, + {-0.578420,-1.061350}, + {0.245031,0.319639}, + {1.260454,-0.384548}, + {0.982616,0.576288}, + {0.159346,0.750479}, + {-0.087783,1.089588}, + {0.196171,-0.771344}, + {-0.607085,0.048410}, + {-0.068539,-0.651095}, + {0.361776,-0.899946}, + {0.513233,-0.276754}, + {-0.815696,0.184741}, + {0.595970,0.094903}, + {0.115271,-0.496266}, + {1.233400,-0.604420}, + {-1.610600,0.068291}, + {1.685176,-0.540653}, + {1.331054,-0.306383}, + {0.474553,-0.181542}, + {-0.349692,-1.046318}, + {0.466882,0.552974}, + {0.671398,0.059918}, + {1.220610,-0.655965}, + {-1.017139,0.324829}, + {-0.405089,-0.133175}, + {-1.230806,-0.614727}, + {0.053516,0.105043}, + {0.263139,-0.629699}, + {0.284898,-0.362198}, + {-0.210472,0.588927}, + {0.430466,0.051079}, + {0.114497,0.987658}, + {-1.348501,0.053213}, + {-0.087962,0.937382}, + {-0.583326,-0.560167}, + {0.925946,0.254656}, + {-0.883881,-1.030357}, + {-0.800863,0.810453}, + {1.625943,-1.280755}, + {0.323764,-0.336854}, + {0.797648,0.589424}, + {-0.219584,0.872309}, + {0.640241,0.052660}, + {0.266435,-0.575933}, + {0.010578,0.226011}, + {0.416890,0.200529}, + {1.452786,-0.051537}, + {-0.310855,0.121700}, + {-0.632248,-0.915323}, + {0.030787,-0.673870}, + {-1.049494,0.197745}, + {0.047091,-1.145422}, + {0.711093,0.945179}, + {-0.242047,0.140575}, + {0.340217,0.852112}, + {0.630934,1.603793}, + {-0.212128,0.191145}, + {-1.331703,-0.244984}, + {0.474762,-1.272654}, + {-0.064322,0.887641}, + {-0.772426,-0.137183}, + {-0.476909,-0.765121}, + {-0.921167,0.515822}, + {0.706203,-0.726292}, + {-1.297285,1.234220}, + {0.251867,0.516994}, + {0.152440,0.693035}, + {0.355725,-0.222082}, + {0.070784,-0.573142}, + {-0.472779,0.405148}, + {-0.387195,0.495100}, + {0.353239,1.388869}, + {0.436446,0.846312}, + {0.117673,0.291440}, + {0.038314,0.003910}, + {0.832524,0.297668}, + {-0.067787,-0.787236}, + {0.308990,-1.201882}, + {-0.716303,0.682363}, + {-1.541222,0.779205}, + {-0.399833,0.182525}, + {-1.489015,0.201933}, + {-1.085351,-0.414808}, + {-0.593430,-0.460045}, + {-0.136958,0.225884}, + {0.839454,0.132045}, + {0.512016,0.539074}, + {1.021031,-0.818081}, + {-2.082684,-0.974775}, + {1.078381,-0.424613}, + {-0.215449,-1.070854}, + {-0.267500,-0.045646}, + {-0.097457,-0.787663}, + {-1.127850,-0.129833}, + {0.261141,0.361222}, + {-0.047321,-0.078316}, + {-0.213066,-0.934763}, + {-0.693972,0.416171}, + {0.734195,0.443239}, + {-0.761988,1.089263}, + {0.254715,0.226029}, + {0.302206,0.304181}, + {-0.588604,-0.955464}, + {-0.724068,0.962523}, + {1.030788,1.094885}, + {-1.634408,0.959742}, + {-0.343578,0.529590}, + {-0.913576,0.062114}, + {-0.029438,0.785613}, + {-0.978121,-1.357258}, + {0.393594,-0.252471}, + {-0.547676,0.105908}, + {0.540394,-0.607045}, + {0.769064,-0.118855}, + {-0.655730,0.653167}, + {0.624079,0.821763}, + {0.289239,-0.019449}, + {0.171656,-0.435785}, + {1.322478,0.011860}, + {-2.093062,1.275452}, + {-0.213217,0.410659}, + {-0.922502,0.014639}, + {1.481723,-0.168258}, + {-1.494468,-0.526159}, + {0.212115,-0.653763}, + {0.247302,0.440803}, + {-0.227827,-0.164564}, + {-0.730551,0.626705}, + {0.955221,-0.640437}, + {0.083621,-0.495753}, + {0.010779,0.268628}, + {-0.517990,0.518614}, + {-0.127293,0.121118}, + {-1.391215,0.845785}, + {0.376562,0.013170}, + {-0.023148,0.651098}, + {-0.545330,1.030364}, + {0.423751,-1.034899}, + {0.064578,0.069449}, + {0.727233,-0.170816}, + {-0.262943,-0.128789}, + {-0.200262,0.310986}, + {0.252975,0.424229}, + {-0.907615,-0.073997}, + {-0.543862,-0.735072}, + {-0.813343,-0.173314}, + {-1.201885,1.528061}, + {0.656099,0.166095}, + {-1.168671,0.209173}, + {0.835893,0.449546}, + {0.058003,-0.443218}, + {-0.940742,0.333260}, + {0.685444,1.349441}, + {-0.070850,0.383320}, + {-0.784000,0.412765}, + {0.972754,0.248983}, + {-0.611710,0.795272}, + {0.740168,-0.382664}, + {-0.595800,1.134890}, + {-0.291688,-0.192899}, + {-0.324666,1.139416}, + {-0.026190,0.014553}, + {-0.797475,0.108035}, + {0.257394,-0.383343}, + {0.936633,-2.076909}, + {-0.164027,0.563305}, + {-0.029333,-1.077666}, + {-0.776752,0.687745}, + {-0.361438,-1.434606}, + {0.159147,0.129632}, + {0.742079,-0.379723}, + {-0.325943,-0.534641}, + {0.421914,0.776426}, + {-1.185213,1.207085}, + {-0.812063,-0.427344}, + {-1.734549,-0.468229}, + {-0.532631,-0.196973}, + {-1.124256,-0.783135}, + {0.002816,-0.609461}, + {0.497856,-0.858671}, + {0.297182,-0.995354}, + {-0.009002,-0.094468}, + {-0.841901,0.478523}, + {-0.357151,-0.724320}, + {0.684269,-0.106986}, + {-0.875832,0.368872}, + {-0.451512,1.155647}, + {0.007695,0.984606}, + {-0.245539,-0.586946}, + {-0.438202,0.003614}, + {0.272786,0.270776}, + {0.645523,0.541562}, + {-0.237560,-0.637564}, + {-0.848358,-0.612336}, + {-0.277362,-0.783485}, + {0.481862,-0.045225}, + {0.276958,0.039033}, + {-0.226987,1.330472}, + {1.139474,0.298630}, + {-0.452719,0.688238}, + {0.575993,-1.073807}, + {-0.877879,-0.474368}, + {1.162578,-0.352652}, + {-0.616572,-0.422459}, + {-0.353035,1.347897}, + {-1.158601,-0.646731}, + {0.451272,0.588822}, + {-0.141924,0.363633}, + {0.527233,-0.473859}, + {-0.363216,-0.892939}, + {-1.340083,-0.111274}, + {-0.603631,-0.270979}, + {-0.188457,0.012816}, + {-0.811343,1.252060}, + {1.188571,-0.831308}, + {-1.041929,-0.096941}, + {0.712698,0.394449}, + {-0.553583,0.946137}, + {-1.219442,-0.169581}, + {0.864311,-0.554224}, + {-0.262955,1.220312}, + {-0.576259,0.887034}, + {1.004077,0.461673}, + {-1.593715,0.659881}, + {0.531584,0.228323}, + {-0.240945,0.486940}, + {0.922614,-0.455564}, + {0.275567,0.685332}, + {-0.420722,1.269918}, + {0.430470,0.686037}, + {0.034631,-0.235561}, + {-0.314039,-0.525507}, + {0.272926,1.024054}, + {-0.597859,-0.371195}, + {0.369351,0.638611}, + {-0.203028,1.337666}, + {0.939544,0.549966}, + {0.478238,-0.275508}, + {-0.155890,0.618782}, + {0.065502,1.306056}, + {-0.144435,-1.053199}, + {0.675192,-1.042800}, + {0.887757,0.799049}, + {1.032078,-0.335687}, + {-0.416585,-0.671976}, + {-0.277219,0.392748}, + {-1.373308,0.145767}, + {-1.898957,0.258620}, + {-1.507777,-0.799117}, + {0.125190,-1.513681}, + {-0.555275,-1.147338}, + {0.109193,0.630449}, + {0.850572,-0.428761}, + {0.762598,-0.418743}, + {-0.658676,0.120374}, + {0.219889,0.679444}, + {0.960891,0.748391}, + {0.870463,0.591815}, + {1.008497,0.258433}, + {-0.397245,0.229091}, + {0.079530,-0.765548}, + {-1.189197,0.391146}, + {1.090130,-0.176457}, + {0.878735,-1.220042}, + {-0.282687,0.045037}, + {0.690295,0.760265}, + {-0.064226,-1.270045}, + {0.451127,0.620894}, + {0.518653,-0.291379}, + {1.427926,0.763723}, + {0.013799,-0.112367}, + {-0.284511,0.556617}, + {0.023375,-1.498134}, + {0.527409,0.837385}, + {-0.337269,0.119037}, + {0.397375,1.457268}, + {-0.915267,1.637006}, + {0.189049,0.517475}, + {0.118637,1.005364}, + {0.396135,-1.604041}, + {-0.089106,-0.609048}, + {-0.028093,0.096681}, + {0.978246,-0.222336}, + {0.078209,0.502843}, + {0.317957,-0.209239}, + {-0.235391,-1.067509}, + {0.672564,-0.630147}, + {0.573721,0.505773}, + {-0.211566,0.007962}, + {0.493715,-1.029766}, + {0.610607,-0.973276}, + {-0.204172,-0.197208}, + {1.323638,-0.298948}, + {-1.036127,-1.456968}, + {-0.650336,-0.262731}, + {-0.324206,-0.556171}, + {0.184158,-0.349058}, + {0.439262,0.058320}, + {-1.534475,0.227140}, + {-0.631174,1.780843}, + {-0.755815,-0.501755}, + {0.146835,-0.731846}, + {0.859454,0.963689}, + {0.800582,-0.146938}, + {1.372001,0.638182}, + {-0.919889,-0.622212}, + {0.681129,-0.602858}, + {0.172753,1.274081}, + {-0.669045,-0.735854}, + {1.072433,-0.430603}, + {-0.945714,0.249387}, + {0.058404,-0.356905}, + {0.280842,1.395081}, + {-1.333727,0.175503}, + {-0.162653,0.997135}, + {1.349928,-0.778412}, + {0.351735,-0.432853}, + {0.130525,-0.679365}, + {-0.255894,0.000290}, + {-0.033975,0.753936}, + {0.880727,0.592943}, + {-0.432137,-1.241763}, + {-0.916417,0.629270}, + {-0.417353,0.281667}, + {1.027431,-0.561347}, + {-0.313624,-0.862803}, + {0.688305,-1.114407}, + {0.407758,0.350545}, + {-0.084867,-0.097319}, + {0.659983,0.568765}, + {-0.226611,0.133226}, + {-0.215283,-0.443496}, + {0.718936,-0.037813}, + {0.933978,-0.233086}, + {-0.516582,0.734210}, + {0.736643,0.706611}, + {0.305234,0.000249}, + {-0.370270,0.590320}, + {0.962118,-0.925841}, + {-1.048981,-0.103269}, + {0.044995,0.871437}, + {0.797065,-0.797195}, + {0.012374,1.464487}, + {-0.744670,-0.902590}, + {-0.975379,0.299666}, + {-0.751756,-0.171825}, + {-0.478057,1.113745}, + {-0.351503,0.127088}, + {0.589924,-0.913712}, + {1.035181,-0.319182}, + {-0.226216,-0.426067}, + {0.740355,0.631193}, + {-0.506299,-2.521827}, + {-0.734618,-0.279302}, + {-0.793006,0.934782}, + {0.400248,0.019342}, + {-0.460130,0.039696}, + {-1.182922,-0.759926}, + {-0.322657,0.433662}, + {1.295318,0.089107}, + {0.776325,-0.202020}, + {-1.354920,-0.019325}, + {-0.070378,-0.628537}, + {-0.313186,-0.122804}, + {0.679820,-0.407435}, + {0.568100,-0.865077}, + {-0.270622,-0.118376}, + {-0.120073,1.163957}, + {-2.521375,-0.093829}, + {0.242298,-0.793270}, + {0.110432,1.286578}, + {0.589488,0.684460}, + {-0.130721,-0.833847}, + {-1.196174,0.719174}, + {1.558364,-0.705261}, + {0.040922,0.325140}, + {-0.591884,0.749348}, + {-0.121397,0.219684}, + {0.378761,-0.899270}, + {-0.292474,-0.083947}, + {-0.868838,-1.003608}, + {0.229984,-1.746968}, + {-0.653827,-0.413638}, + {-0.724029,0.485097}, + {0.014806,1.481808}, + {-0.493384,-0.210216}, + {0.722527,-0.225007}, + {1.054819,1.601291}, + {-0.282008,-0.282742}, + {-0.866851,0.072647}, + {-1.735218,-0.205276}, + {-0.689724,-0.951328}, + {0.216225,0.177342}, + {-0.124588,-0.162394}, + {0.489274,-0.190430}, + {-0.057484,-0.451252}, + {-0.838170,0.008589}, + {-0.012782,1.507933}, + {-0.471353,0.394553}, + {-0.190237,0.685665}, + {0.557875,-0.620214}, + {-0.059726,0.397332}, + {-0.592982,-0.006411}, + {-0.123340,0.161368}, + {-0.854995,0.700566}, + {-0.572703,-0.252267}, + {-0.763440,0.344721}, + {0.021265,0.446768}, + {-0.586946,0.323793}, + {0.180415,0.043743}, + {-0.288882,-0.511805}, + {2.624556,-0.567090}, + {0.551481,0.803221}, + {-0.143453,-0.586976}, + {0.992092,1.533923}, + {-0.318124,-0.550864}, + {1.318704,-0.063433}, + {-0.155347,1.117042}, + {0.058911,-0.944546}, + {0.108052,-0.051107}, + {-1.035368,0.386023}, + {-0.823147,0.171737}, + {0.846301,0.680001}, + {-0.110664,0.468723}, + {-0.083706,0.625575}, + {0.290091,0.858146}, + {-0.662183,-0.590796}, + {-0.288190,-0.353492}, + {-1.159802,-1.337642}, + {-0.306885,-0.750638}, + {0.044691,-1.653807}, + {-0.615050,0.289028}, + {-0.201731,0.465221}, + {1.008004,-0.060762}, + {-0.550498,0.300423}, + {-0.116548,-0.013405}, + {0.549048,1.586230}, + {0.759367,-0.971517}, + {1.323636,1.681829}, + {0.170062,0.089436}, + {-0.211072,0.704819}, + {-0.419963,-0.128266}, + {0.626398,-0.551576}, + {1.543900,0.511508}, + {-0.784514,1.183790}, + {0.502940,1.028658}, + {-1.016714,0.248965}, + {0.112604,0.111350}, + {-0.123006,0.683764}, + {0.021753,-0.247159}, + {0.138703,1.086674}, + {-0.051887,-1.076659}, + {1.737884,0.864115}, + {-0.215718,0.020311}, + {0.666013,-0.799401}, + {-1.108657,0.547216}, + {0.552800,2.316691}, + {-0.103811,0.195943}, + {-0.559387,0.399860}, + {-0.574699,-0.002171}, + {0.494645,0.839499}, + {1.539942,0.061094}, + {-1.185473,0.157370}, + {0.687725,-0.726402}, + {1.062304,0.143174}, + {-0.231306,0.431820}, + {0.181212,0.243572}, + {0.048089,1.016969}, + {1.019749,-0.468151}, + {0.272841,-0.383551}, + {0.606381,-0.216956}, + {-1.061207,-1.080103}, + {-0.174838,0.363043}, + {-0.498895,1.116096}, + {-0.098641,0.561958}, + {0.043930,0.385439}, + {-0.427768,-1.146650}, + {0.923076,-0.396539}, + {0.754689,0.963067}, + {-0.037038,-0.203416}, + {0.019305,-0.562339}, + {-0.797642,-0.371491}, + {0.081456,-0.831708}, + {0.208751,-1.180105}, + {-0.774074,-0.978951}, + {1.266618,0.537957}, + {-0.712267,0.567095}, + {0.145303,-0.817414}, + {1.967789,1.007710}, + {0.193202,0.217408}, + {-0.798454,-0.633302}, + {-0.330441,0.650118}, + {-0.007839,0.797737}, + {-0.990287,0.006108}, + {-0.443475,1.373610}, + {0.356907,-0.324058}, + {-0.456490,0.150888}, + {0.778863,-0.215198}, + {-0.465454,-0.433403}, + {0.906855,0.653127}, + {0.492398,-0.648731}, + {0.945877,-1.419218}, + {-0.177893,-0.646512}, + {1.411359,-0.241056}, + {-0.264133,-1.505842}, + {-0.366946,0.985009}, + {-0.128469,-0.052593}, + {0.167171,-0.446152}, + {0.919920,0.002816}, + {0.119854,-0.960683}, + {1.395234,-1.093261}, + {0.264784,0.684038}, + {0.136742,-0.623673}, + {-1.157844,0.208610}, + {-0.081146,-0.545579}, + {0.129620,0.317296}, + {-0.565284,0.051918}, + {-0.552605,0.036032}, + {0.605695,-0.026673}, + {0.050425,2.453665}, + {0.044827,-1.616143}, + {-0.113293,0.653822}, + {1.093501,2.247677}, + {0.695921,-1.033199}, + {0.000694,-0.086366}, + {0.421101,0.539692}, + {0.051940,-1.072276}, + {0.040107,-0.888686}, + {-0.229449,1.123220}, + {1.198503,-0.862325}, + {0.700102,0.555513}, + {-0.119860,-0.774937}, + {-0.028011,1.437656}, + {1.000033,0.429811}, + {0.381991,-0.471777}, + {-1.061909,0.633338}, + {0.795537,-0.653199}, + {1.595592,-1.118207}, + {-0.084673,-1.361223}, + {-0.624297,0.764246}, + {0.089882,1.013592}, + {-0.533656,0.632749}, + {0.465736,0.775404}, + {-0.888801,-0.059761}, + {0.523573,0.053779}, + {-0.209593,0.885880}, + {0.748105,0.127068}, + {0.599795,-1.139121}, + {-0.077588,0.842374}, + {0.761840,-0.795831}, + {0.709548,0.183950}, + {-0.252544,0.680008}, + {0.570220,0.515018}, + {0.266137,-0.206870}, + {-0.885632,1.679647}, + {1.150557,0.483125}, + {-0.468721,-1.841706}, + {0.271059,0.926911}, + {-0.154149,-0.322614}, + {-0.329320,1.218566}, + {-0.171047,-1.007784}, + {0.223529,-0.505620}, + {0.772175,0.801805}, + {-0.341824,0.518301}, + {0.968368,-1.633597}, + {0.073692,-0.583842}, + {-0.953372,-0.161117}, + {0.551488,0.447077}, + {0.020273,-0.505357}, + {0.365393,-0.032102}, + {0.844367,-0.639689}, + {1.018752,0.751834}, + {1.126097,-0.613405}, + {1.016788,-0.019078}, + {0.623747,0.592169}, + {-1.319641,0.298078}, + {-0.329394,-0.423323}, + {0.364704,-0.653483}, + {0.617694,-0.252054}, + {-0.591705,1.619074}, + {-0.161785,1.838932}, + {0.564582,-0.723667}, + {0.225778,0.243980}, + {-0.037796,0.502040}, + {0.367842,-1.021410}, + {-0.427836,-0.366767}, + {-0.488887,1.324747}, + {0.283351,-0.475819}, + {-0.368885,-0.343402}, + {0.022111,-1.503025}, + {0.608174,0.232807}, + {0.872253,-0.186510}, + {-0.550839,-0.327475}, + {-0.154591,-0.267873}, + {-0.747008,-0.379431}, + {-0.277511,-0.951636}, + {-0.759266,0.574239}, + {1.154286,0.179194}, + {-0.112772,-0.817203}, + {0.200759,0.799191}, + {-0.502025,0.432883}, + {-1.119323,-0.074693}, + {1.254542,0.141465}, + {0.080510,0.266965}, + {1.402806,0.382574}, + {0.817240,-0.115142}, + {0.507720,0.176294}, + {0.210651,-0.143840}, + {-0.689945,1.732906}, + {0.235579,-0.641823}, + {0.851720,-0.271216}, + {-0.214092,-1.383215}, + {1.260678,-0.375676}, + {-0.342547,0.300925}, + {0.157321,-1.216358}, + {-1.291505,0.269752}, + {-0.813264,0.966839}, + {0.385009,-0.966745}, + {0.048812,0.037934}, + {0.157922,0.072546}, + {0.136019,-0.636157}, + {-1.131118,0.701695}, + {0.057882,0.542163}, + {-0.289670,-0.556624}, + {0.296565,0.901636}, + {0.811896,0.152258}, + {0.071886,-0.310387}, + {0.248307,-1.423973}, + {-0.077694,-0.208889}, + {0.351881,-0.374276}, + {-1.108993,0.435304}, + {0.689461,-0.661618}, + {-0.847280,0.417742}, + {-0.693780,-0.030547}, + {0.205481,0.163966}, + {1.152296,0.501315}, + {0.421218,-0.000555}, + {-0.796311,0.281834}, + {-0.269010,1.052164}, + {0.133541,-0.454531}, + {-0.412860,1.370429}, + {0.616688,0.124832}, + {0.702940,-1.203623}, + {0.675882,-0.390202}, + {0.830890,1.250459}, + {0.674844,0.665324}, + {-0.043831,0.707066}, + {-0.886906,-0.060713}, + {0.677298,-0.111700}, + {-0.754756,-0.380721}, + {-0.561574,0.787921}, + {-0.138727,-0.246949}, + {0.399551,0.257836}, + {0.391218,-0.046240}, + {-0.604638,-0.547392}, + {1.211615,0.045085}, + {-2.243039,-0.736534}, + {0.779312,0.843648}, + {0.162298,0.157163}, + {-0.140700,0.766237}, + {-0.144998,0.378899}, + {0.417087,0.656509}, + {-0.663537,0.226287}, + {0.623830,0.333788}, + {2.231783,0.374867}, + {0.734099,0.049999}, + {1.036979,-0.688127}, + {-1.040401,-0.707128}, + {0.381121,-0.100134}, + {1.359817,-0.400703}, + {-0.552157,-1.396689}, + {0.259124,-0.224525}, + {-0.273705,-0.347394}, + {-0.409249,0.216952}, + {-0.216934,-0.899068}, + {-0.235146,0.030945}, + {-0.889038,0.360220}, + {-0.157354,0.100057}, + {-0.036127,-0.499812}, + {-0.348823,0.151622}, + {0.279825,-0.589387}, + {-0.933342,0.643324}, + {0.555767,-0.017369}, + {-0.011276,-0.013992}, + {-0.434804,0.253158}, + {0.675855,-0.224374}, + {-0.805744,0.659219}, + {0.808692,0.008962}, + {0.397507,-1.041463}, + {-0.127428,-0.570829}, + {-0.029020,-0.201817}, + {-1.009712,-0.877845}, + {-1.216129,0.783185}, + {0.328932,-0.747150}, + {-0.854801,-0.178626}, + {-0.785073,-1.023245}, + {0.788804,0.147804}, + {-0.654940,0.835733}, + {1.194529,0.469089}, + {-0.435047,-0.112630}, + {-0.398296,0.298359}, + {0.614442,-0.831401}, + {0.898647,1.252811}, + {-0.651719,0.063096}, + {0.829332,-0.130964}, + {-0.644862,0.485383}, + {0.099189,-1.241679}, + {0.232553,-1.087991}, + {0.827992,0.327188}, + {0.251847,-0.542311}, + {0.114473,0.172203}, + {-0.607207,-0.449144}, + {-0.376521,0.290727}, + {-0.132065,0.363772}, + {0.435356,-0.571154}, + {-0.190653,0.248960}, + {0.651496,-0.923586}, + {0.512997,-0.004873}, + {-0.236174,-0.568753}, + {0.932160,-1.334080}, + {0.155451,0.672475}, + {-0.911918,-0.030052}, + {0.263176,0.406002}, + {0.304970,-0.011967}, + {-0.410390,-0.330155}, + {-0.141643,0.047151}, + {-0.172968,-1.012272}, + {-0.372838,0.560728}, + {-0.855840,0.042006}, + {-0.164063,0.636134}, + {-1.109047,-0.279656}, + {-0.069774,-0.604646}, + {-0.282135,-0.394121}, + {0.176084,0.052311}, + {0.487541,-0.565642}, + {-0.208335,0.518275}, + {-0.149021,-0.363198}, + {-0.249631,-0.090729}, + {-0.249841,-0.596483}, + {0.640211,-0.976106}, + {0.326645,0.866942}, + {1.183765,0.830576}, + {-0.029594,-0.620946}, + {1.115148,-0.337932}, + {1.567311,0.261972}, + {-0.721293,-0.564232}, + {-0.357507,0.803439}, + {-1.016735,-0.027591}, + {-0.426745,1.104032}, + {0.443712,1.244449}, + {1.160755,-0.838377}, + {-0.819387,-0.128786}, + {0.288092,0.008755}, + {-0.515644,0.101036}, + {0.364482,-0.130023}, + {-0.229438,-0.654899}, + {0.906635,-0.125711}, + {-0.159322,-0.304040}, + {-1.211824,0.158356}, + {-0.012123,-0.488427}, + {-0.426069,-0.835684}, + {-0.125217,-1.170805}, + {-0.270562,0.000386}, + {0.623183,-0.945317}, + {0.848419,-0.522606}, + {1.250635,0.444407}, + {0.492130,1.050228}, + {1.080375,-0.338691}, + {-0.764704,-1.279899}, + {0.741656,0.485046}, + {0.956357,-1.023715}, + {-0.247405,-0.820810}, + {-0.149085,-0.107801}, + {-0.570624,1.043465}, + {-0.115018,-0.641550}, + {-0.616512,-0.289516}, + {1.176485,-0.172412}, + {-0.362269,1.717443}, + {-0.817064,-0.370700}, + {-0.465179,0.259246}, + {-0.642608,0.664244}, + {0.747615,0.390002}, + {-1.838046,-0.673345}, + {-0.071150,-0.063051}, + {0.124401,-0.037791}, + {0.721531,-0.349121}, + {0.948579,-0.683095}, + {-0.296344,-1.657454}, + {-0.244777,-0.050854}, + {-0.355675,-0.088336}, + {0.834088,-0.200241}, + {-1.139669,0.315556}, + {-0.080632,-0.198803}, + {-0.187648,0.739006}, + {0.609210,-1.146719}, + {0.133987,0.472373}, + {1.301981,-0.658052}, + {0.148344,0.175711}, + {0.482189,-1.298825}, + {-0.666823,-0.399625}, + {0.067421,-0.725454}, + {-0.052146,-0.168842}, + {0.332959,0.334690}, + {-1.054764,0.239030}, + {-0.165250,-0.447066}, + {-0.428016,1.320568}, + {0.510212,0.318306}, + {0.451920,0.645015}, + {1.606643,0.236357}, + {0.230974,0.123761}, + {-0.049062,0.112286}, + {0.479037,0.015434}, + {-0.287389,0.872496}, + {1.067029,0.499731}, + {-0.126337,0.779721}, + {-0.370434,0.612051}, + {0.075632,0.614917}, + {-0.528660,-0.850174}, + {0.487266,-0.590261}, + {-0.234836,0.263938}, + {-0.065654,2.081570}, + {-0.636267,-0.906258}, + {-0.803871,0.321421}, + {-0.328638,0.333370}, + {-0.516140,0.175497}, + {0.347902,-0.402807}, + {0.411276,0.362019}, + {0.440469,0.412853}, + {1.107078,-0.338276}, + {0.856038,-0.131811}, + {-0.369578,0.324333}, + {0.516267,0.144410}, + {-0.706354,-0.923046}, + {1.199280,-0.679079}, + {-0.206381,0.733361}, + {-1.118980,-0.339299}, + {0.249695,1.301003}, + {-0.001465,1.070052}, + {-0.888923,-0.187516}, + {0.810337,0.313939}, + {0.305196,0.026000}, + {0.494726,1.024847}, + {1.476541,-0.802107}, + {-0.526713,0.266385}, + {0.384008,-0.961735}, + {1.282973,-0.698481}, + {0.988486,0.038408}, + {-0.219075,-1.024923}, + {-0.466889,0.255891}, + {0.003917,0.530058}, + {-0.767964,-0.385498}, + {-0.377691,0.462312}, + {0.026027,-1.093603}, + {-0.458202,0.027801}, + {0.806314,-0.293232}, + {0.050386,0.705391}, + {0.738212,0.099567}, + {1.685787,0.176921}, + {-0.892685,-0.318613}, + {1.109295,-0.356620}, + {-0.037037,-0.399946}, + {1.099257,0.066189}, + {-0.138197,0.931202}, + {0.352476,0.541835}, + {-0.234773,1.811281}, + {0.220325,1.006277}, + {1.183808,0.818720}, + {0.412037,-0.266925}, + {-0.046189,0.101378}, + {-0.525259,0.184060}, + {0.223098,-0.866883}, + {0.759485,1.089619}, + {-0.645569,0.593185}, + {-0.363564,-0.111653}, + {-0.760729,0.424275}, + {-0.173270,0.825271}, + {-0.893186,0.404038}, + {0.757566,0.583220}, + {-0.256129,-0.077900}, + {0.284986,0.630869}, + {0.664454,0.481663}, + {0.119009,0.113249}, + {-0.205947,1.010834}, + {0.932543,-0.060003}, + {0.274266,-0.406043}, + {-0.247609,0.396317}, + {-0.442815,0.120444}, + {-1.305720,0.295270}, + {0.936322,0.968362}, + {-0.571598,-0.407698}, + {-0.392774,-0.484139}, + {0.822763,0.339368}, + {-0.517289,0.041135}, + {0.147543,-0.792703}, + {-1.670020,0.099579}, + {-0.299869,-0.266431}, + {0.605640,-0.814238}, + {1.222721,1.050723}, + {-0.467391,-0.124769}, + {-0.575869,0.609053}, + {1.713472,0.570511}, + {0.042960,-1.006402}, + {1.239476,-0.082176}, + {0.378559,-0.955065}, + {-0.165652,0.451352}, + {0.429384,-0.053004}, + {-0.244308,1.056232}, + {0.830270,-0.183125}, + {-0.600558,-1.360258}, + {0.171056,-0.003685}, + {0.839484,0.430587}, + {-0.553197,-1.112661}, + {0.472149,1.241828}, + {0.428034,0.237235}, + {0.611704,-0.377012}, + {-0.231170,-0.306880}, + {0.087621,0.844398}, + {1.390622,0.674419}, + {0.387463,-0.353450}, + {-0.150300,0.730488}, + {-1.062157,0.504289}, + {-0.531514,0.020223}, + {0.128882,-0.065820}, + {0.331307,0.862964}, + {-0.725060,0.793610}, + {0.668800,-2.340218}, + {0.306622,0.510434}, + {-0.240424,0.483310}, + {0.755874,-0.307130}, + {0.307453,-0.534037}, + {-0.260084,-0.957092}, + {0.030535,-0.356006}, + {0.063740,0.338408}, + {0.137347,0.408912}, + {0.071998,-0.512812}, + {-0.816655,0.667604}, + {0.206418,0.459734}, + {-0.199134,-1.021477}, + {-0.027864,-0.229509}, + {0.029766,0.406308}, + {0.263539,0.950641}, + {1.107474,0.510104}, + {0.701356,-0.092664}, + {-0.332519,0.882492}, + {-0.259295,0.542719}, + {0.803323,-0.516191}, + {-0.810940,0.828519}, + {-0.333099,0.493898}, + {0.803446,0.041317}, + {-0.752852,-0.397360}, + {-0.508714,-0.341192}, + {-0.998590,0.444147}, + {0.540311,0.590371}, + {0.352505,-0.284619}, + {-0.330681,0.699920}, + {-0.428966,0.610587}, + {-1.333091,-0.297171}, + {0.345433,-0.821063}, + {0.993852,0.062134}, + {0.729285,0.480559}, + {-0.038753,-0.071297}, + {-0.388438,-0.398816}, + {-0.746620,-0.076653}, + {0.345309,0.817757}, + {0.769405,-0.063687}, + {0.092044,-0.442898}, + {1.029397,-0.869702}, + {0.832081,0.437601}, + {-0.374608,-0.269611}, + {-0.728890,-1.033769}, + {-0.207543,1.059676}, + {0.140337,0.321861}, + {-0.268235,0.376937}, + {0.554032,-1.522496}, + {0.302898,1.115891}, + {-0.566679,1.087246}, + {0.209126,-0.299056}, + {0.183449,-0.446472}, + {0.769257,1.156924}, + {-0.426186,-0.534314}, + {1.357257,-0.027091}, + {0.125598,-0.148277}, + {0.361150,-0.612232}, + {0.733645,-0.215266}, + {-0.599140,-0.087500}, + {0.364386,-0.379064}, + {0.106744,0.427322}, + {0.244401,-0.090466}, + {-0.086618,0.290300}, + {-0.769588,1.227312}, + {0.410929,0.406906}, + {0.033896,-0.301329}, + {1.368098,-1.264228}, + {0.265425,0.246094}, + {-1.089731,0.655995}, + {-0.959035,-0.323536}, + {-0.177452,0.299655}, + {-1.085650,0.751856}, + {-0.934940,-0.467314}, + {0.157832,-1.370121}, + {-0.756801,1.174560}, + {-0.238213,1.484015}, + {0.103337,0.562886}, + {-0.883352,-0.457006}, + {-0.619941,-0.072602}, + {0.827989,-0.576543}, + {-0.274512,0.688768}, + {0.192892,0.046977}, + {0.494114,-1.198486}, + {0.210812,-1.483980}, + {0.068552,-0.412908}, + {0.768963,0.512225}, + {0.887015,-0.416106}, + {0.069268,-0.161404}, + {1.158016,0.428234}, + {1.414889,0.177849}, + {-0.043316,-0.734135}, + {1.519925,-0.641341}, + {-0.954973,-0.096053}, + {-0.627640,0.832967}, + {-0.128482,0.227255}, + {0.096457,-0.172163}, + {-1.188885,0.383040}, + {-0.636699,0.641324}, + {0.760031,-0.811875}, + {-0.020737,0.443516}, + {0.457384,-0.365880}, + {-0.876749,1.149372}, + {0.295054,0.679878}, + {0.023256,0.103668}, + {-0.327805,-0.125698}, + {0.020041,0.216254}, + {-0.306899,-0.187019}, + {1.085265,0.158704}, + {-0.145690,-0.394788}, + {0.338803,0.342693}, + {-0.515034,-1.539775}, + {-0.389804,1.336893}, + {-0.094832,0.858926}, + {-0.697567,-0.301372}, + {0.304157,-0.457016}, + {0.445920,0.840317}, + {0.367189,-0.400123}, + {-0.537674,0.319642}, + {0.040484,0.213835}, + {0.486631,0.235979}, + {-0.927168,0.494577}, + {0.095336,0.538537}, + {-0.685255,-0.341503}, + {-0.414110,0.730628}, + {-0.249497,-0.384687}, + {-0.381906,0.335050}, + {-0.296216,0.192564}, + {0.259756,0.167208}, + {-0.631983,0.213763}, + {-0.107557,0.031968}, + {0.086282,-0.608626}, + {-0.520260,-0.616549}, + {-0.380245,1.375046}, + {-1.355688,-0.262657}, + {-1.404467,0.037742}, + {0.045811,0.570009}, + {-0.416171,-0.129814}, + {0.370554,0.880282}, + {0.719642,1.595834}, + {0.056979,1.643866}, + {0.509780,-0.269105}, + {-0.035170,-0.008985}, + {-0.380304,0.435292}, + {-0.061932,0.766256}, + {0.417917,0.120335}, + {-1.059375,0.118735}, + {0.561525,-0.136216}, + {1.044780,0.316513}, + {0.278741,0.285996}, + {0.445276,1.914646}, + {1.135214,-0.056030}, + {1.552693,-0.468664}, + {0.107992,0.196631}, + {0.010882,-0.782850}, + {0.411889,0.243120}, + {1.041102,0.506174}, + {-0.436580,1.011682}, + {0.234764,-1.107368}, + {-0.369947,-0.283590}, + {0.712020,-0.042864}, + {0.256171,-0.289042}, + {-0.664674,-0.389437}, + {0.501317,-0.199763}, + {-0.233973,0.776302}, + {-0.551974,-0.311394}, + {-1.213793,-0.063365}, + {-0.942542,0.886742}, + {0.120656,-0.927157}, + {0.848886,-0.191111}, + {-0.085995,0.712069}, + {-0.121119,0.712586}, + {0.795790,0.039031}, + {1.130273,-1.091505}, + {-1.009660,-0.084673}, + {-1.391243,1.439570}, + {-0.790172,1.190427}, + {-1.055203,1.031347}, + {0.351972,-0.261797}, + {0.309700,-0.121583}, + {-1.395336,-0.368211}, + {-0.242807,0.043287}, + {-0.091725,1.525055}, + {0.222701,-0.585086}, + {-0.197990,1.109946}, + {0.683433,0.234584}, + {0.778488,1.031004}, + {-1.728844,-0.828213}, + {-0.305833,0.235194}, + {0.839395,1.013991}, + {-0.732283,-1.178569}, + {0.751353,0.525831}, + {-0.608151,-0.209578}, + {-0.760489,0.909863}, + {-0.941207,0.596632}, + {0.113422,0.124614}, + {-0.677100,-0.845145}, + {-2.116992,-1.043945}, + {0.443954,1.264070}, + {-0.844221,-0.548022}, + {0.073296,0.266820}, + {0.606826,-0.308290}, + {-0.142944,0.057349}, + {0.072881,0.302992}, + {-0.294356,-1.221644}, + {0.671911,0.295323}, + {-0.409702,-0.847209}, + {0.266690,-0.020814}, + {1.417976,0.528433}, + {0.294250,-1.224903}, + {-0.438673,-0.509542}, + {0.044148,0.398124}, + {-0.812297,-0.912451}, + {-0.879513,-0.624383}, + {0.758342,0.704452}, + {0.563399,-1.164427}, + {0.809358,-0.309169}, + {-0.076009,-1.386514}, + {-0.580469,0.458582}, + {0.513892,0.214365}, + {-0.640728,-0.171872}, + {-0.521270,-0.133816}, + {-0.843834,0.906054}, + {-1.123661,0.041336}, + {0.082797,0.087755}, + {0.904721,1.160552}, + {-0.238756,0.127971}, + {-1.306804,0.307469}, + {-0.097808,0.500074}, + {-0.007891,-0.206617}, + {-1.058789,-1.223922}, + {-0.086817,1.141660}, + {-0.672100,0.422630}, + {1.107477,0.445402}, + {-1.048691,0.148970}, + {0.860657,-0.307406}, + {-0.075900,-0.772589}, + {0.085372,-0.654328}, + {-0.402544,0.348887}, + {0.836413,-0.212447}, + {0.969845,-0.432787}, + {1.678800,-0.719544}, + {0.122685,0.736764}, + {-0.610210,-0.231955}, + {-0.602630,0.861072}, + {1.689118,-0.524512}, + {-0.570388,-0.710299}, + {0.359182,-0.302528}, + {-0.584968,0.029896}, + {0.376150,-0.101358}, + {0.190034,-0.895052}, + {-0.083246,0.352043}, + {0.488237,-0.109218}, + {0.864959,-0.134808}, + {-0.489859,0.046721}, + {-0.285949,-0.556426}, + {-0.090628,-0.144285}, + {-0.407313,0.094491}, + {-0.754715,0.269388}, + {-0.110048,0.336987}, + {-1.504402,0.827809}, + {-1.144984,0.736338}, + {-0.615585,-0.119038}, + {-1.320089,0.799899}, + {0.146051,-1.613330}, + {-0.203844,1.002752}, + {1.005593,-1.051012}, + {0.590068,0.881226}, + {1.034314,0.478533}, + {-0.807146,0.527922}, + {-1.431626,1.052176}, + {0.254060,-0.588784}, + {-0.552606,0.801991}, + {0.571316,-0.099644}, + {1.906518,0.779457}, + {0.661004,0.688072}, + {-0.848444,-0.767891}, + {-0.446525,1.557097}, + {0.342626,0.070643}, + {1.499481,-0.562495}, + {0.474748,-0.065518}, + {-1.305470,0.236428}, + {-0.996922,0.424136}, + {0.109899,0.116446}, + {-1.376289,-1.178174}, + {1.094583,0.176159}, + {-0.660629,0.735661}, + {0.324773,-0.650471}, + {-0.050363,0.168514}, + {1.411432,0.431589}, + {-0.841104,1.189949}, + {-0.090368,0.422103}, + {-0.138836,-0.227462}, + {0.251194,0.456981}, + {-0.456550,-1.052269}, + {-0.585470,-0.733649}, + {0.718189,0.069608}, + {-0.215514,0.144581}, + {-0.295208,-0.293870}, + {0.064279,1.659733}, + {-0.639890,0.107245}, + {0.671313,-0.308464}, + {0.171154,0.201673}, + {0.530860,-0.395579}, + {0.405182,0.111475}, + {-1.105560,0.477897}, + {-0.469701,-0.814646}, + {-0.310904,-0.140531}, + {0.906292,0.445761}, + {0.641656,-0.711619}, + {1.811121,-0.499532}, + {0.544038,0.258314}, + {0.240229,0.023662}, + {-0.161251,-0.927410}, + {0.526134,0.501783}, + {-0.633589,-0.525689}, + {-0.969783,1.421790}, + {0.164651,-1.234975}, + {-0.945772,0.158957}, + {0.120218,-0.221355}, + {0.234672,-0.016298}, + {-0.397618,-0.661839}, + {1.072883,-0.141947}, + {-1.348040,0.586734}, + {-0.872801,0.434857}, + {-1.430760,0.165192}, + {-0.636803,0.781150}, + {-0.071279,0.396819}, + {-0.298115,0.418331}, + {0.831866,-0.535220}, + {0.958718,0.633147}, + {1.412960,-0.748229}, + {-0.178002,-0.206609}, + {-0.024151,0.915775}, + {1.393923,0.405981}, + {-0.206648,1.302225}, + {0.259960,0.096155}, + {0.842216,0.222933}, + {-0.375179,0.699708}, + {-1.103264,-0.776247}, + {0.193353,-1.171155}, + {0.205492,0.076179}, + {-0.072841,-1.186499}, + {-0.401707,1.760304}, + {-0.205922,0.764063}, + {0.028046,0.211591}, + {0.009746,0.166249}, + {-0.523126,0.458907}, + {0.775557,-0.863099}, + {0.597490,0.287191}, + {1.398946,-0.443293}, + {-0.610123,-1.801501}, + {-0.659803,0.440813}, + {-0.254009,0.206463}, + {0.023678,-1.708605}, + {1.336293,-1.666408}, + {-0.624224,-0.008318}, + {-0.391454,-0.672562}, + {0.005607,0.074204}, + {-0.563962,0.743411}, + {-0.451022,-0.173040}, + {-0.382636,0.398129}, + {-0.036862,-0.079446}, + {-0.008467,-2.296086}, + {0.023278,1.499503}, + {-0.064032,-0.525729}, + {1.457191,-0.108098}, + {0.321643,0.192680}, + {0.121531,0.798915}, + {0.925207,0.317706}, + {1.826658,0.097183}, + {-1.022560,0.131480}, + {-0.318490,1.086323}, + {-1.671511,-0.990183}, + {-0.087723,1.093251}, + {-0.866849,0.094690}, + {0.559302,-0.868112}, + {-0.607928,-1.491484}, + {-0.369056,0.883585}, + {-0.373229,-0.023122}, + {-0.971052,0.792590}, + {0.851785,-0.009613}, + {-0.460853,0.096153}, + {-0.755498,0.166030}, + {-0.598639,-0.848533}, + {0.291127,-0.247983}, + {-0.829961,-1.371573}, + {-0.887194,-0.038222}, + {1.016759,0.265340}, + {-1.203644,-0.226689}, + {1.077377,0.055066}, + {-0.711420,-0.799640}, + {-0.952350,1.757540}, + {-0.699760,-0.395833}, + {0.196095,-0.452552}, + {0.858758,0.082961}, + {-0.102536,-0.000287}, + {0.343266,-0.165811}, + {-0.728940,0.271092}, + {-0.365214,0.684535}, + {0.216959,0.140539}, + {1.180350,-0.419423}, + {1.324288,-0.085228}, + {0.147214,-0.477679}, + {-0.340726,-0.495787}, + {-1.273332,-1.550655}, + {0.922246,-0.111028}, + {0.801098,0.605313}, + {0.636192,1.656684}, + {-0.459339,0.881863}, + {1.781037,0.234321}, + {0.109470,0.133394}, + {-0.004980,-0.810822}, + {0.908525,-0.163045}, + {-0.974477,0.323659}, + {-0.048603,-0.036304}, + {0.325440,-0.342764}, + {-0.337570,-1.092254}, + {0.903449,-0.284129}, + {-0.513390,0.181617}, + {-0.906126,0.669673}, + {-0.047735,-0.670418}, + {0.017003,0.589952}, + {0.028141,0.768896}, + {-0.578796,0.026764}, + {0.153556,-1.036369}, + {1.736299,0.027607}, + {0.207225,-0.621084}, + {0.705813,0.683555}, + {0.613738,-0.279927}, + {0.893509,-0.452908}, + {0.636020,-0.005940}, + {-0.658270,-0.311733}, + {-0.134504,0.070080}, + {1.042131,0.291936}, + {-1.287365,0.847615}, + {-0.003671,0.744938}, + {1.467651,0.342594}, + {0.428411,0.563561}, + {-0.684351,0.323237}, + {-1.151725,-1.138706}, + {-0.979643,-0.060294}, + {-0.950965,1.226894}, + {0.275188,1.399455}, + {1.059926,-0.504133}, + {1.403033,-0.687512}, + {0.451808,-0.267527}, + {0.287162,0.469132}, + {0.667303,-0.852516}, + {-0.817966,0.656727}, + {-0.610009,-1.209200}, + {-0.303650,-0.565971}, + {0.794594,-0.236306}, + {0.431590,-0.908313}, + {-0.486556,-0.148481}, + {0.047972,-0.563498}, + {0.402585,-0.280605}, + {-0.378654,1.233252}, + {0.353901,-0.875133}, + {0.422729,0.132703}, + {0.856809,1.362334}, + {-0.307263,-1.011948}, + {-0.301736,0.329660}, + {-1.085452,0.606158}, + {0.652982,-0.949242}, + {0.162631,-0.537617}, + {-0.965026,-0.836121}, + {-0.224588,-0.548422}, + {-0.437774,-0.279190}, + {0.115997,1.282330}, + {-0.897054,-0.047287}, + {-0.798308,0.372153}, + {0.665938,-0.055502}, + {-0.287413,-0.908496}, + {0.678644,1.314557}, + {-1.449310,1.522950}, + {0.133398,-0.047658}, + {1.224299,-0.149895}, + {0.441690,-0.259865}, + {0.126046,0.235240}, + {-0.966749,-0.417786}, + {-0.246070,0.437277}, + {-0.513593,0.459173}, + {1.263919,0.212954}, + {-0.627105,0.099150}, + {-0.594187,1.118584}, + {0.080869,0.148184}, + {0.706184,0.093108}, + {-0.250103,0.904912}, + {-0.085195,0.370800}, + {-0.081942,1.186957}, + {-0.296313,0.398278}, + {0.107458,-0.270042}, + {-1.468816,0.286041}, + {-0.248786,-0.194616}, + {-0.839973,0.355437}, + {-0.683425,-0.178796}, + {-0.338075,-0.537129}, + {-0.036752,-0.461836}, + {-1.024372,-0.805341}, + {0.013059,0.294161}, + {0.921884,0.535430}, + {-1.007252,1.557665}, + {0.542827,-0.917693}, + {0.309396,0.368338}, + {1.457432,-0.177952}, + {0.233876,-1.087922}, + {-0.287049,-0.480668}, + {-2.620387,0.600910}, + {1.326669,-0.917157}, + {0.401335,0.923110}, + {0.162796,1.157234}, + {0.041788,-0.014345}, + {0.072941,-0.425285}, + {-0.560475,0.764890}, + {0.016479,0.416079}, + {0.097405,0.248996}, + {0.019340,-0.636057}, + {-0.744067,0.747826}, + {0.245503,0.206129}, + {-0.143130,-0.092267}, + {-0.030139,-0.746082}, + {-0.340620,-0.172249}, + {0.574330,0.097636}, + {0.705237,1.038887}, + {0.036829,-1.428994}, + {-0.385480,1.221082}, + {0.367570,-0.573062}, + {0.850865,-0.205763}, + {-1.330905,0.354961}, + {-1.307074,-0.343509}, + {-0.957751,-0.442580}, + {-0.409731,0.243503}, + {0.567889,-0.604233}, + {0.388103,0.085991}, + {0.040627,-0.011142}, + {0.077060,2.004945}, + {-0.833086,-0.049453}, + {-0.843774,-0.478384}, + {0.372355,-0.792844}, + {-0.234287,0.672964}, + {0.107062,-0.502565}, + {-1.135028,0.280502}, + {0.638347,0.034212}, + {-0.199093,-0.238458}, + {0.782282,1.017529}, + {1.389149,0.234737}, + {-0.823454,-0.341639}, + {0.651162,0.121302}, + {0.653624,0.783446}, + {0.352699,-0.207281}, + {1.238071,-0.754767}, + {-0.238806,0.128663}, + {0.262681,0.361327}, + {0.509025,-0.603024}, + {0.981913,-0.189391}, + {-0.706196,-0.289371}, + {1.145942,0.153677}, + {-0.907823,-1.129337}, + {0.188763,0.623059}, + {-0.207448,0.309242}, + {-1.436932,-0.449519}, + {0.263175,0.540244}, + {-0.483092,-0.058570}, + {0.397371,0.753641}, + {0.644110,0.798701}, + {-0.237872,-0.334731}, + {0.600366,-0.897091}, + {0.710538,-0.133366}, + {-1.516116,0.488503}, + {-0.939188,0.418730}, + {-0.827630,-1.305309}, + {0.991499,-0.948166}, + {-0.499176,-0.031343}, + {0.451127,0.527453}, + {-0.546957,-0.430328}, + {0.946791,-0.178838}, + {1.094307,-0.154938}, + {0.609540,-0.054620}, + {0.425711,0.862792}, + {1.052342,-0.544269}, + {0.017746,0.359976}, + {0.075115,-0.401081}, + {0.374648,1.155752}, + {-0.461745,0.439978}, + {0.047619,-0.886710}, + {-0.099683,0.583548}, + {-0.334765,0.050996}, + {-0.478206,-1.264766}, + {0.516489,0.865504}, + {0.320340,-0.267298}, + {-1.324292,0.440493}, + {-0.710460,-0.206828}, + {-0.884704,0.660258}, + {-0.262272,0.394818}, + {-1.601370,0.444466}, + {-0.040487,1.753595}, + {0.449335,0.513686}, + {-0.558298,0.133991}, + {-1.303113,-0.149324}, + {-0.640885,0.046974}, + {-0.069325,-1.365680}, + {0.608970,0.076633}, + {-0.606595,1.106964}, + {-1.357901,-0.599083}, + {0.171158,-0.825277}, + {-0.169345,1.197084}, + {0.952399,-0.276599}, + {-1.216459,-1.814032}, + {0.336292,-0.361441}, + {-0.391223,0.027209}, + {-0.888571,1.002162}, + {0.433612,0.093511}, + {-0.367321,1.307070}, + {0.857512,-0.309022}, + {0.552752,-0.380307}, + {-0.133756,-0.251153}, + {-0.076031,0.670133}, + {0.150394,0.146506}, + {-0.499016,0.809971}, + {-0.790913,0.740662}, + {-1.123231,-1.005292}, + {0.580124,0.208377}, + {-0.466913,0.115610}, + {1.579526,0.786724}, + {0.463652,0.545059}, + {0.363065,-0.468610}, + {0.052198,0.530309}, + {-0.533674,1.126832}, + {0.055098,1.460855}, + {0.446183,-0.620585}, + {0.061081,-0.558367}, + {0.602677,1.026030}, + {-0.214633,0.288994}, + {-0.885402,-0.515751}, + {0.666543,0.166763}, + {-0.582033,-0.122415}, + {0.363257,-0.093152}, + {0.197198,0.114842}, + {0.406922,1.065118}, + {-0.242795,0.181694}, + {1.181767,0.889092}, + {0.397062,-0.428570}, + {-1.448884,-0.474985}, + {-0.309184,-0.467696}, + {0.137783,2.027669}, + {0.474842,-0.884960}, + {-1.661712,0.148843}, + {-0.069285,-0.320696}, + {-0.170034,1.251510}, + {-0.222496,-0.937833}, + {-0.311250,-0.485117}, + {-0.383917,-0.251372}, + {-0.320437,-0.642387}, + {0.206323,-0.019793}, + {-0.278823,-0.242762}, + {0.680746,-0.243103}, + {-0.567863,-0.748655}, + {-0.323796,-0.790379}, + {0.524243,-1.175681}, + {-0.397445,-0.523772}, + {-0.474692,-0.477136}, + {0.189023,0.966859}, + {0.386555,0.481977}, + {-0.140878,-0.911496}, + {0.406182,-0.015365}, + {0.102477,-0.746348}, + {0.090930,-0.614517}, + {-0.086082,-0.376112}, + {0.370291,1.207642}, + {1.139898,0.217497}, + {-0.610672,0.245983}, + {-0.174618,0.833632}, + {-0.831968,0.195580}, + {-0.757329,-0.178189}, + {-0.452875,0.648865}, + {-0.050510,-0.011244}, + {0.607291,0.053154}, + {-0.511124,0.651127}, + {1.482337,-0.900918}, + {-0.703173,0.311134}, + {-0.814727,0.000269}, + {-0.500544,-0.108025}, + {-0.986775,-1.061037}, + {0.121914,-0.452219}, + {-0.442473,1.026816}, + {0.763792,1.515099}, + {0.623316,0.417977}, + {-0.212855,0.306216}, + {-0.561318,-0.795493}, + {0.576698,0.693102}, + {0.061154,1.127743}, + {-0.887248,-0.434093}, + {0.400682,-0.310835}, + {0.432078,0.437754}, + {-1.820646,-0.665382}, + {-0.545136,-0.481289}, + {0.400912,0.700684}, + {0.137771,0.590814}, + {0.811931,1.048663}, + {-0.815412,-0.744414}, + {-0.182987,0.208578}, + {-0.481622,-0.883622}, + {-1.174057,0.017304}, + {0.762922,0.651641}, + {-0.225956,0.405115}, + {0.170487,0.754648}, + {-0.324751,-0.699111}, + {0.508982,0.579276}, + {-0.217381,0.280138}, + {-0.164204,0.071186}, + {1.046480,-0.151789}, + {-0.407525,0.236215}, + {0.043528,0.503335}, + {-0.422499,0.544007}, + {0.737522,-1.360706}, + {1.348720,0.519788}, + {-0.879691,0.405074}, + {-0.357675,0.687248}, + {-0.860730,-0.689677}, + {-1.748928,-1.078704}, + {-0.195426,-1.049862}, + {-0.035495,-0.350232}, + {1.033713,-0.030587}, + {0.800092,-0.110899}, + {-0.305951,0.274492}, + {-0.832381,-0.825501}, + {1.297737,0.530891}, + {-0.024356,0.967573}, + {-0.449962,1.296328}, + {0.341683,-0.869522}, + {-1.470761,0.197663}, + {-0.936318,-1.271953}, + {0.048144,-0.615236}, + {0.378908,0.844420}, + {0.461083,-0.366872}, + {0.047960,0.407828}, + {-0.840079,-1.095449}, + {-0.027915,1.084483}, + {0.674601,0.522046}, + {1.931610,0.765981}, + {-0.125784,-0.336877}, + {0.019115,-1.481554}, + {0.820840,-0.447176}, + {0.707047,0.929830}, + {0.958282,-0.396113}, + {-0.580240,0.094636}, + {-0.174754,-1.196160}, + {-0.860568,-0.091731}, + {0.523920,-0.030573}, + {0.274479,-0.049813}, + {0.153459,0.249274}, + {0.533358,0.444977}, + {-1.241255,0.245974}, + {-1.012174,-0.027701}, + {-0.395522,-0.193917}, + {-0.972526,0.180350}, + {0.430804,-0.833766}, + {-1.011518,0.292716}, + {0.207684,-0.205800}, + {0.044858,0.152791}, + {0.448157,-0.030646}, + {-0.499634,-0.262260}, + {-0.143806,-1.010803}, + {0.886031,-0.336787}, + {-0.362530,-1.768263}, + {-0.242831,-0.154468}, + {0.734717,0.111474}, + {0.072613,0.508828}, + {-1.899793,0.301018}, + {0.090072,0.247977}, + {1.285664,0.732956}, + {-0.135188,0.142834}, + {1.273538,-0.920904}, + {0.221604,0.753942}, + {0.117900,1.060812}, + {-0.232774,-0.083558}, + {-0.425926,0.686408}, + {-0.340529,-0.169042}, + {-1.070367,-0.239810}, + {0.173529,-0.065984}, + {-0.933640,0.004310}, + {-0.566267,1.379593}, + {0.734686,-0.766672}, + {-0.413294,0.709294}, + {0.595004,-1.135705}, + {0.718267,-0.281773}, + {0.106468,-0.863281}, + {-1.145502,0.206171}, + {0.887536,-0.242405}, + {-0.075956,0.156573}, + {-0.567216,-0.288216}, + {0.664645,-0.362856}, + {0.547459,-1.799647}, + {-0.241719,0.821927}, + {-0.034155,0.250263}, + {-0.046388,-0.235086}, + {0.419359,0.310763}, + {-0.215888,-1.367215}, + {0.034387,1.044299}, + {-0.358005,0.645426}, + {0.326152,0.748784}, + {0.202163,-1.123275}, + {0.690767,-0.848466}, + {-0.125006,-0.255902}, + {0.162892,-0.345699}, + {-0.955042,0.294080}, + {0.083320,1.880625}, + {-1.198282,0.804137}, + {0.587054,-0.958859}, + {-1.601116,-0.725511}, + {1.139292,-0.045379}, + {0.203917,0.685789}, + {-0.493037,0.458789}, + {-0.031010,-0.106568}, + {-0.429805,1.119367}, + {-0.528015,0.735593}, + {-0.134197,-1.255463}, + {-0.448291,-0.262008}, + {-0.050223,0.690944}, + {-0.326287,0.961302}, + {0.124462,-0.571389}, + {-1.086006,0.724509}, + {0.209547,1.056945}, + {-1.293691,0.471514}, + {-0.003896,0.567797}, + {0.183588,-0.440099}, + {0.728438,-0.316034}, + {0.626752,-0.654537}, + {-0.323843,-0.581490}, + {-0.584120,1.235448}, + {-0.724753,-0.357822}, + {0.651802,-0.255045}, + {1.066699,0.145706}, + {-0.327084,-0.703887}, + {0.726433,0.902326}, + {0.615929,-0.468777}, + {0.215638,0.025393}, + {0.133688,0.312972}, + {1.480107,0.472599}, + {-0.422097,-0.160696}, + {-0.044013,-0.556906}, + {0.614888,-0.377907}, + {-0.064303,-0.363883}, + {0.417722,0.242693}, + {-0.610622,-0.349784}, + {0.274353,1.229638}, + {1.376876,-0.661918}, + {0.065799,0.192942}, + {-0.985618,1.632529}, + {0.007131,-0.681075}, + {0.034166,-0.337426}, + {-0.725304,-0.279474}, + {-0.730621,-0.266983}, + {-0.843057,0.478930}, + {0.474710,-0.454256}, + {-0.507851,-1.321088}, + {-0.017476,-0.794130}, + {-1.038323,0.066833}, + {0.385382,1.225797}, + {0.021934,-0.410591}, + {-1.010484,-0.669754}, + {0.429793,1.532827}, + {0.636827,-0.288977}, + {-0.534265,-0.646029}, + {-0.844287,-0.564450}, + {-0.396490,0.315667}, + {-1.273186,0.218433}, + {0.417662,-0.018864}, + {0.462506,-1.253567}, + {-0.182622,-0.273477}, + {-1.579637,0.949574}, + {0.433213,-0.037784}, + {-0.846671,0.082560}, + {0.662308,0.650516}, + {0.045595,-0.496667}, + {0.119091,0.014749}, + {0.608458,0.837623}, + {-0.687084,-0.195381}, + {-0.018589,0.789815}, + {-0.298420,0.261702}, + {-0.040271,-0.194730}, + {0.620631,0.613639}, + {-0.937617,-1.049478}, + {-1.053561,-0.076996}, + {-0.146382,1.050599}, + {-0.020837,0.355688}, + {0.201458,0.287587}, + {2.218790,0.476933}, + {-0.104763,0.355760}, + {-0.479467,1.109721}, + {-0.893756,-0.550251}, + {0.956522,-0.432295}, + {-0.194464,0.764093}, + {-0.704136,0.235401}, + {-0.654628,-0.706623}, + {-0.493649,-1.139754}, + {1.131061,-0.875211}, + {0.422646,0.452794}, + {1.210811,0.230644}, + {0.529746,1.430776}, + {0.460853,-0.100968}, + {0.145607,0.417836}, + {-0.183425,0.671501}, + {0.712047,0.585763}, + {0.667523,0.427398}, + {0.083714,0.241186}, + {0.603047,-0.437378}, + {0.671836,-0.108031}, + {0.147556,1.611462}, + {-0.474514,0.338308}, + {0.669331,-0.582147}, + {-0.518075,-1.063090}, + {-0.404972,1.037375}, + {0.392642,0.132706}, + {0.091281,-0.677244}, + {-0.101493,0.595298}, + {-0.273278,-0.149243}, + {-0.056904,0.119955}, + {-1.155884,-1.080464}, + {-0.068053,-0.148710}, + {0.578176,0.409176}, + {0.840193,0.143279}, + {-0.240609,-0.502595}, + {-1.242000,-0.441204}, + {1.109439,0.606569}, + {0.055563,-0.064248}, + {-0.149710,0.672466}, + {0.726856,-0.310854}, + {-0.653160,-0.652705}, + {0.278598,0.458304}, + {1.079266,0.059011}, + {-1.419938,0.322182}, + {0.945599,0.108086}, + {-0.751556,0.294139}, + {0.427620,0.212390}, + {-0.069527,0.242822}, + {0.278856,-0.156601}, + {-0.065200,0.118212}, + {-0.195535,-0.019769}, + {-0.420603,-0.282551}, + {-0.907453,0.158124}, + {0.113203,-0.260452}, + {0.108842,-0.457941}, + {0.325193,0.172876}, + {0.291742,-1.615476}, + {1.111341,0.223062}, + {0.355686,0.290422}, + {0.634955,-0.443257}, + {-0.288282,-0.326955}, + {0.392507,-0.445702}, + {-0.079780,-0.200318}, + {0.358629,0.085606}, + {-1.037372,0.489174}, + {-0.650397,-0.686827}, + {1.025516,-1.009867}, + {0.704492,-0.014842}, + {-1.937672,0.038744}, + {1.043168,-0.182518}, + {0.767195,1.172210}, + {-0.973759,0.495782}, + {0.727765,-0.454134}, + {-0.463311,0.027464}, + {0.461195,0.676168}, + {0.563002,-0.443334}, + {0.837410,1.297797}, + {0.530937,0.527558}, + {-0.207558,1.073655}, + {0.017685,-0.129331}, + {-0.434984,-0.756967}, + {1.186167,0.330663}, + {-0.494215,-0.229928}, + {-1.967930,0.423566}, + {0.085717,0.490676}, + {0.579028,0.081474}, + {-1.165809,1.066751}, + {0.155616,-0.207882}, + {0.824000,0.024005}, + {-0.650314,-0.289259}, + {0.289677,0.562463}, + {0.084380,-0.741257}, + {-0.185975,-1.002760}, + {-0.258544,-1.231110}, + {-0.680721,-0.132215}, + {-0.126178,-0.346100}, + {0.059501,-0.556818}, + {0.257426,0.740194}, + {0.209590,0.920746}, + {0.278486,0.751635}, + {-0.266518,-0.406470}, + {0.747083,0.368274}, + {0.361351,1.035953}, + {0.730710,0.834248}, + {-0.629610,-0.456521}, + {-1.063318,0.238140}, + {-0.239986,0.455673}, + {0.045907,1.094522}, + {-0.098907,-1.444712}, + {0.346836,-0.959861}, + {-0.120778,-0.989386}, + {0.411690,0.088654}, + {-0.269997,0.408287}, + {0.840135,-0.066117}, + {-0.488370,1.718434}, + {0.875784,1.132982}, + {-0.423667,-0.074866}, + {0.406809,-1.179861}, + {0.214059,-0.303153}, + {-0.302193,1.101238}, + {0.868983,-0.955911}, + {-0.507030,-0.093825}, + {0.906214,0.198565}, + {-1.340024,0.138617}, + {-0.383054,-0.069114}, + {-0.486159,-0.087876}, + {-0.469249,0.620882}, + {-0.278926,0.596592}, + {-1.669627,0.194691}, + {0.742352,-0.614247}, + {0.718457,-1.097553}, + {-1.226771,0.059541}, + {-0.753392,-1.289320}, + {-0.209317,-0.130344}, + {0.481910,0.355924}, + {-0.316461,0.620936}, + {-1.244952,-0.290661}, + {0.215579,-0.017983}, + {-0.469612,-0.348379}, + {-1.275008,0.509724}, + {-0.522839,0.762522}, + {1.326882,0.479414}, + {0.226020,-0.210263}, + {-1.179333,-0.508178}, + {-0.818269,-0.304733}, + {-0.173224,-0.439298}, + {-0.536131,0.998854}, + {0.607704,0.360449}, + {0.006800,1.240915}, + {-0.835128,-0.346159}, + {0.147648,0.135792}, + {-0.724952,-0.728993}, + {0.387685,-0.535468}, + {0.119265,0.577041}, + {0.496673,-0.247011}, + {-0.506871,0.140888}, + {-0.556531,-0.131979}, + {-0.286395,0.267888}, + {-1.535815,0.901937}, + {-0.025959,-0.061265}, + {0.571857,0.076721}, + {0.378659,-1.266500}, + {0.474031,-1.498596}, + {-0.010007,0.157154}, + {1.036847,0.749449}, + {1.036444,0.841654}, + {0.548594,-0.632059}, + {0.368966,-1.003432}, + {0.570837,-0.124028}, + {0.341200,0.495283}, + {1.122887,0.046649}, + {0.748775,-0.646888}, + {0.114935,0.407391}, + {0.016391,-1.068782}, + {0.276187,0.082486}, + {0.328695,-0.203988}, + {-0.955191,-0.006992}, + {-0.954723,0.976115}, + {0.130024,0.006814}, + {1.178728,-1.134652}, + {-0.280919,1.145315}, + {-0.074035,-0.138700}, + {-0.885872,-0.173488}, + {-0.052446,0.391385}, + {0.061407,-0.036012}, + {-0.178374,0.207062}, + {1.539364,-0.706954}, + {0.683015,-0.203145}, + {0.214058,-0.228743}, + {0.816114,-0.336901}, + {1.083669,0.601556}, + {0.243885,0.366600}, + {-0.376040,0.342849}, + {0.049959,-0.020917}, + {-0.249481,1.559691}, + {0.260203,0.448585}, + {0.400041,0.204926}, + {0.103935,-0.828622}, + {-1.743587,-0.564881}, + {1.227175,-0.006252}, + {0.517290,0.681785}, + {0.041937,-1.277299}, + {0.884991,1.022953}, + {-0.395354,0.177096}, + {0.659057,-0.417478}, + {-1.433312,-1.086898}, + {-0.307188,0.459477}, + {1.083389,-0.395616}, + {0.931207,-0.529729}, + {-0.691098,-0.682569}, + {-0.107824,-0.121179}, + {0.162237,0.278125}, + {-0.187331,-0.078223}, + {0.539435,-0.468066}, + {-0.037026,-0.169309}, + {-0.032828,0.774350}, + {1.004977,0.207932}, + {-1.375620,-0.465708}, + {-0.853797,-0.492372}, + {0.857050,-0.067048}, + {-1.358066,-0.056983}, + {0.205638,0.517628}, + {0.134978,-1.457460}, + {-0.628057,-0.198079}, + {1.020819,0.168767}, + {-0.660697,0.430602}, + {-1.207856,0.350159}, + {0.211552,0.334102}, + {1.569613,0.644036}, + {0.625801,-0.806877}, + {0.753956,-0.280829}, + {0.800271,0.796731}, + {-0.157847,0.366712}, + {-0.520191,-0.177564}, + {-1.880639,0.111041}, + {0.565178,-0.025211}, + {0.867760,0.267054}, + {-1.699681,0.127302}, + {0.925459,0.105993}, + {-0.381951,-0.290209}, + {-0.008579,-0.672418}, + {-0.226066,0.111930}, + {-0.511046,-0.180645}, + {-0.150570,-0.920002}, + {0.456257,1.157604}, + {0.285512,-0.521834}, + {0.197973,0.250159}, + {-0.574980,-1.048345}, + {0.065042,0.539600}, + {-0.080347,0.440878}, + {0.334152,1.807252}, + {0.870739,-0.406652}, + {0.176466,0.116783}, + {-0.373632,-0.833253}, + {-0.411070,-0.622612}, + {0.490742,0.472114}, + {-0.144185,0.440259}, + {-0.911075,1.395547}, + {-0.963359,0.070059}, + {0.472861,0.954686}, + {0.144494,0.457410}, + {0.724328,0.010123}, + {1.405964,0.660263}, + {0.629468,-1.148403}, + {-0.365955,0.044107}, + {1.302156,-0.349987}, + {0.559796,0.286848}, + {-1.408563,1.083378}, + {0.176937,0.040345}, + {-0.339737,-1.036991}, + {-0.000428,0.120110}, + {0.174082,-0.440745}, + {-0.812662,0.308663}, + {-0.344535,0.731337}, + {-0.687735,-0.481504}, + {-0.167853,0.616992}, + {-0.032443,-0.661320}, + {-0.744886,-0.239760}, + {0.372373,0.085475}, + {-1.440036,0.895442}, + {-0.277006,-0.398549}, + {-0.370569,-0.322067}, + {0.103481,-0.007568}, + {-0.106426,0.323058}, + {-0.483987,-0.268954}, + {0.292168,0.040605}, + {0.074066,0.134120}, + {0.153317,-1.287651}, + {-1.203918,-0.967637}, + {-0.317271,0.386501}, + {0.954049,-0.099558}, + {0.462192,-0.061542}, + {-0.062967,0.369906}, + {-0.884488,0.712304}, + {0.186711,-0.348097}, + {-0.352553,-1.659383}, + {-0.486478,-1.015527}, + {0.251005,0.060654}, + {-0.383225,0.840563}, + {-0.808342,-0.888829}, + {-0.227572,0.129202}, + {-0.314270,-0.775019}, + {-1.545768,-0.570873}, + {0.545677,0.182432}, + {0.081540,-0.429030}, + {-0.106779,-0.216418}, + {0.450044,0.045841}, + {0.905832,-0.902027}, + {0.457874,-0.063177}, + {0.116610,-0.016288}, + {-1.167063,0.372052}, + {0.982923,-0.259440}, + {-0.922239,0.212051}, + {-0.529454,-0.435260}, + {-0.213398,0.659482}, + {0.235217,-0.582746}, + {0.622280,0.032259}, + {0.593666,0.351868}, + {-0.873997,-0.448480}, + {-0.945217,1.031911}, + {-0.039626,0.351279}, + {1.166869,-0.022261}, + {0.104525,0.891744}, + {-0.833076,0.326978}, + {1.038616,0.221851}, + {0.210548,0.797819}, + {-0.610088,-0.922245}, + {-0.343548,-0.954441}, + {0.159815,-0.755620}, + {-1.254248,0.310110}, + {0.112621,0.338769}, + {0.509586,-0.114230}, + {0.458902,-0.012483}, + {-0.077531,0.845512}, + {-0.024838,-0.325136}, + {0.099325,-0.797450}, + {-0.149184,0.461116}, + {-0.229381,-0.113607}, + {-0.790994,0.906154}, + {1.110214,0.040753}, + {-0.312241,0.102262}, + {-0.492226,-0.169707}, + {0.154426,0.445431}, + {0.915648,0.371803}, + {-0.997727,-0.598569}, + {-0.694967,-0.288512}, + {0.440323,-0.276589}, + {-0.606794,-1.515034}, + {-0.336494,0.022852}, + {0.119489,-0.371741}, + {-0.695836,0.229833}, + {-0.161236,-1.197827}, + {0.902952,0.341914}, + {-0.478975,-0.883342}, + {0.010275,0.473193}, + {-0.257723,0.343809}, + {-1.647461,-0.658151}, + {1.203630,0.311324}, + {-0.520208,-0.077408}, + {-0.042387,-0.201717}, + {0.732624,-0.442372}, + {-0.025341,0.263186}, + {-0.585464,0.089537}, + {-1.270729,0.861931}, + {0.365129,0.609487}, + {1.133617,-1.306806}, + {-0.010529,-0.948779}, + {-1.495597,1.148781}, + {-0.029070,-0.136818}, + {0.206800,0.008509}, + {-0.794964,0.295312}, + {0.338531,-0.540493}, + {-0.405923,-0.474873}, + {0.979782,0.070233}, + {-1.358570,-3.041284}, + {-2.044437,-0.337722}, + {0.467839,-0.830266}, + {0.885020,0.766034}, + {0.628159,0.150322}, + {0.155384,1.033378}, + {0.499468,-0.472419}, + {-0.017379,0.135709}, + {1.044006,0.107473}, + {0.069893,1.038512}, + {0.052506,-0.202886}, + {0.725175,-0.396198}, + {-1.435707,0.436358}, + {-0.537693,0.135514}, + {0.874197,1.596120}, + {0.692789,-0.072948}, + {1.514427,0.422330}, + {0.356388,0.004602}, + {-0.424132,1.742008}, + {1.161560,0.621060}, + {-1.253631,0.873246}, + {0.830477,-0.113869}, + {-0.089117,1.005543}, + {-0.119315,0.415317}, + {0.530735,-0.551322}, + {0.468530,-0.096115}, + {0.465401,0.845196}, + {-1.226917,1.079224}, + {-0.340842,-0.903031}, + {1.019357,-0.845306}, + {-0.542261,-0.981142}, + {0.745563,-0.146286}, + {0.146678,1.522813}, + {0.489313,0.877646}, + {0.622197,0.410875}, + {-0.332401,1.742686}, + {-0.530628,0.179136}, + {0.214410,0.379434}, + {-1.320653,0.366324}, + {-0.135837,-0.625588}, + {0.018205,0.579573}, + {0.113747,0.193869}, + {0.826568,-0.342809}, + {0.517217,0.388353}, + {0.511517,-1.261484}, + {0.069570,1.590514}, + {0.524966,1.277127}, + {-0.604102,0.356745}, + {-0.289114,1.192349}, + {-1.224444,0.781320}, + {0.797974,0.660886}, + {0.358733,0.016464}, + {-0.201142,0.232487}, + {1.024496,-0.588845}, + {-0.513361,1.122263}, + {-0.918694,0.121980}, + {-0.195506,-0.020095}, + {0.331440,-0.501190}, + {0.266567,1.455573}, + {0.740847,0.632486}, + {-0.395862,0.862711}, + {-0.542915,-0.406950}, + {-0.187643,0.516822}, + {-0.777298,-0.688838}, + {1.561877,0.175345}, + {0.042752,0.261983}, + {-0.477959,0.013431}, + {-0.378112,-0.612150}, + {0.517772,-0.504068}, + {0.534609,-0.171057}, + {0.581429,-0.511870}, + {1.573305,0.690322}, + {0.371148,0.371632}, + {0.775532,-1.827403}, + {0.699914,-0.106911}, + {-0.563281,-0.400668}, + {0.120288,0.692679}, + {-0.216988,0.919587}, + {-0.032172,-0.042166}, + {0.257666,-0.073362}, + {-0.829215,0.807044}, + {0.043528,-0.370050}, + {0.726681,-0.109935}, + {0.199629,-0.260646}, + {-0.064800,0.952449}, + {-0.366864,0.342468}, + {-0.213579,0.473732}, + {0.475745,-0.522349}, + {-0.578518,0.470114}, + {0.131571,0.070506}, + {0.199747,1.295036}, + {0.163703,0.315885}, + {0.730185,-0.561563}, + {0.155160,-0.466836}, + {0.209743,-0.938351}, + {-0.332044,0.339460}, + {-0.334248,-0.438717}, + {-0.177906,-0.445812}, + {-0.403888,0.515655}, + {-0.529417,1.448326}, + {0.751148,-0.069385}, + {-0.543366,1.195889}, + {-0.565148,0.963886}, + {1.462286,-0.220984}, + {1.482440,-0.287540}, + {-0.577094,-0.718976}, + {-1.677120,-0.951714}, + {1.349836,0.330001}, + {0.047546,-0.005764}, + {-0.087343,-0.860869}, + {0.969527,-0.058331}, + {0.640526,-0.460373}, + {-0.620476,0.177907}, + {0.646331,0.313684}, + {-0.865669,-0.430395}, + {-1.109093,0.284577}, + {0.623313,1.066345}, + {-0.942186,0.297467}, + {0.386541,-0.886178}, + {-1.337573,0.110937}, + {0.411021,-0.972933}, + {-0.731420,-1.565217}, + {0.115932,0.032862}, + {0.647009,-0.702312}, + {0.368068,0.376174}, + {1.769808,-0.289011}, + {-0.186158,0.373612}, + {-1.327035,-0.080788}, + {-1.039836,-0.777259}, + {-0.020857,0.135255}, + {-0.342180,-0.853006}, + {0.599834,0.159697}, + {-1.190980,-0.408167}, + {-0.953700,-0.055447}, + {0.242964,0.103171}, + {-0.330887,0.495570}, + {-0.736320,-0.023509}, + {0.572782,0.531094}, + {1.955315,0.650087}, + {0.489044,-0.003831}, + {-0.573902,-1.761131}, + {-0.258057,-0.141214}, + {0.092342,0.110264}, + {0.813360,1.816915}, + {1.221027,-0.215925}, + {-0.103234,0.313383}, + {0.078699,-0.198435}, + {-0.581828,-0.816310}, + {0.283286,-0.081822}, + {0.302095,-0.251803}, + {-0.406478,-0.593376}, + {-1.326431,0.230793}, + {-0.180609,0.370457}, + {0.552601,0.177024}, + {-1.333465,0.065461}, + {0.599845,-0.602277}, + {1.077753,-1.104753}, + {0.809628,0.038772}, + {0.024962,-0.314990}, + {-0.988391,1.568123}, + {0.338240,0.004098}, + {-0.412518,0.731701}, + {-0.313828,0.854789}, + {1.524806,-1.562020}, + {-1.169150,0.061988}, + {-0.463460,-1.121006}, + {-0.688317,0.548066}, + {1.066755,-1.657319}, + {-0.098140,-0.618434}, + {0.432144,-0.550599}, + {-0.078023,1.897759}, + {0.527062,-1.127072}, + {0.386297,0.274681}, + {1.092527,-0.621702}, + {0.544097,-0.200129}, + {0.619517,0.186827}, + {-0.894467,0.710752}, + {-0.516944,-0.474122}, + {-0.178624,-0.241885}, + {-1.103791,0.206812}, + {-0.750328,-0.465599}, + {-1.049783,-0.059999}, + {-0.238415,-0.584913}, + {0.841484,0.498381}, + {0.772949,-0.257598}, + {0.631129,-0.010723}, + {0.638257,-0.000321}, + {0.484532,-1.725015}, + {0.429875,0.794608}, + {0.098118,-0.679536}, + {0.252370,-1.123608}, + {0.256356,0.128045}, + {-1.654829,-0.677293}, + {0.341717,0.901616}, + {-1.530022,-0.071391}, + {1.584247,0.385784}, + {-0.134925,-0.596211}, + {-0.306823,-0.640632}, + {0.680138,1.001415}, + {0.855363,0.466031}, + {1.047399,-0.967652}, + {0.874714,0.771008}, + {0.023131,0.930381}, + {-1.094853,-0.870464}, + {0.718843,-0.226276}, + {-0.135767,0.433719}, + {0.058625,-1.398816}, + {-1.478618,-0.590113}, + {-1.706239,-0.238334}, + {-0.278994,1.505897}, + {-0.649649,0.049328}, + {0.357204,-0.249715}, + {-0.178715,0.811732}, + {1.233743,0.677688}, + {0.404137,1.022936}, + {0.656525,0.330724}, + {0.607732,-1.362354}, + {-0.127905,-0.419755}, + {-0.152615,-0.700967}, + {-0.352367,-0.973191}, + {-0.720073,-1.323530}, + {-0.127801,-0.477660}, + {-0.092400,0.491723}, + {0.341948,-0.814883}, + {-0.040942,-0.194408}, + {-0.510947,0.165069}, + {-0.386948,0.041816}, + {-0.391543,0.095043}, + {0.814066,-0.413210}, + {0.652218,-0.465334}, + {-0.144483,0.331067}, + {0.230318,-0.335014}, + {-0.085459,-0.090830}, + {-0.458532,0.005534}, + {0.602005,0.549709}, + {-0.656597,-0.039494}, + {-0.529460,-0.586545}, + {0.459330,0.016754}, + {-0.902031,-0.240948}, + {-0.046894,0.151840}, + {0.377669,1.389795}, + {0.397125,0.524265}, + {-0.388316,0.810665}, + {1.536130,-0.018437}, + {-0.324880,0.392937}, + {-0.402622,1.137794}, + {0.298408,-0.266189}, + {0.681114,-0.071383}, + {-0.272913,-0.092683}, + {1.575728,0.022775}, + {0.194788,-0.335136}, + {0.519039,0.062735}, + {-0.764728,0.146452}, + {0.236471,-1.427158}, + {0.995246,0.767302}, + {-0.349678,0.736569}, + {0.118835,0.421198}, + {-1.078159,0.402561}, + {-0.764007,-0.533382}, + {-0.455951,1.354001}, + {0.541724,0.107812}, + {0.517193,0.011113}, + {0.192692,0.927513}, + {-0.639680,-0.461272}, + {-0.497412,0.005693}, + {0.035037,0.968771}, + {0.427440,-0.147090}, + {-1.412140,-0.121905}, + {0.344535,0.038231}, + {0.256825,0.088627}, + {-0.859248,-0.787997}, + {-0.127159,-1.105511}, + {1.125815,-0.063713}, + {-1.355366,-0.913897}, + {0.567869,0.633445}, + {0.784268,-0.756031}, + {-0.417336,0.300105}, + {-1.430904,0.105505}, + {-0.042593,-0.153161}, + {0.213039,0.587233}, + {0.028565,0.513513}, + {-0.041316,-1.552297}, + {0.458964,1.495922}, + {0.559308,-1.214681}, + {1.049392,0.519859}, + {0.290751,0.410285}, + {-0.235969,0.075235}, + {0.827775,0.234283}, + {-0.353105,0.368130}, + {1.152140,0.124431}, + {-0.676463,-0.451120}, + {0.431903,0.156522}, + {-1.146142,0.821383}, + {-0.231929,0.460321}, + {0.331103,0.291431}, + {-0.486103,-1.028895}, + {0.247142,-0.577083}, + {0.643317,0.642730}, + {-0.038357,-0.731389}, + {-0.529627,-0.518347}, + {-0.458770,-0.602541}, + {0.717108,-1.502174}, + {1.639891,-0.046797}, + {0.367167,-0.575410}, + {0.200877,-0.125050}, + {1.282175,-0.037682}, + {-0.094635,-0.888363}, + {0.413420,1.283817}, + {0.132756,0.300671}, + {-0.367404,1.005577}, + {0.511375,-0.097647}, + {-0.375077,0.423522}, + {0.382736,0.001469}, + {0.044349,-1.190297}, + {-1.190740,0.471491}, + {0.835772,0.424912}, + {1.030520,0.464877}, + {-0.529949,0.824068}, + {-0.099363,0.508190}, + {-1.371466,0.242051}, + {0.916338,-1.128584}, + {0.785841,-1.448629}, + {0.407546,0.603846}, + {0.575293,-0.166221}, + {0.886545,0.439648}, + {-0.226133,0.961934}, + {-0.165523,0.076377}, + {-0.678735,-0.898540}, + {-0.053888,1.308609}, + {0.584848,0.060583}, + {0.083871,-0.233156}, + {0.004868,0.283304}, + {0.552259,0.868118}, + {0.500338,-0.610468}, + {-0.043386,-0.346571}, + {-0.498805,0.288491}, + {0.438704,-0.106490}, + {0.415201,-0.503631}, + {0.032692,0.644929}, + {0.101192,0.299544}, + {0.381060,-1.411974}, + {-0.859828,-0.958490}, + {-0.680687,0.892740}, + {0.112933,0.002252}, + {-0.278048,-0.241376}, + {-2.217421,-0.418946}, + {0.671425,0.447137}, + {1.852803,-0.254499}, + {-0.777766,0.350337}, + {0.058883,-0.792590}, + {1.819335,0.931958}, + {-0.140655,0.687205}, + {-0.454620,0.532005}, + {0.520396,-0.641183}, + {-0.614732,-0.794939}, + {-0.555090,0.194826}, + {-0.867211,-0.430899}, + {0.114316,0.279198}, + {0.906085,0.126300}, + {-1.652861,-0.398311}, + {0.720231,0.310120}, + {0.616857,-0.224845}, + {-0.355100,0.825606}, + {-0.443765,-0.588850}, + {0.548479,0.069557}, + {0.311662,0.550548}, + {1.211246,-0.191114}, + {-0.220659,1.110956}, + {-0.359286,-0.164330}, + {0.789602,-0.070392}, + {0.566583,-0.827020}, + {0.595349,-0.690691}, + {0.189841,0.431550}, + {-0.289571,-0.607088}, + {0.621366,-0.321307}, + {0.186891,-0.852539}, + {0.232188,-1.220607}, + {-0.612862,0.059821}, + {-0.105208,0.298759}, + {-0.329366,-1.318732}, + {0.320709,0.096560}, + {0.140400,-1.134450}, + {-1.507197,-1.015648}, + {0.397460,0.411895}, + {-0.815200,-0.096281}, + {0.168722,0.671290}, + {-0.859969,0.821381}, + {0.171885,-0.220966}, + {-0.093656,-1.361741}, + {-0.527003,0.899775}, + {0.390672,-1.707368}, + {0.729568,-0.255314}, + {0.688398,0.539302}, + {-0.397821,0.236694}, + {-0.255357,0.443405}, + {1.355847,0.620758}, + {1.705390,0.158142}, + {1.290421,-0.602823}, + {-0.732108,-0.318124}, + {0.541361,0.046519}, + {-0.502741,-1.050050}, + {0.252136,-0.639033}, + {0.878938,0.856368}, + {-0.690850,1.354681}, + {0.104990,0.071316}, + {0.447853,-0.020789}, + {-0.009859,-0.006837}, + {-0.719030,0.285837}, + {-0.045532,1.180974}, + {-0.413249,-0.120820}, + {0.590697,0.086396}, + {-0.312210,0.058620}, + {0.038969,-0.080060}, + {0.668350,0.562553}, + {-0.339013,0.060135}, + {-0.907438,-0.823162}, + {-0.119806,-0.877603}, + {-0.478883,-0.143292}, + {-0.320699,0.212539}, + {0.100108,0.485710}, + {-0.392466,-0.806866}, + {0.001016,0.076458}, + {-0.592774,0.343524}, + {1.462533,-0.066516}, + {-0.569967,0.315363}, + {-0.481084,0.337295}, + {-0.087391,0.658159}, + {-0.302733,0.653680}, + {0.413127,0.535186}, + {-0.582368,0.582489}, + {1.018942,0.463516}, + {-0.061175,-0.350878}, + {-1.630071,-0.232123}, + {1.208054,0.322525}, + {0.230705,0.582932}, + {-0.217847,0.575781}, + {0.893442,0.630389}, + {-0.174874,0.390805}, + {0.956859,0.734961}, + {0.438679,0.368285}, + {1.409507,-0.272855}, + {-0.021050,0.944726}, + {-0.227605,-1.004858}, + {0.346623,0.582952}, + {0.576312,0.318435}, + {1.094793,-0.629266}, + {-1.088802,0.041459}, + {-0.500393,0.442719}, + {-0.271167,0.374385}, + {0.241921,0.418248}, + {-0.627281,-1.002708}, + {-1.147085,-0.423343}, + {0.728013,-0.479764}, + {0.055815,-0.515315}, + {0.496916,0.348340}, + {0.640592,-0.044396}, + {-0.823480,-0.081510}, + {-0.658153,0.363340}, + {0.549048,0.679255}, + {0.379224,0.498001}, + {0.531963,0.993990}, + {0.503592,0.389701}, + {-0.354800,0.131830}, + {0.447769,-0.726391}, + {-0.226749,0.070274}, + {1.525876,0.048507}, + {0.423583,0.515601}, + {0.281501,0.333000}, + {-0.581471,-0.653560}, + {0.356261,0.210534}, + {-1.831239,-2.179264}, + {-0.207313,2.443682}, + {0.581231,0.219500}, + {0.244048,-0.433631}, + {0.234179,-0.519635}, + {0.321517,-0.667325}, + {0.331807,0.023669}, + {0.150836,0.951006}, + {0.850205,-0.427679}, + {-0.266342,0.492303}, + {0.421612,-0.671137}, + {0.097019,-0.343781}, + {0.353095,0.071768}, + {0.399844,1.140014}, + {-0.092161,0.421038}, + {0.951596,0.997798}, + {0.233831,-0.888818}, + {-0.914231,0.468451}, + {-0.320417,0.768939}, + {0.010017,-0.067670}, + {-0.641204,0.499319}, + {0.464514,-0.342039}, + {0.806917,0.412848}, + {-0.389667,-0.723328}, + {1.504390,-0.862004}, + {-0.077352,-0.895115}, + {-0.618964,0.190222}, + {0.301279,0.239691}, + {-1.242100,0.120618}, + {0.930139,0.521412}, + {0.529753,-0.277023}, + {-0.884634,-0.158847}, + {0.636505,-0.971609}, + {-0.835765,0.991747}, + {0.277340,-0.861971}, + {1.021073,1.142868}, + {-0.705786,0.603524}, + {0.156000,-0.793177}, + {0.066289,-0.265637}, + {-1.395549,-0.477809}, + {-0.398661,0.403177}, + {-0.459976,-0.843605}, + {0.984018,-0.852629}, + {0.218633,-0.126745}, + {-0.282519,0.221063}, + {-0.030076,0.666546}, + {-0.069338,0.189674}, + {0.437178,0.500713}, + {0.391939,0.145078}, + {-1.572762,0.700506}, + {-1.015432,0.377474}, + {-0.840338,0.937558}, + {0.342004,0.167650}, + {-0.060252,0.117581}, + {0.472117,0.635502}, + {0.104385,-0.161998}, + {1.188391,-1.588144}, + {-1.256569,-0.943382}, + {-1.338045,-1.795011}, + {0.423467,-0.663819}, + {0.202217,0.684588}, + {0.233240,1.011311}, + {-0.758494,0.433929}, + {0.926118,-0.054441}, + {0.564314,-0.974460}, + {0.726559,-1.559723}, + {-0.541272,-0.563339}, + {0.749341,-0.459923}, + {-0.592150,-0.292360}, + {-1.425995,-1.199563}, + {0.630984,0.173879}, + {-0.496013,0.849446}, + {0.730005,-0.623744}, + {0.339948,0.700938}, + {0.318261,-1.431390}, + {0.179177,-0.081351}, + {0.422595,0.110693}, + {0.525183,-0.014276}, + {0.791773,-0.477120}, + {0.337622,-0.907080}, + {-0.961643,0.350677}, + {-0.419235,0.114661}, + {-0.036426,-0.074521}, + {-0.851223,0.150299}, + {-1.402542,-0.652643}, + {-0.444904,0.206768}, + {0.649220,0.699797}, + {0.159030,0.332804}, + {0.252170,-0.574764}, + {0.214542,-0.070060}, + {0.672585,-0.214337}, + {0.317019,0.014172}, + {-0.760543,0.267257}, + {1.642791,0.243831}, + {-1.046533,-0.098091}, + {-0.043117,0.019885}, + {0.017252,-1.446676}, + {0.264861,0.685846}, + {0.517324,0.010126}, + {0.343672,0.470516}, + {0.031183,0.226200}, + {-0.069854,-0.562667}, + {0.527272,0.532637}, + {-0.858228,0.534935}, + {0.364460,0.740142}, + {-0.140402,-0.483472}, + {0.017139,0.061624}, + {-0.294724,1.396053}, + {-0.540405,-0.124744}, + {-0.216948,-0.080703}, + {0.142776,-0.316044}, + {-0.253452,-0.078581}, + {-0.025665,0.377449}, + {0.170569,0.657816}, + {0.558146,0.230644}, + {-0.811005,0.844136}, + {1.274885,-0.602096}, + {-0.256525,0.339416}, + {-0.445608,-0.526104}, + {-0.679020,-0.428087}, + {-0.585500,0.611806}, + {0.321104,1.015454}, + {0.088048,0.254566}, + {-0.194493,-0.085023}, + {0.235160,0.956288}, + {0.814722,0.247546}, + {-0.785712,0.033330}, + {1.303812,-0.323498}, + {0.900592,0.189877}, + {0.557885,-0.981445}, + {0.472523,0.784359}, + {0.761798,-0.989764}, + {0.391552,0.560236}, + {0.697718,-0.307289}, + {-0.302544,0.328754}, + {-1.050820,-0.691314}, + {-0.647732,-0.054507}, + {0.021808,0.443342}, + {-1.449923,-0.824803}, + {0.190423,-0.098085}, + {0.631746,-0.468679}, + {0.040293,-1.576056}, + {-0.372698,0.455461}, + {0.220583,0.009939}, + {-0.270850,-0.097216}, + {-0.505603,0.942481}, + {-0.821008,0.456088}, + {-0.903589,-0.879087}, + {-1.037097,0.467356}, + {-0.106833,1.072424}, + {0.863947,0.585468}, + {0.005151,0.434652}, + {-0.400947,-1.251142}, + {0.189981,0.404356}, + {-0.285439,0.379628}, + {0.087294,-0.869496}, + {-0.192137,0.869642}, + {-0.692827,-0.385168}, + {-0.562495,0.217508}, + {0.542657,-0.510556}, + {0.464191,-0.475241}, + {-0.360873,0.439250}, + {0.855123,0.200659}, + {-0.610447,0.408358}, + {0.908977,1.265472}, + {0.594758,-1.492478}, + {0.029868,-0.283152}, + {-0.742647,-0.959861}, + {-1.058543,-0.718420}, + {0.030062,0.074846}, + {0.484401,-1.125483}, + {-0.284086,0.159763}, + {-1.080775,-0.140955}, + {-0.174126,-0.086363}, + {0.739286,-0.217804}, + {0.141377,-0.665255}, + {0.920503,-0.318352}, + {0.312659,0.743913}, + {0.276399,0.154918}, + {0.663342,-0.243720}, + {0.208475,1.070727}, + {1.547443,-0.539637}, + {-0.480355,-0.378719}, + {-0.286722,-0.944048}, + {-0.939835,0.257670}, + {-0.970612,-0.234679}, + {-0.869842,1.134333}, + {0.129012,-1.323594}, + {-0.847059,0.612807}, + {0.143607,0.167211}, + {-0.644289,-0.020060}, + {0.597720,-0.525289}, + {0.344575,0.696561}, + {0.032192,-0.316594}, + {-0.527359,0.248141}, + {0.057843,-1.004926}, + {0.174263,-0.084976}, + {-0.103775,-0.357881}, + {0.591409,0.244348}, + {-1.185070,-0.186006}, + {0.643666,0.679958}, + {-0.560183,-0.180895}, + {-0.730927,0.972640}, + {0.414448,-0.245573}, + {-0.715735,-0.063948}, + {0.602288,-0.368285}, + {-0.595310,-0.096140}, + {0.154414,-0.239226}, + {-0.643521,-1.322612}, + {-0.372893,0.644678}, + {-0.871536,-1.116017}, + {-0.355362,-0.495611}, + {0.807998,-0.506884}, + {-1.512365,1.149375}, + {-0.663902,-0.483402}, + {-0.027985,0.740126}, + {-0.627528,0.621482}, + {0.273277,0.398212}, + {0.646616,1.375140}, + {-0.691492,1.019221}, + {0.666217,0.443858}, + {0.695471,0.183591}, + {-0.505856,-0.531083}, + {0.770952,0.230695}, + {-0.598738,0.451612}, + {0.301636,-1.123508}, + {0.345123,-0.300982}, + {-0.371200,0.114885}, + {0.040179,0.024051}, + {-0.193750,0.538700}, + {-0.540208,0.170493}, + {-0.732932,-0.668738}, + {-1.222816,0.434783}, + {0.056403,0.263628}, + {0.248752,1.012811}, + {-0.511117,-0.049178}, + {-0.044573,-0.975817}, + {0.398627,0.462711}, + {-0.260856,-0.068978}, + {-0.280710,-0.321223}, + {-1.899199,-1.720357}, + {-0.214145,0.610662}, + {0.860637,-0.542982}, + {1.479895,0.512347}, + {-0.634684,-0.205669}, + {-0.774042,0.960716}, + {0.254752,-0.070188}, + {0.048949,0.072511}, + {-0.076806,0.217678}, + {-0.398325,0.011892}, + {0.947991,0.795319}, + {1.507949,-0.647927}, + {-0.067973,0.815859}, + {0.021869,-1.330399}, + {0.260440,-0.736693}, + {0.047665,1.669888}, + {0.051714,-0.750557}, + {0.461558,0.446945}, + {1.025170,0.357000}, + {0.045956,-0.325779}, + {-0.173120,0.700485}, + {0.536135,-0.477065}, + {0.128767,-0.204009}, + {-0.760650,-1.142806}, + {0.136669,-1.190282}, + {0.497392,-1.408788}, + {-0.148019,0.206583}, + {-0.501879,-0.488139}, + {0.009399,-0.681400}, + {0.701198,-0.538127}, + {0.180453,0.485088}, + {-0.265001,0.156447}, + {-0.640031,0.482786}, + {-0.518979,-0.541837}, + {-0.032891,-0.430068}, + {-0.461893,-0.277698}, + {0.262606,0.260080}, + {0.041808,-0.123995}, + {-0.440511,0.223938}, + {-0.106192,-1.594211}, + {-0.418230,0.723012}, + {0.073327,-0.112584}, + {-0.418561,-0.692791}, + {0.368207,0.185128}, + {0.168326,0.239815}, + {0.114983,-0.779877}, + {-0.513697,-0.218598}, + {-0.509730,-1.001503}, + {-0.257517,0.486916}, + {-0.939828,0.965026}, + {-1.454300,-0.203483}, + {-0.492785,-0.713430}, + {0.301437,-0.797414}, + {0.238702,-0.386490}, + {-0.944933,0.181264}, + {0.443444,1.104281}, + {0.703275,-1.091732}, + {-0.739420,0.369381}, + {-0.541723,0.306867}, + {-0.421282,-0.067401}, + {-0.359663,-0.430076}, + {-0.365976,-0.386311}, + {-1.235840,-0.744903}, + {-0.582278,0.165135}, + {0.258208,0.795858}, + {0.656751,-0.199973}, + {-0.661437,-1.236283}, + {-0.183853,0.537246}, + {-0.698045,0.604539}, + {-0.705045,0.847084}, + {-1.459402,0.628008}, + {0.692337,1.236132}, + {-0.260324,0.599788}, + {-0.010288,-0.048783}, + {0.066315,0.077396}, + {0.258401,-1.300776}, + {-0.606507,0.626366}, + {0.918692,0.313908}, + {0.301100,0.600185}, + {0.756285,-0.134042}, + {0.419008,0.068592}, + {0.678707,0.297421}, + {-0.762643,0.544065}, + {0.811504,0.550301}, + {-0.128498,0.753596}, + {-0.506348,-0.102907}, + {-0.361289,-0.120066}, + {0.772548,0.007574}, + {-0.403729,0.699871}, + {0.438742,2.197012}, + {-1.157543,-0.354945}, + {0.220848,0.508695}, + {0.354803,-0.410951}, + {1.084506,0.972850}, + {0.092344,1.433922}, + {0.506397,0.385787}, + {1.217549,0.293367}, + {-0.334559,-0.101333}, + {-0.406466,-0.023401}, + {0.356600,-1.141455}, + {-0.011750,0.287641}, + {-0.050458,0.686041}, + {-1.213470,0.430009}, + {0.551580,-0.801972}, + {0.065996,-0.224313}, + {0.281099,-1.068458}, + {-0.096408,0.757440}, + {1.583368,0.056612}, + {0.087061,0.328131}, + {-0.394441,-1.372195}, + {0.512555,-0.342829}, + {-0.073289,-0.416035}, + {0.913218,-1.088553}, + {-0.698006,0.235712}, + {-0.230038,-0.514247}, + {-0.040607,-0.916763}, + {0.632154,-0.540679}, + {-0.887651,-1.009355}, + {-0.632470,-1.022231}, + {0.190182,1.032801}, + {-0.027089,0.692375}, + {-0.675473,0.192100}, + {-1.255069,0.423638}, + {-0.195848,0.109171}, + {0.292869,-1.505548}, + {0.515116,-0.182036}, + {-0.690289,0.288317}, + {1.434559,-0.687078}, + {-0.461406,-1.224466}, + {-0.374814,0.354303}, + {0.616066,0.664220}, + {-0.312574,-0.753793}, + {-0.010131,0.316177}, + {0.677541,-0.304399}, + {0.362407,-0.542312}, + {0.421985,-0.426462}, + {1.074806,0.427175}, + {0.714370,-0.383605}, + {0.981694,-0.101514}, + {-0.580749,0.366888}, + {0.150148,1.272927}, + {0.102605,1.472671}, + {0.133743,-0.162327}, + {0.098048,0.154761}, + {0.138915,0.424027}, + {-0.068587,-0.269135}, + {0.151768,-0.574258}, + {0.705147,0.504406}, + {-0.199471,-0.747309}, + {0.660886,1.191666}, + {-0.434080,0.337494}, + {0.065750,-1.195325}, + {-0.022976,0.447841}, + {0.105985,0.089817}, + {-0.084156,-0.318798}, + {0.072991,-0.327037}, + {-0.128438,0.126156}, + {-0.405562,-0.076535}, + {-0.426691,-0.173649}, + {-1.860770,-0.948092}, + {-0.127870,-0.262563}, + {-1.138050,-0.096580}, + {0.370414,-1.870972}, + {-0.169835,0.059237}, + {0.107617,0.823066}, + {-1.055285,-0.282586}, + {-1.207492,0.630350}, + {0.199582,0.096160}, + {0.726497,0.068093}, + {-0.532842,-0.156855}, + {1.093617,0.601716}, + {-1.528594,-0.081629}, + {-0.210981,-0.742901}, + {0.320628,-1.275187}, + {-0.959229,-1.040017}, + {-0.435513,-1.345417}, + {0.883669,0.681837}, + {-1.529650,-0.446392}, + {-0.720045,1.701187}, + {-1.098947,0.930781}, + {-0.652223,-0.676971}, + {0.540277,0.620405}, + {-0.084783,-0.516229}, + {-0.645938,-0.752328}, + {0.592236,-0.445923}, + {0.987580,-0.654351}, + {0.631582,-0.687112}, + {-0.747723,-0.216685}, + {-0.242519,0.244150}, + {-0.503676,-0.402645}, + {-1.298327,1.084137}, + {-0.362467,0.491899}, + {-0.033132,-0.268392}, + {-0.126278,0.423416}, + {-1.031263,-0.085027}, + {0.243811,-0.366720}, + {0.639498,0.129467}, + {-0.335136,1.108368}, + {-0.512740,1.873530}, + {0.643081,0.099739}, + {-0.255082,0.612374}, + {-0.175646,0.130710}, + {0.108781,1.292291}, + {-0.614601,0.259555}, + {0.168058,0.048234}, + {-0.574672,0.318310}, + {-0.216721,-0.336900}, + {-0.005054,0.439731}, + {-0.850990,0.370968}, + {-0.067698,0.383192}, + {0.383593,-0.525092}, + {-0.061197,0.459613}, + {1.361076,-0.818933}, + {-0.505306,-0.543337}, + {0.635340,-0.050133}, + {-1.114203,0.161483}, + {-0.176448,-0.346756}, + {0.120352,0.445743}, + {-0.245858,-0.834506}, + {-0.920717,0.600234}, + {-0.297926,0.695282}, + {1.293254,0.324459}, + {-0.963549,0.214107}, + {0.291750,0.306301}, + {-0.020635,-0.108404}, + {-0.625249,0.393424}, + {-0.678041,-0.306473}, + {1.267072,-0.004506}, + {0.022893,0.861164}, + {-0.623908,0.323349}, + {0.368754,0.620841}, + {-0.528447,-0.141905}, + {0.088043,1.543236}, + {-0.899354,-0.855242}, + {-0.026557,-0.453395}, + {0.027462,1.047341}, + {0.769418,-1.229816}, + {1.440973,-0.699249}, + {0.073809,-0.849225}, + {0.260617,-0.050471}, + {-0.343781,-0.188150}, + {0.196896,0.184787}, + {0.186939,-0.670752}, + {0.922055,1.559028}, + {0.501239,-0.571159}, + {-0.501999,0.117773}, + {-0.919095,0.778399}, + {0.351764,-0.823198}, + {0.148608,0.329635}, + {1.115657,-0.601348}, + {-0.356139,-0.377287}, + {0.082008,-0.934193}, + {0.413781,-0.481072}, + {0.159484,0.219529}, + {0.769932,-0.473240}, + {-0.127988,-0.380868}, + {0.633024,-0.074308}, + {0.422594,-1.072281}, + {-0.962782,0.898361}, + {0.606030,-0.243257}, + {0.060875,-0.778985}, + {-0.615502,0.659961}, + {0.690715,-0.017834}, + {0.475395,-0.359472}, + {-0.974448,-0.511066}, + {0.692056,-0.796830}, + {0.464684,-0.250498}, + {-0.473990,0.157603}, + {-0.221502,-0.380543}, + {0.776700,0.874519}, + {0.278098,-0.390918}, + {-0.020204,0.129496}, + {-0.492732,-1.203373}, + {-0.192923,0.392172}, + {-0.456686,-1.096002}, + {0.225734,-0.338651}, + {-0.423440,-0.151675}, + {0.047326,0.697747}, + {-1.402831,0.389770}, + {-0.481669,-0.607328}, + {0.707638,-0.420784}, + {-0.585504,0.372906}, + {0.884026,0.946783}, + {-0.890221,-0.123712}, + {-0.946448,-1.331909}, + {-0.161589,0.672376}, + {-0.428532,0.326757}, + {-0.478465,-0.457691}, + {-0.054022,1.405670}, + {-0.333135,0.375169}, + {-0.372505,0.854525}, + {1.535750,0.415969}, + {0.295118,-0.716003}, + {-0.336206,-0.196896}, + {0.743605,0.229018}, + {0.792000,-1.768616}, + {-1.354626,0.963126}, + {-1.405782,0.680236}, + {-0.237975,-0.000923}, + {-0.690345,-1.003080}, + {-1.313895,-0.033107}, + {-0.614969,0.864382}, + {0.990158,1.112463}, + {-1.001071,-0.634240}, + {0.594301,0.062948}, + {-0.534023,0.563650}, + {0.605461,-0.096271}, + {0.236832,-0.313801}, + {-0.493347,-0.201958}, + {-0.520262,-0.387792}, + {-0.912513,-1.199020}, + {-0.129950,-0.310796}, + {-0.541204,-0.716691}, + {-0.081170,0.596112}, + {0.737798,1.145168}, + {-0.928121,-0.998200}, + {0.669610,1.145227}, + {0.832308,0.318849}, + {-0.039104,-0.614171}, + {0.755613,-0.876583}, + {-1.016801,0.001975}, + {-0.050756,0.076366}, + {0.630505,-0.239083}, + {0.197191,-0.747906}, + {-0.372266,-0.592826}, + {-1.529025,0.438443}, + {-0.412525,-0.849941}, + {0.829853,0.127465}, + {0.283020,0.119718}, + {1.891486,-0.325311}, + {-0.585484,-0.410801}, + {0.059833,-0.092511}, + {-0.831938,-0.638384}, + {-0.235357,0.183885}, + {-0.347581,-1.189650}, + {0.014281,-0.758982}, + {0.350777,-0.963252}, + {-0.065657,-0.156335}, + {-0.165794,0.022285}, + {0.747007,-0.478210}, + {0.567832,-0.106546}, + {0.396140,0.016729}, + {-0.272671,0.066605}, + {1.376385,0.510745}, + {-0.060046,0.644132}, + {0.775174,-0.161923}, + {0.685821,0.001454}, + {-1.561711,0.881058}, + {1.787424,-0.058002}, + {0.336836,-0.858057}, + {-0.331450,-0.740409}, + {-2.109117,0.353266}, + {-0.216311,0.071157}, + {0.114973,-0.504866}, + {-0.622727,-0.587637}, + {-1.153190,0.816906}, + {-1.426416,1.516651}, + {-1.307579,0.228991}, + {-0.770577,-0.045774}, + {0.372744,0.808508}, + {0.120187,-0.103078}, + {-0.195718,-0.374301}, + {1.075698,1.295923}, + {-0.361592,-0.873742}, + {-0.418061,-1.279100}, + {0.784779,-1.675948}, + {1.268633,-0.865789}, + {-0.519273,0.090093}, + {-0.262722,-0.402864}, + {-0.951638,0.084945}, + {-0.355352,-0.351439}, + {0.285010,0.056406}, + {-0.950448,-0.397773}, + {-0.464651,0.160215}, + {1.109933,-0.480592}, + {-1.419546,1.158028}, + {0.905718,0.111670}, + {-0.237821,0.135966}, + {-1.259691,0.323498}, + {-0.470925,-0.541165}, + {0.102619,-0.372763}, + {-0.712979,-0.457720}, + {0.970056,0.171370}, + {-1.135346,-0.461788}, + {-0.633181,1.008828}, + {1.176038,-1.068340}, + {0.500422,-0.673381}, + {0.894371,-0.164669}, + {0.483704,0.314087}, + {-1.188251,-0.842904}, + {-0.157257,0.172253}, + {-0.898239,0.677601}, + {-0.279064,-1.615232}, + {-0.992485,0.177739}, + {-0.476199,-0.218263}, + {-0.132737,1.169939}, + {-1.302813,0.651199}, + {-0.310092,0.900820}, + {0.049591,-0.876856}, + {-0.107885,-0.364864}, + {-0.126501,-0.848695}, + {1.113648,0.511673}, + {0.264047,0.194513}, + {-0.056919,0.273691}, + {0.703939,-0.054764}, + {-1.272536,-0.341796}, + {-0.119178,-0.654156}, + {0.132597,-0.130565}, + {0.899426,0.459049}, + {-0.391768,-1.166623}, + {-0.225483,-0.557438}, + {-0.167593,0.661089}, + {-1.659540,-0.002336}, + {0.794658,0.033512}, + {-1.069324,0.241018}, + {-0.918777,1.380683}, + {0.332766,0.468339}, + {1.686444,-0.943082}, + {-0.547574,-0.948940}, + {0.030771,0.036540}, + {-0.833640,-1.376152}, + {-1.243536,0.371659}, + {-0.237937,-0.425704}, + {0.259845,1.519797}, + {-0.911238,-0.668074}, + {-0.013456,0.176795}, + {-0.882968,-0.341753}, + {0.854397,0.383916}, + {0.235472,0.285590}, + {-0.359982,0.097074}, + {-0.131102,-1.300127}, + {0.266605,0.174879}, + {-0.294888,0.138128}, + {-0.108081,0.172793}, + {-0.478603,-0.057927}, + {-0.712859,1.038960}, + {0.209788,0.449368}, + {0.387551,-0.640651}, + {0.003760,-0.340271}, + {-0.061907,0.617510}, + {0.392158,-0.953156}, + {0.726593,-0.189035}, + {0.597882,-0.274553}, + {0.666026,0.048594}, + {0.284210,0.946907}, + {0.305420,0.165142}, + {0.404228,0.231668}, + {-0.017939,-1.142982}, + {1.139064,-0.458041}, + {-0.819369,0.895217}, + {-0.047318,0.285829}, + {-0.568780,-0.190502}, + {-0.606370,-0.099547}, + {1.424332,0.802029}, + {-0.821119,0.250209}, + {-1.376602,1.326391}, + {-1.098387,1.606694}, + {0.496951,-0.357961}, + {0.210738,0.046687}, + {0.369485,-0.157254}, + {-0.544895,-0.402399}, + {-0.882763,-0.055791}, + {-0.357232,0.166177}, + {-0.615774,-0.069649}, + {-0.767183,-0.112721}, + {0.375762,-0.020422}, + {-0.098314,0.398756}, + {0.176510,0.550347}, + {1.200922,-0.003930}, + {1.325052,-0.313705}, + {-0.150081,1.250977}, + {2.057610,0.216751}, + {-0.238246,0.229506}, + {0.857400,-0.572607}, + {-0.562334,1.100413}, + {0.384247,-1.554662}, + {0.067540,0.515121}, + {1.340051,-0.351801}, + {-0.422137,-0.315044}, + {0.860255,-0.025928}, + {-0.499608,-0.491812}, + {-0.466429,-1.328300}, + {-0.323761,0.241738}, + {0.393656,-0.847954}, + {0.459800,1.193975}, + {0.310703,-0.636093}, + {-0.445585,0.424384}, + {0.846073,0.364936}, + {-0.259331,-0.399480}, + {0.436216,-0.067255}, + {-0.733748,-0.699265}, + {0.324053,1.497643}, + {0.615826,0.748861}, + {1.193295,-1.242813}, + {-0.466988,0.156967}, + {0.611477,0.193048}, + {-0.055928,-0.158672}, + {0.975226,-0.459924}, + {-0.655781,-0.693858}, + {1.324562,-0.668467}, + {0.864872,-2.109563}, + {0.717141,-0.626098}, + {-1.302740,0.096267}, + {1.116621,-0.009268}, + {0.100593,1.267514}, + {0.425933,-0.009823}, + {-0.173129,-0.174238}, + {0.153032,0.109386}, + {-0.318603,0.546064}, + {0.289912,0.429496}, + {0.155977,0.603650}, + {-0.776808,0.920140}, + {-0.878454,-0.082128}, + {0.608451,1.174464}, + {0.353067,-0.103951}, + {-0.452806,0.168395}, + {1.339559,0.439086}, + {-0.020182,-1.321645}, + {0.118079,-0.311166}, + {-0.272936,0.134373}, + {0.373963,-1.299783}, + {0.054969,0.261178}, + {-0.239239,-0.615398}, + {-1.001020,-1.146200}, + {0.449862,-1.228006}, + {0.323008,0.572236}, + {-1.653429,0.189960}, + {-1.049711,-0.245348}, + {0.976135,0.169753}, + {0.706318,-0.614142}, + {1.130571,1.122720}, + {-0.180019,-0.492531}, + {0.585209,-0.465400}, + {-0.786602,0.685904}, + {0.096573,0.109326}, + {-0.141775,-0.749653}, + {-0.059186,-0.316195}, + {-1.462725,-1.202917}, + {-1.236354,0.418481}, + {0.151833,0.157247}, + {0.691259,0.080574}, + {0.483058,-1.638888}, + {0.128021,1.112820}, + {-0.191649,1.303981}, + {-0.086171,-1.095404}, + {-0.568276,0.304373}, + {2.181999,-0.551641}, + {-1.035423,-0.289490}, + {0.155008,-0.150995}, + {-1.103950,-1.857698}, + {-0.668989,-0.467956}, + {-0.185524,0.446566}, + {-0.643301,-0.258359}, + {0.087981,-0.547687}, + {-0.516929,0.605263}, + {0.342129,0.093293}, + {2.011109,0.019105}, + {0.363808,0.781133}, + {-1.536479,1.337943}, + {0.435211,-0.631518}, + {-0.556866,-0.694405}, + {1.114228,-0.174913}, + {0.538381,-0.752450}, + {0.550732,-0.407947}, + {0.022731,-0.085540}, + {0.188773,0.308336}, + {0.487134,-0.164736}, + {0.186646,1.139253}, + {0.045252,-1.157604}, + {1.084051,-0.890305}, + {0.619163,-0.150592}, + {0.354104,0.841673}, + {0.229173,-2.117542}, + {-0.396302,-0.148405}, + {-0.233108,0.645852}, + {-0.409376,0.680217}, + {0.561133,-1.591081}, + {0.132287,1.114235}, + {-0.167495,-0.729692}, + {-0.563572,-1.003719}, + {-1.407809,0.049666}, + {0.259140,-1.152104}, + {0.876016,0.966907}, + {1.109627,0.127202}, + {0.900875,0.161930}, + {-0.239223,-0.745766}, + {-0.049711,-0.106964}, + {-1.172386,1.606319}, + {1.580091,-0.165441}, + {-0.105897,0.096532}, + {0.514744,-0.441290}, + {-0.410128,1.642280}, + {1.025580,-0.241450}, + {0.570167,0.040530}, + {0.871560,-0.323875}, + {-0.234388,-1.244179}, + {0.675376,0.964659}, + {0.374233,0.149805}, + {-0.789252,1.310412}, + {-0.284409,1.148222}, + {-0.660847,0.363166}, + {0.782152,0.454305}, + {0.172868,0.088907}, + {-0.278771,0.023603}, + {0.293272,0.372982}, + {0.311987,0.322549}, + {0.606624,0.527143}, + {0.192137,0.430538}, + {-0.324541,0.343529}, + {-0.158355,0.734556}, + {-0.137073,-0.403531}, + {-0.250048,0.162757}, + {0.447298,0.471529}, + {-0.874570,-0.929687}, + {0.556881,0.694617}, + {0.202336,0.104962}, + {-1.529270,0.384855}, + {0.164846,-0.749040}, + {-0.712317,-0.291645}, + {-0.649720,-0.482616}, + {-0.157974,0.405484}, + {0.057860,0.996968}, + {0.618568,-0.192818}, + {-0.569099,0.526239}, + {0.535368,-2.569703}, + {0.287562,-0.200457}, + {-0.774001,-0.447806}, + {-0.677427,0.757377}, + {0.440255,1.722018}, + {0.221734,0.363236}, + {-1.142799,0.246628}, + {-0.000987,0.084137}, + {0.177699,-0.161609}, + {0.219112,0.145815}, + {1.192557,-0.513284}, + {-1.063099,-0.407821}, + {0.344825,0.059121}, + {0.324140,-1.340732}, + {-0.385376,0.564923}, + {1.112126,0.068623}, + {1.217525,-0.793810}, + {-0.173809,0.211866}, + {0.008904,0.344939}, + {-0.551659,-0.020264}, + {0.409603,0.130882}, + {-0.460838,0.011734}, + {0.767436,-0.389044}, + {-0.317004,1.030325}, + {0.765716,1.202983}, + {-0.899111,-0.543610}, + {-0.281986,-0.684544}, + {-0.364272,0.091067}, + {-0.944820,0.735864}, + {-0.473074,0.236066}, + {0.590428,-0.001307}, + {0.902710,0.060698}, + {-0.479309,0.186699}, + {-0.622708,0.120223}, + {-0.552450,-0.012236}, + {0.431918,1.303160}, + {0.050594,-0.525912}, + {0.362519,0.624894}, + {-0.941750,0.479853}, + {-0.146931,-0.166574}, + {-0.222338,-0.578684}, + {0.516931,0.696953}, + {-0.950476,0.567101}, + {0.021004,0.707791}, + {1.023076,1.585372}, + {-0.379172,-0.455007}, + {0.999678,-1.125859}, + {1.112727,1.119853}, + {-1.229585,-0.372180}, + {0.485929,1.072664}, + {-0.533969,-0.058251}, + {-0.780870,-0.083022}, + {0.197475,-0.090851}, + {0.869964,-0.537793}, + {0.041044,0.400725}, + {0.337632,0.010040}, + {0.995867,-0.413684}, + {-0.197465,-0.816039}, + {0.113805,1.162790}, + {-0.869838,0.460479}, + {-0.720627,0.136898}, + {-0.555949,0.348150}, + {-1.010460,0.876235}, + {0.288385,0.442596}, + {0.628015,0.092587}, + {1.017268,1.102030}, + {0.136902,0.765530}, + {-1.074543,-0.048865}, + {-1.177793,-0.693738}, + {0.527523,0.145117}, + {-0.760523,0.203876}, + {0.938313,1.041252}, + {0.539914,-0.157041}, + {-0.572504,-0.177670}, + {-0.180789,-0.215865}, + {0.138948,-0.228659}, + {-0.294927,-0.979739}, + {-0.295661,-1.044591}, + {0.151225,-1.389272}, + {-0.756423,-0.423643}, + {-0.061934,-0.301791}, + {-0.270853,-0.240812}, + {-0.803715,0.821259}, + {-0.697601,0.617383}, + {0.289209,-0.053389}, + {-0.896823,0.262431}, + {-0.295344,-0.261914}, + {0.058281,0.044589}, + {-1.008325,0.176720}, + {0.175546,-0.335204}, + {0.631611,-0.600731}, + {-0.433719,-1.128985}, + {-0.409720,-0.312795}, + {0.323113,0.261763}, + {0.036730,0.115460}, + {0.059806,0.466118}, + {-0.435466,0.810298}, + {1.362624,-0.053060}, + {0.017303,0.016551}, + {-0.831908,-0.085054}, + {-0.047121,-1.210964}, + {-0.492066,0.242858}, + {0.390794,0.069634}, + {0.814141,-0.385739}, + {0.000600,1.161953}, + {-0.825328,-1.076807}, + {-0.137587,-0.380351}, + {-1.033185,0.376119}, + {-0.942623,0.986463}, + {-0.615904,0.634404}, + {0.405671,0.449572}, + {-0.610933,0.735977}, + {-0.318879,0.163802}, + {-0.507174,-0.284257}, + {0.727653,-0.764991}, + {0.553744,0.406244}, + {0.109977,-0.425145}, + {0.007260,0.694717}, + {-0.589111,-0.324782}, + {1.296184,-0.280316}, + {0.273412,-0.063905}, + {0.628945,0.335630}, + {-0.149412,-0.710817}, + {1.448227,-0.686517}, + {0.812279,1.204193}, + {-0.323526,0.612276}, + {1.317114,-0.397886}, + {-0.905302,-0.684715}, + {-0.018889,0.460583}, + {0.413307,0.079909}, + {0.196694,-0.264636}, + {0.237990,0.380848}, + {1.110570,0.186631}, + {1.100941,0.944369}, + {-0.268469,-0.372955}, + {0.654447,-1.005281}, + {-0.867087,0.494783}, + {-0.307357,0.224308}, + {1.126564,-0.447765}, + {-1.441809,-0.432263}, + {0.829316,-0.254776}, + {0.276601,0.028482}, + {0.321513,0.477089}, + {-0.326903,-0.065775}, + {0.181178,0.425015}, + {-0.021201,-0.632189}, + {0.196787,-0.270172}, + {0.482211,0.760539}, + {-0.021529,0.350678}, + {0.538731,0.792097}, + {-0.792762,-1.073304}, + {0.269102,0.466839}, + {-0.457873,-0.267988}, + {-1.086786,-1.382579}, + {-0.902461,-0.333688}, + {1.449862,0.549708}, + {1.103982,-0.815866}, + {-0.331610,-0.126280}, + {-0.434605,-0.574026}, + {-0.564428,0.451053}, + {1.065076,-0.142613}, + {-1.067355,-0.781069}, + {0.415735,0.395771}, + {-0.257126,-0.498318}, + {0.229113,-0.904408}, + {0.475347,0.932772}, + {-0.126197,-0.312728}, + {0.015972,1.513573}, + {0.072260,-0.478380}, + {0.199441,-1.515994}, + {0.801702,-0.148107}, + {0.732459,-0.716389}, + {-1.055474,0.377686}, + {0.882117,-0.319396}, + {-0.389893,0.614071}, + {-0.426814,0.453146}, + {-1.280709,0.307466}, + {0.465162,-0.568253}, + {-0.105649,0.264185}, + {0.207625,0.360816}, + {-1.212366,0.121881}, + {0.229992,-0.215450}, + {0.416004,-0.583465}, + {0.716912,-0.118409}, + {0.096084,-0.512867}, + {0.186247,0.032560}, + {0.028022,-0.556780}, + {1.150752,-0.299593}, + {-1.619091,-0.453159}, + {-0.212540,-1.038386}, + {0.255212,-0.885610}, + {-0.279565,0.220245}, + {-0.933030,1.702921}, + {1.098960,-0.501176}, + {0.621376,-0.194441}, + {-0.046707,-0.191768}, + {0.820383,-1.152666}, + {-0.625110,1.133264}, + {0.136433,-0.774816}, + {0.450809,-0.089682}, + {-2.456335,0.966943}, + {0.912559,-0.737705}, + {-0.981240,-0.672716}, + {-0.364111,-0.695029}, + {-0.339351,1.566577}, + {-1.639069,1.051843}, + {0.305872,0.958157}, + {-0.506132,0.126778}, + {0.213442,0.269895}, + {0.219518,0.742494}, + {0.850854,0.816322}, + {0.239080,0.545993}, + {-0.092504,0.731571}, + {0.440567,-1.122125}, + {0.610520,-0.413122}, + {-0.578101,-0.718322}, + {-0.222974,1.427200}, + {0.545492,-0.056598}, + {0.627889,1.317222}, + {-0.048461,-0.116290}, + {-0.394290,-0.229413}, + {-0.462502,-0.045762}, + {-0.200809,0.574322}, + {0.339283,-0.584942}, + {-0.393629,1.095376}, + {-0.371673,-0.655765}, + {-0.260952,-0.654112}, + {1.083400,0.823028}, + {-0.952867,-0.473551}, + {-0.018485,0.260282}, + {0.387338,0.088609}, + {-0.988637,-0.394637}, + {-0.651919,-0.458630}, + {1.482098,0.311456}, + {0.617416,0.339357}, + {0.024986,-0.654472}, + {-0.633096,-1.253554}, + {0.316704,-1.543150}, + {-0.309558,-0.064486}, + {-0.027012,-1.213059}, + {0.155906,-0.785986}, + {-0.021507,-0.082515}, + {1.588522,-1.195031}, + {-0.385961,-0.717514}, + {0.813259,0.823171}, + {1.542545,-0.583962}, + {0.699293,1.152578}, + {-2.520775,-0.740568}, + {1.650931,0.444675}, + {-0.894331,-1.449709}, + {-0.606002,-0.786614}, + {0.612772,0.153705}, + {-0.921274,0.922913}, + {0.440139,0.658577}, + {-0.229417,0.728289}, + {1.547479,-2.279597}, + {-0.319338,-0.157973}, + {-1.461973,1.054925}, + {-0.679512,-0.422229}, + {-0.320076,-0.624900}, + {-0.272455,-0.652699}, + {-0.050571,-0.713983}, + {-0.389856,-0.423589}, + {-0.973979,0.062857}, + {1.550694,-0.360476}, + {0.159432,-0.127434}, + {-0.372704,0.494970}, + {0.300625,-0.256622}, + {-1.003412,0.402113}, + {-0.075613,-1.686128}, + {0.482382,-0.480330}, + {0.093242,-0.754616}, + {0.281740,0.184726}, + {-1.393960,-0.547393}, + {0.536805,-0.148686}, + {-0.465176,0.255458}, + {0.306821,0.035537}, + {0.559831,-0.109144}, + {-0.714140,0.108895}, + {0.217559,0.447498}, + {-0.314098,-0.724385}, + {-1.492888,-0.993242}, + {-0.428441,-0.227405}, + {0.188548,0.658179}, + {0.768091,1.556233}, + {-1.545457,-1.086941}, + {0.140440,0.092669}, + {0.537909,-0.495652}, + {0.332552,-0.612271}, + {-0.511223,-0.340514}, + {0.079385,-0.114250}, + {-1.463661,0.057599}, + {0.223999,0.976185}, + {-0.543545,0.027883}, + {0.979747,0.489620}, + {-1.192039,-0.798037}, + {0.730126,-0.056639}, + {-0.267151,0.693524}, + {0.558097,0.153657}, + {-0.696618,-1.338386}, + {-0.909832,-0.096288}, + {0.882699,0.742963}, + {-0.275874,-0.809979}, + {-0.053137,-0.168546}, + {-0.422878,-0.367399}, + {1.557298,0.459112}, + {0.246203,-1.167259}, + {-0.504330,-0.532256}, + {0.987550,-0.885807}, + {0.683296,-0.854008}, + {-0.999180,0.227098}, + {-0.668949,-0.025123}, + {0.025665,-0.317833}, + {1.113571,0.491572}, + {-0.168884,1.194192}, + {0.093188,-1.044563}, + {1.753660,-0.163939}, + {0.555963,-0.609948}, + {0.794400,0.059530}, + {-0.335538,1.145340}, + {-0.230857,-0.288830}, + {-0.449282,0.390382}, + {0.306169,0.184478}, + {-0.346556,-0.363817}, + {-0.831726,0.067839}, + {1.276276,-0.466759}, + {0.244800,0.473109}, + {-0.215391,-0.292773}, + {-0.273257,0.201723}, + {0.842924,-0.698762}, + {-0.729074,0.256315}, + {-1.456625,0.252573}, + {0.559147,-0.282695}, + {0.994685,0.128463}, + {0.300242,-0.524755}, + {0.229392,-0.252261}, + {-0.262222,1.375848}, + {-0.629900,0.580724}, + {-0.886522,0.229244}, + {0.175535,-0.159406}, + {-0.005415,0.158939}, + {0.950522,0.379940}, + {0.346992,0.559263}, + {-0.822353,0.315018}, + {1.106625,-0.737253}, + {-0.252764,-0.041978}, + {-0.652043,1.078668}, + {0.544128,-0.877090}, + {-0.435260,-0.777845}, + {-0.142025,0.692931}, + {-0.031940,-0.162408}, + {-0.737664,0.759069}, + {0.018416,-0.910539}, + {0.501767,0.015715}, + {-0.525217,-0.909641}, + {0.502059,1.002820}, + {0.550277,0.890858}, + {0.563253,-0.901443}, + {-0.482929,-0.468226}, + {0.459780,-1.053824}, + {0.679393,-0.444330}, + {-1.560609,0.500156}, + {0.326860,-0.233930}, + {0.014115,1.226398}, + {-0.841667,0.256632}, + {-0.986458,0.214088}, + {0.561778,-0.293625}, + {-0.166624,-0.623391}, + {0.072308,-1.647830}, + {0.261475,0.207571}, + {-0.439805,-0.515374}, + {-0.903760,0.247456}, + {-0.992315,-0.455678}, + {-0.736917,-0.314349}, + {-0.760237,-0.334644}, + {-0.808025,0.764268}, + {0.962557,-0.746572}, + {-0.497432,0.389293}, + {-0.627429,0.078673}, + {0.281879,-0.521353}, + {-0.041629,0.996509}, + {0.148478,-0.832781}, + {0.241113,0.180056}, + {0.427418,-1.070871}, + {-0.528049,-0.483790}, + {-0.523555,-0.270324}, + {-0.304426,-0.037406}, + {-0.137959,1.438044}, + {0.928138,-0.431107}, + {0.158206,0.475620}, + {0.290347,-0.571426}, + {0.518227,-0.212278}, + {1.434704,-0.008646}, + {0.870633,0.309615}, + {-0.408402,-0.358914}, + {-0.932732,1.867362}, + {-1.106557,0.682544}, + {0.700628,0.050873}, + {0.606759,0.318505}, + {1.100808,0.865530}, + {1.167061,0.859812}, + {-0.457106,0.360329}, + {-0.412289,0.264824}, + {0.121729,0.471512}, + {-1.263924,0.036896}, + {0.592224,-0.981550}, + {-1.358297,-1.589214}, + {0.370305,0.206402}, + {-0.033672,-0.610428}, + {0.084157,-1.167364}, + {-0.925039,0.239143}, + {0.529815,1.166401}, + {0.059166,0.526304}, + {-1.093501,1.010147}, + {1.095547,-0.668412}, + {-0.013464,-0.212740}, + {0.318854,0.079713}, + {-0.582878,0.209336}, + {0.654810,0.042878}, + {1.084759,0.085261}, + {-0.816288,0.517988}, + {-0.922044,-0.145496}, + {-0.413527,-0.094974}, + {0.921929,0.223829}, + {0.834340,-0.632027}, + {0.740097,0.472727}, + {0.109634,-0.761616}, + {0.181177,0.801596}, + {-0.139230,0.351644}, + {-0.919758,1.187038}, + {-0.538770,-0.565291}, + {1.101719,0.094469}, + {0.063713,1.074669}, + {0.544651,-0.008236}, + {-0.043402,-0.182157}, + {-0.337167,-0.066716}, + {-0.942704,-0.275433}, + {-1.247517,0.659809}, + {0.260576,-0.850054}, + {0.328842,-0.795337}, + {-1.158718,0.621543}, + {0.696945,-1.559381}, + {-0.387067,-0.638698}, + {-0.196632,0.228895}, + {0.300199,0.872357}, + {0.989715,1.032305}, + {-0.595253,0.281982}, + {-0.591831,-0.041140}, + {0.274069,-0.351900}, + {-0.204608,-0.274791}, + {0.111010,1.228848}, + {-1.030237,-0.321911}, + {0.451188,-0.908440}, + {-1.157873,-1.048536}, + {-0.773016,-0.742834}, + {-0.068020,0.052725}, + {0.424745,-0.757197}, + {-0.495433,-0.890633}, + {0.095193,-0.673641}, + {-0.838353,0.958686}, + {-0.070324,0.364606}, + {0.240110,-0.379039}, + {0.814811,0.773006}, + {-0.123048,0.360797}, + {-0.383944,-0.049565}, + {-0.384357,0.170201}, + {0.027846,-0.520829}, + {0.509019,-0.721829}, + {1.510086,-0.121824}, + {0.461037,-0.152050}, + {-0.062760,0.456919}, + {0.903696,-0.632184}, + {0.147880,-1.655441}, + {0.107131,0.254212}, + {-1.168225,0.436568}, + {1.645891,0.720458}, + {0.637719,-0.054386}, + {-0.674512,-0.595368}, + {-1.647293,-0.454644}, + {-1.427878,-1.542565}, + {-1.299486,-0.638739}, + {-0.789832,0.890510}, + {-0.971617,0.239988}, + {1.162886,0.122570}, + {0.296613,0.157020}, + {-0.651558,-1.195472}, + {-0.483987,-0.676177}, + {-1.459346,0.226026}, + {-1.565833,-0.705405}, + {0.562608,-0.783332}, + {-0.335643,0.629401}, + {0.601555,-0.527161}, + {0.172194,-0.279522}, + {1.396232,1.176078}, + {1.057625,-0.239732}, + {0.925509,-0.621106}, + {-0.112643,-0.176105}, + {-0.224907,-0.088044}, + {-0.615717,0.351970}, + {-1.022447,-0.343888}, + {-0.611137,0.278950}, + {-0.611510,-0.059484}, + {-0.585823,-0.678989}, + {-0.601954,-0.562345}, + {-0.262591,1.266941}, + {-0.772093,0.174441}, + {-0.587666,0.893304}, + {0.111368,1.608418}, + {0.714706,-0.534446}, + {-0.771247,0.120513}, + {0.318155,0.438540}, + {2.023913,0.190916}, + {-0.212721,0.773555}, + {0.232401,0.319443}, + {-0.251844,-1.318009}, + {0.162669,0.403618}, + {0.827621,-0.529870}, + {0.250448,-1.073482}, + {0.059679,-0.063302}, + {-0.194909,0.064858}, + {0.480359,0.527630}, + {0.037879,0.460448}, + {0.486415,-0.957618}, + {0.451010,-0.068816}, + {0.968128,0.192947}, + {0.831207,-0.164804}, + {0.144330,-1.177113}, + {-1.046468,-0.117025}, + {1.453514,0.529669}, + {0.462780,0.519148}, + {0.355027,0.727646}, + {0.355796,0.311839}, + {1.776668,0.186074}, + {-1.419462,-0.435581}, + {-0.360595,-0.117783}, + {-0.309289,0.349530}, + {-0.530039,-0.873192}, + {-0.106943,0.925020}, + {1.306105,0.027449}, + {0.580964,0.705161}, + {1.478512,-0.101863}, + {-0.202531,0.738568}, + {-0.493564,-0.930668}, + {0.268006,0.343200}, + {0.459762,1.566772}, + {-0.160910,0.379268}, + {0.629888,-0.503718}, + {1.381070,-0.364317}, + {0.307948,-0.047268}, + {0.796512,-0.935058}, + {-0.700082,-0.972416}, + {-0.298262,-0.605478}, + {-0.323136,1.541209}, + {-0.195020,0.416722}, + {-0.086115,0.749763}, + {0.435675,-0.521759}, + {-0.104943,-0.146577}, + {1.092303,0.546935}, + {0.274549,0.086542}, + {0.505962,0.274669}, + {-0.720219,-0.028282}, + {0.761485,0.999235}, + {0.953266,0.149321}, + {0.633826,0.108976}, + {-0.930898,0.531887}, + {-0.401657,1.460128}, + {-1.032822,0.380031}, + {0.199604,0.147336}, + {-0.633607,-0.055812}, + {-0.316084,-0.492567}, + {-0.775544,-0.393868}, + {-0.304902,0.496941}, + {0.587243,0.404586}, + {0.535787,-0.290660}, + {0.526786,-0.492909}, + {0.032885,-0.335402}, + {0.254548,0.025119}, + {-0.007256,0.956603}, + {-0.781701,0.182978}, + {-0.594395,-0.051752}, + {1.137163,0.417077}, + {-0.725425,1.703746}, + {0.203050,-0.823786}, + {-0.093223,-0.599492}, + {-0.171074,0.434182}, + {0.446139,-1.024946}, + {1.307526,-0.924091}, + {0.165343,-0.061759}, + {0.847232,-0.364522}, + {-1.687820,-0.966855}, + {0.367350,1.007379}, + {0.462134,-0.629192}, + {1.480619,0.308647}, + {-0.480776,-0.412441}, + {-0.032728,0.426328}, + {-0.723946,0.349359}, + {-0.695635,0.225437}, + {0.093643,0.801008}, + {-1.148551,-0.246205}, + {-0.049321,-0.459364}, + {-0.241512,1.553192}, + {1.138608,1.302721}, + {0.263139,-0.527765}, + {0.172326,0.638467}, + {-0.425811,0.438227}, + {-0.932956,0.082939}, + {-0.145653,-0.835906}, + {0.099492,-1.396676}, + {-0.730089,-1.456065}, + {0.328898,0.922454}, + {-0.479136,0.168375}, + {-0.693307,-1.117508}, + {0.434907,0.255777}, + {0.159500,-0.075837}, + {0.606847,-1.786357}, + {0.114103,-0.890503}, + {0.475339,-0.639335}, + {-0.501279,0.909314}, + {-0.461021,0.340318}, + {-2.371022,0.240045}, + {-0.663024,-0.078565}, + {0.408487,0.747418}, + {-0.039952,0.544522}, + {-0.346095,-1.181014}, + {1.313543,1.313791}, + {-0.286968,0.049342}, + {-0.985057,0.416389}, + {0.567016,-0.890193}, + {-0.029613,-1.097792}, + {-0.274942,1.279869}, + {0.840626,-0.071335}, + {1.103612,-0.346434}, + {-0.971668,0.314411}, + {-0.401788,-0.159312}, + {0.876157,-1.020020}, + {-0.187758,-0.633080}, + {-0.737539,0.950549}, + {-0.537099,1.220313}, + {-0.354796,0.504951}, + {0.516333,0.303805}, + {0.744535,-0.050407}, + {-0.305368,0.196347}, + {-0.539320,-0.584686}, + {0.578355,0.192718}, + {-1.251327,0.031665}, + {-0.988681,-1.128213}, + {-1.076868,1.127315}, + {-0.652836,-0.331953}, + {-0.922967,0.220209}, + {0.721116,-0.345270}, + {0.102160,-0.184497}, + {0.724131,-0.729485}, + {0.311939,1.406437}, + {-0.687354,-0.482095}, + {-0.746110,0.490688}, + {-0.290505,-0.930634}, + {1.203664,0.171541}, + {0.798127,0.241126}, + {-0.347300,0.167841}, + {-0.383096,0.527781}, + {0.231403,-0.662014}, + {1.208195,-0.842100}, + {0.118811,0.382395}, + {-0.971162,-0.657731}, + {-0.109055,-1.321417}, + {-0.166172,1.000512}, + {0.245685,0.853006}, + {1.179090,0.148636}, + {-0.722005,0.218807}, + {-0.356529,0.394081}, + {0.283431,-1.474497}, + {-0.528565,-0.181279}, + {-0.309054,-0.447532}, + {-0.302059,-0.835447}, + {0.063289,0.197125}, + {0.873344,0.283293}, + {-0.827399,0.327898}, + {-1.445307,0.015543}, + {1.134014,0.449569}, + {0.026380,-0.550346}, + {-0.107964,0.656922}, + {0.551898,-0.361890}, + {1.354513,-1.238748}, + {0.259696,1.783583}, + {-0.954792,0.686831}, + {-0.745327,-0.404158}, + {0.454100,-0.837450}, + {0.087043,-0.950885}, + {0.505512,0.460524}, + {0.404887,0.789404}, + {-0.037236,0.441461}, + {1.725802,0.267412}, + {0.797967,0.244751}, + {-0.978130,0.515460}, + {0.542536,-0.075439}, + {0.712379,-0.497695}, + {-0.212806,0.608145}, + {0.577898,-0.192766}, + {0.489932,0.990213}, + {0.119053,-0.729816}, + {1.097182,-0.576013}, + {-1.201042,-0.794151}, + {-0.120795,0.066962}, + {0.146414,0.603197}, + {0.026528,-0.603082}, + {-0.800504,0.268076}, + {-0.343166,-0.407044}, + {-0.102762,-0.303068}, + {0.129492,1.346782}, + {-0.258398,0.169313}, + {1.243914,-0.592895}, + {1.095122,0.260779}, + {-0.600781,-0.189894}, + {0.240113,0.082414}, + {0.353061,0.355369}, + {0.420819,-0.911021}, + {0.696589,0.394239}, + {-0.682780,0.358780}, + {0.063955,-1.517855}, + {-0.322178,-0.074134}, + {-0.974101,1.406756}, + {-0.526017,-0.353056}, + {-0.640417,0.340377}, + {-0.182126,-0.411452}, + {-0.488776,-1.599695}, + {1.517429,0.767395}, + {0.603698,-0.721522}, + {0.541078,-0.821337}, + {0.110168,0.163595}, + {0.212353,-0.539387}, + {0.117418,-0.754495}, + {-0.155305,-0.255334}, + {-0.119331,0.141361}, + {-1.467100,-0.792509}, + {0.202781,0.268023}, + {-0.814643,-0.407787}, + {0.137034,-0.791640}, + {-0.789811,-0.493989}, + {-0.336780,-0.653000}, + {-0.759226,-0.386969}, + {0.455847,0.617339}, + {1.664504,-0.591428}, + {-0.206955,0.421407}, + {-0.567116,0.215310}, + {-0.634151,-0.216379}, + {-0.474751,0.577085}, + {0.580540,0.007682}, + {0.431102,-0.313646}, + {0.037617,-0.541906}, + {0.586028,0.437426}, + {1.122127,1.192700}, + {0.679301,0.617392}, + {-0.266514,0.750701}, + {1.021989,0.573764}, + {-0.471908,-1.137463}, + {-0.275688,-1.347824}, + {-0.260820,0.857808}, + {-0.353317,-0.507878}, + {1.482158,-0.115137}, + {0.989099,-1.264611}, + {-0.181237,-0.731317}, + {-1.272231,0.000604}, + {-0.050286,-0.518716}, + {0.906532,0.073988}, + {-0.725282,-0.708613}, + {1.130826,0.492829}, + {0.382025,0.118885}, + {-0.289855,0.327266}, + {-0.356868,-0.127456}, + {-0.497037,0.347544}, + {0.916516,-0.011213}, + {0.795788,0.833036}, + {-1.108708,0.654990}, + {1.098447,-0.380100}, + {-0.699273,0.774193}, + {0.342752,-0.535842}, + {0.047643,-0.227671}, + {1.274331,0.341689}, + {0.895537,-0.407677}, + {-0.778889,-0.038155}, + {0.698568,0.098739}, + {1.916364,-0.661903}, + {-0.845148,0.287349}, + {0.837011,-1.241308}, + {0.022716,-0.396469}, + {-0.020420,-0.034983}, + {-0.285681,-0.753360}, + {-0.118651,-1.527316}, + {-0.176143,0.446362}, + {0.130017,-0.415744}, + {0.318507,0.552840}, + {-0.603890,0.207048}, + {-0.523459,0.105243}, + {-0.002344,-0.410590}, + {0.476249,-1.748434}, + {0.110030,-0.295667}, + {-0.776678,-0.699187}, + {-0.336088,0.120044}, + {-0.132220,0.564894}, + {-0.400230,-1.465552}, + {-0.899290,0.326598}, + {-1.442301,-0.087643}, + {-0.008753,-0.630739}, + {0.390787,0.192346}, + {-0.340743,-0.440807}, + {-1.539744,1.205671}, + {0.627614,0.398445}, + {0.127486,0.357655}, + {0.135552,0.764774}, + {0.518036,-0.218960}, + {1.049276,-0.090579}, + {-0.008401,1.454761}, + {0.003514,0.918229}, + {0.302454,0.976231}, + {-0.961992,-0.017294}, + {0.076837,0.668940}, + {-0.348232,0.509916}, + {-1.436588,0.235003}, + {-0.084113,-0.570737}, + {0.635977,0.515143}, + {-0.580761,0.004320}, + {-0.130124,0.718512}, + {-1.064332,0.805427}, + {1.314300,-0.425192}, + {-0.597376,0.040773}, + {-0.369787,0.951658}, + {1.179303,0.302642}, + {0.309178,0.951243}, + {0.683143,-0.691633}, + {0.595706,-0.308229}, + {1.452309,0.693933}, + {-0.597845,0.801738}, + {0.458518,-0.343717}, + {-0.149173,-0.241056}, + {0.979689,0.240095}, + {-0.599037,0.543307}, + {0.354471,-1.145843}, + {-0.020165,-0.398078}, + {-0.123823,1.399765}, + {0.024307,0.255874}, + {0.390943,0.200198}, + {0.660994,-0.236146}, + {0.874927,0.787643}, + {0.171618,0.136452}, + {0.225134,0.175814}, + {-1.009673,0.213737}, + {0.778509,-0.536733}, + {0.659917,-1.701921}, + {-1.047737,-0.614887}, + {-0.561108,0.215661}, + {-0.185832,-0.245792}, + {-0.486231,0.531170}, + {0.116419,-0.145595}, + {0.019939,-0.695158}, + {0.144234,-0.507506}, + {-0.396990,-0.833085}, + {0.375825,-1.907635}, + {-0.080535,0.196175}, + {0.007163,0.589929}, + {-1.106312,-0.916138}, + {1.084560,-1.289281}, + {0.700913,-0.454858}, + {1.690164,-0.645198}, + {0.472295,0.365814}, + {-0.354035,-1.187006}, + {-0.363422,-0.700427}, + {-0.409595,-0.297748}, + {0.222860,-0.488023}, + {1.154380,-0.023766}, + {-0.572994,0.995388}, + {-0.522744,0.915831}, + {-0.102298,0.075968}, + {-1.113661,0.277819}, + {-0.541258,0.942888}, + {0.144149,-1.421493}, + {-0.813628,0.518374}, + {0.438114,-0.583365}, + {-0.306953,-0.083300}, + {-0.965428,-0.187021}, + {-1.651694,0.301327}, + {-0.358049,0.160427}, + {0.494740,0.212273}, + {-0.475793,0.129843}, + {-0.513566,0.206706}, + {-0.789498,-0.454014}, + {-0.506331,-0.677233}, + {-1.191360,-0.684613}, + {-0.473632,-0.505620}, + {1.704961,-0.000282}, + {-0.748426,0.044751}, + {0.722466,-0.271562}, + {-0.114380,-0.029615}, + {0.881983,0.732634}, + {-2.466091,0.797042}, + {0.107247,-1.069177}, + {0.365094,-0.240360}, + {0.860761,-0.392398}, + {0.419712,1.024297}, + {-0.733678,-0.114491}, + {-0.387299,-0.698591}, + {-1.111876,-0.894044}, + {-0.338478,0.432863}, + {0.374858,0.592964}, + {0.132022,-0.172552}, + {-0.566581,0.486986}, + {-0.361814,-0.127256}, + {-0.495429,-1.119817}, + {-0.373163,0.277704}, + {-0.451895,-0.150489}, + {0.676212,0.462474}, + {0.731097,0.067339}, + {-0.391580,-0.221534}, + {0.702811,0.805510}, + {0.306927,-0.330470}, + {0.202033,-0.281253}, + {0.670677,-1.640630}, + {-0.171426,0.129238}, + {0.855865,-0.001158}, + {0.902835,-0.314898}, + {0.258288,-0.817972}, + {-0.246663,-0.050172}, + {-1.298989,1.057827}, + {-0.194878,-0.869015}, + {-0.989629,-0.909738}, + {-0.566145,-0.028838}, + {-0.537190,-0.250192}, + {1.007348,0.083241}, + {0.351506,-0.080267}, + {0.167228,-0.274140}, + {0.523975,-0.383455}, + {-0.693140,-0.400584}, + {-1.377034,-0.099976}, + {0.687119,0.508089}, + {0.624748,-0.713680}, + {0.524963,0.852304}, + {-0.365119,1.391765}, + {-0.098955,-0.773518}, + {0.099686,0.092521}, + {-0.191519,0.113134}, + {-0.246630,-0.849187}, + {0.372718,-0.028201}, + {0.209208,0.168457}, + {0.531034,0.810682}, + {-2.065181,-0.403745}, + {1.662412,-1.025271}, + {0.116164,-1.358371}, + {0.871266,0.684274}, + {-0.601819,0.436820}, + {0.379071,-0.950469}, + {-1.481672,1.328396}, + {-0.215309,0.881097}, + {1.543692,-1.302871}, + {0.566876,-0.346706}, + {-0.107790,0.187282}, + {-0.050962,0.305967}, + {2.234456,0.245861}, + {0.922211,0.315870}, + {0.170718,0.332505}, + {-0.173235,0.269735}, + {-0.034479,-0.147379}, + {-0.910476,0.549261}, + {-1.482071,0.073635}, + {-1.006192,-0.257727}, + {1.380736,0.159414}, + {0.133536,-0.518567}, + {0.452510,-0.297029}, + {0.506554,0.634800}, + {-0.223515,-0.113593}, + {1.640303,-0.303890}, + {0.451081,-0.579022}, + {-0.423077,-0.310128}, + {-0.515610,0.197095}, + {1.449878,-0.575191}, + {0.595091,-0.861876}, + {0.467010,0.214356}, + {1.126815,-0.412791}, + {-0.768978,0.928791}, + {0.662096,0.992854}, + {-0.870112,0.867863}, + {-0.444760,0.695527}, + {0.545433,0.548246}, + {0.900893,1.440884}, + {1.009321,-1.093170}, + {0.002783,-0.661035}, + {0.446845,-0.962453}, + {1.071007,0.104193}, + {0.701488,0.155886}, + {-1.495756,-1.595266}, + {0.037920,-0.027757}, + {-0.816584,0.442122}, + {1.024597,0.061760}, + {0.372463,0.656436}, + {0.193900,-1.113707}, + {0.702296,0.063060}, + {-0.387018,0.640494}, + {0.472535,0.526097}, + {-0.113295,-0.461936}, + {-0.549302,-0.072353}, + {0.113877,1.728784}, + {-0.503031,0.465992}, + {-1.800512,0.344290}, + {-0.291058,0.191364}, + {-1.383239,-0.639046}, + {0.301438,0.939880}, + {-0.887944,0.532416}, + {-0.337686,-1.497391}, + {-0.273128,0.170892}, + {-0.187554,1.292625}, + {-0.335620,0.813804}, + {0.302649,0.115870}, + {-0.125463,0.244516}, + {0.775593,0.754042}, + {0.726695,-0.656969}, + {0.888387,-1.134760}, + {1.275522,-0.250979}, + {-0.736736,-0.023197}, + {-0.722655,0.071534}, + {0.398133,-0.225856}, + {-0.158094,-0.713822}, + {-0.187789,1.530984}, + {0.066136,-0.285781}, + {0.337437,0.069203}, + {-1.522060,0.359290}, + {-0.410925,0.715260}, + {-0.348957,0.792795}, + {-0.822869,0.817856}, + {0.215875,-0.611351}, + {-0.606455,0.320282}, + {1.436453,-0.107341}, + {-0.330349,-1.194834}, + {0.572256,1.303348}, + {1.090097,1.118251}, + {0.745744,-0.906311}, + {-1.122036,-0.363927}, + {-0.352830,0.069443}, + {0.173709,0.298217}, + {1.233522,0.305900}, + {0.226477,-0.043980}, + {-0.722420,0.493256}, + {0.557195,0.058823}, + {-1.094416,-0.312172}, + {0.071648,0.977559}, + {-0.387061,0.773792}, + {0.338082,-0.019251}, + {0.163224,-0.330960}, + {0.610427,0.371691}, + {0.323763,-0.522994}, + {-0.668372,-0.370236}, + {1.242604,0.090453}, + {-1.050305,-0.440150}, + {0.388379,-0.214487}, + {-0.479460,-0.280957}, + {-0.581688,0.708546}, + {-0.651918,-0.699252}, + {-1.289294,0.894307}, + {0.430920,1.134885}, + {-0.140695,0.119391}, + {-0.113397,0.141629}, + {-0.224160,-0.849461}, + {0.145152,1.010905}, + {0.114341,0.319432}, + {-0.731503,0.963791}, + {-0.805791,-0.234161}, + {-0.097786,-0.078454}, + {1.247790,0.056807}, + {-0.066401,-0.334968}, + {0.675039,-0.744820}, + {-0.181113,-0.290322}, + {0.651336,0.530368}, + {-1.249633,-0.321314}, + {-0.289785,0.448466}, + {0.666290,1.196834}, + {0.623286,-0.328105}, + {-0.469083,0.311728}, + {-0.641303,-0.664674}, + {-0.033907,-0.670533}, + {0.177868,1.697506}, + {-0.216707,0.202837}, + {-0.186939,-0.529367}, + {0.022609,-0.126800}, + {0.203477,-0.579855}, + {-0.230490,1.011908}, + {0.162921,1.168193}, + {0.885725,-0.666452}, + {0.277346,0.026881}, + {0.127636,-0.291993}, + {0.343859,0.254767}, + {0.937021,-0.240389}, + {-0.450499,-0.519208}, + {0.026306,0.871227}, + {-0.532201,0.361956}, + {0.510303,-0.387441}, + {-0.746218,0.107938}, + {-0.043113,0.416857}, + {-0.765734,-0.057674}, + {-0.976013,-0.471322}, + {-0.608322,-0.386790}, + {-0.153345,-0.142873}, + {0.282707,-0.174705}, + {0.908893,-0.288510}, + {1.248578,-0.267686}, + {-0.733607,-0.318778}, + {0.711804,0.106524}, + {0.730638,-0.818837}, + {-0.143297,0.775292}, + {0.826449,-0.764265}, + {-1.053740,0.429313}, + {0.093451,-0.285474}, + {0.092797,-1.313155}, + {-0.990341,-0.497315}, + {0.566588,0.912216}, + {-0.641365,-1.513570}, + {-0.399701,0.419908}, + {0.550336,0.454210}, + {1.130919,-1.011306}, + {-0.648588,0.724713}, + {1.530720,-0.329322}, + {0.240109,0.297342}, + {-0.803036,-0.672687}, + {0.558095,0.210214}, + {-0.415771,0.335389}, + {-0.446871,-0.080301}, + {0.439153,0.420859}, + {0.454300,-0.120721}, + {0.210916,-0.112178}, + {-0.409692,-0.248721}, + {-0.879181,-0.650745}, + {0.314275,0.157443}, + {-0.127992,0.459773}, + {0.189201,-0.437353}, + {-0.199317,0.335634}, + {0.926867,-1.219475}, + {0.990475,0.115756}, + {-0.596768,0.519271}, + {0.544668,0.177830}, + {0.025311,0.718018}, + {0.865983,-0.396329}, + {0.931238,0.051218}, + {-1.306796,0.890281}, + {-0.038267,0.417608}, + {0.423411,0.011136}, + {-0.591386,-0.028572}, + {-0.659057,-0.868477}, + {-0.454503,-0.183610}, + {-1.296091,0.623354}, + {-0.369003,-1.032546}, + {0.687142,-0.539728}, + {0.702910,0.311785}, + {0.486632,-0.654871}, + {-0.698156,0.479333}, + {-0.286491,0.023513}, + {-0.061237,0.264710}, + {0.815363,-0.724906}, + {0.080431,0.452235}, + {0.209167,-0.366842}, + {0.238600,-1.015582}, + {0.236585,1.119290}, + {0.115878,-0.511488}, + {0.417193,-0.342133}, + {-0.132619,-0.383681}, + {-0.309108,-0.467185}, + {0.389856,-0.296845}, + {0.862805,-0.845385}, + {0.163740,-1.328876}, + {0.841628,-1.134586}, + {-1.314638,0.983453}, + {0.007594,-0.151851}, + {0.491880,0.589396}, + {0.410562,-0.533815}, + {0.152744,-0.382076}, + {-0.814165,-0.726665}, + {-1.054786,0.399620}, + {-0.604055,0.219815}, + {0.195637,-1.204522}, + {-0.218163,0.389220}, + {-1.060887,-0.365853}, + {0.076152,0.972619}, + {0.106557,-0.550138}, + {0.350506,-0.580934}, + {0.899491,-1.202793}, + {0.006987,-0.237220}, + {-0.621779,0.109460}, + {0.758860,0.378667}, + {0.665073,0.149904}, + {0.514973,-1.076146}, + {-0.531363,-0.151537}, + {-0.160327,-0.372274}, + {1.439986,-1.868230}, + {0.189739,0.119885}, + {0.203151,1.214735}, + {0.227369,-0.449251}, + {-0.320953,1.173650}, + {0.362700,-0.413635}, + {0.104156,0.742685}, + {0.786895,0.217765}, + {0.461444,-0.383361}, + {-0.026425,0.050263}, + {-0.700833,-0.176479}, + {0.516268,-0.266494}, + {0.542822,-0.196286}, + {0.972150,0.282374}, + {0.373345,-1.661969}, + {0.848982,-0.275416}, + {-0.147993,0.557783}, + {-1.235018,-0.425926}, + {-0.990208,-0.819959}, + {-0.502916,0.897826}, + {-0.963431,0.100756}, + {-0.539236,-0.495820}, + {0.043163,-0.313743}, + {0.268113,-0.401802}, + {0.094456,0.929705}, + {0.434827,0.666465}, + {-0.285961,0.540364}, + {-0.067659,0.148652}, + {-0.343734,1.625959}, + {0.941489,-0.334072}, + {-0.339727,-0.526445}, + {0.793149,0.946932}, + {-0.398235,0.623877}, + {0.264790,-0.715621}, + {-1.011724,0.322794}, + {1.384937,0.455970}, + {1.454257,0.048507}, + {-0.306816,-1.428050}, + {0.370468,0.733515}, + {0.850482,0.067026}, + {-0.026520,0.315161}, + {0.553367,-1.038959}, + {-1.381139,0.169341}, + {-0.126396,0.774954}, + {0.579820,-0.324341}, + {0.690277,-0.552866}, + {0.042603,0.250999}, + {0.234958,-0.328548}, + {-0.034987,-0.427424}, + {0.017550,1.027859}, + {0.639405,0.074327}, + {-1.079853,0.773206}, + {-0.255093,-0.538056}, + {-0.516779,0.552364}, + {0.588249,-0.122769}, + {-0.180270,-0.526765}, + {0.281459,-0.573820}, + {-0.597178,0.884251}, + {-1.459452,0.521668}, + {0.475132,0.670896}, + {0.364260,-0.003726}, + {0.162263,1.430702}, + {1.002323,1.191997}, + {0.593734,1.105144}, + {0.455673,-1.069412}, + {-0.566892,-0.153912}, + {-0.401493,0.730293}, + {-0.616850,-0.357030}, + {0.131704,0.877433}, + {0.448159,0.531570}, + {0.707994,0.388152}, + {-1.120399,-1.558184}, + {0.205040,0.110543}, + {0.667577,0.900941}, + {-1.023609,-0.438459}, + {0.592556,-0.786459}, + {-0.218398,-0.203380}, + {0.274252,0.404389}, + {-0.458191,1.011445}, + {0.222179,0.858687}, + {0.029628,-0.040130}, + {-0.290997,-0.035703}, + {0.309122,-1.492022}, + {-1.010844,0.589316}, + {-0.356162,0.305040}, + {0.261650,0.718863}, + {0.434287,0.022466}, + {-0.076320,-0.343857}, + {0.183141,1.026684}, + {0.784650,0.184908}, + {0.701212,0.267810}, + {0.525909,1.299042}, + {-1.685660,0.350329}, + {-0.593831,-0.228072}, + {0.017935,0.860203}, + {0.840364,-1.130071}, + {1.015367,1.442451}, + {-0.901634,-0.746853}, + {0.199565,-0.821338}, + {-0.313785,0.748286}, + {0.090435,0.856189}, + {-0.393746,1.621984}, + {-0.703148,0.813511}, + {-1.461475,0.879518}, + {0.943104,-0.598617}, + {0.393415,-0.321067}, + {0.352488,-0.808631}, + {-0.262355,0.074378}, + {0.444508,0.028535}, + {-1.235967,0.087614}, + {-0.366743,0.274720}, + {-1.534213,1.187011}, + {-1.288413,1.152383}, + {-0.176366,0.392408}, + {-0.479891,-1.289108}, + {0.006065,-2.244152}, + {-0.200774,0.584892}, + {0.841201,0.359442}, + {0.042903,0.605595}, + {-0.050008,0.526026}, + {0.545172,0.114942}, + {-0.741202,0.452490}, + {-0.662675,0.502251}, + {-0.293925,0.361124}, + {-0.174266,0.891888}, + {0.214914,-0.044729}, + {1.076459,-0.324856}, + {0.028362,-0.712596}, + {0.119129,0.420191}, + {0.290109,-1.690392}, + {-0.534984,-0.709829}, + {0.928031,0.340022}, + {0.329803,-0.001821}, + {-0.789933,-0.997637}, + {0.525651,-0.947355}, + {0.800005,0.294846}, + {-0.940716,-0.342722}, + {1.153485,-0.757920}, + {-0.372701,-0.015358}, + {0.413703,0.474207}, + {0.554610,-0.587293}, + {0.609088,0.282538}, + {-0.389165,-0.999838}, + {-0.501062,0.425428}, + {0.506568,0.864824}, + {0.467536,0.041527}, + {0.413553,-0.972673}, + {-0.784710,-0.456333}, + {-0.591675,-0.081141}, + {-0.000096,-0.918489}, + {-0.741971,-0.673887}, + {0.423698,0.133942}, + {-0.353825,-0.248892}, + {0.265903,1.104794}, + {1.155745,-0.487131}, + {-1.230837,1.182218}, + {-0.039358,-1.024105}, + {-0.126243,-0.422831}, + {0.083741,1.333631}, + {-0.582043,-0.167835}, + {-0.651064,-0.716060}, + {-0.933496,1.031392}, + {0.285776,0.119386}, + {1.790267,1.839585}, + {0.673148,-0.036901}, + {0.060941,0.392402}, + {0.439779,0.335930}, + {0.482075,-0.508116}, + {0.166439,-0.478669}, + {1.468145,0.050076}, + {0.697232,0.408675}, + {-0.276139,0.399703}, + {0.376897,-0.613126}, + {0.465563,-1.169737}, + {-1.834874,0.539662}, + {-0.091337,0.444562}, + {-0.997118,0.098997}, + {-0.233274,-0.598737}, + {-0.989027,-1.117883}, + {0.624755,0.428710}, + {-0.375702,-1.212512}, + {-1.056685,0.388795}, + {-0.909594,0.317522}, + {-0.356905,-0.074151}, + {0.524995,0.703629}, + {0.314174,-0.403816}, + {-0.491192,1.182237}, + {-0.926085,-1.084090}, + {-0.017806,0.842876}, + {0.440742,-0.130747}, + {0.272952,0.081986}, + {0.441477,-0.697158}, + {0.259341,-2.099767}, + {0.831863,-0.033636}, + {-0.502615,-1.206727}, + {0.555998,0.859499}, + {-2.056364,0.396201}, + {0.341466,0.784581}, + {0.343672,1.187463}, + {1.274795,-0.151500}, + {-0.628121,1.454649}, + {0.565032,-0.448605}, + {-0.207750,-0.820005}, + {1.175663,0.211856}, + {-1.633000,1.122887}, + {-0.291601,2.700069}, + {-0.622804,1.831482}, + {-0.301059,0.509034}, + {-0.427513,0.001459}, + {-0.341017,-0.116875}, + {0.022551,-0.314193}, + {-0.918960,-0.674715}, + {-0.129296,-0.117801}, + {0.786287,-1.378251}, + {-0.451442,-1.084505}, + {0.942049,-0.109402}, + {-0.219356,-0.655816}, + {-0.878586,0.229613}, + {0.675175,-0.893381}, + {-0.932964,-1.161234}, + {0.214065,-0.396179}, + {-0.277875,1.353829}, + {0.086688,-0.992670}, + {0.266658,1.190433}, + {-0.665654,0.447818}, + {-1.073475,-0.902468}, + {0.561274,1.066952}, + {0.439581,1.398037}, + {-0.038367,-0.253666}, + {-0.180841,-0.607550}, + {-0.663332,0.315716}, + {-0.204138,-0.260854}, + {1.300259,0.483273}, + {0.488196,-1.506948}, + {-1.576188,-0.122042}, + {-0.161309,-0.070824}, + {-0.163122,-0.342865}, + {-0.647706,1.966371}, + {-0.912235,-1.511959}, + {0.246138,-0.881132}, + {-0.400870,-0.146707}, + {1.873068,-0.401651}, + {-0.246960,1.020948}, + {-0.309774,-0.749670}, + {-1.658745,0.706234}, + {0.137746,0.464169}, + {-0.128249,1.229660}, + {0.485569,-0.862653}, + {-0.314748,-0.798912}, + {0.596327,-2.260403}, + {-0.739134,-0.774303}, + {0.559885,2.133758}, + {-0.378982,-0.458096}, + {-0.645429,-0.411828}, + {0.442957,0.412317}, + {0.062638,-0.130068}, + {0.913193,0.872129}, + {-0.000645,-0.659925}, + {-0.611296,0.051654}, + {0.463594,0.106210}, + {-0.172544,0.250975}, + {-0.820128,0.059186}, + {1.244089,-0.241306}, + {-0.606408,0.162598}, + {-0.516257,-0.453431}, + {0.379360,-0.010924}, + {1.694404,-0.098512}, + {0.740398,-1.163674}, + {-0.086404,0.808617}, + {-0.788179,0.497859}, + {0.518954,1.316377}, + {-0.268101,-0.000552}, + {-0.011397,0.127380}, + {-0.776983,1.310111}, + {1.155819,-0.536423}, + {0.325867,0.129875}, + {-0.305559,1.698206}, + {1.469264,1.171590}, + {0.052020,1.645200}, + {-0.475098,0.752333}, + {-0.478576,1.051189}, + {0.209720,-0.846175}, + {0.336027,1.281707}, + {-0.457927,0.978607}, + {0.434299,0.603314}, + {0.819164,-0.707148}, + {0.285992,0.200020}, + {0.903948,0.841191}, + {-0.374723,0.784422}, + {0.270358,-0.432780}, + {-1.131503,-0.204865}, + {0.998721,-0.562161}, + {2.709929,0.333403}, + {0.277214,-0.599034}, + {-1.049311,0.119009}, + {-0.022257,-0.188019}, + {1.186738,0.666140}, + {0.855026,-0.173047}, + {-0.518785,0.244153}, + {1.443967,0.472201}, + {0.268845,0.765957}, + {-0.262575,-0.227543}, + {-0.178477,-0.237919}, + {0.718803,-1.198294}, + {0.296576,-0.928266}, + {-0.265587,0.333848}, + {0.004683,0.050916}, + {0.746835,-0.077362}, + {-0.848756,0.639052}, + {-0.435768,0.677006}, + {-0.761960,-0.673618}, + {0.483697,-0.006953}, + {0.859446,0.342013}, + {0.652033,1.150497}, + {0.279404,0.172724}, + {-1.654868,-0.062761}, + {-0.628006,1.229600}, + {0.434866,0.453249}, + {0.674872,-0.018098}, + {-0.880481,0.632858}, + {0.357744,-1.100971}, + {0.576850,-0.473425}, + {1.084853,-0.458153}, + {-0.135107,-0.068785}, + {-0.519318,-1.097185}, + {-0.391322,-0.857973}, + {0.105697,0.637781}, + {1.012647,0.768231}, + {0.032431,-0.712690}, + {-0.204606,-0.459269}, + {0.385121,0.683265}, + {0.360634,-0.324071}, + {0.146076,-0.206186}, + {-0.206886,-0.280858}, + {0.331549,-0.657394}, + {0.877392,0.663666}, + {0.395278,0.505377}, + {0.756041,0.859819}, + {-0.571644,-0.580026}, + {0.612494,-0.767403}, + {0.440062,-0.276920}, + {0.205130,0.951105}, + {-0.082089,0.424510}, + {-0.388500,-0.817454}, + {-0.297097,-0.030734}, + {0.564334,0.170313}, + {-0.046735,-1.039128}, + {0.236019,-0.606694}, + {0.580484,0.228738}, + {0.732596,1.402753}, + {0.684455,0.312711}, + {-0.114287,0.351727}, + {0.132644,0.482891}, + {-0.052996,0.413845}, + {-0.092510,0.323390}, + {-1.249163,0.744762}, + {-0.144000,-0.150784}, + {0.245751,-0.037541}, + {-0.265020,0.824606}, + {0.166448,-0.503386}, + {0.221548,1.011519}, + {0.705554,0.734803}, + {-0.449412,0.766934}, + {-0.041904,0.103437}, + {-0.589535,0.745306}, + {0.178707,0.543289}, + {-0.049604,0.417483}, + {-1.320194,0.671440}, + {0.618327,0.293337}, + {-0.035204,-0.955884}, + {0.696789,0.975314}, + {0.335561,-0.397880}, + {-0.101238,-0.789334}, + {-1.353433,0.224343}, + {-1.536268,0.154368}, + {0.290941,0.264984}, + {0.054972,0.497049}, + {0.249733,0.304852}, + {0.072880,0.649790}, + {-1.092497,-0.508302}, + {-0.580980,-0.404179}, + {0.684158,1.161387}, + {1.027268,0.419341}, + {-0.575905,0.422229}, + {-0.586725,0.243471}, + {1.044492,0.197131}, + {-0.818624,-0.339106}, + {1.028786,0.649399}, + {0.128927,0.552989}, + {-0.381191,-0.812393}, + {0.255808,-0.783620}, + {-1.000067,-0.814667}, + {0.937145,0.594671}, + {-0.138406,0.009326}, + {0.646863,0.329219}, + {0.114717,0.727041}, + {0.534733,-0.274257}, + {-0.076583,2.064369}, + {-0.061055,0.387069}, + {0.587603,-0.573761}, + {-1.432342,0.080705}, + {0.517872,-0.933701}, + {0.257925,-1.369532}, + {-0.882056,0.033029}, + {0.272729,-0.396548}, + {0.898916,0.232792}, + {-0.323588,0.996638}, + {1.414689,-0.936268}, + {-0.063766,0.848570}, + {-0.631058,-1.026964}, + {0.144042,-0.577972}, + {0.620716,-0.672317}, + {1.311640,0.177935}, + {0.355140,-0.394373}, + {-0.892820,0.040002}, + {0.669596,-1.423798}, + {-0.728338,0.281565}, + {-0.158685,-0.108162}, + {0.294872,0.143540}, + {0.154297,0.845158}, + {-0.614381,0.567366}, + {0.342103,1.116219}, + {0.264975,-1.064063}, + {-0.177622,-0.849517}, + {-0.539107,0.444928}, + {0.552126,-0.015861}, + {-0.212621,0.081190}, + {-0.653462,-0.566566}, + {0.092306,-0.221675}, + {1.100202,0.129533}, + {1.004146,0.906987}, + {-0.450678,-0.139092}, + {-0.041574,0.880738}, + {1.077768,0.691243}, + {0.683594,1.009049}, + {-0.782169,1.735141}, + {0.450257,0.439635}, + {0.529029,0.258264}, + {1.138549,1.986809}, + {-1.302507,0.020303}, + {-0.283556,0.445303}, + {-0.718645,-0.162901}, + {-0.043436,0.596306}, + {-0.253106,1.007761}, + {0.511255,-0.417590}, + {0.747033,0.272022}, + {-0.558437,-0.347778}, + {0.160240,-0.682185}, + {-0.958911,-0.030034}, + {-0.156077,0.031554}, + {-1.151408,0.317689}, + {-0.063615,0.309607}, + {0.652097,-0.090736}, + {0.093596,0.162455}, + {-0.179022,1.654394}, + {-0.242415,-1.079423}, + {0.397297,-1.272118}, + {-0.182965,0.130558}, + {-1.227359,0.503225}, + {0.010313,0.859745}, + {-0.230950,-0.566212}, + {-0.237624,0.329725}, + {0.962370,-0.180738}, + {-0.382887,-0.314282}, + {-0.606405,1.263377}, + {0.178244,-0.050770}, + {1.157081,-0.144043}, + {1.081460,-0.125683}, + {0.287172,0.296327}, + {-0.145758,0.931086}, + {-0.235046,0.421208}, + {-0.476461,0.823257}, + {-0.425877,-0.436417}, + {-0.164299,0.097882}, + {0.438670,0.627963}, + {-0.690073,0.733569}, + {0.386280,-0.534213}, + {-1.074264,-0.832657}, + {0.059724,0.429346}, + {0.241225,-1.310186}, + {-0.041200,-2.185164}, + {0.104350,0.419205}, + {0.259056,-0.248550}, + {1.271667,0.475120}, + {-0.218242,1.164193}, + {0.346768,-0.150378}, + {-0.846548,0.308488}, + {-1.063304,-0.776317}, + {1.166478,-0.454347}, + {0.033053,0.179463}, + {-0.332293,-0.312112}, + {-0.403124,-0.863969}, + {-0.115242,0.881201}, + {-0.443942,-0.049482}, + {0.576722,0.121133}, + {1.115690,-0.395430}, + {-0.967709,-0.283118}, + {0.238138,0.015244}, + {-0.346183,-0.321679}, + {-0.184817,-0.803985}, + {0.428226,-0.424139}, + {0.294728,1.082187}, + {0.146915,-0.379303}, + {-0.524167,0.099747}, + {0.586104,-0.292682}, + {0.078394,0.960573}, + {1.670460,0.570454}, + {0.535695,0.279784}, + {-0.059247,1.179067}, + {0.193284,0.103453}, + {0.198475,1.316057}, + {-0.354204,-0.801039}, + {-1.095112,-0.629114}, + {-0.739693,0.109626}, + {-0.669776,-1.101214}, + {-1.119037,-0.827679}, + {-0.697044,0.582501}, + {0.670182,-0.339850}, + {1.052632,-1.151181}, + {-0.013924,-0.148582}, + {0.676350,-0.382496}, + {-0.609900,0.145339}, + {-0.467053,-1.060301}, + {0.329805,1.116336}, + {-0.657195,-0.381897}, + {0.144469,0.365412}, + {-0.455678,0.492839}, + {0.164257,-0.588328}, + {-0.215978,-0.137108}, + {0.885806,0.550884}, + {-0.512770,-0.358695}, + {-0.059087,0.164926}, + {-0.401278,-0.857801}, + {0.648031,-0.168120}, + {-0.175814,-0.106801}, + {1.103215,-0.147023}, + {-0.173378,-1.161128}, + {0.048200,0.186641}, + {0.382578,0.367532}, + {0.470646,0.681831}, + {-0.094808,0.385076}, + {-0.227419,-0.100211}, + {0.752327,1.031990}, + {0.325679,-0.929947}, + {-1.252363,0.747342}, + {0.611128,0.470173}, + {-0.717586,-0.267591}, + {-1.351702,0.677071}, + {-0.216029,0.531468}, + {0.115357,0.016478}, + {-1.068851,1.084321}, + {0.464010,0.510275}, + {1.225770,-0.765537}, + {0.508388,-0.879914}, + {-0.865601,-0.344538}, + {0.685346,0.515833}, + {-0.637203,-0.617789}, + {0.279486,-0.543520}, + {0.897987,-0.208160}, + {-0.677693,-0.780875}, + {-0.760403,0.397810}, + {0.184177,0.176928}, + {-1.069590,-0.614911}, + {-0.132476,0.356640}, + {-0.036611,-1.348685}, + {0.173300,0.074283}, + {0.665913,0.252531}, + {0.876800,0.368352}, + {0.239620,1.213974}, + {0.392571,0.197044}, + {1.445377,1.168005}, + {-0.351908,-1.245911}, + {-0.200333,-0.246884}, + {1.165079,0.269904}, + {1.102148,0.936739}, + {0.415018,-0.692267}, + {0.695930,-0.610682}, + {0.337706,-0.194200}, + {-0.406360,-0.428313}, + {2.001919,0.298601}, + {0.040240,0.021280}, + {0.476985,-0.207150}, + {-0.955785,2.342469}, + {0.167188,0.627934}, + {0.278484,-0.586048}, + {-0.908941,0.243936}, + {-0.146000,-0.877617}, + {0.192032,-0.244236}, + {0.975606,0.244268}, + {-0.170990,0.257347}, + {0.764497,-0.551919}, + {0.058791,0.682466}, + {0.065943,-0.984803}, + {-0.912431,0.368831}, + {0.855040,0.067306}, + {0.749915,-0.835586}, + {0.838403,-1.238493}, + {-1.483938,-0.123001}, + {-0.557550,-0.923933}, + {-0.771014,0.386390}, + {0.273899,-0.385988}, + {0.750930,-0.659754}, + {0.777048,1.433688}, + {-0.209220,0.937272}, + {0.205420,-0.235356}, + {0.414937,0.418160}, + {0.718236,-0.451301}, + {-0.186269,-1.322922}, + {-1.920077,0.476052}, + {-1.398596,0.784435}, + {-0.256580,0.180031}, + {-0.532659,0.457304}, + {-0.384892,-0.039057}, + {-0.055613,-0.548142}, + {0.527916,0.194822}, + {0.823368,-0.281136}, + {0.619060,-1.874924}, + {1.444115,0.480538}, + {-0.819634,0.380911}, + {-0.423061,-0.352648}, + {0.834671,1.128296}, + {-0.327942,-0.116678}, + {-0.313019,0.264847}, + {-0.887367,-0.196781}, + {0.102331,-0.425392}, + {0.586136,-0.513125}, + {-0.392544,0.760032}, + {0.048821,-0.120578}, + {-0.659257,1.355152}, + {0.071198,-0.123784}, + {-0.611575,-0.162787}, + {0.600874,0.427984}, + {-0.438527,-0.718199}, + {1.021030,-0.206658}, + {-0.040177,0.469484}, + {-0.097920,0.431053}, + {-0.227448,0.032859}, + {0.438377,-0.490723}, + {-0.127967,-0.318678}, + {0.530951,-0.205032}, + {0.306926,-1.611728}, + {-0.155619,0.005610}, + {0.364185,1.075986}, + {-0.355830,1.056994}, + {-0.416081,0.881061}, + {-0.168114,0.891871}, + {0.318273,0.022034}, + {0.045802,-0.498750}, + {0.874723,-0.261830}, + {2.041322,0.581367}, + {-0.434688,-0.889884}, + {-0.625497,-1.424039}, + {-0.916101,-0.012513}, + {0.301928,-0.119459}, + {0.054875,0.719308}, + {0.113292,-0.985813}, + {-0.256198,1.240920}, + {0.110794,0.058590}, + {0.475235,0.043136}, + {0.265904,0.466909}, + {0.569717,1.513256}, + {2.460579,0.347629}, + {-0.583997,-0.395316}, + {1.412936,-0.136881}, + {0.257743,-0.020675}, + {-0.773710,0.598378}, + {-0.155740,0.175291}, + {0.708158,-0.303414}, + {0.128797,-1.688465}, + {-0.944673,0.178251}, + {-0.419667,-0.800480}, + {1.015229,0.451624}, + {-0.563132,-0.098941}, + {1.022619,0.269203}, + {0.544089,-0.558886}, + {0.285403,-0.945592}, + {-0.249927,-0.639200}, + {0.616154,0.448953}, + {1.538937,0.176176}, + {-1.072722,-0.731432}, + {2.202183,-1.085427}, + {-0.187007,0.862339}, + {-0.009781,-0.919787}, + {0.882595,-0.224292}, + {0.328335,-1.466478}, + {-0.425207,-0.406182}, + {0.230537,0.884368}, + {-0.295215,-0.639698}, + {-1.490884,0.427221}, + {1.247354,0.295467}, + {-0.810296,0.889553}, + {1.136726,0.000428}, + {-0.448626,-0.265578}, + {-0.375165,-0.970000}, + {-0.029743,1.329743}, + {0.191118,-0.149061}, + {-1.198112,0.166633}, + {-1.072263,0.604945}, + {1.319951,0.678233}, + {-0.286881,1.447051}, + {-0.000431,-0.790107}, + {-0.927154,-0.720568}, + {1.244388,0.126044}, + {0.361372,-0.563810}, + {1.786158,0.068526}, + {0.652693,-0.233381}, + {-0.956019,-0.446398}, + {-1.257622,-0.253433}, + {0.262294,0.421673}, + {1.178025,0.259483}, + {-0.138056,0.076554}, + {-0.338284,-0.760501}, + {0.238752,-0.363470}, + {-0.467720,-0.613917}, + {1.727196,-2.032936}, + {0.453188,1.148454}, + {-0.860575,-0.211261}, + {-0.134673,-0.149191}, + {0.089986,-0.837997}, + {-0.421324,0.572281}, + {-0.154263,0.793297}, + {-0.068541,-1.226925}, + {-1.024731,1.765286}, + {0.321293,-0.655162}, + {-0.381602,0.084867}, + {-0.761043,0.072325}, + {-0.153164,-0.580169}, + {1.095428,-0.725517}, + {-1.360859,-0.509727}, + {-0.015713,1.146405}, + {0.080499,0.991718}, + {-0.037406,0.203660}, + {0.437657,0.772791}, + {-0.335827,-0.643198}, + {-0.748036,1.554296}, + {0.056139,0.540525}, + {0.855326,1.251389}, + {1.512833,0.127560}, + {-0.335811,-0.685869}, + {0.049175,-0.612331}, + {0.744695,0.303599}, + {0.086665,0.554790}, + {-1.437300,-0.698848}, + {1.208241,0.809530}, + {-0.368646,0.188188}, + {0.918053,2.303752}, + {0.542692,0.198394}, + {0.895487,-1.142547}, + {1.427584,-0.139881}, + {0.366063,-0.559492}, + {0.615816,-0.518515}, + {1.683531,0.689662}, + {-0.561367,0.740093}, + {0.136173,0.685102}, + {0.676639,0.746691}, + {0.409337,-1.146213}, + {-0.636375,0.027888}, + {0.588745,0.274056}, + {-0.722872,0.098504}, + {-0.671533,0.012166}, + {1.011527,0.719796}, + {0.081135,-0.237933}, + {-0.318500,0.963256}, + {-0.817222,0.191993}, + {-0.244338,0.114244}, + {-0.596279,-0.365810}, + {-0.075441,1.479957}, + {-0.791400,0.528275}, + {0.028476,-0.288631}, + {0.165929,-0.171160}, + {0.275183,0.915583}, + {0.295522,-0.680658}, + {0.488326,0.104785}, + {-0.735568,-0.701452}, + {-0.082936,-1.234151}, + {-0.944770,0.415823}, + {-0.723673,0.661138}, + {0.020222,-0.209032}, + {0.744207,1.798693}, + {-0.650645,0.033519}, + {-1.346394,-1.296518}, + {0.979960,-1.559900}, + {0.346991,-0.097270}, + {0.844271,-0.832661}, + {-0.627946,-0.340953}, + {0.648317,-0.668772}, + {1.035056,0.096494}, + {-0.374343,0.301709}, + {-1.959191,0.184104}, + {0.354760,0.554715}, + {0.461264,-0.291802}, + {-1.445191,-0.676835}, + {-0.390066,0.002849}, + {-1.243483,-0.254016}, + {0.756660,-0.152519}, + {0.449951,-0.361801}, + {0.032053,0.448066}, + {0.301092,-0.018617}, + {0.919110,-1.106308}, + {0.688230,-0.751883}, + {1.443475,0.290925}, + {-0.336814,-0.202997}, + {0.194678,0.132777}, + {0.438428,-0.932498}, + {-0.005527,-1.612383}, + {-0.065145,-0.331485}, + {0.569241,0.575176}, + {-0.973392,0.141843}, + {-2.301017,0.881275}, + {0.784561,0.317932}, + {-0.077933,0.914512}, + {0.087316,-0.135682}, + {0.092940,-1.181121}, + {-1.310608,0.288132}, + {-0.892082,-1.676985}, + {0.916083,0.042083}, + {-1.244578,0.624427}, + {-0.334890,0.718718}, + {-0.741767,-0.347100}, + {-0.416327,-0.223633}, + {0.086690,0.939596}, + {0.888409,-0.085335}, + {0.625874,1.037141}, + {0.722036,-1.315310}, + {-0.335910,-0.880128}, + {-0.565481,-0.047599}, + {0.935371,-0.398854}, + {-0.727068,0.164967}, + {-0.431810,-0.025259}, + {0.528973,0.176538}, + {-0.620117,-0.164306}, + {0.113693,-0.756706}, + {-0.026549,-0.082517}, + {0.366109,-0.935198}, + {0.574120,-0.696891}, + {-0.329320,-1.004717}, + {0.167355,-1.385869}, + {-1.184704,0.231683}, + {-1.687510,0.741804}, + {0.460393,0.417694}, + {0.913381,-0.623551}, + {-0.025182,0.652840}, + {0.149389,1.580919}, + {0.046797,0.067857}, + {0.445068,-0.193108}, + {-0.087060,0.449112}, + {0.444716,1.154858}, + {-1.680048,-1.100377}, + {0.060122,1.288340}, + {1.811764,0.294464}, + {0.172455,1.302739}, + {-1.053456,-0.391417}, + {-0.932098,-1.179288}, + {0.822615,0.311778}, + {-0.593686,-0.517305}, + {0.592373,-0.858691}, + {-0.941357,0.211116}, + {-1.091715,-0.037219}, + {0.397495,0.181766}, + {-0.339179,-0.444183}, + {0.202008,-0.835547}, + {0.707791,0.284963}, + {1.127548,0.443368}, + {0.320918,0.693486}, + {-0.408938,-0.202700}, + {-0.474738,-1.197323}, + {0.196347,-0.186877}, + {0.133286,-0.981743}, + {0.454869,-0.118595}, + {-0.708891,0.915489}, + {-0.124946,0.257625}, + {-0.013053,-1.262217}, + {-0.816680,0.357514}, + {-1.325378,-0.000513}, + {-0.471835,-1.666112}, + {0.006822,0.861943}, + {-0.609116,0.665514}, + {-0.022823,-0.921185}, + {0.334153,-0.307869}, + {-0.200664,0.039748}, + {-1.341585,-1.016766}, + {-1.478115,-0.168005}, + {0.493183,-0.315358}, + {0.320896,-0.265798}, + {-0.410948,0.749325}, + {0.493700,0.609085}, + {1.511312,-0.136707}, + {-0.369151,-1.186832}, + {0.053669,-0.453470}, + {-0.344181,0.465001}, + {-0.409580,1.225758}, + {-0.040541,0.314214}, + {-0.563372,0.154451}, + {-0.296031,0.128113}, + {-0.170489,-0.237342}, + {0.484353,0.541345}, + {-0.281269,-1.163252}, + {-0.441618,-0.191346}, + {-0.766963,-1.158696}, + {0.683851,-0.047111}, + {0.085014,-1.047429}, + {0.435402,-1.193670}, + {0.723781,0.086784}, + {0.117848,0.731946}, + {-1.001471,-0.568533}, + {1.623786,-0.472448}, + {-0.405629,-0.440914}, + {-0.867240,0.860770}, + {-1.370369,-0.367847}, + {-1.068700,0.049127}, + {-0.506801,0.070046}, + {-0.571468,-0.279030}, + {-0.936487,0.177180}, + {1.208152,0.335738}, + {0.547493,0.278008}, + {-0.676350,0.122804}, + {0.881113,-0.622278}, + {-0.997446,0.228682}, + {0.374538,-1.112491}, + {0.018405,2.294138}, + {0.190651,-0.275758}, + {-1.066702,1.292937}, + {0.453821,1.500667}, + {-0.003891,-0.058122}, + {0.483079,1.838471}, + {-0.535369,-0.173664}, + {-1.069100,-0.694773}, + {-0.112032,-1.188326}, + {0.855142,0.212202}, + {-1.308295,-0.165234}, + {-0.899488,-0.114441}, + {-0.146224,0.097630}, + {-0.510277,0.887175}, + {0.821703,0.158980}, + {0.853827,-0.985330}, + {0.451970,0.343768}, + {0.077419,-1.075895}, + {-0.613300,0.876653}, + {-0.747934,0.101782}, + {0.456308,-0.448831}, + {0.704574,0.516584}, + {-0.123099,0.328140}, + {0.934254,-0.065327}, + {-0.598220,-0.151876}, + {0.247193,-0.320853}, + {0.710846,0.595196}, + {1.133704,-0.279589}, + {-0.213979,0.300774}, + {-0.136586,-0.481220}, + {-0.818138,0.623683}, + {0.492634,-0.509161}, + {0.233986,-0.216658}, + {-1.803974,-0.101863}, + {0.338246,-0.233200}, + {1.210916,-0.191023}, + {-0.419416,0.400604}, + {0.174883,0.361058}, + {0.041907,-0.084804}, + {-0.565089,-0.646098}, + {0.808848,-0.495713}, + {-0.880710,-0.067991}, + {0.466173,-0.432444}, + {0.326814,0.655068}, + {1.323321,-1.755300}, + {-0.246832,0.422534}, + {0.488638,0.630369}, + {-0.672349,-0.571405}, + {0.929277,0.597525}, + {0.295168,1.180543}, + {-0.443439,-0.167602}, + {0.850886,0.731905}, + {-0.130536,-1.019228}, + {0.667789,-0.245031}, + {-0.048100,0.713830}, + {-0.693496,1.039212}, + {-0.470569,-0.156852}, + {1.071015,-0.851179}, + {-0.141749,-0.228665}, + {0.133398,0.157939}, + {-0.920078,-0.522450}, + {-1.336102,-2.023545}, + {0.189471,-0.546281}, + {0.600537,-0.493998}, + {0.253657,0.643392}, + {-0.844469,1.910885}, + {0.805807,0.277348}, + {0.113829,-0.394163}, + {0.706544,0.990309}, + {0.166811,-1.066923}, + {0.713167,0.883103}, + {1.297380,-0.698009}, + {0.182918,0.196844}, + {-0.582698,0.320323}, + {1.179693,1.053822}, + {1.973986,0.861945}, + {0.831394,0.372738}, + {0.036404,-1.044186}, + {-0.322784,0.736748}, + {0.465765,1.236812}, + {-0.094890,-0.910340}, + {0.534838,0.087896}, + {-0.423018,0.473497}, + {0.446821,-0.345740}, + {1.370136,-0.313957}, + {0.605235,-0.218558}, + {-0.312323,-0.331415}, + {-0.957650,-0.174169}, + {0.438262,0.355984}, + {-0.630817,-0.585063}, + {0.844182,0.027599}, + {0.255999,0.290238}, + {0.195645,-0.309908}, + {-0.361390,0.759387}, + {0.793257,-0.590533}, + {-0.272252,-0.825983}, + {-0.524775,1.002337}, + {1.025595,0.035075}, + {0.144336,0.133347}, + {-0.053176,-0.873734}, + {-1.072797,-0.022777}, + {-0.201704,-0.812261}, + {0.406989,0.690699}, + {0.167489,0.337122}, + {0.954502,0.132945}, + {-0.234877,-1.122684}, + {-0.713308,0.242610}, + {0.993134,-0.224591}, + {0.195455,0.240318}, + {0.176161,0.919258}, + {-1.200962,0.602950}, + {0.146329,-0.178380}, + {1.905485,0.926800}, + {-1.213910,-0.046545}, + {-0.712013,0.163252}, + {0.701015,0.587351}, + {0.475746,-0.236882}, + {0.681216,1.077988}, + {1.005624,0.206876}, + {0.503490,0.797294}, + {-0.740207,-0.178577}, + {0.049749,0.215896}, + {0.121691,0.231312}, + {0.307603,1.696005}, + {0.149964,-0.357488}, + {-0.833350,1.591904}, + {-1.066643,-0.227741}, + {-0.130385,0.289346}, + {0.171775,1.229285}, + {0.499181,0.204163}, + {0.365325,0.432717}, + {-1.116102,1.193373}, + {0.816269,0.322493}, + {0.044289,-0.038741}, + {-0.081816,-0.660226}, + {0.209952,-0.440067}, + {-0.585770,-1.303251}, + {-0.470685,0.187163}, + {-0.273317,-0.063477}, + {1.701860,-0.310642}, + {0.235376,0.741904}, + {-1.391462,-0.818046}, + {0.891559,0.276066}, + {0.397528,-0.407250}, + {-0.245719,0.703900}, + {0.408310,-1.425978}, + {0.984774,0.218506}, + {-0.226844,0.404807}, + {-0.478742,-0.640515}, + {0.194719,1.070898}, + {-0.421489,-1.495545}, + {-0.285219,-0.021769}, + {0.805010,-0.178533}, + {-1.462175,-0.074131}, + {-0.012403,-0.230968}, + {1.614191,-0.155847}, + {1.208571,-1.196227}, + {-0.757660,1.376246}, + {0.948323,-0.100899}, + {-0.537264,0.178661}, + {-0.225242,-0.390378}, + {-2.111611,-0.388815}, + {0.591711,0.721370}, + {-0.486270,-0.043296}, + {-0.354134,0.102331}, + {0.494296,0.500110}, + {0.977534,0.912976}, + {0.083083,0.580670}, + {0.047811,-0.201119}, + {-0.101871,1.602735}, + {-0.299291,-0.338615}, + {-0.517633,-0.181010}, + {0.557599,-1.494308}, + {-1.180601,-0.754826}, + {0.843726,1.285523}, + {0.248651,1.227134}, + {0.385419,-1.487426}, + {0.329802,0.523718}, + {0.832042,2.344297}, + {-0.483497,-0.042848}, + {-0.571850,0.444970}, + {0.578707,-0.332521}, + {-0.383466,0.231784}, + {0.026002,1.355058}, + {0.290971,-0.253279}, + {-0.280147,-0.381802}, + {0.068319,-1.243266}, + {1.056405,-0.214847}, + {-0.804678,0.348259}, + {-0.311298,-0.374442}, + {-0.727188,1.198522}, + {0.089518,0.348222}, + {0.016808,0.138825}, + {-0.165610,0.734759}, + {-0.607876,0.020547}, + {-0.381076,0.319154}, + {0.771585,2.282850}, + {-0.679082,-0.535810}, + {0.922199,-0.104349}, + {0.883859,0.707429}, + {0.297841,-0.513259}, + {-0.084643,0.804522}, + {0.051716,0.095978}, + {-0.214681,-0.166287}, + {0.681025,0.064098}, + {1.880843,0.324433}, + {0.035759,0.351759}, + {-0.184237,1.372837}, + {0.089526,-0.380857}, + {1.314891,0.090765}, + {-0.166000,-0.408904}, + {-0.487537,-0.303936}, + {1.403138,-0.027080}, + {0.874409,-1.421801}, + {-1.455847,-0.180022}, + {1.082291,1.664879}, + {0.071012,0.797922}, + {0.252097,-0.345585}, + {0.278979,0.328135}, + {0.096045,-0.823268}, + {0.240866,0.568270}, + {0.623840,0.074629}, + {1.197388,-0.864621}, + {0.010140,0.536038}, + {-0.936742,-0.311617}, + {0.229416,0.009804}, + {-0.867776,1.059319}, + {0.613966,0.475140}, + {-0.213434,0.139105}, + {0.725146,-0.742290}, + {0.106239,0.386418}, + {0.189119,-0.313432}, + {-0.506237,-0.211804}, + {0.625359,0.120521}, + {0.723693,-0.672366}, + {-0.960395,0.399574}, + {0.120116,0.211127}, + {0.862921,-0.124087}, + {1.083842,1.379676}, + {-0.596075,-0.150507}, + {1.813520,0.153563}, + {0.821543,0.716422}, + {0.905501,0.148319}, + {-0.281616,0.736664}, + {0.523724,0.771024}, + {0.736386,0.335333}, + {0.704974,-1.258289}, + {0.230135,0.149167}, + {-0.183667,0.141978}, + {0.343212,-0.472806}, + {0.502101,-0.030266}, + {0.302980,-0.873466}, + {-0.047585,0.202728}, + {-0.490690,-1.793145}, + {0.072517,0.500160}, + {0.574135,0.273335}, + {-0.679558,-0.481851}, + {-0.391140,0.833001}, + {0.007197,-0.476483}, + {0.755864,0.699900}, + {0.023659,0.256314}, + {-0.219938,-0.203388}, + {-0.489864,0.259189}, + {-1.006033,-0.103282}, + {0.158715,-0.664053}, + {-0.300183,-1.039796}, + {-1.321861,-0.637445}, + {-0.720415,-0.327571}, + {0.251887,-0.485211}, + {0.078411,-0.322993}, + {0.056805,-0.293353}, + {0.315853,-0.085568}, + {0.222705,0.310332}, + {-0.182731,-0.397738}, + {-0.180319,0.561981}, + {0.598215,-0.364178}, + {-1.249949,-1.177746}, + {-0.456053,-0.685671}, + {0.954583,0.571800}, + {1.014219,-1.278695}, + {1.266613,0.223437}, + {-0.283420,-0.474797}, + {0.693306,-0.029207}, + {0.273299,0.133892}, + {0.532101,-0.320308}, + {-0.594831,0.406073}, + {-0.005518,0.766143}, + {0.147701,0.838501}, + {-0.745052,0.749668}, + {0.936722,0.046095}, + {-0.921153,-0.296284}, + {0.230717,1.078411}, + {-0.104489,0.089344}, + {0.184105,0.646882}, + {0.829563,-0.030537}, + {0.646903,-1.032258}, + {-0.266078,-0.192410}, + {0.430983,-0.751174}, + {-0.369734,0.154678}, + {1.027273,-1.123325}, + {-0.284810,-0.673581}, + {-0.198272,0.710599}, + {-0.664385,0.828056}, + {-1.078880,0.714872}, + {-0.474676,0.242386}, + {0.680091,-0.410467}, + {-0.127690,-0.562865}, + {-0.234136,-1.291910}, + {-0.304469,-0.626725}, + {0.530474,0.566233}, + {-0.109255,-0.557004}, + {0.087012,0.988810}, + {-0.750837,-1.577521}, + {0.347408,-0.389814}, + {1.437412,0.283755}, + {-0.159056,1.128835}, + {0.004413,-0.144927}, + {0.088644,-0.027569}, + {-0.079487,-0.229503}, + {0.870379,-0.028245}, + {-0.138882,1.645245}, + {-0.177149,-0.495996}, + {-0.040567,-0.960823}, + {0.701093,-0.753669}, + {-0.268945,0.477653}, + {0.519034,-0.856936}, + {1.010434,0.014817}, + {0.314739,0.141389}, + {0.838768,0.270923}, + {-0.922034,0.148587}, + {0.537647,1.022497}, + {-0.184456,0.248540}, + {-0.702941,0.129272}, + {-1.199959,-0.484713}, + {0.775146,0.641877}, + {1.355787,-0.061010}, + {-0.273411,-0.344273}, + {-0.079652,-0.580078}, + {-0.294108,0.383430}, + {-0.663756,0.764663}, + {-0.029209,0.187390}, + {0.458825,0.020946}, + {-0.759974,-0.072059}, + {-0.762552,2.339859}, + {-0.691081,0.637021}, + {0.066676,-0.267145}, + {-0.000870,-0.130399}, + {-0.128295,-0.090600}, + {0.434282,-1.040424}, + {0.064080,0.311479}, + {0.445593,-1.427874}, + {0.309938,0.341331}, + {-0.668997,0.293917}, + {1.532275,0.452357}, + {1.468994,0.022104}, + {-0.581643,1.003752}, + {0.923086,0.272041}, + {0.469483,0.205555}, + {0.066270,1.032433}, + {-0.223936,0.193990}, + {0.722656,0.900099}, + {-0.460502,0.026773}, + {0.264304,0.263321}, + {0.011564,0.998830}, + {-0.852220,-0.735707}, + {-0.367962,0.277292}, + {0.912905,-0.022560}, + {0.474794,-0.033505}, + {0.383646,0.014366}, + {-0.147667,-0.066343}, + {0.496019,-0.698605}, + {0.466197,0.778409}, + {-0.005985,-0.917034}, + {0.364603,-1.005913}, + {-1.127720,-0.496130}, + {0.530754,-0.710343}, + {0.817573,-0.478350}, + {1.542207,1.147533}, + {-1.015912,-0.392767}, + {-0.528064,-1.332638}, + {-1.655403,0.790160}, + {-0.192199,0.863973}, + {-0.148335,1.398748}, + {0.231018,-0.580136}, + {-0.028057,0.350163}, + {-0.078239,-0.095824}, + {-0.368671,-0.118777}, + {0.143814,0.563598}, + {-0.286646,-1.756129}, + {0.331342,0.411717}, + {0.402591,0.419929}, + {0.267689,0.344904}, + {-0.737596,0.808101}, + {-1.479648,-0.212449}, + {0.354386,1.310559}, + {-0.676218,-1.049757}, + {-0.115748,-1.162720}, + {-0.325709,-1.636897}, + {0.093754,0.067673}, + {-0.266273,-1.083043}, + {-0.366387,-0.814048}, + {-0.315910,0.796504}, + {1.358526,0.414087}, + {-0.674816,-0.587575}, + {-1.084357,-0.761996}, + {1.170537,-1.118362}, + {-0.888671,-0.372056}, + {0.206631,-0.197368}, + {0.151309,-0.017645}, + {-0.639638,-0.158684}, + {-0.818429,-0.799644}, + {0.193617,0.138892}, + {-0.330140,0.508120}, + {-1.023892,-0.005087}, + {-0.492779,-0.242526}, + {1.190477,0.548598}, + {0.380355,-0.428248}, + {-0.443627,0.322194}, + {0.643475,-0.610225}, + {1.639932,0.217874}, + {-0.075206,-0.891935}, + {0.472977,0.806206}, + {-0.049387,0.521157}, + {0.775513,1.120129}, + {-0.820993,-0.580519}, + {0.787248,0.471905}, + {1.982564,-0.239183}, + {0.036994,-0.084856}, + {0.397587,-0.108305}, + {0.717829,-0.658020}, + {0.096854,-1.073618}, + {-0.247410,0.105690}, + {-0.636805,-0.001866}, + {0.249262,0.170546}, + {-1.384929,-0.181014}, + {0.394318,-0.470332}, + {0.312685,-0.971393}, + {0.126831,1.201348}, + {-0.741448,-0.364570}, + {0.885990,-0.170062}, + {0.946030,0.048529}, + {-0.814388,0.775904}, + {0.365165,-0.393381}, + {-0.910022,-0.285627}, + {-1.692124,-0.058729}, + {-1.176468,0.344140}, + {-0.680828,-0.802456}, + {1.430130,-1.167865}, + {-1.009736,-0.292885}, + {0.780604,0.117665}, + {-1.183708,-0.191115}, + {-1.109502,-2.955782}, + {-0.679155,-0.425963}, + {-0.478117,-0.857997}, + {0.559869,1.189793}, + {0.693475,0.705402}, + {-0.069617,-0.231592}, + {-0.824859,-0.475262}, + {-0.613227,0.171012}, + {-0.972368,-0.750733}, + {0.572478,-0.362034}, + {0.400015,0.093211}, + {-0.664619,-0.115371}, + {1.629905,1.260396}, + {-0.887239,-0.880451}, + {-0.475993,1.783962}, + {-0.535449,0.374335}, + {-0.268655,0.381528}, + {-0.048788,0.080243}, + {-0.263956,0.156544}, + {-0.201047,-0.681716}, + {0.007541,-0.270714}, + {0.968368,-1.040116}, + {1.598093,-0.868513}, + {0.608883,-0.925775}, + {-0.292500,0.359309}, + {0.781647,-1.854675}, + {-0.048384,-0.358500}, + {-0.045277,0.182846}, + {0.702542,-0.682803}, + {-1.310088,0.288354}, + {-1.111262,-0.253839}, + {-0.610601,0.629673}, + {-0.077137,-0.288207}, + {-1.248534,-0.678787}, + {0.589672,-0.209868}, + {0.328118,0.280762}, + {-0.130254,0.359489}, + {-1.191280,-0.282377}, + {-0.727137,0.795181}, + {-0.332298,0.545214}, + {0.449265,0.809670}, + {-1.176652,0.024432}, + {-0.444225,0.247852}, + {-0.493719,-0.443957}, + {0.490093,-0.462030}, + {0.894083,-0.428290}, + {-0.808464,0.061714}, + {-0.438031,-0.880389}, + {-0.374120,-0.133532}, + {0.109504,0.714367}, + {1.199793,-0.870295}, + {-0.016396,1.234340}, + {0.176536,0.170704}, + {1.583727,-1.037287}, + {-0.408359,0.192187}, + {-0.716863,-0.030518}, + {-0.087939,-0.157292}, + {0.233970,-0.789071}, + {0.448874,-0.318136}, + {-0.001706,0.203524}, + {-0.583113,0.483299}, + {0.032509,-1.159109}, + {0.243543,-1.545598}, + {0.963137,-1.858378}, + {-0.433912,0.106663}, + {-0.584636,-0.554822}, + {-0.169820,0.694442}, + {-0.694692,-1.420531}, + {0.124368,0.308158}, + {-0.371740,-1.256747}, + {-0.371259,-0.345713}, + {-0.080108,-0.248600}, + {-0.508996,-0.502867}, + {-0.259720,-1.107589}, + {-0.479506,-0.625836}, + {-0.966428,-1.108758}, + {0.199396,0.684562}, + {-0.139579,-0.532375}, + {-0.671940,1.263705}, + {0.583387,-0.545125}, + {0.594017,0.135560}, + {0.295089,-0.517450}, + {0.227495,-0.116494}, + {-0.278437,0.070346}, + {1.252146,0.161429}, + {-0.719420,-0.400126}, + {0.411649,0.672294}, + {-0.067492,-0.147642}, + {0.773465,0.447213}, + {-0.096564,0.687259}, + {0.223581,-0.672181}, + {-1.189369,-1.012300}, + {0.378992,-1.602545}, + {0.528201,-0.184505}, + {0.555361,-0.073704}, + {0.641793,-0.149102}, + {0.614789,0.145011}, + {-0.014245,0.835852}, + {-0.433430,-0.150091}, + {1.265735,-0.171617}, + {0.424119,0.261458}, + {0.543597,-0.019062}, + {0.106955,-0.352852}, + {0.259824,-1.044464}, + {-0.134395,1.294968}, + {0.614190,0.103061}, + {-0.472730,0.440592}, + {0.026255,1.541770}, + {-0.680532,0.748520}, + {-1.652447,-0.981050}, + {1.530492,0.410946}, + {0.590749,-0.057968}, + {-0.204753,-0.053539}, + {-0.146540,0.407365}, + {-0.589178,-0.794021}, + {1.057477,0.390612}, + {-0.318475,0.110593}, + {0.860875,-0.484007}, + {-0.853862,-0.303066}, + {-0.640767,-0.247635}, + {-0.661993,0.487274}, + {-0.132963,-0.470698}, + {0.276424,0.103581}, + {0.269608,-1.122638}, + {-1.094199,0.419837}, + {0.466955,-0.942801}, + {1.061330,-0.773058}, + {0.504520,0.613301}, + {0.975902,0.530381}, + {-0.030956,0.526710}, + {0.231220,-1.339298}, + {-0.011487,0.006031}, + {-0.018207,-1.410146}, + {-0.042725,-1.430596}, + {0.082844,0.468408}, + {-0.592661,0.098480}, + {0.011226,0.279928}, + {0.032576,-1.292298}, + {-1.290445,0.847037}, + {0.901504,-0.435370}, + {-0.728679,-1.694385}, + {0.869029,1.438773}, + {0.348432,0.771641}, + {0.433021,-0.359444}, + {-0.716851,-1.686122}, + {0.654974,-0.546823}, + {-0.288514,0.307206}, + {0.656826,0.217168}, + {-0.688401,0.403697}, + {-0.151237,-0.641147}, + {0.280761,-0.025080}, + {1.352524,0.262260}, + {-1.020794,0.502821}, + {-0.308908,-0.753609}, + {-1.227055,-0.566285}, + {1.246124,-1.216215}, + {-0.096449,-0.082642}, + {-0.582940,0.409202}, + {-0.297638,0.527261}, + {-0.473862,-0.847413}, + {0.493371,0.316474}, + {-0.505728,-0.462956}, + {-0.595404,-0.478184}, + {0.282216,-0.370408}, + {-0.648353,2.154436}, + {0.388833,-1.448003}, + {0.520432,0.059147}, + {-0.013529,0.455994}, + {0.939385,-0.134557}, + {0.620260,0.444285}, + {0.242877,-0.212567}, + {0.864014,1.110652}, + {-0.433176,0.148295}, + {-0.467423,0.654889}, + {0.385444,0.838910}, + {-0.451962,-0.686281}, + {-0.028356,1.160879}, + {-0.420737,0.282096}, + {0.276441,0.183335}, + {0.644401,0.809729}, + {-0.038628,-0.032380}, + {-0.689183,0.615413}, + {0.685082,0.193192}, + {0.603120,-0.720557}, + {0.575454,-0.298269}, + {-0.336636,0.032836}, + {1.167203,-0.640395}, + {-1.086856,-0.481934}, + {1.008476,1.002123}, + {-0.884676,0.816595}, + {1.107577,-0.884024}, + {0.478516,-0.707394}, + {0.258192,-0.748370}, + {-0.741356,0.392670}, + {0.705741,-0.514239}, + {0.153360,0.250206}, + {0.332233,0.401451}, + {-0.810436,0.247146}, + {0.382241,0.492063}, + {-0.120140,-0.666149}, + {0.219067,-0.351762}, + {0.503475,0.143766}, + {1.810909,-0.522492}, + {0.914236,1.024772}, + {-0.001545,0.951413}, + {-0.361359,-0.703397}, + {-0.790543,-0.080398}, + {-0.124326,0.712994}, + {0.989520,0.282750}, + {-0.639085,-0.593687}, + {0.532412,0.985720}, + {-0.814493,-0.684384}, + {-0.335779,-0.770313}, + {-1.021545,0.405681}, + {-0.711770,-1.295042}, + {0.875563,-0.431312}, + {-1.424888,0.070227}, + {0.041671,0.512540}, + {0.560060,-1.156517}, + {0.495886,0.815220}, + {0.932619,0.063747}, + {0.015802,-0.313213}, + {0.849039,0.928043}, + {-1.711563,-0.070807}, + {-0.666807,-0.065413}, + {1.336124,0.298359}, + {-1.465749,1.267894}, + {0.643581,0.208283}, + {-0.027162,0.285537}, + {0.727538,0.592374}, + {-1.035589,0.161733}, + {-0.093690,-1.111324}, + {-0.118812,-0.492105}, + {-0.310044,0.136076}, + {0.423281,0.738354}, + {-0.332121,-1.129243}, + {0.821705,-1.094517}, + {0.034405,-0.125589}, + {-1.061441,-0.025527}, + {0.262581,0.337586}, + {0.089369,-0.030417}, + {0.001538,-0.262250}, + {-0.603561,0.120004}, + {-0.666026,-0.523188}, + {-0.604976,0.661149}, + {0.424495,0.063530}, + {-0.459048,0.273275}, + {-0.759139,-1.058355}, + {0.788408,-0.233671}, + {0.420774,-0.023008}, + {-0.057270,-0.647363}, + {0.332215,-0.161691}, + {-0.241240,0.285908}, + {-2.248124,-1.075027}, + {1.897230,1.332517}, + {-1.000960,-0.341355}, + {-0.764357,0.742789}, + {-0.430048,0.351628}, + {-0.758480,-1.168399}, + {-0.435465,-1.025082}, + {-0.031475,1.442605}, + {-0.098961,0.902862}, + {-1.182562,1.622450}, + {-0.779323,0.082419}, + {0.456925,0.197176}, + {-0.508334,-0.322065}, + {0.508929,1.414049}, + {0.831596,-0.269084}, + {-0.557522,0.829015}, + {-0.307706,1.811900}, + {0.522715,0.538211}, + {-0.007168,-0.369323}, + {-0.617961,0.598800}, + {-0.978429,-1.276183}, + {-0.311683,-0.168769}, + {0.813820,-0.732024}, + {1.620090,0.776415}, + {-0.244712,-0.030740}, + {0.423419,0.437735}, + {-0.438972,0.722604}, + {-0.882370,-0.599715}, + {0.861613,0.144139}, + {0.794431,-0.119300}, + {0.174561,0.355555}, + {-0.691546,0.900205}, + {0.994296,1.262278}, + {-0.693701,0.809946}, + {0.153439,0.433443}, + {-0.125105,-0.519678}, + {0.091914,0.929540}, + {0.307382,1.281497}, + {-0.219573,-0.230141}, + {0.323594,0.781383}, + {0.898631,0.775206}, + {0.511558,-0.475861}, + {0.097796,-0.356711}, + {0.279638,1.045159}, + {1.270842,-0.511080}, + {-0.082679,0.240138}, + {0.568139,-0.004501}, + {0.109403,-0.183895}, + {-0.739424,1.048188}, + {-0.054909,-0.730640}, + {-0.107852,-0.216831}, + {0.685852,-0.120568}, + {1.372181,0.079369}, + {-0.057168,-1.475400}, + {1.379104,-0.416757}, + {0.674217,0.132367}, + {0.823818,0.008095}, + {-0.227594,-1.181870}, + {0.154429,-0.278722}, + {-0.380589,1.327236}, + {0.953822,-0.415279}, + {0.523925,-0.065958}, + {-0.336928,0.243956}, + {0.552334,0.546455}, + {1.968980,-0.255377}, + {0.071926,-0.528260}, + {-0.242553,0.409914}, + {0.794756,-0.821838}, + {0.670664,-0.016080}, + {-0.195775,-0.420098}, + {-0.437345,-0.444139}, + {0.929108,0.038056}, + {-0.034900,0.359362}, + {-0.646337,0.250061}, + {0.164494,-0.964178}, + {0.217552,-0.079574}, + {0.616784,-0.219605}, + {0.274625,0.461819}, + {0.600045,0.609724}, + {-0.227316,0.212501}, + {-0.681566,-0.149931}, + {0.613788,0.331795}, + {-0.746826,-0.495927}, + {-0.352302,-0.492596}, + {-0.234966,-0.714624}, + {0.209031,0.429705}, + {0.909196,-0.574662}, + {-0.264863,1.129618}, + {-0.418314,0.193085}, + {0.140225,-0.055672}, + {-0.259935,0.107007}, + {0.577398,-0.501482}, + {-0.700274,0.431435}, + {-0.320978,-1.214359}, + {0.040677,-0.504970}, + {0.621603,0.489428}, + {-0.775181,0.755810}, + {-0.449114,-0.259854}, + {-0.964709,-0.189900}, + {0.571927,-0.612827}, + {-0.510919,0.532547}, + {1.043521,0.076593}, + {0.559284,1.091596}, + {0.385705,-0.620434}, + {-0.281876,1.139602}, + {0.696445,0.461885}, + {0.144423,-0.355093}, + {-1.477952,0.389119}, + {1.033198,-0.665606}, + {0.301267,0.413149}, + {-0.437421,1.527053}, + {-0.688981,0.779191}, + {-0.736537,-0.869510}, + {0.633416,0.485837}, + {-0.217942,-0.604167}, + {0.052318,-0.432202}, + {-0.404016,0.007563}, + {0.371806,0.924113}, + {0.685100,0.792052}, + {0.338713,-1.831682}, + {0.116368,-0.901689}, + {0.859729,-0.187662}, + {0.532246,-0.609526}, + {-0.252737,0.583202}, + {0.802405,-0.891543}, + {-0.657884,-1.409923}, + {-1.011401,-0.576367}, + {-0.518947,0.454590}, + {-0.760309,0.886904}, + {0.551054,0.077816}, + {-0.056155,-0.399365}, + {-1.188687,-0.144384}, + {0.348530,-0.718497}, + {0.040766,0.421674}, + {0.054193,-1.058049}, + {-0.703027,0.823753}, + {0.674644,0.568892}, + {0.653971,-0.029957}, + {-0.330844,0.894927}, + {-0.355906,0.469251}, + {-0.548867,1.196719}, + {-0.316741,-0.112885}, + {-0.050654,-1.074386}, + {-0.458463,-0.052899}, + {-0.323981,-0.056114}, + {-1.226962,-0.781318}, + {-0.793700,0.814978}, + {0.588809,0.468163}, + {0.297339,0.292342}, + {-1.189165,-0.848667}, + {-0.401703,-0.893584}, + {0.275424,0.119550}, + {-0.152022,-0.594732}, + {-0.937268,0.649621}, + {0.139979,0.423321}, + {-0.267033,-0.061451}, + {0.460158,0.411101}, + {0.102352,0.520000}, + {-0.670053,0.131062}, + {-0.547779,-1.300149}, + {1.065430,-1.272432}, + {0.850852,-1.537153}, + {-0.127321,-0.412569}, + {0.497995,-0.760964}, + {0.618018,-0.962779}, + {-0.367868,0.358651}, + {0.418133,-0.031711}, + {0.827988,-0.299697}, + {0.418025,-0.080342}, + {0.227770,-0.733112}, + {-0.522901,0.220810}, + {0.036422,-0.204918}, + {1.192243,-0.320297}, + {0.640624,-2.005424}, + {1.277127,0.447780}, + {-0.277087,0.657680}, + {-0.277141,0.773988}, + {-1.130237,0.935414}, + {0.284414,0.813877}, + {-0.174957,1.139543}, + {0.300714,-0.749478}, + {1.404330,-1.232405}, + {-0.313154,-0.213062}, + {0.652658,0.241568}, + {1.120691,0.518463}, + {0.224488,-0.153773}, + {0.375402,0.482763}, + {0.435975,0.236790}, + {1.127072,-0.422277}, + {0.580361,1.063162}, + {-0.955583,0.064231}, + {-1.802524,0.616951}, + {0.463128,-0.562220}, + {0.556800,0.473310}, + {0.658684,-0.639963}, + {-0.085954,-1.135439}, + {-0.243128,-0.126796}, + {-0.207362,-0.333691}, + {0.056183,-0.707808}, + {0.902377,-0.681407}, + {0.152853,0.619626}, + {-0.603487,0.293431}, + {0.133038,-0.379933}, + {0.264123,-0.101897}, + {0.861720,1.091886}, + {-0.479815,-0.165089}, + {-0.508836,0.900798}, + {-1.131878,0.459296}, + {0.037585,1.004276}, + {-0.480040,0.214050}, + {0.156506,-0.222274}, + {0.690720,0.133503}, + {0.429938,-0.394251}, + {-0.791723,-0.605653}, + {-0.554200,-0.418231}, + {-0.655144,-0.346624}, + {0.054409,0.359821}, + {-0.198795,-0.563282}, + {0.006104,0.725420}, + {-0.447277,0.540059}, + {-0.240985,0.280044}, + {0.637304,-0.116014}, + {1.381762,0.955712}, + {-0.148803,0.395996}, + {0.461393,0.840140}, + {-0.627308,-0.418263}, + {-2.171597,-0.599572}, + {0.080969,0.894764}, + {0.237331,-0.687851}, + {0.226158,-0.331895}, + {0.210506,-0.350461}, + {-0.043257,-0.021596}, + {0.551392,0.221253}, + {0.410879,-0.257200}, + {0.735420,0.692801}, + {-0.812522,0.436671}, + {-1.425556,-0.022695}, + {1.337264,-0.118216}, + {-0.196561,-1.121436}, + {-1.635570,-0.545684}, + {-0.259296,0.302864}, + {0.233845,0.231713}, + {-1.369904,0.069084}, + {0.310104,0.568822}, + {-0.074240,-0.389091}, + {0.513558,0.016256}, + {0.154059,-0.551779}, + {0.139022,0.002589}, + {1.252789,-1.075694}, + {-0.357876,0.779981}, + {-0.057981,-0.578702}, + {-0.348248,-0.564724}, + {-0.281181,0.160394}, + {0.755197,-1.493796}, + {0.349744,-0.585402}, + {-0.097265,0.568082}, + {-1.207000,0.702378}, + {-1.086582,0.502455}, + {-0.274557,-0.175564}, + {-0.663327,-1.099270}, + {0.025018,-0.858302}, + {0.251512,0.181174}, + {0.948731,0.438021}, + {0.278818,-0.736799}, + {0.384640,0.133641}, + {-0.269113,0.522492}, + {-0.192256,0.710115}, + {0.052306,0.974402}, + {0.154651,-0.268357}, + {-0.131640,0.099690}, + {-1.309976,-0.291957}, + {0.346624,0.382487}, + {0.516366,0.707133}, + {0.697076,1.540016}, + {0.490790,-0.397012}, + {1.123760,0.916850}, + {0.515663,0.434250}, + {-1.638678,-0.176421}, + {1.167902,-0.355185}, + {-0.264941,1.971705}, + {0.745419,-0.542922}, + {-0.754792,-0.652504}, + {1.369699,-0.283123}, + {-0.372842,-0.062135}, + {-0.746602,-1.311843}, + {0.620061,-0.729972}, + {-0.014445,-0.658271}, + {0.344167,0.003698}, + {-0.842281,1.037953}, + {-0.843122,-0.523207}, + {-0.318300,-0.179022}, + {-0.323143,0.019886}, + {0.430288,0.041221}, + {0.360478,0.640265}, + {0.483503,-0.160184}, + {0.244137,1.233902}, + {-0.545883,0.318665}, + {0.247693,-0.469566}, + {-0.321296,0.284737}, + {1.147200,0.641921}, + {1.216635,0.890397}, + {0.486701,0.456830}, + {0.550060,-0.222243}, + {-1.397045,0.187919}, + {0.912252,-0.441861}, + {1.245188,-0.318386}, + {-1.140431,0.133960}, + {-0.223423,-0.543275}, + {-0.259693,0.710342}, + {0.100516,0.525350}, + {-0.101837,-0.378891}, + {0.004744,-0.651883}, + {0.701837,0.505055}, + {1.259750,0.414716}, + {1.619510,-0.525369}, + {-0.927012,0.502818}, + {-0.687559,0.774157}, + {-1.015032,0.154981}, + {0.783957,0.857966}, + {1.055951,1.123508}, + {0.124867,-1.198195}, + {-0.122501,-0.319462}, + {0.522490,1.035699}, + {0.047462,-1.064514}, + {-0.069016,-0.011192}, + {-0.061777,0.932923}, + {-0.496995,0.483659}, + {0.960503,0.102691}, + {-0.858251,-0.587168}, + {-0.679635,-1.149459}, + {0.778286,0.086740}, + {-0.797912,0.786926}, + {0.043148,-1.618909}, + {0.354889,1.345281}, + {1.176276,-0.529673}, + {0.612892,1.322230}, + {0.784053,-1.188249}, + {-0.921667,1.036610}, + {-0.328724,-0.039212}, + {0.462540,1.173392}, + {-0.104801,-0.346268}, + {-0.531985,0.372684}, + {-0.788000,0.243345}, + {0.882742,-0.834651}, + {0.691050,0.394536}, + {-0.122631,0.586303}, + {-1.264893,-0.525182}, + {0.461967,0.151354}, + {0.776068,0.123712}, + {0.063297,0.200959}, + {0.136792,-0.138604}, + {-0.573293,0.711280}, + {0.738962,-1.300857}, + {0.159731,-0.141142}, + {-0.359106,-0.029247}, + {-1.076380,0.376036}, + {0.572506,-0.942929}, + {0.367264,0.437083}, + {-0.507908,-0.742628}, + {-0.012061,0.227037}, + {-0.747644,-0.353159}, + {-0.998729,-0.220973}, + {-0.587253,-0.390827}, + {-0.094152,0.756393}, + {0.448719,0.149999}, + {-0.218918,-0.048559}, + {-0.015560,-0.440495}, + {1.434334,-1.392218}, + {0.077947,-0.359505}, + {1.786997,-0.312543}, + {0.255695,-0.381884}, + {-0.301675,-0.104294}, + {0.700752,0.109512}, + {0.170083,1.699975}, + {-0.434933,0.267685}, + {0.402053,-0.343667}, + {0.698429,0.834043}, + {-0.331847,-0.731839}, + {-1.146666,-0.701629}, + {-0.002935,0.704111}, + {0.205245,0.690760}, + {-0.683238,0.215240}, + {-0.646288,0.694404}, + {0.325711,-0.046830}, + {0.592448,-0.308384}, + {1.529366,-0.987481}, + {-0.295320,-0.271241}, + {0.729563,-0.167488}, + {0.642193,-0.120176}, + {-1.548146,0.885333}, + {0.351531,0.897226}, + {1.595430,1.246450}, + {-0.486378,-0.288596}, + {-0.302011,0.618312}, + {0.182741,0.420557}, + {1.113837,0.316246}, + {0.527597,0.254757}, + {1.415948,-0.051085}, + {0.520356,-0.721367}, + {-0.144424,0.705921}, + {-0.070251,-1.038962}, + {-0.218357,1.041630}, + {0.729530,-0.690915}, + {0.128689,0.314481}, + {-0.117418,0.402299}, + {0.241349,-0.167075}, + {0.360539,0.711009}, + {-0.001491,0.204478}, + {0.487177,-0.385142}, + {0.480899,0.083528}, + {0.905059,-0.668149}, + {0.473028,0.683468}, + {0.048413,-0.513762}, + {0.392684,-0.016979}, + {0.008658,-0.397690}, + {0.312022,-0.290086}, + {-0.224513,-0.203352}, + {-0.700904,1.285464}, + {-0.209541,0.152510}, + {-0.689456,0.082655}, + {-0.090242,0.461600}, + {-0.012036,-0.301713}, + {-0.301809,1.238924}, + {-0.329893,-0.021590}, + {0.223851,0.421586}, + {0.317937,1.311734}, + {0.075659,-1.100616}, + {0.582116,0.136126}, + {-0.364256,-0.625304}, + {0.014662,-0.234577}, + {-1.092968,0.618389}, + {-0.238227,-0.574362}, + {-0.417061,-1.373738}, + {-0.534463,0.792450}, + {-0.112449,-0.282805}, + {-0.579626,0.953945}, + {-0.737441,-1.782889}, + {-0.761315,-0.665039}, + {-0.230262,0.334866}, + {-1.640518,0.345659}, + {-0.183278,1.207714}, + {-0.155715,0.262073}, + {0.495034,0.977896}, + {0.267491,0.395822}, + {0.020021,-0.525175}, + {-0.409405,0.155372}, + {-0.637273,0.397385}, + {0.569432,-0.826493}, + {-0.300224,-0.571919}, + {-0.419535,0.627416}, + {-0.670691,0.736638}, + {0.148186,0.842415}, + {-1.898319,0.635542}, + {-0.194627,-0.501422}, + {0.649891,0.952195}, + {-0.213436,-0.681949}, + {-0.868013,-1.363636}, + {0.613184,-1.017739}, + {-0.840052,-1.564144}, + {0.723446,-0.354610}, + {0.654592,-0.818130}, + {-0.712827,-0.762259}, + {0.166346,0.489915}, + {-0.302822,-0.693097}, + {1.358446,-1.355483}, + {-1.139428,0.086305}, + {-1.082740,1.498861}, + {-0.329648,0.147864}, + {-0.174769,-0.118863}, + {0.845277,-0.480739}, + {-0.289794,-0.173351}, + {0.837552,-0.021153}, + {-0.033429,0.650532}, + {-0.718426,-0.668466}, + {-0.238433,0.483005}, + {-0.720576,-0.226939}, + {-0.565185,-0.899305}, + {-0.586429,-0.847011}, + {0.948211,-1.151628}, + {0.079392,-1.199359}, + {-0.196210,-0.018502}, + {0.092218,-0.902690}, + {0.545633,-0.702880}, + {0.953190,-0.244621}, + {-0.122974,-0.872691}, + {1.001723,0.399548}, + {0.773129,0.292586}, + {0.369522,1.099643}, + {-0.128016,0.145086}, + {0.432098,-0.694186}, + {0.830267,-0.548718}, + {0.960296,-0.000663}, + {0.811884,0.184881}, + {-1.071500,0.409177}, + {0.738243,0.409131}, + {0.073622,0.031693}, + {-0.046745,0.274024}, + {-0.115489,-0.411869}, + {0.216582,-0.319286}, + {0.753995,-0.498359}, + {-0.216480,-1.134280}, + {-0.021988,-0.433786}, + {-0.327947,0.395941}, + {0.075096,-0.558661}, + {-1.031386,-0.090874}, + {0.661876,0.234726}, + {-0.032586,-0.957959}, + {0.675562,-0.062058}, + {0.089478,0.117239}, + {0.758516,-1.036737}, + {0.363183,-0.269026}, + {0.465104,0.683736}, + {0.515043,0.202359}, + {1.572937,-1.193864}, + {-0.456658,-0.051996}, + {-0.262883,-0.004140}, + {1.536223,-0.941011}, + {0.241501,-1.081946}, + {0.376242,-0.059869}, + {1.661854,-0.122313}, + {-0.171189,-0.902749}, + {0.163209,0.109854}, + {0.838006,-0.570945}, + {-0.403151,0.401615}, + {-0.941536,0.224667}, + {0.254770,0.119757}, + {0.010017,0.650252}, + {-0.849219,-0.093818}, + {0.438965,0.528280}, + {0.585909,0.170241}, + {-0.231668,-0.647083}, + {-0.812408,-0.241565}, + {-0.270441,-0.747414}, + {0.351427,-0.136789}, + {-0.454502,-1.594160}, + {-0.128552,-0.381218}, + {0.852571,0.550196}, + {-0.082519,-0.975152}, + {-0.118825,-0.587947}, + {0.118019,0.174990}, + {0.977679,0.989980}, + {-0.687867,0.152383}, + {1.597743,0.880373}, + {-0.926928,-0.305081}, + {-0.676320,0.054946}, + {-0.480725,-0.568788}, + {-0.366417,1.067759}, + {0.017773,1.235424}, + {1.404835,-1.087228}, + {-0.967946,0.352186}, + {-1.229937,-0.317813}, + {-0.051257,-0.039613}, + {-0.580332,-1.096354}, + {1.377717,0.775992}, + {-0.525138,-0.051334}, + {0.341863,0.010390}, + {-0.994051,0.551957}, + {0.554196,0.888456}, + {-0.096138,-0.120533}, + {0.772601,-0.270712}, + {0.643594,-0.087350}, + {0.409067,-0.299266}, + {-0.679971,-0.342567}, + {0.589620,0.703170}, + {0.636779,1.389787}, + {-0.824128,-0.335895}, + {0.607159,0.420643}, + {1.373971,-0.342893}, + {-0.910657,0.837440}, + {1.034973,-0.352405}, + {1.085682,1.920129}, + {0.064748,0.257708}, + {0.862755,0.755955}, + {-0.684932,0.094005}, + {0.112119,-1.441972}, + {1.163420,-0.049867}, + {-0.635217,0.609453}, + {-0.238855,0.480435}, + {1.449328,-0.098448}, + {0.784127,-0.652244}, + {0.769041,-0.937921}, + {0.835573,0.295585}, + {-0.062899,1.494506}, + {-0.062220,0.228891}, + {0.481334,-0.470990}, + {-0.505073,0.374573}, + {-0.099382,-0.967523}, + {1.186319,-0.831618}, + {-0.399300,0.931511}, + {-1.524902,-0.985501}, + {-0.615012,0.547274}, + {0.268857,-0.076929}, + {-0.897427,1.088771}, + {1.055351,0.095282}, + {1.708821,-0.076167}, + {-0.739946,-0.354375}, + {0.373417,0.855748}, + {0.131967,0.285461}, + {-0.364408,-1.708271}, + {-1.014175,0.495565}, + {0.505787,1.003443}, + {0.391683,-0.524584}, + {0.752228,0.882360}, + {-0.394883,1.502965}, + {-0.997717,-0.172972}, + {-0.230813,0.301756}, + {0.669804,-0.121530}, + {-0.070862,-0.368520}, + {1.320153,-0.521160}, + {-1.390873,0.259563}, + {1.146922,0.597540}, + {0.281829,-0.449891}, + {0.295038,0.408987}, + {-0.202209,-1.183362}, + {-0.399018,-0.672154}, + {1.004778,-1.104954}, + {0.143005,0.049996}, + {0.232512,0.669719}, + {0.094630,-0.576997}, + {0.667844,0.367973}, + {-0.537996,0.626066}, + {1.033757,-0.285931}, + {0.992368,-0.514368}, + {-0.319021,0.248041}, + {1.579195,-0.231515}, + {-0.582862,0.913516}, + {-1.085018,0.556959}, + {-0.024787,0.559586}, + {0.402267,0.959849}, + {-0.032095,-0.548640}, + {-1.150115,-0.539607}, + {0.385566,-0.409285}, + {-1.471116,0.537079}, + {0.392795,-1.486643}, + {0.328634,-0.040776}, + {-0.084120,0.830458}, + {-0.524122,0.922066}, + {-0.416595,-0.044276}, + {0.100140,0.462444}, + {-0.590881,1.340948}, + {-0.891718,0.723849}, + {0.337707,-0.670773}, + {0.721537,0.536058}, + {0.059957,0.287448}, + {0.400511,-0.763103}, + {-0.550953,-0.197097}, + {0.591824,0.441947}, + {0.447746,-0.502807}, + {-0.167608,-0.888259}, + {1.103233,-1.437809}, + {0.199023,0.063524}, + {0.202555,0.322043}, + {-0.976584,-0.396812}, + {0.372419,-0.791595}, + {1.289941,0.357281}, + {-0.228916,-1.001487}, + {1.049654,-0.610849}, + {-1.054080,-0.370253}, + {0.859058,-0.644741}, + {-0.377507,0.207554}, + {-0.559546,0.074691}, + {-1.074664,1.355183}, + {0.305625,0.198544}, + {-0.606985,0.356763}, + {0.242896,-0.375304}, + {-0.749774,-0.181054}, + {-0.342246,-0.259054}, + {1.589396,1.010118}, + {1.140405,-0.864599}, + {-1.096629,-0.377337}, + {-0.496940,0.605907}, + {-0.664267,-0.651997}, + {0.951590,0.175420}, + {-1.117929,-0.261231}, + {-0.534170,0.241918}, + {-0.781527,0.244559}, + {-0.271591,0.486803}, + {-1.256120,0.858586}, + {-0.421249,0.405847}, + {0.479353,-0.525636}, + {0.209101,0.142047}, + {-0.083113,0.886645}, + {-0.471083,-0.416663}, + {0.011834,-0.389550}, + {0.669072,-1.245624}, + {-0.598668,0.117422}, + {-0.173989,-0.056465}, + {-0.922954,0.482571}, + {0.522571,-0.365634}, + {0.042361,1.106480}, + {0.655395,-0.034779}, + {0.631652,-0.294389}, + {1.527036,-0.058525}, + {-0.249208,0.459807}, + {-0.887983,-0.627558}, + {-0.289353,-1.411403}, + {0.054751,2.470137}, + {-0.248717,1.053043}, + {-0.735576,0.010779}, + {-0.514003,-0.279226}, + {0.305765,1.274540}, + {0.534981,0.774853}, + {0.392611,-0.644576}, + {-0.468937,1.078119}, + {-0.541705,1.414380}, + {0.277103,0.165488}, + {-0.387851,-0.830792}, + {-1.253914,0.532510}, + {-0.221315,1.797991}, + {0.274370,0.277949}, + {-1.765567,0.046853}, + {-0.327146,-0.297614}, + {-0.984489,-0.168465}, + {-0.660634,-0.450022}, + {0.198917,-0.218025}, + {-0.677175,-0.172085}, + {0.644052,0.285876}, + {0.088023,0.232635}, + {-0.451399,-1.512956}, + {-0.377844,-0.626486}, + {-0.362430,-0.127407}, + {-0.840019,0.380215}, + {0.114939,0.878416}, + {0.470442,-0.105566}, + {-0.585039,0.237390}, + {-0.815600,-0.504437}, + {-0.161445,0.036143}, + {0.296359,1.325861}, + {-0.322171,-1.669738}, + {1.477603,0.776825}, + {0.381550,-0.635687}, + {-0.694525,-0.559498}, + {-1.930663,-0.704911}, + {-0.449682,-0.545347}, + {0.026977,-0.127266}, + {0.233908,0.544153}, + {-0.863452,-0.074155}, + {-0.649361,2.113175}, + {-1.059833,0.624585}, + {0.846892,-1.573266}, + {-0.217441,-0.559443}, + {-0.160678,1.002391}, + {0.804081,-0.338683}, + {-1.541742,0.230370}, + {-0.503421,-0.416987}, + {1.028147,0.529024}, + {-0.596178,0.738456}, + {-1.173493,0.202724}, + {-0.297988,-0.661943}, + {0.302419,0.866482}, + {-0.521944,-1.270284}, + {-0.436218,-0.097784}, + {-0.264531,-0.550600}, + {1.014478,-0.038692}, + {-0.999085,0.486181}, + {1.440740,-0.371893}, + {-0.042694,0.067326}, + {0.093956,-0.957300}, + {-0.375195,-0.970154}, + {-0.251632,-1.304492}, + {-0.414494,1.099568}, + {0.017527,0.168563}, + {-1.263777,0.285450}, + {0.068131,0.327754}, + {1.105079,0.539763}, + {0.981225,-0.468582}, + {0.551992,-0.036035}, + {1.124159,-0.005432}, + {0.611806,-0.979175}, + {0.483684,-0.518734}, + {-0.366983,0.455012}, + {-1.008954,0.471497}, + {-0.133646,-0.509659}, + {-1.029489,0.006309}, + {0.530972,-0.509375}, + {1.140833,0.249621}, + {-0.211773,0.138957}, + {-0.537149,1.254415}, + {-0.213279,0.065513}, + {-1.082796,0.529235}, + {0.350453,0.444304}, + {0.031279,-0.234978}, + {-0.543908,0.234837}, + {0.487194,1.375390}, + {0.215563,-0.549211}, + {0.072623,0.165267}, + {0.801105,-0.987048}, + {0.269412,0.711896}, + {0.027622,0.562303}, + {-0.813866,-0.782547}, + {-0.093912,0.227673}, + {-0.172055,0.060514}, + {0.074656,-0.266314}, + {1.217632,-0.605089}, + {-0.535103,-0.616239}, + {0.151379,-0.076634}, + {0.642760,-0.481053}, + {0.035701,-0.056708}, + {0.980441,-1.299210}, + {-0.856956,-1.002073}, + {0.598486,0.466839}, + {-0.386966,-1.046460}, + {0.625117,-0.115207}, + {-0.260750,-0.041046}, + {0.076652,-0.932881}, + {0.265818,0.764649}, + {0.421985,-0.714312}, + {-0.601085,0.964101}, + {0.467187,-0.124653}, + {-0.387454,0.211856}, + {-0.157263,-0.585296}, + {0.418027,-0.077462}, + {1.583309,-0.609096}, + {0.884257,0.515131}, + {0.138889,-0.138020}, + {-0.169847,0.059272}, + {0.540075,0.309144}, + {0.557179,1.418778}, + {0.610912,0.512799}, + {-0.873253,0.692568}, + {0.120274,-0.853970}, + {-0.586573,-0.561751}, + {-0.672660,0.694987}, + {1.109601,0.008173}, + {1.003841,-0.652223}, + {0.874688,0.367941}, + {-0.330203,0.745219}, + {-0.753140,0.915769}, + {-0.696116,0.227309}, + {0.346841,0.100445}, + {0.740158,-0.250985}, + {-0.397857,0.594584}, + {1.110536,0.339610}, + {0.345296,-0.347319}, + {-0.907915,-0.471159}, + {-0.649958,1.565001}, + {0.775790,-0.287460}, + {1.032125,0.130026}, + {0.907496,1.390180}, + {0.298254,-1.588717}, + {-0.259348,0.502732}, + {0.220840,-0.783740}, + {-0.138042,-0.590126}, + {0.426154,-0.091085}, + {0.405208,0.611676}, + {-0.204049,-0.083068}, + {0.159682,0.740970}, + {0.942561,0.693500}, + {-0.610743,0.303196}, + {0.172349,1.598668}, + {1.627400,-0.281164}, + {0.551930,0.098748}, + {-0.388243,0.433245}, + {-1.235033,0.763915}, + {-0.744667,-0.561124}, + {-0.592271,-0.641181}, + {0.156840,0.347964}, + {-0.023119,0.533539}, + {0.011757,1.073952}, + {-1.186307,0.280738}, + {0.756950,1.492111}, + {-0.877649,0.112185}, + {-0.585789,-0.254425}, + {0.038438,-0.550157}, + {0.314995,0.322778}, + {-0.134760,0.871567}, + {-1.044096,-0.636270}, + {0.590711,0.558388}, + {0.209019,0.293453}, + {-0.599300,0.026492}, + {1.033710,-0.675529}, + {-1.954583,0.594947}, + {-0.182764,0.343157}, + {0.859978,0.329311}, + {0.646436,-0.806192}, + {-0.046664,0.909861}, + {1.093129,0.536020}, + {0.872300,0.678087}, + {-0.123750,0.457168}, + {0.551871,-0.941036}, + {0.794294,-0.407648}, + {-1.538821,-0.171563}, + {-1.035249,0.118770}, + {-0.348383,-0.118152}, + {-0.226615,-0.889496}, + {1.341554,0.160355}, + {-0.351517,-0.424568}, + {-0.070817,0.414649}, + {-0.442786,0.423882}, + {-0.388425,1.093738}, + {-0.582796,0.676209}, + {0.752177,0.821946}, + {-1.006474,0.412201}, + {-0.416449,-0.072394}, + {-0.911661,1.041543}, + {0.003509,0.102477}, + {0.196127,0.591685}, + {0.326262,-0.526969}, + {-1.042304,0.505778}, + {-1.505353,-1.006878}, + {-0.951996,-1.085898}, + {-0.317499,0.045335}, + {-0.099205,0.858056}, + {0.764524,1.480639}, + {0.517856,0.207770}, + {-0.742181,0.240161}, + {-0.555104,-0.871874}, + {-0.699238,-0.986373}, + {-0.763561,-1.000094}, + {0.670026,-0.733751}, + {0.662880,-0.655407}, + {0.119571,-1.657008}, + {-0.223206,-1.113342}, + {0.487176,0.474053}, + {0.192200,1.888510}, + {0.611398,-0.667669}, + {-1.403757,0.409866}, + {0.024463,-0.041370}, + {-0.609262,0.806420}, + {-0.907307,1.198974}, + {0.162117,-1.544459}, + {-0.796786,0.537950}, + {-0.387992,-0.266020}, + {-0.225214,-0.058790}, + {0.753621,0.972150}, + {-0.615864,1.401833}, + {-0.819524,-0.597168}, + {0.647379,-0.468126}, + {-0.655050,-0.432251}, + {-0.069667,-1.062873}, + {0.359295,0.145826}, + {0.647484,0.920104}, + {-0.101287,-0.687857}, + {0.695485,0.112454}, + {0.685476,-0.236214}, + {0.374271,-0.144157}, + {-1.779720,-0.300198}, + {0.145786,0.213707}, + {0.038580,-0.033343}, + {0.672791,1.277813}, + {0.479531,1.053826}, + {-0.907617,-0.059189}, + {-0.172751,0.074425}, + {-0.349068,0.726073}, + {0.008332,0.348492}, + {0.319315,-0.391381}, + {0.402430,0.078896}, + {-0.391121,0.722606}, + {0.081394,0.035975}, + {0.604639,0.636573}, + {-0.598326,-0.581740}, + {-1.369758,1.353076}, + {-1.032156,-0.428532}, + {-0.405163,0.809273}, + {-0.638386,-0.671499}, + {-1.571366,-0.098790}, + {-0.047946,-0.327424}, + {-0.535140,1.485649}, + {0.572495,-0.533611}, + {0.769134,-0.416792}, + {-0.122776,0.855205}, + {0.281802,-0.669203}, + {0.694392,-0.350054}, + {-0.516665,0.498350}, + {-1.145787,0.669606}, + {-0.587504,-1.078295}, + {-0.906257,1.099786}, + {0.713687,-0.104260}, + {0.500828,-1.120030}, + {0.201346,0.446714}, + {0.571867,0.307374}, + {-0.307728,1.383134}, + {-0.066681,0.450119}, + {-0.848761,-1.038823}, + {1.032712,0.224183}, + {0.061333,-0.310979}, + {0.468093,0.223010}, + {-0.199854,-0.913527}, + {-0.857930,0.211259}, + {-0.587648,-0.245449}, + {0.353839,-0.297458}, + {0.888759,-0.874265}, + {0.403853,-0.386048}, + {0.278338,0.103402}, + {-0.538262,-0.477405}, + {-0.028885,1.451692}, + {0.309332,0.336400}, + {-0.000990,0.952112}, + {0.551432,0.708093}, + {0.885608,0.394472}, + {0.630507,0.873531}, + {2.009406,0.830925}, + {0.270462,0.962180}, + {-0.188686,0.224709}, + {-0.176674,-0.183785}, + {0.140600,1.093924}, + {0.189660,-0.420077}, + {-0.523965,-0.625934}, + {-0.336031,0.037125}, + {0.082479,-0.028029}, + {-0.186355,-0.412999}, + {0.082385,1.314585}, + {-0.916720,0.023372}, + {0.361526,0.970313}, + {-1.036301,0.902711}, + {0.753404,-1.144667}, + {1.331139,0.200917}, + {0.079871,0.568019}, + {0.105169,-0.612822}, + {-1.203528,-0.279910}, + {0.681629,-0.484965}, + {1.737185,-1.163903}, + {-0.073538,-0.938369}, + {0.199483,0.191980}, + {-0.463281,0.147863}, + {0.502202,1.383967}, + {0.662814,-0.696233}, + {0.322913,-0.224863}, + {-0.039758,-0.433784}, + {-0.241469,0.133004}, + {0.631311,-0.203045}, + {-0.490926,0.738562}, + {-0.738987,-0.807033}, + {-0.559719,-1.710482}, + {0.414458,-1.114866}, + {0.217559,-1.101081}, + {2.001337,-0.837311}, + {-0.309366,-1.325185}, + {-0.421962,-0.105397}, + {-0.254192,0.250041}, + {0.149750,1.424141}, + {0.574641,-0.960555}, + {1.300898,0.408217}, + {1.120122,-0.397386}, + {0.988203,-0.705869}, + {0.025219,-0.318984}, + {-0.787385,0.484271}, + {0.244498,-1.167668}, + {-0.293105,1.187101}, + {-1.315942,-0.787983}, + {0.014455,0.371305}, + {0.454436,-0.013107}, + {-0.983662,0.592077}, + {-0.500665,0.485289}, + {-0.822873,-0.988985}, + {-0.684186,0.119209}, + {-0.770508,0.745145}, + {0.751135,0.857208}, + {0.580580,-0.403847}, + {-0.261483,0.001789}, + {-0.599543,0.700149}, + {-0.134033,0.276866}, + {1.292787,0.681824}, + {0.571468,-0.079806}, + {-0.420807,-0.237937}, + {-1.393211,-1.148364}, + {-0.826257,-0.341136}, + {-1.430113,-0.469738}, + {0.254639,-0.935916}, + {0.477547,-0.063091}, + {0.143719,-0.656087}, + {-1.043832,-1.865735}, + {-0.223533,-0.255380}, + {-0.347852,1.319428}, + {0.216353,0.217898}, + {0.751324,-0.392111}, + {0.126306,0.463054}, + {0.421776,0.953244}, + {0.101965,0.723898}, + {0.711760,0.644511}, + {1.214540,-0.992251}, + {-0.900924,0.851336}, + {-0.768326,-0.273583}, + {0.611353,-0.777963}, + {-0.644784,-0.597365}, + {-0.866147,-0.077811}, + {1.171992,-0.373912}, + {0.166663,0.845840}, + {-0.051581,-0.037914}, + {-0.044931,0.952456}, + {1.025787,0.092280}, + {0.682561,1.339457}, + {-0.392748,0.417949}, + {0.032937,0.238781}, + {-0.620218,-0.190434}, + {-0.281839,0.385357}, + {-1.841805,0.735532}, + {0.803464,0.390506}, + {-0.520705,-1.106509}, + {-0.231873,-0.372118}, + {1.238221,-0.126795}, + {0.021599,0.567909}, + {0.135681,0.509549}, + {-0.372477,0.993091}, + {-0.463447,2.094221}, + {-1.084856,0.187484}, + {-0.146659,-0.233581}, + {0.020933,-0.106898}, + {0.829958,0.011197}, + {-0.094014,-0.883021}, + {0.547873,-0.450064}, + {0.202885,1.034507}, + {0.994910,0.329836}, + {1.331541,-0.281977}, + {0.228948,-2.008565}, + {-0.478031,0.427230}, + {1.083612,-1.020268}, + {-0.249602,1.393039}, + {-0.012306,0.044320}, + {0.574595,-0.315582}, + {0.774972,-0.431653}, + {0.270253,1.094467}, + {0.120273,-0.263953}, + {1.016864,0.431796}, + {-0.309168,-0.270309}, + {-1.523819,0.385376}, + {-0.763456,0.512232}, + {0.336560,0.850508}, + {0.042057,-0.438179}, + {0.847706,-0.456465}, + {0.742120,0.530981}, + {-0.373430,-1.277644}, + {0.670180,-1.752892}, + {-0.817789,0.218930}, + {0.452251,-0.077324}, + {-0.072623,-0.105395}, + {-1.412266,-1.332875}, + {0.357278,0.516348}, + {-0.043991,-1.067616}, + {1.180654,-0.141604}, + {0.105626,-0.698556}, + {0.368029,0.262566}, + {-0.920419,0.474313}, + {-0.223634,0.572453}, + {0.361011,0.280134}, + {0.558817,0.182521}, + {0.561101,0.605270}, + {0.229716,-0.019313}, + {-0.434761,-0.308359}, + {-0.245133,0.726120}, + {-0.390881,-1.251642}, + {-0.250035,-1.268882}, + {1.655818,-0.092527}, + {-0.910120,0.060578}, + {-0.188804,-0.314052}, + {1.215279,-0.127738}, + {-0.878795,0.285774}, + {0.369799,-0.207177}, + {0.389388,0.134644}, + {0.047652,0.563269}, + {0.447321,-0.865163}, + {-0.080775,-0.368620}, + {-1.003217,-0.560501}, + {0.115756,0.065585}, + {0.736376,-0.286535}, + {-0.305092,0.029092}, + {0.016444,-0.133073}, + {-0.385179,-0.465072}, + {-0.411212,-0.129245}, + {-2.027827,0.247035}, + {-0.408223,-0.432254}, + {-0.623146,-0.096782}, + {0.066094,0.359122}, + {-0.658791,1.673232}, + {0.345053,0.994307}, + {0.475042,-0.520856}, + {-0.629916,0.001245}, + {0.231530,-0.112516}, + {-0.310512,0.763089}, + {0.351545,-0.857181}, + {-1.282645,0.358697}, + {0.265706,-0.200202}, + {-1.020432,-0.205901}, + {-0.450405,0.863954}, + {0.535266,-1.489977}, + {0.116972,-0.830045}, + {-0.574343,0.203469}, + {-1.234327,0.190012}, + {-0.671839,0.202848}, + {-0.511748,0.717934}, + {-0.667350,-0.498889}, + {0.062991,-0.257410}, + {1.387187,0.166053}, + {0.038892,-0.294788}, + {-0.197843,-1.474079}, + {0.842538,0.954516}, + {0.190780,-0.445425}, + {0.986009,0.305338}, + {-0.043897,-0.600633}, + {1.275066,0.500597}, + {0.688402,0.940529}, + {0.681829,1.527615}, + {1.058668,0.147151}, + {1.057440,0.219391}, + {0.279102,0.711516}, + {-0.735985,-0.916082}, + {-0.795380,0.473156}, + {-0.188000,-0.126179}, + {-0.130109,1.022084}, + {-0.255161,-0.611966}, + {-0.712545,0.512778}, + {-0.390866,-0.023470}, + {0.585919,0.072051}, + {0.265748,-0.113116}, + {-0.954015,0.396356}, + {1.150886,0.526901}, + {0.918889,-0.335352}, + {0.908329,-0.918572}, + {0.829812,1.271961}, + {0.385431,0.764974}, + {0.842191,0.817413}, + {-0.211592,-0.300848}, + {0.085412,-0.503896}, + {-0.295625,-1.210188}, + {0.553279,-0.752066}, + {-0.336870,-0.023617}, + {-0.117579,0.194043}, + {-0.439305,0.074470}, + {-0.871696,0.517667}, + {1.132128,-0.352925}, + {1.659963,0.078571}, + {-0.718459,1.770532}, + {-0.815585,0.052456}, + {0.462433,-0.846664}, + {0.112519,-0.115914}, + {0.351286,0.311147}, + {0.445398,1.030217}, + {-1.336584,0.196926}, + {1.720238,-0.567869}, + {-0.036464,0.802003}, + {-0.783873,-0.818943}, + {1.240642,0.976164}, + {0.760370,0.622208}, + {0.716383,0.043453}, + {0.007335,0.445271}, + {-1.912350,0.369577}, + {0.471466,-0.281855}, + {-1.259278,0.458071}, + {-0.505514,0.551813}, + {0.808326,0.336688}, + {0.134236,0.795999}, + {-1.110478,0.657803}, + {0.788157,-1.379746}, + {-0.602157,-0.601484}, + {-0.601597,-0.629413}, + {-0.562336,-0.375857}, + {-0.115154,-0.348384}, + {-1.337893,-0.034902}, + {-0.421096,-0.451334}, + {0.828483,1.195515}, + {-1.170578,-0.527504}, + {-0.310432,0.760422}, + {-1.197816,0.709533}, + {-0.127652,-0.091019}, + {0.069065,-0.305886}, + {-0.078245,-0.633251}, + {0.088257,0.108119}, + {-0.449101,0.132235}, + {-0.124084,1.428966}, + {-0.281890,0.234157}, + {-0.525617,0.582656}, + {-0.816034,0.676694}, + {0.126295,-0.336684}, + {0.148247,0.687522}, + {-0.650085,0.552353}, + {1.047440,-0.871696}, + {-0.652720,0.124596}, + {0.143902,-0.299925}, + {-0.045092,-0.377154}, + {0.337776,-0.360983}, + {-1.034746,-0.453121}, + {0.446298,-0.614523}, + {-0.576398,-0.186150}, + {-0.660111,0.507337}, + {-0.212991,-0.067267}, + {-0.472959,0.233856}, + {0.757097,0.921087}, + {-0.371281,-0.873578}, + {-0.462358,-0.546336}, + {1.046260,0.861505}, + {0.188323,-0.927420}, + {-0.394811,-0.928531}, + {-0.745356,1.802213}, + {-0.144337,1.288925}, + {0.042964,0.393180}, + {-1.051774,-0.538140}, + {-0.859913,-0.181454}, + {-0.768838,-0.081829}, + {-0.410304,-0.505518}, + {0.513469,-0.829740}, + {0.143379,-0.353562}, + {0.259461,-0.349013}, + {-0.693666,0.506081}, + {-0.142532,-1.125624}, + {0.027827,0.093478}, + {0.755859,-1.261207}, + {-0.805314,0.460203}, + {0.565516,0.049003}, + {-0.290886,-0.435227}, + {0.177884,1.134761}, + {-0.790097,-1.155042}, + {0.609440,-0.427450}, + {-1.456648,0.430752}, + {0.731694,0.148750}, + {-1.096537,-0.659722}, + {-0.045365,-0.812621}, + {-0.052870,-0.012892}, + {-0.186133,-1.655777}, + {-1.233724,0.005300}, + {0.227544,-0.206169}, + {0.444051,-1.393497}, + {0.145246,-0.470748}, + {0.321554,-0.540005}, + {0.574299,0.947717}, + {-0.851562,0.821642}, + {-0.224767,0.375636}, + {-1.247393,-1.880826}, + {0.869151,0.644628}, + {1.350218,-0.621884}, + {0.386796,-0.520246}, + {-0.978645,0.272595}, + {0.065436,-0.430137}, + {-0.790944,0.646567}, + {-0.368160,0.501998}, + {-0.401020,0.148140}, + {-0.046369,-0.202567}, + {0.058994,-0.870889}, + {-0.652756,1.932327}, + {0.172676,-1.271166}, + {0.413797,0.955612}, + {0.814433,0.006399}, + {0.328790,1.584645}, + {0.709699,0.490172}, + {-0.774854,-0.005901}, + {0.730751,-2.130532}, + {0.585216,-0.058045}, + {0.745170,-0.426331}, + {-0.547863,0.536897}, + {0.291419,0.183834}, + {0.370049,-0.225214}, + {0.720345,0.700864}, + {-0.658056,0.512990}, + {-0.197299,-0.572787}, + {-0.980329,-0.373197}, + {-0.102615,-0.600997}, + {0.551575,0.035526}, + {0.227213,-1.755647}, + {-0.720773,1.473189}, + {1.078551,0.494038}, + {-0.590708,-0.726487}, + {0.174511,0.593049}, + {-1.113569,-0.861532}, + {-0.863915,-0.407862}, + {-1.489835,0.680252}, + {0.605744,-0.755458}, + {0.019818,-1.444399}, + {1.537532,0.420513}, + {0.454858,0.278244}, + {-1.167997,0.522964}, + {0.636516,0.864054}, + {0.904913,0.954676}, + {-0.172054,1.515377}, + {-0.323955,-0.109815}, + {-0.408556,-0.110050}, + {-0.074129,0.608238}, + {0.907023,0.611414}, + {0.527238,-0.111692}, + {-1.210925,1.026236}, + {0.414338,-1.508815}, + {0.865041,0.205104}, + {-0.519846,0.335515}, + {0.025669,0.894116}, + {-0.069780,0.825868}, + {-0.977589,0.602818}, + {-1.474683,-1.465573}, + {-0.906716,-1.172873}, + {0.633533,-0.164525}, + {1.348636,-0.597077}, + {-0.676391,-0.863396}, + {0.836835,0.681102}, + {0.597157,-0.230220}, + {0.394546,0.387985}, + {-0.930641,0.087960}, + {-0.591838,-0.300588}, + {-0.886742,0.109750}, + {-1.099630,-1.113304}, + {-0.728393,-0.212042}, + {0.763934,-0.639567}, + {0.298122,-0.353191}, + {-0.190079,-0.338979}, + {0.348171,0.548532}, + {-0.524688,-0.411727}, + {0.233072,-0.517023}, + {0.062224,-0.491644}, + {-1.043832,0.098989}, + {-0.476795,-1.490535}, + {0.329321,0.234013}, + {0.221229,0.925059}, + {-0.390816,0.510160}, + {0.875961,0.263989}, + {0.269341,0.588287}, + {-0.104352,1.572109}, + {-0.466807,-0.291013}, + {0.052197,0.507006}, + {-1.203065,0.707042}, + {-1.156324,0.471411}, + {0.754021,-0.321351}, + {-0.351852,0.063256}, + {1.050723,-0.239489}, + {0.095218,-0.048337}, + {-1.306553,-0.315263}, + {0.445850,-0.782225}, + {2.486118,-0.184109}, + {-0.450901,0.744972}, + {0.815191,-0.335411}, + {-0.842677,-0.284237}, + {0.315266,-0.974383}, + {0.075656,-0.930034}, + {-0.265583,0.430262}, + {-0.066361,-0.215722}, + {0.460555,-0.264005}, + {0.338359,-1.339680}, + {-0.711655,0.100374}, + {-0.092740,1.377253}, + {-0.072264,-0.288660}, + {-0.052467,0.772709}, + {0.293775,0.090349}, + {0.824527,1.267417}, + {-0.112363,0.132903}, + {-0.363463,0.969263}, + {-1.642345,0.744705}, + {-0.477562,1.379558}, + {-0.589734,-0.589188}, + {-0.466736,-0.970264}, + {0.010874,0.547445}, + {1.722207,0.884766}, + {0.098718,-0.666330}, + {-0.296542,-1.569936}, + {1.125261,-0.712730}, + {-0.975173,0.932793}, + {0.634325,1.085860}, + {0.217421,0.671107}, + {0.305540,-1.001059}, + {0.798078,0.480317}, + {1.662060,-0.279516}, + {0.613269,-0.820772}, + {-0.367006,0.253467}, + {-0.506871,0.590810}, + {2.014429,-0.631055}, + {-1.851417,-0.047491}, + {0.237869,-0.702116}, + {-0.850494,0.647305}, + {0.129418,-0.098577}, + {-0.842460,0.401123}, + {0.289509,-0.445374}, + {-0.192546,0.423623}, + {0.132945,-0.395475}, + {1.171623,-0.137565}, + {-0.672710,0.703577}, + {0.289266,0.112169}, + {0.388150,-1.503414}, + {-0.632542,-1.193749}, + {-0.836479,-1.570629}, + {-0.117854,0.799663}, + {-1.031422,0.769983}, + {1.141551,1.223726}, + {-0.136202,0.032976}, + {0.539139,-0.362692}, + {0.386391,-0.404400}, + {-0.807908,0.672289}, + {-0.273757,0.409065}, + {0.072317,0.218765}, + {0.315393,-0.161862}, + {0.109827,0.280521}, + {1.124393,-0.880358}, + {1.062493,-0.861810}, + {-0.694576,0.955105}, + {-0.704939,0.712260}, + {0.620207,0.404908}, + {-0.149497,0.008919}, + {0.213315,0.753410}, + {0.882143,0.344575}, + {-0.580178,-0.062246}, + {0.588335,0.732016}, + {-0.923274,0.056641}, + {-0.172440,-0.095349}, + {-1.135217,0.278840}, + {0.775523,-0.339523}, + {-0.314081,-0.344806}, + {-0.764043,-0.198468}, + {-0.089438,-0.785644}, + {-1.040912,1.061657}, + {0.895079,-0.034029}, + {-0.526144,-1.937661}, + {-0.207926,-1.120596}, + {-0.091010,-0.505344}, + {0.284329,0.647329}, + {1.276309,-0.095555}, + {-1.225333,0.215700}, + {0.090999,0.073973}, + {0.870768,-0.363724}, + {0.248731,0.020068}, + {-0.548422,-0.119689}, + {0.920298,-0.082783}, + {-0.467797,1.355912}, + {1.329022,-0.309356}, + {-1.728073,-0.120729}, + {0.624453,0.563478}, + {-0.698755,0.502237}, + {0.401369,-1.301986}, + {-0.924123,-0.248924}, + {0.419063,-0.429884}, + {-0.417802,0.312480}, + {0.303873,0.281815}, + {-0.216253,-0.382458}, + {0.871156,0.437237}, + {0.076165,-0.075358}, + {0.978428,0.177972}, + {-0.387862,-0.666285}, + {-0.385355,-1.084756}, + {-0.039386,0.090518}, + {-0.110409,-0.131921}, + {-0.266880,-0.746409}, + {-0.628974,0.648673}, + {-0.473564,-0.126878}, + {0.061978,-0.647717}, + {-0.282066,-0.853113}, + {-0.118735,1.327370}, + {1.149891,1.209448}, + {0.352147,-0.388989}, + {1.769291,-0.319750}, + {0.764107,-0.667852}, + {-0.587102,-0.210417}, + {1.015087,0.052787}, + {-0.035987,1.195230}, + {0.892858,0.405185}, + {-0.756342,-0.517984}, + {0.623213,-0.595297}, + {0.604408,1.193989}, + {0.953219,0.110624}, + {0.152238,0.507352}, + {-0.094461,-0.308558}, + {0.384838,-0.277351}, + {0.025861,-0.759865}, + {-0.657839,0.460731}, + {-0.194513,0.533848}, + {1.023904,-0.500503}, + {-0.359781,0.642104}, + {-0.404128,-0.973247}, + {0.908211,-0.748690}, + {1.828527,0.178212}, + {0.993783,0.377209}, + {0.497713,0.653823}, + {1.349187,-0.664650}, + {0.867764,-0.677804}, + {0.784912,-0.648229}, + {0.855189,0.283978}, + {-0.177741,0.486565}, + {0.171991,-1.590330}, + {-0.341884,-0.551188}, + {0.552575,-1.140915}, + {0.234083,-0.731475}, + {-0.841477,0.261885}, + {-0.463546,1.015421}, + {-0.655670,-0.933363}, + {0.091412,-0.144388}, + {0.777763,-1.143306}, + {0.393413,0.247097}, + {-0.859657,1.263778}, + {-0.091360,-0.695528}, + {0.453558,0.447697}, + {-0.285448,-0.091432}, + {0.575826,0.771546}, + {-0.185321,-0.400092}, + {-0.927254,-0.065710}, + {-0.404850,0.199127}, + {1.175847,-0.727493}, + {-0.646317,-0.100079}, + {-0.146116,0.997661}, + {0.940721,0.331262}, + {-0.176631,-0.432014}, + {-0.158682,0.007962}, + {0.403128,0.862988}, + {-1.286299,-0.553118}, + {-0.625140,-0.416925}, + {0.164739,0.127397}, + {-1.296657,0.431593}, + {0.110012,0.621031}, + {0.131967,0.747297}, + {-0.417073,-0.528516}, + {-0.058879,0.064701}, + {0.878022,0.417763}, + {-0.593777,-0.749282}, + {-1.488954,-0.088751}, + {0.327350,0.729740}, + {0.288635,0.711133}, + {-0.516210,0.772244}, + {0.646623,-0.360133}, + {0.517444,-1.050468}, + {0.275757,-0.042346}, + {1.091949,-0.723761}, + {-0.581401,0.804300}, + {-0.281716,0.298812}, + {0.389729,-1.352334}, + {0.968056,-0.125904}, + {1.044800,0.400574}, + {0.876008,0.171549}, + {-0.861513,-0.111525}, + {1.321833,0.560932}, + {-0.756588,0.179387}, + {-1.030283,-0.202424}, + {-1.125655,0.034160}, + {-1.018706,0.236765}, + {-1.619937,1.162817}, + {0.587348,0.547688}, + {-1.197305,-0.512869}, + {-0.043864,-1.074949}, + {-0.830876,0.394422}, + {0.164382,-0.058257}, + {-1.269143,0.168948}, + {0.160676,-0.664515}, + {-0.505345,-1.100780}, + {-0.245201,0.068290}, + {-1.306518,-0.678766}, + {-0.425379,0.392774}, + {-0.258367,0.204147}, + {0.045519,-0.256474}, + {-2.017382,0.265548}, + {-0.452550,0.579091}, + {-0.340566,-0.079455}, + {-0.463289,-0.473197}, + {-0.304125,-1.146060}, + {-1.079937,0.770227}, + {0.697733,-1.635291}, + {0.794379,-0.590399}, + {2.066159,0.237608}, + {0.203241,0.228367}, + {0.209470,-0.821393}, + {1.064899,-0.383132}, + {0.799363,-0.151461}, + {-0.607846,0.619438}, + {-0.440935,-0.199774}, + {1.095711,0.112102}, + {-0.687980,-0.399792}, + {-0.489549,0.143813}, + {0.567918,0.022705}, + {0.838391,-1.106572}, + {1.085598,2.516036}, + {-0.699425,-0.521144}, + {-1.195329,-0.973063}, + {-0.455357,0.190010}, + {-0.365438,-0.562397}, + {-0.303810,-1.368273}, + {0.466171,-0.926118}, + {-0.428213,0.660771}, + {0.847118,1.179101}, + {0.431831,0.765670}, + {0.216519,0.066846}, + {0.050229,-1.132895}, + {-0.591341,-0.135568}, + {-1.016589,0.499351}, + {0.619695,1.239771}, + {-0.860305,0.327144}, + {0.794001,-0.673587}, + {-0.198357,0.818361}, + {1.168914,-0.014642}, + {0.448577,1.053050}, + {0.292636,-0.202807}, + {0.769249,0.583713}, + {0.416304,-0.914883}, + {0.462558,-0.935260}, + {0.088227,-0.958327}, + {0.594615,1.182851}, + {-0.204744,0.504845}, + {-0.244805,-0.381424}, + {-0.737471,-1.320935}, + {-0.528289,-0.573258}, + {-0.105260,-0.673370}, + {-0.635278,-0.500940}, + {0.839401,-0.789100}, + {-0.900784,0.142913}, + {-0.611013,1.205516}, + {-0.341594,0.707921}, + {-0.549906,-0.191784}, + {-0.351525,0.601229}, + {0.696679,-0.084436}, + {0.249797,-0.466641}, + {-0.112995,0.982649}, + {-0.103804,0.028549}, + {1.300759,0.562159}, + {0.188050,0.252173}, + {0.106742,0.672221}, + {1.403964,0.196841}, + {0.178249,1.119562}, + {0.478215,0.501237}, + {-0.603436,-0.402843}, + {0.938323,-0.147083}, + {-1.344410,-0.465496}, + {-0.274058,0.037370}, + {0.302808,0.701736}, + {0.522547,-1.063970}, + {0.214000,-1.234162}, + {0.115400,-0.182797}, + {0.613710,-1.188964}, + {-0.059478,-0.884451}, + {-0.020643,0.621642}, + {-0.485842,-0.203300}, + {-0.574101,1.824857}, + {-1.110800,0.465908}, + {-0.009223,-0.878354}, + {-0.970119,-0.234322}, + {2.232488,-0.241458}, + {-0.817618,-0.215082}, + {0.985711,-1.312330}, + {-0.043408,0.166327}, + {0.685598,-1.189246}, + {-0.863629,1.000956}, + {0.363370,0.558049}, + {-0.275515,-1.251793}, + {-0.783958,-0.159861}, + {-0.265416,1.423040}, + {-0.303787,0.078342}, + {-0.942708,0.058797}, + {-0.126596,-0.043927}, + {0.940185,-0.514732}, + {-1.717989,-0.302336}, + {0.392299,-0.472739}, + {-0.605450,-0.153565}, + {0.172246,1.273566}, + {0.973775,-0.571675}, + {0.412459,0.246981}, + {0.750398,0.637567}, + {-0.131172,-0.812034}, + {-0.412718,-0.312419}, + {-1.084367,0.469211}, + {-0.750192,0.239366}, + {-0.807903,0.025000}, + {0.169366,1.110027}, + {0.341377,-0.550559}, + {1.503539,-0.645394}, + {-0.546320,-0.503335}, + {0.349192,0.240205}, + {1.054660,-1.886768}, + {0.052298,0.500975}, + {-0.010100,-0.988941}, + {0.166413,-0.383006}, + {0.843436,0.918938}, + {-0.595515,0.371500}, + {-0.309942,1.492045}, + {0.605896,-0.550874}, + {0.379367,-0.626731}, + {-0.236509,0.601141}, + {-0.378510,-0.419328}, + {0.478068,0.010601}, + {-0.675805,-0.583364}, + {-0.210744,0.418466}, + {-0.189950,0.501288}, + {-0.463660,0.303614}, + {-0.537675,-0.958237}, + {-1.015898,-0.270030}, + {0.198231,0.122265}, + {1.116642,-0.840185}, + {-1.101533,1.812925}, + {-0.561163,-0.261127}, + {1.012467,0.890354}, + {-0.529417,0.082287}, + {0.009180,0.806196}, + {0.789673,0.029863}, + {1.003828,0.373652}, + {0.814418,0.309315}, + {-0.606146,-0.168860}, + {0.056299,0.365320}, + {0.093105,-0.068656}, + {0.755631,-0.057552}, + {0.081025,-0.900634}, + {-0.016102,0.247733}, + {0.884746,0.342390}, + {-0.875936,0.681588}, + {0.098843,-0.487980}, + {-0.376775,-0.427447}, + {0.381212,0.542140}, + {0.530379,-0.369676}, + {0.709660,0.380700}, + {-1.112918,0.335488}, + {-0.171830,0.036069}, + {-1.019468,0.441974}, + {0.552776,1.116890}, + {-0.256032,1.029227}, + {0.709352,0.980046}, + {-0.721419,-0.145083}, + {-1.190310,-1.516095}, + {-1.099134,-0.241831}, + {-1.177761,0.420445}, + {0.618117,1.070602}, + {1.308669,-0.017416}, + {-0.186330,-0.148709}, + {-1.075173,1.134706}, + {-0.474658,-0.073558}, + {-0.417598,-0.815183}, + {0.452627,-0.086364}, + {-0.099908,0.206006}, + {1.159685,-0.593182}, + {-0.620191,0.221127}, + {1.099579,0.166276}, + {-0.224604,-0.878283}, + {0.361899,0.449122}, + {0.782647,-1.303460}, + {1.024841,0.701208}, + {-0.575269,0.369847}, + {0.185542,0.396025}, + {-0.475507,0.042582}, + {-0.644299,1.072212}, + {0.024074,0.094974}, + {1.065494,1.061942}, + {-0.103903,0.047036}, + {-1.507948,1.355023}, + {0.488277,-0.387922}, + {-0.670998,0.516623}, + {1.043637,1.027954}, + {-0.814702,-0.705341}, + {1.113500,-0.824085}, + {-0.446971,0.387174}, + {0.085304,0.134263}, + {-0.032566,0.373506}, + {-0.715275,0.920719}, + {0.856968,-0.363303}, + {-0.531281,-0.778124}, + {-0.273956,0.840519}, + {-1.738353,0.489447}, + {-0.868719,0.482146}, + {-0.324818,0.031145}, + {0.538558,0.494144}, + {-0.353669,0.337685}, + {0.231094,0.720309}, + {-0.836142,0.106659}, + {0.595464,0.423801}, + {0.883973,-0.601154}, + {0.723997,0.934565}, + {-0.355962,0.152775}, + {-0.127005,1.104947}, + {0.969229,-0.149105}, + {-1.201512,0.674038}, + {0.146767,-0.498363}, + {-0.035950,0.557077}, + {-0.459134,-0.914077}, + {0.763345,0.524424}, + {0.011704,-2.017428}, + {-0.849172,1.506112}, + {-0.250493,-1.045756}, + {-0.121860,-0.690564}, + {-0.155904,0.608851}, + {-1.229102,-0.406017}, + {1.226610,1.085280}, + {-0.805206,0.629291}, + {-0.069214,0.730650}, + {1.064779,0.264552}, + {-0.006544,-0.494682}, + {0.457170,-0.951151}, + {-0.410514,0.789954}, + {0.565477,-0.255665}, + {0.734690,-0.988831}, + {-1.062641,0.225151}, + {-0.385230,0.821491}, + {0.371702,-0.110034}, + {-0.057454,0.128720}, + {-0.081977,1.037915}, + {0.311523,1.253425}, + {-0.502448,0.093294}, + {0.615595,-2.344534}, + {0.653408,-1.185627}, + {0.867888,-0.434547}, + {-0.240755,0.331160}, + {-1.197783,0.687314}, + {0.521806,0.208657}, + {-0.554643,0.428899}, + {0.057554,-0.366342}, + {-0.357134,0.156007}, + {0.334822,0.737721}, + {1.436037,-0.287579}, + {-0.612891,0.136375}, + {0.789853,-0.141415}, + {0.525511,0.179881}, + {0.123147,0.811655}, + {0.113730,0.769911}, + {0.182976,-0.119810}, + {0.628026,-0.801001}, + {-0.469332,-0.992844}, + {0.420309,0.553148}, + {-1.170904,-0.099700}, + {-0.146831,-0.313078}, + {0.388133,0.790864}, + {0.282657,0.691093}, + {1.559222,0.832869}, + {0.381183,0.380482}, + {0.489654,-0.943613}, + {0.054295,-0.253576}, + {0.455407,0.344980}, + {0.570221,-0.475851}, + {-0.223240,0.744998}, + {-0.530980,0.687077}, + {-0.449808,-0.821267}, + {-0.330739,0.448330}, + {0.804212,-0.577691}, + {0.158454,0.805972}, + {-0.108758,-0.954099}, + {-0.439021,0.197579}, + {-0.539345,0.439251}, + {0.651230,0.754042}, + {-0.355923,-1.137383}, + {-0.177306,0.749586}, + {0.441287,-0.286658}, + {-0.902108,0.227320}, + {-1.284466,1.638574}, + {-0.036202,0.181132}, + {-1.497482,0.003437}, + {-0.061348,-0.006829}, + {-0.005529,-0.741155}, + {0.215731,0.852106}, + {1.581736,0.051235}, + {0.515924,0.070864}, + {-0.482895,1.204395}, + {-0.025352,-0.128358}, + {1.549274,-0.306254}, + {0.574087,0.073902}, + {-0.521191,0.521923}, + {-0.316768,-1.246159}, + {0.374086,-0.736770}, + {0.657694,0.176918}, + {-0.873769,0.767673}, + {1.284637,0.593571}, + {0.129845,-0.097307}, + {-0.554935,0.847270}, + {0.103939,0.668202}, + {0.803857,1.265275}, + {0.337945,-0.680761}, + {-0.332438,0.818654}, + {0.815651,-0.086611}, + {0.898750,0.267473}, + {0.332558,0.854873}, + {0.033251,-0.369557}, + {-0.994826,0.728912}, + {0.320312,0.989656}, + {-0.968790,-0.524464}, + {0.050254,-1.200479}, + {1.284280,0.052694}, + {-0.551391,1.260977}, + {-0.243554,-0.369087}, + {0.248510,-1.259281}, + {-0.100092,0.030010}, + {0.639801,-0.080694}, + {-0.453774,0.601667}, + {0.157292,0.534592}, + {0.350959,0.051935}, + {-0.757799,-0.971434}, + {0.493319,-0.446165}, + {0.614688,-0.582649}, + {0.074603,-0.299675}, + {0.882269,-0.187581}, + {0.372823,0.368325}, + {0.114711,-0.315413}, + {-0.451795,0.002528}, + {0.124370,-2.011045}, + {0.144513,-0.674410}, + {-0.887191,0.318651}, + {0.276441,-0.028075}, + {-0.656448,0.802020}, + {-0.278558,0.378958}, + {-1.030818,-0.732686}, + {0.993217,-0.426098}, + {0.539963,-0.880491}, + {0.259553,0.120942}, + {0.980649,0.629225}, + {0.549393,-0.007366}, + {1.775229,-0.150526}, + {-0.505972,0.223503}, + {-0.705733,-0.590672}, + {0.617949,-0.169851}, + {-0.057909,0.846471}, + {0.008234,-0.314480}, + {-0.096775,1.283379}, + {-0.962696,-0.439218}, + {-0.259974,0.118526}, + {0.250173,-0.150096}, + {0.910862,-0.680728}, + {-0.415913,-0.191966}, + {-0.396152,-0.497643}, + {-0.771449,-0.213775}, + {-0.301254,-0.272266}, + {0.926896,-0.570671}, + {-0.591745,0.146475}, + {1.086466,-0.131236}, + {-0.844351,-1.562438}, + {-0.990476,0.070498}, + {-0.077338,-0.863886}, + {0.136252,-0.505947}, + {-0.382066,-1.286926}, + {0.669333,-0.074047}, + {1.276768,-0.175578}, + {0.350866,0.997669}, + {0.615194,-1.606065}, + {-1.052562,-0.334451}, + {0.299494,-1.071920}, + {0.549473,0.191316}, + {-1.676270,-0.096974}, + {0.265582,0.159041}, + {0.244795,1.792395}, + {1.008245,-0.322289}, + {-0.702334,0.432326}, + {-1.037780,0.165330}, + {1.538379,0.489235}, + {0.703589,-0.819391}, + {-0.628913,-0.514712}, + {0.569468,0.511478}, + {-1.707972,0.273521}, + {0.317935,0.288596}, + {-0.284997,-2.009373}, + {-0.740532,0.559777}, + {0.537857,0.332833}, + {0.429478,-0.292228}, + {0.285689,1.118983}, + {-0.631836,-0.066223}, + {0.592196,-1.045784}, + {0.226062,0.549405}, + {0.309204,0.291148}, + {0.328950,-0.651208}, + {-0.175570,0.128113}, + {-1.071762,-0.222013}, + {-0.246732,0.503570}, + {0.562434,-0.087614}, + {-1.083738,0.163863}, + {0.138512,-0.058985}, + {-0.738895,0.011677}, + {1.499974,0.103210}, + {0.355002,-0.338290}, + {-0.256904,-0.343176}, + {-0.015659,-0.417844}, + {0.208660,0.606469}, + {-0.734477,0.817951}, + {-0.867542,0.663637}, + {-1.304717,-0.388440}, + {0.704185,0.760198}, + {-1.316292,-0.295106}, + {0.218730,0.983686}, + {0.818713,-1.046025}, + {-0.583046,0.551182}, + {1.265510,-1.016420}, + {-0.761852,0.033767}, + {-0.745320,-0.492837}, + {0.934553,0.066774}, + {-0.819204,0.242431}, + {0.611336,-0.031476}, + {0.096080,-0.848272}, + {-0.106150,-0.492336}, + {-0.383184,-0.269763}, + {0.132107,0.766301}, + {0.212758,-0.088413}, + {-0.422718,1.161167}, + {0.736935,-0.974879}, + {-0.910351,0.495623}, + {0.997377,0.717006}, + {1.989167,-0.180638}, + {-0.518269,1.156765}, + {-1.168705,0.352030}, + {0.875218,-0.727473}, + {0.110928,0.594784}, + {-0.893894,0.190021}, + {-0.063990,-0.588675}, + {0.271381,-0.362008}, + {-1.002002,0.472853}, + {-0.262505,-1.738222}, + {-0.726954,-0.594786}, + {1.196291,1.072635}, + {-0.121522,-0.341266}, + {-0.041270,0.655770}, + {0.198658,0.212242}, + {0.259623,-0.910297}, + {-0.906628,-0.709528}, + {0.763820,-0.135300}, + {1.075767,0.169487}, + {-0.535647,-0.428838}, + {0.184472,0.911065}, + {-1.106756,0.326421}, + {-0.568826,-0.976099}, + {-1.131721,-0.119743}, + {-1.014501,0.157798}, + {-0.188462,-0.981151}, + {0.998759,-0.198788}, + {-0.831733,-0.686713}, + {0.940988,-0.639840}, + {0.432728,-0.625815}, + {-0.373126,-0.262423}, + {0.717374,0.275913}, + {0.267194,-0.410032}, + {-0.244544,-0.599248}, + {-0.372515,-0.727035}, + {1.133795,0.095964}, + {0.188813,0.214390}, + {-0.491510,0.110745}, + {-0.112035,1.669554}, + {-0.692933,0.354110}, + {-0.777650,-0.649853}, + {0.206946,-0.549717}, + {0.060381,-0.218033}, + {-0.923367,1.095193}, + {-0.086790,0.112154}, + {0.173823,-0.663045}, + {0.246195,0.466305}, + {0.046693,-0.524645}, + {-1.283808,-0.478148}, + {0.964145,-0.018176}, + {0.171523,-1.351762}, + {-0.679412,-0.388570}, + {0.550322,-0.537612}, + {0.731997,-1.087005}, + {-0.454207,-0.599756}, + {-0.187639,0.654378}, + {-0.844323,-0.003906}, + {-0.145352,-0.604780}, + {1.621990,-1.918143}, + {-0.151221,0.586071}, + {-2.341130,-1.090539}, + {0.085287,0.722866}, + {-0.323067,0.087640}, + {1.363234,-0.722450}, + {-1.625929,-0.003371}, + {-1.349280,0.497928}, + {-0.763448,0.084800}, + {0.968353,0.485273}, + {-0.654131,0.368048}, + {0.906649,0.966963}, + {0.502693,-0.801039}, + {-0.106512,-0.017897}, + {-0.357878,0.507848}, + {0.596556,-0.386384}, + {-1.350622,-0.075382}, + {-1.132769,-0.094515}, + {0.784254,1.026684}, + {-1.195967,-0.498431}, + {-1.486993,1.041977}, + {-0.861464,1.155882}, + {0.454096,-0.743460}, + {0.135509,0.255852}, + {0.328982,0.287838}, + {-0.351451,-1.454514}, + {-1.163104,0.800600}, + {-0.159101,-0.818017}, + {0.570768,-0.511169}, + {0.261905,0.321343}, + {-0.961814,-0.663710}, + {1.707887,-0.051143}, + {-1.670659,-0.504308}, + {0.921242,0.016788}, + {0.340322,-0.915290}, + {0.166781,-0.511569}, + {-0.158216,-0.111283}, + {-0.283839,-0.287862}, + {0.628406,0.668089}, + {-0.332001,-1.189296}, + {0.017396,0.278010}, + {-0.009861,0.703837}, + {0.292750,0.126056}, + {-1.187099,-1.326938}, + {-0.183012,-0.223564}, + {-0.566881,0.719534}, + {-0.083212,-0.380213}, + {0.070757,-0.303190}, + {-0.121132,0.687038}, + {0.322541,-0.477786}, + {0.129674,-0.807120}, + {-0.418168,0.229298}, + {-0.546595,0.883441}, + {0.637606,0.900993}, + {-0.022450,-0.668027}, + {1.165285,-0.042859}, + {0.394648,1.776434}, + {-0.119592,-0.949967}, + {-0.380534,-0.700304}, + {-0.428653,0.876593}, + {-0.010833,0.445818}, + {-2.068289,0.926831}, + {-0.056759,-1.011635}, + {0.951500,0.730713}, + {-0.735857,-0.974632}, + {-0.441883,-0.113780}, + {0.403497,-0.698566}, + {-0.583007,-0.225655}, + {0.845352,1.129219}, + {1.029108,0.170238}, + {0.677910,-0.154584}, + {-0.866846,-0.610082}, + {0.620796,0.585499}, + {-0.175772,-0.410802}, + {0.738516,0.222083}, + {0.340440,-0.224279}, + {0.514320,-0.118299}, + {0.643830,0.931380}, + {0.823034,0.678161}, + {-0.025896,-0.374766}, + {-0.296529,0.078295}, + {-0.197529,1.188479}, + {-0.561245,1.938594}, + {-0.891056,-0.514375}, + {-0.583395,1.256778}, + {0.358371,0.149749}, + {0.713595,0.243942}, + {-0.424386,-0.267761}, + {0.801126,-0.010966}, + {-0.860760,0.599409}, + {-0.132413,0.845348}, + {-0.366124,1.094189}, + {0.098452,1.013495}, + {-0.594768,1.698599}, + {-0.214296,0.107876}, + {0.435504,-0.097577}, + {0.484505,0.098009}, + {0.395685,1.294490}, + {-0.288240,0.457515}, + {0.454454,0.065128}, + {0.611166,1.360646}, + {0.479140,1.245248}, + {1.573051,0.996718}, + {0.353760,-0.558113}, + {-0.300835,-0.238335}, + {-1.239956,-0.500976}, + {0.687230,-1.586164}, + {0.984939,0.909665}, + {0.095002,-0.407167}, + {-0.722139,0.986728}, + {0.656063,0.152251}, + {-1.206285,0.300682}, + {-0.445228,-1.320390}, + {0.868370,0.652878}, + {0.480469,-0.416396}, + {0.844269,-0.152263}, + {-0.854423,-2.170806}, + {0.451749,-0.005347}, + {0.076050,-0.938747}, + {0.414240,0.282529}, + {-0.314277,0.634230}, + {-0.352751,1.885884}, + {-0.331918,0.293480}, + {-0.611542,-0.591605}, + {-0.032914,-0.878914}, + {0.182686,0.511677}, + {0.282213,-0.654782}, + {0.180992,-0.735602}, + {0.434231,-0.167422}, + {-0.416232,0.478046}, + {-0.150081,-0.445287}, + {-0.321248,-0.468089}, + {0.620043,0.101055}, + {-0.728128,-0.213253}, + {-1.353567,-0.307609}, + {0.725953,-0.761898}, + {0.531030,-0.335851}, + {-0.913209,-0.639658}, + {-0.309075,0.414710}, + {-0.120038,1.012719}, + {0.402300,-0.164851}, + {-0.404268,-0.373224}, + {-0.619788,-0.509276}, + {-1.967288,-0.882356}, + {0.774993,0.863349}, + {0.170683,-0.823057}, + {-1.277681,-0.649139}, + {-0.150491,0.048295}, + {0.655999,-0.224661}, + {-0.328017,1.448516}, + {-0.168569,-0.611396}, + {-1.867020,-0.315154}, + {-0.172188,0.758110}, + {-0.688985,0.441307}, + {-0.344957,0.468144}, + {0.467038,-1.260435}, + {-0.002124,0.251853}, + {0.532495,-0.325352}, + {-0.436167,0.212400}, + {-0.226487,0.643460}, + {1.280616,-1.277356}, + {-0.015069,1.146608}, + {0.145602,0.831614}, + {-1.259462,0.772211}, + {-0.348614,0.234378}, + {0.236966,-0.423945}, + {0.171916,0.116998}, + {-0.380486,-0.447256}, + {-0.069114,-0.908586}, + {0.006162,0.030039}, + {-0.360495,0.129786}, + {-0.449148,0.342152}, + {-0.637659,0.279006}, + {-0.475733,0.146527}, + {0.774150,-0.450019}, + {0.384453,0.905140}, + {0.539473,0.294686}, + {0.963547,0.772764}, + {-0.577154,0.243345}, + {-0.990744,-0.184541}, + {0.361697,-0.706210}, + {-1.300668,-1.074359}, + {-0.350468,-0.053975}, + {-1.253670,1.152225}, + {0.645014,-1.229474}, + {-0.947043,-0.775451}, + {0.731531,0.761002}, + {-0.704281,-0.492722}, + {-2.122805,1.221006}, + {-0.886448,0.215374}, + {-0.063047,1.035249}, + {-0.130030,-1.597369}, + {-1.588580,-0.164693}, + {0.243675,0.189793}, + {1.045297,-1.178104}, + {0.389365,-0.556548}, + {0.475483,-1.559555}, + {-0.335436,0.300775}, + {-0.972000,-0.175491}, + {-0.133305,1.090422}, + {1.581001,0.260800}, + {-0.075648,1.263143}, + {1.516818,-0.971175}, + {0.169816,-0.200516}, + {-1.034590,0.153998}, + {-1.097372,0.044848}, + {-0.579664,-0.209895}, + {-0.053491,-0.037996}, + {1.254129,-1.166188}, + {-1.171324,-1.423655}, + {0.425314,-0.416050}, + {-0.615369,0.303270}, + {-0.110978,-0.122135}, + {0.204478,0.019416}, + {-0.802350,0.427858}, + {-1.296030,-0.172149}, + {-0.506648,0.402006}, + {-0.190420,0.046755}, + {0.243431,0.240358}, + {-0.507131,0.100200}, + {-0.454722,-0.946433}, + {0.725846,0.693385}, + {-0.194304,1.034517}, + {-0.639409,-1.491172}, + {-0.370464,-1.316069}, + {0.026346,1.232204}, + {-0.045298,-1.867401}, + {1.566024,-1.070478}, + {-0.525522,0.424209}, + {-0.390620,0.469335}, + {-0.748788,-0.640077}, + {-0.861505,1.668542}, + {0.942889,1.164779}, + {0.168485,-0.273375}, + {-1.415495,1.078624}, + {-0.973990,-0.245288}, + {-0.406225,0.204616}, + {-1.107687,0.132306}, + {-0.922430,0.271948}, + {-0.770345,0.248383}, + {-0.262733,-0.459021}, + {-1.543574,0.237828}, + {0.427934,1.167747}, + {0.838651,-0.645278}, + {0.003714,0.143614}, + {-0.365774,0.832688}, + {0.120564,0.594678}, + {0.995994,-0.565695}, + {-0.126425,0.174578}, + {0.947284,-0.717938}, + {1.291500,0.893980}, + {0.094097,0.331983}, + {-1.520554,1.050692}, + {0.429938,0.967334}, + {1.062959,1.335563}, + {-1.374009,0.443307}, + {-0.133662,0.424658}, + {-0.351652,0.475247}, + {-0.774004,1.216356}, + {-0.929932,-1.357864}, + {-1.093596,-0.304936}, + {0.421699,1.120944}, + {-0.347581,-1.700207}, + {1.759930,0.663514}, + {-0.091702,0.155358}, + {0.037256,0.562375}, + {-0.880499,0.164302}, + {-0.851232,0.905426}, + {-0.576845,0.536598}, + {-0.671018,0.273580}, + {0.527832,0.179628}, + {-0.088704,-0.382192}, + {-0.475693,-0.489545}, + {0.813913,-0.007911}, + {0.866953,1.168459}, + {0.342727,0.090489}, + {-0.102248,0.577989}, + {0.548149,0.018512}, + {-0.439522,-0.100163}, + {-0.187621,-0.065630}, + {-0.323931,-0.323939}, + {-0.346097,-0.211944}, + {0.183836,1.796108}, + {-0.314326,0.290377}, + {0.221068,-0.314679}, + {-0.807497,0.876966}, + {1.656237,-1.284909}, + {0.429140,0.610550}, + {-0.692503,-1.275180}, + {0.148498,-0.742160}, + {0.471384,-0.117794}, + {-0.337555,0.201199}, + {0.276186,0.288946}, + {0.242827,-0.076791}, + {1.846708,-0.086855}, + {-0.069953,0.656462}, + {0.115995,0.180799}, + {-0.284735,0.545367}, + {0.633690,-0.122335}, + {-0.909572,-1.230068}, + {0.080008,0.996363}, + {0.694586,-0.073983}, + {-0.882830,-1.068673}, + {0.189491,1.853682}, + {-1.424492,0.427126}, + {0.689818,1.018190}, + {0.475888,-0.235734}, + {0.272150,0.265798}, + {0.032696,0.054859}, + {-0.596591,-0.418400}, + {-0.330926,1.472477}, + {0.830467,0.554452}, + {0.141106,-0.441457}, + {0.871720,0.179847}, + {0.295633,-0.724683}, + {-0.435067,0.340489}, + {0.350137,1.011308}, + {-0.193628,0.339546}, + {0.698882,0.568895}, + {0.714853,-0.257131}, + {-0.262342,-0.470386}, + {-0.636850,-0.532836}, + {-0.147885,-0.767427}, + {0.750463,-0.213164}, + {-0.548790,0.050549}, + {-1.033421,-0.901535}, + {1.500041,-1.549836}, + {-0.432532,0.497503}, + {1.038156,0.874007}, + {0.463656,0.085929}, + {-0.089563,-0.381914}, + {-0.081148,1.037969}, + {0.548773,0.429676}, + {-0.491311,-0.637343}, + {-2.438709,-0.051842}, + {1.225795,-0.902596}, + {-0.445842,0.452895}, + {0.109824,0.055383}, + {-0.232239,0.462964}, + {0.237473,-0.816454}, + {-0.073903,0.108264}, + {-0.412081,0.634950}, + {0.526763,-0.598860}, + {0.633333,0.185228}, + {-0.230045,-0.696161}, + {-1.147548,-0.875395}, + {-0.126686,-0.787857}, + {-0.478097,-0.754376}, + {-1.022308,-0.408585}, + {-0.269342,-0.318111}, + {-0.634583,0.035421}, + {0.976029,0.481457}, + {0.490922,1.815942}, + {-0.325872,0.000525}, + {-0.552517,0.029422}, + {-0.493102,-0.053374}, + {-1.503537,-0.460894}, + {1.108601,-0.232398}, + {-0.695587,-1.170494}, + {-1.077017,-0.195150}, + {0.199615,0.188295}, + {0.984679,-0.566367}, + {1.297710,-0.537764}, + {-0.743610,1.332962}, + {0.611631,-1.230295}, + {0.535225,-0.203019}, + {-1.456897,0.798777}, + {-0.000363,-0.238487}, + {0.922337,0.150983}, + {0.215997,0.386013}, + {0.536468,0.167675}, + {0.223258,0.110369}, + {0.661156,0.422147}, + {-0.247800,-0.854418}, + {0.653356,0.093449}, + {0.412471,0.099614}, + {0.008260,-0.284842}, + {0.602377,0.832860}, + {-0.140841,0.066235}, + {0.373272,-0.127086}, + {0.881863,-0.583065}, + {-0.689000,0.206484}, + {1.005700,-0.372850}, + {-0.405465,-0.531119}, + {-0.647395,-0.657215}, + {0.062044,-1.065059}, + {-0.727797,0.903809}, + {-0.566777,-0.706294}, + {-0.632129,0.467014}, + {0.899076,0.126889}, + {0.385478,1.186605}, + {0.703954,-0.241354}, + {0.283012,0.853681}, + {-0.971216,-0.982086}, + {0.102070,-0.510027}, + {-0.474635,0.615183}, + {-1.176123,0.165700}, + {0.656442,-0.454286}, + {-0.470031,0.269875}, + {-0.570072,0.651427}, + {0.160737,0.443575}, + {-0.102227,-1.423956}, + {0.063696,0.787943}, + {0.435511,-1.119014}, + {-0.192739,-0.355147}, + {-0.353761,-0.790623}, + {-1.113609,0.176838}, + {0.250330,-0.046952}, + {0.615718,0.870463}, + {0.400504,0.431724}, + {1.162029,-0.731667}, + {0.568344,-1.078877}, + {0.085425,-0.443310}, + {0.207902,1.284480}, + {0.334856,0.462654}, + {-0.335173,1.595103}, + {-0.929111,-0.555447}, + {0.011277,0.456913}, + {-0.040002,0.130483}, + {0.973999,0.191361}, + {-0.303043,0.236946}, + {0.643394,-0.426236}, + {0.323195,-1.152534}, + {0.747335,-1.247994}, + {0.294046,-0.113540}, + {-0.253140,-0.990029}, + {1.250059,0.248076}, + {-0.521407,-0.594040}, + {0.808065,0.500768}, + {-0.017087,1.026674}, + {0.006366,-0.327461}, + {-0.349676,-1.622236}, + {-0.438362,0.532035}, + {-0.660037,-0.474255}, + {0.162498,0.533545}, + {1.633542,-0.132034}, + {-0.318215,0.175327}, + {1.192031,-0.516092}, + {0.778273,2.231759}, + {-0.011893,-0.581060}, + {-1.029364,-0.695297}, + {-0.173287,0.110115}, + {0.635321,0.005894}, + {-0.363303,0.267814}, + {0.757333,0.531349}, + {-0.454391,-0.388071}, + {0.250888,-1.427019}, + {0.180933,-1.456074}, + {0.679743,-0.683070}, + {-0.313584,-0.254765}, + {-0.030301,0.911933}, + {0.128000,0.628659}, + {-0.443625,-0.158499}, + {1.973744,-0.920044}, + {0.893488,-0.150660}, + {0.931910,0.910991}, + {0.042853,-0.026324}, + {-0.313634,-0.520955}, + {-0.671536,-0.215733}, + {0.556569,0.028198}, + {1.117075,0.254181}, + {-0.910888,0.046416}, + {-0.442587,-0.710371}, + {0.417335,0.155742}, + {-0.390962,1.821362}, + {0.041557,0.535249}, + {0.118388,-1.118331}, + {-1.008590,0.173649}, + {0.933494,-0.410314}, + {-1.828304,-0.246922}, + {0.948599,0.110863}, + {0.563454,-0.219323}, + {0.190125,-1.330677}, + {0.649893,0.077576}, + {0.752153,0.957161}, + {0.145088,0.727431}, + {-0.266557,-0.271793}, + {-0.021569,0.947269}, + {-0.193472,0.296913}, + {0.872543,0.792483}, + {0.567036,-1.219657}, + {-0.243654,0.348594}, + {1.193936,0.547621}, + {0.457518,0.539115}, + {0.476268,0.389504}, + {0.481768,-1.579726}, + {-0.125194,0.075938}, + {0.973247,-0.247002}, + {-0.843604,0.794316}, + {0.516310,0.192748}, + {-0.156413,-0.385387}, + {0.670795,0.673320}, + {0.715695,0.154379}, + {-1.280764,-0.035405}, + {0.336530,1.477179}, + {0.379120,1.083063}, + {-0.395949,-0.490567}, + {-0.541033,0.318875}, + {1.380447,1.144061}, + {-1.155728,-0.451759}, + {-0.119609,0.530847}, + {0.112070,-0.418582}, + {-0.073277,-0.967746}, + {-0.568655,0.359419}, + {-0.644562,1.301028}, + {-0.972656,-0.051257}, + {0.565598,0.063147}, + {0.226373,-1.303766}, + {-0.053945,0.745209}, + {-0.902083,-0.659843}, + {1.127191,1.430759}, + {-0.593266,-0.302685}, + {-0.258176,0.542044}, + {-0.416106,-0.838782}, + {-0.513205,-0.035953}, + {0.242585,-0.897682}, + {-0.942517,1.556742}, + {-0.845536,-0.691953}, + {1.195428,-0.996093}, + {2.193852,-0.065919}, + {0.924832,-0.176276}, + {2.032670,0.127016}, + {-0.102169,0.484681}, + {-0.035450,-1.188934}, + {0.429058,0.816624}, + {-0.470365,0.209900}, + {1.204684,0.408525}, + {-1.114052,0.414965}, + {-0.544975,1.493659}, + {1.142379,0.058358}, + {-1.591466,0.057853}, + {-0.396774,-0.466300}, + {0.278815,0.305556}, + {0.398613,-0.065548}, + {0.671438,0.213874}, + {-1.240631,0.575082}, + {0.694327,-1.107893}, + {-0.789778,-0.245106}, + {1.082148,0.219531}, + {0.152659,-0.295388}, + {1.491724,1.028192}, + {0.264360,-2.175691}, + {0.311309,0.322370}, + {-1.010542,-0.856291}, + {1.053519,-0.514131}, + {0.635882,0.553160}, + {0.210920,-0.544505}, + {-0.390892,0.472470}, + {-1.002592,0.835210}, + {-0.380769,1.290713}, + {-1.474071,-0.592612}, + {-1.467829,-0.275493}, + {-0.484917,-0.266843}, + {1.358912,-0.290679}, + {-0.760563,0.421103}, + {0.606959,0.863622}, + {-0.587442,0.924857}, + {-0.967521,-0.513563}, + {-0.083623,0.137413}, + {-0.366754,0.279873}, + {-0.664209,-0.109312}, + {-0.807642,-1.778743}, + {0.805218,0.540964}, + {0.176385,-0.486583}, + {0.173106,-0.536233}, + {0.000016,0.458630}, + {-0.370551,-0.189795}, + {0.285176,0.463441}, + {0.240888,-0.349790}, + {0.108800,-1.538375}, + {0.043605,-2.269263}, + {-0.272421,-0.006057}, + {0.246002,0.570891}, + {0.096239,1.069368}, + {0.120818,-0.952900}, + {-0.717973,0.329944}, + {0.667827,0.340873}, + {1.111960,-0.209056}, + {-0.189543,-0.273671}, + {0.227323,1.114953}, + {-0.126011,0.855705}, + {-0.076941,-0.519865}, + {0.663803,0.416814}, + {-1.438996,0.380905}, + {0.894368,-1.006748}, + {0.577437,-0.173548}, + {1.291229,1.496509}, + {-0.272941,-0.641907}, + {-0.724711,0.930725}, + {0.076404,-0.563913}, + {-1.000032,0.407691}, + {-0.566778,0.243748}, + {0.053640,-1.146169}, + {0.056950,-0.137659}, + {0.346461,0.676644}, + {1.134174,0.689609}, + {0.667048,0.155867}, + {-0.320707,-0.534195}, + {0.003425,0.485725}, + {-0.047785,-0.403591}, + {-0.508202,-0.573405}, + {0.249207,0.572682}, + {-0.257244,0.012521}, + {0.677142,-0.089546}, + {0.020521,1.116257}, + {0.752646,1.008726}, + {-0.505273,-0.214467}, + {-0.574463,0.394588}, + {-0.062090,0.170994}, + {-1.058119,0.845956}, + {0.671211,0.127179}, + {0.669598,0.396192}, + {-1.024867,-0.406429}, + {-0.919537,-1.145803}, + {0.835666,-1.895036}, + {-1.151913,0.473192}, + {0.555942,0.438244}, + {-0.109398,-0.855773}, + {-0.287955,-0.851273}, + {-0.240201,0.972916}, + {0.263522,1.213921}, + {0.260295,0.650558}, + {0.211509,0.528461}, + {0.224630,0.145409}, + {0.998198,-0.616575}, + {-0.241487,-0.203747}, + {0.176697,0.282204}, + {-1.171878,-0.213805}, + {-0.379528,0.635300}, + {-1.216967,0.179625}, + {-0.880248,-0.542043}, + {-0.062630,1.538727}, + {-0.418366,0.221704}, + {-0.204577,-0.588521}, + {0.468903,0.240225}, + {0.962490,0.035097}, + {-1.212926,-0.343519}, + {1.920868,0.684370}, + {1.041078,0.532627}, + {0.283895,-0.418711}, + {-1.397285,0.823509}, + {0.297481,-0.725686}, + {-0.495904,0.086877}, + {-0.863560,-0.351497}, + {0.531538,1.820775}, + {-1.045262,0.780107}, + {0.974250,-0.849368}, + {0.380715,-1.227674}, + {0.781374,-0.931283}, + {-0.112700,0.323563}, + {0.188277,0.095565}, + {-0.780066,-0.535792}, + {-0.559995,0.628452}, + {-0.217922,-0.893528}, + {0.759105,-0.418794}, + {0.649615,0.790668}, + {0.067538,-0.565015}, + {-0.002673,0.883082}, + {0.194140,0.176718}, + {-0.940190,1.442042}, + {0.619299,0.056097}, + {0.468398,0.509592}, + {-0.711271,0.043840}, + {-0.998983,-0.728807}, + {0.325337,0.466913}, + {0.077430,0.279358}, + {-0.673751,0.162800}, + {-0.231974,0.235378}, + {0.910689,-0.797473}, + {-1.622605,-0.841817}, + {0.432091,-1.018767}, + {-0.539186,-0.324225}, + {-0.242040,0.155646}, + {1.252015,0.593035}, + {0.188151,-0.739432}, + {0.534619,0.511769}, + {0.345659,0.476703}, + {-0.474379,0.580542}, + {-0.760683,-0.293209}, + {-0.917086,0.574522}, + {-0.423170,-0.878440}, + {0.040276,0.362034}, + {0.008902,-0.223798}, + {0.002946,-0.186733}, + {-0.727363,0.046058}, + {0.494353,-0.235286}, + {0.720284,0.433101}, + {1.295036,0.230127}, + {-0.419453,0.141825}, + {-0.485166,0.030742}, + {-0.579491,-0.809389}, + {0.297978,1.166165}, + {0.107656,0.089250}, + {-0.419769,0.749546}, + {0.101102,0.988807}, + {-0.007293,-0.739409}, + {-0.673602,0.874056}, + {0.488981,-0.019753}, + {-0.544172,1.634457}, + {-1.110920,-0.678521}, + {-1.387117,-0.567418}, + {-1.186982,-0.625841}, + {-0.131011,-0.534074}, + {0.455097,0.393563}, + {0.737161,-1.031238}, + {0.817935,-0.327775}, + {-0.385625,-0.012476}, + {-0.802613,0.038609}, + {-0.194642,-0.009339}, + {0.377562,-1.207033}, + {-0.660416,-0.454296}, + {-0.706623,0.381842}, + {-0.116607,0.548143}, + {0.288850,-1.075507}, + {0.276881,0.463193}, + {0.829630,0.529055}, + {0.299449,-0.575188}, + {-0.231345,0.351412}, + {1.003362,-1.460585}, + {0.451130,-1.124930}, + {0.322338,0.099733}, + {-0.254205,-0.042471}, + {0.211873,-0.537793}, + {0.550656,-1.202402}, + {0.302071,-0.529459}, + {0.484872,-0.424805}, + {-0.676112,1.242723}, + {0.196295,0.986675}, + {-0.006182,0.043626}, + {1.004458,-1.101313}, + {-0.508022,-0.307337}, + {-0.069604,-0.270549}, + {-0.936588,0.401472}, + {0.395051,-0.291762}, + {0.249364,-0.460210}, + {0.470524,-1.377845}, + {-0.031948,-0.316301}, + {0.398084,0.453870}, + {-0.084745,0.044352}, + {-0.653237,0.563452}, + {-0.052125,0.128803}, + {-0.427875,0.636993}, + {1.058874,0.376406}, + {-0.282247,-1.483023}, + {-0.125176,-0.032568}, + {1.794146,-1.232187}, + {-0.187983,-0.345985}, + {0.123095,-0.261032}, + {-0.415461,-1.090493}, + {-0.500346,-0.804478}, + {-0.513241,1.041086}, + {-1.784888,0.501072}, + {-0.235262,-0.395913}, + {-0.874197,0.136517}, + {0.802032,0.092163}, + {0.172660,-1.036619}, + {-0.740904,0.535180}, + {0.617676,0.005886}, + {-0.693840,-0.522827}, + {-0.803188,-0.240073}, + {-0.728556,-0.632434}, + {-0.149941,0.193266}, + {0.476898,-0.368260}, + {-0.031225,-0.120384}, + {-0.073972,0.464808}, + {0.160690,0.537959}, + {-0.450836,0.102038}, + {-0.216212,1.235659}, + {0.164200,0.192175}, + {-0.265676,0.384622}, + {0.213530,-0.157196}, + {-0.833550,-0.048440}, + {0.003577,0.903917}, + {-0.060957,0.001082}, + {-0.422697,-0.291104}, + {-0.436963,0.617239}, + {-0.560838,-0.652536}, + {-0.389877,-1.335308}, + {0.221871,-0.727966}, + {0.366452,-0.156117}, + {0.048762,0.817719}, + {1.364032,-1.028170}, + {-0.199738,-0.597666}, + {-0.048452,0.186324}, + {0.317672,1.640253}, + {1.030187,1.004812}, + {0.186677,0.155142}, + {-0.128456,-0.513439}, + {1.114846,-0.127393}, + {-0.365605,-0.311630}, + {-0.081923,0.648966}, + {0.060946,1.009555}, + {0.545678,0.076880}, + {-0.990208,-1.026702}, + {-0.840658,0.552260}, + {-1.316496,0.415412}, + {0.233111,-0.268865}, + {-1.081822,0.126111}, + {-0.893361,0.121170}, + {0.637557,-0.768942}, + {-0.981313,-0.937625}, + {0.366842,-0.491230}, + {-0.296605,-0.122075}, + {-0.694637,-0.691831}, + {-0.346922,1.010405}, + {0.265549,-0.072721}, + {0.553767,0.365723}, + {-0.886712,0.109635}, + {-0.548347,-0.303784}, + {-0.124639,0.349517}, + {-0.989650,0.330316}, + {0.762642,0.298664}, + {-0.179434,1.111018}, + {0.040421,0.525211}, + {-0.040726,-0.517622}, + {-0.436258,-0.419372}, + {-0.614376,-1.002123}, + {0.714119,-0.753994}, + {-0.514783,-0.369145}, + {0.074207,-1.001150}, + {0.344306,-0.309130}, + {0.149015,0.765323}, + {-0.296244,0.136197}, + {0.962661,1.268011}, + {0.023783,-1.186554}, + {0.123632,0.492674}, + {0.856406,0.442632}, + {0.232322,-0.486339}, + {0.191689,0.265950}, + {0.179934,-0.748107}, + {-1.701289,-0.051015}, + {-0.259518,1.342912}, + {-1.092688,0.126797}, + {0.646145,1.070342}, + {-0.102832,0.212320}, + {0.371741,1.059808}, + {0.329041,0.597689}, + {1.172615,0.542162}, + {-0.190803,0.345770}, + {0.694535,-0.143332}, + {1.565777,-0.517105}, + {-1.157503,-0.395621}, + {0.977210,0.015425}, + {-0.257104,0.098762}, + {-1.333003,0.368782}, + {0.061883,0.379086}, + {0.445949,-0.575541}, + {0.417953,0.289093}, + {0.289993,-0.020798}, + {-1.440368,0.472769}, + {1.148131,1.054014}, + {-0.556081,0.000779}, + {0.327782,0.192655}, + {-0.039300,-0.677965}, + {0.740380,-0.491050}, + {-0.072859,-1.870999}, + {-0.464327,-0.233392}, + {0.037757,-0.291647}, + {-0.124848,-0.199890}, + {0.429504,1.065232}, + {-0.841457,0.469673}, + {-0.636712,0.263585}, + {0.958690,-0.322036}, + {-0.209246,0.211522}, + {0.228839,-1.553564}, + {0.544155,0.188110}, + {0.738006,0.016440}, + {0.586748,0.001516}, + {0.360613,0.505248}, + {-0.257556,-0.316652}, + {-0.203123,0.066133}, + {0.707979,-0.756344}, + {-0.583274,-0.479593}, + {-0.810371,-0.061860}, + {0.273421,-0.865636}, + {-0.823282,0.610077}, + {0.094723,0.544387}, + {-0.008236,0.290898}, + {0.646489,0.296314}, + {-0.205770,-0.509249}, + {-0.052562,0.594927}, + {0.444777,0.441814}, + {0.100155,-0.501991}, + {-0.232563,-0.082230}, + {-0.081497,-0.962312}, + {0.041276,0.987394}, + {1.069935,-1.329858}, + {-0.076026,-0.887274}, + {0.086993,0.014743}, + {-0.179174,0.280143}, + {0.565349,-0.420367}, + {0.521928,-1.241770}, + {0.916126,1.435687}, + {0.637655,-0.516147}, + {-1.043603,0.819465}, + {-0.883656,-0.205474}, + {-0.644741,0.180014}, + {0.622506,-0.334192}, + {-0.241486,-0.600670}, + {-1.499588,0.650466}, + {-0.201187,-0.192333}, + {0.480999,-0.530799}, + {-1.738026,-0.145849}, + {0.998277,0.673428}, + {-0.144344,-0.233893}, + {-0.059109,-0.308362}, + {0.269830,1.562885}, + {-0.013641,-0.506529}, + {-0.278890,0.111794}, + {0.066036,0.843526}, + {-0.042208,1.107633}, + {-0.014597,0.485376}, + {0.183473,-1.283402}, + {-0.039860,-0.602430}, + {0.759903,0.034461}, + {-0.520732,0.826968}, + {0.093097,0.518453}, + {-0.047591,0.588031}, + {-0.808060,-0.728578}, + {-1.845584,0.914242}, + {0.266263,0.716752}, + {-1.253357,-1.118286}, + {0.705217,0.050021}, + {0.743902,-0.448512}, + {0.216893,0.073955}, + {0.385487,0.994616}, + {0.178511,0.204042}, + {-0.523429,-0.483543}, + {0.274570,0.042189}, + {-0.187481,0.727858}, + {-1.040426,-0.720766}, + {-0.359936,1.093006}, + {-0.665247,-0.950281}, + {-1.001936,0.289410}, + {1.381124,0.376211}, + {0.995092,-0.174666}, + {1.360198,-2.217745}, + {-0.554387,-1.676721}, + {-0.233175,-0.582371}, + {-0.388060,-0.034116}, + {1.342218,0.537788}, + {0.249304,1.296082}, + {-1.475857,-1.157512}, + {-0.197745,-0.568437}, + {0.824403,0.507678}, + {0.819198,-0.920770}, + {0.385495,-0.200380}, + {-0.503672,0.548119}, + {-1.111840,-1.633640}, + {-1.163537,-0.037715}, + {0.292674,-0.654745}, + {-0.962338,-0.407980}, + {-0.123743,0.028162}, + {-0.253323,0.014822}, + {0.479730,-0.823812}, + {-1.207221,0.300687}, + {0.996807,-1.482183}, + {-0.338063,0.564877}, + {0.920558,-0.084443}, + {1.293720,0.577197}, + {-0.967375,0.013719}, + {-0.481738,0.429749}, + {-0.943010,-0.544458}, + {0.060644,0.029556}, + {1.271225,0.072382}, + {1.345314,-0.606930}, + {-0.113264,0.048617}, + {-0.471231,0.591903}, + {0.450025,-0.255396}, + {1.082117,-0.457752}, + {-0.437023,0.619777}, + {0.199128,0.415873}, + {-0.738844,-1.578600}, + {-0.460504,-0.497232}, + {0.365693,0.851386}, + {1.155773,0.416016}, + {1.362762,-0.089273}, + {0.045085,-0.410653}, + {-0.352391,1.194551}, + {0.269619,-0.845695}, + {-0.937635,-0.041440}, + {-0.291614,0.210214}, + {-0.590964,0.334029}, + {0.041430,-0.582846}, + {-0.049634,-0.333992}, + {0.587620,0.926445}, + {0.019148,-0.708333}, + {-0.897879,1.311240}, + {-0.362442,1.068789}, + {0.417690,0.948938}, + {1.014004,-0.315357}, + {-0.426504,0.852104}, + {0.879939,1.426273}, + {1.147532,-0.513129}, + {-0.010543,-0.559115}, + {-0.935264,-0.274738}, + {0.047804,-0.517361}, + {-1.287619,-0.019239}, + {-0.829546,-0.280842}, + {-0.731296,0.823460}, + {-0.891822,0.427640}, + {0.589846,0.227553}, + {0.224689,0.571736}, + {-0.991209,-1.790480}, + {-0.009287,0.367028}, + {-0.551808,-1.155483}, + {-0.158887,-0.504851}, + {-1.006753,1.691039}, + {0.139125,1.656709}, + {0.311493,-1.358651}, + {-0.000659,-0.397979}, + {0.168687,-0.256026}, + {-1.042776,0.605335}, + {-0.319026,1.219072}, + {1.837911,0.271572}, + {0.239919,0.877257}, + {-0.037115,-0.596589}, + {-0.745878,1.264467}, + {0.010089,0.390431}, + {-0.581987,-0.175623}, + {-0.649250,0.127701}, + {-0.927358,-0.445949}, + {0.969864,-0.227424}, + {0.341977,0.252902}, + {0.135549,-0.495303}, + {-0.434902,-0.375805}, + {0.365613,0.090189}, + {-0.599520,-0.108817}, + {-0.486901,0.808199}, + {0.802453,0.113674}, + {-0.985303,0.348679}, + {0.272472,-0.315188}, + {0.653225,-0.102477}, + {-1.075974,0.333581}, + {0.197104,-0.038665}, + {0.362767,0.959841}, + {-0.336212,-0.991636}, + {0.341808,-0.200085}, + {0.350307,-1.046523}, + {0.941919,-0.790265}, + {-0.391904,-0.269616}, + {-0.583731,-0.576541}, + {-0.767887,0.168764}, + {0.804567,-0.160216}, + {1.321056,0.602316}, + {-0.188219,-0.925499}, + {-0.025028,-0.134455}, + {0.409337,0.135734}, + {0.934364,0.899781}, + {0.443336,-0.454010}, + {0.267522,1.651923}, + {-0.021616,-0.240785}, + {-0.389671,0.913717}, + {1.028459,-0.957200}, + {0.917363,0.369138}, + {0.528539,0.496175}, + {0.086018,0.410356}, + {-0.761042,0.621316}, + {0.674682,-0.212507}, + {-0.658861,-0.532391}, + {0.285689,-0.034456}, + {0.547369,0.588551}, + {-0.665673,-0.523220}, + {-0.044039,0.016680}, + {0.770642,1.488234}, + {1.180668,-0.468981}, + {-0.046869,-0.474722}, + {-0.575480,1.143743}, + {0.493793,-0.521459}, + {-0.181592,0.068195}, + {-0.893649,-0.629530}, + {0.739301,-0.072214}, + {0.372672,0.080329}, + {0.913631,-1.018692}, + {-0.517839,0.093767}, + {0.621679,0.306497}, + {0.074540,0.055095}, + {0.723377,-0.915493}, + {0.022777,-0.462031}, + {0.093992,0.364776}, + {-0.161938,-1.408632}, + {-0.700315,-0.305135}, + {0.067748,-0.187459}, + {0.483409,-0.713985}, + {0.928152,-0.381167}, + {-0.857084,1.583029}, + {-1.318696,0.516152}, + {0.062040,0.590523}, + {0.832742,-0.065744}, + {0.190616,0.184008}, + {0.718808,0.579103}, + {0.091621,-0.167070}, + {-0.496135,1.776628}, + {-0.776281,-0.967919}, + {-0.340838,-1.252051}, + {0.509865,0.890890}, + {0.011224,1.492168}, + {-0.370739,0.707013}, + {-0.707116,1.492027}, + {-1.470031,-1.128868}, + {-1.199963,0.304341}, + {0.178199,-1.144514}, + {0.827291,0.129026}, + {-1.809214,0.424594}, + {-0.056250,-1.086321}, + {-0.806620,0.594545}, + {0.614157,0.789597}, + {-0.230539,-0.152551}, + {0.305055,0.383843}, + {-0.572786,-0.383604}, + {0.699148,0.289711}, + {1.471148,1.731421}, + {0.221494,-0.119078}, + {0.134051,0.860560}, + {-0.199285,1.539492}, + {0.327753,-0.263169}, + {0.070554,-0.500086}, + {0.607835,1.349017}, + {0.298997,0.241897}, + {0.128546,0.517720}, + {-0.933511,-0.304699}, + {-0.222248,-0.319890}, + {0.219134,1.083726}, + {0.732430,-0.081472}, + {-0.274968,0.590110}, + {-0.774399,1.437671}, + {1.398432,-0.474460}, + {0.731892,0.666366}, + {0.286832,-0.212891}, + {0.820630,1.301418}, + {0.413562,1.052060}, + {-0.226316,-0.541971}, + {-1.042872,-0.345541}, + {-0.858989,-1.096863}, + {1.880585,-0.233188}, + {-0.807930,-1.151544}, + {0.394861,-0.330062}, + {-0.085289,-1.629366}, + {0.640853,-0.152655}, + {0.183194,-0.254060}, + {-1.443384,1.394728}, + {-0.011702,0.646342}, + {0.736446,-1.332796}, + {0.621335,-0.574106}, + {-0.338450,-1.567302}, + {-0.332211,0.110908}, + {-1.017165,-1.522539}, + {-0.140315,2.030807}, + {0.044867,-1.101171}, + {0.189708,0.085158}, + {-1.830584,0.387522}, + {-1.017359,0.484883}, + {0.275108,0.181996}, + {-0.327957,1.214680}, + {0.336969,-0.766226}, + {-0.562675,0.180997}, + {1.310744,0.585186}, + {0.080051,2.094519}, + {0.211201,0.942647}, + {0.568763,-0.272394}, + {0.152587,-0.595240}, + {1.275315,0.622396}, + {0.813283,-0.132745}, + {0.407696,1.569844}, + {0.039364,0.287794}, + {0.244642,-0.641218}, + {0.886477,1.006243}, + {0.948847,0.187471}, + {-0.626010,0.160922}, + {0.962612,0.504401}, + {0.875536,-0.815369}, + {0.175947,-1.244808}, + {-0.070131,0.461325}, + {0.202225,-1.039772}, + {-0.325603,0.232979}, + {-0.747171,-1.024781}, + {-0.079451,0.376832}, + {0.336329,1.142868}, + {0.213160,0.231289}, + {-0.691300,-0.017983}, + {0.057278,-0.387798}, + {0.073555,1.006174}, + {0.490772,0.337166}, + {0.685390,-0.318414}, + {0.637094,0.808315}, + {0.523969,2.121595}, + {0.721264,-0.482325}, + {-0.145401,-0.605792}, + {-0.233810,-0.053732}, + {1.269554,0.710916}, + {1.057321,-1.046691}, + {0.464363,-0.270764}, + {0.840490,1.150537}, + {-0.620898,-1.419891}, + {-0.857446,-0.039502}, + {-0.770707,-1.876256}, + {0.950801,1.087080}, + {1.432451,-0.030974}, + {0.490360,-0.567231}, + {-0.268067,-1.435917}, + {-1.183652,0.279454}, + {0.884853,-0.220426}, + {-0.528640,-0.111193}, + {-1.097008,0.128877}, + {-1.181036,-0.940732}, + {0.775628,0.000761}, + {1.472129,0.938313}, + {-0.651045,-0.150514}, + {0.253945,0.727849}, + {-0.625689,-0.863395}, + {-0.857663,-0.204035}, + {0.229410,0.785159}, + {0.415385,-0.811285}, + {0.135788,0.541017}, + {0.540449,0.302355}, + {-0.375243,-0.075659}, + {-0.126218,-1.254478}, + {-0.842535,-0.102853}, + {-0.944249,0.424586}, + {1.011823,-0.620988}, + {1.012036,0.169655}, + {0.512690,0.312651}, + {-0.628804,0.539718}, + {0.567513,0.109352}, + {0.934259,-0.533472}, + {-0.633715,-1.496096}, + {-0.416398,-0.918620}, + {0.421463,-1.209687}, + {0.314672,-0.470088}, + {-0.834237,-0.445546}, + {-0.485232,-0.247145}, + {-0.136325,-0.141431}, + {-0.006273,1.250196}, + {0.266229,-0.648711}, + {-0.945678,-0.027143}, + {0.782856,-0.470187}, + {0.305630,0.658933}, + {-1.111016,0.700723}, + {-0.365320,0.254061}, + {-0.175023,0.308741}, + {0.744562,0.103704}, + {0.557819,0.264705}, + {-1.130397,-0.307616}, + {0.190300,0.843572}, + {0.871835,-0.864320}, + {1.025579,0.117274}, + {-0.714639,-1.413594}, + {-0.394212,0.630346}, + {-0.402052,0.309273}, + {1.048158,0.495032}, + {-1.458614,0.390078}, + {-1.348655,-0.157187}, + {0.627460,0.517239}, + {0.616428,0.013392}, + {0.066659,0.172077}, + {0.177589,1.104288}, + {-0.202342,0.342469}, + {-0.896507,-0.597822}, + {-2.067867,-1.208733}, + {-0.022428,0.203426}, + {0.303756,0.349684}, + {0.627717,0.858736}, + {-0.745760,-0.181848}, + {-0.496215,1.429290}, + {-0.011943,-1.057738}, + {0.536641,1.349276}, + {-0.528001,-0.098934}, + {-1.063109,0.581999}, + {-1.256061,0.808575}, + {-0.601466,0.399072}, + {0.563718,-0.264581}, + {-0.237276,-0.677165}, + {-0.348054,1.673165}, + {0.064061,-0.618610}, + {-0.161228,0.795589}, + {-0.924021,-1.050412}, + {0.197726,0.353867}, + {-0.151410,-1.246225}, + {-0.714340,0.549384}, + {1.556261,-1.468342}, + {0.468479,-0.903354}, + {-0.483340,1.187727}, + {0.077127,-0.093447}, + {0.064972,0.945303}, + {-0.092409,0.145919}, + {1.315321,0.437219}, + {0.090724,0.761955}, + {0.781174,0.978083}, + {-0.308962,-0.268376}, + {0.696462,-0.805879}, + {0.966927,1.486179}, + {-1.249165,-1.299388}, + {1.239842,0.109267}, + {-0.340003,0.701168}, + {-1.633695,0.438179}, + {0.257196,0.023754}, + {0.005382,-0.652799}, + {0.698827,-1.245465}, + {1.057062,-0.264028}, + {-0.335223,-0.503241}, + {0.175219,-1.082885}, + {-0.274187,-0.933890}, + {-0.240526,-2.221268}, + {-0.007571,0.808866}, + {0.162060,0.252737}, + {0.481541,0.726904}, + {-0.555236,0.591634}, + {-0.136039,-0.497365}, + {-0.914324,-0.971380}, + {-0.330625,0.159913}, + {0.231296,-1.098666}, + {0.393929,-1.169035}, + {-0.664998,0.348284}, + {0.579266,-0.439099}, + {0.782286,-0.483201}, + {-0.036705,0.243544}, + {-0.470027,-0.758332}, + {-1.089025,0.282651}, + {-0.536396,-0.779503}, + {0.584009,0.036838}, + {0.777240,-0.758248}, + {-0.410388,0.482134}, + {-0.240905,-0.322910}, + {1.052859,0.448321}, + {0.744819,0.688556}, + {-0.323975,-0.312544}, + {1.688688,0.125085}, + {0.767757,0.027399}, + {-0.165767,0.087836}, + {-0.295850,-1.950460}, + {0.035816,0.245902}, + {-0.180130,-1.262665}, + {0.117034,0.019373}, + {0.309583,-0.084634}, + {0.160314,0.617106}, + {-0.223874,-0.405101}, + {0.391423,-0.984880}, + {-0.583522,-0.208371}, + {0.314564,1.000927}, + {1.528070,-0.488905}, + {0.682797,-0.214904}, + {-0.961746,0.561929}, + {-0.044529,-0.357871}, + {-0.881485,-0.203306}, + {1.081847,-0.376245}, + {0.828899,1.159757}, + {-0.396282,0.868155}, + {0.013008,-0.796971}, + {1.839981,0.128022}, + {0.861759,-0.389782}, + {0.939432,0.185296}, + {0.402922,-1.121553}, + {-0.878636,-1.122818}, + {1.213472,0.848105}, + {0.264317,-0.326819}, + {0.669519,-0.620270}, + {0.703125,-0.958242}, + {-0.367984,-0.413227}, + {-0.561993,0.902582}, + {0.709199,0.095548}, + {-0.624048,-0.624104}, + {0.367587,0.743255}, + {0.349618,-0.082040}, + {0.353670,-0.602772}, + {-0.121469,0.186655}, + {0.966288,-0.989082}, + {0.615847,1.087146}, + {0.049469,-0.498055}, + {0.161550,0.553359}, + {-0.061135,-0.214648}, + {0.046340,1.148951}, + {-0.104857,0.135405}, + {0.575610,1.613613}, + {0.294077,0.716711}, + {0.590764,-0.458646}, + {0.533655,-0.474675}, + {-0.200094,0.220235}, + {0.538978,-0.112814}, + {-0.596995,0.556408}, + {0.538951,-2.449696}, + {0.092171,-0.864222}, + {1.336939,0.991303}, + {0.333067,0.173662}, + {-0.153896,0.523270}, + {-0.582494,0.868651}, + {0.018634,0.130106}, + {-0.392325,-0.082136}, + {0.011480,0.421792}, + {-0.427424,-0.661210}, + {0.942397,0.587290}, + {-0.291423,0.402361}, + {-0.624678,0.855158}, + {0.427905,-0.996070}, + {-0.282753,-0.652971}, + {-1.240070,1.256909}, + {0.815396,-0.668763}, + {0.069285,0.238819}, + {0.077701,0.317614}, + {1.331490,0.009543}, + {1.194605,-0.196271}, + {0.230566,0.449264}, + {0.385677,1.158774}, + {-0.340860,-0.164507}, + {-0.842850,-0.564676}, + {-1.758840,0.064669}, + {-0.772174,0.091618}, + {1.140984,-0.811770}, + {-0.283852,-0.741705}, + {0.846224,0.293317}, + {-0.901372,1.090597}, + {1.033877,-1.064114}, + {-1.186147,0.598334}, + {-0.967792,1.113083}, + {0.974157,0.994512}, + {0.313614,-0.240645}, + {-0.063238,-0.036188}, + {-0.886378,-0.081582}, + {0.155813,-1.314707}, + {0.005821,0.803969}, + {0.031398,1.138370}, + {0.020663,-1.412936}, + {0.051696,0.849846}, + {-0.754989,-0.899231}, + {0.394988,0.540404}, + {-0.440672,-0.180217}, + {1.164193,-0.163753}, + {0.201996,-0.935543}, + {-0.757096,0.768721}, + {-0.851269,0.282609}, + {-0.032236,-0.457477}, + {0.242147,-0.379077}, + {-0.369603,-0.280814}, + {0.521168,-0.299217}, + {-0.383667,0.998399}, + {-0.273344,-0.133382}, + {-0.197726,0.033374}, + {0.399979,0.840030}, + {-0.349378,-0.387395}, + {1.124925,-0.570043}, + {0.418603,0.905447}, + {0.470094,-0.957354}, + {0.799573,0.109228}, + {0.261391,-0.587899}, + {0.115105,0.568951}, + {-0.511340,1.109997}, + {0.183765,1.450929}, + {0.528498,-0.666337}, + {0.342372,-0.375714}, + {-1.148716,0.543099}, + {-0.747361,-0.454390}, + {-0.510703,-0.904779}, + {0.494719,0.007910}, + {-0.178977,-0.714179}, + {-0.178152,-0.715379}, + {-0.282468,0.236082}, + {-1.500059,-0.596371}, + {0.070261,0.659727}, + {-0.930558,0.499131}, + {0.889396,0.872062}, + {1.504564,-0.762497}, + {-0.316940,-0.491494}, + {-0.366178,-0.120892}, + {-1.136140,-0.665677}, + {0.792450,0.494536}, + {-0.058379,-0.131564}, + {0.318553,-0.170468}, + {-0.442968,-0.453066}, + {-0.086122,0.487054}, + {-0.002152,0.609175}, + {-0.198518,-0.485488}, + {0.401525,1.306812}, + {-0.871198,-0.567593}, + {-1.415314,-0.301627}, + {1.094900,0.063995}, + {-0.495128,0.213385}, + {0.001405,-0.320934}, + {-0.324564,-0.183506}, + {0.122253,-0.766486}, + {0.984696,0.267844}, + {0.390885,-0.724844}, + {-0.295282,0.211369}, + {-0.452752,0.149217}, + {-1.129899,1.635510}, + {0.401396,0.319009}, + {-0.558456,0.761582}, + {0.516621,-0.299728}, + {1.170774,0.462117}, + {0.617850,0.230530}, + {-0.616788,-0.704169}, + {0.921282,-0.768237}, + {-0.341409,0.311033}, + {1.237788,-0.817666}, + {0.485433,-1.114476}, + {-0.342288,-0.175267}, + {0.536632,1.147849}, + {0.173754,0.023311}, + {0.019679,-0.413100}, + {0.597239,-0.651007}, + {0.649898,-0.023947}, + {0.784239,0.588037}, + {0.830428,-0.495560}, + {-1.123475,1.667920}, + {-0.757155,0.047444}, + {-1.536651,0.080233}, + {-0.600005,0.260676}, + {0.220305,-1.151817}, + {-0.957182,0.202521}, + {0.051226,-0.029891}, + {0.929447,0.384707}, + {-0.422607,-0.106100}, + {0.353436,0.656718}, + {-1.698234,-0.708923}, + {0.303429,-0.258709}, + {-0.088662,0.015699}, + {-0.107934,-0.261967}, + {0.273168,1.400901}, + {0.727049,-0.003312}, + {0.353597,0.715919}, + {-0.952026,-0.067464}, + {-0.145977,-0.817247}, + {0.424964,-0.919265}, + {0.216841,-0.912514}, + {0.817183,-0.911165}, + {-0.818262,-0.517903}, + {0.313475,-0.796077}, + {-0.461417,0.089258}, + {0.281792,-0.291761}, + {0.256943,-0.778188}, + {0.692420,-1.751276}, + {-0.667443,-1.761493}, + {0.064327,0.039954}, + {0.393151,-0.403340}, + {0.452610,-1.766216}, + {-1.336807,-0.219532}, + {0.984460,-0.595093}, + {-0.702228,0.759469}, + {-0.464956,0.036841}, + {0.212799,0.031216}, + {-0.802860,-0.547493}, + {-0.158662,0.903760}, + {0.085684,-0.487384}, + {0.396768,-0.742668}, + {0.947527,-0.110617}, + {-0.879301,0.044952}, + {1.116675,-0.038127}, + {-0.722818,1.392444}, + {-0.373075,0.108044}, + {0.341487,0.570356}, + {0.441689,-0.298432}, + {-0.916256,0.631859}, + {-0.115507,0.498266}, + {0.487754,0.201490}, + {1.238389,-0.100924}, + {0.271103,0.682797}, + {-0.148481,0.589360}, + {-1.194668,-0.756352}, + {0.264142,0.313523}, + {0.562690,-0.166170}, + {-0.527054,0.196752}, + {-1.636821,-0.651796}, + {0.182204,0.101729}, + {-1.710289,-0.320628}, + {0.053238,-0.006688}, + {0.879077,-0.416623}, + {0.459898,-0.350816}, + {-0.856786,0.761817}, + {0.575136,0.370224}, + {-0.710682,-1.661932}, + {0.336980,0.262314}, + {-0.579270,1.290335}, + {1.163348,0.112616}, + {-0.596616,-0.104548}, + {-0.584829,0.611158}, + {-0.507069,0.090728}, + {-1.061880,0.073344}, + {-0.141397,0.660130}, + {1.132322,0.001417}, + {-0.578203,1.455008}, + {0.430346,-0.353417}, + {0.774728,-0.360911}, + {0.089974,0.151366}, + {-0.258221,-0.281586}, + {0.380590,-0.050307}, + {0.805828,1.610702}, + {-2.417115,-0.796571}, + {0.513097,-0.330322}, + {-0.384140,0.768697}, + {-0.343898,0.186101}, + {-1.280400,-0.294454}, + {0.497601,-1.076587}, + {0.969059,0.648983}, + {0.415521,-0.271362}, + {-0.023547,-0.051680}, + {0.697681,0.077273}, + {1.467525,-0.087120}, + {0.914526,0.512467}, + {0.673227,-0.608451}, + {0.868157,-0.438369}, + {-0.641897,-0.582166}, + {-0.395403,-0.726859}, + {0.708135,0.058289}, + {0.155302,-0.353393}, + {-0.604680,-0.269021}, + {0.555662,-0.222243}, + {-0.691591,-1.012201}, + {0.593126,-0.482201}, + {0.938501,-0.141245}, + {-0.285179,-0.282197}, + {-0.332866,-0.838107}, + {-0.299353,0.907257}, + {-0.502252,0.130212}, + {0.509899,0.203982}, + {0.432764,-1.036891}, + {0.320100,0.302258}, + {-0.715537,0.630849}, + {1.399467,0.189787}, + {0.257626,0.021932}, + {-0.112331,0.217707}, + {-1.289427,1.432804}, + {-0.390872,-0.357403}, + {0.236182,0.303781}, + {0.802511,0.330483}, + {-1.028297,-0.403086}, + {-0.147910,-0.288479}, + {0.978197,-0.775374}, + {0.868229,1.459663}, + {0.452224,0.498722}, + {0.746035,-0.670797}, + {-0.360626,0.630983}, + {-0.148420,-0.258364}, + {-0.536846,0.526774}, + {-0.736656,0.599485}, + {0.251565,0.410096}, + {-0.817544,0.436993}, + {-0.361899,-0.266149}, + {0.106065,1.119062}, + {-0.001893,-0.840154}, + {-0.174058,0.288847}, + {0.450589,-0.520516}, + {0.330658,-0.272313}, + {0.560301,0.149574}, + {-0.927905,-0.026315}, + {-0.130635,0.149914}, + {-0.167674,0.479912}, + {0.163863,-0.914797}, + {-0.236233,0.492833}, + {-0.439716,-0.273501}, + {1.097053,0.570964}, + {-1.090225,-0.751110}, + {-0.622561,-1.038814}, + {0.309323,-1.010214}, + {-0.204232,-0.589475}, + {-0.039192,0.034730}, + {-0.672256,0.289962}, + {1.195556,-0.759149}, + {0.701010,-0.946209}, + {-0.211877,-0.021206}, + {0.834771,0.269014}, + {0.310538,0.897536}, + {-0.416299,-0.103346}, + {0.263666,-0.033155}, + {1.199319,0.739114}, + {0.209693,-0.011071}, + {1.463650,-1.052988}, + {-0.101228,-0.167856}, + {1.234120,-0.942573}, + {0.196785,0.954050}, + {0.829042,0.153133}, + {0.357430,0.139137}, + {-1.233805,0.986066}, + {-0.587524,0.933536}, + {1.124220,0.284460}, + {0.369787,-0.213798}, + {-0.012298,1.911852}, + {-1.586387,0.267615}, + {0.696006,-0.464801}, + {-0.624327,1.280676}, + {0.367066,0.324597}, + {0.000432,0.067311}, + {0.390603,1.101625}, + {0.256944,-0.623323}, + {0.543036,0.814041}, + {0.002517,-0.822681}, + {-1.222231,0.151677}, + {1.087153,-0.651828}, + {-0.140421,-0.309047}, + {-1.276460,-0.479672}, + {0.907053,0.734263}, + {-1.468305,1.325843}, + {-0.742062,1.724340}, + {0.602905,0.826894}, + {-0.234395,0.552366}, + {-0.319795,-0.300154}, + {0.766130,0.375387}, + {-0.565094,-0.908181}, + {-0.002303,0.803038}, + {0.606245,-0.886099}, + {-0.375411,-0.501269}, + {1.137430,0.498844}, + {1.400551,1.243294}, + {-0.572345,0.330001}, + {-0.831085,0.224646}, + {-1.193440,0.029548}, + {-1.017357,0.114069}, + {0.036078,0.403207}, + {1.394122,-0.032985}, + {-0.220085,0.427158}, + {-1.279987,-0.411288}, + {0.377185,0.243313}, + {0.004243,-0.857524}, + {1.036016,-0.532137}, + {0.245228,-1.150637}, + {1.467709,-0.614337}, + {-0.512344,0.162373}, + {-1.104046,-0.167139}, + {-0.224718,-0.143013}, + {-0.256979,0.070597}, + {0.089855,-0.271238}, + {-0.734984,0.724372}, + {-0.217210,0.319333}, + {0.718725,0.347974}, + {0.251565,0.741094}, + {0.290149,0.659867}, + {0.408272,-0.032915}, + {0.079918,0.470449}, + {-1.011348,-0.572926}, + {0.265858,-0.244285}, + {0.498660,-1.173075}, + {-0.489052,0.268982}, + {0.803724,-0.240363}, + {-0.448072,0.003395}, + {0.190085,0.738899}, + {-1.320261,-0.384362}, + {-0.851492,-0.388560}, + {0.421440,-0.177958}, + {-0.701418,0.243165}, + {-0.274377,0.336519}, + {-0.432270,0.059413}, + {0.723602,-1.369028}, + {0.003061,1.025321}, + {0.439715,0.455140}, + {0.247416,-0.318078}, + {-0.295679,-0.309351}, + {-1.069923,0.563669}, + {0.778952,0.003877}, + {-0.650501,0.383655}, + {0.290488,-0.280076}, + {-0.318266,-0.503424}, + {0.200569,-0.451626}, + {-0.058511,1.000852}, + {-0.501142,1.127454}, + {0.840729,0.860918}, + {0.404423,1.184485}, + {0.080599,0.337071}, + {0.265972,-0.831970}, + {-0.792118,-0.632130}, + {-1.312815,-0.150298}, + {0.384463,0.434096}, + {-0.473277,-0.646626}, + {0.726083,0.524943}, + {0.232413,-1.349094}, + {-0.132578,-0.328246}, + {0.192057,-0.949313}, + {-0.294124,1.799810}, + {-0.646249,-0.365151}, + {-1.142885,-0.860267}, + {0.952542,0.463949}, + {-0.843407,0.603740}, + {0.245604,0.005612}, + {0.876790,-0.725446}, + {-1.264255,-0.509446}, + {0.935016,-0.003417}, + {0.253759,-0.252225}, + {-0.504993,0.338401}, + {1.002041,0.260841}, + {0.156989,-0.135302}, + {-1.024724,-0.400709}, + {-0.112462,-1.205456}, + {0.334260,0.781035}, + {0.183794,0.683842}, + {-0.865777,0.383277}, + {-0.505670,0.667817}, + {-0.088249,0.840903}, + {1.101360,1.926043}, + {-0.308625,-0.138154}, + {0.609676,-0.715983}, + {-0.645769,-0.287890}, + {0.369474,-0.729993}, + {0.186644,0.541750}, + {0.463282,0.674407}, + {0.216844,-0.852488}, + {0.856090,0.940839}, + {1.001064,0.394220}, + {-0.837133,-0.154497}, + {-0.390434,0.439008}, + {0.680226,-0.317541}, + {0.098053,0.117416}, + {0.071014,-0.649889}, + {-0.262387,-0.155264}, + {0.388413,0.769428}, + {0.158413,0.941346}, + {0.671325,-0.266932}, + {0.970945,-0.618071}, + {0.233638,0.572923}, + {0.060161,-0.256486}, + {-0.637504,0.063894}, + {0.934414,-0.427341}, + {-0.467026,0.652522}, + {-0.863576,0.149723}, + {-0.771443,-0.816274}, + {0.511701,-0.479018}, + {-0.257457,0.087086}, + {0.290638,0.016947}, + {-0.386981,-0.727179}, + {-1.098515,-0.274432}, + {-0.557208,1.426296}, + {-0.613355,0.019539}, + {-0.419196,-0.251018}, + {-0.832714,0.502052}, + {0.128755,0.655366}, + {0.256114,0.273034}, + {-1.125167,-0.906505}, + {0.388043,-0.540845}, + {-0.937881,2.105264}, + {-0.202089,1.002912}, + {0.723756,-0.449443}, + {0.233778,0.527703}, + {-0.057235,1.884349}, + {1.157345,-0.412072}, + {-0.955458,-1.385361}, + {0.053114,0.627971}, + {0.827722,0.375269}, + {-0.181816,0.772748}, + {-1.626276,0.442130}, + {-0.435385,-0.179652}, + {1.089080,-0.426374}, + {1.017264,0.699838}, + {-1.020426,-0.298556}, + {0.676783,0.459662}, + {-0.739834,0.763761}, + {0.721741,-1.206326}, + {-0.951135,-0.270497}, + {-0.457913,-1.038211}, + {1.712993,-0.468750}, + {-0.543171,1.050327}, + {-0.541388,0.741480}, + {1.399220,-0.146602}, + {-0.246873,1.307922}, + {-0.314164,-0.681691}, + {-0.361125,0.096600}, + {0.468431,-0.456516}, + {-1.208053,0.471189}, + {-0.369852,-0.310925}, + {-0.655492,-0.981961}, + {1.982648,0.257313}, + {0.350295,-0.328245}, + {-0.408155,0.164967}, + {1.186227,0.615053}, + {1.538608,0.853998}, + {-1.014463,-0.266268}, + {-0.038058,1.267679}, + {1.226620,-0.039905}, + {0.128462,-0.723152}, + {1.117944,-0.485275}, + {0.110495,0.512575}, + {0.613947,-0.332562}, + {1.183653,-0.135030}, + {-0.545671,-1.236704}, + {-0.368847,0.282388}, + {0.354177,-0.397370}, + {-0.221450,0.619409}, + {-0.212607,-0.070614}, + {-0.746339,0.421409}, + {-0.796334,0.416425}, + {0.281155,-0.847141}, + {1.084794,-0.633466}, + {-1.416468,-0.504705}, + {-0.413320,-0.218964}, + {-0.006619,1.498092}, + {0.592891,0.110515}, + {0.202503,-0.802352}, + {-1.044280,-0.551926}, + {-0.551728,0.074422}, + {-1.621229,-0.887687}, + {-0.034501,-0.177771}, + {0.643751,-0.498982}, + {0.537422,0.214707}, + {0.859316,0.230005}, + {0.984145,0.642774}, + {-0.446523,-0.283910}, + {0.698656,-0.512658}, + {-0.413664,0.370197}, + {0.012230,0.057244}, + {-0.124965,0.707693}, + {-1.668994,0.589325}, + {0.431439,0.916868}, + {0.357835,-0.007437}, + {0.091721,-1.193125}, + {1.085117,0.362418}, + {-0.815710,-0.704111}, + {0.368599,0.417522}, + {-0.153068,0.701186}, + {0.633497,1.153006}, + {-0.640502,-0.448321}, + {-0.288243,-1.008288}, + {-0.241203,0.571272}, + {-0.700623,0.003668}, + {0.762784,-0.271363}, + {-0.675450,-0.536786}, + {-1.095720,0.963368}, + {-0.545080,-0.052652}, + {0.425995,1.045991}, + {0.747089,-0.106197}, + {0.705921,0.481355}, + {-0.231552,-0.495818}, + {-0.035338,0.271549}, + {-1.434181,-0.462102}, + {-0.234651,-0.659026}, + {0.293521,0.578445}, + {-0.159469,-0.371527}, + {0.947780,-0.184427}, + {-0.575724,1.293055}, + {1.217078,0.776812}, + {0.077462,0.005225}, + {0.031218,0.312440}, + {-0.254340,-1.261328}, + {-0.545078,0.114315}, + {0.214459,0.265649}, + {0.665158,-0.572889}, + {0.156845,-0.494711}, + {-0.805048,-0.829465}, + {-1.377436,-0.234879}, + {-0.680977,1.091655}, + {0.991115,-0.327044}, + {-0.636966,-0.868296}, + {-0.468122,0.139195}, + {-0.023171,-0.344042}, + {0.779795,0.665803}, + {0.288043,-0.640526}, + {-0.377837,-0.768582}, + {1.312911,0.154017}, + {0.594896,0.205326}, + {0.546600,-0.380945}, + {-0.348857,-0.048100}, + {-0.719583,0.758329}, + {0.366828,0.580990}, + {0.370738,0.785391}, + {-0.058071,-1.293254}, + {-0.886575,0.757403}, + {0.424991,-0.722256}, + {0.284736,0.076029}, + {1.316231,-1.073572}, + {-0.783294,0.805530}, + {0.389834,-0.129104}, + {1.095639,-0.075839}, + {0.935852,-0.373630}, + {-0.885108,-0.020762}, + {0.158064,0.217629}, + {-0.640319,-0.386929}, + {-0.909168,-0.373835}, + {0.010911,-0.101003}, + {-0.277750,-0.148550}, + {0.521820,1.009048}, + {-0.512451,-0.513281}, + {-0.008047,0.202402}, + {0.741191,-0.666179}, + {0.763195,0.771867}, + {0.390221,0.297205}, + {0.625399,0.489404}, + {1.023425,0.108867}, + {-0.703103,0.629155}, + {-0.103211,-0.285761}, + {-0.390588,1.375767}, + {0.454617,-0.110921}, + {0.317920,-0.896351}, + {0.649451,-0.067138}, + {-0.121899,-0.655986}, + {0.358821,-1.041252}, + {-0.222857,-0.303574}, + {-0.568716,-0.089093}, + {-0.192284,-0.838715}, + {1.222415,-0.016245}, + {0.526310,-0.627056}, + {-0.068488,-1.753668}, + {-1.039387,-0.320863}, + {0.020520,0.318572}, + {0.496641,-0.577605}, + {-0.968605,-0.480527}, + {0.285637,1.389404}, + {0.944869,0.885298}, + {0.638385,-0.710974}, + {-0.279932,0.152341}, + {-0.743228,-1.024093}, + {-0.486215,-0.168400}, + {-0.114585,1.020039}, + {0.056702,-0.528896}, + {-0.949243,-0.844536}, + {1.129499,0.153529}, + {-1.146171,-0.448270}, + {-0.600020,-0.088151}, + {1.026368,-0.907166}, + {1.049642,1.198028}, + {-0.732045,-0.405919}, + {0.210230,-0.786201}, + {0.310585,0.342437}, + {0.067431,0.566931}, + {-0.587248,0.255356}, + {-0.170138,1.277977}, + {-0.258523,-1.186042}, + {-0.773006,-1.019886}, + {-0.448797,-0.188137}, + {-0.091370,0.772927}, + {0.244919,-0.106617}, + {-0.774478,-0.520363}, + {0.440259,0.217792}, + {0.363108,0.753145}, + {-0.266081,0.238928}, + {-1.127392,0.360823}, + {-0.261177,1.592192}, + {0.699450,0.113524}, + {-0.655141,0.291248}, + {-0.436259,-0.058521}, + {0.384314,0.487647}, + {0.039816,-1.110978}, + {0.404230,0.678814}, + {-0.949673,-0.269000}, + {-0.248331,-1.005033}, + {-0.540079,0.606271}, + {0.444702,0.146360}, + {1.015384,-1.065484}, + {-1.877784,-1.198948}, + {0.489736,1.350612}, + {-0.710135,-0.775063}, + {0.593538,-0.900296}, + {-0.098286,-1.049735}, + {-0.108973,0.545483}, + {0.062642,-0.684699}, + {0.098171,0.140806}, + {-0.959390,-0.170130}, + {0.461162,1.804670}, + {1.124557,0.055315}, + {0.189370,-1.658841}, + {0.186242,-0.841503}, + {0.633026,-0.735853}, + {0.857498,-0.201044}, + {-0.218993,-0.016715}, + {-0.765959,0.455723}, + {0.217731,-0.073306}, + {-0.436889,0.159793}, + {-0.023781,-0.349387}, + {-0.248361,0.055098}, + {-0.771684,0.303200}, + {-0.211929,1.024403}, + {0.104045,-1.383657}, + {-0.416710,0.061459}, + {-0.436209,-0.471431}, + {-1.510879,-0.277018}, + {0.200120,1.225231}, + {-0.328469,0.600453}, + {0.127003,-0.602157}, + {0.987188,0.212941}, + {0.670236,0.123304}, + {0.422322,0.157453}, + {0.152338,-0.945760}, + {-0.025870,-0.413677}, + {-0.268227,-0.778529}, + {0.480173,0.907527}, + {-0.888884,-1.439385}, + {-1.351376,-1.091003}, + {0.222836,-0.086297}, + {0.573336,-1.360066}, + {-0.806399,-0.498281}, + {-0.595494,0.831074}, + {0.908191,0.307062}, + {-0.459795,-0.710666}, + {-0.094751,-0.206448}, + {-0.024242,-0.951987}, + {-0.318051,0.362327}, + {-0.063917,-0.408062}, + {-0.003055,1.006656}, + {1.000114,-0.003844}, + {0.433414,0.153418}, + {-0.146174,-0.778023}, + {-0.002596,-0.081254}, + {-0.372852,-0.562314}, + {0.813749,-0.171006}, + {0.516876,-0.334962}, + {0.130150,-0.220825}, + {-0.399139,-0.678091}, + {-0.184451,-0.949755}, + {-0.188671,0.303505}, + {0.037500,-0.099776}, + {0.773437,0.244504}, + {0.445884,-0.043319}, + {0.316367,-0.273157}, + {-0.746967,0.698428}, + {-0.191399,0.086704}, + {1.316252,1.332223}, + {0.445639,0.004308}, + {-0.087606,0.111263}, + {-0.891735,0.020169}, + {0.193313,-0.606729}, + {0.731145,-0.605570}, + {-0.692633,0.021142}, + {-0.444493,0.208281}, + {-0.466215,-0.817877}, + {-0.624077,-0.305184}, + {0.280254,1.208432}, + {0.014983,0.902646}, + {0.006548,0.008337}, + {0.044097,0.697776}, + {-0.171889,-0.146767}, + {0.265368,0.009346}, + {1.059121,0.446341}, + {1.888582,-0.599794}, + {-0.562391,0.519765}, + {-1.251330,-0.838557}, + {-2.137730,-0.631450}, + {0.182187,0.499127}, + {0.764443,0.756613}, + {0.631286,0.584558}, + {1.111431,-0.772644}, + {0.076405,0.183672}, + {-0.058883,-0.335039}, + {-0.703857,0.073318}, + {0.757167,0.909054}, + {-0.611251,-0.894211}, + {-0.330231,0.304851}, + {-0.364020,-0.938645}, + {-0.104970,0.914045}, + {0.093519,1.357853}, + {-0.770065,-0.085731}, + {1.319136,0.816044}, + {0.058947,-0.406575}, + {-0.396587,-0.503710}, + {0.220349,-0.336425}, + {-0.501066,0.255245}, + {1.323531,-1.916640}, + {-0.596563,0.742761}, + {0.713492,-0.603602}, + {0.051641,-0.788488}, + {-0.027644,-0.011744}, + {0.313449,0.369693}, + {-0.874394,-0.458299}, + {0.156414,-0.301505}, + {-0.817243,-0.129309}, + {0.387262,1.050022}, + {-0.730068,0.280044}, + {0.562581,0.907164}, + {0.467513,0.105385}, + {0.244667,0.168116}, + {0.639852,0.033501}, + {0.208643,0.034229}, + {0.947509,-1.095182}, + {0.730262,1.390582}, + {-0.409880,-1.003160}, + {0.401874,1.156874}, + {-0.714656,-1.740182}, + {-0.430680,-0.361054}, + {-0.188850,0.396311}, + {0.796301,-0.592325}, + {-1.140359,-0.833160}, + {-0.015264,-0.656368}, + {1.098273,-0.926714}, + {0.514728,-0.216690}, + {0.098571,-0.636577}, + {-0.910064,0.415927}, + {-0.440682,0.758024}, + {0.127293,0.104132}, + {-0.981800,-0.277406}, + {0.899617,-0.979514}, + {0.602636,0.426296}, + {0.150065,0.494543}, + {0.232962,0.763611}, + {0.467684,0.140699}, + {-1.574619,0.669059}, + {0.882179,-0.011036}, + {0.097422,0.257114}, + {-0.102244,-0.259914}, + {0.490538,0.105090}, + {-0.996295,0.948638}, + {0.083436,0.900836}, + {0.438195,0.350201}, + {-0.679329,-0.713746}, + {0.529187,1.286256}, + {-0.954747,-0.283946}, + {-0.130941,-0.382040}, + {-0.158855,-1.450548}, + {-0.250052,-0.982319}, + {-0.268123,-0.627128}, + {0.444598,1.229273}, + {1.187865,0.972354}, + {1.162571,0.615927}, + {-0.053069,-0.762640}, + {0.568529,0.950631}, + {0.704832,-0.363101}, + {-0.821986,-0.831900}, + {0.321775,-0.386797}, + {0.318484,-0.462144}, + {-0.981095,-0.085616}, + {-0.827586,-0.611532}, + {-0.767987,0.213131}, + {1.465830,0.359996}, + {0.063406,-0.101972}, + {0.103066,-0.104108}, + {-0.332640,-0.565526}, + {0.153801,0.192602}, + {-0.180607,-0.683069}, + {-1.020433,-0.029838}, + {-1.056090,-0.281924}, + {0.711217,1.040632}, + {-0.779687,-0.286412}, + {-1.227989,0.344829}, + {-0.325886,-0.117333}, + {0.010627,0.905134}, + {-0.179905,-0.040737}, + {-0.034126,0.635378}, + {-0.551102,-0.611186}, + {1.349050,0.713766}, + {-1.950842,0.993737}, + {-0.285493,0.919628}, + {-0.839695,-1.284912}, + {0.867960,0.118154}, + {-0.524136,-0.534178}, + {-0.606047,-0.077576}, + {0.997701,-0.360559}, + {-0.143819,-0.521362}, + {0.277948,0.011120}, + {0.781126,-0.650844}, + {0.514107,-0.291052}, + {-0.605037,0.018662}, + {0.595003,-0.358330}, + {-0.892601,-0.794597}, + {-1.068990,-1.057503}, + {-0.833229,1.270529}, + {-0.334875,0.977099}, + {-0.663629,0.338105}, + {0.554117,-0.088210}, + {-0.667932,1.031071}, + {-0.082927,-0.130890}, + {-0.543973,-0.272414}, + {1.397328,0.081006}, + {0.369186,0.137642}, + {-1.393635,0.792070}, + {-0.582444,-0.031794}, + {-0.053332,-0.043677}, + {-0.372722,-0.230031}, + {1.135177,0.092456}, + {0.280377,-0.188462}, + {-0.486260,-0.151009}, + {1.265662,0.491554}, + {-0.473461,0.147609}, + {-0.239905,-0.801906}, + {-0.220706,0.501078}, + {0.640279,-0.721218}, + {-0.349523,-0.466126}, + {0.322248,0.690068}, + {0.360951,0.602485}, + {0.312384,-0.548838}, + {-1.562549,0.675293}, + {0.282446,0.191236}, + {-0.251916,0.509349}, + {-1.270286,-1.114868}, + {-0.429550,-0.631172}, + {0.636991,1.337931}, + {-0.239257,-0.528962}, + {0.203516,0.107619}, + {-0.158954,0.175905}, + {0.017560,-0.973022}, + {1.063318,-0.351026}, + {-0.500848,0.195306}, + {-0.407674,-0.547799}, + {0.311455,-0.233779}, + {0.950908,0.750602}, + {0.087365,-0.326519}, + {-0.921551,-0.059790}, + {-0.237386,0.904391}, + {0.579191,-1.093121}, + {1.114219,0.472145}, + {1.464486,-0.047726}, + {0.230240,-0.507439}, + {0.214072,0.384204}, + {0.227012,1.628634}, + {0.862830,-0.777709}, + {0.499309,0.503287}, + {0.194024,-0.094408}, + {-0.333249,-1.050169}, + {-0.510589,-1.637118}, + {-0.885624,-0.982164}, + {1.742562,-1.274337}, + {0.089119,-1.079374}, + {-0.446537,-0.098650}, + {0.360210,-0.124113}, + {-0.658511,0.326397}, + {-0.544164,0.579137}, + {-0.251213,0.155793}, + {0.335646,0.461865}, + {0.443714,-0.380484}, + {-0.217890,0.767709}, + {-1.477727,-0.131848}, + {-0.670288,-0.482916}, + {1.276010,-0.242181}, + {-0.569009,-0.344377}, + {0.258112,0.099654}, + {-0.470833,-0.107608}, + {0.077847,-1.011430}, + {-0.095550,-1.610504}, + {-0.245212,-0.779197}, + {0.507037,0.270557}, + {-0.210576,-0.406151}, + {0.334297,0.471540}, + {0.940615,-0.817298}, + {0.807612,-0.335314}, + {-0.967504,1.005527}, + {-0.419911,-0.427284}, + {1.058308,0.377315}, + {-0.640751,-0.100329}, + {-0.206736,-1.490178}, + {-0.908508,0.534514}, + {0.236230,-0.674558}, + {0.040694,0.194800}, + {0.926613,-0.976837}, + {-0.400272,0.398158}, + {1.213940,-0.431001}, + {-0.154429,-0.506394}, + {0.263405,-0.666924}, + {-0.587860,-1.305488}, + {-0.626593,0.117810}, + {0.343828,1.396967}, + {0.083446,-0.263320}, + {-0.486981,-0.263767}, + {-0.353650,0.590502}, + {0.546912,0.129352}, + {-0.148903,-0.442021}, + {0.148692,0.307489}, + {0.456169,0.695536}, + {-0.306257,0.742800}, + {0.843344,-0.137786}, + {-0.403558,-0.081928}, + {0.004422,0.767584}, + {0.602551,-0.925966}, + {0.808077,0.677800}, + {-0.920983,0.444859}, + {0.709114,-0.150759}, + {0.774244,0.583938}, + {-0.007792,-0.664973}, + {0.811944,-0.309259}, + {0.744698,-0.075886}, + {-0.510442,-0.065905}, + {-0.015831,-0.190166}, + {0.713298,-0.160445}, + {-0.693444,0.164467}, + {0.504515,0.718341}, + {-0.357876,0.683165}, + {-0.509067,0.349283}, + {0.027786,0.967045}, + {0.001332,-0.162389}, + {-0.917110,0.767740}, + {0.095917,-0.158809}, + {-0.542706,0.715325}, + {0.730792,0.659037}, + {-0.010585,-0.228058}, + {0.500959,-0.152128}, + {0.079144,0.005812}, + {-1.190054,-0.493119}, + {0.184814,1.759480}, + {0.491137,-0.172917}, + {-1.489489,-0.538351}, + {0.038032,0.828474}, + {-0.790134,0.518021}, + {1.008854,0.645478}, + {0.307948,0.009483}, + {-0.329913,0.936288}, + {0.018155,-0.235603}, + {-0.321219,-1.203784}, + {0.428175,-0.218314}, + {-0.362877,-0.370190}, + {0.444549,-0.342885}, + {-0.049808,0.501963}, + {0.674179,-0.185107}, + {0.599912,-1.732999}, + {0.088862,0.782982}, + {-0.107951,0.180743}, + {-0.122355,1.267863}, + {0.550598,-0.112575}, + {-0.000421,0.525225}, + {1.443725,0.501908}, + {-0.409289,0.574812}, + {-0.039830,0.421113}, + {0.508459,-1.005977}, + {-1.445393,-1.149261}, + {-0.631553,-0.319625}, + {-0.909902,0.054411}, + {0.339123,2.211716}, + {-1.144259,0.907937}, + {0.767662,0.182702}, + {-0.001103,-0.936672}, + {0.724690,-0.821044}, + {-0.127908,0.396448}, + {-1.259213,-0.942427}, + {0.270614,0.534192}, + {0.302353,-0.606736}, + {0.368202,0.117501}, + {-0.621508,-0.599182}, + {-0.389050,0.382474}, + {0.276748,-0.206800}, + {0.692974,-2.222835}, + {0.281160,0.177410}, + {0.692791,0.111511}, + {0.641347,0.456632}, + {-0.024490,0.649549}, + {-0.110421,-1.172916}, + {-1.093464,-0.732331}, + {-0.355374,-0.282145}, + {0.758283,-0.156623}, + {-1.392806,-0.020595}, + {0.062043,-0.332704}, + {0.072246,-0.407848}, + {0.764714,-0.922699}, + {0.324736,0.223764}, + {0.322471,-0.791710}, + {-0.310998,0.871270}, + {0.409121,0.452691}, + {-0.507904,0.540686}, + {0.247319,0.370197}, + {0.289584,0.022769}, + {0.918507,-0.797867}, + {-0.002342,-0.653221}, + {0.665966,0.086050}, + {-0.105914,0.520572}, + {0.661266,-0.788971}, + {-0.016104,1.032441}, + {-1.079144,0.763598}, + {0.286110,-0.408518}, + {-0.702570,-0.278708}, + {0.418026,-1.825956}, + {-0.699938,0.339054}, + {-0.549577,-0.472606}, + {-0.958419,-0.399456}, + {0.931910,0.405273}, + {-0.061580,-0.001784}, + {-0.235095,-0.195635}, + {0.396945,-0.793988}, + {-0.120105,0.741895}, + {0.967101,-1.193312}, + {0.408000,0.328582}, + {0.121563,0.074206}, + {0.794018,0.365534}, + {1.427377,-0.303106}, + {-1.185743,-0.469011}, + {-1.014410,-0.160477}, + {0.891003,-0.675965}, + {-0.449822,0.835702}, + {0.168080,-0.372203}, + {0.231932,-0.813300}, + {0.695524,0.543724}, + {-1.150522,-0.300759}, + {-1.130058,-0.194783}, + {-0.158590,0.163209}, + {0.318411,-1.215333}, + {-0.130949,1.027326}, + {-0.022279,-0.079554}, + {-0.819798,-1.296138}, + {0.045197,0.904739}, + {2.069130,-0.927992}, + {-0.409507,0.500071}, + {-0.320066,-1.146465}, + {0.541117,0.115373}, + {-0.789460,-0.165824}, + {0.540866,-0.330202}, + {-0.794487,-0.094771}, + {-0.857677,0.866646}, + {-1.027897,-0.906066}, + {-0.990814,-0.484744}, + {-1.118999,1.518096}, + {0.368560,0.062309}, + {-0.472288,-0.358193}, + {0.818078,0.355593}, + {0.432227,0.535003}, + {0.881773,-0.248469}, + {0.386008,-0.326813}, + {0.729605,-0.034809}, + {-1.973023,-0.054177}, + {-0.155383,0.156626}, + {-0.654563,0.363333}, + {-0.629236,0.253927}, + {0.047558,-0.270537}, + {0.876852,1.219813}, + {0.676330,0.747201}, + {1.527175,-0.031846}, + {0.058820,0.330611}, + {-1.429720,-0.026237}, + {0.145607,-0.314241}, + {-1.057689,-0.330500}, + {0.140384,-0.134579}, + {-0.954319,0.012254}, + {0.454891,-1.125468}, + {2.357209,-0.042871}, + {-1.230701,0.477340}, + {-0.320824,-0.139064}, + {-0.761107,0.100853}, + {-0.288901,-0.086378}, + {-0.428826,1.158555}, + {0.547848,-1.217274}, + {-0.445240,-0.070165}, + {-1.133672,0.465347}, + {0.623461,0.635773}, + {1.003495,-0.575461}, + {-0.028313,-1.236159}, + {-0.362889,0.221756}, + {-0.439814,-0.193680}, + {0.519280,1.102878}, + {0.752761,0.423081}, + {0.166261,-0.338834}, + {-0.310806,-0.151127}, + {-0.160761,0.442555}, + {0.654292,-0.498436}, + {0.080171,-0.983075}, + {0.630524,0.050145}, + {-1.094236,0.845830}, + {-0.395812,-1.350396}, + {0.362922,-1.130889}, + {0.657214,0.160993}, + {-1.055868,0.691473}, + {-0.077860,-0.396539}, + {0.272831,0.186593}, + {-0.963077,1.436838}, + {-1.491045,0.983782}, + {-0.445406,-1.055664}, + {-0.560002,0.315656}, + {-1.094953,0.428742}, + {1.355583,-0.101228}, + {-0.610726,-0.903339}, + {0.220781,0.133283}, + {-0.385599,-0.105530}, + {1.569466,0.694499}, + {-0.949049,0.657375}, + {0.293380,-0.197649}, + {-0.121347,-1.023660}, + {0.142107,1.869948}, + {0.240700,1.753354}, + {0.155119,-0.787710}, + {0.072108,0.802771}, + {-0.518774,-0.835932}, + {0.686448,0.413265}, + {-0.075227,0.357503}, + {-0.367060,-0.293209}, + {1.198188,0.228709}, + {0.086829,0.401398}, + {0.402488,-0.001439}, + {1.875893,1.073098}, + {-0.997759,-1.144125}, + {-0.046681,0.959887}, + {-0.059867,0.850184}, + {-0.456443,-0.686195}, + {-0.245116,-0.874781}, + {-0.652563,-1.042379}, + {-0.538923,0.202282}, + {-0.076387,-0.432216}, + {0.434154,-0.289432}, + {0.791833,1.524970}, + {-1.011962,0.122749}, + {0.443728,0.583743}, + {-0.476166,-0.164564}, + {0.865760,1.395544}, + {0.458453,0.486414}, + {-1.083056,-0.554460}, + {-0.320430,1.151998}, + {-0.522975,0.380352}, + {-0.800879,-0.410712}, + {-1.160173,-0.225969}, + {-0.727965,-0.082624}, + {-0.078411,0.553021}, + {0.825728,-0.312162}, + {-1.384057,0.781615}, + {-0.368922,0.233514}, + {0.279253,-0.378687}, + {0.403824,0.290804}, + {-0.229572,-0.601070}, + {-0.626745,-0.384230}, + {-1.287989,-0.222999}, + {0.484008,-0.010462}, + {0.301750,-0.985000}, + {-0.633804,0.825349}, + {0.394338,-0.576349}, + {0.468509,0.024264}, + {0.255173,-0.901778}, + {0.346377,-0.280184}, + {0.110180,0.975376}, + {-0.753469,-0.647554}, + {0.651564,-0.547723}, + {-0.144017,0.548258}, + {-0.046057,-0.679254}, + {-0.688028,0.887658}, + {-0.445831,-0.479626}, + {-0.456182,0.267624}, + {-0.799260,0.204550}, + {0.563612,-0.771680}, + {0.352540,0.832719}, + {-0.186709,-0.571833}, + {-0.293953,-0.033501}, + {-0.817521,0.420114}, + {-1.095604,-0.434751}, + {1.279435,-0.039357}, + {-0.247834,0.165422}, + {0.921388,0.559970}, + {-0.060142,0.715675}, + {0.740212,1.014127}, + {-0.452908,0.311206}, + {-0.067195,-0.201576}, + {-1.385389,-0.762611}, + {-1.021316,-1.118405}, + {1.760285,0.265590}, + {-0.914306,0.241406}, + {-1.244930,-0.148217}, + {-0.866724,0.107860}, + {0.289939,-1.543434}, + {0.245372,0.941026}, + {0.353275,-0.177928}, + {-0.031020,1.110706}, + {0.377406,-0.075570}, + {-0.164487,1.047496}, + {-0.499391,-0.473578}, + {0.300038,-0.640920}, + {-0.628968,0.062134}, + {0.489684,-0.638970}, + {-0.015019,0.460942}, + {-0.638345,-1.058916}, + {-0.916723,0.886223}, + {-0.333517,0.053708}, + {0.736499,-0.159192}, + {-0.594457,0.367349}, + {-1.222093,-0.085438}, + {0.251137,-0.073996}, + {0.161582,0.194835}, + {-0.380923,0.667572}, + {-0.679757,-0.361005}, + {-0.028839,0.205199}, + {1.091436,-1.342332}, + {-0.221619,-0.241515}, + {-1.053060,0.026055}, + {0.644250,-1.217245}, + {-1.450051,0.901819}, + {-0.920654,-0.715461}, + {-0.130068,1.003309}, + {1.031255,0.523672}, + {-0.136103,-1.381621}, + {-0.011925,-0.254506}, + {-0.960022,1.478489}, + {0.103113,-1.121767}, + {-0.272495,0.511347}, + {0.286424,0.059268}, + {1.022935,0.594292}, + {0.591589,0.954365}, + {0.350593,-0.458349}, + {-0.050092,0.359806}, + {-1.176490,0.825566}, + {-0.680308,-1.571630}, + {0.664836,-1.675775}, + {0.341383,-0.000495}, + {-0.036233,0.927286}, + {-1.339825,-0.242439}, + {-0.295042,-1.175472}, + {0.327445,-0.305612}, + {-1.334769,0.363978}, + {-0.428302,-1.062567}, + {0.329631,0.597784}, + {0.869728,-1.290804}, + {0.836562,0.583755}, + {-0.647207,-0.128658}, + {-0.438580,-0.636896}, + {-0.104333,1.364442}, + {0.134730,-0.418112}, + {-0.297180,-0.005213}, + {-0.277926,-0.075135}, + {-0.356162,-1.540321}, + {-0.315842,-0.300644}, + {-1.054645,0.153170}, + {-0.247471,0.149554}, + {1.167076,-0.050294}, + {-1.150539,-0.133037}, + {1.375072,-0.851715}, + {0.074937,-0.949878}, + {-0.757522,-0.348698}, + {-0.904564,0.281156}, + {-0.601026,-0.749410}, + {-0.559856,0.573678}, + {-1.146828,0.569818}, + {0.867965,0.745430}, + {-1.303702,-0.904121}, + {0.878923,-0.963699}, + {-0.201701,-0.181087}, + {0.623439,-1.377927}, + {-0.196558,-0.155427}, + {0.545429,0.059872}, + {-0.546805,-0.394397}, + {-0.673582,0.666513}, + {-0.904560,0.345434}, + {-0.404512,0.602264}, + {0.037119,0.766632}, + {0.114462,0.094188}, + {0.152701,0.227803}, + {0.192302,0.350055}, + {-0.806506,0.365440}, + {1.434434,0.090690}, + {-0.927956,0.028970}, + {-0.935372,-0.873602}, + {-0.008948,-0.719395}, + {0.984091,-0.139250}, + {-0.659274,0.742974}, + {-0.389700,0.424576}, + {-0.417964,-0.791927}, + {-0.496517,-0.670771}, + {-0.839619,-0.452674}, + {0.353229,-0.699395}, + {0.160866,0.370645}, + {-1.017395,1.246349}, + {-0.215995,-0.034148}, + {-0.917350,0.216393}, + {0.676833,-1.047976}, + {0.260097,0.124759}, + {0.217774,-0.111813}, + {0.676580,-0.052744}, + {0.283784,0.299891}, + {-0.063002,-0.428329}, + {0.105711,-0.622631}, + {-0.355259,-0.471869}, + {0.266862,0.081740}, + {-1.059721,0.037092}, + {-0.335785,-0.856030}, + {0.165769,0.484277}, + {-0.709411,-0.235252}, + {0.027820,0.592038}, + {0.069184,0.501440}, + {1.395272,2.336471}, + {0.930130,0.779630}, + {0.985494,0.017321}, + {0.462865,-0.679985}, + {-0.562682,-0.638530}, + {-0.220520,-1.015673}, + {0.447075,0.614206}, + {-0.113999,0.348454}, + {-0.330527,-1.009147}, + {0.389321,-0.059019}, + {0.160636,1.179804}, + {0.951858,0.075998}, + {0.220489,0.169580}, + {1.011409,-1.264994}, + {0.431117,-0.022166}, + {1.354951,0.693625}, + {0.365787,0.922387}, + {-0.335963,0.354223}, + {-0.231851,1.246409}, + {0.039846,-0.434578}, + {-0.640260,-0.246655}, + {1.010049,-0.948681}, + {0.420819,0.066446}, + {-0.792475,-0.850887}, + {-0.136391,-0.217795}, + {-0.306861,-1.044193}, + {0.599871,0.242422}, + {0.837296,-0.704235}, + {-1.036397,0.218225}, + {-0.362114,-0.270397}, + {-0.815529,-0.643457}, + {-0.346423,0.137188}, + {-0.533657,0.614111}, + {0.894783,0.792716}, + {0.996665,0.135734}, + {-1.810934,-0.175269}, + {0.231803,0.610888}, + {-0.033074,-0.878133}, + {1.029652,-0.537181}, + {0.969218,-0.136601}, + {0.637612,0.569671}, + {-0.856078,0.008827}, + {-0.884361,0.905464}, + {0.266886,0.602131}, + {0.724282,0.927329}, + {0.656946,1.176936}, + {0.385285,0.453920}, + {0.428491,1.218457}, + {-0.534283,-0.476385}, + {1.265943,-0.071326}, + {1.205410,0.119519}, + {0.729693,0.805513}, + {0.792140,0.259950}, + {0.032696,0.915109}, + {0.577120,-0.330747}, + {0.393790,-0.488283}, + {-0.285168,-0.266736}, + {-1.092401,0.351137}, + {-0.410238,-0.455906}, + {-0.112126,-1.848342}, + {-0.694043,0.586241}, + {-0.282187,-0.084074}, + {0.208143,-0.690431}, + {-0.294220,-0.077478}, + {0.114810,-0.640660}, + {0.317942,0.617271}, + {-1.111586,0.978228}, + {0.522150,1.274807}, + {-0.714204,0.099528}, + {-0.270756,-0.875450}, + {0.562005,-0.039459}, + {0.705905,0.860567}, + {0.762285,1.074943}, + {-0.776165,-0.025768}, + {-0.459283,-0.636944}, + {0.185427,-0.185363}, + {0.204738,0.186381}, + {0.973185,0.077738}, + {-0.292046,-0.508409}, + {0.513353,-0.271946}, + {0.003043,0.871596}, + {0.688854,0.660598}, + {0.210751,0.387266}, + {-0.279586,-1.103817}, + {-0.688930,0.757404}, + {0.565899,-0.300622}, + {0.174615,0.399735}, + {0.138945,0.695770}, + {0.223658,0.384469}, + {-1.073520,-0.360915}, + {-0.489023,-0.405400}, + {-0.605479,-1.167890}, + {-0.411600,0.781236}, + {-1.073459,1.248510}, + {0.810854,-0.254195}, + {1.234502,-0.806495}, + {0.260701,1.174122}, + {-0.372537,1.946493}, + {0.314475,0.895673}, + {-1.009274,0.473788}, + {-0.182152,-0.423023}, + {0.252709,2.433176}, + {0.355098,0.295953}, + {-0.547349,0.145758}, + {-0.602792,0.126766}, + {-0.736203,-0.064009}, + {0.927410,-0.913014}, + {0.685445,0.595637}, + {-1.650825,-0.447151}, + {0.274037,0.349263}, + {0.465722,0.789074}, + {-0.162240,-0.368575}, + {-0.699205,-0.695247}, + {-1.299655,-0.834587}, + {-0.112135,0.439572}, + {-0.554151,0.008035}, + {0.843647,-0.401783}, + {-0.043751,-0.334123}, + {1.091176,0.919460}, + {-0.122626,-0.120011}, + {0.282004,0.565924}, + {1.054618,0.582818}, + {-0.770044,0.182383}, + {-0.377127,-0.662357}, + {0.699934,-0.416461}, + {0.725721,-2.274378}, + {-0.285218,-0.376295}, + {-0.046947,0.662061}, + {-0.150529,-0.552474}, + {0.366969,-0.279145}, + {-0.522761,0.138649}, + {0.359948,-1.543065}, + {-1.101930,-0.354878}, + {0.338112,-0.700804}, + {-0.408526,0.129634}, + {0.649985,-0.651205}, + {0.418800,-0.999764}, + {0.357306,-1.544311}, + {-0.381705,-0.067610}, + {-0.161721,0.259118}, + {-0.606741,0.789184}, + {0.281002,0.526998}, + {0.011339,-0.794455}, + {-1.830912,-0.398614}, + {-0.550333,0.484507}, + {0.380872,0.240877}, + {-0.333808,0.561707}, + {-0.306073,-0.400679}, + {0.455130,0.236129}, + {-1.028073,-0.645612}, + {-0.594235,-0.259487}, + {-0.990751,0.305760}, + {0.006477,-1.019058}, + {0.269924,-0.321009}, + {-0.232176,-0.961120}, + {-0.595080,-0.028841}, + {1.278412,0.318883}, + {0.447321,1.388019}, + {0.532051,0.673116}, + {-1.563452,-0.046970}, + {-0.449587,0.019068}, + {0.606453,-0.602681}, + {1.166692,-0.056815}, + {-0.500489,0.600240}, + {-0.500505,-0.287763}, + {0.713353,-0.974392}, + {0.627625,-0.903950}, + {0.360888,0.126583}, + {-0.455974,-0.380084}, + {-0.104278,-0.465263}, + {0.651519,0.420961}, + {0.788706,0.245607}, + {0.070684,-0.600027}, + {0.647984,-0.619099}, + {0.649698,-1.690212}, + {0.318449,0.028318}, + {-1.471110,1.370645}, + {1.207134,-0.322368}, + {-0.685125,0.769329}, + {1.287764,0.797221}, + {-0.996293,1.087134}, + {0.442161,-0.195315}, + {0.121135,0.058126}, + {1.045922,0.679832}, + {0.873562,0.306245}, + {-0.946556,-1.014899}, + {-1.098702,-0.429317}, + {-0.259191,0.604008}, + {-0.446836,-0.599038}, + {0.079361,-0.237178}, + {-0.530503,0.677970}, + {-0.601736,0.605187}, + {-0.160833,0.081568}, + {-0.692943,-1.922262}, + {-1.351586,-0.764923}, + {-0.910394,1.516147}, + {-0.447204,0.696053}, + {-1.603351,0.949397}, + {0.853493,-0.313292}, + {-0.782020,0.417463}, + {-0.229522,0.508701}, + {0.760533,-0.023716}, + {0.227146,0.243735}, + {-0.842789,0.148573}, + {0.517921,-0.314691}, + {0.692720,0.314784}, + {0.280511,0.102037}, + {0.665274,-0.165350}, + {0.082569,0.733769}, + {0.296156,1.171633}, + {1.047696,0.574972}, + {1.019455,0.327643}, + {0.590864,-0.069291}, + {0.058153,-0.552653}, + {0.532137,-0.655718}, + {0.030514,0.631288}, + {0.014617,0.384621}, + {1.061152,0.155026}, + {-1.531251,0.473269}, + {0.989563,0.018146}, + {-0.456740,0.513566}, + {0.652150,0.217298}, + {0.305406,-0.295892}, + {-2.437038,-0.899029}, + {0.129350,0.230154}, + {-0.072882,-0.255708}, + {1.735334,-0.122027}, + {0.357863,-0.822077}, + {-0.260330,-1.094809}, + {-0.618916,0.441565}, + {-0.692015,0.582413}, + {-0.962700,-0.265797}, + {-0.354149,0.603085}, + {-0.086914,-0.518697}, + {-0.573745,-0.565417}, + {0.606341,0.808186}, + {-0.799331,0.580242}, + {-0.096986,0.161126}, + {0.633315,0.549819}, + {-0.144446,0.177149}, + {0.781768,0.531140}, + {0.338951,-0.899343}, + {0.498622,-0.161978}, + {-1.030481,0.406074}, + {-0.853416,0.247330}, + {-0.021314,0.430044}, + {-0.792349,-0.084728}, + {0.661328,1.015329}, + {-0.127205,0.562281}, + {0.597676,0.621570}, + {0.134817,0.231554}, + {-0.159303,-0.083000}, + {1.241670,-0.215870}, + {0.511646,-0.487637}, + {0.396153,0.003545}, + {-0.879940,-0.429533}, + {-0.720669,0.339226}, + {-0.316744,0.113981}, + {-0.177206,1.125024}, + {-1.768052,-1.277820}, + {0.241700,-0.037855}, + {-0.839180,0.779339}, + {-0.368304,-0.224287}, + {-0.788630,0.576087}, + {0.842764,-0.512279}, + {-0.162576,0.392872}, + {-0.704226,0.243854}, + {0.131859,-0.414154}, + {-0.819482,-1.100527}, + {-0.470748,0.467712}, + {-0.316207,0.030052}, + {-0.235583,-0.156785}, + {-0.557592,-0.375994}, + {-0.784024,0.716792}, + {-0.032535,0.712314}, + {-0.122718,0.060842}, + {0.256587,-0.063350}, + {1.593900,-0.262349}, + {-0.241222,1.230849}, + {0.595739,0.423673}, + {0.891444,0.670761}, + {0.005808,0.459865}, + {0.340771,-0.696366}, + {-0.238902,0.415223}, + {-0.572688,-0.354505}, + {-0.059561,0.494342}, + {0.693758,-0.277854}, + {-0.037608,-0.300489}, + {0.644744,1.106841}, + {0.232660,0.485564}, + {2.011315,0.810211}, + {1.047770,-0.099242}, + {1.206122,0.597776}, + {-1.206184,0.417061}, + {-0.522987,0.244164}, + {-0.036536,0.528486}, + {-0.624421,-0.312582}, + {0.898749,0.177874}, + {1.192713,-0.990058}, + {0.498853,-0.556840}, + {0.589997,-1.001501}, + {0.623528,-0.219887}, + {0.082308,0.170954}, + {-0.289952,0.937628}, + {-0.907912,-0.664638}, + {0.010034,-0.573764}, + {0.911873,0.898607}, + {0.204328,0.208605}, + {0.886008,0.671941}, + {-0.238965,-0.470697}, + {-0.047580,-1.367534}, + {0.445139,0.183575}, + {-0.257686,1.029901}, + {0.650779,0.298196}, + {-1.048885,0.864492}, + {0.018705,1.086719}, + {0.353729,-0.758869}, + {0.135370,-0.483281}, + {-1.076019,0.680627}, + {1.100044,0.598223}, + {-1.294965,1.147402}, + {-0.106790,0.436389}, + {-0.743914,1.121257}, + {-0.871260,1.178553}, + {0.204845,-0.486308}, + {0.361820,-0.974340}, + {-0.206131,0.818694}, + {0.788987,0.506632}, + {0.344848,-1.206124}, + {1.204349,-0.052713}, + {0.485916,-0.425330}, + {-0.356002,1.018318}, + {-0.627702,0.255646}, + {-1.301431,0.413334}, + {0.247930,-0.302713}, + {-1.193767,0.508636}, + {0.802304,-0.014054}, + {0.225364,0.597259}, + {1.130788,0.014869}, + {-0.375125,-0.713056}, + {-0.887297,-1.193802}, + {0.911819,0.357139}, + {0.102299,1.114198}, + {0.346137,0.583719}, + {-0.295741,-0.163232}, + {0.306565,0.062372}, + {-0.387799,0.117200}, + {-0.078818,0.039897}, + {-0.951657,-0.147061}, + {0.531560,-0.532658}, + {-0.922460,0.370301}, + {-0.800399,0.384196}, + {0.207158,1.049643}, + {-0.855953,0.709615}, + {0.833019,0.272167}, + {0.272961,0.796026}, + {0.862792,0.320292}, + {-2.027771,-0.518041}, + {0.382846,-0.137945}, + {-0.116166,-0.315429}, + {-0.168185,-0.144519}, + {0.531779,0.133622}, + {-0.516350,-0.152330}, + {-0.127356,-1.375547}, + {-0.105342,0.100885}, + {0.525022,-0.939381}, + {-0.066998,0.440557}, + {-0.397364,0.443860}, + {0.503200,0.746156}, + {-0.431620,0.075595}, + {-0.841891,0.743002}, + {1.371081,-0.365098}, + {-0.010784,-0.465652}, + {0.020112,-0.041097}, + {0.826739,0.182882}, + {-0.613873,0.704830}, + {-0.568370,0.143343}, + {0.387460,-0.545298}, + {0.021157,-0.747607}, + {1.302628,0.905500}, + {0.261942,-0.033071}, + {0.376649,0.470807}, + {-0.612337,-0.531302}, + {0.841322,0.076988}, + {-0.153153,0.320945}, + {-0.874257,-0.702040}, + {0.165278,-1.657980}, + {-0.147901,-1.012033}, + {-1.277508,0.406026}, + {0.962158,-0.812888}, + {0.570132,-0.249752}, + {0.178017,0.240519}, + {0.221700,-1.244702}, + {-1.203450,0.112039}, + {0.203837,-0.704907}, + {0.134167,-0.222161}, + {-0.462939,-1.592425}, + {-0.032346,0.235999}, + {0.386704,-0.786325}, + {-0.693315,0.928200}, + {-2.135864,0.434740}, + {1.006662,1.715587}, + {-0.142810,-0.802204}, + {0.458850,0.565148}, + {-0.338997,1.517529}, + {-0.803918,0.696678}, + {-0.048029,0.081896}, + {0.172872,-1.381249}, + {-0.463157,0.151494}, + {0.014982,-0.330029}, + {0.131682,0.900381}, + {1.245995,-0.694195}, + {0.723281,0.823227}, + {-1.268782,0.935669}, + {-0.323588,0.329887}, + {-0.826465,0.789808}, + {0.969452,0.147947}, + {-0.086800,-0.739140}, + {0.330504,-0.580053}, + {0.613212,-0.291821}, + {1.508769,0.762460}, + {0.427432,-0.078387}, + {0.241827,-0.720148}, + {0.103200,0.692154}, + {0.237121,-0.186097}, + {0.383141,0.836269}, + {-1.686991,-0.116805}, + {0.357785,0.936704}, + {0.009202,-0.259852}, + {-0.364276,0.361380}, + {-0.452860,1.136152}, + {-0.503536,0.666926}, + {1.115614,0.371158}, + {-0.140742,0.824371}, + {-0.082390,-0.656057}, + {-1.230565,0.359913}, + {0.005553,-0.198844}, + {1.238036,-0.548324}, + {-0.707677,-0.575827}, + {0.561192,-0.372388}, + {0.495972,1.965641}, + {0.693577,-0.278012}, + {-0.501385,0.209282}, + {1.174469,-1.508376}, + {0.645479,-1.112553}, + {0.216551,1.222801}, + {0.317056,-0.152965}, + {0.192083,0.034963}, + {-0.110488,-0.462419}, + {-0.666300,-0.015961}, + {-1.752495,0.399985}, + {-0.469240,0.924181}, + {-0.274931,0.641528}, + {-0.312214,-0.016273}, + {-0.517574,-0.530389}, + {0.833532,0.046255}, + {0.684154,-0.745428}, + {-0.955607,0.071248}, + {-0.251567,0.985285}, + {-0.121152,-0.148834}, + {-0.009011,0.787854}, + {-0.649552,0.048180}, + {-0.425329,0.878791}, + {0.393766,0.793184}, + {0.526353,-1.044814}, + {-0.425715,0.097562}, + {0.345638,-0.549481}, + {0.697957,-0.674357}, + {0.905744,0.301798}, + {0.974970,0.602490}, + {-0.901499,-0.882178}, + {-0.019264,-0.630321}, + {-0.421427,0.049030}, + {-0.217801,-1.297212}, + {0.182897,-0.126145}, + {0.128832,-1.435972}, + {-0.107732,-0.836753}, + {-0.777310,0.461033}, + {0.206962,-0.196436}, + {1.346730,-0.307975}, + {0.401943,0.332010}, + {0.044175,0.580896}, + {0.186951,0.580326}, + {0.198179,0.439384}, + {-0.265917,0.422116}, + {0.364858,1.826492}, + {0.891892,-0.698183}, + {1.583665,-1.221355}, + {-0.190341,0.962946}, + {-0.174967,-0.009207}, + {0.729038,-0.307764}, + {0.043398,-1.428511}, + {-0.680441,0.960596}, + {0.250274,0.295808}, + {0.032164,-0.418385}, + {-0.197256,-0.704446}, + {-1.712183,-1.163529}, + {-0.268695,-0.200849}, + {2.306987,2.318621}, + {0.060264,0.224934}, + {0.578235,0.321018}, + {0.028329,-0.398577}, + {-0.468995,0.372626}, + {-0.486544,1.004021}, + {-1.324421,-0.240098}, + {-0.516670,0.486116}, + {1.493896,-0.392662}, + {0.129571,-0.570646}, + {0.163091,-0.300952}, + {-0.249986,0.337349}, + {-0.795421,-0.775087}, + {-1.050828,-0.478171}, + {-0.687893,-1.095394}, + {0.446193,-0.334549}, + {0.207191,1.248893}, + {1.304610,0.004308}, + {-0.531389,-0.521206}, + {0.856143,-0.371803}, + {-0.436616,1.111738}, + {-1.420017,-0.184266}, + {1.140460,-1.630379}, + {0.161864,0.404858}, + {-0.253171,-0.606452}, + {-1.208974,1.509948}, + {-0.954164,-1.303938}, + {-0.048128,0.715313}, + {0.256096,-0.413618}, + {0.282291,1.407356}, + {0.056407,0.582285}, + {0.394826,0.319440}, + {-0.481465,-1.111214}, + {0.591739,0.508274}, + {0.032651,0.767816}, + {-0.134227,0.328188}, + {0.092560,-0.469654}, + {0.797004,-0.160862}, + {0.769209,1.001893}, + {0.898712,0.476407}, + {-0.606030,0.660273}, + {0.035930,-0.406220}, + {0.549958,0.477784}, + {0.930700,0.739616}, + {-0.352887,0.120378}, + {1.456712,-0.987803}, + {-2.326077,-0.576206}, + {0.005039,-0.663576}, + {0.271949,0.400765}, + {1.016654,-0.532382}, + {0.578166,0.345697}, + {1.335427,-0.691842}, + {0.346829,-1.486777}, + {-1.153416,-1.026001}, + {0.223860,0.210608}, + {-0.190999,-0.519098}, + {-0.198968,0.263295}, + {0.651483,0.398883}, + {-0.549925,-0.275894}, + {-1.229674,-0.017529}, + {-1.383489,0.757820}, + {-0.253172,0.217579}, + {-0.816223,-0.232510}, + {0.104862,0.528907}, + {0.079655,0.495187}, + {-1.060489,0.302825}, + {-0.137642,0.212762}, + {0.674357,0.008222}, + {-0.048395,0.926425}, + {0.412030,-0.840911}, + {0.237129,0.647045}, + {0.339638,-0.335510}, + {0.284322,1.034499}, + {-1.397022,-0.292628}, + {-0.146085,0.519480}, + {-0.041487,-0.555443}, + {0.577501,-0.304147}, + {0.311928,-0.446547}, + {0.635509,-0.519239}, + {-1.033277,-1.288549}, + {0.731980,0.033399}, + {-1.854763,-0.310873}, + {-0.244777,0.164482}, + {0.177305,-1.028995}, + {-0.848186,-1.102416}, + {0.208618,0.238623}, + {0.141655,-0.253353}, + {0.171815,0.430131}, + {-0.300252,0.385949}, + {-0.002417,0.000851}, + {0.140724,0.631155}, + {-0.361690,-0.341663}, + {0.452532,1.566797}, + {-0.983234,-0.383707}, + {-0.919083,-0.153251}, + {-0.570362,-0.004002}, + {0.012526,0.451240}, + {1.078805,0.115248}, + {-0.303834,-0.334887}, + {0.111197,-0.445325}, + {0.190372,0.714853}, + {0.826630,-0.758796}, + {-0.855694,-0.601218}, + {-0.240251,0.838381}, + {0.169116,0.269469}, + {-0.758837,-0.535851}, + {0.833886,0.712264}, + {-1.228975,-1.041728}, + {-0.454220,1.116119}, + {1.266360,0.991548}, + {0.399368,0.572129}, + {0.284363,0.183403}, + {0.852430,-0.069496}, + {-0.634331,0.143028}, + {0.704158,-0.787308}, + {-0.348563,-0.322614}, + {-0.926186,0.376325}, + {0.743159,0.167845}, + {2.017916,1.018183}, + {0.808439,-0.898639}, + {-0.362709,-0.359190}, + {-0.263045,-1.681332}, + {-0.155017,-0.596109}, + {-0.058238,-0.339211}, + {-1.052586,-0.827454}, + {0.083530,-0.579545}, + {0.798530,0.075240}, + {-0.671206,-0.110130}, + {-0.032062,-0.960990}, + {0.473355,0.406486}, + {0.724043,0.644396}, + {-0.324565,0.679171}, + {-0.260678,0.183511}, + {-0.340520,-0.690654}, + {-0.490994,-1.070487}, + {-0.102180,-0.653080}, + {1.588020,1.305983}, + {-0.284747,0.210628}, + {-0.084555,0.093298}, + {-0.200014,0.790467}, + {-0.717793,0.363149}, + {0.131695,-0.446003}, + {0.914407,0.814170}, + {-0.202136,-0.003753}, + {1.277709,0.898150}, + {0.656615,-0.393242}, + {-0.156783,0.685943}, + {-0.206718,0.503998}, + {0.201327,0.404118}, + {0.042250,-0.107335}, + {-0.870850,0.210164}, + {0.381354,0.642557}, + {-0.595277,0.854957}, + {0.322635,0.139045}, + {1.736598,0.188796}, + {0.862338,-0.908735}, + {0.952138,-1.054378}, + {0.771591,0.755734}, + {0.080442,-0.425273}, + {0.711784,0.796568}, + {0.221518,0.711452}, + {-0.754410,0.214646}, + {0.297972,-0.998691}, + {-0.023798,-0.667344}, + {-0.064961,-0.853014}, + {0.082753,0.438751}, + {-0.829817,-0.535958}, + {0.179596,0.170377}, + {-0.232841,0.874216}, + {1.184970,0.506020}, + {0.638693,-1.085547}, + {0.618905,0.086848}, + {0.091035,-1.093523}, + {1.586531,-0.145763}, + {0.781375,-0.734368}, + {-0.439204,-0.368124}, + {0.884153,-0.881938}, + {0.443501,0.046392}, + {-0.000463,-2.010197}, + {-1.341146,0.413517}, + {-0.115972,-0.617283}, + {0.576521,-0.591029}, + {0.262853,0.282668}, + {0.454027,-0.299344}, + {0.561599,-1.411193}, + {0.847940,-0.386760}, + {0.162330,-1.607905}, + {0.019188,0.449590}, + {0.667390,0.097850}, + {1.070732,-0.511950}, + {0.837035,0.531196}, + {0.366102,-0.046720}, + {-0.715692,0.543561}, + {-0.021125,-0.195383}, + {0.548797,-1.182353}, + {1.307617,-0.209852}, + {0.563610,0.627996}, + {0.085233,0.093108}, + {-0.445645,1.093604}, + {-0.920394,1.114292}, + {-0.394214,0.442132}, + {-0.175037,0.756531}, + {-1.486353,0.249107}, + {0.036325,-1.007293}, + {-0.348203,0.752406}, + {-0.502838,0.733700}, + {-0.386542,-0.143784}, + {-0.289604,1.540041}, + {-0.112224,0.139364}, + {-0.060213,-0.734811}, + {0.401407,1.469775}, + {0.455272,0.162539}, + {-0.151403,0.737257}, + {0.767557,-0.397638}, + {-0.392108,-0.373642}, + {0.602157,-0.607477}, + {-0.745662,-0.034958}, + {-1.102743,0.087956}, + {-1.559189,0.464934}, + {-1.466796,0.183389}, + {-1.075429,-0.243765}, + {-0.902469,-0.918449}, + {0.135849,0.153793}, + {-0.867781,-0.363082}, + {1.109122,0.450055}, + {-0.862578,0.592056}, + {-0.417136,0.030326}, + {1.119029,0.172928}, + {-0.460388,1.450624}, + {-0.383553,-0.286544}, + {0.769042,0.259261}, + {-0.624490,1.200131}, + {-1.122671,-0.736922}, + {-1.806449,0.235413}, + {-0.034734,-1.440604}, + {0.183904,-0.178401}, + {0.345460,-0.134209}, + {-0.048553,-0.107624}, + {-1.055511,-0.230159}, + {-0.770478,1.603207}, + {0.225398,1.413173}, + {-0.771651,-0.881477}, + {0.297900,-0.163596}, + {-0.747235,0.837724}, + {1.266946,-0.261761}, + {0.714842,-0.900438}, + {0.566732,-0.227364}, + {-0.266881,-0.036107}, + {-0.791542,0.149132}, + {-1.792347,-0.319528}, + {-0.653766,0.011991}, + {1.200644,0.555262}, + {0.282989,-0.753802}, + {0.528717,0.482407}, + {-0.546723,-0.455929}, + {0.266867,0.694730}, + {0.516831,0.923688}, + {0.182959,-1.056826}, + {-1.486910,-0.208888}, + {1.201567,0.192398}, + {-1.757454,-0.151676}, + {1.324179,-0.469352}, + {0.040209,0.160468}, + {0.654096,-0.624048}, + {0.357661,0.980737}, + {0.058591,-0.693167}, + {-0.122160,-1.377046}, + {0.281492,0.331693}, + {-0.082028,0.294920}, + {1.769671,0.812195}, + {0.098679,0.119134}, + {-1.443098,-1.187373}, + {-0.280626,-0.135435}, + {0.589831,0.260585}, + {-0.540208,-0.744497}, + {0.140753,0.497638}, + {-1.508149,-0.600368}, + {-0.545563,1.017052}, + {0.626888,-0.915797}, + {-0.053717,-0.598712}, + {-0.550529,0.572603}, + {0.159770,1.587399}, + {-1.196120,0.802992}, + {-0.515035,0.547389}, + {-0.008116,0.409647}, + {-1.058518,0.054808}, + {-0.042508,-0.559489}, + {0.011590,0.322688}, + {1.052709,0.384123}, + {0.425621,-0.744465}, + {-1.279637,1.410061}, + {0.107505,-1.717265}, + {-0.850488,-0.542529}, + {-0.969962,0.197049}, + {0.045225,-1.201257}, + {-0.701234,0.348909}, + {0.254005,-0.689191}, + {0.696662,0.251047}, + {1.158640,-0.473769}, + {-0.674666,0.000070}, + {-1.079858,-0.744986}, + {-0.956900,-0.604828}, + {0.336681,0.096805}, + {0.749376,0.408288}, + {-0.341699,-0.132789}, + {-0.566410,-0.063452}, + {-0.307095,0.690775}, + {1.362382,-0.954373}, + {0.027733,0.171340}, + {-0.043149,-0.889067}, + {-0.759746,-0.387685}, + {-0.014074,0.110098}, + {1.941074,1.179552}, + {-0.316348,1.024601}, + {0.686783,-0.662860}, + {-0.480265,-0.318199}, + {-0.301052,0.547353}, + {-0.658741,0.133439}, + {0.219759,0.560583}, + {-0.128545,-0.937591}, + {0.937029,0.858481}, + {0.636270,-0.195326}, + {-0.333245,-0.881758}, + {0.799974,0.622142}, + {-0.008765,-0.681762}, + {-0.344503,-0.152322}, + {-0.269002,-0.978158}, + {-1.401038,0.473890}, + {-0.254753,-0.199118}, + {0.501615,-0.004429}, + {0.223899,0.481336}, + {-0.846760,0.430996}, + {-0.061397,-1.110077}, + {-1.262684,-0.975124}, + {-0.255968,0.443139}, + {0.165242,2.157322}, + {0.171348,-0.113452}, + {0.784235,0.826362}, + {-0.930326,-0.142924}, + {-1.016804,-1.041038}, + {0.053696,0.188937}, + {-1.831388,-0.308341}, + {0.956302,-0.422604}, + {-0.814804,-1.598612}, + {0.125995,-0.841216}, + {1.222502,-0.172663}, + {-0.066590,0.294008}, + {1.467924,0.078648}, + {-0.594113,0.074105}, + {0.454844,0.418237}, + {-0.355792,-1.712601}, + {0.280973,0.482542}, + {-1.677893,-0.708101}, + {-0.143138,-0.222046}, + {0.185764,-0.182096}, + {-1.591763,0.811301}, + {-0.872062,0.528511}, + {0.531152,0.105743}, + {-0.405518,-0.243221}, + {-0.285285,-0.724835}, + {1.211926,-0.938313}, + {-0.311116,0.708844}, + {0.452738,0.246767}, + {-0.734349,-0.015975}, + {0.504125,-0.297089}, + {-0.550223,-0.407948}, + {1.386104,-1.647487}, + {-0.532341,-0.778504}, + {-1.609207,-0.322142}, + {0.151805,0.083478}, + {0.045700,0.360312}, + {-0.209418,0.028573}, + {-0.028010,-0.531229}, + {-0.297919,-0.606391}, + {-0.227399,-0.036008}, + {-1.071328,0.802874}, + {1.611743,-0.469932}, + {-0.639568,1.269852}, + {1.007945,0.734555}, + {0.278845,1.802139}, + {-0.074947,1.028369}, + {0.512044,-1.046021}, + {0.400092,0.083723}, + {-0.560397,-0.243498}, + {0.036739,0.207770}, + {0.571326,0.324339}, + {0.186415,-0.351682}, + {-0.457269,0.176103}, + {0.021670,-0.065631}, + {0.511796,-0.018099}, + {1.735932,-1.412607}, + {-0.650731,-1.358326}, + {0.575977,0.636595}, + {0.654576,-0.152643}, + {-0.490564,0.772623}, + {-0.524959,-0.161241}, + {-0.658197,-0.312236}, + {0.163393,-0.340469}, + {0.656293,0.638867}, + {0.501754,-0.811553}, + {0.440917,0.449741}, + {1.556753,0.811315}, + {0.841730,-0.772732}, + {0.660040,-0.888669}, + {-0.782535,-0.242943}, + {1.033138,-1.092518}, + {-0.069224,0.487574}, + {0.387082,-0.053341}, + {-0.254564,-0.830744}, + {-0.007638,-0.247230}, + {-0.661025,0.930161}, + {0.606968,-0.680955}, + {-0.137605,0.289561}, + {0.863396,0.128169}, + {-0.349560,-0.836361}, + {-1.438246,-1.537779}, + {-0.460247,-1.009597}, + {0.728357,-0.362308}, + {-0.050639,-0.243558}, + {-0.679497,0.781298}, + {0.658934,0.412632}, + {0.670115,0.267368}, + {0.123810,-0.916516}, + {0.868722,-1.620722}, + {-0.145830,0.480333}, + {-1.145276,-0.014976}, + {-0.108175,-1.215163}, + {-0.449991,-0.695477}, + {0.354733,0.823464}, + {-0.039724,-0.098980}, + {0.013556,0.499284}, + {-1.312451,-0.054851}, + {-0.830864,0.524224}, + {0.486311,-0.717254}, + {0.643189,-0.177630}, + {0.273871,0.698640}, + {0.853247,-0.305921}, + {-1.129702,0.190997}, + {0.373702,-1.523299}, + {-0.301040,0.189571}, + {-0.224603,0.155915}, + {0.831177,-0.779143}, + {1.389989,-0.223985}, + {-0.321807,-0.258173}, + {-0.366492,-0.422011}, + {-0.384236,0.224358}, + {-1.063747,-0.704562}, + {-0.555400,0.187686}, + {0.271893,0.617246}, + {-0.610279,-0.700190}, + {-0.551170,0.213321}, + {1.648215,0.778172}, + {-0.025453,-0.830363}, + {-0.219132,-0.100106}, + {-1.131840,0.570620}, + {0.351216,0.049910}, + {-0.316256,-0.207403}, + {-0.050467,1.734194}, + {-0.654866,0.299421}, + {0.150861,-0.684421}, + {-0.561852,0.297147}, + {-0.126410,0.789246}, + {-0.127865,-0.749320}, + {0.162245,1.241481}, + {1.336352,-0.647051}, + {-0.605969,0.480636}, + {-1.072146,0.585871}, + {0.768267,0.008915}, + {-0.399790,0.263734}, + {-1.004410,0.473403}, + {0.145836,0.570952}, + {0.647171,0.532919}, + {1.021832,-0.194468}, + {-0.166667,0.643500}, + {-0.062712,0.359724}, + {0.260920,1.286259}, + {0.702274,-0.475356}, + {-0.995690,-0.674690}, + {1.214113,0.161147}, + {-0.054271,-0.030268}, + {0.135363,0.245079}, + {-0.193862,-0.856533}, + {-0.446497,0.195088}, + {0.909234,0.465749}, + {0.027739,-0.240682}, + {0.202885,-0.391204}, + {-0.915654,-1.517288}, + {0.032038,0.801794}, + {-0.565640,-1.125811}, + {-0.746958,0.080219}, + {1.012414,-0.176261}, + {0.925715,0.171622}, + {0.504816,0.886424}, + {-0.055414,-1.707216}, + {0.331249,1.448197}, + {0.325529,-0.748697}, + {0.006156,-0.885744}, + {0.843520,-0.760984}, + {1.008421,-0.221801}, + {-0.978591,1.867998}, + {0.351767,1.119610}, + {-0.152918,1.039013}, + {-0.595093,0.442284}, + {0.844670,-0.308379}, + {0.716920,-0.336382}, + {0.461792,-0.273735}, + {0.097085,-0.336706}, + {-0.119997,0.705377}, + {0.216905,-0.214695}, + {-0.163907,0.691365}, + {0.046850,-0.395489}, + {-0.622611,-0.633670}, + {0.073035,-0.563313}, + {-1.652085,-0.637483}, + {0.004529,-0.510007}, + {-0.756162,-0.373366}, + {0.224175,0.104698}, + {0.240622,0.087521}, + {0.051187,0.920317}, + {1.667764,0.411180}, + {-0.117246,-0.234740}, + {-0.082710,-0.477874}, + {0.040677,-0.399180}, + {-0.950192,0.484832}, + {0.746072,-0.140056}, + {-1.349141,0.607029}, + {0.548435,-0.191376}, + {0.190776,-1.480638}, + {0.719537,1.345205}, + {1.446202,-0.580025}, + {0.053474,0.978262}, + {0.786674,0.753003}, + {-0.996297,0.640894}, + {1.383403,0.136313}, + {0.608127,0.754792}, + {-0.827608,-0.016325}, + {-0.924064,-0.682900}, + {-1.054567,-0.001422}, + {1.185203,1.589105}, + {0.496944,0.349206}, + {-0.169828,-0.384878}, + {-0.285749,0.247343}, + {-0.719044,-1.465544}, + {0.064705,-0.715851}, + {-0.313329,1.540674}, + {-0.565377,-0.220547}, + {-0.959113,-0.696998}, + {-0.265068,0.828256}, + {-0.231885,-0.521362}, + {0.084903,-0.990582}, + {0.419140,-0.095240}, + {0.278788,-0.044144}, + {0.586966,0.431494}, + {1.209696,0.763105}, + {-1.666831,-0.629313}, + {-0.497822,0.832480}, + {-0.142951,-0.554920}, + {-0.275496,-1.050326}, + {-0.478618,-0.636370}, + {0.782930,0.504903}, + {-0.082104,-1.564349}, + {-0.211217,0.853166}, + {1.084067,0.782337}, + {-0.055275,0.277204}, + {0.880825,-0.475584}, + {-0.949252,0.084678}, + {-0.211708,0.245726}, + {1.704036,0.424302}, + {0.077734,-0.365634}, + {0.216536,0.821771}, + {0.375309,-0.657953}, + {-0.659413,-0.187937}, + {-0.499583,-0.274513}, + {1.229467,-0.033242}, + {-0.267309,0.993163}, + {0.865415,0.210650}, + {-0.823692,-0.069652}, + {-0.540393,-0.407260}, + {-0.708647,-0.380446}, + {-0.456284,-0.443381}, + {-1.262311,-0.764377}, + {-0.321781,0.630733}, + {-0.588639,-0.187851}, + {-0.568256,0.499750}, + {0.373187,0.006208}, + {0.707336,0.348158}, + {1.672811,-0.006168}, + {-0.123496,0.243460}, + {-0.436994,0.521309}, + {0.221835,0.213596}, + {-0.110805,0.604376}, + {-0.453414,-0.656775}, + {-0.342502,-0.092188}, + {0.282574,1.154633}, + {-0.805164,0.800347}, + {0.792364,0.263727}, + {-0.117166,-0.150103}, + {-0.284043,1.115365}, + {0.454632,-1.305995}, + {-0.027046,-0.148701}, + {0.158758,-1.399725}, + {-0.035824,1.192414}, + {-0.761856,0.094855}, + {-0.008090,0.994581}, + {-0.259027,-0.931982}, + {-0.978369,-0.050289}, + {0.339204,-0.785655}, + {-0.301449,0.823972}, + {0.745963,0.972562}, + {1.820135,0.926824}, + {-0.182639,0.155852}, + {-0.307134,0.062589}, + {-0.356943,1.592747}, + {-0.810041,-0.170031}, + {0.924231,-0.092920}, + {-0.511708,-0.739995}, + {0.217789,0.214683}, + {0.727853,0.509274}, + {0.540418,0.119559}, + {1.247327,0.541364}, + {0.750281,0.697049}, + {0.211089,0.231808}, + {0.542634,0.268686}, + {0.250232,0.727131}, + {-1.260513,0.624552}, + {0.606138,-0.194470}, + {0.114722,0.116973}, + {-0.552551,-0.850632}, + {-0.586970,-0.054372}, + {0.199770,-0.540281}, + {-1.122043,-0.794103}, + {1.090813,0.071042}, + {-0.304107,0.113772}, + {0.555280,0.023257}, + {0.066496,-1.087529}, + {0.735559,1.299498}, + {-0.523713,-0.325003}, + {0.558212,-1.053250}, + {-0.542305,-0.417328}, + {0.228459,-0.174137}, + {0.882993,1.180572}, + {-0.210242,0.141900}, + {0.530180,-0.288710}, + {-0.867478,-0.490810}, + {0.680940,0.052579}, + {-0.190379,-0.716328}, + {2.098467,0.446381}, + {-0.802407,0.021896}, + {-0.050531,0.152073}, + {-0.548937,-0.769984}, + {1.160574,1.151177}, + {-0.844446,-1.831308}, + {0.469147,0.201575}, + {0.915001,0.416576}, + {0.447789,-1.554800}, + {0.498533,-0.152030}, + {0.333739,0.365833}, + {0.523884,0.261510}, + {0.102519,-2.132332}, + {1.322340,0.237185}, + {-0.666061,0.182718}, + {-0.547886,0.110171}, + {-0.885832,-0.119981}, + {-0.220295,0.279038}, + {0.672774,-0.493978}, + {0.201961,0.278770}, + {-0.698567,1.015529}, + {-0.547559,0.238427}, + {-0.900760,-0.019301}, + {0.850664,0.808783}, + {-0.435736,0.345590}, + {-0.166500,0.514461}, + {-0.734562,-1.054797}, + {-0.480065,0.153198}, + {1.169755,0.209574}, + {1.069664,0.606532}, + {-0.708567,-0.040850}, + {0.652199,-0.079326}, + {-0.719968,0.322006}, + {-0.514982,0.234570}, + {-1.101919,-0.339730}, + {0.150537,0.654555}, + {-0.736618,-0.262166}, + {-0.856246,-0.452481}, + {1.287460,-0.187745}, + {-0.217413,-0.915828}, + {0.609253,-0.743804}, + {-1.171250,-0.922717}, + {0.150368,0.415436}, + {1.201096,-0.573735}, + {-0.115596,0.661219}, + {1.042194,-0.088547}, + {0.005057,-0.396937}, + {-1.158327,-0.358233}, + {0.623459,-0.169205}, + {0.388201,0.751152}, + {0.895239,0.665853}, + {0.354939,0.105708}, + {-0.587396,-1.923318}, + {-0.061833,0.531589}, + {0.604179,-0.251531}, + {0.494426,0.338236}, + {-0.271009,-0.331057}, + {-0.256580,0.492214}, + {-0.088714,-0.383933}, + {1.123027,0.719944}, + {0.375988,0.313174}, + {0.236084,0.230468}, + {0.003886,-0.712924}, + {0.104498,1.606752}, + {-0.532576,0.330591}, + {-0.488381,-1.352006}, + {0.161545,1.723053}, + {-0.710498,-0.276665}, + {-0.986647,0.482909}, + {1.434283,0.726346}, + {0.068419,1.131931}, + {0.442032,-0.394590}, + {-0.239756,0.143242}, + {1.643873,-0.058546}, + {-1.003878,-0.192841}, + {0.122247,-0.079203}, + {-0.252594,-1.356311}, + {-0.869489,-0.064070}, + {-1.961857,-0.185462}, + {-1.899979,0.496400}, + {-0.109843,0.709934}, + {0.827485,-0.498313}, + {0.209843,1.037273}, + {-1.581375,-1.119497}, + {0.290475,1.032399}, + {0.668792,0.476572}, + {-0.433339,-0.944385}, + {0.323084,0.537194}, + {-0.221663,0.003856}, + {1.383254,-0.497884}, + {-1.198460,-0.892147}, + {-0.750552,0.230349}, + {-0.637159,0.240327}, + {1.023382,1.174099}, + {0.449877,1.718353}, + {0.110701,-1.119723}, + {0.188672,-0.085627}, + {-0.767622,0.429697}, + {0.022888,-0.290090}, + {0.029017,-0.575055}, + {0.569277,-0.179878}, + {-1.100726,0.865245}, + {-0.544482,0.275123}, + {-0.336701,-0.933121}, + {0.051869,0.544727}, + {0.845421,-0.138977}, + {-0.855811,0.654785}, + {0.146789,-1.087976}, + {-0.213152,0.076521}, + {1.014701,0.369228}, + {0.303512,-0.346069}, + {0.019167,0.409554}, + {0.812617,-0.834358}, + {1.338190,-0.103966}, + {0.776275,0.019837}, + {-0.804914,-0.226097}, + {-1.210668,-1.599920}, + {-0.354872,1.508185}, + {-0.577729,-0.030264}, + {1.140923,-0.684538}, + {-1.087623,0.646425}, + {-1.213811,1.245787}, + {-0.747429,0.088243}, + {-1.028906,1.421081}, + {0.269063,0.871054}, + {-1.154534,0.036896}, + {0.616763,0.386360}, + {-0.112931,-0.217046}, + {0.465623,-0.396933}, + {0.167084,-1.587480}, + {1.067098,1.142031}, + {-0.726521,0.527343}, + {0.521179,0.754796}, + {1.965600,-0.951334}, + {-0.493864,0.148753}, + {-0.789453,-0.495132}, + {1.154057,0.025690}, + {0.226936,0.017755}, + {-0.397219,0.138528}, + {0.825606,-0.364112}, + {-0.550409,0.454887}, + {0.168085,-0.192830}, + {1.037240,0.172213}, + {-0.623615,-1.192414}, + {-1.394999,0.433780}, + {-0.517121,0.276487}, + {-0.717265,-1.106185}, + {1.173780,0.500190}, + {1.189896,0.347666}, + {-0.367490,0.332201}, + {1.428207,0.822697}, + {0.450744,1.052459}, + {-0.703437,0.894070}, + {0.915143,0.151831}, + {-0.076742,0.733596}, + {0.524063,-0.923572}, + {0.182666,-1.514815}, + {-0.096585,-0.475288}, + {0.933516,0.325996}, + {0.262816,-1.152226}, + {-1.298289,1.056797}, + {0.290436,0.293651}, + {-0.796841,0.007490}, + {-0.001210,-0.482373}, + {-0.372255,-0.003545}, + {-0.951811,0.424592}, + {0.428500,-0.154131}, + {-0.016110,0.104156}, + {0.714483,-0.096403}, + {-0.497021,0.177252}, + {0.119749,-1.519028}, + {1.655545,-1.336578}, + {0.765918,-0.329551}, + {1.142739,1.110006}, + {0.715838,0.057273}, + {0.978170,0.262785}, + {0.989103,0.268928}, + {-0.844677,0.128637}, + {-0.709728,-0.957801}, + {1.655370,0.576793}, + {-0.701566,-0.455455}, + {1.472421,0.138446}, + {-0.068813,0.104376}, + {-0.307454,0.024655}, + {-1.584193,0.460054}, + {-0.636200,0.303211}, + {-0.547006,-0.100346}, + {0.033197,-0.233433}, + {0.036871,-1.428877}, + {-1.282191,-0.020832}, + {-0.226060,0.575992}, + {0.539645,0.580925}, + {-0.515746,0.640159}, + {0.122624,0.379262}, + {-0.298237,-0.430135}, + {0.582305,0.104006}, + {0.761337,0.778517}, + {-0.116138,-0.079724}, + {0.056869,0.497983}, + {0.534546,-0.781835}, + {1.373099,0.424074}, + {-0.326885,-0.553422}, + {0.466659,0.459637}, + {0.057961,0.638324}, + {1.220616,0.000019}, + {-0.396984,1.437168}, + {0.217722,0.458254}, + {0.517229,-0.226219}, + {0.266293,0.723080}, + {0.316267,-0.496743}, + {0.395212,0.100780}, + {0.208948,-0.868054}, + {0.494479,0.422566}, + {0.090251,0.077638}, + {-0.006175,-0.650019}, + {-0.244839,-0.682264}, + {-0.168110,0.761099}, + {-0.705272,0.959809}, + {0.345444,-0.191354}, + {-1.338302,-0.620916}, + {-0.913269,-0.357629}, + {-0.326929,-0.599831}, + {-0.886159,-0.329607}, + {-0.352269,-0.326190}, + {0.517424,-0.679915}, + {-0.256276,0.568007}, + {-0.018477,0.625619}, + {-1.188829,-0.540793}, + {-0.063814,0.082350}, + {-0.574465,-0.281673}, + {-1.431945,-0.967747}, + {-1.319540,-0.350255}, + {0.385732,0.441168}, + {0.648657,-0.187545}, + {-0.413140,-0.199861}, + {-0.860812,0.630549}, + {-0.526107,-0.254688}, + {1.561758,-0.918379}, + {0.478789,-0.553762}, + {0.577887,0.031411}, + {-0.123129,-1.310582}, + {0.467329,-0.373385}, + {-0.158891,-0.519788}, + {0.413279,-0.717616}, + {-0.090683,0.008334}, + {-0.201974,-0.766771}, + {0.467733,-0.252969}, + {1.537250,-0.785099}, + {1.055945,1.034578}, + {0.855592,-1.000192}, + {0.049488,1.476671}, + {0.485982,-1.096695}, + {-0.417544,-0.230928}, + {0.650111,-0.343016}, + {-0.697971,-0.973262}, + {0.665104,0.431052}, + {0.312919,1.312641}, + {0.441995,-0.145228}, + {0.314576,0.658067}, + {-0.499512,-0.180834}, + {0.274381,-0.633668}, + {-1.253873,0.337280}, + {0.429498,-0.073320}, + {-0.721886,-0.291230}, + {2.130391,-0.609516}, + {0.264504,-0.772070}, + {0.197991,0.156987}, + {0.012200,0.176025}, + {0.511819,0.264211}, + {0.846034,-0.534889}, + {-0.019510,0.783356}, + {0.369750,-0.658338}, + {0.067036,-0.850373}, + {-0.187688,0.650173}, + {-0.550258,0.977643}, + {0.310795,-0.493400}, + {-1.002795,-0.323754}, + {-0.687753,0.520814}, + {-0.273234,-0.055023}, + {1.420085,-0.258885}, + {-1.197577,0.045913}, + {0.069913,-0.134013}, + {-0.662290,-0.003455}, + {-0.451015,-0.580987}, + {1.162251,-0.128787}, + {-0.397880,-0.417766}, + {0.970358,0.047251}, + {-0.999546,-0.615866}, + {-0.667909,0.655248}, + {0.171279,-1.041255}, + {0.490597,-0.745594}, + {-0.163106,-0.467833}, + {0.685498,-0.884569}, + {0.021264,-0.159166}, + {-0.284385,0.390590}, + {-0.406411,0.147308}, + {-0.887529,-0.424785}, + {0.800653,0.320601}, + {-0.237328,0.229176}, + {-0.356110,-0.871456}, + {-0.469616,-0.563785}, + {0.540253,0.000454}, + {0.766091,-0.692660}, + {1.265823,-1.121352}, + {-0.519969,-0.763516}, + {-0.908685,1.223205}, + {0.378901,-0.148434}, + {0.734892,-0.017845}, + {0.630235,0.605463}, + {0.484549,0.798393}, + {0.889189,-0.588511}, + {-1.209300,-0.615938}, + {0.745912,0.216205}, + {-0.361015,0.030537}, + {-0.140569,0.491194}, + {0.206099,0.823077}, + {1.382085,0.511459}, + {0.822290,1.501179}, + {0.580893,0.246972}, + {-0.058519,-0.069856}, + {-0.623353,-0.877999}, + {0.911648,0.144101}, + {0.264720,-1.072727}, + {-0.788517,-0.665520}, + {0.884159,-0.498943}, + {-0.328181,-1.628856}, + {-0.854272,-0.298947}, + {0.369952,-0.228915}, + {0.466766,-0.533842}, + {-0.856672,0.555703}, + {-1.666030,0.205364}, + {-1.163374,0.020615}, + {-0.460905,0.147512}, + {-1.150163,-0.171924}, + {-1.086664,1.156968}, + {0.221459,0.371883}, + {-0.140640,-0.413140}, + {0.015694,-0.876451}, + {0.084676,-0.170816}, + {1.728853,-0.133309}, + {0.505786,0.017453}, + {0.738540,-1.225824}, + {-0.732059,0.505571}, + {0.586809,0.992493}, + {-0.201427,0.147962}, + {-0.669290,0.191411}, + {-0.670438,0.813079}, + {-0.396987,0.005979}, + {-0.248870,0.602922}, + {0.019785,-1.162706}, + {0.258091,-0.507443}, + {-0.293495,-0.206140}, + {-1.416552,-0.047997}, + {0.863624,-0.614726}, + {0.618458,-0.667468}, + {-0.068763,-0.452185}, + {0.518270,0.013776}, + {0.095323,0.282178}, + {-0.501060,1.250301}, + {0.495096,-0.240239}, + {0.841004,0.186255}, + {0.979204,-0.843511}, + {0.159362,-0.525116}, + {-1.076816,-0.329245}, + {0.590261,0.475905}, + {-0.042284,0.849452}, + {-0.176301,0.436022}, + {-0.007701,1.259334}, + {-1.508466,-0.903273}, + {1.741680,0.724148}, + {-0.829550,0.878517}, + {0.549818,0.385023}, + {-0.586413,0.711769}, + {-0.731277,0.072802}, + {0.732751,-0.781661}, + {1.453798,0.653282}, + {-0.547525,0.163118}, + {1.321736,0.284994}, + {0.967075,0.447090}, + {0.449005,-1.871133}, + {0.049354,-0.499692}, + {0.623433,1.594496}, + {-0.006018,-0.366873}, + {-0.476288,-0.645067}, + {-0.185525,1.921269}, + {0.691321,-1.097974}, + {-1.417428,0.364298}, + {0.995453,0.433032}, + {0.645331,-0.069612}, + {0.587566,-0.248929}, + {-0.015891,0.435682}, + {0.300868,0.560848}, + {0.593525,0.847680}, + {-1.032251,0.705217}, + {-1.236513,-0.605437}, + {0.480328,0.151749}, + {-0.327914,-0.239973}, + {0.645026,1.272340}, + {1.041862,-0.097846}, + {-0.444069,0.694695}, + {0.748340,-0.242565}, + {-0.392311,-0.564402}, + {0.955277,-0.330417}, + {0.766884,-1.099700}, + {0.270925,-0.271814}, + {0.991722,-1.258038}, + {-1.300449,-0.021881}, + {-0.648161,-0.316676}, + {0.189458,0.566763}, + {-1.087335,0.525761}, + {-0.096931,0.439582}, + {-0.004232,-0.614384}, + {-1.011860,0.920394}, + {-0.096274,-0.360917}, + {0.126764,-0.317622}, + {1.075920,-2.092266}, + {-0.745683,0.670968}, + {-0.427878,0.479526}, + {1.421614,1.297357}, + {-0.182187,0.907850}, + {0.576038,-0.390017}, + {-0.774510,0.092694}, + {1.486913,0.472625}, + {-0.985614,-0.039686}, + {0.497321,0.513824}, + {-0.226054,-0.465794}, + {0.263041,-0.071887}, + {0.284301,-0.781556}, + {0.312159,-1.389565}, + {-0.473675,1.103600}, + {0.066062,-0.020374}, + {0.153187,-0.821651}, + {0.252598,-0.505776}, + {-0.588915,-0.507526}, + {0.746750,0.865902}, + {-0.198729,0.371388}, + {0.192385,-0.115625}, + {-0.301964,1.093953}, + {-0.372911,0.616029}, + {-0.146635,-0.921548}, + {0.449273,-0.739387}, + {0.901099,0.774089}, + {0.266051,0.377341}, + {0.591555,0.563182}, + {0.636632,-0.227791}, + {1.160072,0.570171}, + {0.176682,0.068412}, + {-0.005833,0.132717}, + {0.004802,-0.842799}, + {1.604389,-0.379789}, + {0.484633,-0.421334}, + {0.185324,0.164699}, + {0.040009,0.495247}, + {-0.126941,-0.436956}, + {1.077300,1.615921}, + {-0.092967,-0.177670}, + {0.562370,-0.425568}, + {-0.812328,-0.831640}, + {0.504950,-0.415654}, + {0.634659,-1.051510}, + {-0.509551,-0.741446}, + {0.461403,-0.823263}, + {0.741515,-0.178576}, + {-1.803048,0.240838}, + {0.965793,0.671290}, + {0.485702,0.199620}, + {-0.033739,0.468502}, + {0.995017,0.457605}, + {-0.891019,-1.422089}, + {0.213272,1.349124}, + {0.957810,-0.529870}, + {1.144436,0.631099}, + {-0.608364,-0.008161}, + {-0.183913,-0.622132}, + {0.259485,1.794263}, + {-1.893936,0.887524}, + {0.869948,0.279483}, + {1.330244,-0.234150}, + {-0.698793,-1.869186}, + {-0.023907,-0.584283}, + {0.889881,-1.321943}, + {0.739625,-0.348848}, + {-0.445268,0.106291}, + {0.826921,0.698815}, + {-0.290005,0.699820}, + {-0.344072,-0.323324}, + {-0.411819,-0.585410}, + {-0.018909,-0.290762}, + {0.505112,-0.327444}, + {-0.118789,-0.034296}, + {1.369287,0.043394}, + {-1.463384,-0.619034}, + {-0.230005,1.632769}, + {-0.715552,1.059146}, + {0.500928,-0.212733}, + {0.920560,-0.635359}, + {-0.588473,0.687934}, + {-0.213108,-0.623500}, + {-1.114112,1.581999}, + {1.450259,-0.777587}, + {-0.240633,0.524103}, + {-0.437009,-0.672738}, + {-0.672158,-0.442712}, + {-1.001309,0.772701}, + {-0.448667,0.061504}, + {0.258287,-0.116766}, + {-1.022620,0.057617}, + {-0.132288,1.008135}, + {1.073702,-1.840446}, + {1.048816,-0.795525}, + {0.549427,-0.386099}, + {0.536366,-1.205694}, + {-0.187059,1.950097}, + {0.301988,-0.179036}, + {-0.553248,1.508990}, + {-1.704598,0.083126}, + {-0.872153,-0.082539}, + {-0.436999,0.247757}, + {-0.535663,0.218898}, + {1.740084,-1.134760}, + {1.769763,0.915663}, + {-0.562986,-0.099149}, + {1.793889,-0.797788}, + {-0.178126,-0.267732}, + {0.631260,-1.067603}, + {0.824120,0.547277}, + {0.414803,0.795777}, + {1.524148,-0.914855}, + {0.122641,-0.801623}, + {0.240361,-0.440083}, + {0.297449,2.260062}, + {-0.047492,-0.415373}, + {1.113301,-0.107794}, + {-0.278272,-0.153044}, + {-0.795337,0.227249}, + {-0.362846,0.602121}, + {0.954406,1.716838}, + {-0.259979,-0.099052}, + {-0.032074,-0.033958}, + {-1.944759,-1.116393}, + {-0.489102,0.214741}, + {-0.522574,1.262638}, + {0.863974,-0.082520}, + {0.484891,1.178134}, + {0.703921,0.461285}, + {-1.885850,-0.134840}, + {0.185955,0.977271}, + {0.324373,0.280497}, + {-0.540469,0.740809}, + {-0.490823,0.276430}, + {1.048976,-0.306852}, + {-0.872366,0.408507}, + {-0.522883,0.166499}, + {0.244488,-0.257421}, + {-1.040009,-0.423785}, + {-0.755068,0.536125}, + {-0.684830,0.823324}, + {0.564522,0.356330}, + {-0.595022,0.388829}, + {-0.144106,0.215685}, + {0.035723,-0.053939}, + {-0.353620,-1.153940}, + {1.247211,-0.730838}, + {1.664593,0.096993}, + {0.991357,-0.265930}, + {-1.524475,1.193607}, + {0.404257,-1.329731}, + {-0.893348,-0.573884}, + {-0.456101,1.026453}, + {0.114008,-0.620093}, + {0.505622,0.342661}, + {0.550962,0.586929}, + {0.809653,-0.405812}, + {-0.028734,-0.834741}, + {-0.155816,-1.209146}, + {1.153799,1.158627}, + {-0.190132,0.358644}, + {-0.802479,-0.235259}, + {0.090976,-0.943619}, + {0.728902,-0.942158}, + {1.160826,-0.138895}, + {0.377593,-0.778267}, + {0.070475,0.710161}, + {-0.141220,-1.059658}, + {0.833144,0.183631}, + {-0.769879,0.085471}, + {0.940921,0.622870}, + {0.717500,0.267314}, + {-0.671317,-0.402610}, + {-0.190394,0.893239}, + {0.197755,0.923891}, + {1.199303,-0.372345}, + {-0.196247,0.422832}, + {0.254665,-0.230619}, + {1.194773,-0.045428}, + {-0.165593,-1.152962}, + {0.457136,-0.280145}, + {-0.302551,0.117955}, + {1.065757,0.136590}, + {-0.403169,-1.378557}, + {-0.555648,0.009076}, + {-0.654869,-0.527972}, + {0.007930,0.308520}, + {0.267582,-0.462596}, + {-1.321099,1.596624}, + {0.201720,0.549905}, + {0.573367,-0.507021}, + {0.816064,0.368670}, + {-0.014020,0.027474}, + {0.437790,0.322314}, + {0.228108,-0.622273}, + {-0.462938,-1.714444}, + {0.645504,0.655548}, + {-0.129067,-1.174696}, + {-0.363463,0.121620}, + {0.064644,-0.373728}, + {0.829669,-0.093423}, + {1.987522,1.409714}, + {0.402627,0.461663}, + {-0.517408,1.461400}, + {-0.194346,0.371817}, + {-0.095302,1.127603}, + {0.854504,0.243799}, + {-0.175436,0.956797}, + {0.765841,0.740974}, + {-0.311100,0.344987}, + {0.505908,-1.150500}, + {0.570032,-0.062613}, + {-0.145633,0.780485}, + {-0.162999,0.361546}, + {-0.290794,1.229566}, + {0.262506,-0.308712}, + {-0.060761,-1.319020}, + {-0.374195,0.429511}, + {-0.086799,0.375579}, + {-0.695934,1.544833}, + {-0.553200,0.563327}, + {0.270544,0.934228}, + {0.336961,0.195811}, + {0.665743,0.096687}, + {-0.076057,1.056521}, + {0.798484,-0.357557}, + {0.241616,-1.011969}, + {-1.077322,-0.558872}, + {0.442441,-0.655746}, + {0.244793,-0.618180}, + {0.103232,0.499368}, + {-0.227070,0.190847}, + {0.550947,-0.745656}, + {-1.079964,0.299129}, + {0.779327,-1.277451}, + {-1.628750,0.145433}, + {0.240864,-1.102978}, + {-1.270518,0.131556}, + {0.775651,-0.293631}, + {-0.240939,-1.275808}, + {0.223459,0.026144}, + {-0.742946,0.387688}, + {0.012050,-0.095382}, + {-0.342335,-0.145945}, + {-0.474094,-0.504738}, + {-0.202108,0.823645}, + {1.541322,-0.601652}, + {0.433840,-0.201410}, + {0.098066,0.014597}, + {-0.773606,-0.954702}, + {0.318751,-0.263447}, + {0.397180,-0.536216}, + {-1.235381,0.558129}, + {0.769004,-0.940717}, + {-0.235040,-0.468838}, + {-0.564520,-0.384393}, + {-0.005423,1.188288}, + {-0.985059,0.199438}, + {-0.189449,-0.528242}, + {-0.388491,-1.042069}, + {0.430704,-0.535256}, + {-0.591624,-0.007859}, + {0.592677,-0.737538}, + {-0.381401,-0.351623}, + {0.491357,-0.380019}, + {-0.483469,1.474160}, + {-0.125849,0.369908}, + {0.078613,-0.121651}, + {-0.353110,-0.717969}, + {0.872719,-0.606648}, + {-0.428882,0.846706}, + {0.175737,-0.707301}, + {0.420668,-0.670445}, + {0.181614,-0.047297}, + {0.921628,-0.508933}, + {0.592896,0.669205}, + {-0.330365,-0.380564}, + {0.650241,1.309658}, + {0.236892,-0.200631}, + {-1.285455,-1.072231}, + {0.258253,-0.458396}, + {0.580260,-0.058791}, + {-0.198798,0.297518}, + {-0.081461,1.105449}, + {-0.972283,0.637500}, + {-0.752549,-0.092627}, + {-0.787857,-1.415530}, + {1.506419,1.017351}, + {0.585529,0.375103}, + {0.637950,-0.354231}, + {0.542343,-0.978832}, + {-0.631439,0.380096}, + {0.387861,-0.406235}, + {-0.458367,0.221299}, + {0.982058,-1.106305}, + {0.250386,-0.654296}, + {0.176148,-0.799581}, + {-1.154337,0.577434}, + {0.743221,-0.164562}, + {0.147461,0.563461}, + {0.262860,-0.187851}, + {0.080463,-1.267225}, + {-0.842093,0.465417}, + {-1.150684,0.413909}, + {-0.697233,-0.258542}, + {1.008287,0.072083}, + {-0.788413,-0.051451}, + {-0.039100,0.376908}, + {0.314799,-0.081361}, + {-0.961472,-1.372276}, + {0.190966,-0.194039}, + {-0.415721,0.883995}, + {-0.001280,-1.035261}, + {-0.578034,0.253532}, + {0.718858,0.130658}, + {0.169064,-0.650773}, + {1.019305,0.470424}, + {-0.779577,-1.527926}, + {-1.397568,-0.116837}, + {0.151050,-0.025676}, + {-0.946740,-0.996213}, + {0.946883,0.374918}, + {0.120331,0.668101}, + {-0.158538,-0.647519}, + {1.011966,-0.291368}, + {-0.414841,0.899555}, + {-0.613882,-0.444467}, + {0.133879,-1.173510}, + {-0.713934,0.659541}, + {0.632421,-0.324801}, + {-0.929352,-0.825345}, + {-0.939329,-0.154669}, + {0.135173,0.015513}, + {1.221067,0.948110}, + {-0.389186,-0.513496}, + {0.296118,1.574228}, + {-0.296515,-0.024812}, + {1.003795,0.323161}, + {-0.435951,0.654561}, + {-0.490652,-0.418108}, + {0.752490,-0.105439}, + {-0.337112,0.345660}, + {-0.567309,1.101450}, + {0.959341,-1.200654}, + {0.928823,0.018668}, + {0.251045,-0.478851}, + {0.947048,-1.373055}, + {0.155776,-1.054964}, + {-0.380913,-0.118574}, + {0.042293,-0.476657}, + {0.200067,-0.039548}, + {-0.386089,-0.409839}, + {0.799759,-0.629364}, + {1.030871,-0.758805}, + {0.191216,-0.009835}, + {1.064252,0.456354}, + {-0.739292,0.213518}, + {-0.957471,0.766434}, + {1.289907,1.080144}, + {0.839509,-0.415417}, + {-0.126717,-0.220462}, + {-0.493196,0.136442}, + {-0.740415,-0.205084}, + {-0.451410,-0.124071}, + {0.590748,-1.389196}, + {1.048353,-0.143902}, + {1.382293,0.237621}, + {-0.817723,-1.004158}, + {0.025907,-0.953813}, + {-0.134011,0.870525}, + {-0.796710,0.808375}, + {1.063805,-0.573200}, + {0.608984,0.022332}, + {0.705208,1.520836}, + {-0.449768,0.364173}, + {-0.121032,-0.081536}, + {-0.222846,1.764236}, + {-2.317731,-0.242630}, + {0.003012,2.291217}, + {-0.731425,0.097707}, + {0.267980,0.021976}, + {-0.052570,-0.060891}, + {1.328129,1.291555}, + {-0.535779,-0.699093}, + {-0.321002,0.511984}, + {-0.118378,0.976733}, + {-0.483034,-0.250304}, + {-1.164027,0.342938}, + {0.152236,0.157467}, + {-0.219252,0.092701}, + {0.666655,-0.396142}, + {-0.662523,-0.345241}, + {0.362952,-0.167473}, + {-0.619415,0.020731}, + {1.119113,0.580225}, + {-1.234932,0.059510}, + {-0.979695,0.650857}, + {0.248844,0.475403}, + {0.152068,0.896504}, + {-0.025802,-0.188693}, + {-0.312432,0.713030}, + {0.318940,1.325683}, + {-1.388616,-0.069398}, + {0.563331,0.129599}, + {0.556248,0.372978}, + {-0.387270,-0.410561}, + {0.381157,0.174884}, + {0.205704,0.309849}, + {0.546306,1.544967}, + {-1.502442,0.568854}, + {-1.441137,-0.654132}, + {0.236177,0.806135}, + {-0.458600,-0.272605}, + {1.645150,-0.472139}, + {1.230134,-0.639721}, + {0.194120,-0.166522}, + {0.117438,-0.763945}, + {0.775048,-0.144419}, + {0.582774,-0.338508}, + {-0.451656,-0.308490}, + {-0.997512,0.221620}, + {0.518933,0.834596}, + {0.072709,0.691029}, + {-0.072488,-0.926413}, + {0.455952,1.521838}, + {0.452472,-1.063857}, + {0.509717,0.548683}, + {0.555750,-0.567077}, + {0.044489,0.772517}, + {-1.065137,1.047399}, + {-0.057517,0.426841}, + {-0.048828,-0.066677}, + {-0.090397,-1.373149}, + {0.299498,-1.074127}, + {0.508632,0.940645}, + {-0.075787,-0.866339}, + {1.162672,0.315994}, + {-0.398345,-0.537812}, + {-0.364908,-0.483622}, + {0.461687,0.527551}, + {-0.162621,0.230750}, + {1.072227,1.602365}, + {-0.866570,1.022571}, + {1.183777,0.054456}, + {-0.901192,-0.614876}, + {0.207856,-1.230461}, + {-0.218150,-0.421866}, + {-0.416722,0.161147}, + {0.434887,0.939654}, + {-0.141095,-0.011220}, + {-1.002557,-0.906183}, + {-0.336980,0.143558}, + {1.524689,-0.734075}, + {-1.673018,-0.011837}, + {-0.399086,0.379387}, + {0.022946,0.360077}, + {1.334352,-0.058248}, + {0.582118,0.104689}, + {-0.235530,-0.117603}, + {-0.685178,1.207036}, + {-0.505037,0.394430}, + {1.041913,-0.754037}, + {0.157290,-0.635867}, + {0.420463,0.059918}, + {-0.672484,-0.106277}, + {-0.342000,-0.887734}, + {0.037279,-1.312576}, + {0.196471,-0.690414}, + {0.628345,0.600837}, + {1.905626,0.213228}, + {0.002845,0.911432}, + {-0.273556,-0.817731}, + {-0.734045,-0.814594}, + {-0.278813,1.362944}, + {-0.490799,0.681619}, + {0.823281,0.924446}, + {0.382131,0.054887}, + {0.207567,0.197565}, + {-0.198756,-2.356373}, + {-0.146667,1.116811}, + {-1.225286,0.261605}, + {-1.600163,-0.215777}, + {0.188098,0.034549}, + {0.059091,0.203517}, + {0.539660,-0.144263}, + {0.559525,-0.197091}, + {-0.995693,0.479884}, + {-0.140240,0.304529}, + {-0.933852,1.657169}, + {-0.378402,0.686321}, + {-0.133646,-0.711732}, + {0.356331,0.032003}, + {0.167839,-1.094820}, + {0.495340,0.695848}, + {-0.324402,2.032407}, + {0.345523,-0.708782}, + {0.651872,1.141485}, + {-0.804705,0.431775}, + {0.073119,-0.202232}, + {-0.389707,-0.229234}, + {-0.264997,1.293800}, + {0.443424,0.482117}, + {0.331831,-1.277015}, + {-1.021430,-1.437496}, + {0.034502,-1.757843}, + {-0.222381,-0.925680}, + {0.029757,0.759219}, + {0.025235,0.100197}, + {0.204608,0.007049}, + {0.108738,-0.526643}, + {0.063573,-1.456564}, + {-0.344489,0.271249}, + {-0.605927,-1.137269}, + {-0.505740,-0.805053}, + {0.607392,0.236317}, + {-0.004607,0.308809}, + {0.148965,0.107110}, + {-0.116365,-1.014452}, + {0.054350,-0.377083}, + {1.753877,0.889535}, + {-1.155775,0.390584}, + {-0.077606,0.065922}, + {0.550225,0.202540}, + {1.695931,-1.527247}, + {0.112023,1.588761}, + {-0.397930,-0.627045}, + {-0.761887,0.846351}, + {-0.202916,0.218434}, + {0.028378,1.479997}, + {-0.484383,-0.042392}, + {-0.104811,0.833990}, + {-0.860957,0.498545}, + {1.074833,-0.971359}, + {0.286261,-0.574891}, + {0.415268,0.659014}, + {-0.123245,-0.459360}, + {0.596546,-0.406837}, + {1.301351,-0.741688}, + {0.925065,-0.414523}, + {0.443874,-0.870857}, + {0.416989,-0.113289}, + {0.117815,0.264440}, + {-0.569040,-0.606823}, + {-0.071240,0.617613}, + {1.082605,0.798463}, + {-0.300080,0.104141}, + {-0.190657,-0.215200}, + {-0.109927,-1.077320}, + {-0.865215,-0.747596}, + {0.026072,0.657730}, + {-0.602460,-0.765455}, + {-0.120662,-0.176552}, + {-0.020959,0.700393}, + {-0.532963,1.578641}, + {0.660906,-0.761852}, + {0.204630,0.671138}, + {1.378102,1.047063}, + {0.561706,0.261408}, + {-0.260495,0.707119}, + {0.122258,-1.309491}, + {0.348012,-0.204710}, + {0.590837,-0.752105}, + {1.641608,-0.346800}, + {-0.873873,0.418680}, + {-0.277803,0.003063}, + {1.257064,0.252787}, + {0.675850,0.403955}, + {-0.418536,0.803833}, + {-0.164660,0.169753}, + {0.850197,0.896004}, + {0.819463,-0.702546}, + {0.422036,0.045786}, + {0.453763,-0.574596}, + {-0.166787,-0.756407}, + {0.523826,0.600864}, + {-0.115417,0.177982}, + {-0.055416,0.683982}, + {-0.270215,0.340186}, + {0.195431,1.313902}, + {-0.443910,-0.182965}, + {-0.071393,-0.364572}, + {-0.707667,0.098065}, + {0.778016,-0.604885}, + {-0.229268,-0.776824}, + {-0.512173,-1.134451}, + {0.252034,0.380931}, + {-0.003544,0.019841}, + {-0.058631,0.109133}, + {-0.128306,-0.186545}, + {-0.293227,1.213620}, + {-0.779521,0.232263}, + {0.060435,0.186679}, + {0.990281,-0.912743}, + {-1.301892,0.111320}, + {-0.034738,-0.546598}, + {-0.566775,-0.661059}, + {-0.925700,-1.136595}, + {0.568009,-0.694776}, + {-0.857730,1.198007}, + {-0.037984,-0.146860}, + {-0.252787,-0.038902}, + {-0.568219,-0.219940}, + {0.303626,0.948180}, + {-0.038566,-0.531735}, + {-0.103828,-0.538015}, + {0.260650,-0.359314}, + {-0.327697,0.416712}, + {-1.116063,0.090095}, + {-1.293285,-0.837186}, + {-0.482711,-0.182843}, + {0.059427,0.514144}, + {0.566554,-0.141405}, + {-1.308599,0.222065}, + {0.119560,-0.441928}, + {-0.228916,-0.884073}, + {0.381615,-0.358756}, + {0.207154,1.337287}, + {-0.260877,-0.510744}, + {-0.240457,0.257392}, + {-0.147033,-0.616898}, + {0.252767,0.555545}, + {1.142911,0.946975}, + {-0.145901,-0.472828}, + {0.263985,0.594191}, + {0.275152,-0.360078}, + {-0.378772,0.233403}, + {0.060201,-1.295192}, + {0.711630,-0.480067}, + {-0.727486,-0.316626}, + {-1.024395,-0.820563}, + {0.229158,0.571038}, + {-0.195501,0.125831}, + {-0.134340,-0.536494}, + {-0.265465,-1.168649}, + {-1.253822,0.766807}, + {-0.908661,0.099254}, + {-0.303613,-0.289008}, + {-0.312701,-1.039648}, + {-0.560653,0.439198}, + {-0.592471,-0.580957}, + {-1.482518,0.450587}, + {1.765973,-0.280969}, + {-2.102702,0.355270}, + {0.543240,1.121485}, + {0.960646,0.575538}, + {-0.328846,-1.412944}, + {-0.158343,1.897285}, + {1.102149,-1.023840}, + {0.757352,-0.148155}, + {-0.543007,0.817050}, + {0.860867,0.780749}, + {-0.209900,-0.052244}, + {0.033218,0.744034}, + {0.846613,0.704981}, + {1.311109,-1.502775}, + {0.749682,-0.026687}, + {-0.670479,-0.906180}, + {-0.449276,-0.235328}, + {-1.029479,-0.800321}, + {-0.552364,0.362018}, + {0.571044,-0.294024}, + {0.303263,-0.977773}, + {-1.872468,0.396964}, + {-0.955788,-0.245566}, + {-0.953171,0.032204}, + {-0.140014,0.562421}, + {-0.238861,-1.034260}, + {0.016618,-0.778735}, + {0.641832,-1.328999}, + {-0.555008,0.001675}, + {0.177758,0.407400}, + {0.378772,-0.737130}, + {-0.947272,0.646346}, + {0.530960,0.259863}, + {-0.901216,-0.065121}, + {-0.322799,-1.319203}, + {1.054523,0.101474}, + {1.428788,-0.349216}, + {0.349194,1.127674}, + {-0.452166,-0.174773}, + {-1.118452,0.641579}, + {0.089249,-0.175187}, + {0.266167,0.234908}, + {0.087406,-0.807926}, + {-1.697266,0.627200}, + {-1.079827,-0.422557}, + {-0.372603,0.642134}, + {0.131330,0.888119}, + {0.792349,0.278774}, + {-0.246192,0.080661}, + {-0.353288,0.005239}, + {-0.134266,-0.384476}, + {-0.828652,0.066405}, + {-0.548264,-0.080022}, + {-0.120933,-0.875978}, + {0.903563,-0.743197}, + {-0.567596,-0.824528}, + {-0.206943,-0.203413}, + {0.232509,0.801755}, + {0.398309,-1.779415}, + {-0.186675,-0.863868}, + {1.305872,0.428744}, + {-1.716046,0.133683}, + {-0.450440,0.029653}, + {-0.506766,0.145657}, + {-0.967946,-0.295591}, + {0.257046,-0.199603}, + {0.490026,0.741449}, + {-0.482293,0.888983}, + {0.433545,0.021292}, + {0.395731,-0.152964}, + {-0.127526,0.629495}, + {0.948778,0.420625}, + {0.080788,0.918771}, + {-0.601768,-0.511523}, + {0.056685,-0.188264}, + {0.077067,-0.297327}, + {0.362971,-0.552698}, + {0.500014,-0.566048}, + {0.681482,0.264552}, + {-0.610054,-0.646848}, + {0.265600,0.541288}, + {0.026679,0.942537}, + {-1.762192,-0.407303}, + {-0.902743,-0.036230}, + {0.474591,-0.525614}, + {0.067020,-0.220233}, + {-0.618935,0.644017}, + {-0.247249,0.460334}, + {0.455640,-0.078102}, + {0.204557,0.186035}, + {-0.502683,-0.745109}, + {0.603414,2.160750}, + {0.949033,-0.309626}, + {0.143544,-0.468590}, + {-1.617425,-0.599765}, + {-0.338967,0.795837}, + {-0.575392,0.117471}, + {1.113309,0.741864}, + {0.491207,-1.773106}, + {-0.796479,-1.166586}, + {1.776758,-0.487393}, + {0.665706,-0.686534}, + {-0.733067,0.665936}, + {-1.191914,-0.753852}, + {-0.861479,-0.028041}, + {0.528864,0.362282}, + {0.372907,-0.759873}, + {-0.326107,-0.368006}, + {1.034767,-0.488401}, + {-0.020672,0.121155}, + {-0.763290,-0.252682}, + {-0.581453,0.977660}, + {-0.422611,0.734330}, + {0.410968,-0.697525}, + {0.256227,0.884536}, + {-0.271733,0.028247}, + {-0.553155,0.558822}, + {0.591687,0.681808}, + {-0.295964,-0.252254}, + {-0.861694,0.270864}, + {-0.212098,0.137016}, + {0.563568,0.156760}, + {-0.959209,-0.885105}, + {1.242799,-0.806484}, + {-1.749964,0.424195}, + {-0.811421,0.090595}, + {-1.270889,0.077082}, + {-0.507043,0.606896}, + {-0.573533,0.304032}, + {-0.073649,1.058108}, + {0.042070,-0.145220}, + {-0.668327,1.142738}, + {0.669062,-0.322129}, + {0.021137,-0.503492}, + {-0.193499,0.358862}, + {-0.508566,0.260507}, + {0.084811,-0.605995}, + {1.557960,-1.120053}, + {1.643320,-0.421612}, + {-0.480576,-0.823660}, + {0.231449,0.151004}, + {0.398016,0.209073}, + {0.045075,0.672618}, + {-0.008618,0.247177}, + {-1.053566,0.352608}, + {0.116426,1.141890}, + {0.792719,-0.667965}, + {0.331232,1.168582}, + {-0.196787,0.038326}, + {-1.109405,0.145585}, + {0.925101,-0.146615}, + {0.420151,-0.522343}, + {-0.006697,0.762735}, + {-0.508807,-0.069119}, + {0.925127,0.708615}, + {-0.110840,-0.048132}, + {-0.364342,0.472781}, + {-0.885346,1.332877}, + {-0.247386,1.012912}, + {-1.386080,0.289459}, + {0.225626,-1.466751}, + {-0.274328,-0.634428}, + {0.221469,0.108111}, + {-0.288359,0.596638}, + {0.406563,-1.159590}, + {-0.781803,0.171775}, + {-0.266993,1.093298}, + {0.188762,-0.887276}, + {-1.385732,0.271974}, + {-0.535123,-0.445177}, + {-0.405735,0.672560}, + {0.184163,0.241237}, + {0.218489,-0.629709}, + {-0.080616,0.521363}, + {-0.263647,-1.969656}, + {-0.000105,-1.140732}, + {0.345163,0.238108}, + {-0.724603,-0.973090}, + {0.166771,2.574467}, + {-0.442168,-0.073635}, + {0.087945,0.845359}, + {0.179795,-0.061662}, + {-0.317741,-0.537081}, + {-0.444731,-0.240390}, + {0.451603,-0.608631}, + {0.311307,-1.277915}, + {-1.138521,0.364751}, + {0.634037,-0.538308}, + {0.336605,-0.705948}, + {0.112277,0.892130}, + {-1.254259,0.041164}, + {-0.032781,1.144167}, + {-0.022324,0.649488}, + {-0.344520,-1.047174}, + {0.317010,-0.433506}, + {0.814095,-0.340343}, + {0.022872,0.077959}, + {0.249692,0.224696}, + {1.305443,0.613798}, + {-0.581707,0.071940}, + {-0.258272,-1.904325}, + {0.601451,-0.060804}, + {-0.118601,0.938334}, + {0.303851,0.393623}, + {0.736692,-0.211060}, + {-0.272122,-0.490145}, + {0.222637,-0.021387}, + {-0.311633,0.735060}, + {-0.199568,0.759139}, + {-1.013715,-0.780787}, + {-1.135842,-0.735749}, + {0.387608,0.235686}, + {0.083913,-0.711059}, + {0.163113,-0.233968}, + {0.180869,-1.193578}, + {-0.541856,0.511090}, + {0.718738,-0.971796}, + {0.918659,-0.884243}, + {0.235544,-1.235024}, + {0.685277,0.219639}, + {0.854647,-0.421738}, + {-0.028494,-0.255750}, + {-0.526021,-0.508404}, + {-0.492737,-0.753063}, + {0.462732,-0.859153}, + {-0.133400,0.676276}, + {0.450487,0.025040}, + {-0.561239,0.571686}, + {-0.642541,-0.609117}, + {1.075468,-0.169765}, + {0.574631,-0.097372}, + {0.338229,-0.024071}, + {-0.525317,0.025844}, + {0.487080,0.416213}, + {-1.007587,-0.270080}, + {0.343576,-1.099756}, + {-0.699170,0.043134}, + {-1.044511,0.757733}, + {-0.575676,-0.749373}, + {0.305846,-0.161683}, + {0.811672,0.079546}, + {-0.192293,0.436743}, + {-0.693445,-0.830657}, + {0.968077,1.051416}, + {-0.769386,-1.502744}, + {-0.255967,-1.803842}, + {-0.470924,-0.998421}, + {-0.824508,-1.845973}, + {0.045837,-0.401762}, + {0.360613,0.910411}, + {-0.337096,-0.237348}, + {-0.484460,0.113391}, + {0.305826,-0.010794}, + {0.147090,0.500318}, + {0.225740,-0.205529}, + {-1.264348,-0.329185}, + {-1.194871,-0.957492}, + {0.650858,-0.758139}, + {-1.280834,0.080681}, + {0.625022,-0.858635}, + {1.711320,0.093822}, + {-1.151505,0.996810}, + {1.790324,0.687198}, + {0.656644,1.704101}, + {-0.376292,-0.352113}, + {-0.126730,0.661884}, + {0.252564,-0.254102}, + {-0.661905,1.131852}, + {-0.368894,0.146481}, + {-0.798706,-1.083358}, + {-0.454165,1.240990}, + {-0.039095,-0.119828}, + {0.632847,-0.423721}, + {-0.380750,-0.363220}, + {-0.262391,-0.622616}, + {-0.859738,0.564480}, + {-0.750698,0.139456}, + {0.947125,0.430152}, + {0.677915,0.729907}, + {-0.239181,0.435498}, + {0.466691,-0.384876}, + {0.532654,-0.083163}, + {0.542034,0.653067}, + {0.208817,-0.330605}, + {-0.130409,0.034659}, + {-2.320815,-0.033099}, + {0.871427,0.273985}, + {0.194936,1.108967}, + {-0.285382,0.345010}, + {1.195251,1.573778}, + {0.713952,1.087552}, + {-0.415100,0.517458}, + {1.196398,0.021875}, + {0.802508,1.907587}, + {0.299614,-0.173952}, + {-0.608050,-0.581877}, + {0.977775,0.565290}, + {-0.192386,0.145355}, + {-0.665472,0.535100}, + {-0.151025,0.022383}, + {-0.250835,0.788190}, + {0.764801,0.467007}, + {0.298350,-1.467544}, + {-0.017556,-1.063610}, + {1.562445,-0.529165}, + {-0.520377,0.378911}, + {0.058748,1.831556}, + {-1.071124,0.601172}, + {-0.878448,-0.254107}, + {-0.154485,-0.985552}, + {-0.887400,0.327273}, + {-0.705357,-1.472086}, + {-0.740599,-0.067128}, + {0.711410,-1.034293}, + {-0.333938,0.630428}, + {1.278035,0.397289}, + {0.210056,-0.257437}, + {-0.585602,-0.005302}, + {0.203850,0.195065}, + {-1.060016,0.172660}, + {0.771525,-0.917467}, + {-0.723919,-0.412679}, + {0.232786,-0.197431}, + {1.194496,-0.581625}, + {1.340972,0.360705}, + {0.975104,0.097678}, + {1.133589,0.133129}, + {-0.298991,0.302132}, + {-0.784508,-0.922366}, + {0.322948,-0.119337}, + {0.110163,-0.145440}, + {1.574654,0.287009}, + {-0.189796,-0.018106}, + {-0.174887,-0.498104}, + {-0.080131,-0.165148}, + {-0.657113,0.318723}, + {-0.433595,0.705876}, + {0.857977,-0.158599}, + {-0.482497,0.036595}, + {-0.576244,-0.193566}, + {0.296959,-0.488391}, + {0.405842,-0.070404}, + {0.590507,0.533184}, + {0.587150,1.314828}, + {-0.211139,-1.292577}, + {-1.010083,-0.313106}, + {-0.863307,0.569579}, + {0.997553,-0.971260}, + {0.472407,1.098185}, + {-1.119245,-1.232905}, + {0.618522,1.245082}, + {-0.262763,-0.278210}, + {-0.105775,0.170132}, + {1.269669,-0.240590}, + {0.170976,0.601526}, + {0.188523,-0.015175}, + {-1.326050,1.007456}, + {-0.090769,0.040268}, + {0.418566,0.135730}, + {-0.182901,0.036998}, + {-0.333515,0.424837}, + {0.428316,0.383354}, + {-0.794054,-0.779979}, + {0.263906,0.439720}, + {0.162836,0.989119}, + {-0.071999,0.354381}, + {-0.291458,-0.020139}, + {0.449140,0.931136}, + {-0.694063,-0.246796}, + {-0.862572,0.091815}, + {0.028864,-0.095157}, + {0.724161,0.223737}, + {0.047003,1.150192}, + {-1.174734,-0.534178}, + {0.591572,-0.393347}, + {-0.219495,0.747091}, + {-0.136702,-0.163781}, + {-1.060912,0.069882}, + {0.029668,0.042101}, + {0.131750,0.093846}, + {0.871290,1.182361}, + {1.253828,0.378833}, + {1.186058,-1.172422}, + {-0.063604,0.553535}, + {1.002073,-0.209174}, + {0.444720,-0.729126}, + {-0.206357,0.032391}, + {-0.700775,-0.526320}, + {-0.737105,0.314376}, + {0.592877,0.135543}, + {-0.663426,0.630024}, + {1.260741,0.446146}, + {-0.705061,-1.146632}, + {0.428181,0.432223}, + {-0.213335,0.151536}, + {0.520582,0.924886}, + {0.577738,-0.057536}, + {-0.751351,1.533813}, + {-0.156074,0.562951}, + {0.046758,-0.037720}, + {-0.217340,0.168171}, + {0.241340,0.494540}, + {0.506104,-0.317633}, + {-0.655820,0.567359}, + {0.480759,-1.112311}, + {0.386474,-1.201118}, + {-1.449230,-0.518502}, + {-0.706211,0.406803}, + {-1.560129,-0.422456}, + {-0.077915,-0.197029}, + {-1.004173,-0.827722}, + {0.500350,1.832784}, + {1.097967,-0.612166}, + {-0.131651,0.635959}, + {-0.049192,0.986648}, + {0.349039,0.570957}, + {-0.171897,-0.308825}, + {-1.215161,-0.958771}, + {0.571949,0.628435}, + {0.729169,0.139248}, + {0.709536,0.696363}, + {0.097966,0.586873}, + {0.397300,0.024276}, + {0.236370,0.090813}, + {0.514880,0.171434}, + {0.793476,-0.258985}, + {-0.515502,-0.496673}, + {0.473964,0.129542}, + {-0.354065,-0.227705}, + {0.656057,0.340024}, + {-0.176111,0.646745}, + {0.688527,0.624363}, + {-0.533171,-0.007906}, + {-1.490044,-0.019393}, + {0.062044,0.744611}, + {0.830698,-0.386727}, + {-0.110515,0.456228}, + {1.417382,-0.674755}, + {0.459868,0.925687}, + {-0.836631,0.488354}, + {-0.019731,-0.693838}, + {1.289891,-0.627465}, + {0.055161,-0.256309}, + {0.468467,-0.780689}, + {0.717432,-0.802497}, + {-0.085141,-0.309899}, + {0.930132,0.556225}, + {0.405997,-0.271818}, + {-0.768176,-0.288646}, + {0.100647,0.538259}, + {0.907866,0.140152}, + {-0.368110,-0.402555}, + {-0.228629,-0.940188}, + {-0.569401,0.233255}, + {-1.022570,0.000617}, + {-0.324842,0.052006}, + {-0.269973,0.777187}, + {-0.035408,-0.139996}, + {0.473745,0.160440}, + {-1.354914,-0.289104}, + {-0.475516,-0.054631}, + {-0.041168,-0.128649}, + {0.427951,-0.409020}, + {1.363959,-0.447370}, + {-0.703075,1.016340}, + {-0.075306,-0.369703}, + {0.230086,-0.722273}, + {1.792416,-0.645114}, + {-0.093824,-0.242755}, + {-1.292877,-1.080529}, + {1.196220,0.155053}, + {0.173557,-0.177454}, + {-0.634131,-0.976788}, + {-0.379141,0.884947}, + {-0.536256,0.697163}, + {0.552100,-0.096580}, + {-0.696552,0.923878}, + {0.118458,0.110518}, + {-0.582715,-0.173407}, + {-0.956599,1.799081}, + {-0.843667,-0.384598}, + {0.764067,-0.865968}, + {1.000620,-0.160073}, + {0.953401,1.628974}, + {-0.888514,-0.891334}, + {-0.680686,0.247835}, + {-0.754843,0.258330}, + {-0.675973,0.394557}, + {-0.190745,0.303396}, + {-0.170964,1.405210}, + {0.926068,-0.197468}, + {0.672418,0.927374}, + {0.197025,-0.069306}, + {0.354251,-0.267216}, + {0.290035,-0.073490}, + {0.110947,0.354887}, + {0.443680,-0.098480}, + {-0.294424,0.866491}, + {-0.841475,-0.422685}, + {0.266968,0.062065}, + {1.515674,-0.060925}, + {0.176005,0.140636}, + {0.404577,-0.509459}, + {0.515552,0.061269}, + {0.853981,-0.954393}, + {1.019148,-1.441008}, + {0.163838,0.376008}, + {0.288430,0.184545}, + {0.067683,1.030477}, + {-0.499583,0.343582}, + {0.009995,-0.042159}, + {-0.621239,1.076062}, + {-0.939004,0.349109}, + {0.798145,0.400775}, + {0.435127,0.287123}, + {0.202232,-0.459503}, + {-0.115217,-0.562763}, + {0.415476,-0.178029}, + {1.158389,1.432155}, + {0.936251,-0.718354}, + {0.848607,-0.413887}, + {0.391567,-0.379341}, + {-0.299960,0.021999}, + {-0.500304,-0.145804}, + {0.809236,0.749736}, + {0.827454,0.361110}, + {0.433617,-1.060374}, + {0.897989,0.043762}, + {-1.028161,0.704788}, + {-0.194029,-0.081497}, + {0.651930,-0.779738}, + {-0.210318,0.138924}, + {-0.224011,-0.719656}, + {-0.690712,-0.403295}, + {-0.421069,0.703604}, + {-0.492768,-0.402452}, + {-0.811297,0.602505}, + {-1.785654,0.521719}, + {0.587757,-0.400209}, + {0.043330,-0.684632}, + {0.384072,1.455485}, + {1.259714,0.400161}, + {0.761448,0.079450}, + {-0.053741,-0.471277}, + {0.412257,0.180934}, + {0.519025,-0.912317}, + {1.338382,-1.089903}, + {-0.120862,1.387350}, + {0.046935,1.216046}, + {0.078641,0.418476}, + {-0.826729,-0.603339}, + {-1.169826,-0.905686}, + {-0.319044,-0.337864}, + {-0.000338,-0.036139}, + {-0.070890,0.167189}, + {-0.364559,-0.483024}, + {-0.845227,0.663173}, + {-0.358604,0.991618}, + {-0.544255,0.196842}, + {1.734390,0.066961}, + {0.304854,-0.438655}, + {0.570055,1.368692}, + {0.680056,0.502049}, + {1.473820,-0.240434}, + {0.143943,0.150471}, + {-0.601375,1.462794}, + {-0.130329,0.130809}, + {-0.816240,-0.613083}, + {-0.363673,0.906229}, + {-0.137845,0.310958}, + {0.028385,0.813332}, + {0.797503,-1.224658}, + {0.193431,-0.529715}, + {-0.088177,-0.203006}, + {-0.475714,-0.792887}, + {0.226096,-0.128947}, + {0.184089,-0.068373}, + {0.887181,0.224031}, + {-0.216778,0.056027}, + {-1.168135,-0.932106}, + {0.564475,-0.495475}, + {-0.673622,1.542024}, + {-0.610914,-0.581747}, + {-0.089544,-0.439327}, + {0.714516,-0.660308}, + {1.223961,-0.522664}, + {0.661751,-0.105839}, + {-0.630532,-0.064537}, + {-1.161529,1.098738}, + {-0.427223,-0.021232}, + {-0.026751,0.416435}, + {0.362154,-0.386305}, + {0.208456,0.633020}, + {0.045405,1.111140}, + {1.425449,-1.110883}, + {0.707444,0.651275}, + {-0.500077,0.697821}, + {0.203707,0.456913}, + {-0.853159,1.120343}, + {0.834138,-1.031290}, + {0.617247,-0.697880}, + {-0.043978,-0.182348}, + {0.543946,-0.336939}, + {-0.357450,-0.588382}, + {0.063896,0.467717}, + {-1.005923,0.946648}, + {0.848093,0.260463}, + {-0.603198,0.472919}, + {0.824311,1.081034}, + {-1.794170,-0.412169}, + {-1.188588,-0.303771}, + {-0.599378,-0.512405}, + {-0.764410,0.839242}, + {-1.630732,-1.206763}, + {0.475393,1.662433}, + {0.287510,0.340842}, + {-0.361590,-0.457253}, + {0.259458,0.427517}, + {-0.962593,-0.157040}, + {-1.043433,0.709428}, + {-0.124816,0.350705}, + {-1.784117,-0.277703}, + {-0.816757,0.881473}, + {1.130899,0.072276}, + {0.508338,-0.545349}, + {0.248984,-1.013667}, + {0.303921,-0.296289}, + {0.907752,-0.325327}, + {-0.706874,-0.148790}, + {-1.511246,-1.230174}, + {-0.034105,1.186995}, + {0.791315,-0.061800}, + {-0.115356,-0.013607}, + {0.614068,-0.643597}, + {-1.434752,-0.837895}, + {-0.262646,-0.486002}, + {0.425083,-1.154407}, + {-0.888865,0.643359}, + {0.354696,-0.522025}, + {0.516178,-0.483834}, + {-0.383349,-0.393546}, + {0.627820,1.304975}, + {-1.536539,0.297887}, + {0.522986,-0.438700}, + {0.570505,0.136875}, + {1.225639,0.726921}, + {0.046321,0.004620}, + {-0.978947,0.165502}, + {0.673976,0.355861}, + {-0.565507,0.154310}, + {0.184185,0.636983}, + {0.669884,0.339459}, + {-0.272178,0.155650}, + {0.946849,-0.018712}, + {1.554380,-0.573908}, + {-1.650752,-0.797470}, + {0.149065,-0.449614}, + {0.000874,0.687892}, + {-0.496167,-0.407806}, + {-0.311445,-0.715590}, + {-0.129442,0.092998}, + {1.038462,1.427624}, + {0.969798,-0.841165}, + {-0.638606,0.246169}, + {-0.007508,-0.280498}, + {0.113839,-0.195910}, + {1.042036,0.726260}, + {-0.200482,0.235256}, + {-0.406369,-0.249998}, + {0.286145,-1.006218}, + {0.210969,0.512718}, + {-0.859586,-0.839554}, + {0.139226,0.146909}, + {0.695305,-0.442922}, + {-0.681479,0.678879}, + {0.573686,0.732063}, + {0.409687,-0.487551}, + {-0.740833,0.407906}, + {-0.627461,-0.094149}, + {0.717096,-0.324215}, + {-1.040547,0.209955}, + {0.390960,0.716126}, + {0.087138,0.229283}, + {-0.453888,-0.488261}, + {-0.309646,-0.346751}, + {-0.129650,0.732543}, + {-0.170771,0.525447}, + {0.514311,0.262524}, + {0.791326,-1.098801}, + {0.026081,-0.432545}, + {0.695147,0.619485}, + {-0.160913,-0.305334}, + {-0.388194,0.428275}, + {-0.857131,0.383539}, + {-0.127692,-0.568071}, + {-0.153925,-1.205867}, + {-0.131234,-0.794515}, + {0.509942,0.661891}, + {-0.411283,-0.325822}, + {-0.557037,0.549357}, + {0.276122,-0.018714}, + {-0.459507,0.586174}, + {0.946074,0.411524}, + {-0.517742,-0.440520}, + {0.518675,-0.707372}, + {0.346846,-0.672055}, + {0.552754,1.465565}, + {-0.084615,0.414643}, + {0.452343,-0.941522}, + {0.346356,0.291833}, + {-0.280410,1.026607}, + {0.938494,-0.769506}, + {-0.559070,-0.210613}, + {-1.005965,1.379425}, + {1.003043,-1.111699}, + {-0.675980,-0.769700}, + {0.000281,1.375752}, + {0.304516,-1.251364}, + {-0.821937,-0.484556}, + {-0.859102,-1.335838}, + {0.058085,-0.346139}, + {0.003970,-0.523620}, + {-0.142542,0.689615}, + {-0.916600,0.902236}, + {0.486899,0.086527}, + {-0.428760,0.270439}, + {0.358628,-0.635933}, + {-0.564581,-0.585300}, + {0.873809,0.369030}, + {-0.178501,0.513622}, + {1.498494,0.604123}, + {-0.119000,0.391230}, + {-0.893021,-0.149327}, + {-1.342297,-1.126706}, + {0.373536,0.861215}, + {0.256534,1.148103}, + {0.899039,-0.560694}, + {0.054489,0.862495}, + {-0.293322,-0.433164}, + {-0.232534,-0.152667}, + {0.571215,-0.491188}, + {0.200082,1.008588}, + {-0.535039,-0.070187}, + {-0.374009,-0.006474}, + {0.968621,-1.673820}, + {-0.250826,-0.592453}, + {-0.768210,-1.143156}, + {0.506240,0.456245}, + {0.517084,-0.666774}, + {0.212136,-0.465469}, + {1.318910,-0.330234}, + {0.021991,0.039870}, + {-0.393252,0.086292}, + {0.707893,-0.244737}, + {0.499235,-0.784132}, + {0.007350,-0.371172}, + {1.522063,0.906834}, + {-0.242588,-1.852291}, + {0.221807,-0.033887}, + {0.323357,0.072972}, + {0.960496,0.074214}, + {0.760485,-0.415787}, + {1.011444,-1.408695}, + {-0.765112,0.167737}, + {0.051886,0.271979}, + {-0.082595,0.361773}, + {0.870305,0.283143}, + {0.225699,0.608936}, + {-1.312811,-0.998105}, + {-0.653488,0.900398}, + {-1.438955,0.084821}, + {-0.412878,-0.723466}, + {-0.272037,0.361482}, + {-0.694861,0.082223}, + {0.850862,1.180117}, + {-0.283139,0.336570}, + {-0.271481,0.069012}, + {-0.029517,-1.101000}, + {0.634905,-0.821237}, + {0.149412,-0.139163}, + {-0.484147,0.270160}, + {-0.761418,0.079378}, + {-0.072847,0.937568}, + {-1.307853,-1.009845}, + {0.297282,0.648821}, + {-0.091781,-1.985271}, + {-0.606219,0.151353}, + {-0.429607,-0.025052}, + {-0.332890,1.175599}, + {-1.118603,0.141680}, + {-0.097394,-0.858219}, + {0.016748,0.173787}, + {0.499711,0.334283}, + {0.294804,-0.100448}, + {-0.226681,1.320937}, + {0.445101,-0.020208}, + {0.298761,0.661325}, + {0.366419,0.625208}, + {-0.610404,-0.402482}, + {-0.196988,-1.143042}, + {-0.140385,-0.419017}, + {0.112807,0.888080}, + {0.266033,0.057014}, + {-0.728926,-0.934920}, + {-0.140320,-0.094250}, + {1.177336,-0.396966}, + {0.420952,0.653529}, + {0.796815,0.416470}, + {0.811086,-0.565463}, + {0.367195,0.333449}, + {-0.400751,1.975824}, + {1.216133,-0.533538}, + {-0.061920,-0.453391}, + {-0.711951,-0.449488}, + {-0.102566,-0.455585}, + {0.285088,-0.802786}, + {0.808552,-0.322926}, + {-0.602289,0.632072}, + {-0.661576,-1.758596}, + {-0.146488,-0.548057}, + {-0.206403,-0.017511}, + {-0.450221,-1.498859}, + {0.932314,-1.134894}, + {0.656476,0.145769}, + {0.235734,0.094820}, + {-0.722074,0.001788}, + {-0.957129,0.829923}, + {-1.219129,-0.094515}, + {0.433577,0.505638}, + {0.667379,-0.080276}, + {-0.481288,-0.154287}, + {0.832150,0.696951}, + {0.845959,0.070575}, + {0.511181,-0.543340}, + {1.404294,0.382848}, + {0.652795,-0.156181}, + {-0.114089,-0.125219}, + {0.105672,-0.192649}, + {1.581463,-0.060738}, + {1.179013,0.318857}, + {-0.514448,-0.186117}, + {-0.004286,0.388816}, + {0.553462,1.141917}, + {-0.108260,-0.709488}, + {0.366715,0.522898}, + {1.011547,0.255626}, + {0.510127,-0.556431}, + {1.387465,-1.491813}, + {-0.030602,0.643039}, + {0.252861,0.370345}, + {0.158032,-0.485250}, + {1.505481,-0.401738}, + {-0.425678,1.475448}, + {0.558642,0.266556}, + {-0.761068,-0.757845}, + {-0.236187,0.096478}, + {-0.299872,-1.335299}, + {-1.133420,0.013509}, + {0.020291,0.311569}, + {0.852593,-0.665722}, + {-0.523899,0.543296}, + {-0.258387,0.397797}, + {-1.620860,0.323925}, + {1.104585,-1.383714}, + {0.683798,0.260786}, + {-1.928301,-0.180178}, + {-1.028854,0.442835}, + {0.657349,-0.494352}, + {-0.277212,0.670959}, + {-0.180849,0.531330}, + {-1.227284,-0.792597}, + {0.563598,-0.076574}, + {-0.437456,0.229217}, + {0.929340,0.015725}, + {0.074666,0.424629}, + {0.534245,-0.350823}, + {0.389638,-0.082153}, + {0.500066,-0.103981}, + {0.517706,0.482821}, + {-0.748255,1.069502}, + {0.473974,-0.018833}, + {0.395953,0.000067}, + {0.154909,0.296848}, + {0.200809,0.287738}, + {-0.607075,-0.544885}, + {-0.267287,0.616905}, + {-0.323802,1.280877}, + {0.255228,0.082953}, + {0.888876,-0.780725}, + {-1.507838,-0.628624}, + {0.117847,0.741004}, + {0.951439,2.158240}, + {0.255605,-0.694650}, + {0.403436,-0.019320}, + {0.028617,-1.122894}, + {-0.559034,-0.279798}, + {-0.151086,1.482814}, + {0.401004,-1.215030}, + {-0.010857,-0.722506}, + {-0.779211,0.186412}, + {0.839532,0.388371}, + {-0.519503,-0.769165}, + {0.886356,-0.068777}, + {-0.666874,0.232912}, + {-0.769333,0.407110}, + {-0.156172,0.626609}, + {-0.845403,0.246838}, + {-0.921500,-1.513649}, + {-0.659432,-0.352143}, + {-0.456287,0.822831}, + {-0.264057,0.594756}, + {-0.381242,0.749825}, + {0.584222,-0.010185}, + {0.717621,0.407810}, + {0.126997,0.610555}, + {0.121083,-0.601804}, + {0.338280,-1.296916}, + {-0.998988,0.202698}, + {0.271413,0.241189}, + {-0.660860,-0.922695}, + {0.217074,0.091244}, + {-0.829182,-0.173802}, + {-1.686936,0.133783}, + {0.085111,-1.036699}, + {-0.835207,-0.547288}, + {-1.001460,0.163306}, + {-0.009840,-0.897352}, + {-0.221570,0.248621}, + {-0.104666,-0.544456}, + {0.492826,1.224533}, + {-0.303816,0.203433}, + {-0.035890,-0.396120}, + {-0.911609,0.154966}, + {-0.477369,-0.149520}, + {0.829666,0.383750}, + {0.288714,-0.400195}, + {0.825822,1.060236}, + {-0.565369,0.570078}, + {0.725772,0.524669}, + {-1.427359,0.510741}, + {0.185095,0.075540}, + {0.123475,-0.291902}, + {0.273887,-0.125613}, + {-0.173428,1.043319}, + {0.321986,0.197724}, + {-0.846527,-0.708152}, + {0.008510,-0.342922}, + {0.627415,-0.580544}, + {0.845050,1.241589}, + {0.585281,0.461177}, + {0.359324,-0.420843}, + {0.049152,1.106094}, + {0.581734,-0.166265}, + {0.003368,1.019929}, + {1.025792,-0.545836}, + {-0.566680,0.838736}, + {0.217046,-0.554830}, + {0.746989,0.330831}, + {-0.477775,-1.838477}, + {1.209384,0.537204}, + {0.084745,-0.402040}, + {0.453664,0.663259}, + {-0.949609,0.481791}, + {-1.018870,0.244091}, + {-0.100135,-0.408291}, + {0.145723,-0.390015}, + {0.591639,-0.187299}, + {-0.072565,0.022234}, + {-0.090558,0.900594}, + {-0.115991,-1.076001}, + {-0.047715,0.945083}, + {-0.153139,1.232195}, + {0.395757,-0.137489}, + {0.500312,-0.165208}, + {-0.446434,-1.255448}, + {0.744826,0.719971}, + {0.101905,0.317928}, + {-1.113815,1.181345}, + {-0.826383,-0.342046}, + {0.698280,-0.256223}, + {-0.376007,0.253217}, + {-0.351381,-0.465508}, + {0.347951,0.252016}, + {1.060703,-0.456476}, + {-0.487386,1.010946}, + {0.082913,1.363434}, + {0.144076,0.505970}, + {0.788440,0.349740}, + {0.359451,0.412744}, + {-0.133783,0.371278}, + {0.132375,0.736016}, + {0.675589,-0.281074}, + {1.388233,0.041104}, + {-0.111974,-0.788585}, + {-0.719106,0.429423}, + {0.285667,0.906691}, + {-0.412522,-0.263860}, + {-0.379611,-1.850579}, + {-0.882381,0.633164}, + {-0.350683,0.326832}, + {0.113319,0.299109}, + {0.030724,-0.533961}, + {-0.229546,1.599082}, + {0.791774,0.219618}, + {-0.083769,-0.825250}, + {-0.250508,0.384164}, + {1.622536,0.627566}, + {0.269926,1.457477}, + {0.027500,0.077387}, + {-0.040952,-0.869704}, + {0.249097,0.799744}, + {-0.855749,-1.207818}, + {0.031174,0.232988}, + {0.470634,-0.176486}, + {-1.322606,-0.574727}, + {0.618473,-1.051757}, + {0.044093,-1.194452}, + {-0.856825,-0.363124}, + {-0.740040,0.491909}, + {1.049228,-0.383126}, + {0.269759,-0.756658}, + {0.411827,-0.187708}, + {-0.021801,-0.730890}, + {-0.338874,-0.436049}, + {0.439729,-0.211741}, + {-0.464913,0.405662}, + {0.813909,1.691059}, + {-0.432949,-0.328759}, + {0.016182,0.617470}, + {-0.000084,-0.630506}, + {1.013115,0.113926}, + {1.045430,-0.431612}, + {-0.149045,-0.540305}, + {-0.168907,1.023595}, + {-0.681722,-0.870885}, + {0.148709,-0.519793}, + {0.083637,-0.233137}, + {-0.006738,-0.358652}, + {-1.132096,-0.196676}, + {0.755618,-0.630740}, + {1.172062,0.331256}, + {-0.074557,-1.505289}, + {1.261753,-0.254490}, + {0.432557,-0.043824}, + {0.233409,-0.174214}, + {0.046213,0.259837}, + {-0.956389,0.034619}, + {0.336500,0.085573}, + {1.029807,-1.168944}, + {0.148733,-0.666186}, + {0.504364,0.591615}, + {-0.244863,-0.431764}, + {-1.287166,-0.010764}, + {0.206851,-1.199483}, + {-1.130227,-0.926562}, + {0.045319,-0.640907}, + {1.744857,0.365060}, + {-0.337659,0.254251}, + {-1.241628,0.474563}, + {-0.098000,0.043348}, + {0.135789,0.720002}, + {0.079954,-0.567468}, + {0.209679,0.580221}, + {0.129076,-0.638995}, + {-0.259201,0.098160}, + {0.684000,0.742712}, + {-1.058322,1.121174}, + {-1.133869,-0.077823}, + {-0.786057,-0.192047}, + {0.043596,-0.730099}, + {-0.468971,-0.508530}, + {-0.166478,0.964301}, + {-0.421994,0.534392}, + {0.801013,0.327796}, + {0.626465,-0.857809}, + {-0.316640,0.963254}, + {-0.686444,-0.349580}, + {-0.411887,0.006307}, + {-0.044218,-0.684096}, + {1.448337,-0.256645}, + {0.224336,-0.436483}, + {0.025337,-0.347815}, + {-0.407366,0.419951}, + {-0.132820,0.348857}, + {0.371735,-0.864264}, + {0.086483,-0.338426}, + {0.585107,0.270821}, + {0.326869,0.548646}, + {-0.326146,-0.463299}, + {1.143470,-0.087656}, + {-0.098858,1.246934}, + {-0.036904,0.191940}, + {0.287535,-0.291944}, + {0.369159,0.063018}, + {-1.317075,-0.193187}, + {0.378189,0.176271}, + {0.856049,-0.716794}, + {0.077633,0.519224}, + {-0.699016,-0.029019}, + {0.295033,0.961106}, + {0.197367,0.762655}, + {0.114262,-0.106428}, + {0.589365,-0.677044}, + {-0.241511,0.228210}, + {-0.430454,-0.895877}, + {0.702252,0.370365}, + {1.742418,-0.318825}, + {0.735371,-0.917391}, + {0.798335,-0.370615}, + {-0.537492,0.369018}, + {1.236422,0.065891}, + {-0.266399,-0.351783}, + {0.423548,0.165331}, + {0.077228,0.536433}, + {-0.174825,0.148350}, + {0.199017,-0.554067}, + {-0.965766,-0.545608}, + {0.554513,0.053499}, + {0.037865,0.091226}, + {0.586746,0.403764}, + {1.063461,-0.711465}, + {0.627927,0.180048}, + {1.849318,0.366474}, + {-0.787943,-0.066363}, + {-0.225401,0.838693}, + {0.780419,1.099950}, + {-0.583530,-0.334410}, + {0.435296,-0.110910}, + {-0.395316,0.522476}, + {-0.296867,1.030867}, + {0.180194,0.365723}, + {-0.565612,0.105022}, + {-0.071050,-0.637618}, + {1.036443,1.254893}, + {-0.357016,0.150407}, + {-0.105283,0.193076}, + {0.137034,0.727374}, + {0.395267,-0.224436}, + {-0.148716,0.241524}, + {-0.185222,0.387931}, + {1.193605,-0.847551}, + {0.250426,-0.707717}, + {0.140128,-0.294992}, + {0.023456,0.023879}, + {0.557191,-1.088329}, + {-0.705496,-0.351205}, + {0.706976,1.287748}, + {0.207298,-0.734820}, + {0.124706,0.189566}, + {0.797376,1.215020}, + {-0.329404,-0.576281}, + {0.648951,0.195529}, + {-0.597548,0.519029}, + {0.212921,0.436097}, + {-0.330959,0.311842}, + {-2.163917,-0.881882}, + {-1.070369,0.664018}, + {0.473269,-0.101973}, + {0.378465,-0.822488}, + {1.361181,0.418143}, + {-1.012859,-0.712103}, + {0.870152,-1.346827}, + {0.653007,-0.617410}, + {0.497337,-0.775725}, + {-0.260237,0.259267}, + {-0.743430,-0.591395}, + {-0.674841,-0.191339}, + {-0.584851,-0.214106}, + {0.225244,0.160024}, + {1.161423,0.256300}, + {-1.640086,-0.242275}, + {-0.180871,-0.679693}, + {-1.243241,-0.228350}, + {0.599251,0.947940}, + {1.146590,-0.156590}, + {-0.647330,0.051065}, + {1.949584,-0.583944}, + {-0.242692,1.238130}, + {0.039443,0.740763}, + {-1.458523,0.089037}, + {-0.153975,-0.381741}, + {-0.317357,-0.610750}, + {0.237125,1.346517}, + {-0.201768,0.320696}, + {0.606654,1.023548}, + {0.810015,0.801355}, + {-0.870015,0.018496}, + {0.005406,0.866319}, + {-0.020676,-0.167982}, + {-0.341657,0.564725}, + {-0.720214,-0.704252}, + {0.656031,-0.457047}, + {0.070486,0.044186}, + {-0.170715,-0.739585}, + {0.184302,-1.788002}, + {0.715592,-0.376628}, + {-0.363081,-0.119088}, + {-0.100914,0.119614}, + {0.005834,-0.268860}, + {-0.129771,0.331506}, + {0.143287,-0.198036}, + {-0.304611,0.217426}, + {-0.594381,-0.825000}, + {-0.365556,-0.258829}, + {-0.214172,1.162243}, + {-1.194364,0.810341}, + {-0.325733,-0.570507}, + {-0.614001,-0.663556}, + {0.118437,-0.291858}, + {0.502611,-0.601088}, + {0.659081,-0.217369}, + {-0.446278,-0.786148}, + {0.022241,0.272441}, + {0.590431,0.909812}, + {-0.505353,0.055519}, + {-1.032100,-0.102485}, + {0.514653,0.094284}, + {0.017452,-0.117900}, + {-0.434090,-0.360114}, + {-0.795938,0.951701}, + {1.526127,-0.592844}, + {-0.389825,-0.453072}, + {0.384166,-1.012017}, + {1.182901,-0.350927}, + {-0.650756,-0.215167}, + {-0.920064,0.382095}, + {0.325262,0.053581}, + {-0.367365,-0.250609}, + {-0.792805,-0.159176}, + {0.364886,1.149926}, + {-0.952999,-0.523706}, + {-0.590878,-0.928414}, + {1.302134,0.020920}, + {0.271231,1.409444}, + {-0.421610,0.925520}, + {1.193167,0.706521}, + {-0.333416,0.336865}, + {0.018979,0.278195}, + {0.454613,0.518481}, + {-0.039562,-0.760878}, + {0.452849,0.034856}, + {-0.363828,-0.532211}, + {-0.120648,0.354305}, + {0.124415,0.897220}, + {0.079466,-0.085179}, + {0.550458,0.796151}, + {0.118218,0.662074}, + {-0.355235,-0.199056}, + {0.436312,0.191719}, + {1.566220,-0.116118}, + {-0.836157,-0.768313}, + {1.586808,0.178922}, + {-0.280443,-0.468900}, + {-0.326042,0.010218}, + {0.566632,1.593287}, + {1.012295,-1.739928}, + {-0.076488,0.044391}, + {0.483599,-0.125041}, + {-1.492059,0.640508}, + {-0.678092,-0.179653}, + {-0.373386,-0.340247}, + {-0.832028,0.600061}, + {-0.567324,-1.027965}, + {-0.083357,0.199339}, + {-0.734433,0.929912}, + {0.570454,0.573202}, + {-0.365270,0.716633}, + {-0.417190,-0.754130}, + {-0.854980,-0.194668}, + {-0.798654,-0.640999}, + {-0.386871,0.854369}, + {-0.317394,-0.378946}, + {0.845760,-0.762026}, + {-0.238503,0.628650}, + {-0.476581,-1.193935}, + {0.372842,0.363358}, + {1.929276,0.425483}, + {0.560945,-0.892123}, + {0.832559,1.026749}, + {0.332159,-0.899940}, + {0.729769,-0.406694}, + {1.773252,-1.453081}, + {0.014471,0.518545}, + {-0.032728,-0.153441}, + {-0.418525,-0.263385}, + {1.483183,1.053228}, + {-1.108048,-0.126405}, + {-0.882071,0.557002}, + {-0.299469,0.621888}, + {-1.390889,0.791123}, + {0.087246,-0.444939}, + {-0.971593,0.855966}, + {0.288585,-1.387271}, + {-0.019311,0.732536}, + {0.575029,-0.900371}, + {-0.849454,-0.021176}, + {0.102055,0.741000}, + {0.639938,0.250506}, + {0.031515,-1.559311}, + {0.184749,0.007297}, + {-0.615292,0.150555}, + {-1.045878,0.504486}, + {0.648174,0.248709}, + {-1.923251,-0.525706}, + {-0.139883,-0.496519}, + {-0.273595,0.733709}, + {-0.554049,-0.638829}, + {-0.388154,-0.721417}, + {0.302342,-0.922345}, + {0.301997,0.247964}, + {0.783229,-0.118560}, + {0.015568,-1.688273}, + {-0.203951,-0.271846}, + {-0.464304,-0.803130}, + {0.788053,0.525790}, + {-0.310437,0.810294}, + {0.734484,-0.122955}, + {0.078820,-0.755273}, + {0.689406,0.380790}, + {-0.879125,-0.800241}, + {0.916797,-0.158671}, + {-0.955580,0.370290}, + {1.053886,0.183747}, + {-1.024297,0.502801}, + {0.821289,-0.323075}, + {-0.197416,-0.199129}, + {0.128673,-0.204273}, + {-0.047906,0.532305}, + {-0.332497,-0.459762}, + {-0.921215,0.010891}, + {-1.187693,0.237371}, + {-0.907113,-1.114225}, + {-0.391416,0.334680}, + {0.484839,-0.022006}, + {0.279699,-0.155898}, + {0.232580,0.635441}, + {0.442647,-0.512038}, + {0.457949,-0.744347}, + {-0.420994,-0.605339}, + {0.607157,1.329146}, + {-0.274663,0.330222}, + {-0.146928,0.998094}, + {0.634872,-0.085303}, + {0.038862,0.137135}, + {0.874375,0.481656}, + {-0.078049,0.930253}, + {0.211922,0.365963}, + {-0.057426,-1.256802}, + {-0.249915,0.102113}, + {0.074635,0.926036}, + {-0.919523,0.156604}, + {0.321808,-0.463000}, + {-0.336447,0.591209}, + {0.069922,0.186182}, + {-0.098125,0.286970}, + {-0.945924,0.199885}, + {1.251790,-0.588337}, + {-0.103392,-0.063531}, + {-1.495706,0.300232}, + {0.161476,-0.532461}, + {-0.229976,0.007762}, + {0.102294,0.640865}, + {-0.046165,-0.345694}, + {0.152871,-0.139371}, + {-0.621642,0.466272}, + {0.502189,-0.429932}, + {0.381534,0.850587}, + {1.047882,0.364581}, + {0.166650,-0.533360}, + {-0.147243,0.870267}, + {0.264328,-0.088269}, + {0.241229,0.219450}, + {-0.674579,0.991554}, + {-0.952101,0.726952}, + {0.000481,-0.050198}, + {-0.237754,0.641076}, + {-0.058228,-0.524298}, + {1.097294,-0.979438}, + {-1.219292,-0.095890}, + {0.265504,-0.684968}, + {-0.779660,0.555899}, + {0.571050,-0.072841}, + {0.669225,1.701574}, + {-1.191487,0.111178}, + {0.909199,0.891876}, + {-0.395837,-0.258702}, + {0.093876,-0.469630}, + {-0.423132,0.835933}, + {-0.273781,-0.809838}, + {0.379980,0.848947}, + {1.264064,-0.035597}, + {-0.801897,0.295423}, + {0.817880,-0.017036}, + {-0.105681,0.855247}, + {0.486284,-0.619853}, + {-0.032531,0.489774}, + {0.211010,0.529908}, + {0.661884,2.635604}, + {0.539633,1.054015}, + {-0.523203,0.144841}, + {0.642130,-0.062279}, + {0.773169,-0.295494}, + {1.236025,0.138371}, + {-0.902266,-0.091117}, + {0.126149,1.096640}, + {-0.361577,0.548790}, + {0.082879,-0.449861}, + {-0.084813,1.095634}, + {1.546048,1.536377}, + {0.856924,0.635732}, + {0.834506,0.824424}, + {-0.021495,-0.526435}, + {-0.838356,0.515902}, + {-0.473372,-0.161548}, + {-0.778314,1.424876}, + {-0.230595,-0.748969}, + {-1.592887,-0.737746}, + {-0.938554,-0.530306}, + {-1.572545,-0.791394}, + {0.435546,-0.376083}, + {0.525145,0.213393}, + {0.367887,-1.044275}, + {-0.719915,0.061255}, + {0.304958,-0.204748}, + {1.210495,-0.112141}, + {-0.086723,0.129535}, + {-1.281467,0.522155}, + {-0.333647,-0.274983}, + {-0.554049,0.413201}, + {0.753145,0.891878}, + {0.274075,-0.707382}, + {-0.062669,0.788726}, + {0.466273,-0.501215}, + {0.024895,0.354051}, + {0.798756,0.455852}, + {-0.020206,-0.029112}, + {0.339560,1.851831}, + {0.152438,0.738243}, + {0.183936,-0.781268}, + {-0.103182,0.713654}, + {0.875376,-0.483562}, + {0.015320,-0.460793}, + {0.060661,-0.643523}, + {-2.264353,0.105116}, + {-0.789343,0.615718}, + {-0.243310,0.060137}, + {1.699891,-0.863147}, + {-0.512188,-0.107884}, + {0.715462,-0.746962}, + {-0.168059,0.396399}, + {-1.855221,0.474742}, + {1.117193,-0.177673}, + {0.605124,0.264148}, + {-0.158801,-0.269563}, + {-0.026259,1.643594}, + {-0.612630,-0.403823}, + {-2.104756,1.120870}, + {0.439319,-0.326207}, + {-0.729839,-0.030055}, + {-0.197924,-0.161142}, + {0.859821,0.172257}, + {-0.082605,1.518575}, + {-1.076389,-1.744869}, + {-0.219282,1.053450}, + {-0.545467,0.263106}, + {0.717580,-0.589610}, + {-0.704720,-0.962831}, + {0.404192,0.274100}, + {-0.559766,-0.674194}, + {-0.846818,1.766523}, + {0.413603,0.183993}, + {0.258588,0.447021}, + {0.711449,-0.254685}, + {-0.039759,0.029436}, + {-0.128433,-0.269298}, + {-1.025894,1.345869}, + {-0.912975,0.052240}, + {0.755264,-0.206240}, + {0.044141,0.949915}, + {-1.565117,-0.595266}, + {0.200074,-1.417585}, + {-0.158238,-0.081043}, + {-0.503170,-0.078182}, + {0.362525,-0.194696}, + {0.259960,-0.907605}, + {-0.105310,-1.933984}, + {-0.899535,-0.440019}, + {0.163533,0.065331}, + {-0.571787,-1.130394}, + {0.301250,-0.094735}, + {0.104414,-1.423818}, + {-0.146865,-0.198913}, + {-0.497490,0.758248}, + {0.466122,-0.416899}, + {-0.940500,0.639487}, + {-0.440392,0.809788}, + {-2.223726,0.948796}, + {-0.313709,1.585454}, + {0.206535,-0.868710}, + {0.910526,-1.174225}, + {-0.495236,0.167135}, + {-0.575404,0.007086}, + {-0.255414,0.937178}, + {-0.296419,-0.082039}, + {1.002712,1.059056}, + {-1.200725,1.009362}, + {-1.031906,1.427611}, + {0.064588,-0.744817}, + {1.290310,0.659770}, + {0.251141,-0.190253}, + {-0.586866,-0.099783}, + {1.514305,0.076462}, + {-0.292877,-0.034932}, + {0.086519,-1.537324}, + {0.558554,-1.027847}, + {0.016688,-0.294418}, + {-0.464068,0.572870}, + {-1.031390,0.702926}, + {-0.993327,0.280797}, + {0.407376,1.270542}, + {-0.291421,-0.688110}, + {0.842434,1.685884}, + {-0.464356,-1.287623}, + {0.680357,-0.473646}, + {0.694717,0.571415}, + {0.391202,-0.560555}, + {-0.169632,-0.035731}, + {-0.203948,0.790613}, + {-0.670035,-0.264796}, + {-0.090461,0.101945}, + {-0.311617,0.481222}, + {-0.344817,0.135445}, + {-1.162870,0.142668}, + {-0.487890,-0.544005}, + {0.732853,0.690509}, + {0.585005,-1.244755}, + {0.503757,-0.316446}, + {0.869989,-0.370224}, + {0.351113,-0.041060}, + {0.021720,-0.728370}, + {-0.706755,-0.494790}, + {-0.103364,-1.238782}, + {-0.355559,-0.533147}, + {0.166720,-0.864956}, + {0.334983,0.100261}, + {-0.848547,0.637065}, + {-0.317559,0.657728}, + {0.409242,0.262048}, + {0.596688,0.826314}, + {-0.458137,0.110997}, + {-0.682732,-0.219886}, + {-0.408569,0.043952}, + {-0.320255,-1.596813}, + {0.387040,-0.699110}, + {0.198430,-0.538138}, + {0.856802,-0.708255}, + {0.756612,-0.653997}, + {-0.356619,-0.562844}, + {0.271806,1.194806}, + {-0.175223,-1.368711}, + {-0.153117,-0.398840}, + {0.706898,-0.328442}, + {0.034251,-0.107789}, + {0.277096,0.757656}, + {-0.144774,0.378035}, + {-1.538711,0.603603}, + {0.206118,0.430155}, + {0.622510,0.173831}, + {0.046042,0.058330}, + {-0.577057,0.162875}, + {0.685647,-0.647830}, + {-0.910460,0.504792}, + {-0.200849,-0.954877}, + {0.475974,-0.438454}, + {0.340606,0.030790}, + {-0.278135,0.194854}, + {0.707024,-0.623755}, + {-0.091069,-2.189701}, + {-0.273684,-0.897539}, + {0.050275,0.334330}, + {-1.301614,-0.241288}, + {0.376532,1.392280}, + {0.848500,0.658936}, + {-0.354567,-0.729838}, + {0.779270,-0.651632}, + {-1.525730,0.876681}, + {0.587723,-1.383307}, + {-0.741497,0.254969}, + {0.873264,0.197479}, + {-0.480964,1.299430}, + {-0.431708,0.130537}, + {0.323680,-0.448970}, + {-0.803705,-0.383630}, + {0.259853,-0.171842}, + {-0.074427,-1.423999}, + {0.213413,-0.806918}, + {0.319758,-0.629784}, + {0.197369,-0.175039}, + {0.374164,-2.020326}, + {0.234205,0.212423}, + {0.442106,-0.486910}, + {-0.970864,0.312143}, + {0.994610,0.634741}, + {0.048931,0.205781}, + {0.369340,-0.247351}, + {-0.458195,0.094655}, + {-0.853393,0.397950}, + {-0.222113,-0.020140}, + {0.855104,1.002182}, + {-0.949021,0.731330}, + {-0.073219,1.402526}, + {-0.151223,-0.492186}, + {-1.375457,-0.136411}, + {-0.466811,0.022190}, + {1.087376,0.106868}, + {-0.744528,-0.413374}, + {-0.342038,0.049102}, + {-1.494273,-0.271438}, + {-0.125528,0.601419}, + {-0.111221,-0.380202}, + {0.641612,0.273790}, + {-0.883504,0.517323}, + {-0.843544,0.433726}, + {0.070544,0.613134}, + {-1.407600,-0.044330}, + {-0.492451,0.995879}, + {0.983269,0.143963}, + {0.221852,0.495000}, + {-0.791657,0.614310}, + {0.703727,-0.571992}, + {-0.071284,0.875682}, + {1.641568,-0.631850}, + {-0.083871,0.250629}, + {-0.229893,-1.203232}, + {-0.382616,1.669525}, + {0.486753,-1.096469}, + {-0.599193,-0.121324}, + {1.105338,0.376484}, + {-0.433136,-0.568643}, + {1.262118,0.303337}, + {-0.180750,-0.251747}, + {0.232196,0.634354}, + {0.526905,0.692507}, + {-0.416640,-0.134469}, + {-0.945404,0.290901}, + {1.452757,0.222601}, + {-0.057791,-0.455470}, + {-0.853629,-0.583719}, + {-0.233342,0.161093}, + {-0.968813,0.500752}, + {-0.861537,0.075586}, + {1.474493,-0.284338}, + {-0.754792,0.807480}, + {-0.643724,1.545286}, + {-0.922333,-0.131210}, + {-1.068958,-0.426784}, + {-1.011546,0.020778}, + {0.787292,0.193200}, + {1.276891,0.812940}, + {-0.001378,1.525040}, + {-0.482745,0.059566}, + {0.640762,-0.003003}, + {-0.842820,-0.681972}, + {-1.136885,1.104554}, + {0.707249,0.574867}, + {0.404579,0.578500}, + {0.772682,0.950729}, + {-0.758872,-0.442283}, + {-0.134508,0.287088}, + {-1.217763,-0.136208}, + {0.067001,0.006883}, + {-1.117236,-0.517592}, + {1.074093,-1.371225}, + {0.434892,-0.753326}, + {-1.657469,-0.184451}, + {-0.563524,0.887134}, + {0.594674,-0.128692}, + {-0.861165,0.393858}, + {0.740365,-0.155010}, + {-0.542431,-0.137020}, + {-0.160958,0.367545}, + {1.061826,-0.276971}, + {-0.771112,0.145356}, + {1.963119,0.088410}, + {0.024542,0.144405}, + {-1.161727,0.028527}, + {-0.629890,-1.011632}, + {-0.523735,0.451983}, + {0.226956,-0.663835}, + {-0.709942,0.411619}, + {-0.862071,-0.723057}, + {-0.430194,0.705340}, + {0.489380,-0.913195}, + {-0.913531,-0.125404}, + {0.580276,-0.084090}, + {-0.795566,0.423792}, + {0.195894,-0.952419}, + {0.206701,0.058895}, + {0.343643,0.988757}, + {0.111858,1.155224}, + {-0.402678,0.396630}, + {-0.085481,1.087237}, + {-0.626447,0.384020}, + {-1.545255,1.402500}, + {-0.382681,1.101254}, + {-0.570465,-0.881833}, + {-0.067170,0.447168}, + {-0.402078,-0.107883}, + {-0.063022,1.237664}, + {0.357641,-0.210884}, + {0.173106,1.169455}, + {0.371232,-0.555801}, + {0.426061,1.683925}, + {-0.862561,0.481593}, + {-1.295345,0.677131}, + {0.882575,-0.080920}, + {1.076227,0.081224}, + {0.217811,0.806447}, + {0.642645,-0.244275}, + {-0.137093,-0.322132}, + {0.246084,-0.089603}, + {0.827582,-0.845716}, + {0.373640,-0.242160}, + {-1.221390,0.390996}, + {-0.147700,0.855458}, + {-0.301463,-0.077718}, + {-0.477683,-1.468176}, + {-0.708449,0.284200}, + {0.341767,1.177536}, + {0.073596,-0.373099}, + {-0.418003,0.011618}, + {0.659790,0.501637}, + {0.517335,-0.383893}, + {-0.504534,0.584654}, + {-0.700111,-0.051171}, + {0.235161,-1.457844}, + {0.447664,-0.556099}, + {0.669581,1.662563}, + {0.635083,-0.024530}, + {-0.426292,-0.598758}, + {0.380072,-1.112453}, + {-0.081336,0.145480}, + {-0.907122,0.871629}, + {0.131628,1.573776}, + {-0.384249,0.507013}, + {-0.799491,0.657805}, + {-0.243014,0.812674}, + {-0.280861,-1.138266}, + {0.252573,-0.763178}, + {-0.829438,0.152104}, + {0.238524,-0.277766}, + {2.523618,-0.842357}, + {-0.699246,-0.801106}, + {1.166441,0.831885}, + {0.413058,0.094339}, + {-0.446019,0.307323}, + {-0.725646,-0.489846}, + {-0.253605,-1.246224}, + {0.912358,-0.556724}, + {1.278255,0.012615}, + {-0.078776,-1.194235}, + {-0.366774,-2.136559}, + {0.776158,0.034121}, + {0.124952,0.735158}, + {0.495498,-0.287894}, + {0.645361,0.435278}, + {-0.027172,-0.196745}, + {-0.091825,0.181205}, + {-0.449690,0.202206}, + {0.615196,-0.763464}, + {0.006443,-0.808811}, + {-0.778937,-0.464757}, + {-0.661201,-0.076723}, + {0.142220,0.639184}, + {0.043606,0.256401}, + {1.185320,0.179074}, + {0.964460,1.638016}, + {-0.439314,-1.027129}, + {-0.974713,-0.701040}, + {0.626450,1.670174}, + {0.849683,0.000633}, + {-0.758821,0.643905}, + {0.533524,-0.276729}, + {-0.287200,0.229033}, + {0.976720,0.691516}, + {0.413251,-0.414654}, + {-0.105930,0.582164}, + {1.083972,0.127931}, + {-0.008602,0.396564}, + {-1.014633,-0.766216}, + {-0.567769,-0.603326}, + {-0.671345,-0.870915}, + {-0.436383,0.159432}, + {0.789563,-1.405331}, + {-0.012052,0.291490}, + {-1.064900,0.499255}, + {1.857613,0.173601}, + {-0.166943,-0.593651}, + {0.813628,0.624637}, + {-0.792895,-0.334087}, + {-0.371264,-1.463375}, + {0.232055,1.514775}, + {-0.480078,-0.932215}, + {0.493973,0.190971}, + {0.477380,0.232577}, + {0.240390,-0.359935}, + {0.082890,-0.564972}, + {0.142401,0.071885}, + {0.415193,-0.076906}, + {1.294283,0.031845}, + {0.184350,0.522837}, + {-0.985097,0.515890}, + {-0.321414,0.266318}, + {-0.040275,-1.090636}, + {1.454251,-0.464461}, + {-1.341400,-0.556900}, + {1.112672,-1.294695}, + {0.684248,-0.569627}, + {0.110519,1.620119}, + {-0.074092,-1.501786}, + {0.836840,0.582174}, + {-0.312866,-0.163083}, + {-0.348387,0.846036}, + {-0.401781,-0.683929}, + {-0.477886,0.419644}, + {0.380085,1.371967}, + {-0.151815,-1.437845}, + {0.362655,1.699131}, + {-0.285574,-0.328342}, + {-0.373046,0.552420}, + {0.524496,-0.274919}, + {0.162426,-0.591347}, + {0.247988,-1.248758}, + {0.179873,-0.495477}, + {0.332481,0.187029}, + {-0.680053,-0.795562}, + {-0.297790,-1.228507}, + {0.433604,0.362610}, + {-0.912981,-0.317793}, + {0.356607,-0.401878}, + {-0.457215,1.277897}, + {0.423863,-0.907331}, + {1.369555,0.294154}, + {-0.558227,-0.787342}, + {-0.700928,-0.002200}, + {0.475999,0.053324}, + {0.759515,-0.511097}, + {-0.214352,-1.108068}, + {-0.823262,0.181915}, + {-1.481847,-0.145536}, + {-0.838811,-0.827068}, + {-0.354237,-0.929419}, + {-0.003615,0.497626}, + {1.165999,0.676843}, + {0.626492,0.510292}, + {0.158529,0.168647}, + {1.189623,0.008902}, + {0.281004,-1.174505}, + {0.610236,-0.754183}, + {-0.669239,0.615970}, + {0.300373,-0.608739}, + {1.205115,-0.072012}, + {0.272992,-0.140035}, + {-0.478646,-0.534863}, + {-1.353538,0.265825}, + {-0.199615,-1.529628}, + {-0.219052,1.418831}, + {-0.138797,0.344504}, + {0.170086,-0.026321}, + {-0.196733,0.535114}, + {-1.033414,-0.221792}, + {0.028438,0.044914}, + {-0.884678,0.622154}, + {0.822835,-2.043658}, + {0.344915,-1.053158}, + {-0.644134,-0.574558}, + {-1.332407,0.519250}, + {0.036381,0.475286}, + {-0.303382,0.982412}, + {-0.353411,0.250417}, + {0.139548,-0.642938}, + {1.414632,-0.370112}, + {0.532912,-0.264381}, + {0.342811,0.344477}, + {0.501145,-0.288626}, + {0.311541,0.560236}, + {-0.413902,-0.733376}, + {0.591928,-0.533218}, + {-0.311692,-0.614243}, + {0.357470,-1.610867}, + {-0.400828,-0.474021}, + {0.291392,1.248851}, + {0.016993,-0.633725}, + {-0.525249,0.450546}, + {0.801819,1.070688}, + {-1.296271,-0.616623}, + {-0.393605,-0.448016}, + {-0.165781,0.199731}, + {-0.066457,0.457058}, + {0.245912,0.367495}, + {-0.614678,0.338112}, + {0.424687,-0.042103}, + {-0.016281,0.164701}, + {-0.388587,-0.005404}, + {-0.616791,0.044666}, + {0.164994,-0.591148}, + {1.130053,0.244749}, + {-0.764096,-0.677907}, + {0.001894,0.070851}, + {0.970162,-0.004036}, + {0.294438,-0.848449}, + {-0.085147,-1.038641}, + {0.146574,-1.020098}, + {0.731212,1.172352}, + {-0.966413,0.010182}, + {0.022011,0.098571}, + {-0.062500,0.809517}, + {0.613554,0.896113}, + {-1.702897,-0.428981}, + {-0.295817,-0.095047}, + {0.363999,1.299666}, + {-0.185637,0.710197}, + {0.667850,-0.579586}, + {-0.091486,-1.745092}, + {0.278540,-0.322231}, + {-1.393286,0.017571}, + {-0.909896,-0.550217}, + {-0.227978,-0.287231}, + {-0.041531,-0.572542}, + {0.598923,-1.109982}, + {0.528515,0.294793}, + {1.420346,-0.167967}, + {0.339044,-0.296742}, + {-0.427926,-0.195084}, + {2.320888,-0.602119}, + {0.316394,-0.195310}, + {0.392226,-0.018758}, + {-0.347128,-0.012198}, + {0.885682,0.291685}, + {0.694113,-0.213884}, + {1.098109,0.434729}, + {0.126689,0.353735}, + {-0.540018,-0.289525}, + {-0.878448,1.391600}, + {-0.019977,0.206745}, + {0.873189,-0.483586}, + {0.121439,-0.209070}, + {0.648235,-0.185503}, + {-0.009043,-0.764272}, + {0.372579,0.872373}, + {0.472101,-0.192603}, + {-0.407035,-0.893065}, + {-1.367142,-0.975043}, + {0.746200,-0.328607}, + {0.388173,-1.625638}, + {0.884013,-0.528696}, + {0.705324,0.779519}, + {0.408395,-0.377831}, + {1.083901,0.395567}, + {0.781733,-0.146787}, + {-0.068884,-0.865584}, + {0.156537,0.742738}, + {0.113212,0.987732}, + {1.521997,0.329659}, + {-0.192594,-0.352522}, + {-0.976653,0.187491}, + {0.817131,0.071363}, + {0.699118,0.409109}, + {-0.297057,-0.940273}, + {-0.936432,-1.106289}, + {0.626260,-0.241420}, + {-0.260488,0.166791}, + {0.701135,-1.061037}, + {-0.554144,-1.046121}, + {0.513165,0.663304}, + {-0.011168,0.147376}, + {0.037910,1.201414}, + {0.140816,1.384849}, + {-0.242984,-1.207828}, + {-0.107482,0.575915}, + {0.451083,0.174602}, + {0.269525,-0.536069}, + {0.211411,-0.104573}, + {-0.204415,-0.512769}, + {0.628925,-0.352539}, + {1.033395,0.036681}, + {-0.675614,-0.143876}, + {-0.621722,-0.934906}, + {0.211877,-0.248810}, + {-0.352170,0.551980}, + {-1.116948,0.321283}, + {-0.826697,1.581404}, + {-0.195648,0.310111}, + {-0.938570,-0.616930}, + {-0.451007,0.525622}, + {-0.120274,0.851907}, + {0.045607,-0.373985}, + {-0.214821,0.266194}, + {0.171364,-0.008571}, + {0.301965,-0.705054}, + {-1.165181,-0.235733}, + {-0.650434,-0.274030}, + {0.122090,0.561616}, + {0.435428,-0.782393}, + {-0.004740,-0.125884}, + {-0.321219,-0.415579}, + {-1.199688,0.284728}, + {-0.533240,0.015463}, + {0.304348,-0.073971}, + {-0.733804,-0.444715}, + {-0.725423,0.204256}, + {0.604231,-0.689961}, + {-0.756920,-0.218757}, + {0.956018,0.954204}, + {0.169414,-0.152566}, + {0.481613,-0.565409}, + {0.371303,0.288803}, + {-0.794294,-1.147211}, + {-1.706341,0.716376}, + {-0.627696,0.291968}, + {-0.121333,-1.001299}, + {0.550558,-0.282856}, + {-0.349733,-0.561486}, + {0.578835,0.339123}, + {0.420234,-0.741495}, + {0.144577,0.277881}, + {0.031130,-0.728796}, + {-0.564058,1.498556}, + {1.015670,0.422366}, + {-0.063266,0.346276}, + {0.551090,-1.963699}, + {0.934465,-0.385555}, + {0.422983,1.159449}, + {0.101278,-1.667219}, + {-0.308766,0.332842}, + {0.150898,-0.097385}, + {-0.862758,-1.060237}, + {-0.687885,-1.141096}, + {-0.862829,-0.505841}, + {0.558943,-0.778417}, + {0.549535,-0.363780}, + {0.072778,0.637066}, + {0.286029,0.322126}, + {0.330171,-0.854661}, + {-1.348837,-0.420251}, + {-0.198428,-0.371513}, + {-0.525214,0.301414}, + {-0.667387,0.022208}, + {-0.574674,0.529466}, + {2.371918,-0.496606}, + {0.257499,-0.783288}, + {0.156324,0.286932}, + {0.087484,0.531503}, + {0.093291,0.317147}, + {-0.427160,-2.024729}, + {-0.044421,1.046526}, + {0.978931,0.464268}, + {-1.373383,-0.073722}, + {-2.321501,-0.976402}, + {0.683655,0.655822}, + {0.352602,-0.192715}, + {0.339613,0.269168}, + {-0.472547,-1.432907}, + {-0.231035,0.019309}, + {-0.094858,1.060712}, + {0.681354,-1.324615}, + {0.864079,0.416811}, + {-0.558628,0.087251}, + {-0.365315,0.133957}, + {0.107680,2.348517}, + {0.198383,1.253961}, + {-1.268406,0.952837}, + {-0.992758,-0.560084}, + {0.672959,0.572037}, + {-0.449041,1.977002}, + {0.522614,0.339234}, + {0.085229,-0.360501}, + {0.640099,0.726865}, + {-0.091502,-0.015738}, + {-1.201696,1.035130}, + {-0.109550,-0.696829}, + {1.168720,1.005732}, + {-0.249323,1.263522}, + {0.724024,0.109230}, + {0.265328,0.012693}, + {-0.842707,-1.113746}, + {-1.256092,-0.822533}, + {-0.075814,-0.052293}, + {-0.128797,-0.411582}, + {-0.653104,-0.788771}, + {0.939494,0.157740}, + {1.072504,0.885641}, + {0.163190,0.818505}, + {0.706255,0.687324}, + {0.384361,-0.313490}, + {0.508228,-1.395336}, + {0.359982,0.352805}, + {-0.256236,0.825832}, + {0.029179,-0.324424}, + {0.486841,0.728258}, + {0.817556,0.065814}, + {1.494148,0.828882}, + {-0.050180,-0.893645}, + {-0.636544,-1.178485}, + {-0.720967,0.391549}, + {-1.307682,0.078339}, + {-0.605757,-0.944323}, + {-0.731348,-0.094258}, + {0.396463,0.209925}, + {0.209509,-0.607296}, + {0.119597,-0.249649}, + {-0.200995,-0.099649}, + {-0.567400,-0.345251}, + {-0.857138,0.181769}, + {-0.941646,-0.854838}, + {-1.128753,0.837338}, + {-0.657241,-0.759242}, + {-0.188936,0.670672}, + {-0.306598,-0.482202}, + {0.912207,-0.517195}, + {1.164901,-0.427966}, + {-0.009895,-1.020774}, + {0.025765,1.322707}, + {0.150524,1.732201}, + {-0.439267,-0.498603}, + {-0.368177,0.524348}, + {-0.630978,-0.521041}, + {-0.231973,-0.184883}, + {0.067075,1.310441}, + {-0.105442,1.412885}, + {0.331006,-1.363233}, + {0.791599,0.084396}, + {-0.890726,-1.246866}, + {-0.542651,-0.106851}, + {0.107314,0.092753}, + {-0.732606,0.153913}, + {-0.330158,0.495539}, + {0.489401,1.064049}, + {-0.417820,1.261110}, + {-1.631694,-0.818434}, + {-0.620724,-0.895058}, + {0.426467,-1.064865}, + {0.467471,-0.278711}, + {0.817514,-0.321221}, + {0.096475,-0.494918}, + {0.152146,0.351492}, + {-0.498145,1.133315}, + {0.303055,-0.317239}, + {0.103959,0.019469}, + {0.092448,0.918901}, + {-0.993398,0.147710}, + {-0.995629,0.413023}, + {1.220671,-1.202642}, + {0.724379,1.575400}, + {0.811431,0.466068}, + {0.499664,-0.880995}, + {0.558109,0.769554}, + {-0.702879,-1.050569}, + {-0.353375,-0.936081}, + {0.360053,-0.464839}, + {-0.779252,-0.780140}, + {0.090785,-0.637723}, + {-0.304972,0.459278}, + {0.736270,-0.110646}, + {-0.109772,0.206927}, + {-0.478619,-0.042280}, + {-0.876631,0.510703}, + {-0.906729,-0.217556}, + {-1.537449,-0.267733}, + {-0.978123,-0.957757}, + {-0.714696,0.975507}, + {0.812617,-0.332136}, + {-0.725724,-0.236311}, + {-0.100842,1.337503}, + {0.080524,1.176672}, + {0.771711,-0.341004}, + {-0.423299,-0.455648}, + {2.158161,-0.512129}, + {1.151039,-1.024555}, + {0.642063,0.018575}, + {-1.054085,0.401372}, + {-0.288785,0.630494}, + {0.347641,-0.610670}, + {1.408482,0.059692}, + {-0.379421,-0.208655}, + {-0.483324,-0.878070}, + {0.602104,-0.394601}, + {-0.004706,-0.642013}, + {-0.358424,-0.253404}, + {0.411569,-0.129959}, + {1.228551,0.006102}, + {0.531607,-0.018854}, + {-1.380934,-0.627088}, + {0.547267,-0.039238}, + {0.746745,0.351671}, + {0.303177,-0.387336}, + {-0.796387,-1.614076}, + {0.464988,0.970223}, + {0.191287,0.066696}, + {-0.220325,0.790812}, + {0.303741,1.089789}, + {0.448117,-0.011489}, + {0.419576,0.169210}, + {0.541446,-0.813073}, + {-0.746604,-0.394798}, + {-0.535124,-0.399080}, + {1.212820,1.210170}, + {-0.608420,0.220226}, + {-1.418918,1.368314}, + {0.931166,0.677711}, + {0.682432,-0.895030}, + {-0.693349,0.261801}, + {0.258131,-2.168849}, + {0.867516,0.563051}, + {-0.096511,-0.462814}, + {-0.689393,-0.230999}, + {-0.369812,0.249233}, + {0.046717,0.954072}, + {-0.032594,0.551930}, + {-0.766079,-0.071566}, + {0.793508,-0.748283}, + {0.241679,0.608403}, + {0.498824,0.196015}, + {0.386018,-0.774475}, + {-0.291054,-0.131220}, + {-0.436014,0.049768}, + {-0.006478,0.331976}, + {-1.126995,0.403371}, + {0.674118,-1.006190}, + {0.727574,-0.631312}, + {0.115880,0.143336}, + {-0.181566,0.695052}, + {-0.233203,-0.086295}, + {0.112809,-0.045588}, + {0.543264,0.808170}, + {-0.581874,-0.471845}, + {0.340867,-0.485032}, + {0.165312,0.013926}, + {-0.162445,0.725280}, + {-0.499103,-1.248448}, + {0.033577,0.051456}, + {-1.045131,-0.235899}, + {-1.110962,-0.102827}, + {-0.274189,1.259956}, + {-0.791826,1.100141}, + {0.324671,0.829447}, + {0.800825,-0.584404}, + {0.849667,-0.944107}, + {0.288553,0.174365}, + {-0.215377,1.086802}, + {0.392650,-0.010487}, + {0.748435,-1.137606}, + {0.034898,-0.302699}, + {0.636265,0.119519}, + {0.837150,-0.690876}, + {-0.092518,0.354308}, + {0.084607,-0.381048}, + {0.970579,0.659439}, + {-0.564493,-0.616213}, + {-0.403944,-0.133496}, + {1.350834,0.527610}, + {-0.742367,-0.805350}, + {0.624140,0.366381}, + {0.005646,-0.563460}, + {0.268050,-1.292687}, + {0.547784,-0.463622}, + {-0.659049,-0.130209}, + {0.283018,0.527990}, + {1.418480,1.297302}, + {0.488656,0.974499}, + {0.551555,-0.669995}, + {0.015860,-0.360077}, + {0.438938,1.527582}, + {-0.729915,-1.304140}, + {0.025131,0.002452}, + {-1.484426,0.708978}, + {-0.804342,0.051125}, + {0.990833,-0.309900}, + {-0.023686,0.762213}, + {-0.617502,0.277137}, + {-1.488232,0.224413}, + {-0.082550,0.224711}, + {0.610967,-0.436610}, + {-0.019999,1.299875}, + {-0.323230,1.244962}, + {-0.812947,1.719798}, + {0.333300,-0.174474}, + {0.115682,-1.155270}, + {-0.695856,0.388529}, + {-0.543434,-0.096509}, + {-0.096049,0.107245}, + {-0.199971,0.163067}, + {-0.067111,0.395370}, + {1.026571,-0.210498}, + {-0.233456,0.753581}, + {0.051242,-0.861376}, + {0.567777,-0.613727}, + {0.987200,-0.366176}, + {-0.409966,-0.600319}, + {-0.021597,-0.362028}, + {-0.285392,-1.023961}, + {0.324897,-0.397392}, + {-0.592783,-1.366636}, + {1.513069,0.094527}, + {-0.044122,0.361806}, + {0.677076,-0.471443}, + {-0.333290,0.236344}, + {0.108895,-0.098454}, + {0.103235,-0.195197}, + {0.650796,-0.537053}, + {-0.131204,-0.326541}, + {0.520322,0.172370}, + {0.210147,-0.555893}, + {-1.082301,-0.048132}, + {-1.964090,-0.466588}, + {0.328335,-0.553112}, + {0.708616,0.426767}, + {1.323439,-0.348617}, + {0.360543,0.545349}, + {-0.719946,-0.639191}, + {0.592925,0.790534}, + {0.402184,-0.204855}, + {0.907703,-1.809146}, + {-0.387200,0.273777}, + {-1.602303,0.588109}, + {0.867147,0.107290}, + {0.824226,0.764841}, + {-0.538419,-0.797958}, + {0.814390,0.065650}, + {-1.453486,-0.528528}, + {-0.672247,-0.514976}, + {-0.052375,0.190079}, + {-0.094941,0.604553}, + {0.088500,0.393075}, + {0.195693,0.876814}, + {-0.184889,-1.487501}, + {-0.270364,0.104600}, + {0.102034,0.660195}, + {-0.091355,-0.465751}, + {-0.135152,-0.520824}, + {-0.022116,-0.821371}, + {0.570832,0.492145}, + {0.066106,0.238053}, + {-0.184571,0.890977}, + {0.288094,-1.019289}, + {-0.022496,-0.473805}, + {1.126320,1.508352}, + {-0.531990,0.461793}, + {-0.594808,0.080021}, + {0.290982,-0.692523}, + {-0.890167,0.818541}, + {-0.162518,0.512516}, + {-0.062089,0.662125}, + {-0.469694,0.836419}, + {0.590828,-0.375129}, + {-1.549634,1.352916}, + {-0.257487,0.526662}, + {0.554513,-0.496139}, + {-0.489056,-1.265723}, + {0.233948,-0.647727}, + {0.333881,0.673747}, + {0.721218,0.641171}, + {0.166479,1.234207}, + {0.251689,-0.854045}, + {0.503304,-0.772030}, + {-0.397815,1.070705}, + {-0.454466,-0.093432}, + {0.509756,0.581621}, + {-0.636769,0.173815}, + {-0.434115,-0.379772}, + {0.360372,0.416251}, + {-0.816916,0.336363}, + {-0.481516,-0.148237}, + {-0.344201,1.129372}, + {-0.745381,-0.145303}, + {-0.237741,-1.131222}, + {0.083772,-0.220665}, + {0.519841,-0.090807}, + {-0.074125,-0.928286}, + {-0.280099,-1.361722}, + {-0.233499,-0.378497}, + {0.373073,-1.241461}, + {-1.426124,0.070811}, + {-0.509544,0.495983}, + {0.099959,-0.668754}, + {0.270905,1.556735}, + {-0.390670,0.537248}, + {-0.058168,0.187165}, + {-0.406095,-0.397041}, + {0.121194,-0.343134}, + {-0.451420,0.715020}, + {-0.116938,-0.147192}, + {-0.333465,0.135991}, + {-0.741996,-0.453454}, + {-0.481034,-0.484738}, + {-0.782498,0.231260}, + {0.024518,0.585927}, + {-0.450470,-0.353688}, + {0.594174,-0.126300}, + {-0.794772,0.420486}, + {1.314513,-0.513466}, + {-0.370453,0.760489}, + {0.150855,-0.339750}, + {-0.135993,-0.778609}, + {-0.276600,-0.086547}, + {0.113501,-0.451234}, + {0.807762,-0.310844}, + {0.789981,0.544938}, + {-0.304444,0.191596}, + {-1.155565,-0.682987}, + {0.312056,1.172277}, + {0.148072,-0.646764}, + {-1.017788,0.784066}, + {0.908108,-2.113397}, + {-0.647792,-0.940894}, + {-0.147613,0.439221}, + {-1.081613,0.980868}, + {0.632143,-0.374708}, + {-0.495802,-0.113519}, + {-0.001556,0.150950}, + {-1.307628,-0.508955}, + {-0.300870,0.315066}, + {-1.083447,-0.140177}, + {-0.100772,0.376783}, + {-0.477322,1.014067}, + {-0.567785,-0.305888}, + {-0.836664,1.106455}, + {-0.015276,0.006448}, + {0.616278,0.239966}, + {0.030009,-1.107782}, + {-0.770995,-0.138155}, + {-0.681094,-0.519193}, + {-0.882058,-0.080711}, + {0.248760,-0.979030}, + {0.000043,-0.366665}, + {0.400810,-0.085567}, + {0.641021,-0.084098}, + {0.533652,0.288318}, + {0.894862,-0.065116}, + {0.123370,0.978511}, + {-0.180674,0.803822}, + {0.728752,-0.234438}, + {-1.319526,0.158393}, + {-0.205442,-0.299613}, + {-0.383721,-0.335137}, + {-1.028570,0.223713}, + {0.932332,-0.634004}, + {0.157887,-0.980576}, + {0.889136,0.047845}, + {-0.087490,-1.077315}, + {1.004223,-0.574276}, + {-0.563213,-0.079366}, + {0.609176,0.143015}, + {1.007697,-0.230920}, + {-0.432129,-0.855668}, + {-0.751450,-0.419138}, + {-0.531787,0.218861}, + {1.240797,0.009179}, + {0.098613,1.024921}, + {-0.418097,-0.610862}, + {0.638017,-0.556955}, + {-0.882736,0.678364}, + {-0.101406,0.188363}, + {0.575997,-0.320782}, + {-0.184244,-0.946120}, + {0.854262,0.058870}, + {0.623265,0.222449}, + {0.026415,0.979594}, + {0.482302,0.001502}, + {-0.278778,-0.147706}, + {0.640003,0.194414}, + {0.438042,-0.226420}, + {0.136500,0.092192}, + {-0.202665,0.686749}, + {0.522478,0.318777}, + {-0.913607,0.461100}, + {0.058242,-0.589196}, + {-0.125264,0.196658}, + {0.455045,0.102476}, + {-0.248191,-0.131455}, + {-0.497535,0.250805}, + {0.168700,0.673232}, + {0.711314,-0.106036}, + {0.651818,-0.851557}, + {0.977553,-1.253093}, + {0.286839,1.317582}, + {-0.371842,-1.093583}, + {-0.301749,1.329315}, + {-0.403959,-0.126875}, + {-0.217582,0.112597}, + {0.122512,-0.547045}, + {0.538957,1.455939}, + {-0.051608,0.121125}, + {-0.483043,0.988090}, + {0.497165,-0.191173}, + {-0.703290,0.550797}, + {0.658044,0.757078}, + {-0.412660,-0.052012}, + {-0.252273,0.092307}, + {-1.322972,0.140665}, + {-0.203724,0.534689}, + {0.116356,0.483238}, + {0.554228,1.157456}, + {0.327654,1.316895}, + {0.250489,-1.294149}, + {0.982871,0.689230}, + {0.192154,-0.292214}, + {-0.669868,-0.373672}, + {-1.188747,-0.038297}, + {-1.090901,0.731469}, + {0.764236,-0.485868}, + {0.275150,1.088652}, + {0.976241,-0.963219}, + {-0.581240,-1.282012}, + {0.320197,0.407777}, + {0.748587,0.046703}, + {0.467881,-0.329966}, + {-1.102496,0.283212}, + {1.062265,1.008907}, + {-0.606597,0.619235}, + {-0.156865,-0.044052}, + {-0.002704,-0.036497}, + {0.706197,-0.423776}, + {-0.257156,0.973133}, + {0.487914,1.074381}, + {-0.885602,-1.777507}, + {-0.940260,0.448708}, + {0.932505,0.236523}, + {1.804253,0.372704}, + {-1.578130,0.083653}, + {-0.626332,1.026166}, + {1.193807,-0.043563}, + {-0.505137,-1.317739}, + {-0.508528,0.107232}, + {-0.487782,0.645512}, + {-0.437935,-0.346208}, + {0.632623,1.393825}, + {0.487853,0.179346}, + {0.015868,0.802943}, + {-0.172107,-0.530354}, + {-0.438663,0.597939}, + {-0.523518,-0.769340}, + {-0.309114,-0.877138}, + {-0.805692,0.319938}, + {0.980487,0.415193}, + {0.086533,-0.000662}, + {0.083456,0.469788}, + {2.350354,0.199267}, + {-1.117492,1.031942}, + {-1.874684,-1.438324}, + {-1.506923,-0.254100}, + {-0.442244,-0.212173}, + {0.622220,0.078493}, + {0.442782,0.738116}, + {0.382808,1.370781}, + {-0.572913,-0.327280}, + {0.033002,-1.591756}, + {-1.011466,-0.707980}, + {-0.540779,-0.501728}, + {-0.430794,-0.139464}, + {0.953393,-0.835771}, + {-0.569549,-1.511300}, + {-1.023529,-1.226598}, + {-0.030465,0.795517}, + {-0.123311,-0.051937}, + {-0.428708,-0.079562}, + {-1.177091,0.332774}, + {-1.004645,-0.843150}, + {-0.038739,1.507680}, + {0.090651,0.221051}, + {0.109970,0.073002}, + {1.310602,0.693833}, + {0.072228,1.417407}, + {-0.104879,0.467846}, + {-1.441396,0.816322}, + {-0.151793,0.678658}, + {-0.096420,0.855195}, + {0.430901,1.154121}, + {-0.250084,-0.013302}, + {0.587835,0.733677}, + {0.477520,-0.424982}, + {-0.504096,-1.402798}, + {-1.013512,0.267668}, + {-0.363026,-0.005476}, + {-0.718136,-0.118798}, + {-0.446816,-0.602576}, + {-0.797358,-0.024473}, + {0.633098,0.624564}, + {0.021270,1.205089}, + {0.266963,1.498017}, + {-0.508527,0.054780}, + {-0.043710,0.286613}, + {-0.142768,0.551359}, + {0.220664,-1.355083}, + {0.521431,-0.476980}, + {0.141075,0.083285}, + {-0.059602,-0.756118}, + {-0.451512,-0.258693}, + {-0.730176,1.521289}, + {-1.362482,0.104512}, + {0.270994,0.327411}, + {-0.363492,-0.868879}, + {0.672515,-0.270446}, + {-1.342101,0.237073}, + {0.508772,-0.377732}, + {-0.713798,-0.466147}, + {0.368961,0.592551}, + {0.299261,2.116040}, + {-0.672263,-0.279814}, + {-1.007523,1.276007}, + {0.227684,-0.462034}, + {0.387360,-0.328996}, + {0.352344,0.109850}, + {-0.554321,-0.079454}, + {-1.105078,0.393291}, + {1.734659,0.308959}, + {-0.308866,0.349966}, + {-0.493334,1.891041}, + {0.107295,-0.199193}, + {0.015633,1.669639}, + {-0.192819,0.360563}, + {1.300187,0.043971}, + {-0.195297,-0.619241}, + {-0.120101,-1.056832}, + {-0.447948,-0.495157}, + {-0.326704,-0.483233}, + {-1.035520,1.157850}, + {-0.498165,1.806892}, + {-0.145448,0.642467}, + {-0.405584,1.352826}, + {-0.421562,0.606142}, + {0.294387,1.309778}, + {-0.154054,0.079388}, + {0.536240,0.173272}, + {-0.024006,1.108828}, + {0.874482,-1.013605}, + {0.377186,-0.667107}, + {1.113183,0.945097}, + {-0.623475,-0.893737}, + {-0.192779,-1.241070}, + {0.632202,0.599329}, + {-0.998820,-0.803084}, + {1.383370,0.376201}, + {-0.083581,0.942494}, + {-0.173566,-0.198364}, + {0.074235,-0.314876}, + {-0.556586,0.347212}, + {0.490005,0.416503}, + {0.331992,-0.555958}, + {-0.691485,-0.331265}, + {-0.796966,-0.358733}, + {-0.252577,0.543161}, + {-0.861375,0.772953}, + {0.133135,1.007422}, + {0.110358,-0.029927}, + {-1.330897,0.730045}, + {0.393907,0.863772}, + {-0.741439,0.432644}, + {0.576414,-1.086511}, + {-0.053779,1.091841}, + {0.727738,-0.274889}, + {-0.147372,0.359935}, + {-1.596102,0.038969}, + {0.002325,-0.748844}, + {1.142039,-0.398003}, + {-0.334125,-0.639994}, + {0.207807,0.496680}, + {-0.364096,-0.594810}, + {1.762264,0.531826}, + {-0.749354,0.980400}, + {-1.280578,1.031222}, + {0.206510,0.566433}, + {-0.682051,-0.394535}, + {-0.551294,1.174139}, + {0.313715,-1.149243}, + {0.656347,0.386459}, + {0.735878,0.178740}, + {-0.293578,-0.287406}, + {-0.179112,-0.387732}, + {0.213178,-0.962025}, + {-0.344776,-0.181182}, + {0.641578,-0.406269}, + {-1.401786,-0.171097}, + {0.286238,-0.125231}, + {0.252492,-0.547389}, + {0.120026,0.720419}, + {1.337138,0.195949}, + {-0.660370,0.703330}, + {0.092159,-0.695855}, + {-0.620594,0.229351}, + {1.055181,0.111751}, + {1.006880,0.293700}, + {-0.093249,0.555442}, + {-0.399694,0.811308}, + {-1.684486,-0.633970}, + {0.080918,0.511860}, + {-0.439946,0.019865}, + {-0.390984,-1.044203}, + {-0.685936,-1.231559}, + {-0.204744,-0.679722}, + {-0.859863,0.460715}, + {-0.246945,0.401049}, + {0.193542,1.129638}, + {-0.255188,0.214659}, + {0.484590,-0.289803}, + {0.830376,-1.338483}, + {-0.649905,-0.117391}, + {-0.796076,-0.304220}, + {0.353714,0.110796}, + {1.064357,0.203116}, + {0.772181,0.613989}, + {-0.595196,0.130421}, + {0.714852,-0.201961}, + {-0.246157,1.317799}, + {-0.188331,1.819959}, + {-0.255805,-0.742062}, + {-0.138330,-0.228130}, + {0.447635,0.068326}, + {0.167371,0.023899}, + {0.541047,-0.398183}, + {1.279247,-0.892511}, + {0.970960,-0.571617}, + {0.064149,-0.440132}, + {-0.091864,0.479401}, + {-0.178907,-0.263349}, + {-0.460228,0.072292}, + {-0.022178,0.024037}, + {0.042415,0.943316}, + {-0.639441,0.125048}, + {0.773008,1.096997}, + {0.127606,0.363171}, + {0.870742,-0.533857}, + {-0.763648,0.812840}, + {0.461366,0.041432}, + {-0.006986,-0.606103}, + {0.535399,0.207011}, + {-0.584722,-1.519249}, + {0.121278,-0.207252}, + {1.085226,-0.059229}, + {0.129751,0.594549}, + {-0.110785,1.298075}, + {-0.828154,0.282231}, + {0.357325,0.161702}, + {-0.286592,0.378964}, + {0.132628,0.276829}, + {-0.793980,1.023088}, + {-0.957162,0.460617}, + {-0.032594,-0.412238}, + {0.060784,0.629413}, + {1.100209,0.447011}, + {-0.198523,0.062691}, + {-0.709541,0.204258}, + {0.020197,-1.320956}, + {-0.215897,-1.623511}, + {0.748680,0.160824}, + {-0.504640,0.232847}, + {-0.269767,-0.738709}, + {0.392299,0.153438}, + {0.160576,-0.386143}, + {0.357881,0.613915}, + {-1.268598,-0.067517}, + {-0.666996,0.396000}, + {-0.761129,-1.835104}, + {-0.128240,0.064241}, + {-0.200634,-0.545752}, + {0.111993,0.186523}, + {-0.162610,-0.333088}, + {-0.548141,0.520658}, + {0.016143,-0.863869}, + {-0.569927,1.339376}, + {0.616225,-0.058848}, + {-0.664092,-0.932852}, + {-0.309768,-0.158927}, + {0.459254,1.205541}, + {-0.809099,-0.795062}, + {-0.182439,-0.025138}, + {-0.916346,-0.341971}, + {0.829546,-0.066365}, + {0.855095,-0.587404}, + {-0.275741,1.185855}, + {-0.816888,0.228774}, + {-1.253625,-0.671337}, + {-0.336773,-0.885292}, + {-1.419712,0.386946}, + {0.256469,-0.112479}, + {-0.195782,0.897473}, + {-0.448164,0.230629}, + {-0.137292,-0.954298}, + {0.044064,-1.420896}, + {0.346739,-0.728567}, + {-0.486216,0.932718}, + {-0.234357,-0.424851}, + {-0.893944,-1.580683}, + {0.224420,-0.109758}, + {-0.525390,-0.659896}, + {-0.082822,-1.111491}, + {-0.027127,0.600399}, + {0.417077,-0.941458}, + {-0.672273,-0.776712}, + {-0.375658,-0.673124}, + {-0.128259,0.669274}, + {0.274039,-0.162639}, + {0.531405,0.328816}, + {-0.173541,-0.344658}, + {0.109632,-0.652172}, + {0.745372,-0.988494}, + {0.323987,0.395099}, + {-0.220000,-0.137398}, + {0.004579,-0.872426}, + {0.251476,-0.625225}, + {1.333603,-0.551770}, + {0.081311,-0.544503}, + {0.326594,-0.007595}, + {-0.823281,1.430717}, + {0.572531,0.791617}, + {0.063804,-0.438730}, + {-0.804912,-0.338880}, + {0.533428,-0.017895}, + {-2.355835,-0.084042}, + {-0.020945,0.576270}, + {-1.338558,0.102208}, + {-1.341976,0.904601}, + {0.494760,0.485739}, + {-0.067460,2.005861}, + {-0.249791,0.460139}, + {0.735361,0.697345}, + {-0.007071,-0.683978}, + {0.116523,-0.146979}, + {0.082917,-0.544381}, + {-0.183656,-0.015491}, + {-0.125475,0.097676}, + {0.216174,0.367420}, + {-0.825492,0.033576}, + {0.392395,0.018111}, + {-1.196534,-0.398387}, + {0.858381,-0.236375}, + {0.427010,-0.140906}, + {0.549912,1.102720}, + {0.013097,-0.589424}, + {-0.486318,-0.182311}, + {0.597453,0.811553}, + {-0.394496,0.945556}, + {0.194762,-0.392322}, + {-0.245420,-1.255616}, + {0.591577,-0.107335}, + {-0.065784,-1.591483}, + {-0.463762,-0.160668}, + {-0.789821,-0.048679}, + {-0.275537,0.448439}, + {1.110561,1.009790}, + {0.527317,-1.005654}, + {1.115740,-0.604145}, + {-0.557221,1.170167}, + {0.014607,-0.908701}, + {0.869524,-0.104916}, + {0.670785,-0.073642}, + {0.275557,-0.344125}, + {-0.677464,0.205771}, + {1.468200,-2.040479}, + {-0.644867,-0.260612}, + {-0.885294,-0.600743}, + {-1.083463,0.305217}, + {0.192783,0.054288}, + {-1.442832,-0.464161}, + {-0.430593,0.193934}, + {1.037362,-0.157372}, + {0.396271,0.148627}, + {-0.590031,-0.536029}, + {-0.903929,-0.929530}, + {0.502786,-0.088813}, + {0.556812,0.044700}, + {0.140136,-0.196190}, + {0.247448,-0.454580}, + {0.858752,0.511401}, + {-0.226488,-0.387412}, + {-0.588826,0.225291}, + {0.122682,-0.776759}, + {-0.494520,0.407446}, + {-0.991127,0.502398}, + {0.655983,-0.129177}, + {-1.425441,-0.191821}, + {-1.341352,0.064542}, + {-1.072479,1.113384}, + {0.041286,2.051621}, + {-0.242983,0.516347}, + {-0.237060,-1.113874}, + {-0.023272,1.377334}, + {-1.899043,0.594030}, + {0.467479,1.264261}, + {0.663846,-0.112813}, + {0.692125,-0.625121}, + {-0.298478,-0.083012}, + {-0.964078,-0.081148}, + {-0.470905,0.411913}, + {1.474979,-0.154895}, + {0.661302,-0.012302}, + {-0.965442,0.514810}, + {0.318276,0.457882}, + {-0.542257,-1.222535}, + {0.062860,0.023413}, + {0.085049,1.158655}, + {1.247453,-0.154635}, + {0.178202,0.204762}, + {0.844883,0.791503}, + {0.233726,-0.984440}, + {0.164056,0.642663}, + {-0.322448,0.327553}, + {-0.126490,0.319918}, + {-0.158159,-1.372744}, + {1.298184,-0.764151}, + {0.018998,0.522201}, + {-0.962200,0.169821}, + {-0.176380,1.186852}, + {-0.034894,0.510674}, + {0.098506,-0.900306}, + {0.336179,-0.133751}, + {0.337938,0.195812}, + {0.012498,0.889530}, + {-0.625594,-0.298426}, + {0.694907,0.251068}, + {-0.113195,0.672439}, + {-0.753666,0.051040}, + {0.141270,0.049792}, + {-0.067074,0.245343}, + {-1.587448,-1.120145}, + {0.136902,0.397052}, + {0.012719,0.888125}, + {-0.899053,-0.232361}, + {-0.572945,0.118157}, + {0.689248,-0.024022}, + {-0.369033,1.314103}, + {1.171046,-0.441653}, + {0.148432,0.000953}, + {0.474619,1.318479}, + {-0.789100,-0.189436}, + {1.168206,-0.870973}, + {-0.471363,0.375174}, + {0.506161,-0.536559}, + {1.423200,0.042084}, + {-0.929433,-1.633785}, + {-1.295439,0.135491}, + {-1.538034,-0.008372}, + {-1.271645,-1.051796}, + {0.554905,-0.373024}, + {-0.643509,-0.327706}, + {-0.419714,1.107479}, + {0.466287,-0.239969}, + {-0.653212,0.139871}, + {-1.451830,-0.344354}, + {-0.907859,-0.216021}, + {0.944616,0.366605}, + {0.059977,0.109431}, + {1.031953,-1.164485}, + {0.449597,-2.254492}, + {-0.703591,-0.293462}, + {0.705176,0.000026}, + {0.129751,-0.129761}, + {-0.500724,0.070967}, + {0.708266,-0.279742}, + {0.057621,-0.165775}, + {-0.918908,0.311085}, + {0.103258,0.736145}, + {0.327648,0.004814}, + {-0.462488,-1.311553}, + {-0.800705,-0.250875}, + {0.725654,-0.503263}, + {0.070847,0.104229}, + {-0.617014,-0.723182}, + {-1.389549,-0.393330}, + {0.968007,-0.009708}, + {0.139527,1.299372}, + {0.248082,0.601290}, + {0.953040,-0.996260}, + {1.309783,-1.016336}, + {-0.934166,0.729653}, + {-0.388471,0.682112}, + {-0.240315,0.888481}, + {-1.098614,-0.034184}, + {-0.421662,-0.755789}, + {0.307964,0.867011}, + {0.444477,0.930219}, + {1.603805,-0.402639}, + {-0.089754,1.413485}, + {0.230484,0.488389}, + {0.354216,0.348765}, + {-0.322557,-0.563235}, + {-0.185066,0.795538}, + {-0.550469,0.168640}, + {-0.331680,-0.810292}, + {-0.678005,-0.138885}, + {0.888325,0.259799}, + {-0.261157,1.314246}, + {-0.724085,0.698159}, + {-0.487339,0.343089}, + {0.256545,0.306148}, + {1.087370,1.360731}, + {0.909221,0.906951}, + {0.840193,0.271044}, + {-0.449186,-0.712406}, + {-0.100897,-0.905420}, + {-1.281902,-0.335234}, + {0.740303,0.011500}, + {0.899467,-0.124748}, + {0.536766,-0.366208}, + {-0.643354,0.691747}, + {-0.261056,-0.256182}, + {0.272516,-0.258403}, + {0.631447,-0.167719}, + {-0.196437,-0.052842}, + {1.508024,-0.936465}, + {-0.180365,-1.378710}, + {-0.249668,0.002152}, + {1.598053,1.741993}, + {-1.056432,0.117693}, + {0.515300,1.069078}, + {-0.212007,-1.048830}, + {0.335613,0.489364}, + {-0.796184,-1.069425}, + {0.083158,0.697802}, + {-1.235153,-0.772422}, + {-0.357202,-0.012821}, + {-0.593893,-1.181373}, + {0.050524,-0.401930}, + {0.074720,0.364095}, + {-0.079716,-1.693522}, + {0.100870,-0.312204}, + {0.947544,0.242623}, + {-0.643159,-0.717020}, + {0.224527,0.733617}, + {0.216476,1.876947}, + {0.332304,-0.401619}, + {1.189563,-1.382521}, + {0.908890,-0.674780}, + {0.437119,-0.298161}, + {-0.058059,-0.200793}, + {0.362838,0.619364}, + {0.117785,0.015330}, + {-1.151039,-0.121108}, + {-0.542608,0.263258}, + {-0.605341,1.175677}, + {-0.526847,0.683678}, + {-0.003684,-0.546691}, + {0.101077,-0.028945}, + {-0.699619,0.028653}, + {-0.287565,0.909150}, + {-0.003493,0.475101}, + {0.110908,-0.450847}, + {0.822169,-0.268593}, + {-1.331173,0.303365}, + {0.354079,1.195309}, + {1.074010,-0.113039}, + {1.358327,0.349989}, + {0.328412,0.126190}, + {0.251235,0.427830}, + {-0.681032,-0.654465}, + {0.947471,-0.314890}, + {-0.506438,0.044035}, + {0.437633,-0.586149}, + {0.108011,0.609608}, + {-0.313954,0.566877}, + {-0.057536,-1.682225}, + {0.588066,0.182714}, + {1.063758,-0.640294}, + {0.843978,-0.415465}, + {1.201541,1.527708}, + {-0.299630,-0.584595}, + {0.591297,0.504796}, + {-0.056764,-0.947796}, + {-0.517348,-0.289759}, + {-0.288464,0.617447}, + {0.348633,-1.043987}, + {0.054553,-0.520532}, + {-0.090965,-0.147650}, + {0.086384,-0.577068}, + {-0.102547,-1.253433}, + {0.635189,0.519118}, + {-0.720591,-1.495902}, + {0.080849,0.205010}, + {0.751958,-0.190846}, + {-0.538937,-0.320929}, + {-0.612417,0.554560}, + {-0.851261,0.869392}, + {1.198195,-0.529736}, + {0.057548,-0.579206}, + {-1.025654,-0.151350}, + {0.303841,-0.211254}, + {0.446343,-1.552067}, + {0.315397,-0.808794}, + {-0.063785,0.774825}, + {0.783816,-0.157279}, + {-0.693511,0.332481}, + {-0.234900,0.528764}, + {0.596556,0.333542}, + {1.373749,-0.817280}, + {-0.295436,-0.145692}, + {0.006813,0.157722}, + {0.516578,-0.790212}, + {0.478924,-0.959898}, + {0.370258,0.489034}, + {0.713319,-0.586588}, + {0.332856,0.078227}, + {-0.425185,-0.677807}, + {-0.149519,0.199877}, + {1.263811,-0.509766}, + {0.233085,-0.479083}, + {0.856984,0.232124}, + {-0.398816,0.118417}, + {0.725782,0.573860}, + {-0.423177,-0.195038}, + {0.479589,-0.152071}, + {-0.606474,1.399722}, + {-2.041557,0.729519}, + {-0.617790,-0.668932}, + {0.137657,-1.422402}, + {-0.786831,-0.619224}, + {-0.149759,-0.165667}, + {0.190154,0.929670}, + {-0.287768,1.169585}, + {1.061637,0.067450}, + {-0.140288,-0.424489}, + {0.785589,-0.241400}, + {-0.992917,0.456275}, + {0.543095,-0.526169}, + {0.262447,0.354750}, + {0.115837,-1.383394}, + {-0.765803,-0.645191}, + {0.382408,-0.004403}, + {0.124288,-0.280736}, + {1.156532,0.881587}, + {1.088618,0.321389}, + {-2.279889,-0.488846}, + {-1.135730,0.591114}, + {-1.093988,-0.708227}, + {-0.153356,0.947910}, + {0.191071,-0.367728}, + {0.332287,0.126137}, + {-0.150579,-0.128056}, + {-0.515071,1.279206}, + {-0.471647,0.450751}, + {-0.177599,0.084528}, + {0.405248,-1.192993}, + {-1.199598,-1.871218}, + {-1.009935,0.125214}, + {0.860742,-0.062698}, + {-0.657040,-1.041627}, + {0.026116,-0.059837}, + {-1.346135,1.113968}, + {-0.624805,0.301187}, + {0.274945,0.937253}, + {0.478006,0.733921}, + {-0.612665,-0.715399}, + {-0.016013,0.268927}, + {0.319591,0.208865}, + {1.344190,-0.216045}, + {0.130151,1.142744}, + {0.172902,-0.626551}, + {-1.349281,-0.008253}, + {0.621623,0.463895}, + {0.184316,0.698054}, + {-0.585348,-1.744754}, + {0.109077,0.127077}, + {0.216486,0.290303}, + {0.785660,0.927775}, + {0.384514,-0.692532}, + {0.727702,-0.034449}, + {-0.057908,0.127263}, + {0.271526,0.524594}, + {-0.858654,-0.086733}, + {0.464001,0.064140}, + {0.227926,1.431933}, + {0.138844,0.005704}, + {0.141627,-0.127211}, + {-1.003825,0.034579}, + {-0.388278,0.179387}, + {0.158985,0.905558}, + {-1.242335,0.519667}, + {-0.047141,0.947802}, + {0.336262,-1.612058}, + {0.614542,-0.464413}, + {0.982166,-1.628173}, + {-0.870128,-0.651271}, + {0.486409,0.436105}, + {0.108930,1.638884}, + {-0.021817,-0.425794}, + {0.039699,-0.387185}, + {-1.225415,-0.377385}, + {0.391090,-0.505627}, + {0.651504,-0.883661}, + {-0.276837,0.691315}, + {0.383239,0.054891}, + {0.297223,-0.197196}, + {1.388005,-0.270560}, + {-1.400360,0.278525}, + {-2.093290,0.098416}, + {0.610011,1.401331}, + {-0.945061,-0.541204}, + {0.412258,-1.330328}, + {0.173694,-1.109422}, + {-0.159121,-1.744757}, + {0.285345,1.096001}, + {0.128427,-0.244146}, + {0.067905,-0.156659}, + {-1.018499,-0.578789}, + {0.505971,0.765807}, + {1.015914,0.376986}, + {0.790707,-1.646495}, + {0.487164,-0.607104}, + {-0.697297,-0.367804}, + {-0.565402,0.674289}, + {1.188518,0.712744}, + {-0.592933,-0.373505}, + {-0.203660,1.226443}, + {-0.098045,-0.097690}, + {0.433178,-1.020054}, + {-0.430052,-0.776739}, + {0.324026,-0.937248}, + {0.701878,-0.493328}, + {0.230826,0.826293}, + {0.004731,0.068967}, + {-0.498959,0.400514}, + {-0.513084,-1.025155}, + {0.421206,-1.417798}, + {-0.981820,-0.435834}, + {0.506125,0.020348}, + {-0.235266,-0.135010}, + {0.838326,-0.650392}, + {-0.396983,-0.682428}, + {0.182128,0.408830}, + {0.727117,-0.622519}, + {-0.068542,0.310867}, + {0.442916,0.767343}, + {0.044007,-1.159112}, + {0.493622,-0.162111}, + {0.380900,-1.503298}, + {0.423037,0.548507}, + {-1.568571,0.528272}, + {0.547764,-0.029898}, + {-0.356876,0.578955}, + {0.515241,0.565923}, + {0.167784,1.612647}, + {0.169705,0.087695}, + {1.177100,0.004351}, + {-0.689952,0.053029}, + {0.154453,1.419159}, + {-0.546385,1.058132}, + {0.021626,-0.754253}, + {0.741607,-0.361204}, + {-0.057849,0.999592}, + {-0.015000,1.519017}, + {-0.384562,0.938159}, + {1.000041,1.295279}, + {-1.069485,-0.177887}, + {-0.656125,-0.402525}, + {-0.338546,0.308619}, + {-0.201887,0.631236}, + {-0.576348,-1.438422}, + {0.094374,-0.332953}, + {1.717504,0.411315}, + {-0.139432,0.242414}, + {1.030451,-0.541582}, + {-0.132491,0.928665}, + {-0.929343,0.330223}, + {0.212063,-0.999967}, + {-1.546734,1.473279}, + {0.895231,-0.122118}, + {-0.024873,0.397475}, + {-0.471758,0.171216}, + {-0.384773,0.411799}, + {1.604132,0.192566}, + {-0.352284,-1.692873}, + {-0.127207,-0.166561}, + {-0.087210,-0.289254}, + {0.069733,0.733600}, + {-0.481091,-0.748068}, + {0.025913,-0.282440}, + {0.385995,-0.269872}, + {0.807898,0.547847}, + {0.920522,-0.253019}, + {0.590344,0.287209}, + {-0.264166,-1.420356}, + {0.741891,-0.453230}, + {-0.005511,-0.334318}, + {0.584215,-0.105380}, + {1.235921,0.737084}, + {0.073373,0.196251}, + {0.050188,0.318437}, + {0.326590,0.608379}, + {-0.322564,0.284616}, + {-0.646108,-0.359319}, + {0.322070,0.143369}, + {-0.863728,-0.775195}, + {0.831176,0.342701}, + {0.032958,-0.098237}, + {0.571168,-0.012336}, + {0.182689,0.790901}, + {-0.425154,-0.855671}, + {-0.898454,0.187687}, + {-0.526788,0.506000}, + {0.653615,0.022943}, + {-0.027712,0.795147}, + {-0.439436,0.442340}, + {0.706258,-1.337857}, + {0.478575,0.834826}, + {-1.198496,-0.435258}, + {-0.626551,-0.689605}, + {0.463850,-1.046754}, + {0.616860,0.015892}, + {-0.036480,-0.180819}, + {-0.850951,0.360575}, + {-0.778725,0.021580}, + {-0.003573,0.011854}, + {0.901575,1.139995}, + {-1.397778,-0.965160}, + {0.828026,-0.382807}, + {-0.014620,0.930159}, + {-1.300195,-0.110779}, + {0.749689,0.981340}, + {0.030482,0.848674}, + {0.187375,-0.097744}, + {0.209488,-0.196027}, + {0.347616,-0.395632}, + {0.329045,0.511381}, + {1.124516,-0.961421}, + {-0.221487,-0.120998}, + {-1.498910,1.138313}, + {-0.900081,0.195057}, + {0.353490,-0.370964}, + {0.461766,-0.958569}, + {-0.156196,-1.009013}, + {-0.303470,0.211825}, + {0.970393,0.376784}, + {0.495209,0.940894}, + {-0.760660,-0.732722}, + {-0.277112,-0.555909}, + {0.336774,-0.081721}, + {-0.764784,1.256559}, + {0.729786,0.187455}, + {-1.516521,-0.580250}, + {-0.060807,1.773198}, + {0.384536,-0.806667}, + {-0.704657,-0.622280}, + {-0.801176,0.052175}, + {-0.590213,1.990490}, + {-0.177006,-0.136596}, + {-0.043811,-1.299593}, + {-0.581471,0.077527}, + {0.234488,-0.891170}, + {-0.346771,1.199070}, + {0.082643,1.293400}, + {0.936822,0.025082}, + {-0.731120,-0.476702}, + {-0.934721,-0.022417}, + {0.222389,0.501521}, + {-0.120435,0.461318}, + {-0.065142,0.306212}, + {0.295570,-0.442311}, + {0.993401,0.404579}, + {-0.453363,0.509552}, + {0.282236,0.306297}, + {-0.536249,-0.901250}, + {-0.425114,0.194843}, + {-0.519253,1.853919}, + {-0.710138,0.608713}, + {0.021883,-0.406892}, + {-0.119297,1.104563}, + {-1.009286,0.692377}, + {-1.312874,0.446078}, + {0.820048,0.144155}, + {0.594350,-0.518111}, + {0.445168,-0.296112}, + {0.528797,0.275437}, + {-0.975129,1.054113}, + {-0.141110,-0.278283}, + {-1.108218,0.758768}, + {-0.720411,0.105147}, + {0.012397,0.377536}, + {-0.600491,-0.143086}, + {-0.953860,-0.409408}, + {0.207974,-0.533590}, + {0.505393,-0.929868}, + {0.693728,-0.168896}, + {1.295575,0.330245}, + {0.197670,-0.003298}, + {-0.644899,-0.599500}, + {0.369732,-0.579213}, + {-0.403831,-1.208236}, + {0.102628,0.417057}, + {0.225578,1.013419}, + {-0.251294,-0.004769}, + {0.889491,1.815880}, + {-1.038993,0.521891}, + {0.764166,-0.213457}, + {-0.562020,-1.509213}, + {0.211293,-0.936981}, + {-0.463538,1.090030}, + {-0.553620,-0.791400}, + {0.611880,-0.306484}, + {0.044468,-0.166676}, + {-0.023328,-1.778915}, + {-0.214294,-0.414020}, + {-0.756939,-1.513298}, + {0.250125,-0.882986}, + {1.120913,-0.169637}, + {0.645831,-0.162204}, + {1.177705,-0.888318}, + {0.363945,-0.029949}, + {0.402238,-0.546777}, + {-0.094455,-0.101378}, + {0.164174,0.060548}, + {-0.169991,-1.176339}, + {-0.374419,-0.123020}, + {-0.914397,-0.405280}, + {-0.853371,-0.380429}, + {1.609595,1.394657}, + {0.488861,0.494798}, + {0.158526,0.345015}, + {0.803121,0.150331}, + {-0.081292,0.181697}, + {0.393064,-0.478711}, + {0.279182,0.092095}, + {0.430334,-0.073225}, + {0.014806,0.588098}, + {0.913267,0.970571}, + {0.646704,0.609592}, + {0.566444,0.775254}, + {-0.335177,1.080688}, + {0.127562,1.140199}, + {0.165559,-0.264557}, + {-1.069915,-0.891586}, + {0.507922,-0.743511}, + {-0.734341,1.039713}, + {-0.738939,-0.058723}, + {0.759593,-1.014583}, + {0.555667,-1.733928}, + {-1.367914,-1.030299}, + {0.188542,-0.418601}, + {0.793444,-0.741383}, + {-0.040384,0.198946}, + {1.361842,-0.048743}, + {-0.225959,0.500185}, + {-0.613758,-0.930241}, + {-1.065079,-1.626019}, + {-1.661331,0.447628}, + {-1.178209,-1.594785}, + {0.385772,0.687990}, + {0.320431,0.326874}, + {-0.209635,0.241160}, + {-0.478316,-0.322029}, + {-1.574782,0.928755}, + {-0.150281,0.335387}, + {0.346979,0.106675}, + {-0.979085,-0.448834}, + {-0.484871,-0.130679}, + {-0.882404,-0.284669}, + {-0.135947,1.428153}, + {0.289974,0.663804}, + {-0.832558,-0.786738}, + {0.566306,1.650858}, + {-0.618622,-0.104784}, + {-0.597685,-0.212515}, + {1.865293,1.206891}, + {0.617878,-0.378103}, + {-0.276038,1.353459}, + {0.879395,0.084117}, + {-0.648554,-0.500746}, + {0.603251,-0.759062}, + {-1.056790,0.769620}, + {0.451470,-0.190342}, + {1.668428,-1.349133}, + {-0.399983,-1.187873}, + {-0.876715,0.206248}, + {0.800569,-0.255028}, + {0.108497,1.535395}, + {-0.321630,0.307984}, + {-0.010085,-1.543582}, + {0.733422,-0.807197}, + {-0.527735,0.361278}, + {0.546397,-0.913698}, + {0.386942,-0.026931}, + {-0.683948,1.644054}, + {-0.713074,-0.760496}, + {0.729880,0.611484}, + {-0.324111,-0.185442}, + {0.513507,0.655970}, + {0.973032,0.708102}, + {0.162839,-1.911128}, + {0.171333,0.442628}, + {0.793978,0.363283}, + {0.139764,-0.553196}, + {1.477350,0.571024}, + {0.046847,-0.083842}, + {0.774276,0.538647}, + {-1.232450,-0.279392}, + {0.998783,0.699271}, + {-2.497752,0.890340}, + {-0.686000,-0.489450}, + {-0.622210,0.728997}, + {-0.896078,-0.269973}, + {0.254307,0.947307}, + {1.029120,0.030115}, + {-0.457637,0.586413}, + {-0.570341,0.796948}, + {-0.326200,0.703162}, + {0.718013,-0.641897}, + {-0.347796,-0.117920}, + {0.980266,-0.427121}, + {0.715130,0.436598}, + {-0.354809,-0.981161}, + {0.609447,0.117866}, + {-1.117899,1.185150}, + {-0.070233,0.421426}, + {0.362961,-0.220281}, + {0.091918,-0.947668}, + {-0.918369,0.893874}, + {1.165251,0.420864}, + {1.432566,-0.178810}, + {-0.356868,-0.188257}, + {-0.815491,-0.404427}, + {-1.070312,-1.216305}, + {-0.318984,-0.583511}, + {1.848678,0.453940}, + {-0.708129,0.177312}, + {-0.893931,1.710539}, + {0.093921,0.348349}, + {1.105949,0.999284}, + {0.967769,-0.721817}, + {0.937282,0.156570}, + {1.436906,1.511836}, + {0.508619,-0.010131}, + {-0.069583,-0.309253}, + {0.108287,0.135978}, + {-0.739620,-0.139477}, + {-0.651608,1.778285}, + {0.027295,-0.276027}, + {0.751467,0.405693}, + {-0.350001,1.687277}, + {0.358628,-0.135793}, + {1.669210,-0.094304}, + {0.563354,0.389800}, + {-0.248111,-0.198466}, + {0.074279,-0.311566}, + {0.205118,-0.722409}, + {0.284728,0.431713}, + {-0.299721,0.775480}, + {0.288778,1.204617}, + {-2.612038,1.096907}, + {0.138972,0.125366}, + {0.298215,0.304176}, + {-0.193236,1.529766}, + {0.485275,-0.982963}, + {0.725341,-0.936405}, + {-0.065237,0.208370}, + {0.125534,-0.205573}, + {-1.821296,0.674082}, + {-0.275038,0.327760}, + {-0.727191,-1.227306}, + {-0.865239,0.939065}, + {-0.803833,1.620915}, + {-0.842433,-1.108209}, + {-0.401148,-0.736410}, + {-0.115040,-1.629236}, + {-2.049102,-0.888722}, + {0.563586,-1.881832}, + {0.500135,0.870559}, + {-0.623029,-1.087557}, + {0.560799,-0.777685}, + {-0.023666,-0.920057}, + {0.514122,-0.387123}, + {0.330311,-0.267867}, + {0.141501,-0.770913}, + {0.895122,1.295559}, + {0.235886,-0.142025}, + {-1.600266,1.392146}, + {0.062394,-0.199017}, + {0.105093,0.847228}, + {-0.004692,-0.611023}, + {-1.105202,-0.676440}, + {-0.803199,0.080607}, + {1.068037,-1.432548}, + {-0.073955,0.534296}, + {-1.544967,-0.292418}, + {-0.018596,0.600587}, + {0.693918,0.111383}, + {0.875333,0.538827}, + {0.810163,0.603066}, + {-0.991128,0.633334}, + {1.410649,-0.273373}, + {-1.402586,0.048299}, + {-0.476167,-0.040214}, + {1.133741,0.893093}, + {-1.976746,0.495152}, + {-0.762297,-0.434453}, + {-0.407391,0.458918}, + {0.081289,-0.693117}, + {-0.901769,-0.566278}, + {0.294244,0.018293}, + {-1.778410,0.169995}, + {-0.065897,-0.565356}, + {-0.067741,-0.386928}, + {-0.042227,-0.470778}, + {-0.724262,-0.448146}, + {0.799391,-0.353504}, + {0.736085,-0.189575}, + {-0.170609,-0.001362}, + {-0.876784,-0.416884}, + {-1.194944,-1.159666}, + {0.378294,-0.050373}, + {2.029991,0.034750}, + {0.488729,0.272216}, + {0.100163,0.084453}, + {0.619746,0.787200}, + {1.516011,0.190597}, + {0.242183,-0.282804}, + {1.348479,0.195434}, + {1.574083,0.044098}, + {-1.648078,0.005385}, + {-0.240798,0.327597}, + {-0.072394,-0.742375}, + {-0.357626,-0.537052}, + {-1.019427,-1.502025}, + {0.265137,1.275985}, + {-1.408237,0.487417}, + {0.488564,0.094077}, + {0.538473,0.089383}, + {0.822984,-0.041699}, + {0.446649,0.965423}, + {0.425275,0.258184}, + {0.293588,-0.009747}, + {-1.901312,0.094518}, + {0.055270,0.104028}, + {0.717610,-0.083141}, + {-1.028907,0.529666}, + {0.276336,-1.707147}, + {0.518490,0.271655}, + {-0.157786,-0.735939}, + {-0.642959,0.105473}, + {-0.194654,0.744489}, + {1.057427,0.578372}, + {-0.078556,0.535382}, + {0.275007,0.425924}, + {-1.493477,0.323239}, + {0.384662,-0.732389}, + {-0.458062,-0.246727}, + {-0.009941,-0.256232}, + {-0.431288,0.694332}, + {1.237922,-0.196164}, + {0.049717,-0.417202}, + {-0.828197,0.209999}, + {-1.328594,-0.698908}, + {0.817510,1.298454}, + {0.021412,-0.376025}, + {0.656062,-0.479696}, + {0.739794,-0.697219}, + {0.359927,0.330324}, + {0.490626,-1.394430}, + {0.003006,-0.052538}, + {0.188833,0.728305}, + {-1.187172,0.758908}, + {-0.519732,-1.148840}, + {-0.411235,-1.217214}, + {0.955021,-0.430176}, + {-0.523480,-0.587903}, + {-1.227340,0.033012}, + {0.122805,-0.649916}, + {0.990446,-0.160799}, + {0.217109,0.439570}, + {0.197974,-0.855599}, + {-1.016884,-0.834066}, + {-0.685161,0.797699}, + {0.718871,0.735908}, + {-2.084638,-0.653982}, + {0.229928,0.252590}, + {0.876971,-1.135835}, + {0.208727,-1.096199}, + {0.189714,0.324005}, + {0.559235,0.891645}, + {-0.337588,1.226503}, + {-0.633028,1.304579}, + {0.352611,0.118112}, + {0.755508,-1.202909}, + {-0.368064,0.379022}, + {0.187482,0.040502}, + {-0.489215,-0.316624}, + {-0.148897,1.794500}, + {0.617933,0.380534}, + {0.724284,0.929908}, + {-0.101068,0.829591}, + {0.239707,0.830689}, + {1.419880,-0.703233}, + {0.428630,-0.738185}, + {0.188227,-0.067175}, + {0.848946,-0.139604}, + {1.358890,-0.759908}, + {-0.598246,-1.356423}, + {0.708571,-0.747022}, + {-1.307309,-1.158771}, + {1.114919,0.003653}, + {0.247448,0.759891}, + {0.629880,-0.013493}, + {0.581883,-0.841438}, + {-0.348783,0.559365}, + {0.553004,0.045767}, + {-0.689707,0.334441}, + {0.783204,0.262356}, + {1.422351,-0.205031}, + {2.033491,0.619792}, + {-0.663187,-0.541048}, + {0.546304,0.061896}, + {0.954720,1.149216}, + {-0.559310,0.175198}, + {1.274649,1.348253}, + {-0.247850,-0.207347}, + {1.742038,1.103291}, + {0.043844,-0.424239}, + {0.614981,-0.080676}, + {-0.517806,1.025811}, + {0.801125,-0.606164}, + {0.473503,0.520220}, + {-0.308974,0.331494}, + {-1.295514,-0.646832}, + {-0.472990,-0.230161}, + {0.174489,-0.366097}, + {-0.118363,-0.163279}, + {-0.200880,-0.899742}, + {0.998390,-0.199202}, + {-0.622541,-0.695766}, + {0.669754,-0.206478}, + {0.106122,0.549600}, + {0.591344,0.214104}, + {0.488377,0.644834}, + {1.136572,1.169122}, + {0.323891,0.444824}, + {-0.562209,-0.060314}, + {0.213956,-1.280496}, + {-0.321971,-1.103028}, + {0.672409,-0.083641}, + {0.495207,0.706465}, + {-0.494982,1.309929}, + {0.994709,-0.975631}, + {0.059966,-0.007228}, + {1.295286,0.210362}, + {-1.155912,0.093655}, + {-0.270843,0.470326}, + {0.756844,0.345241}, + {0.514597,0.140073}, + {-0.621769,0.148131}, + {0.357821,-0.203675}, + {-0.273598,-0.884954}, + {-0.849266,-0.397208}, + {-0.405585,-1.645132}, + {-0.010028,-0.355219}, + {-0.143243,0.535060}, + {-0.489155,0.541734}, + {-1.917934,0.442072}, + {1.120600,0.609251}, + {-0.806215,-0.431671}, + {1.317120,-1.219868}, + {0.067240,1.040216}, + {-0.567193,-1.387665}, + {0.795042,0.402961}, + {-1.025794,-0.277941}, + {0.649983,1.281336}, + {-0.256848,0.005927}, + {0.607023,0.715590}, + {0.540951,-0.424004}, + {-0.353391,1.289066}, + {1.755964,-0.674437}, + {-0.664991,-0.691634}, + {-0.096792,0.422837}, + {-1.167967,0.555492}, + {0.152719,-0.072909}, + {0.116643,0.226822}, + {-0.630662,-0.558520}, + {0.414169,-0.530572}, + {0.717343,-0.343964}, + {0.485011,-0.965124}, + {0.132872,-1.176696}, + {-0.542650,-0.059320}, + {-0.771646,-0.399126}, + {-0.848580,0.963529}, + {0.186147,0.262803}, + {0.352650,0.664986}, + {0.993840,0.913475}, + {-0.484132,-0.800343}, + {0.680518,0.491133}, + {-0.187661,0.025441}, + {-0.647229,0.234518}, + {1.007825,-0.196186}, + {0.956857,-1.015468}, + {-0.722691,-1.369092}, + {0.254518,0.088674}, + {0.029979,-0.009861}, + {0.301615,0.155056}, + {0.039314,0.343316}, + {0.145456,1.183385}, + {0.775872,0.441937}, + {-0.305562,-1.261231}, + {-0.509677,-1.261546}, + {-0.452788,-0.152168}, + {-0.024417,0.566667}, + {0.156338,0.402470}, + {0.451700,-0.516105}, + {0.517440,0.675626}, + {0.108431,0.416795}, + {-0.764284,-0.532834}, + {1.206985,0.069426}, + {-0.932342,1.046480}, + {-0.777393,0.052027}, + {-1.092549,0.033582}, + {0.197445,-0.491148}, + {-0.411677,-0.336139}, + {-0.037210,-0.926280}, + {-0.708483,0.693739}, + {0.664921,-1.385649}, + {-1.353380,1.021171}, + {-0.241049,-0.683939}, + {-0.029907,0.167199}, + {-1.608903,-0.559216}, + {-0.181052,0.821785}, + {1.590072,-1.518116}, + {1.057565,-0.689682}, + {-1.281043,-0.980591}, + {0.304693,-1.080609}, + {-0.240484,0.707799}, + {-0.768310,-0.067520}, + {0.843861,-0.009503}, + {0.807601,-0.431015}, + {-0.512754,-0.550360}, + {1.284096,-1.260585}, + {-0.922574,0.298207}, + {-0.393917,-0.519193}, + {0.127912,-0.984685}, + {-0.144986,0.035279}, + {0.188536,0.393360}, + {0.259745,-0.309148}, + {-0.677779,-0.595934}, + {-0.037591,-0.101627}, + {-0.309109,0.365495}, + {-0.102452,1.566645}, + {1.387901,-0.195166}, + {-0.446879,-0.526524}, + {0.997398,-0.882687}, + {0.031554,0.124163}, + {-0.931075,0.093264}, + {0.482681,1.855809}, + {-0.010467,0.925571}, + {0.169549,0.122786}, + {-0.090570,-0.028792}, + {0.849088,-1.107529}, + {0.050598,0.536702}, + {-0.571372,0.390521}, + {0.337937,0.089426}, + {-0.070935,-0.296006}, + {-0.543102,-0.683296}, + {-0.082528,1.188412}, + {-0.075670,0.684850}, + {0.217929,0.127319}, + {0.244448,0.690258}, + {-0.526178,0.479326}, + {-0.126780,1.089720}, + {0.456035,-0.008824}, + {-0.236651,0.009875}, + {-0.671016,-0.961407}, + {0.700866,0.834313}, + {-0.049151,0.411310}, + {0.069039,0.176343}, + {1.372698,0.367522}, + {-0.107484,0.090397}, + {-1.242871,0.580082}, + {0.352131,0.516255}, + {-0.409130,-0.283403}, + {0.399885,-0.173183}, + {-0.911535,-1.057501}, + {-0.134356,-0.571363}, + {-0.200745,-0.714382}, + {0.247331,-1.213185}, + {-0.183543,0.319417}, + {-0.359287,-0.789582}, + {-0.258945,-0.568476}, + {0.371024,-0.265164}, + {-0.075029,-1.608623}, + {0.082652,2.076230}, + {-1.223628,-1.586630}, + {0.405567,0.823574}, + {0.054968,0.521170}, + {-1.478086,0.062628}, + {0.111418,-0.029518}, + {-1.266318,0.854860}, + {0.944464,-0.835138}, + {0.460958,0.185149}, + {-0.058453,0.047748}, + {0.078237,-0.159788}, + {0.734696,0.268869}, + {0.027735,-1.024541}, + {0.228605,-1.028311}, + {-0.264515,0.187069}, + {0.016598,0.390539}, + {0.080454,0.084167}, + {-0.373853,-0.258455}, + {0.496835,-0.132385}, + {-1.257065,0.046987}, + {0.335159,0.020590}, + {0.466133,0.439269}, + {0.014981,1.110095}, + {0.785194,0.155149}, + {-0.920996,-0.294657}, + {-0.108107,0.667374}, + {-0.074103,0.487597}, + {0.309323,0.450575}, + {1.192132,0.937428}, + {-0.334944,-0.222933}, + {0.412831,-1.114841}, + {0.239488,-0.354992}, + {0.444740,-0.426829}, + {-0.133782,0.466919}, + {-0.488809,0.609075}, + {0.312304,-0.261759}, + {-0.790404,-0.962166}, + {-0.274962,-0.943480}, + {-0.063458,0.313199}, + {0.754376,-0.624958}, + {0.894785,0.254635}, + {-0.454480,-0.679299}, + {-0.017854,-0.594485}, + {-0.423178,-0.160964}, + {-0.458684,-0.155883}, + {-0.663973,0.506733}, + {0.541449,-0.654020}, + {0.172654,0.253066}, + {1.021464,-0.901336}, + {0.111092,-0.491099}, + {0.252050,-0.769468}, + {-0.617856,0.312547}, + {-0.409293,-1.120223}, + {0.039604,-0.485376}, + {-1.493487,0.335907}, + {0.274749,0.723980}, + {-0.203481,-0.723032}, + {-0.495656,-0.759281}, + {1.456744,-1.628369}, + {-0.975111,0.016837}, + {-0.622091,1.044867}, + {-0.434081,-0.462833}, + {-0.315109,-0.189411}, + {0.081910,-0.831801}, + {-0.414067,0.096517}, + {0.024855,-0.006315}, + {-0.505820,0.029401}, + {0.677997,-0.561131}, + {1.161094,-0.385332}, + {0.171413,-1.071286}, + {0.796474,0.125143}, + {0.737257,0.495755}, + {-0.760664,0.609637}, + {0.050209,0.872019}, + {-0.779293,-0.049293}, + {-0.084521,-0.987525}, + {0.836932,0.679155}, + {0.295252,-0.767659}, + {-0.018792,0.419797}, + {-1.163658,0.443970}, + {-0.266127,-0.327858}, + {0.087685,-1.161947}, + {-0.369729,0.762725}, + {0.172665,-0.329469}, + {0.330880,0.749120}, + {-0.816435,-0.491657}, + {0.111348,-1.505915}, + {0.209077,0.184622}, + {-2.342060,-0.110587}, + {0.307412,0.700396}, + {0.113512,-0.465633}, + {-0.646155,0.716656}, + {-0.638825,-1.478782}, + {0.450901,-0.035870}, + {0.035266,1.827315}, + {0.737470,-0.119507}, + {-0.228202,0.108246}, + {0.825314,0.200114}, + {0.487949,0.471538}, + {-0.357296,0.391417}, + {0.180314,0.346172}, + {0.559934,0.139351}, + {-1.305116,0.414318}, + {0.716210,0.212909}, + {-0.013896,1.197851}, + {-1.824869,-0.867501}, + {-0.515474,0.050329}, + {-0.414146,-0.076725}, + {0.708817,-1.133978}, + {-0.639175,0.428318}, + {1.050038,0.727185}, + {-0.702393,0.513455}, + {0.276582,0.809652}, + {0.077934,0.198272}, + {2.196177,0.991960}, + {-0.440575,-1.385910}, + {0.706450,-0.276282}, + {-0.391529,0.375718}, + {0.486569,-0.694199}, + {-0.074971,-1.160590}, + {0.662076,0.018694}, + {0.336811,-0.550141}, + {-0.387020,-0.397890}, + {-0.096345,0.269838}, + {-0.026117,-0.057475}, + {0.158403,-0.187549}, + {0.420344,-0.129844}, + {0.190663,-0.087482}, + {-0.366855,0.893119}, + {-0.249219,0.316325}, + {-0.117221,-0.587177}, + {-1.294407,1.470405}, + {0.418475,-0.548199}, + {1.001920,-0.042350}, + {-0.292716,-0.515533}, + {-1.153163,0.988116}, + {-0.289238,-0.720697}, + {-0.106232,-1.124727}, + {-0.965999,0.865133}, + {-0.401036,0.078021}, + {-1.109930,-0.864017}, + {0.297575,0.865459}, + {0.995143,0.682193}, + {-0.599609,-1.702099}, + {0.883933,-0.307388}, + {0.802376,-0.004978}, + {-0.401257,0.112706}, + {0.384942,-1.000741}, + {-0.989461,0.937746}, + {0.964376,-0.361083}, + {1.014743,-0.689544}, + {-1.640868,0.131432}, + {0.631133,-0.101351}, + {0.185813,0.273002}, + {-1.225259,-0.530792}, + {1.054923,0.095617}, + {-0.207572,0.807720}, + {0.950261,-0.272710}, + {-0.842451,1.027046}, + {-0.948909,0.464619}, + {-0.652197,-0.593345}, + {0.386114,0.647057}, + {-0.348600,-0.148170}, + {0.035874,-0.075556}, + {-0.566582,0.252229}, + {-1.150907,0.142389}, + {-0.373560,0.708924}, + {0.179962,0.177331}, + {0.017741,1.577087}, + {-0.489230,-0.574279}, + {-0.239784,0.779613}, + {-0.897308,-0.203218}, + {0.925241,0.527958}, + {1.036630,0.416062}, + {0.888976,0.209959}, + {0.455977,0.361892}, + {0.395073,0.243300}, + {0.499225,0.860184}, + {1.188627,0.506501}, + {-0.358162,-0.525381}, + {1.769127,-0.519498}, + {-0.973750,0.263258}, + {0.081556,-0.101205}, + {1.293777,0.240134}, + {0.128978,-1.442584}, + {0.092528,-0.197125}, + {-0.117172,-0.490877}, + {-0.946199,-0.606982}, + {0.652803,-0.511129}, + {0.043937,-0.032281}, + {0.284060,0.005765}, + {-0.734968,-1.145450}, + {-0.025606,-0.626951}, + {-0.375895,0.717175}, + {0.438582,0.918001}, + {0.038609,-1.114450}, + {1.118108,0.106149}, + {1.272686,0.846763}, + {0.633646,-0.105666}, + {-0.205043,0.210912}, + {-0.334164,-0.085337}, + {-0.206717,0.894467}, + {-0.085313,1.097756}, + {-0.399149,-0.100234}, + {-0.149590,0.007444}, + {0.494023,-1.223272}, + {-1.126557,-0.292829}, + {1.506312,-0.733856}, + {0.129777,-0.464705}, + {-0.430088,0.615048}, + {1.070713,1.226466}, + {-0.500223,-0.890256}, + {0.241018,-0.691634}, + {-0.425803,-1.598684}, + {-0.349414,0.668187}, + {-0.759980,-1.039801}, + {0.099818,0.588593}, + {0.661566,-0.452644}, + {-0.276551,-0.245314}, + {0.062076,0.738192}, + {-0.436350,-1.545334}, + {-0.338107,0.327650}, + {-0.671510,-0.169933}, + {-0.250838,-0.394788}, + {-0.716007,0.057696}, + {0.716020,0.323465}, + {0.287767,-0.496472}, + {-1.361017,-1.022037}, + {-0.389014,-0.327876}, + {0.005581,0.230345}, + {1.057323,0.344696}, + {0.404404,0.524537}, + {0.213022,1.094306}, + {-0.594658,-0.593064}, + {-0.748241,0.800080}, + {-0.115638,-0.166546}, + {-0.107154,-0.697047}, + {-0.458238,-0.452683}, + {-0.336989,-0.047009}, + {-1.289175,1.647780}, + {0.150375,-0.407781}, + {0.597241,-0.547383}, + {0.443295,0.936489}, + {0.590847,-0.187656}, + {-1.212900,0.882074}, + {0.484389,-0.686777}, + {1.149782,-0.194390}, + {-1.172668,0.032417}, + {0.260298,-1.012974}, + {-0.294107,-1.012750}, + {0.801182,0.633359}, + {0.239464,0.241602}, + {-0.881659,-1.163284}, + {0.489810,-0.463799}, + {0.565567,0.113305}, + {-0.556349,-1.347072}, + {-1.062547,-0.931198}, + {-0.738569,-0.353611}, + {1.317955,-1.099776}, + {0.148693,-0.201014}, + {0.133189,0.681195}, + {-0.120725,0.135954}, + {0.109002,-0.457197}, + {-0.694733,0.709827}, + {0.529587,0.628810}, + {-1.078803,0.606417}, + {-0.135627,1.108991}, + {0.037637,-1.260746}, + {-1.080624,1.191058}, + {0.359973,0.135705}, + {0.232936,0.269440}, + {0.002593,-0.783674}, + {-0.069699,1.212021}, + {-0.664211,-0.740183}, + {0.165729,0.041761}, + {-0.317411,0.070021}, + {-0.172353,-0.428702}, + {0.332293,-0.774738}, + {-0.917322,-0.820716}, + {-0.058246,-0.746256}, + {0.477261,-0.232573}, + {-0.644001,0.166028}, + {-0.429890,0.847238}, + {-0.056154,-1.187696}, + {-0.879377,-0.311314}, + {-0.187718,-0.505879}, + {0.145068,0.268477}, + {0.344934,-0.459281}, + {-0.892009,-0.676237}, + {-0.648511,-0.152063}, + {0.285463,0.019339}, + {-0.020319,-0.901552}, + {-0.937522,0.163649}, + {-0.431348,-0.446665}, + {-0.614010,-0.352647}, + {0.890186,-0.313942}, + {0.187972,0.408152}, + {-0.040763,-0.587026}, + {-1.192632,-0.395902}, + {-0.089341,0.188121}, + {-1.109439,0.101585}, + {-1.721289,-1.011886}, + {-0.451708,0.401072}, + {-0.878256,-0.235344}, + {0.572753,-0.329785}, + {-1.136417,1.039607}, + {-0.433782,-0.120676}, + {0.567816,0.084631}, + {0.546969,-0.179829}, + {0.225644,-0.412318}, + {0.171741,0.816235}, + {-1.141608,-0.629613}, + {-0.537893,-0.566981}, + {0.734572,1.390754}, + {0.099797,-0.210714}, + {-0.603835,-0.911116}, + {-0.919496,0.154357}, + {-0.200722,-0.585775}, + {0.721968,0.331313}, + {0.561601,0.473508}, + {0.550664,-0.258516}, + {-0.237893,0.651197}, + {-0.756266,0.166779}, + {-0.705900,0.481691}, + {-0.006736,0.003238}, + {0.955769,0.739538}, + {-1.102150,-2.203276}, + {-0.152229,-0.119703}, + {-0.498020,0.338978}, + {1.435975,0.240195}, + {0.009239,2.011670}, + {0.176554,0.774631}, + {-0.793129,0.211589}, + {-0.072293,0.240170}, + {0.881402,0.528900}, + {0.458104,0.297768}, + {1.425877,-0.725340}, + {-1.097623,-0.304087}, + {-0.127377,-0.767495}, + {-0.019548,0.382421}, + {0.498701,1.214140}, + {0.443213,-0.118249}, + {-0.071224,-0.014039}, + {0.630956,-1.420196}, + {1.092859,-0.858199}, + {0.601709,-0.454233}, + {0.061239,-0.833424}, + {-0.018905,0.604909}, + {0.465324,-1.778430}, + {-0.755851,0.803587}, + {1.085178,-0.492003}, + {0.820772,-0.064660}, + {0.125793,-1.132899}, + {0.315742,-0.133927}, + {0.890772,0.347966}, + {0.509473,-0.904259}, + {0.313390,-1.242697}, + {-0.183140,-0.195672}, + {-0.664699,-0.149961}, + {1.498274,-0.991017}, + {-1.516974,-0.399403}, + {-0.916197,0.142253}, + {0.040795,-0.428170}, + {-0.845305,0.260543}, + {1.148172,1.459513}, + {-0.079861,0.168896}, + {0.687934,0.865708}, + {-0.536824,0.124210}, + {-0.692623,-1.014247}, + {-1.316924,-0.789046}, + {0.636503,-0.209795}, + {0.552650,0.090913}, + {-0.033354,0.150511}, + {1.249451,-0.206799}, + {0.901957,-0.045704}, + {-0.268462,0.797655}, + {-0.295622,-0.834320}, + {-0.623560,0.392378}, + {0.753139,-0.171098}, + {-0.315586,-0.093971}, + {-0.171782,0.310994}, + {-0.584684,-1.313163}, + {0.305928,1.064417}, + {0.262624,-0.763970}, + {-0.460683,-1.066815}, + {0.775057,0.025142}, + {-0.476420,0.420022}, + {-0.123804,-0.614338}, + {0.107369,-0.775216}, + {1.000481,-0.185825}, + {0.204721,0.528385}, + {0.234913,0.036659}, + {-0.580442,0.580949}, + {1.199714,-0.639281}, + {-0.175095,-1.293234}, + {0.211567,-1.011604}, + {0.534241,0.104124}, + {0.475270,0.112080}, + {-0.296861,0.570522}, + {-0.006516,-0.807378}, + {1.324154,0.366234}, + {0.385646,0.663829}, + {0.952289,-0.020348}, + {-0.107272,-0.904948}, + {-0.430374,-0.791322}, + {0.023816,0.049091}, + {-0.739512,-0.394887}, + {0.267303,0.220767}, + {0.585441,-0.615484}, + {-0.174586,-0.975560}, + {-0.857831,0.240895}, + {-0.578808,0.608267}, + {-0.618652,-0.737440}, + {-1.703410,1.076574}, + {0.239973,-0.524723}, + {-0.877083,0.885381}, + {0.364504,-1.546471}, + {0.843914,1.160001}, + {1.150505,1.071204}, + {-0.370583,-0.153527}, + {-0.146237,-1.166747}, + {1.580330,0.835601}, + {1.183807,-0.290036}, + {0.408171,0.697836}, + {-1.363711,1.276123}, + {0.003091,-0.751142}, + {0.892821,1.683361}, + {-0.181868,0.148855}, + {0.247007,-0.270453}, + {-0.864199,-0.144221}, + {0.131680,-1.468996}, + {1.015785,0.628468}, + {0.080450,-0.687172}, + {-0.209898,0.096785}, + {0.759138,-0.425614}, + {-0.758907,-0.363425}, + {0.295546,-0.675126}, + {0.137910,0.585381}, + {-0.615761,-0.004313}, + {0.900616,0.336981}, + {1.909880,-0.158311}, + {-0.634418,-0.790108}, + {-0.475383,0.335938}, + {-0.438158,1.008165}, + {-0.066609,-0.342591}, + {1.040649,0.129256}, + {-0.317508,0.138331}, + {-0.934472,0.287414}, + {-0.822846,-0.707184}, + {0.013228,0.200951}, + {-0.192966,0.231664}, + {0.702280,-0.035047}, + {1.601308,-0.110163}, + {0.968228,0.484041}, + {0.267920,1.208324}, + {0.387431,0.257585}, + {0.137627,-0.038053}, + {-0.533791,-0.592955}, + {-0.208416,-0.090015}, + {1.242265,-0.575457}, + {-0.093360,0.612640}, + {0.474705,1.164073}, + {-0.223268,-0.303550}, + {0.725415,0.987524}, + {-0.792211,0.833725}, + {-0.127078,0.253060}, + {1.032843,-0.053796}, + {-0.611660,0.688883}, + {0.020020,-0.682951}, + {-0.061453,1.055994}, + {0.159875,0.842203}, + {1.073916,0.515861}, + {-1.002761,0.703949}, + {-0.433069,-0.241907}, + {-0.485950,0.355489}, + {0.046573,0.251588}, + {0.594776,1.519930}, + {-0.353550,-0.125344}, + {0.019352,-0.371083}, + {0.567640,-0.653759}, + {-0.250529,0.176770}, + {-0.406982,0.103083}, + {0.373635,0.728257}, + {1.588916,-0.649808}, + {-0.478022,-0.050687}, + {0.377243,0.193279}, + {-0.036592,-0.246075}, + {1.520919,1.009384}, + {0.159340,0.341124}, + {-0.463280,0.378020}, + {-0.035160,0.543988}, + {0.118358,0.710502}, + {-0.619443,0.780539}, + {0.191851,0.377155}, + {-0.776310,-0.116329}, + {-0.276307,-0.043138}, + {-1.211908,0.346911}, + {0.079369,-0.858422}, + {0.016724,0.926178}, + {1.256652,-0.481102}, + {-0.806248,0.229023}, + {0.044788,0.119707}, + {-0.262081,0.272806}, + {0.932057,-0.006805}, + {0.544372,-0.095148}, + {-1.383816,-1.364462}, + {-0.358308,1.050147}, + {0.273473,-0.855889}, + {-0.003535,0.064740}, + {-0.833668,-1.139499}, + {-0.191707,0.659760}, + {-0.462448,0.173778}, + {-0.025911,0.309467}, + {-0.460535,0.971118}, + {1.307444,1.320250}, + {1.627809,0.805101}, + {0.508275,-0.630378}, + {-0.234563,1.086843}, + {-0.122915,0.361400}, + {-0.915180,0.611521}, + {-0.286575,-0.818160}, + {0.182178,0.788028}, + {0.604783,-0.208278}, + {0.359150,1.039738}, + {-0.992256,0.972576}, + {0.106132,-1.299370}, + {-0.162884,1.643172}, + {-0.338271,0.643220}, + {-0.862948,-0.463959}, + {0.326343,0.010285}, + {-0.098661,-0.720012}, + {0.058748,0.476613}, + {-0.313979,0.106628}, + {0.342506,-1.683328}, + {-0.675662,0.430103}, + {-0.378889,-0.229145}, + {1.071848,0.353785}, + {-0.028918,-0.457589}, + {0.480169,1.182056}, + {-0.186146,0.337164}, + {0.032820,-0.383106}, + {-0.716018,0.172634}, + {-0.408182,-0.131892}, + {0.656507,-1.192520}, + {-0.081387,-1.758375}, + {0.157451,0.629884}, + {-0.501019,0.814047}, + {-0.998292,-0.030481}, + {-0.562935,0.654219}, + {0.092469,-0.943344}, + {0.875478,0.782977}, + {0.136500,0.716997}, + {-0.130205,0.061150}, + {0.772493,-0.787669}, + {-0.069071,-1.069128}, + {0.020852,0.155118}, + {-0.691191,-0.378006}, + {0.037354,-0.996423}, + {1.281753,-0.929153}, + {-0.426147,-0.438014}, + {0.112682,1.190760}, + {-0.025867,-0.051631}, + {0.855843,0.245861}, + {-1.283729,0.078821}, + {0.082616,0.423985}, + {0.650177,0.257912}, + {-0.288642,-0.113135}, + {-0.309283,0.956368}, + {0.275866,0.777270}, + {1.063946,-0.850517}, + {-0.114175,-0.925831}, + {-0.197025,0.160165}, + {0.188163,0.770923}, + {0.725416,-0.238262}, + {0.532756,0.332611}, + {0.110235,0.733467}, + {0.568374,-0.980107}, + {0.264085,-0.102002}, + {0.128516,0.242100}, + {-0.326246,0.476676}, + {0.177628,1.005675}, + {0.183542,-0.730819}, + {0.560809,0.026720}, + {-0.555138,-0.837223}, + {-1.111326,-0.738718}, + {-0.573157,1.307743}, + {0.039276,-0.375639}, + {-0.610247,0.441594}, + {0.288641,-0.912492}, + {1.190911,0.545295}, + {0.782747,0.523818}, + {-0.489349,-0.232879}, + {-0.020657,-0.703896}, + {0.073902,0.609629}, + {0.772461,-0.210514}, + {-0.035950,0.573090}, + {0.973263,0.098002}, + {0.573650,-0.286151}, + {-0.420773,0.322248}, + {0.828456,-0.527977}, + {1.858361,0.248676}, + {-0.216404,0.356862}, + {-0.646708,-0.483857}, + {-0.093864,-0.293461}, + {0.583492,-0.646171}, + {-1.115405,-0.181960}, + {1.366417,-1.845473}, + {-0.794050,0.390124}, + {0.467227,0.144103}, + {0.059131,1.012538}, + {0.365336,0.237803}, + {-0.484233,-0.485568}, + {-1.005855,-0.440960}, + {0.502362,-0.343204}, + {-0.153506,-0.221922}, + {1.040348,0.847320}, + {0.875955,0.856994}, + {0.134586,-0.579993}, + {0.979287,-0.133640}, + {0.552321,0.102281}, + {0.541191,-1.039863}, + {-1.155057,-0.141459}, + {-0.136017,0.538894}, + {-0.816461,0.275250}, + {-0.724677,0.192772}, + {0.326787,-0.010919}, + {0.117003,1.159378}, + {0.504487,-0.285180}, + {-0.855043,0.300502}, + {0.497492,1.177945}, + {-1.019849,-0.391640}, + {0.294492,-0.148558}, + {-1.105971,-1.574034}, + {-0.549529,0.276093}, + {1.612157,0.358384}, + {-0.490901,-0.027039}, + {0.169836,1.390746}, + {-0.194342,-0.284269}, + {-0.171289,0.586009}, + {0.440634,-0.241719}, + {-0.866231,0.075171}, + {0.604738,0.501042}, + {-1.268727,0.181187}, + {0.970697,0.307040}, + {1.049433,0.365987}, + {-0.498752,0.386423}, + {-0.025266,-0.505426}, + {-0.073175,0.049414}, + {-0.182412,1.089200}, + {-0.323381,-0.689772}, + {0.110545,-1.103422}, + {-0.264985,1.043266}, + {-0.572449,1.384650}, + {0.364356,0.676386}, + {0.022608,0.196732}, + {1.158744,2.048316}, + {0.765193,-0.520691}, + {0.612272,0.175707}, + {0.822290,-0.539943}, + {-0.029847,0.542674}, + {-0.046485,-0.527074}, + {-0.247289,-0.309464}, + {-0.123121,0.695817}, + {-0.585551,1.109341}, + {1.091744,-0.323955}, + {-0.258755,0.608515}, + {-0.359400,-0.617556}, + {0.213343,0.803480}, + {0.723600,-0.553256}, + {-0.919498,1.614200}, + {0.151235,-0.057427}, + {0.507107,0.231984}, + {-0.423361,-0.409427}, + {0.846366,1.210201}, + {-0.481114,-0.023277}, + {-0.021299,0.801072}, + {0.087164,0.162119}, + {0.648244,-0.593489}, + {-1.033972,-0.776052}, + {-0.910048,0.009627}, + {1.145802,-0.064943}, + {-0.863007,0.893723}, + {-0.063187,0.408214}, + {0.097570,0.371056}, + {0.055008,0.378266}, + {0.760486,-0.116970}, + {0.175700,-0.711182}, + {-1.061988,-1.515268}, + {-0.366716,1.634002}, + {-1.127267,0.259187}, + {-0.105613,-1.658119}, + {-0.956148,0.078537}, + {-0.789998,-0.046661}, + {-0.555772,0.241221}, + {-0.361317,0.374073}, + {0.542807,-0.644804}, + {-0.067211,-0.306273}, + {-0.313289,-0.762354}, + {0.944145,0.011802}, + {0.344604,0.581157}, + {-0.238694,-1.260077}, + {-0.499531,-0.040909}, + {1.081440,-0.013408}, + {-1.020259,-0.402582}, + {0.168469,-0.449379}, + {-0.322218,-0.352819}, + {0.417512,0.125277}, + {-0.179187,0.773391}, + {0.934511,0.154665}, + {0.668175,1.139319}, + {-1.109726,-0.697647}, + {-0.058986,-0.618589}, + {1.224662,-0.691357}, + {-0.344564,1.430847}, + {-0.198289,0.080758}, + {0.248374,-0.855443}, + {0.510391,0.972455}, + {-0.236303,-0.325335}, + {0.461915,-0.112654}, + {-1.113610,-1.548437}, + {-1.242013,-0.824333}, + {-0.071317,0.322042}, + {-0.489653,-0.266651}, + {0.049223,-0.240123}, + {-0.017929,0.190162}, + {-0.643566,-0.146084}, + {0.581599,0.459194}, + {-0.885802,-0.729123}, + {0.659102,1.113099}, + {0.604221,0.372455}, + {0.150965,-0.404922}, + {0.024189,-0.589169}, + {0.181120,-2.232684}, + {-0.109871,-0.604952}, + {-0.441800,-1.783353}, + {1.351005,0.201968}, + {0.226026,0.178360}, + {0.052492,0.086991}, + {1.777618,1.068832}, + {-0.332651,0.317066}, + {0.541455,-0.685652}, + {0.392310,1.079179}, + {-0.427805,-0.269735}, + {0.498657,-0.582363}, + {0.940945,0.355367}, + {0.265536,-1.458500}, + {0.449227,0.874282}, + {0.227071,-0.627270}, + {-0.093351,-0.097808}, + {-1.145261,-0.218075}, + {0.484358,1.069822}, + {0.996167,0.219158}, + {0.164768,0.888018}, + {-0.524378,-0.335536}, + {0.408570,0.683742}, + {0.520097,-0.352789}, + {0.528279,0.701878}, + {0.254929,0.657117}, + {-0.913148,-0.518469}, + {-0.444215,-0.199164}, + {0.123173,0.541502}, + {0.623248,0.013648}, + {0.876430,0.188051}, + {-0.745054,-0.440719}, + {1.370839,-0.341183}, + {-0.557997,0.053702}, + {0.504211,-0.772695}, + {1.925599,-0.732382}, + {1.134615,0.354443}, + {-0.823694,0.010852}, + {-0.010443,-0.137324}, + {0.583601,-0.844533}, + {0.664869,1.118130}, + {-0.000382,0.444552}, + {-0.646392,1.280645}, + {1.497105,0.917277}, + {-0.230933,-0.814139}, + {-0.618821,-0.230543}, + {0.004494,-0.586885}, + {0.188155,0.759926}, + {0.400992,-0.852580}, + {0.916116,0.173815}, + {0.164091,-0.226974}, + {0.428332,-1.030586}, + {-1.450546,-0.165323}, + {-0.743664,-0.984256}, + {1.239929,0.021010}, + {0.169317,0.059045}, + {1.351634,0.648103}, + {-0.725472,0.514575}, + {0.682044,0.646209}, + {-0.254000,-0.088715}, + {0.820242,0.000807}, + {-0.199804,-1.335055}, + {0.568600,-0.573050}, + {-0.372125,1.120332}, + {-0.080109,-0.217794}, + {-0.077319,0.183705}, + {0.610015,-0.768326}, + {0.531406,-0.197264}, + {0.374272,0.746575}, + {0.811771,-0.070560}, + {0.456952,0.828381}, + {-1.114625,-0.778551}, + {-0.677564,-1.195200}, + {-0.032155,-0.146667}, + {0.160033,-1.240192}, + {0.784846,-0.048669}, + {0.226182,-0.040282}, + {-1.385046,-0.704092}, + {0.539381,-1.102437}, + {0.385233,0.702485}, + {0.229480,0.119168}, + {-1.160470,0.285107}, + {-0.541554,0.585548}, + {-0.348345,0.770643}, + {-0.277295,0.505369}, + {0.072372,0.074768}, + {-1.171783,-0.243523}, + {0.704349,0.708709}, + {0.059024,0.631281}, + {0.065354,1.504243}, + {-0.835199,0.568548}, + {-0.460690,1.264099}, + {-1.828812,-1.061787}, + {0.003831,0.815100}, + {-1.209037,0.131804}, + {0.842161,-0.991327}, + {0.138250,-0.926978}, + {-0.127969,0.712464}, + {-0.350826,1.252760}, + {0.556596,0.709099}, + {-0.880338,-0.882393}, + {0.633947,0.831589}, + {1.535985,0.012752}, + {-0.110222,-1.560059}, + {-0.473637,-0.328046}, + {-0.183194,0.641908}, + {-1.074374,0.106450}, + {0.837744,-1.048600}, + {0.080980,-1.310010}, + {0.538448,-1.136176}, + {-0.596666,-0.628378}, + {-0.594768,0.340720}, + {0.251058,-0.190293}, + {-0.061235,0.142368}, + {0.563618,-0.663220}, + {-0.994710,0.799951}, + {-0.013219,-0.077868}, + {-0.260975,0.436012}, + {0.701558,-1.555042}, + {0.218937,-0.839333}, + {0.189052,-0.893478}, + {-0.825828,-0.108326}, + {0.179960,-0.454794}, + {-0.189811,-0.729981}, + {0.258641,0.734701}, + {1.033546,-0.851021}, + {-0.481548,1.060999}, + {0.550961,-0.495215}, + {-0.720159,0.605927}, + {-0.918472,-1.437412}, + {0.238061,0.359825}, + {-0.669119,-0.477539}, + {-0.393230,1.100341}, + {-0.294604,0.625805}, + {1.183505,0.325424}, + {0.656797,0.302560}, + {-0.264583,1.659226}, + {0.944444,0.759065}, + {0.363301,-0.931562}, + {0.321250,0.144317}, + {0.056304,0.033562}, + {0.396821,-0.081704}, + {-0.146098,-0.157071}, + {-0.567406,0.542368}, + {0.087811,-1.191284}, + {0.645851,-1.129586}, + {-0.480500,0.559676}, + {-0.512098,-0.692533}, + {-0.576949,-0.178230}, + {-0.312055,-1.312385}, + {-0.661092,-0.003298}, + {1.385371,0.073527}, + {0.749575,0.121531}, + {0.451503,-0.172923}, + {-1.720465,0.533779}, + {-0.558727,-0.163352}, + {1.161200,1.410997}, + {0.343344,-0.099791}, + {-0.065168,-2.180713}, + {0.350066,0.806381}, + {-0.286234,-0.192670}, + {0.073187,0.263513}, + {-0.757331,-0.586757}, + {0.984908,0.277915}, + {1.028605,0.961379}, + {0.644807,0.258389}, + {0.606982,0.266423}, + {-0.090490,0.787222}, + {0.184171,0.023188}, + {0.350628,0.158079}, + {0.778608,0.188059}, + {-0.930078,1.186364}, + {-0.671489,-0.012170}, + {-0.081454,0.351651}, + {1.178337,0.477150}, + {-0.455728,-0.782186}, + {0.891922,0.565029}, + {1.160296,-0.280368}, + {0.653268,0.357551}, + {1.540297,1.202347}, + {0.245353,0.959049}, + {0.243214,-0.407234}, + {-0.450652,1.435352}, + {-0.707209,1.169824}, + {-0.087597,0.734600}, + {0.280094,-0.507072}, + {-0.362702,0.385568}, + {-0.298647,-0.445275}, + {1.484539,-0.134123}, + {-0.714418,-0.484541}, + {0.183658,-0.100520}, + {-1.304078,-0.615248}, + {-0.145906,-0.378490}, + {-1.139469,0.513238}, + {-1.002350,-0.857683}, + {-0.662826,1.027047}, + {0.866330,-0.714924}, + {0.134961,-0.170331}, + {-1.346329,-0.335113}, + {-1.486651,0.211276}, + {-0.033975,0.498228}, + {0.808639,0.410672}, + {-0.183830,0.673398}, + {0.283445,0.591164}, + {-0.775002,-0.358194}, + {-0.559984,0.245061}, + {0.448254,-0.351589}, + {-0.307253,0.317585}, + {0.110474,-0.551974}, + {1.435987,-0.093767}, + {-0.899370,-0.601259}, + {0.050750,-0.801049}, + {-0.248103,-0.266506}, + {-0.722677,0.408100}, + {0.439215,0.082929}, + {0.326781,0.560803}, + {-0.435041,0.157077}, + {0.616733,-0.929936}, + {-1.000230,0.585819}, + {0.197016,-0.325485}, + {-0.661867,-0.863923}, + {-0.149218,-0.118129}, + {-0.048844,-0.426240}, + {-0.048809,-1.036530}, + {1.234970,-1.198487}, + {-0.564061,0.812790}, + {0.518469,-0.899248}, + {-1.011805,-0.436426}, + {-0.731235,0.119354}, + {-0.748153,-0.686550}, + {-0.765046,-0.353657}, + {-0.836584,0.509778}, + {0.848860,-0.573605}, + {0.275349,-0.980142}, + {-0.086480,0.350212}, + {0.561023,0.614301}, + {0.295835,-0.062431}, + {-0.169997,1.796229}, + {1.411584,-0.157918}, + {-0.820578,-0.083208}, + {0.363949,-1.059952}, + {-1.105712,-0.108223}, + {0.022597,-1.059282}, + {-0.599310,-1.113121}, + {1.271478,0.088851}, + {-0.351697,1.037394}, + {0.708869,1.367619}, + {1.616188,0.268445}, + {-0.055062,0.051147}, + {0.089420,0.984126}, + {1.037123,0.467659}, + {0.285018,1.056293}, + {0.076872,0.167609}, + {0.466394,0.073944}, + {-1.120238,-0.403795}, + {-0.605089,0.022859}, + {0.279943,1.026083}, + {0.103397,0.277845}, + {-0.243145,0.104500}, + {0.333394,-0.637974}, + {-0.115601,1.088147}, + {-0.792947,0.234692}, + {-0.789909,-0.934349}, + {-0.734755,0.478295}, + {1.709832,-0.280996}, + {0.744538,-0.906727}, + {0.250604,0.999609}, + {-0.503783,0.558645}, + {0.495996,0.365936}, + {0.142156,-0.574836}, + {0.512751,0.192158}, + {1.235956,0.332711}, + {0.023924,-0.429072}, + {1.193035,-0.496755}, + {0.507106,0.569391}, + {-0.957161,-1.168585}, + {-0.107514,0.423613}, + {-0.739674,-0.701516}, + {0.904520,-0.072935}, + {-0.102696,-0.928840}, + {-0.431224,0.774089}, + {0.546826,0.645864}, + {-1.462693,-0.997040}, + {0.045656,0.881963}, + {1.235724,0.605226}, + {0.485086,-0.077597}, + {-0.269521,-0.825996}, + {-1.322636,0.198827}, + {-0.755254,0.130400}, + {0.905988,-0.026561}, + {0.398511,-0.221909}, + {0.101731,-0.824604}, + {-0.772005,-0.034138}, + {0.255018,0.583319}, + {-0.099606,-0.618148}, + {-1.244045,0.403242}, + {0.290003,0.145494}, + {0.525354,0.224848}, + {0.953469,0.330420}, + {-0.529456,0.842453}, + {-0.558430,-0.068691}, + {0.816181,-1.027805}, + {0.473286,0.705963}, + {-0.374642,-0.541333}, + {0.450463,-0.658926}, + {-0.817825,-0.087311}, + {-0.506713,0.154635}, + {-0.234898,0.576703}, + {-0.308701,-0.353461}, + {-1.064488,-0.829382}, + {-0.948916,1.358909}, + {0.873385,0.041247}, + {-0.975031,0.341437}, + {0.465089,-0.305899}, + {-1.322672,-0.257483}, + {-1.628600,0.631921}, + {1.432280,-0.394926}, + {-0.278556,0.212714}, + {-0.350961,-1.579332}, + {-0.404100,0.750536}, + {0.368782,0.707155}, + {0.075936,-1.267203}, + {-0.831914,-0.096899}, + {-0.333046,-1.207398}, + {0.347681,1.157404}, + {-0.578348,-0.070195}, + {-0.129107,1.292968}, + {0.170815,0.528093}, + {0.446822,-0.070859}, + {0.606865,-1.535666}, + {0.948290,-0.884917}, + {-0.045336,-0.805774}, + {0.469737,-0.474745}, + {-0.491228,1.119829}, + {-0.441045,0.412691}, + {-0.263473,0.314737}, + {-0.249778,-0.497140}, + {1.067664,0.185250}, + {0.464393,0.962226}, + {1.268074,-0.124376}, + {-0.050562,0.440929}, + {1.169404,0.656123}, + {-0.881702,0.319503}, + {-1.052664,1.076097}, + {-0.492302,0.583617}, + {0.558011,-0.848022}, + {-0.723854,0.330486}, + {-0.451609,0.208036}, + {0.033972,0.322249}, + {0.081812,0.909632}, + {0.438240,-0.140270}, + {-1.769997,0.783168}, + {0.841427,0.381585}, + {-0.535555,1.054986}, + {0.480827,-0.859746}, + {-0.590138,-1.197696}, + {1.838550,-0.341772}, + {0.314785,0.598647}, + {0.966481,0.829249}, + {-0.603204,1.197482}, + {0.287894,-0.764641}, + {0.245047,0.646047}, + {0.703114,0.023655}, + {-0.751477,-0.640445}, + {0.128946,0.238554}, + {-0.248008,-0.661997}, + {-1.358426,0.542743}, + {-0.077018,0.562820}, + {-0.992383,-0.265463}, + {0.815603,-0.609510}, + {0.402195,0.111800}, + {0.098221,0.243275}, + {0.465141,-0.894786}, + {-0.195025,0.818069}, + {0.163013,0.020456}, + {0.019287,0.280488}, + {-1.292419,-0.472930}, + {-1.176423,-0.206148}, + {-0.517755,-0.206153}, + {-0.221025,-0.087351}, + {0.613520,0.874127}, + {0.125680,-0.160756}, + {0.959133,-0.888381}, + {-0.119945,0.682721}, + {0.994469,1.538646}, + {0.666825,0.194733}, + {-0.037507,-0.858152}, + {1.210323,-0.049750}, + {-1.064716,-0.617205}, + {0.945401,-2.387452}, + {0.158818,0.160687}, + {-0.482974,0.394775}, + {-0.858639,0.219751}, + {0.294519,0.146071}, + {1.044995,-0.604510}, + {0.823595,0.998153}, + {0.038470,1.230760}, + {1.575698,-0.815523}, + {0.148811,0.410763}, + {-0.389223,0.867009}, + {-0.126203,0.541746}, + {1.678347,0.380927}, + {0.429547,-1.024259}, + {-0.266202,0.332225}, + {-1.617040,-1.222720}, + {-0.563409,-0.661385}, + {-0.219464,-0.002245}, + {0.314463,0.656447}, + {-0.300489,0.532422}, + {-1.675190,0.759753}, + {0.428757,0.171765}, + {-0.011795,-0.359087}, + {-0.887617,0.835305}, + {-0.810371,1.602856}, + {0.409307,-0.461949}, + {0.199920,-0.987035}, + {0.123417,0.693076}, + {-0.100030,-1.106335}, + {1.582451,-1.165881}, + {-0.704681,-0.668353}, + {0.760863,1.026244}, + {-0.191075,0.266052}, + {-0.668103,0.170235}, + {-0.012904,-0.286498}, + {-0.501481,0.788971}, + {0.668517,0.968752}, + {-1.047200,-0.400916}, + {-0.533675,0.024010}, + {-0.986899,-0.229436}, + {0.627433,1.110767}, + {-0.365978,0.023073}, + {0.663772,-0.100048}, + {1.049500,0.285839}, + {-0.643717,-0.106911}, + {0.591250,-0.125807}, + {-0.639040,-0.106044}, + {0.037507,-0.832752}, + {0.328107,-0.285961}, + {-0.627469,-0.265954}, + {-0.052279,0.075179}, + {-0.231068,0.046103}, + {1.172718,0.580020}, + {-0.255252,0.819326}, + {-0.169260,-0.100791}, + {-0.756299,0.608835}, + {-0.181330,-0.094706}, + {0.479515,-0.363664}, + {1.236969,0.858327}, + {-0.975062,0.641956}, + {1.244166,0.412330}, + {-0.243528,-0.367673}, + {-0.352109,-0.345661}, + {-0.198278,0.348731}, + {-0.264499,0.354155}, + {1.043070,-1.080189}, + {-0.158193,0.645892}, + {-0.341817,-0.186282}, + {-0.152951,-0.679947}, + {-0.281572,0.534695}, + {-0.012417,0.328755}, + {-0.265771,-0.525037}, + {-0.161336,1.444940}, + {0.995682,0.203988}, + {-0.537981,0.988658}, + {-0.529871,1.194728}, + {0.831686,0.030963}, + {0.356165,-0.026852}, + {-0.577640,-0.518094}, + {-1.028778,-0.136226}, + {1.046369,-0.334105}, + {-0.005565,-1.329268}, + {-0.821778,-0.563742}, + {1.142928,0.091294}, + {0.682693,-1.263949}, + {0.380228,-0.658545}, + {0.843082,0.932597}, + {-0.345522,0.249836}, + {0.446026,-1.368423}, + {-0.918192,1.002040}, + {-0.661288,-0.984786}, + {-0.590316,-0.129025}, + {0.777157,0.056676}, + {-0.264574,-0.214260}, + {-0.816790,0.067197}, + {-0.585520,-0.519243}, + {-1.193762,-0.976993}, + {0.583269,0.827641}, + {0.394747,-0.120571}, + {-0.049132,-0.030678}, + {-0.484051,0.178199}, + {-0.283985,-0.097271}, + {0.105214,-0.205086}, + {0.341469,1.602652}, + {0.269129,0.846228}, + {-0.386895,-0.161324}, + {0.950400,0.840099}, + {-0.753280,0.687107}, + {0.466935,-0.616318}, + {-0.287216,-0.420626}, + {-1.046482,-0.085754}, + {0.284436,-0.869538}, + {0.897849,0.423417}, + {0.921429,-0.765774}, + {0.763842,-0.209293}, + {0.617392,0.912271}, + {-0.177456,-0.132474}, + {0.806300,0.356169}, + {0.336841,-0.384476}, + {0.283514,-1.204551}, + {-1.051563,0.410899}, + {-0.962639,0.824742}, + {-0.270251,-0.887304}, + {0.165904,-0.610252}, + {-0.333379,0.607510}, + {0.600463,0.941986}, + {0.997552,0.235415}, + {-1.187420,-0.233916}, + {0.897561,-0.197762}, + {0.319458,-0.794006}, + {1.832876,-1.005851}, + {0.117741,0.084043}, + {-0.277336,-0.585939}, + {-0.220366,0.332784}, + {-0.955706,-0.663342}, + {-0.874698,-0.661934}, + {-0.977466,0.530857}, + {-0.670765,0.717771}, + {1.169043,0.801325}, + {-0.313282,0.543873}, + {1.361090,-0.016967}, + {-0.045271,0.468467}, + {-0.872414,0.191454}, + {-0.622985,1.003125}, + {-1.506511,-0.683927}, + {-0.860689,-0.551287}, + {-0.871940,-0.866821}, + {0.624825,0.683967}, + {1.592190,0.116308}, + {0.126634,0.042754}, + {0.051162,1.220215}, + {0.758876,0.604646}, + {0.941573,0.080765}, + {-0.195989,0.676589}, + {-0.499377,0.152671}, + {0.658630,0.605302}, + {-0.358647,1.735287}, + {1.364593,0.503183}, + {0.210822,-0.166494}, + {-0.861761,0.367387}, + {-0.458178,0.060156}, + {0.427491,0.042062}, + {0.086057,-0.088052}, + {0.162160,-0.189039}, + {-0.734105,1.173913}, + {1.009910,-0.268308}, + {0.511028,0.449041}, + {-0.638741,1.917117}, + {-0.396037,-0.155032}, + {-0.997269,-0.575873}, + {0.535088,0.441734}, + {-0.543414,-0.751851}, + {-1.416398,-0.066365}, + {-0.053821,1.180805}, + {0.282290,0.897749}, + {0.759861,-0.479464}, + {0.990860,-0.835886}, + {0.536881,-0.128652}, + {-0.235283,1.638562}, + {-0.048821,-1.424798}, + {-1.013434,-0.285478}, + {0.380225,0.037058}, + {0.083666,0.162508}, + {-0.638680,-0.529640}, + {0.063698,0.202676}, + {0.126295,-0.106833}, + {-0.705436,0.875691}, + {1.560148,-0.744106}, + {0.506902,0.182486}, + {-0.216431,0.488020}, + {0.088319,0.537304}, + {0.744745,0.260296}, + {-0.266826,0.163056}, + {-0.680731,1.666494}, + {0.716172,-0.824289}, + {0.576971,1.097574}, + {-0.306776,0.425233}, + {0.559360,0.770270}, + {0.306141,-0.569606}, + {0.641368,0.473688}, + {-0.534869,0.305556}, + {0.479480,-1.319807}, + {-0.369422,0.008258}, + {-1.015711,0.415351}, + {0.334729,-0.161003}, + {0.111812,-0.232136}, + {1.115033,0.418084}, + {0.372638,0.159681}, + {0.228723,0.086318}, + {0.183488,0.840287}, + {-0.032699,-0.968931}, + {0.497496,0.382361}, + {-0.737920,0.301958}, + {-0.390336,-0.313842}, + {-1.358576,-0.824571}, + {-0.296870,-0.221777}, + {-1.204408,-0.178874}, + {0.430879,0.540454}, + {-0.129484,-0.943346}, + {0.111495,-0.347794}, + {0.241006,0.882070}, + {0.259517,-0.153651}, + {0.359138,0.493153}, + {-0.117222,-0.896891}, + {0.130265,-0.611169}, + {-0.564621,-0.942626}, + {0.109644,0.919373}, + {-0.765497,-0.454155}, + {1.351302,-0.499722}, + {-0.388550,0.828392}, + {1.338169,1.025334}, + {-0.017090,-0.296752}, + {-0.180796,0.374854}, + {0.418456,0.346593}, + {-0.739752,0.202709}, + {-0.167847,-0.921766}, + {0.747846,-0.289610}, + {0.366519,-1.205982}, + {0.238487,-0.366714}, + {-0.757299,0.554594}, + {-0.815610,-0.092068}, + {0.238967,0.595734}, + {-0.637637,-0.039172}, + {-0.511671,-0.025446}, + {1.327343,-0.892339}, + {0.787727,0.725476}, + {0.193989,-0.948691}, + {-0.435612,0.747976}, + {0.973745,0.043831}, + {-0.081442,-1.261099}, + {0.972757,0.437030}, + {-0.906525,0.511164}, + {0.286286,-0.007231}, + {-0.724918,0.317117}, + {-0.010738,-1.408628}, + {-0.892791,-0.413062}, + {-1.145404,-1.000462}, + {-0.054472,-0.656673}, + {-0.397352,-1.006708}, + {1.272339,0.348268}, + {-0.072337,0.462120}, + {0.263024,0.820054}, + {-1.350094,-1.060760}, + {0.318931,1.224979}, + {-0.743524,0.081760}, + {0.782937,0.494788}, + {-0.380764,0.038653}, + {0.366967,-1.110074}, + {-0.539220,-0.289508}, + {-0.750016,-0.379700}, + {-1.056018,0.760600}, + {-0.014371,0.051682}, + {0.646769,-1.206138}, + {-0.192194,-0.268590}, + {0.211900,-0.061502}, + {0.667021,0.717522}, + {-0.988574,0.469784}, + {0.909208,-0.187655}, + {-0.264537,0.459019}, + {0.283053,-0.771236}, + {0.977605,0.326370}, + {0.188691,-0.116146}, + {-0.841161,-1.507667}, + {-0.622058,0.275580}, + {0.827556,0.636424}, + {0.829953,-0.934848}, + {-0.974846,-0.484086}, + {1.038897,0.572127}, + {-1.470389,0.655402}, + {-0.031678,-0.280099}, + {0.345680,1.131225}, + {1.521886,0.475562}, + {-0.095613,0.225868}, + {0.587360,0.098605}, + {-0.910606,-0.220681}, + {0.695483,0.270633}, + {1.392499,-0.534474}, + {-0.380665,-0.132181}, + {0.739761,-0.804516}, + {0.247837,0.364872}, + {-0.504840,0.279031}, + {0.577741,-0.499917}, + {-0.877160,-0.500081}, + {0.470665,0.626683}, + {-0.845048,-0.661755}, + {0.573259,0.452514}, + {1.463281,0.460497}, + {-0.140814,-1.014287}, + {0.792857,0.139124}, + {0.095435,-1.194781}, + {-0.168013,-0.617225}, + {-0.669563,-0.438816}, + {0.970599,1.334226}, + {-0.389379,-0.250410}, + {0.337426,1.425473}, + {0.040593,0.759876}, + {-0.692656,-0.593318}, + {0.644505,-0.808285}, + {0.343813,0.483264}, + {0.262818,-0.442864}, + {0.401180,-0.354012}, + {0.042798,0.576953}, + {1.057127,-0.234653}, + {-0.543273,0.116899}, + {-0.261085,0.760538}, + {0.917617,0.504692}, + {-0.505622,-0.461514}, + {-0.397714,0.102581}, + {0.841617,0.258265}, + {-1.224217,1.200595}, + {0.549822,-0.854504}, + {-0.331807,0.249164}, + {-0.969781,1.050829}, + {-1.102970,-0.743287}, + {0.391551,-1.364767}, + {-0.291293,0.652954}, + {-1.597162,-0.453738}, + {-0.347804,-0.281488}, + {-0.384993,-0.354367}, + {-0.893094,-0.032469}, + {-1.033837,0.258447}, + {-0.059178,-0.196922}, + {-0.727165,1.094397}, + {-0.050880,-0.416205}, + {-1.801534,0.759659}, + {-0.013259,-0.907752}, + {-0.663571,-0.737940}, + {0.248589,-0.087161}, + {1.713345,1.020552}, + {0.274155,-0.077844}, + {0.684280,0.290232}, + {0.467950,-1.380906}, + {-0.134793,0.354306}, + {0.641834,-0.147045}, + {1.549775,1.034824}, + {1.011992,0.136162}, + {1.032606,-0.470594}, + {0.002512,-0.501699}, + {0.263132,-0.873676}, + {0.596802,0.698595}, + {0.644208,-1.026820}, + {-0.241748,-0.120648}, + {0.400545,0.692764}, + {0.723725,-1.171937}, + {-0.065336,0.082173}, + {0.087121,0.777870}, + {0.137719,0.862409}, + {0.600762,-0.256252}, + {-0.496334,1.522049}, + {1.415523,-0.361800}, + {0.195888,0.140839}, + {-0.201059,-0.957306}, + {0.833613,-0.884474}, + {-1.923963,-0.511931}, + {-0.401694,-0.750599}, + {-0.057871,-1.554591}, + {0.136921,-0.610025}, + {-0.692221,0.232519}, + {-0.963772,-0.406412}, + {-1.011556,0.388904}, + {0.196652,0.402592}, + {-0.236942,0.249439}, + {0.197316,0.749347}, + {0.260643,1.518230}, + {-0.261184,-0.019793}, + {0.953847,0.003123}, + {-0.488447,-0.693489}, + {0.100561,-0.839624}, + {-0.387958,0.029235}, + {-0.056287,0.849571}, + {0.146328,-0.596042}, + {-0.442422,-0.081224}, + {1.467301,1.058274}, + {-0.842963,-0.823609}, + {0.361145,0.235648}, + {2.244235,-0.417005}, + {0.557178,0.494236}, + {-0.286937,0.446261}, + {-0.797514,0.125949}, + {-0.396846,-0.492949}, + {0.791338,0.112081}, + {0.731112,0.815339}, + {0.124238,1.042459}, + {0.178620,-0.243480}, + {-0.297767,-0.499014}, + {0.089431,-1.045263}, + {0.876765,1.478866}, + {-0.433655,-0.416072}, + {0.076538,0.452756}, + {0.276575,-0.657696}, + {0.710620,0.425570}, + {-0.348002,-1.521084}, + {0.463074,-0.794634}, + {1.420303,0.458714}, + {-0.799261,0.730155}, + {-0.282421,-0.450125}, + {-1.215153,0.133084}, + {0.429525,0.137792}, + {-0.046368,-0.348350}, + {1.182696,-0.476907}, + {-0.354102,-0.016664}, + {0.228567,-0.048909}, + {0.317271,-0.110712}, + {0.000535,0.097966}, + {0.358389,-0.986634}, + {0.233837,-0.517393}, + {-0.702710,-1.470436}, + {0.301747,-0.361704}, + {-0.116303,0.152185}, + {0.321548,0.456944}, + {0.426785,0.809817}, + {0.862019,-0.752446}, + {0.503493,-0.196673}, + {-0.188695,1.043960}, + {-0.634846,0.615436}, + {-0.773059,-0.768587}, + {0.735760,-0.078372}, + {0.076222,-0.103925}, + {-0.837846,-1.879631}, + {0.311214,0.005395}, + {-0.256265,0.525394}, + {-0.759509,0.445865}, + {-0.425542,0.964997}, + {0.621631,0.218384}, + {0.749916,0.486092}, + {0.735936,-0.741326}, + {-0.550580,0.175995}, + {0.441750,0.922190}, + {-0.284205,0.780467}, + {0.111299,-0.940763}, + {-0.488491,0.739998}, + {-0.538022,0.602799}, + {-0.458050,-0.227355}, + {1.218009,1.485198}, + {0.293776,0.548771}, + {0.621581,0.201245}, + {0.029869,-0.484299}, + {0.297470,-0.678649}, + {-0.652890,-0.572565}, + {0.708517,0.135724}, + {-0.759185,1.020900}, + {0.089393,1.254895}, + {-0.163606,-0.225901}, + {1.028091,-0.979818}, + {-0.463887,-0.461716}, + {-0.472972,1.295955}, + {-1.499760,-0.100153}, + {-0.316495,0.182810}, + {-0.029037,1.390832}, + {-1.052626,0.016877}, + {0.140853,-1.064090}, + {0.077518,0.160558}, + {-0.789567,0.126484}, + {0.237999,0.933535}, + {-0.625411,-0.154393}, + {-0.651849,0.477355}, + {0.313835,-0.871245}, + {0.063692,0.733038}, + {-0.125890,-1.321408}, + {0.782127,0.731970}, + {0.067632,1.028553}, + {0.390798,-0.202231}, + {0.859910,-0.547214}, + {0.303427,0.117133}, + {-1.221034,0.106196}, + {-0.556539,-0.005747}, + {-0.581574,-0.064757}, + {-0.093350,-1.416022}, + {-0.371514,0.863009}, + {-0.228865,-0.911086}, + {0.226620,0.868273}, + {-0.022400,0.968063}, + {-0.282417,-1.206830}, + {0.517815,-0.318365}, + {0.433595,-1.277757}, + {0.650281,0.282816}, + {0.696810,-0.618460}, + {-0.018515,-1.174056}, + {0.528708,-0.383014}, + {0.465366,-0.166643}, + {-1.111839,-0.208049}, + {1.260600,-0.904770}, + {0.114190,0.595080}, + {-0.772035,1.160945}, + {-0.072465,-0.121030}, + {0.740277,0.073001}, + {-0.031995,-1.003071}, + {0.309444,-0.284262}, + {0.256298,0.217717}, + {-0.714797,0.139100}, + {1.365575,-0.321842}, + {0.609559,1.219424}, + {-0.656153,0.923034}, + {0.306127,0.569498}, + {-0.185454,-0.769265}, + {0.640850,-0.158718}, + {-1.334112,-0.208599}, + {-0.368937,-0.719614}, + {0.154071,0.481000}, + {0.369258,-1.256445}, + {-1.053810,1.454169}, + {-0.166292,-0.690521}, + {0.434216,-0.485381}, + {0.446152,0.316255}, + {0.598136,-0.692985}, + {0.194634,0.723444}, + {0.033284,-0.674910}, + {-0.677093,-0.480733}, + {0.483942,0.055658}, + {-0.380847,1.698802}, + {-0.739697,-0.967901}, + {0.181901,-0.283096}, + {-0.385252,-0.218986}, + {0.571349,1.211891}, + {0.208035,-0.801372}, + {-0.001354,0.011905}, + {0.481477,-0.622890}, + {1.126983,0.720045}, + {0.366125,0.725890}, + {0.172974,0.276534}, + {-0.297515,-0.000297}, + {0.716860,-0.694652}, + {0.896244,-0.218171}, + {0.166865,-0.781466}, + {-0.782709,-0.862993}, + {-0.004288,1.019110}, + {-0.509804,0.230849}, + {-0.987740,0.724671}, + {-0.816786,-1.334751}, + {-0.406238,-0.684850}, + {0.680826,0.080398}, + {-0.045664,0.409165}, + {1.857790,-0.268328}, + {0.265866,1.576185}, + {-0.633796,-0.378996}, + {0.441580,0.420835}, + {0.594992,-0.103592}, + {-0.350224,1.054242}, + {-0.454100,0.966540}, + {-0.553087,0.060871}, + {-0.473446,-0.638460}, + {0.348962,-0.726140}, + {0.403723,-0.092776}, + {0.168148,-0.187260}, + {-0.047057,-0.712472}, + {0.546338,0.364816}, + {0.918003,-0.461675}, + {-0.907751,-1.659162}, + {0.690737,0.688165}, + {1.115170,-0.620245}, + {-0.424054,-0.378832}, + {-0.295589,0.438479}, + {-1.181545,-0.526172}, + {-0.191356,0.363078}, + {1.256819,0.772957}, + {0.660880,-0.127556}, + {-0.770033,1.086703}, + {-0.221948,-0.024302}, + {0.376195,0.665919}, + {0.855315,1.296681}, + {0.064168,-1.090223}, + {1.198266,-0.123963}, + {0.222219,0.832714}, + {0.265471,0.660817}, + {0.926886,0.106470}, + {-0.116532,-0.351282}, + {0.282755,1.394651}, + {1.976995,0.625415}, + {0.086001,0.874691}, + {-1.158765,-0.296382}, + {0.821879,0.330819}, + {1.473645,0.454222}, + {0.373012,0.334324}, + {0.784090,-1.194075}, + {-0.049292,-0.080586}, + {-0.326299,-1.150056}, + {-0.376097,-0.297711}, + {0.400420,0.699295}, + {-0.401832,0.718915}, + {0.513962,1.314126}, + {-1.223199,0.822673}, + {-0.198511,0.577317}, + {-0.931176,-0.141243}, + {-0.328271,-0.297043}, + {0.058682,0.063005}, + {-1.537647,-1.357544}, + {0.991342,-0.020237}, + {0.389384,-0.358624}, + {-0.286835,0.522531}, + {-0.921756,-1.109047}, + {-0.005216,0.585698}, + {0.073284,-0.240263}, + {-0.608758,1.045577}, + {-0.127535,1.243989}, + {1.069722,-0.381090}, + {0.658169,-0.466652}, + {0.110592,-0.898093}, + {-0.344192,0.315264}, + {-1.253943,0.576829}, + {-0.988689,0.289650}, + {0.323581,0.406835}, + {0.753623,-1.395921}, + {-0.526975,0.375853}, + {-0.228419,0.642204}, + {-0.911534,-0.802450}, + {-0.714417,-0.277566}, + {-0.248413,-0.669371}, + {0.558370,-0.525797}, + {-0.676306,-0.233652}, + {0.187377,-0.245513}, + {-0.115084,-0.722299}, + {-0.778514,-0.521242}, + {1.510762,0.186472}, + {-0.112162,0.741817}, + {0.168038,0.036480}, + {0.473081,-0.613676}, + {0.017735,-1.619743}, + {0.125184,-0.943553}, + {0.545184,-0.381330}, + {0.093888,0.932584}, + {0.298593,-1.014602}, + {1.317871,-0.453601}, + {0.446039,0.296345}, + {-0.003700,-0.215325}, + {0.357740,-1.726941}, + {0.056925,-0.146512}, + {0.242151,-0.224778}, + {0.333254,1.380770}, + {1.576821,-0.423607}, + {0.293532,0.300461}, + {-0.192775,-0.819195}, + {-0.724187,0.864495}, + {-0.256047,0.693948}, + {0.227372,0.048857}, + {0.384743,-0.022614}, + {0.334230,0.059078}, + {-0.084885,0.245805}, + {-0.956303,-1.202349}, + {-0.673081,-0.715653}, + {-1.070653,-0.327304}, + {-0.147279,0.735590}, + {-1.051301,2.081734}, + {0.743641,0.675310}, + {0.497307,-0.052339}, + {-1.137150,-0.681605}, + {0.958912,-0.359105}, + {-0.011346,-1.133356}, + {-0.675276,0.676611}, + {-0.088049,-0.368402}, + {1.029195,0.986048}, + {0.769677,0.565289}, + {-0.142346,1.404113}, + {-1.105935,0.105231}, + {0.137296,-0.042361}, + {0.064376,1.281022}, + {0.891722,-0.662071}, + {-0.274474,1.361238}, + {0.501089,0.037064}, + {-1.079683,0.260584}, + {-0.657026,-0.608459}, + {-1.321491,0.137369}, + {-0.147387,1.485629}, + {0.701370,-0.338272}, + {-0.937117,-1.890266}, + {-0.002981,-0.309410}, + {-0.450557,0.756156}, + {-0.207628,0.767636}, + {-0.017018,-1.057447}, + {-0.516946,0.622016}, + {-0.439782,-0.660634}, + {0.465733,0.369621}, + {-1.107081,0.963995}, + {-1.304264,-0.056408}, + {0.326753,0.871892}, + {0.607911,-0.097462}, + {0.368739,-0.185021}, + {1.177421,0.378663}, + {-0.059318,-0.122919}, + {0.024356,-0.157050}, + {-0.952570,-0.640217}, + {-0.285763,0.974177}, + {-0.222286,-0.638367}, + {1.350695,0.832729}, + {0.426047,0.068965}, + {-1.235143,-0.255727}, + {0.097972,-1.280044}, + {0.613868,0.569266}, + {0.792483,-0.388408}, + {-0.611795,-0.757664}, + {0.066523,-1.342460}, + {1.152646,0.059112}, + {-0.407404,-0.164086}, + {0.998551,-0.553072}, + {-0.230242,-0.414397}, + {1.100387,-0.474447}, + {-0.136452,-0.266361}, + {-0.783866,-0.608098}, + {-0.626331,0.731900}, + {0.453871,0.483000}, + {0.118882,-0.076636}, + {-0.010890,1.832384}, + {-0.275781,0.534932}, + {-0.758412,0.302367}, + {0.774181,-0.666316}, + {-1.239903,-0.018154}, + {-0.826897,-0.159508}, + {0.294782,0.329762}, + {-0.310305,0.173462}, + {-0.484331,0.577130}, + {0.528037,-0.079597}, + {-1.165040,0.643362}, + {0.218828,-1.879045}, + {0.340559,0.534394}, + {1.027003,-0.862991}, + {0.265023,0.582110}, + {0.533497,0.424652}, + {-0.143533,-0.668350}, + {-0.043478,1.242700}, + {0.140689,-0.328515}, + {0.594427,0.952587}, + {0.328719,0.131913}, + {1.647645,0.451601}, + {0.807728,0.547755}, + {-0.398431,1.090855}, + {0.071550,0.529582}, + {0.696988,0.096969}, + {-0.315803,0.602702}, + {-0.053510,0.368662}, + {-0.783694,-0.369834}, + {-0.513209,-0.183077}, + {-0.389552,-0.423163}, + {0.250511,-0.197899}, + {1.072604,1.141232}, + {-0.256157,0.324126}, + {-0.845304,1.344024}, + {1.607235,-0.083729}, + {0.216531,-0.229193}, + {-1.849789,0.283520}, + {-0.273563,-0.437125}, + {0.439165,0.820069}, + {-0.071710,0.044047}, + {-0.036628,0.811854}, + {0.949810,0.092324}, + {0.223015,-0.302363}, + {-1.151938,0.219130}, + {-0.602013,-0.159929}, + {-0.479745,-0.467518}, + {-0.596418,1.115315}, + {1.155356,0.976269}, + {-0.339066,0.667014}, + {-0.537118,-0.328546}, + {0.231632,-0.251679}, + {-0.564684,-0.151955}, + {0.404261,0.591546}, + {0.156538,-0.119747}, + {-0.265291,0.441799}, + {-0.710732,0.990762}, + {-0.037181,-0.893433}, + {-0.608993,0.072250}, + {-0.431612,-0.294577}, + {-0.449292,-0.627379}, + {1.118185,-0.219789}, + {-1.095315,-0.141630}, + {-0.906823,1.379934}, + {-0.355207,0.170146}, + {0.012266,-0.140593}, + {0.582558,0.200710}, + {-0.264941,0.654223}, + {0.490653,0.262090}, + {-0.806158,0.423760}, + {-0.916022,-0.095727}, + {-1.435559,-0.430004}, + {-1.383499,0.819679}, + {-0.476148,-0.799760}, + {-0.086440,-0.288405}, + {0.468541,-0.026429}, + {-0.513250,-0.142815}, + {-0.903017,0.571624}, + {-0.097263,0.834344}, + {-1.345370,-0.677137}, + {1.710559,-0.271618}, + {-0.490398,-0.719281}, + {-0.660807,0.868829}, + {-0.612810,-0.703682}, + {0.992913,0.444834}, + {0.083612,0.800845}, + {-0.140036,-0.531708}, + {-1.676151,0.726057}, + {1.115666,0.611399}, + {-0.454838,0.031736}, + {0.338107,0.033385}, + {-1.179649,0.975904}, + {-0.362644,-0.703524}, + {0.265567,-0.598433}, + {0.612009,-0.911296}, + {0.669627,0.732675}, + {0.299979,-1.083474}, + {-0.001796,0.450980}, + {-0.312085,-0.240890}, + {-0.157834,-0.452017}, + {-1.005825,-1.124619}, + {1.514761,-0.139328}, + {0.205847,-0.624360}, + {-0.788916,-0.431594}, + {0.185577,0.530159}, + {-0.998640,-0.120038}, + {-0.701757,-0.385069}, + {0.127492,0.278129}, + {0.644093,-0.318252}, + {1.349703,0.815553}, + {1.178677,0.257816}, + {0.290177,1.567018}, + {0.815353,0.069366}, + {0.428406,0.751920}, + {-0.358682,-0.000313}, + {0.898652,-0.035994}, + {0.007882,-0.203406}, + {1.143951,0.676206}, + {-1.579231,-0.510529}, + {-0.029383,0.067530}, + {-0.207513,-0.651686}, + {-0.171590,0.197287}, + {1.106950,0.639104}, + {-1.153861,0.109446}, + {0.128439,1.245168}, + {-1.709516,0.155977}, + {0.698242,0.511780}, + {0.188021,0.140058}, + {0.214542,-0.603858}, + {-0.585161,-0.999378}, + {-0.125116,-0.107497}, + {1.169544,-0.068827}, + {-0.641184,-0.795741}, + {0.299439,-0.994491}, + {-1.270881,0.080905}, + {0.638892,0.320804}, + {-0.045967,0.343003}, + {0.572705,-0.597459}, + {-1.076651,0.926168}, + {1.591514,-0.239336}, + {-0.151223,0.296796}, + {-0.547906,-0.598357}, + {0.194930,-1.469040}, + {-1.066167,-0.488868}, + {0.375923,-0.458435}, + {0.118752,-0.176519}, + {-1.119040,-0.877881}, + {0.317179,1.106286}, + {-0.524586,0.380106}, + {0.449438,-0.812248}, + {0.218978,-0.240793}, + {0.920874,1.099158}, + {0.337065,-1.042434}, + {0.165176,-0.575666}, + {0.124061,0.064366}, + {-0.972349,-0.449360}, + {0.438009,-0.607478}, + {1.340508,0.164007}, + {-0.611231,-0.045868}, + {-1.894545,0.313067}, + {0.026078,-0.046337}, + {-0.993251,0.529082}, + {0.338591,-0.050854}, + {0.276524,-1.876008}, + {0.553549,-0.641581}, + {-1.274207,1.314869}, + {0.082555,0.483468}, + {0.480747,0.004671}, + {0.129514,0.227370}, + {0.488707,-0.498655}, + {-0.672859,0.446981}, + {-0.389134,0.220936}, + {0.678780,0.388861}, + {0.004714,0.113091}, + {0.098152,0.402314}, + {-0.584163,0.655414}, + {1.069824,0.053944}, + {1.426146,-0.171673}, + {-0.492434,0.430442}, + {0.387326,-0.723692}, + {0.923225,0.315823}, + {-0.436266,-0.179644}, + {0.679013,0.839753}, + {0.121002,0.328185}, + {0.686624,0.263510}, + {-1.014880,0.226535}, + {0.496357,0.676631}, + {-0.685878,0.475997}, + {-0.816184,-0.690225}, + {0.624418,-0.640938}, + {0.981859,-0.263799}, + {1.266654,-0.559957}, + {-0.447318,-1.692190}, + {-1.632760,-0.647412}, + {1.237379,1.188506}, + {0.224983,-0.193860}, + {0.265301,0.088248}, + {1.487341,-0.210028}, + {0.975147,-1.738118}, + {-0.315739,-1.563346}, + {0.759571,-0.834275}, + {0.248891,-0.487193}, + {0.593097,0.883254}, + {-0.295665,-0.091338}, + {0.242557,-0.870492}, + {0.076878,-0.401879}, + {-1.275364,-0.748062}, + {-1.030366,-0.635397}, + {-0.059741,0.281073}, + {0.647269,0.569318}, + {0.091019,-0.383699}, + {1.550738,-0.017491}, + {0.558012,-0.883251}, + {1.344487,0.781872}, + {0.425354,-0.544888}, + {0.443166,-0.622855}, + {0.402391,-0.428524}, + {0.322402,0.140907}, + {0.665183,0.150628}, + {0.264571,0.063423}, + {-0.180192,1.228519}, + {0.176187,0.609708}, + {-0.686995,-0.858999}, + {0.403250,1.127242}, + {-0.460433,0.622449}, + {0.957213,0.125857}, + {-0.214465,-0.254392}, + {0.953570,-0.146560}, + {0.351196,-0.097209}, + {0.363350,0.991605}, + {-0.842097,0.750050}, + {0.173444,0.393799}, + {0.644241,0.891357}, + {0.518479,0.829535}, + {-0.793455,-0.868437}, + {-0.451662,0.080692}, + {1.713382,0.806600}, + {-0.986818,0.371536}, + {-0.732506,-0.086137}, + {-0.287972,1.333554}, + {-0.505251,-0.388335}, + {0.182226,-0.170677}, + {0.656847,-0.151742}, + {0.240621,-0.408503}, + {-1.207747,0.579227}, + {-0.480071,-1.477118}, + {0.397312,1.160838}, + {-0.478893,0.085660}, + {-1.201398,-0.484779}, + {-0.875166,1.306590}, + {-0.048226,0.168645}, + {0.575978,0.334768}, + {0.268464,-0.584981}, + {0.172204,0.362164}, + {-0.573584,0.837555}, + {0.097430,0.693442}, + {0.710075,0.430611}, + {0.279881,0.500559}, + {-0.495316,-0.284207}, + {-0.024375,-0.582689}, + {0.503912,0.590465}, + {0.543956,-0.751481}, + {-0.113901,0.583382}, + {-0.424219,0.552384}, + {-0.209784,0.254702}, + {2.524661,-1.007793}, + {0.453447,-0.787107}, + {0.129431,0.856054}, + {-0.725614,-0.060954}, + {-0.076847,-0.411651}, + {-0.585319,-0.607995}, + {0.354620,-0.943508}, + {0.004873,0.874609}, + {0.584256,0.295973}, + {-0.751269,-0.621494}, + {1.252094,0.523044}, + {0.412384,-0.071193}, + {1.460668,-0.424840}, + {-1.668383,-0.125918}, + {-0.140575,-0.793958}, + {-0.602913,-1.530258}, + {-0.485749,0.647443}, + {0.327012,0.012391}, + {-0.065556,-1.534338}, + {0.040087,0.692505}, + {0.331535,0.606771}, + {-1.081422,0.655871}, + {0.112370,0.095884}, + {0.544109,-0.418467}, + {0.883949,0.869171}, + {-0.053113,1.005180}, + {0.084581,0.070706}, + {1.176918,0.868754}, + {0.340621,-0.290651}, + {1.069518,-0.145240}, + {-0.305978,-0.255205}, + {0.264782,0.828990}, + {0.076048,0.311651}, + {1.020387,-0.341573}, + {1.171179,0.317841}, + {0.039440,-0.343955}, + {-0.196474,-1.120097}, + {0.173672,-0.637267}, + {0.869413,0.499800}, + {0.402750,-0.274691}, + {-0.195399,-0.716727}, + {-0.697868,-0.592886}, + {1.005820,-0.833437}, + {1.667014,-0.928567}, + {0.112603,0.637979}, + {-0.378046,-0.094991}, + {-0.264513,0.562337}, + {-0.281534,-0.171989}, + {0.184469,0.954685}, + {-0.184794,-0.419611}, + {0.042573,-0.035524}, + {0.526333,0.216558}, + {0.221470,-0.570724}, + {0.952384,0.824810}, + {0.377462,-0.439426}, + {0.552507,0.406306}, + {0.356019,-0.448320}, + {-1.181908,0.315880}, + {1.237299,-1.380363}, + {-0.266766,1.166820}, + {-0.543319,-0.487425}, + {0.853891,1.002771}, + {0.094524,-1.085172}, + {-0.122670,-0.819704}, + {0.507893,1.214830}, + {0.066840,0.391217}, + {-0.627340,-1.028818}, + {0.048450,0.066480}, + {1.252207,-1.088292}, + {1.914396,-0.390461}, + {0.783587,-0.456659}, + {-1.087500,-0.414070}, + {-0.017378,-0.330487}, + {0.822467,0.523086}, + {0.544551,-0.396871}, + {0.505004,-0.302542}, + {0.655396,0.309852}, + {0.744048,-0.677621}, + {0.632487,0.637052}, + {0.382478,-0.487032}, + {-0.253994,1.037147}, + {1.056620,0.110571}, + {-1.000220,0.890575}, + {0.227128,-0.051171}, + {0.249166,-0.869667}, + {0.362158,0.942859}, + {0.170629,0.370184}, + {-0.428655,-0.104012}, + {0.827800,-0.147575}, + {0.050820,-0.016864}, + {1.169503,0.264916}, + {1.055638,-1.029984}, + {-0.213356,-0.446858}, + {0.883660,-0.272743}, + {-0.179240,1.234001}, + {-1.124872,-1.414740}, + {0.620017,0.524664}, + {0.429714,-1.144124}, + {0.071774,0.024483}, + {0.236817,0.493902}, + {-0.345272,0.403117}, + {-0.245305,0.443081}, + {0.456796,0.439895}, + {0.127632,-1.065099}, + {1.004045,0.187642}, + {0.910957,0.711730}, + {0.270826,0.181679}, + {0.554230,-0.318570}, + {0.415953,0.287152}, + {0.249620,-1.683391}, + {-0.183154,-0.452854}, + {0.914111,-0.432673}, + {-1.329404,-0.200816}, + {0.408647,0.357466}, + {0.342816,0.128307}, + {-0.372446,-0.517950}, + {-0.268470,-0.945823}, + {0.058636,0.446404}, + {0.077650,-0.641117}, + {0.500659,0.569755}, + {-1.264154,-0.108240}, + {-0.323458,1.076444}, + {0.286058,-0.812280}, + {1.130102,-0.533853}, + {0.820155,0.813720}, + {-0.369292,0.599253}, + {-0.401040,-1.122319}, + {0.015961,0.999207}, + {0.113009,0.151940}, + {-0.326797,-1.045239}, + {-0.631927,-0.213249}, + {-0.232764,-0.353310}, + {-0.277962,0.172006}, + {-1.384869,0.322627}, + {0.657043,0.378613}, + {1.632659,-0.311238}, + {-0.128560,0.380120}, + {-0.021658,0.595562}, + {0.055891,0.020949}, + {0.360843,-1.355132}, + {-0.441202,0.653312}, + {-0.903583,-0.602887}, + {0.589411,-0.501421}, + {0.009663,0.497738}, + {0.955606,0.137016}, + {-0.829489,0.248268}, + {-0.623087,0.554453}, + {-0.983462,-0.470261}, + {-0.093188,-0.254457}, + {0.281605,-0.015601}, + {1.143487,-0.512110}, + {-0.259302,0.254954}, + {-1.333991,0.113816}, + {1.056834,0.224210}, + {0.478784,-1.143913}, + {1.172144,0.054436}, + {0.126576,-0.617074}, + {0.129731,0.567838}, + {0.992712,0.311224}, + {-0.080398,0.093624}, + {-0.333385,0.321406}, + {-0.857085,0.136303}, + {-0.193071,0.112527}, + {0.174651,-0.824896}, + {-0.044413,-0.225567}, + {0.889937,0.174611}, + {0.221331,-0.846178}, + {-0.911343,-0.217177}, + {-0.598798,1.486589}, + {0.678465,-0.562484}, + {1.906944,0.211159}, + {-0.148741,0.420947}, + {0.875071,0.723028}, + {0.500603,0.175314}, + {-0.669264,0.505343}, + {-0.162355,0.492007}, + {0.405254,0.188295}, + {0.730781,-0.170657}, + {0.219461,-0.487510}, + {-0.607648,-0.266311}, + {1.031809,-1.878717}, + {0.262365,0.080670}, + {0.704439,-0.342870}, + {0.526865,0.107263}, + {0.449751,-0.350958}, + {-0.250292,-0.244899}, + {0.322347,-0.066403}, + {0.250252,0.152062}, + {-0.123904,0.252763}, + {0.097518,0.668475}, + {-0.756972,0.544061}, + {-0.482034,-1.042969}, + {0.216007,-0.057989}, + {-0.076012,-0.157728}, + {-0.193643,0.281670}, + {-0.047023,-1.385414}, + {0.425208,0.198825}, + {-1.128706,1.130083}, + {0.749280,0.273274}, + {-0.885277,-0.437183}, + {-0.045310,0.493993}, + {0.689210,0.481689}, + {-0.836367,-0.212518}, + {0.933511,-0.551367}, + {0.323157,0.145200}, + {-0.381780,0.425335}, + {-0.043935,0.669080}, + {0.950537,-0.788988}, + {0.888065,0.870818}, + {0.198948,1.131985}, + {0.333668,1.531210}, + {0.329099,1.260233}, + {0.619784,-0.971239}, + {-0.362197,0.842451}, + {-0.107082,0.572070}, + {-1.273638,-0.219990}, + {-0.220258,0.341964}, + {-0.110476,-0.229104}, + {1.871605,1.085818}, + {-0.667567,-0.510587}, + {-0.081589,-0.002145}, + {-0.485358,-0.264608}, + {-0.021298,-1.378931}, + {1.061728,-0.050554}, + {0.063661,-0.078720}, + {0.540324,-0.679083}, + {0.040479,-1.175746}, + {-1.651713,0.175791}, + {-1.061321,-0.905733}, + {-0.144548,-0.403863}, + {-0.212951,-0.162069}, + {-0.202079,0.210548}, + {-0.481286,-0.089389}, + {0.534427,0.293422}, + {-0.077023,-0.592110}, + {0.748204,-0.933897}, + {0.789813,0.023419}, + {0.364097,-0.688288}, + {-0.817344,-0.232389}, + {-1.106773,-0.011376}, + {-1.149018,0.589183}, + {-0.237988,0.461070}, + {0.144291,-0.866590}, + {-0.319867,-0.741546}, + {0.467556,-0.563525}, + {0.787965,-0.067020}, + {-0.377218,0.346134}, + {-0.439111,-0.729340}, + {0.111481,-0.725684}, + {-0.345130,0.303179}, + {0.221511,-0.444748}, + {-0.139828,1.064259}, + {-0.102410,1.595486}, + {-0.033213,-1.118558}, + {0.003251,0.259777}, + {-0.418818,0.218547}, + {0.196030,-0.238166}, + {0.317481,0.810128}, + {0.685667,-1.193565}, + {-0.230818,1.499649}, + {0.527567,1.628496}, + {0.418979,-0.163575}, + {0.943900,0.909605}, + {-1.191709,-0.027791}, + {0.834602,1.596546}, + {0.285289,0.562981}, + {-0.270156,-0.195083}, + {-0.731085,-0.510584}, + {0.054180,0.401694}, + {0.222936,-0.465566}, + {0.708946,0.905168}, + {0.274867,-0.023564}, + {0.255887,-1.523657}, + {-0.438371,-0.835342}, + {-0.388636,0.420745}, + {0.575120,0.350653}, + {0.165252,-1.180423}, + {-0.106785,-0.106601}, + {-0.163290,0.059107}, + {-0.048709,-0.263100}, + {0.309147,-0.042611}, + {-0.927395,0.617546}, + {0.809214,1.027300}, + {-0.146042,0.142650}, + {-0.784247,-1.284659}, + {-0.278628,-0.344565}, + {0.036556,0.842948}, + {0.912256,0.120918}, + {-1.159161,-0.897982}, + {1.183806,0.116039}, + {0.080759,-0.670877}, + {1.106555,0.968417}, + {-0.748972,-0.332161}, + {0.015659,-0.238382}, + {0.072921,0.945789}, + {0.720423,-0.655437}, + {-1.184291,-1.204869}, + {0.005271,-0.500795}, + {-0.947286,0.565118}, + {0.402954,-0.272249}, + {-0.051205,-1.269563}, + {-0.244921,-0.403400}, + {0.688696,-0.966522}, + {-1.332749,1.102022}, + {0.248091,-0.614807}, + {0.542833,0.089974}, + {0.092234,-1.064895}, + {-0.142784,-0.393747}, + {-1.915675,0.230426}, + {0.189830,0.787094}, + {-0.630199,0.176279}, + {-1.014131,1.143947}, + {-0.520987,-0.274620}, + {0.207558,-0.600789}, + {0.091016,-0.244461}, + {-0.130663,0.121426}, + {0.004404,0.214764}, + {1.305978,0.539062}, + {1.085432,0.406738}, + {-1.147405,0.986932}, + {-0.527963,0.040514}, + {1.048821,0.402675}, + {0.871429,1.049595}, + {1.770856,-0.090866}, + {-0.518070,0.716500}, + {0.487361,0.022371}, + {-0.686924,-0.549181}, + {0.340429,0.907657}, + {-0.394719,1.043237}, + {0.202132,-0.329431}, + {-0.569046,0.377140}, + {-0.446943,0.699826}, + {-1.179740,-0.505842}, + {0.356706,0.439865}, + {-0.598450,0.446083}, + {-1.374043,0.679741}, + {-0.021589,-1.611401}, + {0.410296,0.014703}, + {1.604389,0.059808}, + {-1.673347,-0.607599}, + {-0.050574,0.534932}, + {1.712505,1.284287}, + {-0.342150,-0.043176}, + {0.055806,0.223800}, + {0.355618,-0.311415}, + {-0.271235,0.683074}, + {-0.775743,1.125752}, + {-0.378310,-1.640378}, + {-1.038677,0.190076}, + {1.174409,-0.118801}, + {0.331030,-0.048922}, + {0.728780,-0.295898}, + {0.693699,-0.972498}, + {0.174966,-1.152868}, + {-0.876610,-0.017480}, + {-0.062463,0.606038}, + {0.974421,1.248637}, + {1.417309,-0.262139}, + {0.011829,1.068245}, + {-0.812946,2.785479}, + {0.861911,0.248256}, + {-0.567134,0.287479}, + {-1.000297,0.453402}, + {-0.007071,0.201681}, + {-0.152146,1.342125}, + {0.671739,0.150808}, + {1.116866,0.838904}, + {0.759212,-1.364876}, + {-1.013891,1.460428}, + {-0.226149,-1.126365}, + {-0.451954,-0.444787}, + {-0.021515,1.034266}, + {-0.571367,-0.692007}, + {-0.349616,0.140445}, + {0.168654,0.087815}, + {-0.129953,0.445421}, + {0.410578,0.912573}, + {-0.217475,-0.669581}, + {-0.222785,1.245619}, + {1.558435,0.605819}, + {-0.488581,-0.336896}, + {-0.247095,0.691559}, + {-0.272835,-0.264770}, + {0.675699,0.032700}, + {-0.600614,0.262450}, + {0.180303,-0.367078}, + {0.919067,1.375550}, + {0.152099,-0.550776}, + {-0.201242,0.036053}, + {0.764895,-1.477231}, + {0.396961,0.220377}, + {-0.306654,0.876105}, + {-0.991493,0.187414}, + {-0.307614,0.684635}, + {-0.773884,0.106210}, + {-1.566911,0.170510}, + {0.361833,-0.141857}, + {-0.600408,-0.446279}, + {1.421652,0.535651}, + {0.798181,1.741752}, + {0.828463,-1.351656}, + {1.064522,0.356219}, + {-0.261882,-0.068944}, + {-0.274206,-0.863308}, + {-0.472305,-0.610240}, + {1.169302,0.073319}, + {0.212464,-0.516636}, + {0.072813,0.172732}, + {-0.402815,-0.754899}, + {0.240675,0.006754}, + {-0.413280,0.162876}, + {-0.878790,-0.579111}, + {-0.490272,-1.206031}, + {-0.500456,-0.219817}, + {0.069254,-1.439473}, + {0.914958,0.485123}, + {0.759158,-0.336522}, + {0.798766,-0.831419}, + {0.572361,-0.465976}, + {-0.130641,-0.259763}, + {-0.529278,0.642024}, + {0.169663,1.957850}, + {0.290362,1.466387}, + {0.486745,-0.303996}, + {-0.739829,0.729494}, + {-1.119647,-0.438709}, + {1.199651,0.132905}, + {-0.028488,0.166904}, + {0.294118,1.343646}, + {-1.078798,-0.045417}, + {-0.144834,0.724221}, + {-0.286147,0.584877}, + {-1.025536,1.281690}, + {1.349738,0.051777}, + {-0.163706,0.861461}, + {1.304346,-1.415064}, + {-0.220065,0.578733}, + {-0.073421,-0.292662}, + {-0.407989,1.100458}, + {0.306779,-0.903447}, + {-0.053132,-0.864616}, + {-0.613827,0.320417}, + {-0.157362,-0.152289}, + {-0.363881,-0.696127}, + {-0.644928,-0.357587}, + {0.523401,-0.545460}, + {-0.284975,0.437116}, + {-0.332811,0.194424}, + {0.886436,-0.283097}, + {-0.353503,1.253798}, + {0.777206,1.140778}, + {-0.176515,1.349269}, + {0.200192,0.474405}, + {-0.090735,0.782045}, + {0.108052,-0.393573}, + {-0.097758,0.133294}, + {-0.521819,-0.069948}, + {0.495179,0.903907}, + {-1.635143,0.044403}, + {-1.044754,0.995099}, + {-0.029236,0.231209}, + {-0.763150,-0.740411}, + {0.666666,0.948566}, + {-0.996496,0.103076}, + {0.066595,0.386752}, + {1.079913,-0.587405}, + {-0.126881,0.324364}, + {0.242668,0.274037}, + {-0.167854,-0.463373}, + {1.254502,-1.338299}, + {-0.814549,-0.540325}, + {0.604115,0.960306}, + {-0.762464,0.255581}, + {-0.145291,-0.151457}, + {0.539461,0.564589}, + {0.452901,-0.644154}, + {-0.121667,0.123363}, + {0.172408,0.943437}, + {0.349217,-0.431470}, + {0.193653,-0.286326}, + {0.373892,-0.225571}, + {-0.469563,-0.051636}, + {0.703894,0.076285}, + {-0.342531,-0.919488}, + {-0.093593,0.467140}, + {-0.370503,-0.159512}, + {-0.427136,0.822814}, + {0.484980,0.660569}, + {0.380112,1.642120}, + {0.741086,-1.181946}, + {-0.861984,-0.551848}, + {-0.326551,0.051893}, + {-0.673266,0.128672}, + {0.477538,-0.448337}, + {0.424523,-0.099635}, + {-0.200313,0.300309}, + {-0.319153,-1.021980}, + {-0.640520,-0.659841}, + {-0.189198,0.771204}, + {0.163659,-0.315306}, + {0.756345,0.736886}, + {-0.321533,0.169677}, + {-1.755957,0.206259}, + {-2.116119,1.256344}, + {-0.750604,0.344105}, + {0.267358,-0.320943}, + {1.438068,-0.187643}, + {-0.629031,-0.059064}, + {0.769031,0.174502}, + {0.611810,0.637876}, + {0.509224,1.423682}, + {0.029716,-0.226301}, + {-0.529129,-0.458146}, + {0.588062,0.568816}, + {-0.261343,0.028227}, + {0.000322,-0.506508}, + {-0.454871,-0.212809}, + {-1.170607,0.073436}, + {1.134318,0.212980}, + {-1.039946,1.151672}, + {0.904145,-0.236109}, + {0.572173,-0.222902}, + {0.354798,-0.056846}, + {0.617914,-0.121507}, + {-0.485005,-0.789432}, + {0.555901,1.045454}, + {-0.342510,0.662108}, + {0.477863,0.919492}, + {-0.886891,-0.151806}, + {0.073477,0.660208}, + {-0.836821,-0.492241}, + {0.868206,0.057640}, + {-0.278170,-0.344302}, + {1.740416,0.163213}, + {0.710730,0.125488}, + {0.283223,0.313698}, + {0.549759,-0.103777}, + {0.979863,0.559804}, + {-0.290891,-0.894974}, + {0.187074,-1.035208}, + {0.722918,-1.398915}, + {-0.581228,0.581626}, + {0.289505,-0.332083}, + {0.489170,-0.566258}, + {-0.889190,-0.521928}, + {-0.262424,0.143982}, + {-1.279355,-0.724648}, + {0.257297,0.851178}, + {-0.306166,-0.469346}, + {0.045235,-0.453040}, + {0.285296,0.528722}, + {-0.568471,-0.086437}, + {-0.449844,0.791630}, + {0.440313,0.203210}, + {-0.715834,0.084234}, + {-0.535316,-0.471520}, + {0.545214,0.542797}, + {0.858170,-0.392007}, + {0.459011,0.277321}, + {0.630900,0.621847}, + {-0.661226,-1.433006}, + {0.657691,-0.355625}, + {-0.083747,0.737402}, + {-0.427198,-0.957863}, + {-0.194041,1.158089}, + {-0.546119,-0.629835}, + {1.668000,1.040309}, + {-0.407113,-1.748223}, + {0.586268,0.131234}, + {0.824612,0.043758}, + {0.077720,0.434675}, + {-0.878529,0.066930}, + {-0.910217,-0.770628}, + {-0.399495,0.223856}, + {-0.776131,0.072596}, + {0.968979,-0.378461}, + {-0.788724,-0.419890}, + {-0.717876,-0.129177}, + {0.649467,-0.543748}, + {-0.083694,-0.154461}, + {0.433057,0.341816}, + {-0.109326,0.473616}, + {-0.306007,0.525211}, + {1.334709,0.792284}, + {0.450165,0.092275}, + {1.269496,-0.283253}, + {-0.987681,0.679147}, + {0.700508,-0.765557}, + {0.020683,0.657076}, + {0.556750,0.196350}, + {-1.036465,0.515704}, + {0.529448,0.036856}, + {-1.108420,-0.332631}, + {-0.792801,-0.226293}, + {-0.806708,-0.100053}, + {-0.810484,-0.306346}, + {-0.181914,-0.053941}, + {-0.967090,0.696498}, + {1.192545,-0.294435}, + {-0.566689,-1.356403}, + {-0.828942,-0.407377}, + {-0.621438,1.217900}, + {-1.028343,0.521929}, + {1.025599,-0.656932}, + {0.138542,0.489792}, + {-0.202065,1.257500}, + {0.043756,-0.176369}, + {0.685895,-0.249690}, + {0.549922,0.885082}, + {-0.189354,-1.551150}, + {-1.118100,0.020367}, + {0.474848,1.184561}, + {-0.050645,1.195300}, + {0.867725,-0.380298}, + {1.033550,0.154888}, + {-0.477175,-0.457725}, + {1.148061,0.585421}, + {0.380830,-0.754913}, + {-0.106258,0.080392}, + {-0.092959,-0.386023}, + {-0.358937,-0.724895}, + {-1.374994,1.067211}, + {0.460321,0.527363}, + {-1.238789,-0.089993}, + {1.464682,0.876127}, + {-1.234731,1.128579}, + {0.724792,-0.450972}, + {-1.521916,0.809717}, + {-0.388497,-0.174976}, + {0.086236,0.748876}, + {1.100546,-0.528230}, + {0.226367,0.697463}, + {0.744283,1.254010}, + {-0.249234,-0.694237}, + {0.167903,0.298213}, + {-0.228874,-0.560931}, + {0.394532,0.449698}, + {-0.344909,-0.227098}, + {-0.415043,-1.065131}, + {0.126645,1.162114}, + {1.370732,-0.619147}, + {0.823699,-0.552124}, + {0.345714,-0.232139}, + {0.894510,-0.203477}, + {0.475686,-1.010735}, + {0.661874,0.478840}, + {-0.521820,-0.526937}, + {1.314386,0.651335}, + {-0.319251,-0.196685}, + {-0.505632,0.967049}, + {0.590235,0.712258}, + {1.380347,1.137978}, + {0.152855,-0.242439}, + {0.291709,-0.255131}, + {1.260959,-0.491270}, + {-1.089113,-0.159145}, + {0.435095,-0.676862}, + {-0.340494,0.469703}, + {1.302442,-0.532868}, + {-0.378602,-0.400420}, + {0.925227,-0.607976}, + {0.251869,0.591035}, + {-0.646873,-0.636483}, + {-0.328268,-0.897893}, + {1.089412,-0.159031}, + {0.814358,2.220698}, + {0.772924,-0.691036}, + {-0.784735,1.137714}, + {-0.042070,-0.600536}, + {0.592465,-0.209877}, + {0.769297,1.296465}, + {0.448652,-0.198575}, + {0.025998,0.141744}, + {0.485850,-1.270583}, + {-0.846149,-0.038597}, + {-0.277242,-0.731952}, + {0.198053,-1.496392}, + {-0.073055,0.046129}, + {0.574797,-1.238401}, + {0.133512,0.156586}, + {0.105417,1.088396}, + {0.143785,0.480135}, + {0.306526,-0.884781}, + {0.722423,-0.916666}, + {-0.657561,0.272999}, + {-0.557441,1.138685}, + {-0.782249,-1.293763}, + {0.453444,0.532557}, + {1.013185,-0.405740}, + {-0.094466,0.752667}, + {1.286455,-0.593367}, + {-0.298950,0.306095}, + {1.181346,0.559262}, + {0.461658,-0.639042}, + {-1.291839,-0.121779}, + {-0.326193,0.113747}, + {-1.154270,-0.089857}, + {-0.351472,-1.491822}, + {0.720080,-0.419379}, + {-0.672820,0.094205}, + {0.812964,-0.064953}, + {-1.294077,1.076364}, + {-0.133796,-0.745281}, + {-0.393393,0.385628}, + {-0.602521,-0.377900}, + {0.528132,-0.164217}, + {0.505215,-0.104243}, + {0.765574,0.926339}, + {2.024634,-0.477364}, + {0.017166,0.179716}, + {0.399008,-1.200177}, + {-1.090208,0.311701}, + {-0.158439,-0.916668}, + {1.058774,0.191072}, + {-0.464662,-0.983746}, + {0.540500,-0.331676}, + {0.139759,-0.346498}, + {-0.331954,0.206804}, + {-0.956494,0.357149}, + {-0.944290,-0.414694}, + {1.172465,-0.536726}, + {-0.541046,0.365657}, + {0.276923,1.402963}, + {-0.242318,0.269377}, + {0.965338,-0.785207}, + {-0.718256,-0.028312}, + {0.231175,0.665614}, + {-0.947264,-0.913082}, + {-0.501002,1.094529}, + {0.352224,-0.272040}, + {0.397494,0.185641}, + {-0.151725,0.717844}, + {0.839893,0.459279}, + {0.801901,-0.313492}, + {-0.684958,0.226865}, + {-0.212219,-0.213841}, + {0.892238,-0.435760}, + {1.314788,-0.271844}, + {0.836362,0.043882}, + {-0.957485,-0.948085}, + {1.079672,0.119647}, + {-0.513333,0.529166}, + {0.438430,-0.923301}, + {0.175442,-0.539418}, + {-0.003292,-0.268481}, + {-0.438336,0.598716}, + {0.174795,0.663858}, + {0.409033,1.094613}, + {0.766143,0.882464}, + {0.116399,0.720590}, + {-0.563363,0.971493}, + {-1.542577,0.365604}, + {0.514771,-0.458050}, + {-0.346020,0.184177}, + {-1.029390,0.631160}, + {0.916323,0.569872}, + {0.330674,-0.403426}, + {-0.815112,0.338683}, + {-0.233795,-0.536290}, + {-0.156529,-1.368641}, + {-0.263744,0.144793}, + {0.546089,0.239988}, + {-0.176949,-0.463405}, + {-0.369226,-1.044596}, + {-0.505317,-0.388794}, + {-0.451340,0.812733}, + {0.325007,0.206856}, + {-0.810237,-1.085805}, + {0.165055,0.996302}, + {-0.931375,0.613591}, + {-0.126483,-0.744854}, + {0.397855,0.364294}, + {0.287751,-0.500914}, + {-0.053719,0.982818}, + {-0.553468,0.292330}, + {0.179430,-0.597617}, + {-1.198685,-0.800000}, + {1.186764,-0.992792}, + {0.724964,0.103448}, + {0.963127,0.232599}, + {0.092029,0.364811}, + {0.023554,0.358368}, + {-0.156919,-0.181441}, + {0.186716,0.206933}, + {0.533803,-0.467186}, + {-0.459122,0.140642}, + {0.994366,-0.893881}, + {0.452242,0.282844}, + {-1.757045,-0.228025}, + {0.966083,-0.036048}, + {-0.134917,-0.207168}, + {0.124213,-0.129237}, + {-0.080806,-0.024992}, + {-0.799884,-0.669277}, + {-0.620681,-0.397588}, + {-0.352503,-0.044189}, + {0.092370,0.364939}, + {0.449970,1.026360}, + {0.529612,0.063033}, + {-1.083693,-0.194379}, + {0.369823,-0.277191}, + {-0.177423,-0.619947}, + {0.562466,1.467675}, + {-0.573227,0.920231}, + {0.552988,-0.530708}, + {0.844829,-1.136412}, + {0.558908,0.169169}, + {0.626978,-0.115006}, + {0.351068,-0.464366}, + {-0.762156,-0.066833}, + {-0.117971,0.052717}, + {-0.570717,0.761831}, + {-0.514255,0.164156}, + {0.013305,-0.055138}, + {-0.245547,0.642430}, + {0.216396,0.005143}, + {-0.507045,-0.685026}, + {1.118325,0.364330}, + {-0.590687,-0.140389}, + {0.013596,0.844098}, + {-0.399225,0.716323}, + {-0.417137,-0.565919}, + {0.092852,0.416915}, + {-0.943451,-0.152195}, + {-1.020240,0.801126}, + {-0.611728,0.436773}, + {-0.019905,-1.332957}, + {-0.690646,-0.464269}, + {0.907830,-0.494683}, + {-0.281882,-0.749796}, + {-1.546127,-1.007659}, + {0.830144,-0.015166}, + {-0.390510,-1.043779}, + {0.117684,-0.482510}, + {0.924184,1.260658}, + {-1.061867,1.221469}, + {-0.815122,-0.023800}, + {-0.103022,0.298058}, + {-0.252904,0.230901}, + {0.021567,-0.875517}, + {0.248461,0.093681}, + {0.264196,0.004397}, + {-0.311626,-0.620671}, + {0.280419,0.771652}, + {-0.018466,0.219481}, + {1.700853,-0.112003}, + {-0.882344,0.018746}, + {-0.006374,0.087725}, + {-0.100868,0.209463}, + {0.512129,0.523700}, + {-0.317199,0.307879}, + {0.294301,-0.330502}, + {0.601020,-0.125700}, + {-0.739890,-0.023356}, + {-1.444838,0.568493}, + {-0.134116,-0.671218}, + {1.005881,0.367029}, + {-0.738930,0.646782}, + {-0.342683,-0.504731}, + {0.716899,-0.539596}, + {0.738524,0.070291}, + {0.386202,0.440067}, + {1.345032,0.180183}, + {-0.018880,-0.031769}, + {-0.378806,-0.171766}, + {-0.286278,-0.617444}, + {-0.080975,-0.526326}, + {0.700062,-0.604598}, + {-0.885363,0.470310}, + {-1.156147,-0.054617}, + {0.133744,-0.226376}, + {-0.240292,-1.157249}, + {0.063137,-0.793579}, + {0.030749,-0.302199}, + {0.090525,0.483558}, + {0.073085,-0.481644}, + {-0.223842,-2.140667}, + {0.031752,0.005003}, + {1.231275,-0.530212}, + {1.038917,-0.422673}, + {0.394114,0.524978}, + {-1.097829,0.484170}, + {0.431677,0.251181}, + {1.225130,-0.837454}, + {-0.186695,1.110229}, + {0.338671,0.141820}, + {-0.023210,1.021750}, + {0.990528,-1.624820}, + {0.011025,-0.247794}, + {-0.339063,0.407060}, + {0.384226,0.510580}, + {-0.757315,-0.246458}, + {-1.582920,0.107500}, + {-1.012034,0.035645}, + {1.968999,0.055935}, + {-1.424400,-1.006629}, + {-0.381551,-0.428135}, + {0.437026,0.843355}, + {0.179125,0.109344}, + {-0.449217,1.913849}, + {0.427694,-0.425086}, + {-0.211741,-0.700567}, + {-0.188227,-0.847564}, + {-0.594710,1.483595}, + {-0.072411,0.766453}, + {1.150670,0.617209}, + {-0.386818,-0.026636}, + {-0.385528,-1.273407}, + {-0.361319,0.734053}, + {0.098469,-0.126693}, + {-1.389158,1.163252}, + {-0.460623,0.471711}, + {0.338909,-0.460817}, + {0.130190,0.607843}, + {0.207546,0.467445}, + {-0.587233,-0.598555}, + {0.608060,0.186716}, + {1.153664,0.245205}, + {0.328400,0.759055}, + {-0.694971,0.220107}, + {-0.338761,-1.561954}, + {-0.594066,-0.121286}, + {-0.422942,-0.435408}, + {-0.514954,-0.135974}, + {-0.685185,0.540584}, + {-0.824955,1.303292}, + {0.226211,-0.342887}, + {-0.598595,-1.523227}, + {0.678569,0.475931}, + {0.630242,0.483559}, + {-0.620338,0.518139}, + {0.919177,-0.181962}, + {0.507928,-0.566914}, + {-0.488096,0.812728}, + {-0.364813,0.705453}, + {-1.369744,0.240855}, + {0.714938,-0.709527}, + {0.582868,0.091790}, + {-0.180208,0.726072}, + {0.452558,0.415231}, + {0.495553,-1.877462}, + {0.582132,-0.333465}, + {0.833380,-0.489799}, + {0.267983,0.623820}, + {-1.556596,0.244596}, + {0.566314,0.288588}, + {-0.067564,1.023165}, + {0.505347,0.922345}, + {-0.470138,-0.951912}, + {0.660978,0.761539}, + {0.621641,0.135908}, + {1.400944,0.226884}, + {0.652989,-0.565545}, + {0.237052,-0.192473}, + {0.953481,-0.437290}, + {-0.532917,0.753979}, + {-0.401020,0.182003}, + {-0.774883,0.538031}, + {-0.320697,-0.549711}, + {1.663374,0.724379}, + {0.588294,1.303208}, + {1.044164,-0.361746}, + {-0.145359,-1.690668}, + {-0.825189,1.215719}, + {-1.088180,-0.300943}, + {-0.430774,0.622501}, + {0.316668,0.544425}, + {0.504829,-0.457687}, + {-0.834387,-0.240484}, + {-0.306896,0.687505}, + {0.268810,1.644408}, + {-0.780049,1.087894}, + {-1.538673,-0.201769}, + {0.535403,0.605154}, + {0.019388,-0.435640}, + {-0.440314,-0.055865}, + {1.298971,1.128651}, + {0.177042,1.260625}, + {-0.854552,0.621748}, + {-0.677730,0.607538}, + {0.203182,0.219196}, + {1.347539,0.528045}, + {-1.261542,0.367327}, + {-0.137496,0.330269}, + {0.960711,1.133014}, + {0.687000,0.111912}, + {-0.181358,1.091956}, + {0.223343,-0.483492}, + {-0.273860,0.362866}, + {-0.011742,-0.136568}, + {0.275521,-1.429957}, + {-0.273297,-0.074082}, + {0.290409,-0.066311}, + {-0.228273,-0.362296}, + {-1.378862,-0.444713}, + {0.241775,0.546076}, + {0.039962,-0.186289}, + {-0.036983,-0.286490}, + {0.091318,-1.140707}, + {0.511967,-0.298166}, + {-0.103362,0.567148}, + {-1.507135,-0.446682}, + {-0.002256,-0.382378}, + {0.793055,0.713325}, + {0.519248,-0.273429}, + {0.373212,1.206027}, + {-0.186569,0.345384}, + {-1.037811,0.160379}, + {0.100911,0.728662}, + {0.348187,1.397238}, + {1.053003,0.787660}, + {0.851118,-0.072377}, + {0.885419,-2.014642}, + {0.224168,-0.873868}, + {0.866546,-1.231568}, + {-0.196727,0.530071}, + {-0.510674,-0.434893}, + {0.256375,-0.296321}, + {1.333570,1.516369}, + {0.216969,1.545445}, + {0.164709,0.254986}, + {0.100115,-0.605479}, + {0.086380,0.234960}, + {0.907601,-0.649032}, + {-1.199984,0.075438}, + {1.186217,-0.332770}, + {-0.270511,-1.202410}, + {0.826974,0.035252}, + {0.331603,-0.037377}, + {0.476641,0.109902}, + {-0.174187,-0.546405}, + {0.159829,-0.563128}, + {-0.251076,-0.337193}, + {0.587231,0.086443}, + {-0.004139,-0.062337}, + {0.847037,-1.213560}, + {0.720797,-0.302577}, + {-0.313615,1.223469}, + {-0.385838,0.548932}, + {-0.681006,0.375296}, + {-0.002250,-0.626297}, + {0.044566,-0.714328}, + {-0.785516,0.625881}, + {1.008274,-0.326630}, + {-0.475841,0.809907}, + {-0.189279,-0.144121}, + {-0.147481,-0.167430}, + {0.297717,-0.662249}, + {0.903221,-0.828173}, + {-0.076715,-0.103500}, + {-0.220609,0.037787}, + {0.500891,0.420473}, + {0.273765,-1.134860}, + {0.469416,-0.299483}, + {0.490976,0.584688}, + {0.840863,0.462752}, + {-0.374205,-0.498565}, + {0.970595,1.606044}, + {0.351297,0.387913}, + {-1.301970,1.173260}, + {0.132588,1.491314}, + {-1.181621,-0.261585}, + {-1.361050,0.972321}, + {-0.153063,-1.707550}, + {0.758497,0.123412}, + {0.238820,0.155025}, + {-0.254726,0.301346}, + {-1.010450,1.160231}, + {-1.240972,0.287896}, + {0.784458,-0.105589}, + {-0.536336,-0.405889}, + {-0.146211,0.253732}, + {-0.878979,0.549278}, + {0.065870,-0.198147}, + {-0.954775,1.043484}, + {0.557617,1.047797}, + {0.493106,-0.919198}, + {-0.170124,0.314583}, + {0.688442,0.122648}, + {-1.023681,-0.111431}, + {0.801745,-1.821817}, + {-0.723679,0.440206}, + {-0.453669,-0.190110}, + {-0.581141,0.078254}, + {-0.941791,-0.060551}, + {0.890659,0.122601}, + {0.963847,0.066347}, + {0.759853,-0.199802}, + {-0.106224,0.458618}, + {1.065279,0.399051}, + {-0.321525,0.808861}, + {-1.208707,0.585097}, + {0.866323,-0.559539}, + {0.474646,0.039294}, + {1.902251,0.915424}, + {-0.455613,-0.414985}, + {-0.246282,-0.640345}, + {-0.333131,0.196717}, + {-0.493399,-0.772411}, + {0.204786,-0.870497}, + {0.309500,-0.533279}, + {0.910107,0.510703}, + {-0.056168,-0.123584}, + {-0.491468,-0.572133}, + {0.375774,1.162053}, + {0.063430,1.272410}, + {-1.406177,-0.010975}, + {-0.087637,-0.226010}, + {-0.563296,0.452261}, + {-0.449694,-0.554259}, + {0.707040,0.188047}, + {1.601323,-0.206911}, + {-0.923501,0.574700}, + {-0.966020,0.679890}, + {0.268570,0.368709}, + {0.212696,-0.904453}, + {0.194974,0.488184}, + {0.470565,0.918929}, + {-0.684581,-0.142648}, + {-0.844954,-0.189146}, + {-0.542152,-0.747252}, + {0.495473,0.403557}, + {-0.688008,-0.913830}, + {-0.059830,0.517971}, + {-2.171862,1.024477}, + {-1.249624,-0.015772}, + {0.015926,0.734811}, + {0.457707,-0.081584}, + {-0.009916,-0.098752}, + {0.810571,-0.772556}, + {1.274648,0.151342}, + {1.083434,-0.643550}, + {1.044509,0.338194}, + {-0.378948,0.039118}, + {-0.075820,-1.730294}, + {0.774083,0.620047}, + {-0.066915,-1.689347}, + {0.731451,-0.094387}, + {0.259309,-0.417934}, + {-0.498563,0.708930}, + {0.774393,1.168883}, + {-0.172278,-0.053409}, + {-0.293542,-0.414288}, + {1.373904,0.468393}, + {-0.086211,0.448331}, + {0.141485,-0.030337}, + {-0.107671,0.406149}, + {0.098529,0.748433}, + {-0.267386,-0.031872}, + {-0.748722,-0.653857}, + {0.004819,0.286587}, + {0.320934,0.502389}, + {0.434680,0.257350}, + {0.042256,-0.018636}, + {-0.305369,0.076753}, + {-0.205572,-0.818070}, + {0.936762,0.858510}, + {-0.423207,0.799304}, + {0.072296,0.374763}, + {-0.156480,-0.604657}, + {-0.968287,0.266390}, + {1.115752,-0.133177}, + {0.666615,-0.815890}, + {0.472277,0.132071}, + {-0.193603,0.875236}, + {0.318294,-0.031684}, + {1.004666,-0.833170}, + {0.262337,-0.253264}, + {0.691983,2.042454}, + {0.209886,-0.290278}, + {0.278291,1.124044}, + {-0.207172,1.567355}, + {0.238977,-0.323462}, + {-0.223252,-0.119456}, + {0.303814,1.004795}, + {1.200940,0.213197}, + {-0.687440,-1.084798}, + {-0.198295,0.195513}, + {0.046763,0.521581}, + {-0.510831,-0.423679}, + {0.244499,-0.628926}, + {0.698044,-0.623503}, + {0.416896,-0.041211}, + {-0.350345,-0.226075}, + {0.695417,0.604628}, + {-0.383804,0.383435}, + {0.086188,-0.192144}, + {0.781463,-1.146905}, + {0.098847,-0.660911}, + {-0.335006,0.419788}, + {1.122026,-0.064158}, + {0.384520,-0.618539}, + {0.479143,-1.027819}, + {1.107169,-0.524087}, + {0.383901,-0.402677}, + {0.194053,0.255903}, + {0.477393,0.074827}, + {-0.410776,-0.444651}, + {-1.991022,-0.394045}, + {0.216143,-0.334173}, + {-0.563452,0.819894}, + {-0.311190,0.640443}, + {-0.243058,0.560057}, + {-0.546188,-0.070783}, + {-0.615962,0.363862}, + {0.240774,0.912485}, + {0.219238,-0.849157}, + {-0.885919,-1.007370}, + {0.190039,0.543608}, + {1.070954,0.179088}, + {0.554915,-0.018668}, + {1.371742,-0.335006}, + {-0.645975,0.229713}, + {-0.736469,0.669922}, + {0.001929,-0.033222}, + {0.701460,-0.205447}, + {0.486977,0.824796}, + {1.258540,-0.391141}, + {-0.036946,0.293066}, + {0.670274,-0.247172}, + {-1.768643,0.859413}, + {0.290706,-0.231858}, + {-0.102970,-0.041794}, + {-0.418989,-0.849960}, + {0.098567,0.921322}, + {-0.459667,-0.893404}, + {-0.804486,1.022065}, + {-0.978005,-1.097316}, + {0.774600,-0.328074}, + {-0.242046,0.003126}, + {-0.056869,-0.164227}, + {-0.521315,0.145929}, + {0.311763,-0.783776}, + {0.116789,0.376795}, + {0.518519,-0.236313}, + {0.134501,-1.013336}, + {-1.199793,-0.823016}, + {0.122597,0.539057}, + {0.664613,0.256397}, + {-0.316770,0.490154}, + {-1.263702,-0.252355}, + {0.550430,0.282031}, + {1.070783,-0.094371}, + {0.587430,-0.613368}, + {0.684523,0.740690}, + {-1.023715,0.345296}, + {0.107663,0.265091}, + {0.215299,-0.153788}, + {-0.342020,-1.389234}, + {1.512062,0.110530}, + {-0.255843,-0.304788}, + {0.344653,0.472651}, + {1.604399,0.282072}, + {-0.123394,-1.073324}, + {0.823059,0.235494}, + {1.005127,-0.422945}, + {1.087857,0.942103}, + {0.388606,0.630055}, + {-0.489398,0.271613}, + {0.662806,-0.072930}, + {-0.505174,-0.083009}, + {-1.099044,-0.087619}, + {1.682942,0.105597}, + {-0.963602,-1.159610}, + {1.770411,-0.665544}, + {0.274943,-0.029549}, + {-0.368023,0.498046}, + {0.382125,0.110398}, + {0.143411,-0.471052}, + {-0.962301,-0.125190}, + {-0.382881,-0.300460}, + {-0.702084,-1.028932}, + {0.609839,-0.269770}, + {-0.322227,-0.046758}, + {0.196679,-0.841992}, + {0.389128,0.554504}, + {-0.138058,-0.153224}, + {0.225274,0.357098}, + {-0.326247,-0.149102}, + {0.189830,2.038718}, + {0.622165,-0.578665}, + {-0.555788,-1.517656}, + {0.223546,-0.956908}, + {0.036102,-0.216316}, + {-0.527827,-0.790654}, + {-0.703457,1.216742}, + {1.896473,0.420610}, + {-0.919048,-1.717801}, + {-0.564716,-0.463391}, + {0.072924,0.515583}, + {1.213858,1.273362}, + {-0.585628,-1.777402}, + {0.315143,0.314280}, + {1.599076,0.263103}, + {0.551870,-0.508782}, + {0.198278,-0.171192}, + {0.370793,0.390001}, + {0.186273,-0.685544}, + {-1.334139,-0.047514}, + {0.859364,1.107470}, + {1.108595,-0.249803}, + {-0.767836,0.024632}, + {-0.755180,0.202525}, + {0.558701,-0.646325}, + {-0.864527,-0.056300}, + {-0.568031,0.020910}, + {-0.192644,-0.239731}, + {0.335820,0.941753}, + {-0.905318,0.078626}, + {1.348554,-0.274217}, + {0.718711,0.937416}, + {0.701784,1.186619}, + {0.783715,0.942788}, + {0.511822,-0.269353}, + {0.262749,0.224861}, + {-0.369690,0.087992}, + {0.119908,0.245625}, + {-0.755046,-0.352329}, + {1.050758,-1.220104}, + {1.112945,-0.869696}, + {0.154116,-0.398725}, + {-0.682546,-0.178220}, + {0.000616,-1.176764}, + {0.582237,-0.360093}, + {-0.048804,-0.182963}, + {0.343632,-1.302243}, + {-0.059123,1.169904}, + {-0.849233,0.417740}, + {0.802972,0.824939}, + {-0.259347,1.401916}, + {0.262680,1.027712}, + {0.119396,0.842189}, + {0.789537,0.288341}, + {0.873023,-0.678867}, + {-0.282999,-0.803959}, + {0.032434,-0.332495}, + {0.362466,-0.869451}, + {1.303907,-0.351392}, + {-0.261026,-0.184508}, + {0.069724,0.222538}, + {-1.692123,-0.176506}, + {0.182023,-0.297168}, + {1.166731,0.974402}, + {0.182690,0.901593}, + {-2.707181,0.294289}, + {-0.422655,0.616411}, + {0.818191,-0.536655}, + {0.200265,-0.152867}, + {-0.571663,-0.576991}, + {-1.149922,0.237294}, + {0.683474,0.514764}, + {-0.327411,-0.298380}, + {0.543399,1.134105}, + {0.221413,-0.885642}, + {1.120697,-0.024074}, + {-0.727365,0.561341}, + {-0.060173,-0.140444}, + {0.010505,-0.532622}, + {0.085622,0.854726}, + {0.776915,0.627544}, + {-0.480372,1.612013}, + {0.035874,0.948871}, + {-0.202889,0.071192}, + {1.071655,0.563884}, + {-0.856493,0.157759}, + {1.465912,0.740984}, + {-0.975957,0.149083}, + {0.017006,0.661242}, + {0.677641,0.736448}, + {-0.055937,1.619199}, + {0.017620,0.501037}, + {-0.329608,-0.642669}, + {0.460941,-0.086157}, + {-0.677150,-0.999700}, + {1.085090,0.487071}, + {0.766686,0.736476}, + {0.245465,-0.602065}, + {0.259054,-0.926270}, + {0.241794,0.493962}, + {0.213145,-0.717582}, + {-0.164479,1.252053}, + {1.520899,0.765972}, + {-0.262001,-0.514990}, + {0.394009,0.530819}, + {-0.398782,0.610431}, + {0.061806,-0.058270}, + {0.630771,1.025669}, + {-0.235617,0.164118}, + {-0.497122,0.651216}, + {0.906863,0.812694}, + {0.942602,0.037286}, + {0.353956,-0.268639}, + {0.721879,-1.407883}, + {0.336154,-1.490511}, + {0.463325,-0.409685}, + {-0.654404,0.164448}, + {1.353668,-1.381831}, + {0.902985,1.291975}, + {-0.673638,1.082945}, + {0.096381,0.069481}, + {0.268580,-0.006480}, + {0.351301,0.210100}, + {-0.111290,0.763114}, + {0.482922,0.206619}, + {0.265563,0.454462}, + {-1.242255,-1.027363}, + {-1.082879,0.470826}, + {0.192528,-1.507715}, + {-1.393900,0.462004}, + {-0.328719,0.813496}, + {0.736296,0.834899}, + {0.401170,-0.096215}, + {0.570525,-0.070442}, + {-0.633878,-0.590925}, + {0.147991,0.069756}, + {0.368475,0.553471}, + {-0.936644,-0.634945}, + {-0.209835,0.061014}, + {0.376984,0.415601}, + {-0.053992,0.927934}, + {-0.664815,-0.230709}, + {-0.368558,-0.869841}, + {0.869019,0.207397}, + {-0.077032,0.015291}, + {-1.041657,-1.084937}, + {-0.040849,-1.191117}, + {-0.040502,-0.637029}, + {-0.113547,-0.036059}, + {-0.376653,0.011245}, + {-0.611166,-0.722246}, + {-0.252785,0.199909}, + {-0.554396,-0.777145}, + {1.508706,1.960357}, + {0.802878,-1.058245}, + {-0.668372,-0.380450}, + {0.934698,0.328675}, + {-0.484190,-0.777490}, + {-1.096700,-0.599480}, + {0.133311,-0.708274}, + {-0.037022,-0.697705}, + {-0.094335,-0.104415}, + {0.578229,-0.473142}, + {0.521239,0.402009}, + {-0.601727,-0.589783}, + {1.068671,-0.802095}, + {-0.179212,0.761986}, + {-0.098283,-0.660154}, + {-1.325546,0.733457}, + {1.204701,0.635880}, + {0.071453,0.547081}, + {0.116252,0.809687}, + {-0.289209,-0.786678}, + {0.060218,-0.093927}, + {1.040621,0.201639}, + {0.663944,-1.404113}, + {0.323341,0.022382}, + {-1.173198,1.186145}, + {0.631958,0.811309}, + {0.140914,-0.812980}, + {0.918574,-0.388552}, + {0.137629,0.245151}, + {0.286895,-1.006635}, + {-0.883709,0.464159}, + {1.149660,0.500635}, + {0.869576,-0.471720}, + {0.820353,0.381747}, + {-0.764649,-0.632796}, + {-1.436934,-0.113737}, + {-2.086755,0.084057}, + {1.010455,-0.246709}, + {-0.149211,-1.532015}, + {0.496285,0.442942}, + {0.101726,-0.696911}, + {0.536346,-0.055237}, + {-1.001254,-0.165978}, + {0.527046,1.269435}, + {0.251018,-0.408625}, + {-0.398318,1.683260}, + {-0.838820,-0.091386}, + {1.301904,1.505187}, + {0.156433,-0.483412}, + {-0.888996,-0.920372}, + {1.318649,0.539760}, + {0.608943,1.036337}, + {-0.290264,-1.659074}, + {-0.100778,0.034840}, + {-0.597380,-0.927067}, + {2.662626,-0.397478}, + {1.115005,-0.106991}, + {0.838668,-0.032934}, + {-0.046413,0.184593}, + {0.262956,-0.070027}, + {0.126185,1.919012}, + {-0.267772,-0.664473}, + {0.614649,0.179683}, + {-0.527418,0.106321}, + {-0.240424,1.418708}, + {-0.112591,-0.348458}, + {1.337480,-0.026564}, + {-0.112471,0.124444}, + {-0.491147,0.252096}, + {-0.291925,-0.069114}, + {0.572380,0.425877}, + {0.216700,0.480072}, + {0.002923,-0.590032}, + {-0.221473,0.797032}, + {-0.450239,-0.109167}, + {-0.138495,0.363282}, + {0.536702,0.942890}, + {-0.385188,-0.255577}, + {-0.195874,-0.396227}, + {-0.149959,-0.045442}, + {0.175505,0.639732}, + {-0.871016,0.558898}, + {-0.166986,0.487026}, + {0.015097,0.188443}, + {1.593731,-0.064295}, + {-1.302004,1.334270}, + {0.647612,0.649894}, + {-0.466297,-1.438770}, + {-0.082164,-0.271981}, + {-0.369005,0.109265}, + {0.012960,1.067369}, + {0.008171,-0.522336}, + {1.072758,0.533772}, + {0.010905,-0.615835}, + {-0.267041,0.338341}, + {-0.163231,-0.172623}, + {-0.298143,-0.844671}, + {-0.996324,0.395993}, + {0.351228,0.210237}, + {-0.408737,1.852449}, + {1.371179,-0.270106}, + {0.698624,-0.186227}, + {0.764440,-1.018351}, + {-0.417185,-0.489324}, + {-0.254638,-0.780647}, + {-0.589837,-1.171805}, + {1.132576,-0.812185}, + {0.071797,0.075910}, + {-0.142160,-0.205967}, + {-0.131813,-1.570445}, + {-0.646197,-0.501273}, + {-0.343572,-0.550584}, + {-0.384814,0.182407}, + {1.396442,-0.058372}, + {1.089823,0.806014}, + {0.613392,0.111495}, + {-0.619374,-0.997811}, + {0.937457,0.236635}, + {-1.783063,-0.017353}, + {0.639293,1.721414}, + {-0.973684,-0.595704}, + {0.588127,2.077128}, + {-0.508637,0.421534}, + {-0.204767,-0.116534}, + {-0.925742,-0.808087}, + {-0.247853,0.383247}, + {0.122339,-0.377588}, + {-0.245016,1.239323}, + {-1.251013,1.414176}, + {-0.595604,0.183438}, + {0.165761,0.973419}, + {-0.360977,0.533837}, + {-0.156010,1.266329}, + {-0.361477,-0.706989}, + {-1.278243,-0.570395}, + {0.188787,-0.241089}, + {0.695269,-0.016308}, + {0.336792,1.128790}, + {-0.195083,-0.486791}, + {0.435703,-1.218875}, + {-0.892865,0.992856}, + {-0.503019,-0.799460}, + {0.305161,-0.872681}, + {0.824504,0.670722}, + {-0.057163,-0.737607}, + {-0.459377,-0.426213}, + {0.661363,-0.123470}, + {0.291500,-0.574575}, + {0.736858,-0.048679}, + {-1.798391,-0.674830}, + {-1.124265,-0.210419}, + {0.305464,0.240427}, + {0.660762,0.390722}, + {-2.191616,-0.299109}, + {0.764942,-0.333123}, + {-0.766828,-0.575533}, + {0.609647,-0.179405}, + {0.010595,-0.673221}, + {0.496617,0.041268}, + {0.961196,-0.055449}, + {-0.225309,0.834606}, + {1.114384,-0.055796}, + {-0.222813,-0.099848}, + {-0.120519,0.033593}, + {1.015066,-0.116109}, + {-0.906373,0.667821}, + {-1.147539,-1.158675}, + {-0.339648,-0.873359}, + {-0.489429,-0.652974}, + {-0.607693,0.915098}, + {-0.739589,-0.880921}, + {-0.519588,0.827766}, + {0.166684,-0.028429}, + {-0.621222,-0.143460}, + {0.186200,-0.213188}, + {-0.815053,-0.375461}, + {0.459186,0.134372}, + {0.218895,0.177810}, + {0.028394,-0.083888}, + {-0.673259,-0.245137}, + {1.213576,-0.494994}, + {-0.504661,1.291076}, + {0.485929,0.212768}, + {-0.050601,1.330620}, + {-0.127089,1.121260}, + {-0.062864,1.184358}, + {0.388036,0.065984}, + {0.639649,0.940623}, + {0.345500,-0.926372}, + {0.294821,0.080969}, + {-0.675096,0.401880}, + {-0.457889,-1.034898}, + {0.546379,-0.123306}, + {1.925229,0.617684}, + {0.036275,0.153092}, + {0.438382,-0.367055}, + {-1.510804,-0.350652}, + {0.511549,0.357008}, + {0.058650,-0.056035}, + {0.426843,0.291233}, + {0.647381,1.340631}, + {-0.459728,0.946206}, + {-0.626630,0.024277}, + {-0.023095,-0.808970}, + {0.409768,-1.094577}, + {-0.364498,0.100205}, + {0.584196,-0.029047}, + {-1.299973,-1.205881}, + {-1.467178,1.165527}, + {0.651701,-0.056131}, + {0.591321,0.585146}, + {1.050908,-0.864838}, + {-1.010467,0.869663}, + {0.286195,0.382027}, + {-0.407370,0.606735}, + {0.731817,-0.248191}, + {0.594029,0.949877}, + {1.107643,0.816630}, + {0.112756,-0.800629}, + {-0.936598,-0.635692}, + {0.320902,-1.154471}, + {0.362662,0.687527}, + {-0.772593,-0.345974}, + {-0.301668,-0.298240}, + {-0.317592,1.336231}, + {-0.396778,-0.334856}, + {-0.506675,-0.312185}, + {-1.281432,0.149600}, + {0.401639,-0.418585}, + {0.782846,0.722927}, + {0.344150,0.854286}, + {-0.014517,0.567740}, + {0.108356,0.024531}, + {0.902085,-0.055156}, + {0.826237,-0.713395}, + {0.244866,0.044681}, + {-0.176188,0.891915}, + {-0.420097,-0.253119}, + {0.417268,0.290663}, + {0.163310,-0.245311}, + {-0.182683,-0.297175}, + {0.631826,-0.030011}, + {-0.109512,-0.088560}, + {1.429108,0.225297}, + {0.155576,0.083817}, + {1.613520,0.239461}, + {0.127288,-0.420358}, + {0.477950,0.504352}, + {1.328754,-0.163013}, + {-0.568880,-0.751232}, + {-0.482506,-1.538834}, + {-0.059557,0.412963}, + {0.350223,-0.360451}, + {0.833328,1.009992}, + {-0.066145,-0.506290}, + {-1.529181,0.414709}, + {1.240990,0.206763}, + {-1.129462,0.769895}, + {-0.481806,0.484887}, + {0.595993,0.725062}, + {-0.285575,1.347548}, + {2.330541,-0.013789}, + {-1.797866,0.257308}, + {0.905498,0.146234}, + {-0.319323,-1.413330}, + {-0.175398,-1.142782}, + {-0.862556,0.482210}, + {0.223448,0.729414}, + {0.578396,-0.016839}, + {-0.318659,-0.617867}, + {0.157744,0.530414}, + {0.123166,-0.362401}, + {1.806366,0.187194}, + {0.141849,0.128567}, + {0.233317,0.139137}, + {-0.195036,-0.613837}, + {1.714962,1.593262}, + {-0.732866,-0.038927}, + {0.307565,-0.920340}, + {0.373395,-0.516143}, + {0.826920,-0.612844}, + {-0.388779,-0.390229}, + {-0.862877,0.788258}, + {0.495550,0.670739}, + {-0.545650,0.635220}, + {-0.230298,0.414062}, + {-0.719266,-0.811359}, + {-0.999942,1.684412}, + {0.527479,0.543823}, + {-0.743616,0.101886}, + {-0.199070,0.115074}, + {-0.870949,0.256787}, + {0.142208,0.122864}, + {1.178514,-0.092691}, + {0.516611,0.664212}, + {-0.414682,1.125980}, + {0.378510,-0.100979}, + {0.283304,-0.277420}, + {-0.208157,-0.202171}, + {-0.440988,-0.820237}, + {1.298009,-0.850293}, + {0.779159,-0.461672}, + {0.149934,1.508017}, + {0.095404,-0.092000}, + {-0.337095,-0.317412}, + {-0.629736,-0.111690}, + {-0.399381,0.078341}, + {-0.479442,-0.187099}, + {-0.760090,0.125670}, + {-0.610029,-0.278563}, + {0.649156,0.494456}, + {-0.672965,0.631743}, + {-0.016562,0.306273}, + {-0.609100,0.137436}, + {0.652638,1.047158}, + {0.026014,-0.348532}, + {0.423324,-0.479491}, + {-0.383879,0.485369}, + {-0.598911,-0.835369}, + {0.115294,-0.571799}, + {-0.125615,0.202125}, + {-0.909276,-0.587717}, + {-0.727220,0.093925}, + {-0.134042,-0.601821}, + {-0.187468,-0.669988}, + {0.370470,0.393121}, + {-0.691281,0.520446}, + {-0.548105,-0.687475}, + {1.223865,0.276014}, + {-0.770862,-0.529642}, + {-0.147001,-0.466523}, + {-0.573650,0.453058}, + {-0.592723,0.439779}, + {-0.455307,-0.206169}, + {1.320446,0.684046}, + {-0.935463,-0.447754}, + {0.703593,-1.016309}, + {-0.891936,-0.175935}, + {0.328758,-0.396236}, + {0.094338,0.221705}, + {-1.404257,-0.190658}, + {-0.100089,1.039360}, + {-0.966548,0.827384}, + {-1.253737,-1.014768}, + {-0.346418,-1.267854}, + {-0.158700,1.164901}, + {-0.034736,0.009220}, + {0.545952,-0.246464}, + {0.717271,-0.093260}, + {0.676085,-0.863656}, + {0.493132,-0.105922}, + {-0.533072,0.636553}, + {-0.216843,0.884234}, + {0.111424,0.082110}, + {1.028141,0.146957}, + {-0.446215,0.136231}, + {0.730978,-0.275731}, + {0.042365,0.048442}, + {-0.370711,-0.543378}, + {0.106057,1.265886}, + {0.379243,-0.330497}, + {1.108852,-0.723866}, + {-0.110398,0.511860}, + {-0.106902,0.174878}, + {1.148426,-0.603670}, + {-0.128195,0.280598}, + {0.764800,-0.358176}, + {-0.266245,0.816531}, + {0.114914,-0.539096}, + {0.114034,-0.367231}, + {2.141155,-1.484656}, + {-0.724135,-0.856970}, + {0.266306,-0.874060}, + {0.846456,0.435570}, + {0.066472,0.252900}, + {-1.088643,-1.133248}, + {-0.566947,0.767431}, + {0.619468,-0.550164}, + {0.029218,1.459059}, + {1.301080,0.095710}, + {1.753613,-0.553147}, + {1.516418,-0.318869}, + {0.861448,-0.472804}, + {-1.047020,-0.037668}, + {-0.123383,0.272455}, + {-0.124143,1.500702}, + {0.378722,0.458093}, + {-1.369372,-0.010599}, + {-1.027065,0.948843}, + {0.152530,-0.545888}, + {-0.239192,0.716174}, + {0.874709,-1.022073}, + {-0.259942,-0.432089}, + {0.315777,-0.677813}, + {-0.187516,0.604001}, + {-0.350366,-0.868253}, + {0.358178,0.239084}, + {-0.355413,0.043801}, + {-0.114867,0.567550}, + {0.031781,0.301042}, + {-0.447827,-0.086481}, + {0.347362,-0.347636}, + {1.466736,-1.298975}, + {1.198740,-0.131404}, + {1.300932,0.897703}, + {0.490673,-0.229079}, + {-0.330844,-0.232505}, + {0.025943,0.810266}, + {-0.261850,-0.280763}, + {-0.607853,1.415846}, + {0.498158,-1.107135}, + {0.674920,-1.200670}, + {-0.527907,0.318037}, + {-0.097676,0.532536}, + {-0.475594,0.848160}, + {1.642276,-0.891873}, + {-0.019197,-0.109536}, + {0.784795,0.260554}, + {-0.431823,-0.907632}, + {-0.763132,-0.342258}, + {0.570806,-0.517628}, + {-0.522336,0.403684}, + {0.307563,-1.143478}, + {0.825753,0.031997}, + {0.368023,-0.139664}, + {2.021968,-0.943570}, + {0.245160,-0.269865}, + {1.303964,0.871270}, + {-0.453218,0.819811}, + {0.594784,0.655540}, + {-0.891577,-0.373922}, + {0.538908,-0.710190}, + {0.930254,0.481708}, + {0.307017,-0.652410}, + {-0.201791,-0.804746}, + {-0.740248,-0.045989}, + {0.865316,0.507359}, + {0.112008,0.675150}, + {0.390570,-0.737997}, + {0.588187,-0.739911}, + {-0.557253,0.208247}, + {-1.425644,-0.743117}, + {0.400609,-1.036328}, + {0.703460,0.720835}, + {-1.235671,0.360834}, + {0.977538,0.800469}, + {-0.215826,-0.917093}, + {0.464002,-0.108658}, + {-0.170525,1.430161}, + {0.249880,0.881905}, + {0.039538,0.515360}, + {0.589463,1.687736}, + {-0.918504,0.398258}, + {0.885603,-0.419459}, + {-0.103454,0.517781}, + {-1.403384,0.991157}, + {-1.129402,-0.084304}, + {0.631421,-0.053522}, + {1.013885,-0.201949}, + {0.677556,0.891074}, + {0.761542,-0.055830}, + {1.043183,0.841930}, + {0.116780,0.047638}, + {-0.379538,0.850317}, + {0.899566,-1.508949}, + {-0.360145,-0.726620}, + {-0.394237,0.504382}, + {1.299661,-0.904075}, + {0.037135,-1.543567}, + {0.025721,-1.294574}, + {-0.201345,-0.573420}, + {-0.805476,1.100473}, + {-0.222557,0.815637}, + {0.745171,-0.443108}, + {-0.051322,0.385340}, + {0.415288,0.967950}, + {0.567228,0.929748}, + {-0.981482,0.368396}, + {-0.322623,0.925524}, + {0.036004,-1.359715}, + {-1.239654,0.547052}, + {0.569381,0.209552}, + {0.999405,0.435894}, + {0.209398,-0.035708}, + {-0.616545,-1.367319}, + {-0.032505,0.893263}, + {-0.753972,-0.284855}, + {-1.122253,0.694921}, + {0.062416,0.560687}, + {-0.867416,0.682553}, + {-0.093222,0.154366}, + {-0.881648,0.429238}, + {-0.190308,-2.089628}, + {0.066021,0.756615}, + {0.514725,-0.798372}, + {0.053171,-1.408616}, + {0.209844,0.661365}, + {-0.353419,0.830578}, + {0.283011,-0.510899}, + {1.844187,0.067852}, + {0.452893,0.042450}, + {1.522679,0.732928}, + {0.455406,-0.622942}, + {0.434744,-0.877805}, + {0.156233,0.549888}, + {-0.488361,0.683512}, + {-0.709181,-0.074767}, + {1.094457,-1.430172}, + {-1.090533,-1.200256}, + {0.467875,-1.396375}, + {-0.216862,0.998395}, + {0.845417,0.461581}, + {-0.243621,-1.037224}, + {1.009367,-0.804843}, + {-0.733158,-0.634989}, + {-0.317695,0.187141}, + {1.042970,-0.479150}, + {0.574917,-0.396721}, + {-0.753535,0.501924}, + {0.176516,0.011773}, + {-0.252053,-0.567245}, + {0.523082,0.913279}, + {-1.555099,0.401929}, + {-0.437464,0.181542}, + {-0.873226,0.044419}, + {0.219685,1.157821}, + {-0.254417,-1.517094}, + {0.091563,-0.354438}, + {-0.528333,-0.170731}, + {0.995211,0.678314}, + {-0.898812,-0.064997}, + {-0.013840,0.293050}, + {-0.839259,-0.587023}, + {-0.945978,-0.617619}, + {-0.895625,0.302625}, + {1.051869,0.573372}, + {-0.825980,-0.122912}, + {0.163980,1.256745}, + {0.706734,0.124522}, + {-0.361175,0.101887}, + {1.057818,-0.426948}, + {-0.675053,1.031729}, + {0.206726,0.279056}, + {0.389211,-0.301896}, + {1.063765,0.619761}, + {0.352544,0.613860}, + {0.128183,-0.129278}, + {-0.839177,0.102129}, + {-1.009067,0.298734}, + {0.002993,-0.360330}, + {1.224970,-0.160513}, + {1.106708,-0.229533}, + {-1.032136,-0.377685}, + {-0.236230,0.001354}, + {0.410400,0.222334}, + {0.392320,1.483927}, + {0.665122,0.691449}, + {-0.455393,-0.602445}, + {-1.351692,0.738197}, + {-0.766579,0.268302}, + {1.589365,0.864385}, + {0.070446,0.850433}, + {-0.308235,-0.135000}, + {-0.292362,-1.347597}, + {1.555687,-0.715862}, + {-0.014022,-0.045398}, + {-0.446291,1.226295}, + {-1.032951,-0.093507}, + {-0.899258,1.039720}, + {-1.078121,-0.867005}, + {0.520897,0.494706}, + {-0.211998,-0.448273}, + {0.580937,-0.430233}, + {0.179600,0.873513}, + {0.808713,-1.022514}, + {0.555485,0.127189}, + {0.880953,-0.143050}, + {1.149157,0.917433}, + {-0.893810,0.428443}, + {-1.266854,-0.409126}, + {-0.626689,0.378355}, + {-0.164413,-0.184089}, + {-0.898300,0.593376}, + {-0.547055,0.834128}, + {-1.142588,-0.422562}, + {-0.284378,-0.254682}, + {0.791523,-0.756468}, + {0.485108,-0.001937}, + {-1.059758,-0.298921}, + {0.575755,0.321922}, + {0.126469,0.056855}, + {0.481604,-0.118000}, + {-0.161121,-0.348846}, + {-0.018420,0.600699}, + {1.149129,-0.048108}, + {-0.542935,-1.132408}, + {0.615102,0.119735}, + {-0.401196,-0.056096}, + {0.240128,-0.191069}, + {-0.230665,0.650328}, + {-1.043812,0.267771}, + {-0.337422,-1.346232}, + {-1.272762,0.339037}, + {-0.577232,0.042670}, + {-0.024654,1.721493}, + {-0.290755,-0.294420}, + {0.050099,-0.241641}, + {0.523826,-0.443739}, + {1.259578,0.041380}, + {1.203733,-0.585998}, + {0.759313,-0.279728}, + {-0.270898,0.554221}, + {0.319001,0.630204}, + {-1.012906,-1.065616}, + {-0.064960,-0.895967}, + {-0.439101,-0.524601}, + {0.648934,-0.701096}, + {0.990764,-1.487838}, + {0.266843,0.072485}, + {-1.337164,-0.177902}, + {0.882257,-0.971672}, + {0.443937,1.419520}, + {0.489435,0.600496}, + {-1.048080,0.668837}, + {0.080006,-0.024016}, + {0.393861,-0.144830}, + {0.029134,-0.594013}, + {0.020636,0.866641}, + {-0.695757,-0.655914}, + {-0.145142,-0.618203}, + {-0.302988,-0.495213}, + {-0.462676,1.085804}, + {0.153729,-0.610300}, + {-0.098602,1.025134}, + {-0.571255,-1.464634}, + {-0.761817,0.959088}, + {-0.975994,-0.370398}, + {-0.313675,0.590253}, + {0.297074,0.390224}, + {-0.582347,-0.270186}, + {-0.652665,-1.353611}, + {-0.019627,0.000436}, + {0.117063,0.851400}, + {-0.123453,-0.339978}, + {-0.071860,-0.712601}, + {-0.150279,0.705257}, + {0.346280,-0.008366}, + {-0.959111,0.297700}, + {0.620350,-0.430125}, + {-0.047112,0.050720}, + {1.805691,-0.047197}, + {1.715418,-0.183448}, + {-1.158967,2.090597}, + {0.743999,-1.778906}, + {0.025331,-0.388354}, + {0.518336,-0.327919}, + {1.166154,-0.289812}, + {0.029288,1.018113}, + {0.007631,-0.292880}, + {-1.468947,0.677554}, + {0.948800,-0.363516}, + {0.363116,-1.186390}, + {0.033570,-0.368930}, + {-1.920066,-0.183494}, + {1.245028,1.360201}, + {0.157701,0.511411}, + {-0.725534,0.913929}, + {-0.642394,0.108628}, + {1.433083,0.355667}, + {-0.351948,0.578183}, + {0.229656,-1.065693}, + {-0.231833,0.177390}, + {1.099345,-0.553877}, + {-1.922732,0.038200}, + {-0.200014,1.349928}, + {0.725471,-1.057210}, + {0.242414,0.445252}, + {-0.886991,-0.408397}, + {0.510536,0.822131}, + {-0.260030,0.343419}, + {-0.214564,-1.138471}, + {-0.008637,-0.579129}, + {-0.761397,-0.872982}, + {0.350951,0.624380}, + {0.900611,0.816234}, + {-0.522778,0.207549}, + {-0.760791,0.034648}, + {0.375186,0.362076}, + {0.112175,0.831388}, + {-1.242682,-0.022903}, + {0.331423,0.701496}, + {0.253687,-0.488079}, + {-0.873518,0.279186}, + {0.231592,-0.385780}, + {-0.701089,-0.501785}, + {-0.241921,-1.391418}, + {0.019241,0.106733}, + {0.591344,-1.051357}, + {0.745421,-0.610140}, + {-0.606596,0.169312}, + {-0.372797,-0.501536}, + {-0.768757,0.841569}, + {-0.348190,0.051062}, + {0.063387,0.584047}, + {0.329073,-0.791211}, + {0.514938,0.740972}, + {0.273985,-0.582246}, + {-0.967329,0.578559}, + {0.415417,0.124701}, + {-0.098539,0.385786}, + {-0.004510,-0.248503}, + {0.555897,0.242153}, + {1.579329,0.015322}, + {0.230998,1.990804}, + {0.363098,0.553719}, + {1.562863,0.478130}, + {0.026208,0.305355}, + {1.116516,0.360515}, + {-0.982566,-0.465728}, + {-0.508676,-0.878270}, + {-0.144291,0.415225}, + {-1.350074,-0.098142}, + {1.616341,-1.518052}, + {0.104774,0.015461}, + {0.374867,-1.531420}, + {-0.416475,-0.114543}, + {-0.739622,-1.138037}, + {-0.923005,1.062459}, + {-0.664320,-0.280073}, + {-1.156293,-0.337499}, + {-0.689945,0.344369}, + {1.058939,0.443670}, + {-1.285207,0.147568}, + {0.475596,0.835141}, + {-0.239945,1.476067}, + {0.025039,0.541449}, + {-0.101321,-0.682732}, + {-0.546186,-0.130474}, + {-0.433541,0.503623}, + {0.464975,1.359146}, + {-0.567927,0.964406}, + {-1.219789,-1.539823}, + {-0.016740,0.669833}, + {0.182447,-0.271553}, + {-1.320623,1.306323}, + {-0.000075,-0.219999}, + {-1.536075,0.914474}, + {-1.404556,-1.020084}, + {-0.150083,0.236011}, + {0.516978,0.585327}, + {0.241503,0.030283}, + {-0.329743,0.849644}, + {-0.537257,1.132562}, + {0.817902,-0.281236}, + {1.432319,0.095690}, + {0.632687,-0.576622}, + {-0.734149,0.271036}, + {0.459345,-0.277828}, + {0.305288,-0.697961}, + {-1.187887,0.415304}, + {0.796687,-0.667703}, + {0.059859,0.503282}, + {-0.674526,0.557001}, + {0.761860,-0.342605}, + {-0.553691,-0.066432}, + {0.158447,0.486740}, + {0.871085,-0.243732}, + {-0.618374,0.322577}, + {0.211178,-0.228494}, + {0.256709,-0.631463}, + {0.136058,-0.407427}, + {0.386538,-0.076609}, + {0.363731,0.067482}, + {-0.693882,0.964447}, + {1.052294,-0.778507}, + {-0.404876,-1.906265}, + {0.357725,-0.223712}, + {-0.899349,-0.135851}, + {0.297922,-0.353175}, + {0.378138,0.542955}, + {0.948882,-0.008489}, + {-1.168557,-0.095203}, + {0.196487,1.331091}, + {-1.592780,-0.195128}, + {0.496292,0.257436}, + {0.094574,0.257786}, + {0.179735,0.175672}, + {-0.773849,-0.867187}, + {-0.218875,-0.151987}, + {-1.457404,0.561553}, + {-0.766543,-1.240765}, + {-0.311424,-0.241690}, + {1.593359,-0.990696}, + {-1.347961,-0.110373}, + {0.087199,-0.249410}, + {-0.381577,0.193060}, + {1.290974,0.330803}, + {-0.264855,-0.062533}, + {1.932407,-0.669281}, + {1.404137,-0.854353}, + {0.032966,-0.375454}, + {-0.665186,-0.403770}, + {-0.669869,0.889790}, + {0.897455,-0.188428}, + {0.730249,1.021129}, + {-0.843537,-0.297006}, + {0.429220,-0.539707}, + {0.449427,-0.771936}, + {-0.429601,0.576114}, + {0.055077,-0.604795}, + {-0.278586,0.300688}, + {0.067531,-1.925382}, + {-0.924128,-0.958812}, + {-0.337994,-0.727637}, + {-0.457529,1.034296}, + {0.370646,-0.836115}, + {-0.467752,0.409464}, + {-0.334921,-0.540654}, + {0.832486,0.959241}, + {0.746558,0.657005}, + {-0.318685,-1.230673}, + {-0.169521,0.642337}, + {0.789263,0.831460}, + {0.223756,0.414123}, + {-0.325954,-0.321332}, + {0.075028,0.967698}, + {0.216434,-0.716844}, + {-0.776716,0.826807}, + {-0.074531,0.812789}, + {-0.537597,1.026980}, + {0.152495,0.982402}, + {0.413097,-0.552747}, + {0.611235,-0.071720}, + {-0.491325,-0.356869}, + {-0.486791,-0.626587}, + {0.204293,-0.436972}, + {-0.211208,-0.432147}, + {-0.561132,1.073539}, + {-0.070137,-0.184257}, + {-1.115610,-0.477053}, + {1.018256,0.435396}, + {0.301658,-0.197887}, + {-0.147236,1.059088}, + {-0.888603,0.328241}, + {-1.070295,-0.599636}, + {0.316661,0.365444}, + {-0.212919,-0.409418}, + {-0.753071,0.087512}, + {0.404576,0.038580}, + {-1.504748,-0.267729}, + {-0.313997,-0.930065}, + {-0.236354,-1.238931}, + {-0.376294,0.405383}, + {1.291459,-0.346108}, + {-0.297634,0.589772}, + {0.110657,-0.512851}, + {-1.955329,-0.456873}, + {-1.247619,0.482959}, + {0.083895,-0.640105}, + {-0.396012,1.108095}, + {0.909912,-0.470332}, + {-0.049822,-0.096660}, + {0.363109,0.186229}, + {-0.314218,-0.256700}, + {-0.295377,-0.825150}, + {-0.122935,0.847107}, + {0.254378,0.637229}, + {0.103655,1.262402}, + {0.673758,-0.803048}, + {0.318196,-0.206245}, + {0.385547,0.450488}, + {-1.392342,0.052822}, + {-0.665772,0.103675}, + {0.426712,-1.222266}, + {-0.075608,-0.769710}, + {-0.548068,-0.642260}, + {0.647223,0.860224}, + {0.483236,0.514534}, + {0.398769,0.050907}, + {1.229950,0.745029}, + {0.911489,1.188746}, + {-0.099161,-0.697764}, + {0.247348,-0.284992}, + {-0.248089,-0.862396}, + {0.846203,-1.166603}, + {0.906759,0.708414}, + {-1.122335,-0.402972}, + {-0.118882,-0.437190}, + {-0.430711,0.992516}, + {-0.985280,-0.933490}, + {0.753059,-1.029240}, + {0.074035,1.011795}, + {-0.554878,-0.736494}, + {0.137578,-0.170962}, + {0.010941,0.160870}, + {-0.287390,-0.081999}, + {-0.915608,-0.288509}, + {1.009344,0.455340}, + {-1.170750,0.374210}, + {-0.509900,0.696984}, + {-0.073667,0.542572}, + {0.508428,-0.509940}, + {0.162651,-0.619031}, + {-0.894067,-0.370045}, + {-1.100994,0.144700}, + {-0.361678,0.973850}, + {-0.592640,0.709252}, + {0.482369,0.464118}, + {0.646740,0.794370}, + {-1.518095,-0.047480}, + {-2.480153,0.558073}, + {0.171995,-0.118977}, + {-0.307031,-0.408313}, + {0.667857,0.886201}, + {1.215072,-1.815363}, + {0.636451,-0.999552}, + {1.038871,0.746703}, + {0.799771,-0.633650}, + {-0.478658,0.963576}, + {0.660793,-0.396006}, + {-0.366382,-0.010134}, + {-0.126455,0.550368}, + {-0.295040,-0.019897}, + {-0.189119,0.144486}, + {-0.409427,-0.246134}, + {-0.749594,1.158845}, + {-0.619952,-0.568661}, + {0.418661,-0.682120}, + {0.022881,-0.611217}, + {0.745549,-0.999202}, + {0.223803,-1.326778}, + {-0.512690,-0.409827}, + {0.730464,0.154411}, + {0.304366,0.129614}, + {1.037600,-0.642403}, + {-1.589766,0.575436}, + {1.303312,1.195870}, + {-0.048468,-0.161105}, + {-0.583344,0.721412}, + {-0.598792,-1.629398}, + {-1.184964,0.686923}, + {-0.206515,0.128982}, + {-1.354328,0.347421}, + {-0.305114,-0.063748}, + {-0.148754,1.025688}, + {1.386647,-0.299267}, + {0.623479,0.660380}, + {0.111936,-0.215479}, + {0.164504,-0.448971}, + {-1.298132,-0.229643}, + {-0.544931,0.273312}, + {0.708111,1.131149}, + {-1.025639,0.983595}, + {-0.874828,0.448445}, + {0.083092,0.131569}, + {-0.199073,0.111786}, + {0.471144,-0.582538}, + {-0.002063,-1.209889}, + {0.036177,-0.191428}, + {0.048523,-0.482262}, + {-0.591823,0.022019}, + {-0.957858,0.379499}, + {-0.388964,-0.030605}, + {-1.067693,-0.564523}, + {0.683215,0.452901}, + {-0.417523,-0.888896}, + {0.116388,-0.001175}, + {-0.530451,-0.402808}, + {-0.501828,-0.447776}, + {-0.312741,-0.320066}, + {0.239558,0.274188}, + {0.413057,-0.479391}, + {0.804059,0.228824}, + {0.251042,-0.392509}, + {-0.977828,-0.114416}, + {0.706358,0.019025}, + {-0.604572,-0.619421}, + {-0.965764,0.532922}, + {-0.557196,-0.448498}, + {0.117221,-2.151584}, + {0.339451,0.235127}, + {1.163795,0.355797}, + {-0.724402,0.409418}, + {0.255004,0.576204}, + {-0.258374,0.349667}, + {1.028698,-0.794530}, + {0.527963,1.589823}, + {0.719742,-0.748712}, + {0.368928,-0.686335}, + {0.065692,0.585041}, + {-0.125019,-0.273104}, + {-0.241274,-0.481545}, + {0.254201,0.650913}, + {-0.612250,0.134043}, + {-0.040628,1.546205}, + {-0.153613,-0.158336}, + {0.573747,-0.368891}, + {0.247576,-0.546121}, + {-0.327529,-0.227120}, + {0.909237,0.293783}, + {-0.641484,1.032472}, + {0.945376,-0.976555}, + {-0.097696,-1.005641}, + {0.280105,0.778472}, + {0.129635,-0.266768}, + {0.163724,-0.064104}, + {0.234504,-0.013251}, + {-0.745244,2.072479}, + {-1.437508,0.815776}, + {-0.742229,-0.540598}, + {0.532092,-0.390349}, + {0.231447,-0.072878}, + {0.459868,-0.668039}, + {-1.085061,0.706084}, + {0.666810,-0.686744}, + {0.881553,0.001870}, + {0.028822,-1.283565}, + {-0.420608,0.313733}, + {-0.114939,-0.901210}, + {-0.382738,0.663378}, + {-0.159187,0.391378}, + {0.413518,0.011760}, + {-1.145054,-0.174115}, + {0.657089,-0.093871}, + {0.439769,-0.078178}, + {-0.876726,-1.290887}, + {-0.194151,-0.120212}, + {-0.573588,-0.601036}, + {0.480740,-0.445964}, + {0.246870,0.914457}, + {1.507856,-0.333776}, + {1.176638,0.254658}, + {0.571415,0.268885}, + {-0.635128,0.650310}, + {0.383027,-0.382331}, + {0.464641,-0.511072}, + {0.874510,-0.963842}, + {-0.540770,-0.325872}, + {0.253789,-0.123098}, + {-0.270305,0.172002}, + {-1.031316,0.278028}, + {-0.332885,-0.499473}, + {0.120825,-0.860634}, + {-0.643136,-0.068827}, + {-0.040357,0.200742}, + {-0.933480,0.185052}, + {0.771612,-0.286406}, + {0.939360,-0.140307}, + {0.028340,0.302658}, + {-1.188171,-0.068560}, + {-0.180113,0.072284}, + {-0.550815,-0.947792}, + {-0.643721,-0.045899}, + {0.092203,-0.288068}, + {0.439139,0.467489}, + {0.682732,-0.634377}, + {-0.736317,-0.107723}, + {-0.237552,-1.170557}, + {-1.265348,-0.851037}, + {-0.117957,-0.085973}, + {1.102227,-0.027409}, + {0.201656,0.258550}, + {-0.341302,0.345698}, + {-0.226687,0.021001}, + {0.300950,0.747520}, + {-0.548719,-0.764005}, + {0.342371,0.650129}, + {-0.197264,-0.406966}, + {0.253969,0.590828}, + {-0.654232,-0.911205}, + {-0.069347,-0.649115}, + {-0.302273,-0.962710}, + {-0.858735,-0.734358}, + {0.824973,0.347623}, + {0.561939,-0.332102}, + {-0.149910,-0.141332}, + {-0.329960,-0.276681}, + {-0.477825,0.796294}, + {-0.929950,-1.013256}, + {0.660669,-1.277091}, + {0.992162,0.447772}, + {-0.304259,1.500934}, + {-0.057727,0.903363}, + {0.674917,0.876704}, + {-0.634144,-0.191583}, + {0.845197,-1.233301}, + {-1.661000,0.075804}, + {-0.514972,0.235703}, + {0.140527,0.185480}, + {-0.234079,-1.451824}, + {-0.405753,0.462321}, + {1.170499,0.117621}, + {0.131879,0.114231}, + {0.965116,-0.378527}, + {0.206708,-0.220844}, + {-0.187811,0.488983}, + {-0.661154,-0.013639}, + {-1.372899,-0.391042}, + {-0.208436,0.141927}, + {-0.900758,0.338770}, + {-1.061068,-0.473609}, + {-0.442850,-0.150059}, + {-0.656915,-0.213440}, + {-0.519110,0.388374}, + {0.552973,0.412297}, + {0.246784,0.360372}, + {0.037668,-0.058916}, + {-1.348537,-0.018245}, + {-0.618509,0.055222}, + {0.618511,-0.123750}, + {-0.034437,-0.099757}, + {0.323428,-0.652759}, + {0.154987,0.899311}, + {1.781830,-0.153147}, + {0.035979,1.188616}, + {0.488400,0.697546}, + {-0.446666,0.281943}, + {-0.453892,0.528215}, + {-0.688147,-1.008588}, + {-0.390631,0.389458}, + {-1.194630,-0.928712}, + {0.678735,-0.466324}, + {0.976499,-0.038259}, + {1.396877,-0.138085}, + {-1.430019,0.335065}, + {-0.055289,-0.927780}, + {0.485662,0.485284}, + {0.201981,0.537132}, + {0.363088,1.731858}, + {-0.668758,0.465720}, + {0.077665,0.666078}, + {-1.566421,0.040135}, + {-0.355676,-1.374433}, + {-1.271148,0.473298}, + {-0.709383,-1.088175}, + {0.072900,-0.383878}, + {-0.221073,0.694508}, + {0.979392,0.358300}, + {-0.468658,-1.257957}, + {-0.986421,-0.688206}, + {0.774736,0.025302}, + {-0.350405,-1.379404}, + {0.265043,-0.179214}, + {0.632730,0.655965}, + {-0.580958,0.073589}, + {-0.674751,-0.329321}, + {-0.157258,0.366028}, + {-0.167454,0.458918}, + {0.360995,-0.045800}, + {0.541670,0.414036}, + {-0.953282,0.396081}, + {-0.640341,-0.815884}, + {0.099247,0.488115}, + {1.028320,-1.065518}, + {-0.608843,-0.394921}, + {-0.660332,0.127980}, + {1.215143,-0.784662}, + {-0.597942,0.410855}, + {-0.460977,-1.731878}, + {-1.125346,-0.522925}, + {0.160018,-0.890953}, + {0.354174,0.463096}, + {0.432617,0.091890}, + {-0.537692,0.916233}, + {-0.231298,-1.123082}, + {0.448289,0.048934}, + {0.141959,0.248023}, + {-0.239098,1.258853}, + {0.659532,0.029834}, + {1.296697,-0.068587}, + {-0.566528,0.709376}, + {-0.408385,-0.069338}, + {-0.390137,0.783384}, + {-1.620428,-0.505653}, + {0.410443,-0.303323}, + {-0.550195,-0.764973}, + {-0.576556,0.263301}, + {-0.600212,0.262565}, + {-0.122290,-0.126754}, + {0.331186,-1.519006}, + {-0.345319,-0.461422}, + {-0.572596,0.480422}, + {1.103205,0.915259}, + {0.118307,1.801626}, + {-0.764045,0.235550}, + {-0.022141,1.201361}, + {0.028013,0.044403}, + {0.488177,0.026615}, + {-0.623776,-0.232662}, + {-0.961218,0.888319}, + {0.486462,-0.519644}, + {0.199430,-0.047332}, + {0.947899,1.148955}, + {0.169357,-1.336189}, + {-0.930552,-0.016437}, + {-0.518731,0.323647}, + {1.068277,-0.408039}, + {0.873528,-0.510827}, + {-0.062329,-0.013528}, + {0.016866,0.267559}, + {1.056129,-1.027253}, + {-0.539801,0.935748}, + {0.096848,-0.037621}, + {-0.095070,-0.255447}, + {-0.848099,0.443100}, + {0.639670,-0.048560}, + {0.923418,-0.283416}, + {1.456548,-1.294075}, + {-1.764045,-0.439263}, + {0.461557,0.172525}, + {-0.436138,0.071867}, + {-0.673432,0.538713}, + {0.312169,0.260254}, + {0.103237,-0.512787}, + {-1.493843,0.399438}, + {0.819913,1.366162}, + {-0.016400,1.497652}, + {0.215513,-0.225488}, + {-0.017414,-0.407048}, + {-0.020617,0.629335}, + {0.224152,0.982394}, + {-0.511165,-0.579162}, + {0.007663,0.124781}, + {0.108301,0.792560}, + {0.158005,0.407386}, + {-0.182543,-0.165334}, + {1.159181,-0.510782}, + {0.280196,-1.062985}, + {0.236496,-0.145702}, + {-0.422758,1.424397}, + {-0.331449,-0.193450}, + {0.192874,-0.427651}, + {0.112059,0.188264}, + {-0.272202,0.107938}, + {-0.760328,-0.363161}, + {-0.726426,1.597634}, + {-0.071579,0.949224}, + {0.308458,0.255762}, + {1.021180,-0.266580}, + {0.143714,0.679690}, + {0.402213,-0.431472}, + {0.325377,-0.219868}, + {1.102590,0.967718}, + {0.358516,-0.734835}, + {0.014624,0.178090}, + {0.448299,-0.407042}, + {-0.611858,-0.011623}, + {1.077674,-0.250480}, + {-0.299770,0.274045}, + {-0.091250,0.162794}, + {0.263684,0.580732}, + {-0.524096,0.453355}, + {1.220175,-0.439485}, + {0.505437,0.769273}, + {-0.448804,-0.993002}, + {-0.443388,-0.483274}, + {-0.523477,-0.401425}, + {-0.313273,-0.056149}, + {0.050769,0.557578}, + {-0.702026,-0.345979}, + {-0.323416,0.362591}, + {0.804164,0.415913}, + {0.366415,0.231610}, + {-0.674289,2.719386}, + {-0.390476,-0.001017}, + {0.634584,0.043129}, + {-0.165932,-0.088890}, + {-0.084003,0.164003}, + {0.326900,-0.176912}, + {0.846530,-0.575045}, + {0.379000,-0.560151}, + {-0.045598,-1.256528}, + {0.004132,-0.330289}, + {0.801731,0.102068}, + {0.310208,-0.016975}, + {0.804024,-0.848600}, + {0.530551,0.564239}, + {-0.217442,-0.406346}, + {0.482194,-0.354971}, + {1.013284,0.341576}, + {-0.189813,-0.158867}, + {0.057823,0.314484}, + {-0.385227,0.961346}, + {-0.252099,0.877088}, + {-0.150246,0.399242}, + {0.227240,-0.011056}, + {-0.906256,0.232546}, + {0.447790,0.615224}, + {0.710736,0.413033}, + {0.332351,0.394525}, + {-1.111575,-0.892920}, + {0.671354,0.236546}, + {-0.530462,0.833944}, + {-0.487734,-0.933744}, + {-0.279573,0.015821}, + {0.150636,0.941044}, + {-0.490255,-1.718709}, + {-0.562611,-0.050636}, + {0.161397,-0.336955}, + {-0.581458,0.013550}, + {1.301819,-0.243034}, + {0.328760,-0.383835}, + {-0.558614,0.312557}, + {-0.994847,-0.123656}, + {-0.946885,-0.460904}, + {-0.150270,0.629816}, + {0.059610,-0.005996}, + {-0.577683,-0.466143}, + {-0.471025,-0.278965}, + {-0.148945,-0.324783}, + {1.276411,0.305076}, + {0.980279,-0.070273}, + {1.162642,0.100148}, + {1.843762,0.357636}, + {-1.342349,-0.353233}, + {-0.436687,-0.095269}, + {-0.805848,0.606225}, + {0.871641,-1.329340}, + {0.184974,1.265810}, + {-0.244617,-0.882645}, + {-0.907868,-0.039793}, + {1.031712,0.603956}, + {-0.320916,0.296021}, + {0.769198,0.408169}, + {0.273306,-1.560085}, + {-0.845221,-0.120352}, + {-0.292803,-0.487164}, + {-1.188451,1.021220}, + {0.712612,-0.904145}, + {1.536593,0.458014}, + {0.948114,-0.292910}, + {0.183039,-0.763955}, + {2.157607,-0.224608}, + {-0.273569,-0.394222}, + {-0.431183,0.416926}, + {0.132424,-0.348722}, + {0.753581,1.216860}, + {-0.337171,-0.893545}, + {-1.120653,-0.243974}, + {1.019687,0.181340}, + {1.477047,-0.821085}, + {0.046624,-0.107856}, + {0.433614,-0.195993}, + {-0.405870,-1.017501}, + {-0.050243,0.119354}, + {-0.671673,0.243350}, + {-0.315893,1.721316}, + {-0.083615,0.238805}, + {-1.037536,0.577163}, + {-0.913802,-0.523424}, + {1.219618,-0.315761}, + {1.146100,0.517259}, + {-0.895445,-1.015857}, + {0.514174,0.575290}, + {-0.123435,0.745106}, + {0.702053,0.848669}, + {-0.342611,-0.957096}, + {-0.289839,-0.316382}, + {-0.397795,0.021996}, + {-0.677843,0.971322}, + {0.361514,-0.183216}, + {0.080051,-0.295673}, + {1.160202,-0.910675}, + {-0.150463,0.736822}, + {-0.709405,-0.203295}, + {-0.350063,0.552303}, + {-0.721111,0.319029}, + {-0.253701,-0.103668}, + {-0.750172,-0.320345}, + {-1.206247,-0.063426}, + {-1.373506,0.124767}, + {0.508866,0.460720}, + {-1.336954,0.210008}, + {-0.631641,-0.072041}, + {0.928787,-1.037158}, + {0.032754,1.022849}, + {0.666725,-0.698994}, + {-0.426685,0.073876}, + {0.641602,0.815373}, + {0.375179,-0.463772}, + {-0.233340,1.332766}, + {-0.588562,0.673215}, + {-1.583380,0.174935}, + {0.183747,-0.026180}, + {-0.037925,-0.435531}, + {0.421545,-1.077913}, + {0.739201,0.256848}, + {0.278009,-0.012421}, + {1.071530,-1.464473}, + {0.879311,0.140050}, + {0.690285,-0.379450}, + {-0.359215,0.696639}, + {0.445641,1.003849}, + {-0.471426,0.216653}, + {0.747519,-0.191435}, + {0.609888,1.087821}, + {-0.114237,0.707995}, + {0.310145,-0.068274}, + {0.238114,0.520310}, + {0.188092,-0.863861}, + {-0.272074,0.545071}, + {-0.584299,0.335263}, + {0.568218,0.803199}, + {-0.430740,0.419229}, + {-0.900838,0.175793}, + {0.241127,0.980598}, + {0.229357,-0.402579}, + {-0.005071,0.451806}, + {-0.169403,0.001801}, + {0.498114,0.632898}, + {0.880223,-0.529746}, + {-0.868428,0.322017}, + {-0.934466,0.316410}, + {-0.153631,-0.037373}, + {-0.402630,-0.960009}, + {0.069345,1.147181}, + {0.538025,0.497931}, + {-0.752724,0.353508}, + {1.119766,0.340039}, + {2.267532,-0.419679}, + {0.867285,-0.861810}, + {-0.219850,0.147761}, + {-1.333873,0.140060}, + {0.349306,-0.296989}, + {1.246670,-0.360293}, + {0.448126,1.393103}, + {0.458653,-0.009429}, + {0.897902,0.163413}, + {-0.423687,0.569503}, + {0.533119,-0.220683}, + {-0.561732,-0.975309}, + {0.881865,0.101322}, + {-0.304062,0.840913}, + {0.773744,-0.251265}, + {0.767785,-0.089005}, + {0.093558,0.166969}, + {-0.144223,0.543223}, + {0.599210,-0.139195}, + {-0.757562,0.974285}, + {1.287608,-1.166102}, + {0.851889,0.840470}, + {-0.060754,1.083686}, + {0.613368,0.304015}, + {-0.379987,-0.439814}, + {-0.329733,-0.112941}, + {-0.424859,-0.739637}, + {-1.793210,-1.188762}, + {-0.635379,-0.904453}, + {0.257752,-1.166231}, + {0.795667,-1.099593}, + {0.943045,-0.741673}, + {0.132503,-0.740775}, + {-0.441437,-0.158045}, + {0.625827,-0.791281}, + {0.206786,0.183906}, + {0.838373,-0.394791}, + {0.800490,0.460415}, + {0.158553,0.035947}, + {0.941686,1.030037}, + {-0.449424,0.181222}, + {-0.064192,0.321760}, + {-0.818197,-0.517869}, + {-1.001442,-0.964262}, + {-0.341690,0.209038}, + {0.769880,-0.509106}, + {-1.800834,-0.977495}, + {0.934141,-0.956871}, + {-0.544929,-0.234843}, + {0.052514,-0.188411}, + {0.020671,0.409432}, + {-0.446867,0.177584}, + {-0.018809,0.439592}, + {-1.004284,-1.141000}, + {0.165529,-0.054725}, + {0.209767,0.617396}, + {-0.141390,-0.133027}, + {-0.035609,0.141281}, + {-0.178184,1.191617}, + {0.543428,0.601854}, + {-0.095008,-0.455613}, + {-0.059113,0.233037}, + {0.233059,-0.139516}, + {0.272380,-1.266193}, + {0.618656,0.116292}, + {-0.009285,0.623049}, + {0.096660,0.123946}, + {-1.580974,0.525244}, + {0.206597,1.002594}, + {0.089974,-0.500957}, + {1.895818,0.543035}, + {-0.305681,0.122755}, + {0.221252,0.227730}, + {-0.820677,-0.365112}, + {0.947046,0.458062}, + {0.542810,-0.838007}, + {-0.052196,-0.075847}, + {0.814450,-0.744863}, + {-0.567190,0.264126}, + {0.237717,0.018269}, + {-0.703420,0.405742}, + {0.614185,0.753346}, + {-1.418353,0.214996}, + {-0.860688,0.915467}, + {-0.360367,-0.260405}, + {1.472941,0.435927}, + {0.446222,0.730291}, + {-0.144925,-0.561438}, + {-1.750887,-0.525869}, + {0.340149,-0.191235}, + {0.377149,0.915875}, + {0.114776,0.838241}, + {1.129547,-0.141350}, + {0.184851,-0.695700}, + {-0.534036,-0.634324}, + {-0.340427,0.321547}, + {-0.404642,-0.697021}, + {-0.253808,-0.192746}, + {-0.596530,-0.932647}, + {-0.838994,-0.405391}, + {-0.755491,-0.342310}, + {-0.057286,-0.358306}, + {-1.447241,1.301361}, + {-1.313619,-1.013152}, + {-0.571824,0.109239}, + {-0.260698,0.606990}, + {0.070246,0.534229}, + {0.597517,-0.037879}, + {-1.094173,-0.410137}, + {-0.254631,-0.246340}, + {0.431483,-0.376672}, + {0.519113,0.214955}, + {-0.076563,0.738583}, + {0.205809,-1.447609}, + {-0.810528,-0.234393}, + {0.229555,0.246711}, + {0.927126,0.590173}, + {-0.466521,-1.469152}, + {0.695727,1.527739}, + {-1.704484,-0.591690}, + {0.307858,0.231491}, + {-0.995968,0.318885}, + {0.661263,-0.555950}, + {-0.712018,0.863494}, + {0.187289,-0.103648}, + {0.148728,0.440236}, + {-0.416693,0.421814}, + {-0.285165,-1.497392}, + {-1.351142,-0.185347}, + {0.484214,-0.136529}, + {0.573682,-1.192687}, + {0.410345,-0.315465}, + {0.848424,0.671905}, + {-1.103233,0.644873}, + {1.299410,0.565215}, + {-0.461676,0.064235}, + {-1.379040,-0.432968}, + {-1.015434,-1.145416}, + {0.129534,0.363062}, + {0.104220,0.288515}, + {1.543944,-1.307105}, + {0.221840,0.109014}, + {-0.184143,0.370434}, + {0.058980,0.873678}, + {0.551447,-0.039445}, + {-0.270308,0.105572}, + {0.469465,-0.104565}, + {0.015573,0.788276}, + {0.749307,1.602021}, + {-0.203181,-0.465786}, + {0.133115,-1.936805}, + {-0.429016,-0.726444}, + {-0.149023,-0.362963}, + {0.397963,-0.235261}, + {1.558527,0.044457}, + {-0.972298,0.805232}, + {-0.807760,-0.399592}, + {0.280215,0.243919}, + {0.137227,-1.792080}, + {-0.651625,0.507164}, + {0.275789,-0.969788}, + {-0.254710,-0.494221}, + {-0.568344,-0.391331}, + {-0.403117,-0.847222}, + {0.850632,0.551661}, + {0.375400,0.202567}, + {0.407655,0.339162}, + {-0.077186,-0.944989}, + {0.853879,0.321790}, + {-0.878723,1.078369}, + {0.402514,0.134404}, + {-0.636014,0.028282}, + {-0.306382,-0.725383}, + {0.596217,0.775472}, + {0.743227,0.136710}, + {0.318624,0.141530}, + {-2.436086,1.380653}, + {-1.525091,-0.330171}, + {0.786829,-0.068407}, + {-0.268204,0.051274}, + {0.026261,-0.264944}, + {0.284678,0.800642}, + {1.139380,-0.635677}, + {0.531484,1.095444}, + {0.061698,-1.585712}, + {-0.200152,-0.292121}, + {0.511662,1.497851}, + {-1.734319,0.421699}, + {0.730265,-0.139450}, + {-0.853009,-0.131672}, + {0.279669,0.232947}, + {-0.265099,-0.688263}, + {-0.929645,-0.286772}, + {-0.125102,-1.125642}, + {1.064545,0.166148}, + {0.733526,-0.916868}, + {-0.934886,0.513751}, + {1.207510,1.425677}, + {-0.027745,0.571540}, + {-1.475919,-1.304595}, + {0.891606,-0.522466}, + {-1.132359,-0.916251}, + {0.769611,1.058327}, + {-0.787181,-0.146081}, + {-0.219027,0.104576}, + {-0.095533,0.083469}, + {-0.115227,0.014563}, + {-1.070410,0.746173}, + {1.109839,-1.229791}, + {-0.326565,0.830876}, + {0.286977,0.532019}, + {-0.769394,0.226197}, + {0.754521,0.827572}, + {-0.361735,-0.367817}, + {-0.546435,-0.902863}, + {0.746461,-0.939287}, + {-0.625963,1.456091}, + {-0.244332,0.173159}, + {0.735755,0.338783}, + {1.161011,-0.592912}, + {0.316221,-0.277843}, + {-0.515322,-0.171536}, + {-0.073174,0.804972}, + {1.050407,-1.065537}, + {0.484378,0.954140}, + {0.939704,-0.717131}, + {-0.746289,0.125873}, + {0.306167,0.822975}, + {-0.688430,-0.009492}, + {0.473809,-0.195759}, + {-0.291123,-0.887642}, + {-1.113639,-0.205191}, + {0.507462,-1.139016}, + {-1.047570,1.061075}, + {0.076114,0.502083}, + {-0.009567,0.771579}, + {0.277710,-1.082459}, + {-0.030487,-0.792313}, + {-0.005490,-0.038347}, + {-0.070947,-0.641452}, + {0.064114,-1.279288}, + {-0.735976,-0.177716}, + {-1.173461,-0.963224}, + {0.642447,-1.215458}, + {-0.542537,-0.779186}, + {0.208617,0.707524}, + {-0.815926,0.734432}, + {-1.362503,0.826668}, + {0.171331,-0.098047}, + {0.299502,-0.977795}, + {-1.423973,0.972393}, + {1.079616,-1.087319}, + {-0.301928,0.824269}, + {1.239375,0.407183}, + {0.060999,-0.016179}, + {0.804982,-0.385257}, + {-0.012938,0.677340}, + {-0.121473,1.046107}, + {-0.173294,-0.590221}, + {0.680903,0.172555}, + {0.901474,-0.638362}, + {-0.754168,0.954427}, + {-1.017190,0.458050}, + {-0.893258,-0.651492}, + {-1.223616,0.734166}, + {-0.551561,0.465105}, + {-0.472743,-1.538767}, + {-0.643332,0.237332}, + {-1.403355,-0.712716}, + {-0.696300,0.281854}, + {0.063601,0.242936}, + {0.140091,-0.361881}, + {-0.466220,0.056740}, + {0.400082,0.655608}, + {-0.218787,0.165453}, + {0.162508,0.460463}, + {0.196531,0.805585}, + {0.867586,-0.796481}, + {-0.103192,-0.372709}, + {1.480107,-0.244144}, + {-0.377288,-0.616448}, + {0.827771,0.615012}, + {0.241670,-0.067976}, + {0.159564,-0.039752}, + {0.202995,-0.531926}, + {-0.635295,-0.300095}, + {-0.112240,-0.452463}, + {-0.005874,-1.283824}, + {-0.902111,-0.502776}, + {0.246129,0.198008}, + {0.478389,0.145563}, + {0.441332,0.687473}, + {-0.247149,0.184176}, + {-0.789643,-0.991969}, + {-1.231853,-0.521080}, + {0.419307,-1.074857}, + {0.844709,0.320482}, + {1.197865,0.314086}, + {-0.515979,0.581945}, + {-0.331012,-0.496182}, + {-0.030485,0.691218}, + {-0.148168,0.839336}, + {-0.386217,-0.545061}, + {0.377549,-2.132758}, + {-0.636174,-0.065140}, + {-0.578408,0.476528}, + {-0.770655,0.716478}, + {-0.315434,0.652659}, + {-0.095634,0.084278}, + {-0.454542,0.493002}, + {-0.466113,-0.638183}, + {-0.452908,0.032110}, + {0.612871,-0.006891}, + {-0.519763,-0.980015}, + {0.216004,1.044187}, + {-0.522556,-1.037992}, + {0.191915,-0.608267}, + {1.409379,-0.193706}, + {-0.007437,-0.406039}, + {-0.109688,-0.212492}, + {0.014242,-0.315274}, + {-1.498715,-0.045784}, + {0.823582,-0.518037}, + {0.453221,-0.453072}, + {0.308668,0.963767}, + {-0.639039,-0.106259}, + {-0.295817,-1.112948}, + {0.149772,1.651655}, + {-0.190802,0.742309}, + {-0.697535,0.406187}, + {0.803067,-0.505165}, + {-0.543679,-0.703909}, + {-0.455789,0.354645}, + {-0.801542,-0.036586}, + {0.803856,-0.099847}, + {-1.193883,-0.353241}, + {1.075654,0.052465}, + {-0.258694,-0.040366}, + {-0.699399,-0.209583}, + {-0.215574,-0.004929}, + {0.632563,0.109047}, + {-0.472713,1.246852}, + {0.558519,0.764899}, + {-1.312153,-0.650642}, + {0.319234,0.096798}, + {-0.116014,1.918017}, + {0.348943,-0.098542}, + {-0.517133,-0.367209}, + {-0.032548,-1.034303}, + {0.328535,-0.909280}, + {0.458397,1.012904}, + {0.159957,0.751975}, + {0.448532,1.165521}, + {-0.289242,-1.073650}, + {0.221077,0.996689}, + {0.271276,0.400481}, + {-0.293484,0.257531}, + {0.380645,-0.869409}, + {1.060007,-1.185366}, + {-0.683863,-0.654862}, + {0.335272,0.036245}, + {-0.230655,0.834185}, + {-0.012915,-0.531325}, + {0.024833,-1.050938}, + {-0.708008,0.918939}, + {-0.825306,-0.060127}, + {0.253139,0.491280}, + {0.680471,0.175579}, + {-0.198326,-0.665312}, + {-0.922970,-0.808154}, + {0.156470,-0.797370}, + {-0.783536,-0.469965}, + {0.341051,0.873579}, + {-2.007647,0.681225}, + {0.364041,-0.508894}, + {-0.015955,0.350543}, + {-0.291678,-0.998941}, + {0.239003,-0.487403}, + {-0.327758,-0.508257}, + {-0.539391,-0.798760}, + {-0.540462,-0.564731}, + {-0.620798,0.707924}, + {0.256000,0.452068}, + {0.385059,1.172229}, + {0.360328,-0.171884}, + {-0.572500,0.532958}, + {0.648164,0.071339}, + {-1.027705,-1.054336}, + {0.522261,-0.590621}, + {-0.019556,0.572396}, + {0.607990,0.481700}, + {-1.322499,0.788470}, + {-0.684229,-0.473861}, + {-1.265839,1.105980}, + {-0.581971,-0.124401}, + {0.444034,0.102150}, + {0.794992,0.031055}, + {0.603776,0.000266}, + {0.877366,0.024301}, + {0.277579,0.682971}, + {-0.109226,0.230966}, + {-0.935434,0.116535}, + {-0.083082,0.334694}, + {0.362059,-0.024471}, + {0.753738,0.122144}, + {0.304294,1.505981}, + {0.271106,-0.317919}, + {-0.465618,-0.059502}, + {-0.373175,-0.755986}, + {0.387614,-0.416476}, + {-0.748802,-0.395856}, + {-0.013579,-1.476338}, + {-0.366869,0.317716}, + {-0.979219,-0.200391}, + {-0.153407,-0.447562}, + {-0.255245,0.351090}, + {0.998840,-0.545270}, + {0.186904,-0.240711}, + {0.153329,-0.943938}, + {0.247078,0.571677}, + {0.192360,1.104895}, + {-0.551067,0.802267}, + {-0.124506,0.860949}, + {-0.139002,-0.104195}, + {-0.642611,-0.508259}, + {0.157868,0.859140}, + {0.019725,0.207020}, + {-0.653316,1.187525}, + {1.329306,-0.509686}, + {0.694674,0.256705}, + {0.202853,0.851294}, + {-0.441419,1.428209}, + {0.156150,-0.080560}, + {0.715021,-0.899171}, + {-0.239049,-0.631319}, + {0.195295,0.575186}, + {-1.311572,-0.865187}, + {0.570106,0.651064}, + {0.208959,-1.023329}, + {0.906490,-0.109625}, + {-0.781286,-0.253333}, + {0.231546,0.707965}, + {-1.265833,1.067884}, + {0.815263,1.165205}, + {1.466715,0.385384}, + {0.535490,0.581761}, + {-0.472358,-0.470277}, + {0.983264,0.384383}, + {0.727058,0.443847}, + {-0.416272,-0.472738}, + {0.376082,-0.134460}, + {-0.503839,-0.901079}, + {0.682625,1.008080}, + {-1.386979,-1.091660}, + {0.213387,0.535684}, + {-0.957192,-0.557212}, + {-0.067069,-1.051855}, + {-0.101157,-0.178941}, + {-1.306964,-0.631127}, + {0.926961,-0.083734}, + {-0.264348,-0.487315}, + {0.627269,-0.923797}, + {1.086963,0.082439}, + {-0.149566,-1.399193}, + {0.389143,-0.198131}, + {-0.031070,0.505173}, + {1.081145,-0.421980}, + {-0.365429,-0.412667}, + {-0.376916,0.370359}, + {0.531009,1.324279}, + {0.522575,-0.338998}, + {0.502957,-0.482424}, + {-0.562535,-0.545277}, + {-0.397874,-0.045620}, + {-0.210300,-0.937677}, + {0.678832,-1.456153}, + {-0.290273,0.095165}, + {0.631624,0.517150}, + {-0.411457,0.459952}, + {1.217812,-0.542939}, + {0.073630,-0.234428}, + {0.054958,-0.570539}, + {-1.128586,0.230127}, + {0.720559,0.058370}, + {-1.035968,0.077082}, + {-0.608327,-0.358758}, + {0.269851,0.489804}, + {-0.406969,-0.549994}, + {0.527270,-0.654157}, + {1.027706,-0.593285}, + {-0.471971,-0.594411}, + {0.040449,-0.467310}, + {-0.290221,0.851614}, + {-0.226635,-0.794078}, + {0.447274,0.236763}, + {-0.785187,-0.067945}, + {0.712972,0.436643}, + {-0.088441,1.299909}, + {0.475924,0.408473}, + {0.209117,0.539048}, + {0.714783,-0.513016}, + {0.106957,0.344444}, + {-0.517943,0.098828}, + {1.248470,0.110160}, + {-0.164676,0.715642}, + {0.116579,0.701060}, + {-0.338202,1.285789}, + {0.252122,0.401489}, + {0.208841,0.077311}, + {0.254678,0.806815}, + {0.234503,-0.687878}, + {-0.017710,1.099931}, + {1.248068,-1.577695}, + {-2.177322,0.634684}, + {0.383749,-0.488257}, + {0.626473,0.894318}, + {0.950392,-1.224503}, + {-1.592308,0.183474}, + {-0.883620,0.459040}, + {0.335251,-0.492958}, + {-1.452049,0.645747}, + {0.654540,-0.613036}, + {-0.786306,0.621635}, + {-0.835920,1.214810}, + {-0.402804,-0.379300}, + {-0.167140,-1.088577}, + {2.017823,-0.733220}, + {1.277852,0.045432}, + {-0.655324,-0.273020}, + {-0.502679,-1.294652}, + {0.139179,0.305881}, + {0.476464,0.374818}, + {-1.204706,0.929919}, + {-0.703096,0.426476}, + {-0.170932,-0.224981}, + {-0.351279,-0.400379}, + {0.267640,0.852748}, + {0.272721,-0.274755}, + {0.394744,0.261766}, + {-0.427077,-1.197927}, + {0.469152,-0.246978}, + {-0.068939,-0.212535}, + {0.567020,0.581239}, + {1.773606,-1.261858}, + {0.258176,-1.131465}, + {-1.103839,-0.289925}, + {1.177229,-0.690317}, + {0.137438,-0.884592}, + {0.116897,-0.623741}, + {1.231751,-1.044646}, + {0.653054,-0.008248}, + {-1.025754,0.353121}, + {0.152087,-0.684942}, + {0.970565,0.373987}, + {-0.392564,-0.069188}, + {-0.268254,0.066466}, + {1.288850,-0.546856}, + {-0.879522,1.075044}, + {0.398109,0.957102}, + {0.937518,-0.970381}, + {1.315683,0.004675}, + {0.656915,0.923958}, + {0.964084,0.332777}, + {-0.544967,-0.260763}, + {0.161974,-0.230332}, + {0.086070,1.573961}, + {-0.383494,0.130120}, + {1.082890,0.057498}, + {-1.410456,-0.461719}, + {0.540485,0.691271}, + {-0.278103,0.291339}, + {0.180835,0.081187}, + {0.648822,-0.143641}, + {-1.616721,0.284309}, + {0.850766,-0.295949}, + {-0.452081,-0.318424}, + {-0.672436,0.363193}, + {0.330021,-0.103062}, + {-1.201214,0.695691}, + {-0.176974,-0.049101}, + {0.034254,-0.001430}, + {-0.581966,-1.404542}, + {1.233772,0.845893}, + {0.770042,-0.222329}, + {-0.134528,1.408050}, + {0.981347,0.143636}, + {0.145948,1.099040}, + {0.710827,0.052673}, + {0.557771,-0.481154}, + {-0.146756,-1.008837}, + {-0.689552,-0.880902}, + {0.001022,0.756353}, + {0.222483,0.013501}, + {0.905978,0.432735}, + {-0.497583,-0.437051}, + {0.010372,-0.231759}, + {-0.834391,0.245930}, + {0.869406,-1.488002}, + {-1.420173,0.137089}, + {0.055164,0.678866}, + {0.811665,1.025276}, + {0.375303,0.608999}, + {-0.615345,-0.077846}, + {-0.186463,0.319902}, + {0.005719,0.915684}, + {0.318663,-0.507730}, + {-0.803895,0.451266}, + {0.160835,0.158185}, + {1.633081,0.429963}, + {-0.791587,0.563798}, + {-0.778932,-0.083845}, + {-0.746995,0.259063}, + {-0.374430,0.379522}, + {-0.025126,-0.204688}, + {-0.991074,0.045919}, + {-0.136845,-0.414905}, + {0.899845,1.310109}, + {-0.868625,-0.129578}, + {1.148100,0.070605}, + {-0.810213,-0.433737}, + {1.207818,-0.151042}, + {-0.515970,-0.141577}, + {-0.161548,0.388756}, + {-0.679441,-0.108745}, + {-0.858860,0.144068}, + {-0.111455,-0.935162}, + {-0.512453,0.281827}, + {0.802022,-0.977459}, + {-0.488174,0.273547}, + {-0.555684,0.973625}, + {-1.467122,1.287905}, + {0.769233,-0.351832}, + {0.214904,0.347022}, + {0.942995,0.470266}, + {-1.265858,-1.103599}, + {0.786352,-0.915630}, + {0.377453,0.259392}, + {0.364408,-0.253769}, + {-0.939662,0.510476}, + {-0.611435,0.630746}, + {0.496403,0.350935}, + {0.780776,-0.376306}, + {0.329368,-0.560035}, + {-0.104896,-0.414545}, + {0.459736,-0.818950}, + {0.101952,0.759826}, + {0.234506,0.195742}, + {1.165165,1.081672}, + {-0.741395,-0.556266}, + {0.136652,-0.063647}, + {-0.380017,0.025288}, + {-1.149874,1.004539}, + {0.233882,0.583344}, + {1.407491,-0.873973}, + {0.124950,0.137739}, + {0.077742,0.655085}, + {0.756326,0.693924}, + {-0.978230,-0.590244}, + {-0.318209,-0.151183}, + {1.590341,0.137861}, + {-0.091311,-0.581231}, + {0.362381,-0.416706}, + {0.646778,-0.246347}, + {0.432081,-0.436533}, + {0.467351,0.177888}, + {-0.192966,1.332833}, + {-0.364669,0.036797}, + {-0.426350,0.041546}, + {-0.468050,0.813732}, + {-1.082121,-0.356209}, + {0.795313,0.513634}, + {0.286996,0.171098}, + {0.534304,-0.756041}, + {-0.676098,0.413430}, + {-0.707209,0.964446}, + {-0.144614,-0.627121}, + {1.280522,-1.317728}, + {-0.159645,-0.237936}, + {-0.582439,-0.659814}, + {-0.070758,-1.089956}, + {-0.148674,-1.374329}, + {-0.179882,0.506686}, + {0.086493,-0.791614}, + {0.489759,-0.403031}, + {-0.314327,-0.111422}, + {-0.412931,0.493597}, + {0.253975,0.712494}, + {0.449653,0.383925}, + {-0.170046,-0.209558}, + {0.146663,0.741047}, + {-0.391870,-0.091945}, + {-0.442016,0.119528}, + {-0.802004,-1.400078}, + {-0.352020,-0.673484}, + {1.178405,0.222166}, + {0.401656,-0.176436}, + {-0.270939,-0.198899}, + {-0.695723,-0.566735}, + {0.834854,-1.471402}, + {-0.289106,0.437823}, + {0.251627,0.054241}, + {0.029125,-0.307041}, + {-1.487735,1.231129}, + {0.333572,-0.223186}, + {0.038154,1.081929}, + {-0.087970,-1.036150}, + {0.592180,0.133148}, + {0.093161,-0.294506}, + {-0.296535,0.495623}, + {-0.522146,1.313928}, + {-0.714640,-0.532988}, + {0.398263,0.293071}, + {-0.596224,1.223075}, + {0.479882,-1.180554}, + {-0.065416,-0.710133}, + {-0.889315,-0.315524}, + {0.962241,-0.055537}, + {-0.221264,0.112333}, + {0.322420,-0.571722}, + {1.192841,0.558100}, + {0.521199,0.138154}, + {0.716695,0.106324}, + {0.711628,-0.260564}, + {0.189505,-0.382577}, + {-0.438235,-0.546217}, + {0.077497,-0.092175}, + {-0.202673,-0.048951}, + {1.487370,-0.747006}, + {-1.031527,-0.820128}, + {-1.649929,-0.105742}, + {-0.347869,-0.458435}, + {-0.029234,-1.320993}, + {1.253876,0.585886}, + {0.436760,2.430056}, + {0.545664,0.470634}, + {0.901732,-0.856095}, + {0.662886,0.977089}, + {1.075384,-0.075824}, + {0.209674,0.063782}, + {-0.126499,0.482599}, + {-0.507162,0.208925}, + {0.247866,-0.354774}, + {0.054885,-1.024517}, + {0.204562,0.827382}, + {-0.883562,-0.740692}, + {0.849976,-0.019489}, + {0.263688,0.251006}, + {-0.330082,-0.061291}, + {-0.083851,1.370921}, + {0.295784,0.875275}, + {-0.425539,-0.283223}, + {-0.640975,0.136141}, + {-0.173006,0.465478}, + {-0.895481,0.477515}, + {0.229261,1.220279}, + {-0.407060,1.466588}, + {1.295396,0.176855}, + {-0.632605,0.786648}, + {-1.121659,0.268616}, + {-0.847703,-0.305246}, + {1.663789,1.656323}, + {-0.523322,-0.547465}, + {-0.792665,0.115445}, + {-0.824945,0.042476}, + {0.901073,0.249932}, + {1.130116,-1.907218}, + {-0.859768,-1.577612}, + {-0.191384,0.566792}, + {0.676686,-0.623231}, + {-0.793064,-0.852185}, + {0.027490,-0.460866}, + {0.540012,-1.738204}, + {-0.751769,-1.401695}, + {-0.652675,-2.187214}, + {0.546582,0.366436}, + {0.191392,-0.194236}, + {0.143155,0.472797}, + {-0.850023,-0.135606}, + {-0.377306,0.072815}, + {1.283611,0.519238}, + {0.216310,0.401307}, + {0.612385,0.376774}, + {0.509529,-1.018581}, + {0.718140,-0.664603}, + {-0.092749,-0.580942}, + {0.408930,-0.062835}, + {-0.082806,-1.497458}, + {-0.474417,-0.431005}, + {-0.261473,0.207407}, + {-0.241734,0.107672}, + {-1.042802,-0.161642}, + {0.155338,0.029191}, + {0.742596,0.009836}, + {1.004603,-0.548445}, + {-0.772076,0.004202}, + {0.684254,-1.908420}, + {-0.643584,-0.503343}, + {-0.602398,0.352084}, + {0.637940,0.050408}, + {-0.282541,-0.673629}, + {-0.218095,-0.677067}, + {0.028687,-0.173118}, + {0.599385,0.120223}, + {-0.635225,1.055321}, + {-0.321093,-1.072140}, + {0.301278,-0.518003}, + {-0.301802,0.560499}, + {0.404168,-0.160419}, + {0.439423,-0.123051}, + {-0.001024,-0.084182}, + {-0.222399,0.398534}, + {-0.032543,0.290847}, + {-0.686894,0.642376}, + {-0.376391,-0.292043}, + {1.291833,-0.282113}, + {-0.432943,0.047899}, + {-0.268253,-1.565101}, + {-0.079616,-0.299536}, + {0.117126,-0.616435}, + {0.920777,-1.547713}, + {0.672508,-0.938412}, + {-0.127227,0.039824}, + {0.497527,0.137301}, + {-1.150554,-0.242356}, + {0.526140,0.662427}, + {0.332716,0.387359}, + {0.193252,-0.748491}, + {0.879236,1.244841}, + {-0.320852,0.438523}, + {0.655207,0.250311}, + {0.798317,-0.037761}, + {1.759320,0.543552}, + {0.796490,0.394488}, + {-0.426451,0.104660}, + {-0.596812,0.295484}, + {-0.586590,-0.761865}, + {-1.204936,1.145020}, + {-0.858949,0.734240}, + {0.417170,-1.861530}, + {-1.380253,0.411880}, + {0.940440,-1.547216}, + {0.392789,0.067926}, + {0.752023,-0.870322}, + {0.120743,-0.084171}, + {0.226500,-0.038959}, + {-0.199741,0.982130}, + {-1.435202,1.924533}, + {-0.681303,-0.685655}, + {-0.017819,0.316710}, + {-0.419371,0.291876}, + {-0.419993,-0.704322}, + {-0.167402,-0.653200}, + {0.689883,1.667397}, + {0.656809,-0.191279}, + {1.349286,0.707932}, + {-0.417382,-0.503832}, + {-0.314839,0.076203}, + {0.018604,0.103821}, + {-0.670877,0.305072}, + {0.238125,-0.177294}, + {-0.711169,0.115679}, + {0.098621,-0.114667}, + {-0.836724,0.797509}, + {-1.266489,0.300376}, + {-1.574358,-0.601570}, + {0.109701,-0.625894}, + {0.799278,-2.008089}, + {0.734900,1.439041}, + {-0.172757,0.297516}, + {0.123756,0.251462}, + {-0.605374,0.019162}, + {-0.277414,0.527217}, + {1.598600,-0.465976}, + {0.478046,-0.621558}, + {-0.032111,0.513916}, + {-0.406663,0.473997}, + {0.377026,-1.022417}, + {0.261630,-0.600598}, + {0.192450,-0.761462}, + {-0.945120,1.662247}, + {1.445931,-0.381166}, + {0.796386,-0.527247}, + {0.570342,-0.165144}, + {-0.260445,0.197738}, + {-0.396075,0.035099}, + {0.438589,0.193911}, + {0.279975,0.803087}, + {-0.718632,-0.043015}, + {-0.073136,-0.144147}, + {0.091844,-1.245899}, + {1.133630,1.064059}, + {0.333917,-1.059628}, + {-0.475974,0.272878}, + {1.618769,0.338515}, + {-0.026654,0.173819}, + {-0.832746,-1.291872}, + {1.459739,-1.787186}, + {0.152053,0.719499}, + {-0.845311,0.148728}, + {0.096770,0.236791}, + {0.788550,0.590381}, + {0.589643,0.130083}, + {0.556591,1.302659}, + {-0.149560,0.050103}, + {0.917707,-0.486145}, + {-0.059802,1.519826}, + {-1.072536,0.667091}, + {-0.111194,1.228050}, + {-0.229775,0.154698}, + {-0.371433,0.541268}, + {0.403110,0.104249}, + {-0.766373,-1.209893}, + {-0.133097,0.781221}, + {0.018198,-0.190757}, + {0.547760,-0.448064}, + {-0.733735,0.187525}, + {0.308738,0.575826}, + {0.120420,-0.748615}, + {-0.162974,-1.656815}, + {0.495299,1.294132}, + {0.284833,0.326106}, + {0.304357,-0.029696}, + {-0.114308,-0.998843}, + {1.147646,0.007336}, + {0.889660,0.377428}, + {1.101746,-0.075572}, + {-0.630002,0.224827}, + {-0.447421,-0.680766}, + {-0.398164,-0.758312}, + {1.162091,0.872670}, + {-0.153320,0.100257}, + {-1.053855,-0.142606}, + {-0.151297,-1.709248}, + {-0.088670,-0.030046}, + {-0.039511,-0.751111}, + {-0.268719,0.233002}, + {0.107060,0.944089}, + {-0.528369,0.218636}, + {0.379463,-1.271446}, + {0.845463,-0.200500}, + {0.449410,-0.308035}, + {-1.125393,-1.368811}, + {-0.707799,0.752393}, + {0.224584,0.957984}, + {-0.076844,-0.185815}, + {-0.276454,-0.875122}, + {-0.308372,-0.078258}, + {0.710906,-0.432983}, + {0.086967,-0.475256}, + {-0.484939,-0.239784}, + {0.527071,1.381910}, + {1.207738,0.764537}, + {-1.166732,0.156223}, + {-0.928368,-0.713470}, + {0.232623,0.248816}, + {0.234335,-0.713494}, + {0.506899,-0.538864}, + {0.923647,0.164175}, + {0.589798,0.487695}, + {-0.068928,-0.289141}, + {0.770468,0.393273}, + {-0.850038,1.509075}, + {-0.050092,-1.065967}, + {0.044840,-0.642072}, + {1.538218,-0.718189}, + {-0.483958,0.310072}, + {0.883513,0.423129}, + {0.577394,-0.913756}, + {0.369553,-0.000248}, + {1.306622,-0.676905}, + {-0.161439,-0.092252}, + {0.124913,0.545292}, + {-0.055785,-0.270095}, + {-0.654485,1.619946}, + {0.010064,-0.415884}, + {0.561868,-0.574773}, + {0.417682,0.121106}, + {0.447357,-1.403651}, + {0.036032,0.849953}, + {-0.310738,-0.139296}, + {-0.340548,1.709065}, + {0.324753,-0.829858}, + {-0.482715,1.278533}, + {0.027337,0.634282}, + {0.543259,-1.129644}, + {-0.176542,0.641092}, + {0.513499,0.270266}, + {0.592728,1.200615}, + {-0.168299,0.071350}, + {-0.028778,-1.609077}, + {0.100068,-0.177816}, + {0.179793,0.405800}, + {-0.550998,-0.189012}, + {-0.374629,-0.335207}, + {0.489373,-0.863435}, + {-0.909667,-0.243295}, + {-1.905582,0.828148}, + {-0.322044,0.578390}, + {0.172952,0.392945}, + {-1.349845,-0.593467}, + {0.385443,-0.834331}, + {-0.520047,-0.256327}, + {-0.168864,-0.011272}, + {0.705916,0.337266}, + {-0.613837,0.309663}, + {0.732870,0.082069}, + {-0.446717,0.037997}, + {0.503221,-0.919048}, + {-1.227801,-0.644395}, + {-0.110226,0.472814}, + {-0.153520,-1.426752}, + {-0.372143,-0.995245}, + {0.041903,1.617146}, + {-1.716966,-0.094746}, + {0.110050,0.506537}, + {0.441591,0.285438}, + {-0.422717,0.030475}, + {-0.546275,1.427064}, + {0.597491,-0.001582}, + {-0.227799,0.278393}, + {-0.711928,-0.389254}, + {-0.316276,-0.045449}, + {-0.246906,0.142129}, + {-0.017644,0.530840}, + {-0.846558,0.285732}, + {0.024601,1.550225}, + {0.135991,-0.281795}, + {1.076094,-0.393152}, + {0.469595,0.373539}, + {0.700686,-0.192217}, + {-1.044613,-0.031666}, + {-0.172857,0.037056}, + {0.216986,-0.221328}, + {1.202936,0.262729}, + {0.736136,0.660856}, + {0.310616,-0.895782}, + {0.756943,-0.860938}, + {0.491193,0.919560}, + {-0.391990,-1.038218}, + {0.630603,0.076034}, + {-1.672313,0.931548}, + {0.031370,-0.235708}, + {-0.059540,-0.730453}, + {1.751460,-0.083331}, + {-0.312742,1.042875}, + {-1.327894,-0.601739}, + {1.130657,-0.489036}, + {-0.578349,-0.452027}, + {0.442817,-0.010612}, + {0.568033,0.646896}, + {-0.209657,0.511084}, + {0.185712,-0.492029}, + {1.604476,-0.325909}, + {-0.804376,-0.713345}, + {-1.315856,0.385873}, + {-0.221093,1.328622}, + {-0.759605,0.387801}, + {0.152179,-0.162878}, + {-0.218474,-0.005204}, + {0.375890,-0.799244}, + {0.637063,-1.137409}, + {0.594361,0.315677}, + {0.645739,0.636245}, + {0.658041,-0.321056}, + {0.070071,1.391222}, + {0.721141,-0.400061}, + {-0.352948,0.195410}, + {-1.271695,0.849227}, + {-0.501393,-0.054339}, + {0.423696,1.085774}, + {-1.135309,0.703848}, + {-0.274176,0.653380}, + {-0.316789,-0.988309}, + {0.711998,1.178853}, + {0.467890,0.383039}, + {-0.361315,0.586150}, + {-1.992977,0.823878}, + {0.390939,0.167472}, + {0.110536,0.002095}, + {-1.247517,-0.665658}, + {0.121696,0.179633}, + {-1.365006,0.556461}, + {0.408822,-0.155980}, + {-0.730116,0.123973}, + {0.684268,-1.776762}, + {-0.649453,-0.171713}, + {-0.372612,-0.050829}, + {0.376350,0.556347}, + {-0.100789,-0.048297}, + {0.535745,-0.486194}, + {-0.461672,-0.184145}, + {0.397655,-0.685573}, + {-0.322562,-0.405548}, + {-0.139347,0.980121}, + {0.383183,-0.416704}, + {0.405772,0.305710}, + {1.287783,1.488584}, + {0.032704,0.960170}, + {-0.996629,-0.613880}, + {0.344951,0.741074}, + {0.012855,0.279797}, + {0.059268,0.437106}, + {1.099804,-0.690001}, + {2.066302,-1.011066}, + {-1.138329,0.358600}, + {0.915106,0.661313}, + {-0.890883,-0.368142}, + {-1.368238,0.378705}, + {-0.336150,0.507975}, + {-0.706113,0.234963}, + {-0.606888,-0.970039}, + {-0.527169,0.523949}, + {0.018031,-0.474310}, + {0.741809,-0.091430}, + {-0.009929,0.576888}, + {0.874371,0.333460}, + {-0.254588,0.654464}, + {0.261702,1.313061}, + {-1.277335,1.378973}, + {-0.138901,-0.173082}, + {0.924853,0.129874}, + {-0.387252,0.001449}, + {0.101334,-0.534299}, + {1.166440,-0.414895}, + {1.069226,0.257124}, + {0.900367,-0.135723}, + {1.218319,-0.472790}, + {0.508176,-0.583053}, + {0.556299,0.001431}, + {0.941767,0.240470}, + {1.019062,-1.238945}, + {-1.044413,0.547817}, + {0.739657,0.372119}, + {-1.127057,-0.032632}, + {1.021823,-2.155687}, + {0.154893,-0.768565}, + {0.222839,-0.891271}, + {-0.021271,-0.349137}, + {-0.498438,-0.404658}, + {0.713753,-1.281305}, + {0.516202,-0.400977}, + {0.375070,-0.381473}, + {0.611029,-0.695506}, + {0.329870,0.978420}, + {-0.440990,-0.627980}, + {1.106160,-0.673187}, + {0.330761,0.960060}, + {0.002016,-0.375526}, + {-0.418742,-0.230493}, + {0.889310,0.259182}, + {-0.743094,0.859461}, + {-0.639141,0.046149}, + {-0.825368,1.113567}, + {-0.183710,-1.099516}, + {-0.688241,0.048768}, + {-0.567826,0.016499}, + {-0.252604,-0.505972}, + {0.125737,-0.032586}, + {-0.289104,0.481842}, + {0.197078,-0.361814}, + {1.702697,-0.135121}, + {-0.313162,-0.195712}, + {0.373467,-0.638017}, + {0.265985,0.688793}, + {-0.930620,-0.543390}, + {0.266031,0.127381}, + {-1.131799,-0.707161}, + {0.294857,-1.044248}, + {0.844394,-1.509590}, + {-0.012985,0.455971}, + {0.934720,0.325752}, + {0.477097,-0.617656}, + {-0.186792,0.919832}, + {0.661168,-1.463831}, + {-0.052266,-0.007023}, + {-0.417000,-0.630278}, + {-0.201517,0.049327}, + {0.324582,0.488122}, + {-1.135622,1.088472}, + {-0.839457,0.576660}, + {0.776228,-0.246711}, + {-0.060646,0.204187}, + {-1.666099,-0.412724}, + {-0.302620,0.413709}, + {0.134609,-0.417098}, + {0.667218,-0.505744}, + {0.310204,-0.163001}, + {2.227881,0.439271}, + {-0.402395,-0.165319}, + {-0.381247,0.233719}, + {-0.070232,-0.083912}, + {0.705271,0.505574}, + {-0.574528,-0.237527}, + {-0.097888,0.687548}, + {-0.287092,-0.392327}, + {0.771057,-2.105183}, + {-0.424797,-0.712019}, + {-1.141051,-0.262563}, + {1.245465,-0.173175}, + {-0.809671,0.478984}, + {0.420857,-1.118626}, + {-0.774501,0.206551}, + {-0.371353,-0.523965}, + {-0.475349,0.782751}, + {0.354270,0.297627}, + {0.429063,-0.301249}, + {-0.253951,-0.024314}, + {0.542049,0.210328}, + {-1.288145,0.902746}, + {-0.610673,-0.457713}, + {0.560486,-0.045507}, + {1.012326,0.160808}, + {0.739327,0.227113}, + {0.440689,-0.364347}, + {0.043907,-0.902520}, + {0.107084,-0.850966}, + {-0.864312,-0.936915}, + {-0.983595,1.279503}, + {-0.826804,-0.510867}, + {0.410159,-0.166249}, + {0.234942,0.048679}, + {-0.440864,-1.871740}, + {-0.277232,0.058905}, + {0.865167,-1.085117}, + {0.323421,0.865950}, + {0.078567,0.487181}, + {-0.106628,0.112398}, + {-0.701141,-0.631292}, + {-0.241547,-0.907031}, + {-1.058655,1.194515}, + {-0.245933,-0.291151}, + {0.090384,-0.078327}, + {-1.804471,0.305652}, + {-0.710208,-0.044177}, + {-1.637185,0.634789}, + {0.322701,0.202198}, + {0.592642,0.027099}, + {0.106661,0.220082}, + {0.374884,0.031143}, + {0.466431,0.144924}, + {-0.435113,-0.045018}, + {-0.812143,0.850339}, + {-0.723946,0.392704}, + {-2.151521,-0.712553}, + {0.450893,-0.280685}, + {0.819631,0.669219}, + {0.173790,-0.823862}, + {1.252888,-0.450119}, + {-0.760925,0.126633}, + {0.100797,0.669706}, + {0.636397,0.644360}, + {0.314358,0.426072}, + {0.399418,-0.772800}, + {-0.648593,-0.341262}, + {-0.247134,0.264055}, + {1.077773,0.975354}, + {0.523563,-0.791219}, + {-0.796902,-0.163962}, + {-0.615911,0.149349}, + {0.954916,-1.262222}, + {0.678034,1.207517}, + {-0.372992,-0.431473}, + {-1.124813,-1.597092}, + {-0.447033,-0.087720}, + {-0.720631,0.709710}, + {0.384703,0.910101}, + {-0.247341,-1.476532}, + {-1.241862,1.322373}, + {-0.310325,0.816418}, + {-0.050700,-0.416219}, + {0.309471,-0.192610}, + {0.371081,0.778064}, + {-0.510419,-1.055190}, + {0.127094,0.388637}, + {-0.255658,-0.020784}, + {-0.239095,-0.235771}, + {0.860355,0.144748}, + {0.175697,0.666209}, + {0.161710,-1.018808}, + {0.208616,-0.113253}, + {0.322261,-0.153970}, + {0.115609,0.527421}, + {-1.142425,-0.174532}, + {-0.867659,-0.160025}, + {0.702013,-0.499588}, + {-0.305717,-0.468403}, + {1.015578,-0.486232}, + {0.012654,0.647932}, + {0.650411,0.663774}, + {0.064881,0.712345}, + {-0.408083,-0.026499}, + {0.129269,0.557035}, + {-1.311066,0.784364}, + {-0.811294,-0.539442}, + {-0.783403,-0.385913}, + {0.661821,0.125770}, + {-0.659564,0.069575}, + {0.995148,0.349592}, + {0.148861,-0.577855}, + {1.019181,-0.324607}, + {0.569564,-0.397281}, + {0.908002,0.954231}, + {1.214742,-0.616921}, + {-0.173224,0.454581}, + {-2.116294,-0.837803}, + {-0.363546,0.105419}, + {0.440872,0.067274}, + {-0.101457,0.086710}, + {0.335032,1.011214}, + {-0.212784,1.709394}, + {-0.609104,0.294062}, + {0.257849,-0.420324}, + {-1.753260,-0.996065}, + {0.233278,0.392532}, + {0.347599,0.585661}, + {0.445643,-0.462247}, + {1.049963,0.117133}, + {0.839655,-0.356217}, + {0.703241,0.033581}, + {0.271280,-0.196860}, + {0.065959,-0.921553}, + {0.405906,-0.688962}, + {0.098046,0.333902}, + {-0.014572,0.211136}, + {-0.737884,0.177744}, + {-0.649906,-1.604793}, + {0.293595,0.706452}, + {-0.066643,1.517094}, + {0.441195,-0.173964}, + {1.195227,0.123771}, + {-1.135443,-1.413717}, + {0.006356,-1.017804}, + {0.722946,0.103556}, + {-0.003354,0.488708}, + {0.474062,0.159755}, + {0.324770,0.895972}, + {-0.553939,0.154297}, + {-0.103416,0.898922}, + {-1.072220,-0.410260}, + {-0.053047,-0.030047}, + {0.070087,-0.725415}, + {0.165223,-0.558910}, + {0.782904,-0.136372}, + {-0.041688,-0.135373}, + {0.334520,-0.033481}, + {0.801873,-0.133751}, + {0.209301,0.597294}, + {0.618379,1.223616}, + {0.888198,-0.672384}, + {-1.214205,0.041896}, + {-0.207532,-0.540674}, + {0.992363,-1.169905}, + {0.940801,-0.242385}, + {-0.708174,0.635987}, + {-0.369966,0.143612}, + {1.281108,0.086508}, + {0.250887,-0.332167}, + {-0.515793,-0.631672}, + {1.136276,0.346349}, + {-0.464252,1.668219}, + {0.525805,-0.141030}, + {0.999260,1.590780}, + {0.605581,-0.060022}, + {1.056390,-0.048178}, + {-0.968752,0.185265}, + {-1.340377,-0.330139}, + {-1.046545,0.051473}, + {-0.450882,0.258781}, + {0.243010,0.998613}, + {0.421506,-0.706489}, + {0.656187,-0.851819}, + {-1.749329,-0.182724}, + {0.266263,0.302166}, + {0.344290,-0.491448}, + {0.946706,1.671205}, + {1.056879,-0.219540}, + {0.627745,-0.729454}, + {0.433355,-0.250281}, + {-0.200019,-1.300245}, + {1.255424,-1.022037}, + {-0.061801,-0.646340}, + {-0.232252,0.533970}, + {-0.395477,0.369443}, + {-0.623953,-0.526531}, + {-0.820382,1.716970}, + {0.140594,0.061758}, + {-1.036810,0.403211}, + {-0.469993,-0.107368}, + {1.205792,0.275994}, + {0.959943,0.019721}, + {0.573598,0.123293}, + {-1.420059,-1.132904}, + {0.290727,0.167288}, + {0.365799,0.542990}, + {0.516968,-0.612634}, + {0.160027,-0.390477}, + {-0.347292,0.029547}, + {-0.004609,1.121404}, + {-0.335175,-0.015666}, + {0.908113,0.229171}, + {0.545009,1.480549}, + {-1.220973,1.093788}, + {0.479628,-1.425169}, + {-0.513786,1.062727}, + {0.357421,-0.804394}, + {-1.061941,0.223873}, + {-0.385252,0.110396}, + {-1.640287,-0.021951}, + {0.623028,-0.060477}, + {-0.550756,0.678768}, + {0.135673,0.837449}, + {0.751838,-0.180054}, + {0.954815,-0.866757}, + {0.604536,1.476877}, + {-0.286459,0.372774}, + {0.376627,-0.910916}, + {1.217027,0.101736}, + {0.011181,-0.874826}, + {-0.722030,0.489939}, + {0.311409,-0.260903}, + {0.226439,-0.416559}, + {-0.217666,0.618687}, + {-0.882251,-0.420330}, + {0.562126,-0.226552}, + {-0.133127,-0.134644}, + {0.969153,-0.508304}, + {0.405205,-0.871967}, + {-1.017625,0.079112}, + {-0.736203,-0.949411}, + {0.250579,0.868592}, + {0.584736,0.487773}, + {-0.200735,0.406254}, + {-0.169967,-0.174164}, + {-0.926833,-0.008126}, + {-1.276335,-0.436210}, + {-1.055847,-0.464811}, + {1.382819,-0.892263}, + {0.549810,-0.254992}, + {-1.222183,-0.947043}, + {0.548589,-0.517754}, + {0.330987,1.018993}, + {0.025173,0.069526}, + {0.574042,-1.129914}, + {1.165371,-0.221953}, + {-0.047741,-0.296772}, + {0.651998,0.263669}, + {-0.694023,0.443470}, + {-0.956615,-0.672689}, + {0.016381,-0.458048}, + {0.982982,-0.048522}, + {0.181067,-0.514465}, + {-0.391139,-0.223578}, + {0.161096,-0.653129}, + {-0.351802,-0.290479}, + {-0.314563,0.489580}, + {-0.146600,0.217679}, + {-0.626463,-1.314274}, + {-0.425276,0.036105}, + {0.653590,-0.842355}, + {0.326039,-0.509672}, + {-0.469673,0.286035}, + {-0.123351,0.467094}, + {0.413046,1.210950}, + {-1.022797,-0.785435}, + {0.675002,0.772235}, + {-0.862771,-0.220066}, + {-0.231169,-0.567071}, + {-0.022879,-1.662436}, + {0.191818,-0.220743}, + {-0.011754,-1.811256}, + {0.535316,-0.223392}, + {0.073030,1.008182}, + {0.433603,1.040546}, + {0.057488,-0.260627}, + {-0.750304,-0.190874}, + {-1.484162,-0.249188}, + {0.555514,-0.171803}, + {0.541373,0.623842}, + {-0.324439,-0.112460}, + {0.079769,-0.353481}, + {0.330382,1.054412}, + {-0.106034,0.995793}, + {-0.382467,0.382232}, + {-0.036929,-0.393942}, + {0.511558,-1.203157}, + {-0.669114,-0.507821}, + {-0.717810,-0.040914}, + {-1.754621,0.344004}, + {-0.597845,-1.199356}, + {1.760979,0.700903}, + {0.625006,-0.444735}, + {-0.348717,-0.247748}, + {0.174249,0.142504}, + {0.819233,0.294173}, + {-0.031325,-0.221121}, + {0.591852,0.560305}, + {-0.018918,-0.672425}, + {0.779234,-0.181712}, + {-1.059580,0.442549}, + {-0.326264,1.377449}, + {-0.788614,-1.350767}, + {0.216709,0.414704}, + {0.220819,0.108199}, + {-0.359007,0.600802}, + {-0.309663,0.778317}, + {0.757247,0.732882}, + {-0.492180,0.313444}, + {-0.869761,-1.301811}, + {-0.125626,-0.676394}, + {0.295449,-0.241053}, + {1.054322,0.797473}, + {-0.287078,-0.504316}, + {-0.537100,-0.231610}, + {0.613905,-0.234007}, + {0.741154,0.141237}, + {0.626367,-0.853201}, + {0.755579,-0.402972}, + {0.791054,0.600208}, + {-0.063499,-0.518131}, + {-0.489265,-0.036842}, + {-0.949063,0.023314}, + {-0.515292,-0.340645}, + {1.479585,0.191550}, + {-0.606714,-0.320708}, + {0.466669,0.522580}, + {-0.863079,1.451320}, + {0.528683,0.847398}, + {0.542235,-0.755739}, + {0.118265,0.135243}, + {-0.740312,-0.861944}, + {-0.435756,0.830366}, + {-0.109372,-0.213866}, + {-0.553930,-0.845500}, + {-1.099287,-0.297620}, + {0.106898,-0.424559}, + {-0.378716,0.193142}, + {0.213494,1.033237}, + {-0.853118,-0.760434}, + {-0.206960,0.322096}, + {0.515476,-0.382595}, + {-0.452647,0.010086}, + {-0.802250,-0.678852}, + {0.294123,0.686175}, + {0.858965,0.189241}, + {0.605752,-1.104271}, + {1.481873,0.508996}, + {-1.116676,0.289812}, + {-0.707222,-0.382630}, + {-0.079025,1.156617}, + {0.639524,-0.001944}, + {-0.088679,-1.253192}, + {-0.321477,0.741010}, + {0.995588,-0.064482}, + {-0.881360,1.360842}, + {-0.297000,-0.072434}, + {0.060998,0.138554}, + {0.421436,-0.022213}, + {0.600608,-0.843743}, + {-0.093266,-0.799977}, + {-0.270330,-0.551698}, + {-0.586570,0.075585}, + {0.535896,-0.937339}, + {-0.196885,-1.152215}, + {-0.824956,-0.668942}, + {-0.259150,0.564970}, + {1.163106,-0.343775}, + {-0.211627,0.887391}, + {-1.519484,-0.692918}, + {0.630723,-0.711066}, + {-0.804122,-0.662480}, + {0.839553,1.605451}, + {-0.326213,0.368434}, + {0.059140,-1.102124}, + {0.237029,0.146990}, + {-0.696770,-0.008057}, + {-1.171176,0.075899}, + {-0.147349,0.040450}, + {0.129807,-1.078745}, + {-1.346480,-0.102841}, + {1.923088,-0.340920}, + {0.604509,-0.631306}, + {0.830188,0.900687}, + {-0.244172,-0.131295}, + {-1.297096,0.273955}, + {-0.851825,1.248525}, + {-0.198894,-0.720303}, + {0.603852,0.405432}, + {0.164840,0.543281}, + {1.671773,0.067980}, + {0.038583,0.297031}, + {0.507509,-0.744625}, + {0.359393,0.748717}, + {-0.212608,-0.358101}, + {0.126437,1.165712}, + {-0.248434,-0.585575}, + {-0.263564,1.882286}, + {0.197666,-0.007268}, + {1.382641,-2.141275}, + {0.372177,-1.454355}, + {-1.179644,0.104261}, + {1.106674,-0.282933}, + {-0.265928,-0.626704}, + {-0.561107,0.452555}, + {-1.300538,0.287714}, + {-1.015374,0.573758}, + {-0.607617,-0.309770}, + {-0.023152,-0.760109}, + {-0.194123,0.599047}, + {0.647420,-0.037263}, + {0.106358,0.238426}, + {-0.392097,0.094144}, + {0.661177,0.412145}, + {-1.399599,1.957816}, + {0.148234,0.471031}, + {0.286092,0.528837}, + {-0.391787,0.921074}, + {0.195292,0.118754}, + {-0.136761,0.298155}, + {-0.378985,-0.604095}, + {1.371422,-0.622111}, + {0.857070,0.509011}, + {0.066269,-0.029824}, + {-1.377703,0.529433}, + {-0.694186,-0.441324}, + {-0.257793,1.275458}, + {-0.672277,-0.654115}, + {-0.809306,0.145106}, + {0.670659,-0.012692}, + {0.157773,0.013152}, + {-0.462958,-0.012297}, + {0.827130,1.661564}, + {0.397882,0.120724}, + {1.117614,1.225687}, + {0.476878,0.490050}, + {0.724769,1.113002}, + {0.586609,-0.560797}, + {-1.361147,0.474845}, + {-0.007226,0.580620}, + {-0.701521,0.864232}, + {0.994535,0.306268}, + {0.370349,1.237807}, + {-0.242788,-1.443067}, + {0.473815,-0.479609}, + {-0.389546,0.026009}, + {-0.338480,0.878802}, + {0.435504,-0.420076}, + {0.889075,0.161873}, + {0.138696,-0.566162}, + {0.217055,0.953271}, + {0.839538,0.048184}, + {-0.059206,-1.142293}, + {0.665060,-0.676547}, + {0.221557,0.086282}, + {-1.173015,0.335912}, + {0.457360,-0.040303}, + {0.575889,-1.213594}, + {0.658439,-0.011276}, + {-1.457696,-0.189237}, + {-0.800412,0.566585}, + {-0.102734,-0.661830}, + {-0.348242,0.424874}, + {0.353335,1.852790}, + {1.435363,0.984674}, + {0.405182,-0.313471}, + {-0.641495,1.885674}, + {1.945466,1.286943}, + {-1.031042,-0.000691}, + {-0.513774,-1.070626}, + {1.364844,-0.285854}, + {-0.121790,-1.095977}, + {-1.249687,0.021067}, + {-0.075555,0.781338}, + {0.954208,-0.915902}, + {-1.027627,-0.406509}, + {-1.513386,0.885096}, + {-0.487952,-0.456337}, + {-1.052057,0.867359}, + {-0.145713,0.278056}, + {-0.756226,-0.964303}, + {-0.446097,-0.089467}, + {0.169928,-0.361224}, + {0.397326,-0.307696}, + {-0.034144,-0.246857}, + {-0.696100,-0.538312}, + {-0.534972,0.210185}, + {0.816251,-0.647654}, + {-0.705987,-0.908852}, + {-0.615467,-1.097666}, + {-0.159338,-0.149510}, + {-0.937470,0.880936}, + {-0.320957,-0.048574}, + {-0.372401,-0.285898}, + {-0.358402,-0.568311}, + {0.708385,-1.254534}, + {0.829644,0.011912}, + {0.285381,-1.031588}, + {0.017740,-0.349993}, + {-0.022239,-0.439243}, + {-1.430300,-0.497895}, + {0.170766,-0.701765}, + {0.175088,0.629816}, + {-0.098450,0.984733}, + {-0.506275,0.273047}, + {0.386685,0.226191}, + {-0.849597,0.026814}, + {0.331172,-0.400903}, + {-0.166717,0.322664}, + {0.840811,0.163583}, + {-1.492836,0.838920}, + {-1.518271,0.133282}, + {0.411785,0.665886}, + {-1.288775,0.573578}, + {-0.679826,0.216065}, + {1.072059,0.678109}, + {0.327039,0.057915}, + {0.748172,-1.016021}, + {0.766777,0.338616}, + {-0.154979,1.088221}, + {-0.233660,-0.592573}, + {0.733229,-0.356964}, + {-0.716623,0.333791}, + {0.201190,-0.773714}, + {0.312616,-0.148537}, + {0.290474,-0.743141}, + {-0.227709,-0.668733}, + {-1.515149,1.270848}, + {0.226198,-0.729829}, + {-0.181346,-1.271070}, + {-1.045326,-0.092295}, + {1.642772,-1.645010}, + {1.017090,-1.591010}, + {0.095373,-1.289559}, + {1.964387,0.348377}, + {-0.950861,0.367564}, + {0.556953,0.768761}, + {-0.203486,0.439205}, + {0.491570,0.168439}, + {-0.687148,-0.295486}, + {-0.740794,-0.566119}, + {-0.024076,0.456466}, + {0.109395,-0.274543}, + {-0.793800,-1.014024}, + {0.292454,0.541633}, + {-0.595307,0.963837}, + {-0.657843,-0.867296}, + {0.204862,-0.344086}, + {-0.578269,-0.345403}, + {-0.780437,-0.385625}, + {-0.273820,0.505994}, + {1.004484,-0.156356}, + {-0.868964,0.266448}, + {0.143031,-0.803470}, + {0.101618,-0.081850}, + {0.193181,-0.062062}, + {-0.861275,0.852923}, + {0.288135,-0.426406}, + {-0.928134,0.099686}, + {-0.181721,1.615686}, + {-0.136660,0.020212}, + {0.072772,0.114802}, + {0.202198,-0.238392}, + {-0.251007,0.316880}, + {0.349716,-0.792136}, + {-1.213064,-0.842004}, + {0.862678,-0.028549}, + {-0.973473,0.006869}, + {0.233388,-0.345947}, + {1.041065,0.708671}, + {0.324049,-1.771873}, + {-0.185275,0.653364}, + {0.628341,0.054329}, + {-0.164341,0.487005}, + {0.393343,-0.037375}, + {-0.532730,1.366482}, + {0.106510,0.798337}, + {-0.801100,-0.368808}, + {0.492501,-0.594827}, + {-0.157276,-0.210969}, + {1.430722,-0.123353}, + {0.869858,-0.330376}, + {-0.870905,-0.576319}, + {0.488152,-0.077766}, + {-1.352852,-0.983699}, + {-0.071516,0.008669}, + {0.038294,-0.659775}, + {-0.638838,-1.453811}, + {0.365078,0.936548}, + {-0.176761,0.029567}, + {-0.637139,0.811721}, + {0.199638,-0.298378}, + {-0.555570,0.019142}, + {-0.091645,0.610158}, + {0.877453,0.174360}, + {-0.568953,0.103565}, + {-0.832229,0.324979}, + {0.712774,0.870009}, + {-0.278872,-0.588582}, + {0.435542,0.494374}, + {-0.065868,0.021952}, + {1.423758,-0.393834}, + {-0.477059,0.827165}, + {0.627414,-0.276227}, + {1.000520,0.682515}, + {0.607696,0.206943}, + {-0.154464,0.495945}, + {-0.124329,-0.829138}, + {-0.087112,-0.220509}, + {-0.465875,-0.382839}, + {-1.017272,0.487396}, + {-0.547511,0.237748}, + {-0.038977,0.393638}, + {1.026923,-0.597241}, + {-0.621617,-0.717375}, + {0.667387,0.914740}, + {-0.608364,-0.851361}, + {0.615870,0.510211}, + {0.292743,0.514543}, + {0.347583,1.275365}, + {0.200986,-0.420921}, + {1.374615,-0.215986}, + {-0.414803,0.434964}, + {-1.476929,-1.362368}, + {0.636865,0.488148}, + {1.114926,0.262444}, + {0.082692,-0.670997}, + {1.966723,1.124746}, + {-0.046586,-1.173584}, + {-0.363377,-0.208166}, + {0.501587,0.594431}, + {-0.168038,0.767871}, + {0.323440,0.680381}, + {1.067349,0.560431}, + {-0.772885,-1.138626}, + {0.518494,0.322721}, + {0.685843,-0.056191}, + {0.787104,-0.784384}, + {0.609174,-0.220906}, + {-0.006505,0.671218}, + {0.460238,-0.684338}, + {0.438095,1.508562}, + {0.009417,0.237749}, + {0.393314,1.196541}, + {-0.583606,1.070722}, + {-0.169269,-0.926174}, + {-0.066992,-0.301332}, + {0.497741,-1.198867}, + {-1.090838,0.548678}, + {-0.004155,-0.024343}, + {-0.612437,-0.656401}, + {-0.663257,-0.093885}, + {-0.174069,0.911494}, + {0.367565,0.610990}, + {-0.144097,-0.435430}, + {1.104616,-1.845717}, + {-0.972594,0.334831}, + {-0.794574,-0.392847}, + {0.311997,0.561151}, + {0.586292,-0.042105}, + {-1.605228,-0.279692}, + {-0.382017,2.388282}, + {1.055212,0.335750}, + {0.209281,0.138650}, + {-0.385178,-0.272430}, + {0.548245,-0.025245}, + {-0.638262,-0.021417}, + {-1.294383,-0.197757}, + {0.423815,0.591952}, + {-0.071987,-0.562847}, + {-0.126977,1.038596}, + {0.496448,0.840634}, + {-1.185477,0.042048}, + {-0.823043,-0.368610}, + {1.008274,-0.231597}, + {-0.660260,0.296490}, + {-0.743515,0.208480}, + {0.379941,-1.003447}, + {0.968945,0.294877}, + {-0.698481,-1.144907}, + {-1.162786,0.387927}, + {-0.293235,0.428785}, + {0.718636,-0.315848}, + {0.107103,-0.828505}, + {0.356476,-0.645877}, + {0.505071,-0.331163}, + {-0.649298,-0.398312}, + {-0.090610,-0.074341}, + {0.200451,-0.421806}, + {0.908067,-0.168388}, + {-0.846288,0.033026}, + {-0.189659,-0.925072}, + {-0.023812,0.459475}, + {1.602866,0.714233}, + {-0.575714,-0.238446}, + {0.846762,-0.832419}, + {0.120918,0.182480}, + {-0.570597,-0.373300}, + {0.419728,0.612563}, + {-0.320002,-0.948555}, + {0.318035,-0.186493}, + {-0.127286,0.112951}, + {-0.141023,0.135715}, + {1.060583,0.677137}, + {0.101330,0.199317}, + {0.803035,-0.452390}, + {-0.340576,0.650283}, + {0.902556,-0.144691}, + {-0.893404,0.858889}, + {-0.007600,-0.345112}, + {0.111926,-0.168442}, + {1.039893,-0.469075}, + {0.240538,-0.826278}, + {0.826768,0.578478}, + {1.046184,0.665426}, + {0.038550,0.215966}, + {-0.635648,0.508181}, + {-0.146230,0.638788}, + {-0.362399,-0.629495}, + {0.542586,0.843847}, + {0.167182,-0.792296}, + {-0.855717,0.083743}, + {-1.036334,-0.085065}, + {-0.324723,-0.030988}, + {-1.833660,-0.410648}, + {-0.001357,-0.829866}, + {-0.104752,-0.284616}, + {-0.816835,-1.210435}, + {-0.052255,-0.543345}, + {-0.367505,0.092323}, + {-0.736559,-0.520296}, + {0.201749,0.054396}, + {-0.199049,0.602651}, + {0.404682,-0.309862}, + {-0.317471,1.036744}, + {-0.098938,-0.818030}, + {-0.814101,-1.260633}, + {0.763575,0.457821}, + {0.358938,-0.131199}, + {-0.301845,0.650210}, + {-0.029168,-0.595484}, + {-0.369691,0.223720}, + {0.194581,0.025750}, + {-0.460265,0.156045}, + {0.305830,0.208558}, + {0.223866,0.641668}, + {0.026609,0.558788}, + {0.356247,0.373533}, + {0.237883,-1.069953}, + {0.147891,-0.805516}, + {0.188977,-0.068435}, + {0.292733,-0.380567}, + {0.221952,1.563443}, + {0.345474,-0.145997}, + {0.562837,0.992170}, + {0.931969,1.306009}, + {1.241908,0.118149}, + {0.565906,-0.246496}, + {-0.585196,0.203570}, + {0.711276,-0.200387}, + {-0.376149,0.513875}, + {1.192035,-0.156803}, + {-0.862564,0.588024}, + {0.388852,-1.356642}, + {0.725190,0.687537}, + {0.257052,0.151601}, + {0.411402,0.594166}, + {-0.047136,-1.330878}, + {1.164207,-0.046186}, + {-0.200303,0.780709}, + {-1.433552,0.524817}, + {0.560902,0.219424}, + {1.472746,0.370998}, + {0.004523,0.852842}, + {-0.707314,-0.502471}, + {-0.705225,-0.568235}, + {-1.031248,0.407625}, + {1.060594,0.382613}, + {1.464419,-0.586019}, + {-0.605902,-0.458757}, + {0.929307,0.153506}, + {-0.016372,0.282450}, + {-1.208132,-0.830801}, + {-0.126240,-0.367972}, + {-0.499330,0.674812}, + {1.438503,0.217270}, + {0.740691,0.305890}, + {-0.108512,0.515161}, + {-0.078081,-0.658439}, + {0.032558,-0.295751}, + {-0.340864,-0.476425}, + {-0.013541,1.071300}, + {-0.316971,0.276887}, + {-0.154365,-0.266247}, + {0.612401,0.295050}, + {0.668963,-0.540567}, + {0.158289,0.472776}, + {-0.166571,1.587298}, + {-0.159732,0.238475}, + {0.347017,0.964527}, + {0.004723,1.073330}, + {0.829038,-0.522273}, + {-0.541649,0.245743}, + {-0.766282,-1.376811}, + {1.171373,-0.879527}, + {0.569829,0.378677}, + {0.416307,0.145570}, + {-0.123077,-0.283547}, + {-0.896898,0.201798}, + {-0.435349,-0.464885}, + {1.650033,0.637224}, + {0.965961,0.150970}, + {1.166701,0.751840}, + {-0.127525,0.401022}, + {0.092153,0.492356}, + {-0.022106,0.491025}, + {0.385129,1.227755}, + {-0.436923,0.728795}, + {-0.022073,-0.802340}, + {1.216361,-1.280683}, + {-0.519844,-0.069400}, + {0.409208,-0.807452}, + {-0.368572,0.226689}, + {0.076268,0.839854}, + {0.287471,-0.764709}, + {1.363614,0.454507}, + {-1.102576,0.253968}, + {-0.046986,-0.270808}, + {-0.736602,0.092040}, + {1.165091,-0.216918}, + {0.127164,0.453077}, + {-0.886593,0.861856}, + {0.158112,-0.594493}, + {-0.030994,0.470361}, + {-0.261688,0.126497}, + {0.600867,0.028243}, + {-0.982395,0.004090}, + {-0.507128,-0.005293}, + {-0.731200,-1.445173}, + {-1.293737,-0.514366}, + {0.105943,-0.405240}, + {0.207327,-0.755563}, + {-0.023598,0.754680}, + {1.402186,-0.206298}, + {-0.127333,0.036313}, + {1.399904,-0.297810}, + {-0.974748,0.286854}, + {1.124209,1.335946}, + {-0.128752,0.673476}, + {0.713310,0.757828}, + {-0.843100,-0.537106}, + {-0.715673,0.477791}, + {-0.382188,-0.826056}, + {0.390282,-0.250610}, + {0.514525,1.058072}, + {-0.896554,1.141563}, + {0.829613,0.348516}, + {0.238624,0.417594}, + {-0.105300,-1.182838}, + {1.532616,-0.028817}, + {-0.894122,-0.090487}, + {-0.389445,0.360247}, + {1.821895,0.589262}, + {-1.125450,0.413939}, + {0.161053,1.207355}, + {-0.222854,0.366948}, + {0.533803,0.516122}, + {-0.531179,-0.721872}, + {-0.763610,0.387296}, + {-1.006094,-0.714480}, + {-0.053524,2.039535}, + {0.715739,-0.315490}, + {0.112799,-0.374255}, + {0.012495,-0.075747}, + {0.777265,-1.168285}, + {-0.030666,-0.933422}, + {-0.621612,0.877107}, + {1.613176,-0.222628}, + {0.762815,0.849391}, + {-0.616282,0.927940}, + {-0.508595,-0.736129}, + {-0.282486,0.049873}, + {0.685474,-0.516179}, + {-0.167842,-1.278946}, + {-0.341434,0.561593}, + {-0.450187,0.553444}, + {-0.284804,0.812548}, + {0.660818,0.289406}, + {-0.851014,-1.087384}, + {-0.046101,1.015682}, + {-0.127992,-0.773456}, + {0.306108,-0.585527}, + {0.058395,1.365709}, + {-1.008366,-0.490221}, + {0.982199,0.335153}, + {-0.577732,0.243236}, + {0.835171,1.062171}, + {0.861717,-0.878783}, + {0.076238,0.653993}, + {0.882457,-1.182033}, + {0.395471,0.707660}, + {0.175015,0.113237}, + {-0.326660,-0.420746}, + {-0.270266,-0.064866}, + {1.219132,0.257211}, + {0.532239,-1.366118}, + {-0.063139,0.364975}, + {-0.538459,-0.301802}, + {-0.066699,1.443469}, + {1.349248,-0.063832}, + {0.640151,-0.177954}, + {-0.281434,-0.418631}, + {0.205809,0.035216}, + {-0.593818,-0.007308}, + {0.083672,-0.018417}, + {0.229748,-1.197985}, + {0.617426,-0.238514}, + {0.627780,1.027152}, + {-0.525954,0.502738}, + {-0.494039,0.268553}, + {-0.565555,1.133933}, + {0.692407,-0.156891}, + {-1.132269,-1.404156}, + {0.952331,0.232551}, + {0.542762,0.026346}, + {-0.223407,-0.463245}, + {-0.889800,-1.076883}, + {1.183630,0.315594}, + {-0.424457,-2.145227}, + {2.273507,0.093040}, + {1.217376,-0.209756}, + {-0.118041,0.061581}, + {-0.281683,-0.337646}, + {0.681924,-0.618740}, + {0.366107,0.349009}, + {0.162105,-0.360180}, + {0.626527,-0.551253}, + {-0.406674,1.130650}, + {-0.210328,-0.182414}, + {0.362503,-0.512021}, + {-0.628315,-0.024001}, + {0.504299,0.803734}, + {1.120537,0.920166}, + {0.908672,-0.033387}, + {-0.253838,1.298045}, + {0.481005,0.131980}, + {-0.135943,0.437193}, + {0.267186,0.026759}, + {0.542714,-0.264004}, + {-1.206726,-0.419685}, + {-0.699274,0.238968}, + {0.463989,-0.510916}, + {0.043349,-0.214415}, + {0.160823,0.541792}, + {-0.242431,-0.210894}, + {0.511331,-0.176104}, + {1.048913,0.488046}, + {0.365260,-0.066836}, + {-1.066309,-0.093985}, + {0.542119,0.501833}, + {-1.244972,-0.372142}, + {-0.753972,-0.096356}, + {-0.291842,0.016194}, + {-0.477053,-0.804632}, + {-0.078449,-0.379581}, + {0.753739,-0.537456}, + {0.100513,-0.310604}, + {1.368776,0.717445}, + {0.764968,-0.075108}, + {0.053403,0.448399}, + {0.582609,-0.788861}, + {0.049464,-0.413320}, + {-1.015383,-0.153174}, + {-1.441094,1.226203}, + {-0.935850,0.636812}, + {0.714004,-0.531381}, + {-0.467397,0.354665}, + {-0.132670,0.678550}, + {0.491754,-0.263982}, + {0.137027,-0.063034}, + {-0.320801,0.061453}, + {-0.682060,0.697585}, + {0.772583,-0.400500}, + {-0.702765,0.154811}, + {0.248536,-0.291513}, + {1.213524,-1.416038}, + {-0.169976,-0.794819}, + {0.012138,0.740188}, + {0.700987,-0.962213}, + {0.654398,1.372495}, + {0.267751,0.491715}, + {0.380491,-0.409166}, + {0.697133,-0.296663}, + {-0.210519,0.303294}, + {-0.557089,0.942688}, + {0.250830,0.597076}, + {0.836891,0.383697}, + {-0.781979,-1.371013}, + {-0.312390,-0.764450}, + {-0.475572,0.060645}, + {0.756715,-0.479073}, + {-0.018402,0.967757}, + {-1.118602,0.402060}, + {-0.050789,0.033776}, + {-0.378991,-0.301264}, + {0.550866,-0.472333}, + {0.695695,-0.564736}, + {-1.022700,0.001319}, + {-0.995349,-0.179992}, + {-0.160696,-0.561579}, + {-1.238996,1.005039}, + {0.164585,0.869884}, + {-0.474996,0.425370}, + {-0.437417,1.116224}, + {-0.429658,0.009218}, + {-0.525544,-0.272148}, + {0.695156,-0.102539}, + {-0.850466,-0.358257}, + {0.079718,-1.212420}, + {0.484277,0.505628}, + {0.433427,0.521144}, + {1.357588,-0.280115}, + {-1.050502,0.461743}, + {0.092603,0.569536}, + {0.031757,0.460663}, + {-0.412955,0.613726}, + {-0.236422,-0.089493}, + {0.459335,0.304540}, + {-0.753505,-0.235785}, + {0.355571,-0.811544}, + {0.221435,-0.954573}, + {-2.346443,1.114150}, + {-0.490478,0.349986}, + {-0.652118,0.839932}, + {0.946405,-0.288780}, + {0.892454,0.348067}, + {0.154899,0.070845}, + {-0.145795,0.359580}, + {1.398316,-0.468739}, + {1.048537,0.085309}, + {-0.840074,-0.159959}, + {-0.514107,0.060504}, + {-1.325402,-0.340374}, + {0.838967,0.991954}, + {-1.218276,-1.408265}, + {0.335541,-0.565783}, + {-0.954269,0.937467}, + {-0.559335,-0.134362}, + {1.943719,-1.403866}, + {-0.460487,-0.682805}, + {0.681467,-0.850286}, + {-0.644147,0.907500}, + {-0.369335,0.124141}, + {-0.290076,-0.249195}, + {-1.372572,0.399371}, + {-0.216078,0.112425}, + {0.202706,-0.571132}, + {0.007932,0.238452}, + {0.622883,-0.361681}, + {-1.659769,-0.052142}, + {0.913395,-0.548796}, + {-1.546375,-0.177939}, + {0.033195,0.124151}, + {-1.002228,0.568683}, + {-0.552731,-0.057954}, + {-1.386417,-0.250903}, + {-0.685426,0.169422}, + {-0.419053,-0.687470}, + {0.203790,1.177844}, + {0.101606,0.434861}, + {1.212102,-1.394154}, + {-0.376188,0.550320}, + {0.845756,0.440839}, + {0.313480,-0.822269}, + {-0.806734,-0.209968}, + {0.235863,-0.633919}, + {-0.345711,-1.139946}, + {0.420142,0.087180}, + {0.522750,0.494215}, + {-0.415381,-0.544665}, + {-0.805989,-0.717142}, + {0.591845,-0.006759}, + {-1.082991,-0.056471}, + {-1.529968,1.037963}, + {-0.255855,-1.785748}, + {-0.454847,-0.034732}, + {-0.272457,0.141042}, + {-0.539356,0.233351}, + {-1.123501,0.381575}, + {-1.362791,-0.485143}, + {0.867246,-0.554638}, + {-0.592859,-0.071347}, + {0.029115,0.338592}, + {0.892906,-0.530447}, + {-0.942275,-0.950575}, + {0.681004,-0.812727}, + {-0.682861,-0.748591}, + {0.852113,0.476257}, + {0.789010,-0.330489}, + {0.615453,0.653533}, + {1.319493,-1.499355}, + {0.423842,-0.348825}, + {0.157478,-0.767351}, + {1.477448,1.666978}, + {0.067225,-0.415903}, + {0.744507,-0.884219}, + {0.040268,0.058540}, + {-1.735353,0.366785}, + {0.153680,0.237515}, + {0.667468,0.542703}, + {0.436021,0.493232}, + {0.563348,-1.182141}, + {-0.003835,-0.322843}, + {-0.656232,-0.176493}, + {-0.873231,0.360992}, + {0.136123,1.085468}, + {-0.510539,0.320659}, + {-0.312098,0.046118}, + {-0.421199,-1.437631}, + {-0.215423,0.161690}, + {1.307419,-0.284457}, + {-0.563560,-0.119780}, + {-1.600169,0.228748}, + {-1.421886,0.023649}, + {-0.189495,0.797349}, + {-0.165802,0.372003}, + {-0.221700,-0.219905}, + {0.534275,-0.120511}, + {-0.248351,-0.805280}, + {0.034413,0.744190}, + {-0.642193,-0.452466}, + {-0.599072,-0.680422}, + {-1.724224,0.426709}, + {-0.790234,-0.730923}, + {0.088659,-1.035535}, + {-0.275351,-0.733153}, + {-1.102652,-0.046605}, + {-0.757406,0.374197}, + {1.053567,-1.538006}, + {0.088439,-0.294301}, + {0.516494,0.576207}, + {0.909468,-0.056118}, + {0.067821,-0.686035}, + {-1.044428,0.968891}, + {0.557625,-0.843896}, + {-0.446400,0.872971}, + {0.354836,1.692407}, + {-1.197610,-0.164863}, + {1.193169,-0.074590}, + {0.564380,-0.167004}, + {1.458768,0.101084}, + {-1.659323,-0.179509}, + {-0.637948,-1.333850}, + {0.521633,-0.111609}, + {0.159952,0.245567}, + {0.557457,0.552443}, + {-0.541189,-0.269047}, + {0.178323,0.718181}, + {-0.148046,1.282756}, + {0.396217,-0.918592}, + {-1.196000,-1.302291}, + {-1.147016,1.087835}, + {-0.697901,0.120563}, + {-0.416445,-0.085792}, + {-0.575136,1.047383}, + {-0.108410,0.806852}, + {0.103438,0.190436}, + {-0.514501,0.205539}, + {-1.158432,0.436651}, + {1.837359,0.282446}, + {2.898165,0.605520}, + {-0.638636,-1.383828}, + {-0.422205,-1.159697}, + {0.439481,1.089898}, + {-0.440211,0.267563}, + {0.055757,-0.465994}, + {0.203813,-1.372535}, + {-0.369227,-0.991863}, + {0.502829,0.205971}, + {-0.168711,0.991037}, + {-0.441042,-0.002326}, + {0.323292,-0.197988}, + {0.245345,0.967783}, + {-1.106120,-0.247019}, + {-0.701892,-0.940481}, + {0.089337,0.099586}, + {-0.484300,0.499526}, + {1.270932,0.213534}, + {0.769257,0.759910}, + {-0.001945,0.582357}, + {-1.013147,0.480989}, + {0.541451,0.216142}, + {0.984260,-0.129450}, + {0.593683,-0.154239}, + {-1.381179,1.039958}, + {0.586204,-0.209757}, + {0.373642,0.368349}, + {0.322644,0.122887}, + {-0.760574,0.101006}, + {-0.369533,0.356949}, + {0.793169,0.343188}, + {-0.088122,-0.026515}, + {-0.134987,-0.622070}, + {-0.209032,0.730416}, + {-0.633736,-0.964829}, + {0.004523,0.680249}, + {-0.251489,-0.161656}, + {-1.236883,0.834379}, + {0.158569,-0.243367}, + {-0.728852,0.382640}, + {0.132910,-0.265206}, + {0.491294,1.636521}, + {-1.199529,-0.648592}, + {0.655339,-0.600365}, + {-0.088940,0.359795}, + {-0.344506,1.674392}, + {-0.074931,-0.684859}, + {-0.600775,0.495819}, + {0.546661,-0.283537}, + {0.816700,1.018373}, + {1.345432,0.093005}, + {-0.429347,-1.242027}, + {-0.195153,0.520674}, + {0.051187,-0.285221}, + {-0.157695,0.732045}, + {0.525571,0.750470}, + {-1.647741,0.695828}, + {0.729457,-1.305992}, + {-0.156214,0.275815}, + {-0.271609,-1.109912}, + {-0.884156,1.468249}, + {0.772042,-0.843589}, + {1.124620,0.188741}, + {-0.613738,-1.412528}, + {1.392810,0.203713}, + {0.414216,-0.811126}, + {0.049929,-0.015404}, + {-1.845246,0.585689}, + {0.311221,-0.174248}, + {0.322036,0.428788}, + {0.323903,-1.877702}, + {0.723333,-0.843178}, + {-1.316829,-0.626211}, + {-0.457250,-0.296858}, + {0.460788,-0.256206}, + {1.858779,0.618149}, + {1.520473,0.618939}, + {0.182818,-0.609792}, + {0.093293,-0.511200}, + {-0.796530,0.280311}, + {0.314653,0.441506}, + {0.145929,-0.171299}, + {0.989340,-0.023398}, + {0.382977,0.962526}, + {-0.234472,0.204414}, + {-0.168631,0.970621}, + {-0.359397,-0.238005}, + {-1.160084,-0.108981}, + {1.026957,0.611603}, + {0.594561,0.074036}, + {-0.703831,-0.612982}, + {-0.920383,0.335892}, + {0.779956,-0.290330}, + {0.160028,-0.530884}, + {-0.462821,-0.124964}, + {-0.021306,-0.500310}, + {-0.640899,-0.880880}, + {-0.168131,0.249834}, + {-0.181111,0.256184}, + {0.201675,-1.172094}, + {-1.107592,-0.654002}, + {0.618958,-1.100837}, + {-0.613276,-0.606221}, + {0.589475,0.793413}, + {-0.799120,-1.033400}, + {0.461943,0.180295}, + {-0.992388,0.078304}, + {0.249753,-0.552251}, + {1.140054,0.813340}, + {-0.380441,-0.427859}, + {0.140464,-0.478517}, + {-0.693361,1.211238}, + {0.156036,-0.216601}, + {0.403554,-1.008049}, + {-0.867654,1.706051}, + {-0.451461,0.206311}, + {-1.312167,-0.321273}, + {0.304323,1.501758}, + {-1.237910,0.416220}, + {-0.246990,-0.517017}, + {0.921878,1.665267}, + {0.680523,0.333206}, + {-0.250695,-0.780680}, + {0.017056,-1.185064}, + {0.833909,-0.065707}, + {-1.048432,-0.304359}, + {-0.079640,0.971286}, + {0.860137,1.148088}, + {-0.222327,0.443586}, + {0.569845,0.484530}, + {0.709289,0.527264}, + {-0.437060,1.058135}, + {0.441519,0.926605}, + {0.563086,-0.036039}, + {0.731869,1.018196}, + {0.715868,-0.555336}, + {0.083263,-0.392260}, + {-0.432371,0.271707}, + {-0.323319,0.838910}, + {-0.250503,-0.369677}, + {-0.341576,-0.046356}, + {1.703584,0.832092}, + {0.305570,0.700940}, + {0.313809,0.320696}, + {-0.232152,-0.195104}, + {-0.160822,0.383805}, + {-0.782644,0.821497}, + {0.317483,0.561839}, + {0.292112,-0.787810}, + {0.682217,-0.036886}, + {-0.234958,-0.342815}, + {1.489802,0.394218}, + {-0.780212,0.082822}, + {0.012921,1.219529}, + {-0.309442,1.310485}, + {0.805021,0.916130}, + {-0.164403,-0.490808}, + {-2.442305,0.477766}, + {0.306204,0.782185}, + {-0.642253,0.034201}, + {-0.734342,0.374860}, + {-0.534225,-0.141448}, + {-1.039800,0.243934}, + {-0.758901,0.139142}, + {0.772172,-0.221432}, + {-0.227259,-0.494436}, + {-0.797240,0.203608}, + {-0.526939,-1.003768}, + {0.604457,-0.836335}, + {-1.042733,-1.031733}, + {0.351133,-1.552611}, + {0.193510,-0.593573}, + {-0.158616,-0.000909}, + {0.477336,0.765709}, + {0.294301,-0.549073}, + {2.252452,0.421725}, + {-0.648990,-0.424124}, + {-0.564920,-0.189999}, + {-0.270131,0.078961}, + {0.772736,0.336949}, + {0.313340,-0.927747}, + {-0.573263,0.583021}, + {0.470820,-1.055331}, + {0.581432,0.212701}, + {-0.711626,0.384798}, + {0.162031,-0.175657}, + {0.742236,-0.643734}, + {0.803206,-0.132745}, + {0.613025,-0.690771}, + {0.291435,1.290752}, + {0.501168,0.658611}, + {-1.443138,-0.434044}, + {0.661785,0.822570}, + {-1.374180,0.778183}, + {0.382538,-0.753720}, + {-0.517099,0.294458}, + {0.849115,0.536175}, + {1.511322,-0.255960}, + {-0.446477,-0.510725}, + {0.351935,-0.058662}, + {-0.309950,-0.683659}, + {-0.315003,0.260157}, + {0.056499,-0.463872}, + {-0.865618,-0.396466}, + {-1.294184,0.061282}, + {1.011925,0.144531}, + {0.932576,-0.379779}, + {1.018562,0.158520}, + {-0.048017,0.052001}, + {-0.917482,-1.278635}, + {-0.098721,-0.152092}, + {1.017871,0.028110}, + {-0.268018,-0.393909}, + {0.293293,0.208300}, + {-0.580657,-0.411407}, + {1.031302,0.428409}, + {1.910617,-0.467351}, + {-0.831919,1.592028}, + {0.663417,-0.384198}, + {1.046530,-0.066088}, + {0.351843,0.024416}, + {0.571277,-0.833007}, + {-0.079296,-0.149397}, + {0.413530,-0.701706}, + {0.210312,-0.385820}, + {-0.140847,-0.268188}, + {0.139115,1.298546}, + {-1.143262,-0.441174}, + {-0.027645,0.535143}, + {-0.405058,-0.616212}, + {0.316847,-0.050931}, + {0.349966,-0.763656}, + {-0.103767,0.410991}, + {-1.917632,-0.571364}, + {-0.242820,-1.010565}, + {-0.127771,-0.753536}, + {0.604908,-0.475209}, + {0.013372,0.837038}, + {0.608820,0.079690}, + {-0.142643,-0.181203}, + {-0.281800,-0.574404}, + {1.254414,0.387417}, + {0.880432,-0.334068}, + {-0.222264,-1.359749}, + {-0.157873,0.904339}, + {-0.249764,-0.463576}, + {0.667664,0.499756}, + {-0.267900,0.673011}, + {0.640840,1.260412}, + {0.484117,-0.429452}, + {0.592152,-0.003510}, + {0.506192,-0.201848}, + {1.247699,0.171432}, + {0.353386,0.996887}, + {0.078137,-0.308590}, + {-0.018745,-1.037419}, + {1.093397,0.245313}, + {0.750051,1.199990}, + {-0.094081,-0.586781}, + {0.051596,-0.731723}, + {0.455013,1.276353}, + {-0.195394,-0.845165}, + {-0.520628,0.355488}, + {-0.688832,-0.070661}, + {0.375953,0.177470}, + {1.142021,0.354608}, + {-0.475901,0.038190}, + {0.364796,0.118211}, + {-0.675976,-0.263314}, + {-0.552894,0.232846}, + {-0.464710,-0.158232}, + {-0.258691,-0.053579}, + {0.279914,-0.374251}, + {-0.442636,-0.032047}, + {-0.444012,-0.548113}, + {-0.360146,0.089110}, + {0.490385,0.171563}, + {1.123041,-0.550139}, + {0.543533,0.079109}, + {-0.637200,-1.014626}, + {0.046707,-0.245370}, + {-0.257292,1.703984}, + {-0.071662,-0.589401}, + {0.108536,0.405153}, + {-0.344097,0.282119}, + {-0.245578,0.106487}, + {-0.401110,-1.258960}, + {0.107488,0.353920}, + {0.608643,-0.021585}, + {0.440527,-1.022432}, + {0.213325,0.187777}, + {-0.052628,-0.281017}, + {0.235210,0.007120}, + {-1.235719,0.155901}, + {-0.268724,1.113432}, + {-0.121335,0.019839}, + {0.189913,1.015487}, + {0.865889,0.697982}, + {0.197149,0.792114}, + {-0.117071,0.639035}, + {-1.306955,0.275980}, + {0.252452,0.322515}, + {-0.529397,-0.478036}, + {0.936446,-1.395706}, + {0.400833,0.024500}, + {-0.502883,-0.102895}, + {0.273595,0.753245}, + {-0.343074,0.091902}, + {0.304226,-0.867240}, + {-0.180509,-1.078705}, + {-0.205455,0.858649}, + {0.774539,0.517635}, + {-0.823959,0.593452}, + {0.732369,0.153099}, + {0.672588,-0.633125}, + {0.002290,-0.941901}, + {0.176569,-0.579932}, + {0.171845,-0.870413}, + {-0.293425,0.175049}, + {-0.137718,0.217686}, + {1.044936,0.061606}, + {-0.758815,0.807341}, + {-0.336751,-0.164385}, + {1.008626,0.256348}, + {-0.723706,0.047971}, + {-0.050905,-0.353985}, + {0.390970,-0.158517}, + {0.119335,0.109838}, + {-0.041174,-0.673703}, + {-0.556070,-0.401985}, + {-0.509192,0.543375}, + {0.625149,-0.084801}, + {-0.744969,0.178757}, + {-0.163163,0.168014}, + {-0.749477,0.577796}, + {-0.154530,0.089817}, + {0.437073,-0.946214}, + {-0.116608,-1.099246}, + {0.666880,0.264435}, + {0.474793,-0.843138}, + {0.617247,0.069116}, + {0.294487,0.030065}, + {-0.337986,0.559117}, + {-0.227776,0.882621}, + {1.101572,-1.080786}, + {0.070565,-0.664384}, + {-0.451764,-0.457432}, + {-0.576313,-0.841245}, + {0.068010,0.274456}, + {-0.710972,1.045372}, + {-0.080175,-0.636644}, + {-1.167785,-0.908857}, + {-0.040623,0.027782}, + {2.470891,-0.352323}, + {0.225188,-0.216579}, + {-0.911285,-0.883839}, + {1.575339,0.857027}, + {-0.480260,0.028266}, + {-1.400611,-0.208040}, + {-0.607262,0.315214}, + {-1.413554,-0.086775}, + {-0.078748,0.091694}, + {-0.823326,-0.045219}, + {0.179688,0.157220}, + {0.503945,-0.069413}, + {0.384609,1.810637}, + {-0.036682,0.018567}, + {-0.630811,-0.597114}, + {-0.672791,-0.931285}, + {1.222804,1.107029}, + {-0.313392,0.591602}, + {1.095544,1.771690}, + {-0.798560,1.745435}, + {1.543951,0.832816}, + {0.126556,1.114287}, + {0.213435,1.321216}, + {-0.224136,-1.359183}, + {1.477972,-0.350192}, + {-0.077844,-0.795493}, + {-0.231997,-0.564458}, + {0.801618,-0.460815}, + {-1.183569,1.681266}, + {0.800365,-1.537642}, + {-0.329589,-0.279386}, + {0.146069,-0.294189}, + {0.197825,0.827717}, + {-0.649584,1.974452}, + {-1.281819,1.044606}, + {0.908785,-0.571095}, + {1.096563,-0.008991}, + {1.743241,0.314216}, + {0.653207,0.687347}, + {-0.304444,-0.200533}, + {0.317770,0.204985}, + {1.680031,-1.270921}, + {0.013470,0.101117}, + {0.035178,0.125471}, + {-0.496304,-1.027426}, + {-0.803857,-0.277048}, + {0.785028,-0.689768}, + {0.339297,0.190250}, + {0.464936,-0.560609}, + {-0.775980,-0.128567}, + {-0.724656,0.021571}, + {0.116261,-1.049885}, + {-0.856403,0.530206}, + {0.067380,-0.690871}, + {-0.101626,0.190740}, + {-0.230450,0.733674}, + {1.510300,-0.232611}, + {-0.558900,0.743672}, + {0.328636,-0.130287}, + {0.037062,0.836783}, + {0.228297,-1.114284}, + {0.591880,-0.742029}, + {1.016332,0.389831}, + {0.501144,0.220041}, + {-0.682226,0.173825}, + {0.194447,-0.220124}, + {-0.201636,0.483213}, + {-0.346227,0.693268}, + {0.089963,0.776428}, + {0.784136,-0.216991}, + {1.351173,0.460213}, + {0.948340,0.389235}, + {0.856649,-0.280823}, + {-0.281458,-0.467549}, + {0.712758,-0.473551}, + {-0.113624,-0.180662}, + {0.827903,-0.935301}, + {0.384431,0.183861}, + {-0.116835,0.143097}, + {0.437151,0.673442}, + {-0.259116,1.211244}, + {-0.832708,0.005765}, + {0.579745,-0.839210}, + {-0.272578,0.846526}, + {0.006319,-0.191822}, + {-0.543038,-2.053956}, + {0.577765,-0.226179}, + {-0.864414,0.264531}, + {-0.081640,-0.316889}, + {-0.733387,-0.029103}, + {-0.856447,0.102918}, + {1.118355,-0.516612}, + {-0.953002,0.614206}, + {0.317643,0.733096}, + {-0.268814,0.548796}, + {1.819432,-1.055275}, + {-0.311760,0.400650}, + {0.198343,-1.247555}, + {-0.027410,0.778872}, + {-0.508919,0.444286}, + {-1.171694,0.019824}, + {1.248879,0.012588}, + {-0.703571,-1.267101}, + {-0.351630,0.717535}, + {0.712341,0.238149}, + {-0.921778,0.823704}, + {0.183744,-0.465176}, + {0.967624,0.110433}, + {0.638384,-0.733964}, + {0.023469,-0.341078}, + {0.457953,0.148002}, + {-0.387642,0.886603}, + {-0.069635,-0.580919}, + {-0.059943,-1.223428}, + {0.912288,0.393697}, + {0.642983,0.930647}, + {0.910222,0.601928}, + {-0.445410,-0.667141}, + {-1.572064,0.279244}, + {1.978238,0.802084}, + {-0.397479,-0.061574}, + {0.410751,0.408608}, + {-0.708602,-0.186290}, + {-0.230716,0.939863}, + {0.243815,0.220266}, + {0.510986,0.986593}, + {-0.697529,0.649296}, + {-0.586676,-0.694978}, + {1.365805,0.060623}, + {0.669724,0.191354}, + {1.712433,0.794664}, + {1.420112,0.316341}, + {0.241010,0.642880}, + {-0.543402,-0.040763}, + {0.566228,-0.271359}, + {-0.161257,0.334876}, + {0.599455,1.548617}, + {-0.164632,-0.789523}, + {-0.166458,-1.089323}, + {-0.603273,-0.989075}, + {0.528595,0.451579}, + {-0.312701,0.087580}, + {0.052067,-0.329935}, + {-0.422394,-0.867374}, + {0.543689,0.209453}, + {-0.559684,-1.177563}, + {0.467575,-0.097401}, + {0.369629,-0.501474}, + {0.404819,0.203655}, + {1.147670,0.855509}, + {-0.639961,0.122152}, + {0.634182,-0.589714}, + {-1.383792,0.081240}, + {-0.762136,-0.308434}, + {0.795235,-0.419563}, + {-0.464381,1.585393}, + {1.078462,0.518624}, + {0.096101,-0.470606}, + {-1.483047,-0.692461}, + {-0.298531,0.776764}, + {0.119121,-0.885261}, + {0.117578,0.531321}, + {-0.917483,1.214456}, + {0.103637,-0.543026}, + {-0.029330,-0.442023}, + {0.667382,-0.559059}, + {0.454800,1.315120}, + {-0.121242,1.135188}, + {-0.488542,0.095236}, + {1.029647,0.289141}, + {-0.103825,-0.536353}, + {0.328875,0.038776}, + {0.506639,-0.670018}, + {0.579004,0.162704}, + {0.390291,0.091227}, + {-1.290292,-0.652858}, + {-0.408826,0.011857}, + {0.767200,0.888858}, + {1.439873,0.872966}, + {1.146577,0.749942}, + {0.081693,-0.305140}, + {-0.129388,1.025387}, + {-0.634484,-0.843138}, + {0.172444,0.005313}, + {-0.657469,-0.089850}, + {-0.760529,-0.081906}, + {-0.426315,-1.084558}, + {-0.979330,-0.160143}, + {-0.044730,0.574946}, + {-1.527934,0.139190}, + {-0.115705,-0.468978}, + {0.394550,-0.231006}, + {0.586208,-0.529691}, + {0.437290,-1.153886}, + {0.808557,1.623821}, + {-1.472277,0.306073}, + {0.113523,-0.990164}, + {-0.436942,-0.152251}, + {0.906011,-0.455300}, + {-0.137609,-0.290251}, + {0.467302,-0.253409}, + {-0.677977,-0.643365}, + {-0.258209,0.117683}, + {0.237770,0.579862}, + {0.361357,0.184037}, + {-0.768527,-0.431966}, + {-0.374232,0.070814}, + {-0.271652,0.701989}, + {-1.650963,1.243199}, + {0.817481,-0.130520}, + {0.093297,1.182986}, + {-0.740615,0.357099}, + {0.190737,1.086730}, + {-0.326431,-0.458982}, + {0.123048,1.118810}, + {-0.006755,0.087656}, + {0.321461,0.525849}, + {-0.567447,-0.412553}, + {-0.516657,-1.118277}, + {-0.343009,-0.119105}, + {0.491223,1.372952}, + {0.179821,0.053473}, + {-0.238648,0.029409}, + {0.222945,0.156960}, + {0.310281,0.281777}, + {-0.992198,-0.975749}, + {-0.432296,-0.289497}, + {-1.121582,-0.621216}, + {-0.079473,-0.549632}, + {0.673944,0.250442}, + {-1.170647,0.816044}, + {0.009351,-0.038545}, + {0.202295,0.376773}, + {0.207996,-0.767330}, + {-0.683128,0.462706}, + {0.363351,0.668791}, + {-0.236248,0.234738}, + {0.236777,0.097248}, + {-0.079751,-0.322131}, + {0.422070,0.380715}, + {0.465275,-0.117293}, + {0.914394,0.070100}, + {-0.328927,-1.087863}, + {0.009725,-0.714301}, + {0.694105,-0.275872}, + {0.038939,-1.079395}, + {0.761932,1.210910}, + {0.753418,0.067086}, + {-0.215663,-0.159486}, + {-0.187086,0.872605}, + {-0.142958,0.220448}, + {0.273894,-0.555399}, + {-0.650689,-0.402346}, + {0.897581,0.328779}, + {-0.338363,1.002994}, + {-0.328070,0.563372}, + {-0.550288,0.856980}, + {-0.977701,-1.482775}, + {2.446075,-0.651519}, + {0.653114,0.245545}, + {0.481750,1.570437}, + {-0.925317,0.286313}, + {0.723354,0.222318}, + {0.684692,-1.247687}, + {-0.189216,-0.475236}, + {-0.640211,0.212953}, + {-0.053677,0.669794}, + {-0.330972,-0.472563}, + {0.194653,-1.044945}, + {-0.541368,-0.021547}, + {0.683410,-0.394597}, + {0.106472,-0.419672}, + {0.760465,0.199993}, + {-1.179110,0.112292}, + {0.055066,0.377698}, + {0.909270,-1.560735}, + {0.401362,1.350247}, + {0.187297,-0.004588}, + {-0.039523,1.088870}, + {-0.268140,0.216489}, + {0.164274,1.288643}, + {-1.308630,0.008255}, + {-0.828187,0.539431}, + {0.171691,1.194553}, + {0.299761,-0.052910}, + {1.722756,-0.697963}, + {-0.251873,-0.722015}, + {0.079270,-0.072157}, + {-0.932151,-0.304344}, + {0.207095,0.052868}, + {1.088320,-1.003559}, + {0.850424,-0.709885}, + {0.649069,-1.639259}, + {0.383301,-0.409913}, + {0.170324,-0.407571}, + {0.752730,0.520546}, + {0.243588,0.101737}, + {-0.487145,0.946709}, + {-0.484323,-0.380167}, + {0.224305,-0.272019}, + {0.059913,-0.726160}, + {-0.285819,-0.028296}, + {-1.484445,-0.022900}, + {0.166353,0.255178}, + {-1.161566,0.903064}, + {0.494498,0.797073}, + {-0.297146,-0.147285}, + {-0.236315,0.665692}, + {-0.085679,0.279219}, + {-0.870393,0.141386}, + {-0.014293,-0.542938}, + {-0.365326,0.980887}, + {0.203701,-0.711214}, + {-0.407262,0.445812}, + {1.421543,-0.606156}, + {1.347169,0.048977}, + {-1.433734,0.817061}, + {1.146370,-0.793382}, + {0.319925,-0.854738}, + {0.438860,2.145962}, + {1.166341,-0.365637}, + {0.683141,0.055309}, + {-1.130258,0.470611}, + {-0.142316,0.723606}, + {-1.167357,0.251633}, + {-0.061046,-0.144651}, + {-0.028701,-0.462089}, + {-0.018132,0.169646}, + {-0.671335,0.900461}, + {0.116801,-0.593090}, + {0.085282,-0.067586}, + {-0.411836,0.548411}, + {0.260672,-1.297764}, + {-0.232586,-0.692774}, + {-0.797251,0.519497}, + {0.493274,0.128724}, + {-0.452326,-0.942666}, + {-1.259305,0.165846}, + {-0.397245,-0.650621}, + {-0.827247,-0.027941}, + {0.400771,0.899915}, + {-1.510673,-0.552102}, + {-0.016118,-1.664885}, + {0.468835,-0.256144}, + {-0.095802,-0.449476}, + {-0.334430,-1.538678}, + {0.005072,0.053176}, + {0.276647,-0.648527}, + {0.087667,0.067103}, + {0.853516,0.367063}, + {0.694817,-0.772811}, + {0.402106,-0.764670}, + {0.563088,0.747578}, + {-0.268367,1.277181}, + {-0.749042,-0.032805}, + {1.254513,0.221049}, + {-0.610276,0.267629}, + {-0.316447,1.420839}, + {-1.922798,-0.390022}, + {0.556385,0.484709}, + {0.027270,0.139172}, + {-0.726247,-0.156295}, + {-0.120574,1.445949}, + {0.876597,0.011245}, + {-0.056240,-0.228567}, + {-0.008902,-0.187852}, + {0.322713,-0.491207}, + {-0.362863,0.473453}, + {-0.712861,-0.365141}, + {-0.742098,-0.136880}, + {0.111748,1.005100}, + {-0.464041,-0.288319}, + {-0.591913,0.416452}, + {0.517190,0.391430}, + {1.195625,0.788324}, + {0.410152,0.138649}, + {-1.371791,1.228180}, + {-0.101232,0.141153}, + {-0.710496,-0.154048}, + {-0.808498,-0.383805}, + {-0.018569,-0.202316}, + {1.184777,-1.079341}, + {-1.306705,0.345682}, + {-0.154691,0.011843}, + {0.661710,0.500578}, + {-0.343929,0.779614}, + {0.543034,1.214597}, + {-1.348330,0.139834}, + {0.117324,0.850516}, + {-0.108573,-0.567512}, + {-0.543670,-0.506252}, + {0.763259,-0.023357}, + {-0.124683,-0.687557}, + {-0.298014,0.912602}, + {0.205308,0.618330}, + {1.529908,-0.085205}, + {0.956008,-0.652740}, + {-0.068925,-1.092457}, + {-0.637354,-0.419358}, + {1.268680,-0.243073}, + {-0.136088,-0.425454}, + {-1.136538,1.501422}, + {-0.865629,0.163418}, + {1.489446,-0.425663}, + {-0.176186,-0.697113}, + {0.053611,-0.207498}, + {0.453244,0.901965}, + {0.045845,1.465057}, + {0.863726,-0.540462}, + {-0.043928,0.683414}, + {0.115106,-1.021701}, + {0.247975,0.286382}, + {0.801124,0.684719}, + {-0.492425,-0.671975}, + {-0.738085,-0.372832}, + {0.246402,0.622964}, + {1.316755,0.124231}, + {0.061890,0.559458}, + {-0.016314,0.518483}, + {0.065088,-0.564502}, + {-1.075867,-0.098767}, + {0.178467,0.098481}, + {-0.008945,-0.802168}, + {-0.811757,0.814761}, + {1.059392,-0.846953}, + {-0.343747,0.373055}, + {0.758821,-1.176281}, + {-0.647837,-0.951149}, + {-0.817682,0.112162}, + {1.173084,-0.558803}, + {-0.604647,0.144875}, + {-0.132176,0.361366}, + {-0.668269,0.061026}, + {0.246659,0.201436}, + {1.226810,-0.619724}, + {-0.468072,-0.019591}, + {0.966661,0.482886}, + {0.583820,0.926226}, + {0.852546,0.572840}, + {-0.649207,-0.545958}, + {0.255183,-0.155787}, + {-0.025898,0.078114}, + {-0.201309,-0.225492}, + {0.525905,0.410706}, + {0.177865,1.477507}, + {2.457610,-1.850447}, + {0.151478,1.000617}, + {1.360119,-0.754828}, + {0.157215,-0.492841}, + {-0.566692,1.324305}, + {0.620154,0.754623}, + {0.074979,-0.860552}, + {-0.222454,0.021736}, + {-1.408236,-1.307141}, + {-0.544968,0.463417}, + {-0.595774,-0.743040}, + {0.559990,0.480234}, + {-1.168589,-0.203965}, + {0.281098,-0.105368}, + {0.641682,-0.360390}, + {0.836257,-0.373430}, + {-0.805041,0.752649}, + {0.441466,-0.719064}, + {-1.832253,1.143759}, + {-0.247786,-0.438656}, + {-0.870375,0.850503}, + {-0.375699,0.159219}, + {-1.124725,0.793712}, + {-0.723709,0.342564}, + {-0.633437,-0.558060}, + {-0.135905,-0.355088}, + {-2.183977,-0.007379}, + {1.116177,0.159945}, + {1.490166,0.480268}, + {0.164575,-0.726484}, + {-0.520145,0.297363}, + {-0.641292,-0.643205}, + {-0.067693,-0.128819}, + {0.413410,0.031469}, + {-0.760742,1.425786}, + {0.085627,-0.041021}, + {0.114922,0.384508}, + {-0.225939,-0.065478}, + {0.023267,1.057989}, + {1.470100,-0.598823}, + {0.723707,-1.348607}, + {0.035084,-1.125010}, + {-0.454672,0.069253}, + {0.809724,-0.071756}, + {0.083234,0.221237}, + {-0.377449,1.091443}, + {0.402802,0.357787}, + {-0.684853,-0.705112}, + {-0.625051,-0.136144}, + {1.018437,-0.307444}, + {-0.339611,0.577613}, + {-0.559291,-0.331159}, + {-0.661887,0.404697}, + {-0.412244,-0.877878}, + {-0.591570,-0.072583}, + {-0.437359,0.868594}, + {0.926766,-0.479234}, + {-0.939874,0.960508}, + {-0.216226,-2.190387}, + {0.373954,-0.239234}, + {0.735172,-0.368192}, + {0.925092,0.361395}, + {0.238858,-1.067577}, + {0.211254,0.055615}, + {0.067811,-0.232802}, + {-0.256948,-1.231779}, + {-0.231535,-1.085856}, + {1.027191,0.635764}, + {-1.039482,-0.284762}, + {0.802325,0.903988}, + {-0.407235,-0.165035}, + {-0.645411,0.570917}, + {-0.631895,-0.866667}, + {-0.413516,-0.479763}, + {-0.327054,0.889851}, + {-0.660647,1.168247}, + {-0.054201,-0.157478}, + {0.021347,1.157376}, + {-0.281979,0.310791}, + {1.078613,-0.998599}, + {0.978329,-0.316584}, + {0.227859,-0.057813}, + {0.879319,1.029731}, + {0.007877,-0.338237}, + {-0.023282,0.856635}, + {0.802926,0.658965}, + {-0.654637,-0.321326}, + {-0.486953,-0.278102}, + {0.399871,-0.703921}, + {0.137966,-0.143648}, + {-1.382161,-0.633032}, + {0.994994,0.454662}, + {-0.563795,-0.296766}, + {0.395332,-0.055457}, + {0.879708,-0.963628}, + {-0.321128,-0.149853}, + {-0.072034,-0.491397}, + {0.094058,-0.301073}, + {0.846232,0.232090}, + {0.286858,-0.066615}, + {-0.642041,0.413146}, + {0.464097,0.354731}, + {0.102751,1.804440}, + {0.377422,0.609243}, + {0.654797,-0.435679}, + {0.472210,-0.209745}, + {-0.641060,-0.154395}, + {-1.512229,0.312514}, + {-0.668791,-1.337721}, + {-0.568657,-0.277971}, + {0.842358,1.337541}, + {-0.633354,0.123400}, + {-0.236926,1.438454}, + {-0.524131,0.461021}, + {-0.027427,0.041582}, + {-0.630328,-0.951639}, + {0.467582,-0.775196}, + {-0.645079,-0.410044}, + {1.050603,1.068060}, + {-0.144830,0.117018}, + {-0.428974,-0.059010}, + {0.343620,-1.481687}, + {-0.117022,0.802153}, + {0.371381,0.568841}, + {-0.713658,-0.166011}, + {-0.262867,-0.772913}, + {1.097425,0.118692}, + {-0.682499,0.040285}, + {-0.088318,-0.101135}, + {0.596149,0.381073}, + {-1.594536,0.711970}, + {-0.520008,0.491471}, + {0.042324,0.355744}, + {-0.736938,-0.529835}, + {-0.648401,0.855958}, + {-0.338084,-0.351747}, + {0.672677,0.892670}, + {0.361092,-0.678357}, + {2.079292,0.329758}, + {0.234354,0.449063}, + {0.246854,-0.747312}, + {-0.254858,-0.378022}, + {0.391048,0.078144}, + {-1.322392,1.109864}, + {-0.392252,1.133680}, + {0.317787,-1.119124}, + {-1.125500,0.590658}, + {0.651714,-0.019948}, + {-0.188271,-0.587491}, + {0.512942,0.238828}, + {-0.089800,0.880141}, + {-0.020669,-0.745277}, + {-0.393933,0.425016}, + {-0.706385,-0.337056}, + {-0.072274,-0.466942}, + {1.361972,1.600456}, + {-0.536411,0.143837}, + {-1.315825,-0.345262}, + {0.586610,-0.105453}, + {0.361835,-0.310457}, + {0.162424,-0.455937}, + {-0.266229,0.468748}, + {0.608348,0.237188}, + {-0.338820,0.469070}, + {0.825241,-0.122825}, + {-1.296042,-1.106153}, + {0.782186,1.012854}, + {0.546063,0.108291}, + {-0.675564,-0.118591}, + {0.959435,-0.617240}, + {0.253049,0.642651}, + {-0.717033,0.421230}, + {0.065648,-0.236145}, + {0.787941,-0.725300}, + {-0.214982,-0.330445}, + {-0.005308,0.843855}, + {0.569761,-1.404632}, + {-0.847684,0.288276}, + {-1.351673,0.398555}, + {-0.653094,0.359977}, + {-0.451479,-0.175236}, + {0.250162,1.082506}, + {1.720280,-0.173550}, + {0.043283,0.495568}, + {-0.467075,-0.286571}, + {-0.516911,0.372184}, + {-0.644850,0.027566}, + {0.412044,-0.228306}, + {0.441079,-0.818598}, + {0.597972,0.496661}, + {-0.751802,0.592583}, + {-0.172332,-0.063214}, + {-0.486652,0.453796}, + {-0.789048,0.001233}, + {-0.037757,-0.424086}, + {0.610775,0.085934}, + {1.357820,0.385392}, + {0.772897,0.561994}, + {-0.547971,0.343509}, + {-0.305912,-0.659965}, + {-0.150391,0.051106}, + {-0.659545,0.811236}, + {1.156720,-1.403491}, + {0.250035,0.752173}, + {-1.033130,1.467901}, + {-0.081366,0.567584}, + {-0.189016,0.757573}, + {-0.062907,0.109766}, + {0.519387,-0.073148}, + {0.852716,1.480028}, + {-0.332826,-0.335259}, + {0.699783,1.177709}, + {-1.501976,-0.869618}, + {0.011903,0.566373}, + {0.240645,0.815848}, + {0.022006,0.778674}, + {-0.311565,-0.232334}, + {0.412026,0.252313}, + {-0.541887,0.196055}, + {1.576042,1.850318}, + {0.801784,0.173800}, + {-0.910855,-0.685674}, + {2.049228,-0.222369}, + {-0.354029,1.030187}, + {0.323162,-0.505727}, + {-0.125605,-0.829970}, + {0.512979,0.187703}, + {-1.013040,-1.303101}, + {0.013997,0.121938}, + {0.058118,0.257561}, + {-0.258403,0.395440}, + {-0.670940,1.122375}, + {-1.432201,-0.379968}, + {-0.814277,-0.812373}, + {-0.559929,0.609962}, + {0.363925,0.849823}, + {0.621028,-0.837635}, + {-0.240268,-0.472030}, + {0.072362,1.038756}, + {0.227193,-0.732684}, + {-0.658857,0.208278}, + {-1.534011,0.239111}, + {-0.154706,-0.173726}, + {-1.368605,-1.607920}, + {0.111885,0.436946}, + {-0.125141,1.156338}, + {-0.468032,-1.283854}, + {-0.095271,-1.024174}, + {-0.298550,0.045489}, + {0.683411,0.029385}, + {0.549679,-0.031146}, + {0.498454,-0.530899}, + {-0.477430,0.323974}, + {0.791994,0.089182}, + {0.361261,0.618991}, + {0.562423,0.394355}, + {0.244952,0.570213}, + {0.006620,2.036926}, + {-1.886519,-0.587302}, + {0.648386,0.606893}, + {-1.081200,1.050888}, + {0.376747,-0.048129}, + {-0.587935,0.543545}, + {1.449966,-0.385258}, + {0.268650,1.464783}, + {-0.781591,-0.348916}, + {0.585803,-0.636496}, + {0.978237,1.172719}, + {0.668928,-0.068851}, + {-1.466985,0.045779}, + {-1.179510,1.101713}, + {0.904752,0.497169}, + {0.097355,-0.293205}, + {-0.172173,-0.181016}, + {-0.501643,-0.080642}, + {0.581053,-0.218558}, + {-0.895757,0.375873}, + {-0.483364,0.120657}, + {-0.423777,0.643739}, + {0.124416,-1.106641}, + {-1.457878,-0.321679}, + {0.659524,-0.761259}, + {0.364923,-0.166847}, + {-1.388401,-0.199159}, + {1.588209,-0.604498}, + {1.309079,-0.352915}, + {-0.347980,0.189430}, + {0.911844,-1.078087}, + {0.278893,-0.835737}, + {-0.982551,-0.254161}, + {-0.431526,0.412463}, + {-0.477069,0.486325}, + {0.573694,0.715416}, + {1.143420,2.072284}, + {-0.857854,-0.906373}, + {-0.297631,0.413436}, + {-0.467294,-0.331288}, + {0.982162,-0.975864}, + {0.285199,0.043006}, + {-0.812961,0.340233}, + {1.431540,1.133126}, + {0.102308,0.190565}, + {1.476116,0.637898}, + {0.434583,0.580426}, + {0.046831,-0.794218}, + {-0.341083,0.192367}, + {-0.279135,-0.299876}, + {0.296558,0.569512}, + {0.147472,0.329278}, + {-1.388735,1.020627}, + {0.602259,0.386248}, + {-0.528118,1.134901}, + {-0.181877,-0.564929}, + {-0.553234,0.469098}, + {-1.455098,-0.185264}, + {0.800772,0.396759}, + {-1.234805,0.736313}, + {0.761554,-0.175533}, + {-0.650272,-1.001478}, + {0.515606,-0.160728}, + {1.523529,0.422419}, + {0.327472,0.391494}, + {0.747341,0.126178}, + {0.796575,0.604781}, + {-0.579325,0.723723}, + {0.188695,-0.270173}, + {0.608637,-0.176246}, + {0.357106,-0.187142}, + {-0.476938,0.579994}, + {-0.159003,-0.546717}, + {0.805633,0.436189}, + {-0.000267,-0.078362}, + {0.388497,0.613782}, + {-0.616919,0.325909}, + {-0.139824,0.506477}, + {-0.357327,-0.352587}, + {0.465315,0.517060}, + {-0.402298,0.401676}, + {-1.052840,1.068351}, + {0.089254,-0.088566}, + {1.553712,-0.490081}, + {0.796169,0.313496}, + {0.221044,0.079029}, + {0.735658,0.515442}, + {0.088796,-0.414440}, + {0.177135,0.018821}, + {-0.136482,0.116556}, + {0.998341,1.750061}, + {1.539176,-0.444703}, + {-0.005825,-1.174685}, + {-0.546142,-1.060067}, + {-0.238276,-0.411240}, + {1.270839,1.815292}, + {0.238926,-0.014318}, + {-0.433391,1.175325}, + {0.365434,0.514461}, + {0.549538,-0.875982}, + {-0.052031,0.088336}, + {0.056105,0.755373}, + {-0.739169,1.345512}, + {0.022259,0.310272}, + {-0.143530,0.226380}, + {0.377260,-2.217078}, + {1.266910,0.770192}, + {-1.430207,-0.389470}, + {0.373033,0.954533}, + {-0.032998,0.458503}, + {0.033109,0.876798}, + {1.254053,-0.868324}, + {-0.750205,-1.243251}, + {0.178780,-0.059218}, + {-0.138437,-1.864862}, + {-0.057342,0.724688}, + {0.255896,1.443441}, + {0.554522,-0.149032}, + {0.535395,0.518631}, + {0.178084,-1.333335}, + {-1.146268,-0.525930}, + {-0.444915,-0.179534}, + {-1.827258,0.610506}, + {-0.970571,0.433014}, + {-0.851848,-1.408017}, + {-0.010547,0.425406}, + {-0.438689,-0.641632}, + {0.982537,0.523425}, + {0.194053,0.040519}, + {-2.164144,-0.712796}, + {-0.286878,-1.289071}, + {-1.189324,0.191043}, + {-0.178947,0.227410}, + {0.543007,-0.209633}, + {-0.504561,0.558697}, + {-0.476418,-0.360136}, + {-0.066349,0.311321}, + {0.205228,0.537992}, + {-0.431381,0.691561}, + {0.373215,-0.698683}, + {-0.021947,-0.774605}, + {0.587365,-1.799103}, + {0.808319,-0.623221}, + {1.089104,0.969406}, + {-0.309144,0.148429}, + {-0.370805,0.696824}, + {0.232746,0.498690}, + {0.207694,0.370303}, + {-0.921240,-1.399620}, + {-0.553996,0.380382}, + {-0.578575,0.448331}, + {0.429058,-0.213727}, + {-0.710646,-0.159683}, + {1.620601,0.839856}, + {-0.118776,0.365243}, + {1.473897,0.572852}, + {0.186774,0.121951}, + {0.610082,-0.416502}, + {-0.680911,0.926587}, + {-0.677998,0.322929}, + {0.386026,0.195354}, + {0.127726,0.580091}, + {0.103026,-0.655300}, + {-0.285589,0.668215}, + {-0.304495,0.862677}, + {0.676639,-0.908045}, + {-0.101844,-1.374433}, + {0.111932,-0.315504}, + {-0.786232,0.096354}, + {0.412804,1.171453}, + {0.242855,0.419671}, + {-1.122453,0.072119}, + {-0.954008,-1.360665}, + {0.490884,-0.394485}, + {1.407058,-0.197984}, + {0.516526,-0.041076}, + {-0.356944,0.119194}, + {0.114765,-0.432646}, + {-0.616070,-0.812770}, + {-1.283144,0.352879}, + {-0.675260,0.248547}, + {0.037469,0.111532}, + {1.808690,0.215876}, + {-0.262605,0.390434}, + {-0.528473,-0.590598}, + {0.067823,1.025179}, + {-0.134779,0.388853}, + {-0.856184,-0.137929}, + {-1.322880,-0.587829}, + {0.255339,0.957455}, + {0.691181,0.120283}, + {-0.138113,-0.681550}, + {-0.839258,-0.647184}, + {0.717937,-0.342172}, + {-0.002496,0.085833}, + {0.066570,0.376295}, + {-1.184694,-0.306608}, + {-0.765986,-0.240214}, + {-1.484250,-0.148429}, + {-0.381439,1.124766}, + {-0.350007,0.336370}, + {0.235697,-1.183933}, + {1.443619,0.581121}, + {0.491068,-0.099921}, + {0.093451,0.902716}, + {0.505893,1.686718}, + {-0.385501,-1.017724}, + {-0.541630,0.466243}, + {0.186522,-0.926013}, + {-0.447201,-0.317000}, + {-0.142966,-1.103298}, + {0.144505,-0.006342}, + {1.660683,-0.528652}, + {-0.863812,-0.656971}, + {0.373327,-0.447680}, + {0.064399,-0.006573}, + {0.273959,-0.067186}, + {0.158321,-0.040345}, + {-0.809976,1.524938}, + {0.265150,0.968352}, + {-0.561451,0.122076}, + {-0.238906,0.602495}, + {-0.682023,-1.518610}, + {0.226352,0.239321}, + {0.249679,-0.450287}, + {1.424126,-0.421314}, + {0.347601,-1.256083}, + {-0.161817,-0.558341}, + {-0.698010,1.392321}, + {0.854525,-0.180275}, + {-0.607136,-0.163008}, + {-0.201352,-0.463324}, + {0.177265,0.445976}, + {-1.139061,-0.711736}, + {0.071346,0.954147}, + {-0.007381,-0.234975}, + {0.122223,0.301816}, + {0.744879,-0.147205}, + {0.885961,0.569310}, + {-0.584466,0.194479}, + {-0.356190,-0.486432}, + {-0.604637,0.312954}, + {-0.571192,0.009307}, + {-1.645607,-1.013357}, + {0.767907,0.911892}, + {-0.292811,-0.436490}, + {0.754294,-0.258061}, + {-0.020915,-0.553060}, + {0.513940,0.367752}, + {-0.039909,-0.308901}, + {-0.426255,-0.427997}, + {0.031096,-0.350317}, + {0.183359,0.337084}, + {-1.442484,0.931023}, + {0.285229,0.747264}, + {1.284922,-0.542352}, + {-0.580213,-0.744180}, + {-1.258930,1.722668}, + {-0.259699,-0.002504}, + {0.488400,0.053418}, + {0.626716,-0.067078}, + {-0.262059,-0.661936}, + {-0.826681,1.076488}, + {-0.313348,0.452737}, + {0.751086,-0.240226}, + {-0.201071,-0.293798}, + {0.498236,0.533344}, + {0.445915,-0.498216}, + {-0.476964,-0.992134}, + {0.124767,0.528058}, + {-0.175549,0.108257}, + {-0.983469,1.220194}, + {-1.365000,0.620389}, + {0.126352,1.586583}, + {0.698377,-0.366504}, + {-0.972605,-0.070712}, + {-0.173680,0.387337}, + {-1.296066,-0.326749}, + {0.074632,1.409292}, + {0.273771,0.567147}, + {1.247218,0.334758}, + {0.109021,0.319268}, + {0.782710,0.115378}, + {0.481173,-0.827708}, + {-0.539717,-0.877906}, + {0.746934,1.005647}, + {-0.621987,0.129283}, + {0.413268,0.131652}, + {-1.265124,0.249034}, + {-0.352113,0.553744}, + {0.639651,-0.490536}, + {-0.207383,-0.516105}, + {0.300740,0.271305}, + {-0.778036,-0.864931}, + {0.237860,-0.011126}, + {0.147210,0.427180}, + {-0.038382,1.535662}, + {-1.191819,0.386445}, + {0.553605,0.469841}, + {0.060159,0.320722}, + {0.628356,0.798504}, + {0.141494,0.747546}, + {0.356586,-0.813978}, + {-0.526579,0.129332}, + {-0.142047,-0.183652}, + {0.142306,-1.230296}, + {0.163303,0.973984}, + {0.741797,-0.963034}, + {-0.953978,1.630063}, + {0.782292,0.927006}, + {0.269555,-0.483264}, + {-0.225813,-0.846876}, + {-0.147398,0.037824}, + {-1.151203,0.182452}, + {-0.051871,1.116905}, + {0.618385,0.772501}, + {-0.806309,-0.676225}, + {0.314484,0.962604}, + {-0.877810,0.165547}, + {-0.278775,0.828332}, + {-0.193032,0.607956}, + {0.481850,0.406728}, + {0.189260,0.564026}, + {0.101573,-0.153646}, + {0.141078,0.577827}, + {0.442071,-0.654711}, + {-0.497890,-0.069597}, + {-0.896127,0.092677}, + {1.379386,-1.739856}, + {0.049072,0.076701}, + {-0.000871,-0.137247}, + {-1.069033,1.216272}, + {1.305900,-1.105981}, + {-0.038746,0.948692}, + {0.097514,-0.182169}, + {0.504969,0.301159}, + {-0.070645,-0.338149}, + {-0.648749,1.116034}, + {0.019086,0.366446}, + {0.061191,-0.513735}, + {-0.412078,0.343295}, + {-1.006799,-0.785297}, + {0.728767,-0.194047}, + {-0.294156,0.632371}, + {-0.674312,-1.092083}, + {-0.662882,-0.689872}, + {-1.090220,-0.610777}, + {0.103421,0.205088}, + {0.654995,-0.196212}, + {0.811050,-1.173118}, + {0.047948,0.235323}, + {0.657132,0.634237}, + {0.807551,0.684801}, + {0.066354,-0.968132}, + {-0.109448,-0.718459}, + {-1.570057,0.383556}, + {1.177749,-0.333918}, + {-0.076754,-0.018363}, + {1.147423,0.535147}, + {-1.099482,-1.047722}, + {0.202256,0.611263}, + {0.355965,0.186135}, + {0.638869,0.248176}, + {0.423701,0.167180}, + {0.140065,-1.046322}, + {-0.128061,0.389472}, + {-0.073327,-0.620858}, + {0.551739,-0.001060}, + {-0.010351,-0.343739}, + {0.273292,0.077655}, + {0.018582,-0.649334}, + {0.858083,-0.239483}, + {0.434152,-0.516887}, + {-1.191059,0.970440}, + {-1.078976,-1.186674}, + {1.220491,0.830858}, + {0.392834,-0.620787}, + {0.570976,1.188011}, + {0.659424,-0.514683}, + {0.396493,0.413003}, + {1.064244,-1.299914}, + {-0.395576,-0.151052}, + {-1.016292,-0.124868}, + {0.339642,0.187616}, + {-0.732745,0.330348}, + {0.064742,0.443943}, + {0.986493,-0.439466}, + {0.469584,-0.447904}, + {0.721960,0.754263}, + {0.157520,-0.324514}, + {-0.114010,-0.285823}, + {-0.771222,-0.402135}, + {0.327920,0.786586}, + {-0.761432,-0.278662}, + {0.019400,-0.367941}, + {1.070777,0.601845}, + {0.456113,-0.819699}, + {0.879266,-1.927595}, + {0.205047,-0.103213}, + {0.499241,0.410470}, + {0.833646,-1.356775}, + {0.148523,0.231443}, + {0.561257,-0.947881}, + {0.003637,-0.389497}, + {0.433277,0.984572}, + {-0.048365,-0.418898}, + {-0.136111,-1.207308}, + {1.922850,1.447618}, + {0.384710,0.640459}, + {0.139125,0.130501}, + {0.571578,-0.186558}, + {0.682121,0.751595}, + {0.321521,-1.559149}, + {-0.371364,-0.545437}, + {0.621527,0.318470}, + {-0.035350,0.128997}, + {0.478967,0.282489}, + {-1.726296,0.075075}, + {-0.410562,-0.229728}, + {0.248913,0.103229}, + {-1.158596,0.232259}, + {0.162925,0.185782}, + {0.954972,-0.172445}, + {-1.023235,-0.827372}, + {0.386385,0.418922}, + {-1.535752,-0.171385}, + {-0.052104,0.779521}, + {0.578034,-0.561471}, + {0.132959,0.311450}, + {-0.343702,-0.401046}, + {0.245350,0.969726}, + {0.396674,0.108288}, + {-1.432259,0.419970}, + {0.341158,0.317464}, + {-0.330617,-0.606965}, + {-0.152268,-0.472867}, + {-0.060637,0.458003}, + {-0.571015,-0.285286}, + {-0.689380,-0.890630}, + {1.280908,0.748947}, + {-0.541963,0.307449}, + {1.509660,0.796404}, + {1.759599,-0.190714}, + {0.431596,-0.064444}, + {0.781975,-0.726109}, + {-0.225672,-0.453357}, + {-1.213446,0.029801}, + {-0.502440,0.933800}, + {0.526578,0.291420}, + {0.147412,0.134833}, + {0.512102,0.625511}, + {1.456875,1.380586}, + {-0.290328,-1.063807}, + {0.101380,-0.817843}, + {0.113163,0.126724}, + {1.215953,0.725106}, + {0.201676,0.845303}, + {0.239325,-0.398681}, + {0.164998,-0.338345}, + {-0.108562,-0.506582}, + {-0.489327,0.543874}, + {0.661906,-0.354970}, + {-0.265596,0.563607}, + {-0.884218,0.854292}, + {1.321217,-1.368510}, + {0.081827,-1.410110}, + {-0.219351,0.885236}, + {-0.982823,0.858992}, + {-1.274274,-1.011328}, + {-1.067975,0.067140}, + {0.436583,-0.052909}, + {-0.404171,-0.153187}, + {-0.582062,0.600456}, + {0.023155,0.627493}, + {-0.685279,-0.017384}, + {0.548277,-0.244152}, + {-0.115240,0.053806}, + {0.060231,0.740503}, + {-0.145329,0.863530}, + {-1.448378,0.298489}, + {0.240402,-0.369060}, + {1.430967,1.095404}, + {0.331176,0.532789}, + {0.065128,0.165151}, + {-0.301511,-0.764322}, + {1.104458,0.230971}, + {-0.659759,-0.691340}, + {-0.814781,-0.814180}, + {0.417795,1.175324}, + {0.289451,0.400148}, + {-0.418076,0.131680}, + {-1.362387,0.205250}, + {-0.014391,0.377274}, + {-1.409865,-1.379234}, + {0.541087,1.912687}, + {-0.029290,-0.841498}, + {0.466166,0.092614}, + {0.184014,-0.060701}, + {0.809956,1.648975}, + {-0.773957,0.556490}, + {-0.526512,-0.408391}, + {0.241741,0.658692}, + {-0.542720,1.687133}, + {-0.516997,-0.467089}, + {0.739354,0.421007}, + {-0.042296,-0.146626}, + {-0.269594,-0.550475}, + {-1.523314,-1.306939}, + {0.250566,0.617745}, + {0.504463,-0.722584}, + {-0.179117,-0.083309}, + {1.874666,0.664473}, + {0.786372,-0.183692}, + {-0.791371,-0.105155}, + {0.546627,-0.378284}, + {-0.682557,0.353458}, + {-1.551750,-1.178922}, + {0.004591,-0.364755}, + {0.595242,-0.129436}, + {-0.525592,-0.317380}, + {-0.090858,-0.976245}, + {-0.485468,0.291478}, + {0.149195,0.432197}, + {-0.614205,-0.776327}, + {-0.282117,0.839998}, + {-0.805384,-0.020502}, + {0.822789,-1.368598}, + {-0.626826,0.998920}, + {0.496481,-0.497299}, + {1.668775,0.382570}, + {0.548438,-1.033250}, + {1.007271,0.933075}, + {0.183149,-0.380990}, + {1.293787,-0.119620}, + {0.774773,0.143392}, + {-0.274284,-0.302211}, + {0.451132,-0.154428}, + {-0.025212,0.110100}, + {-1.359157,0.348165}, + {0.013577,0.207362}, + {1.101108,1.741819}, + {-1.147832,-0.970628}, + {-0.792563,-0.451914}, + {-0.065555,0.248664}, + {-1.252769,0.225012}, + {0.954973,-1.085338}, + {0.121842,-0.845815}, + {-1.622493,0.134620}, + {-0.785575,-1.165826}, + {-0.155585,-0.299899}, + {0.204921,1.247232}, + {0.190846,0.982351}, + {-0.086519,0.188154}, + {0.911527,-0.410064}, + {-0.589303,0.001458}, + {-0.461175,-0.753628}, + {-0.703909,-0.266743}, + {-0.552377,-0.836142}, + {-0.316481,-0.804232}, + {-1.208979,-0.807974}, + {-0.405595,-0.324402}, + {0.556275,0.511671}, + {0.755633,-0.192398}, + {0.361233,-0.288166}, + {-0.271475,-0.290048}, + {0.036496,1.048269}, + {-0.230503,0.604447}, + {1.000254,-0.234682}, + {0.120851,-0.393787}, + {-1.135812,-0.005555}, + {0.117785,0.102412}, + {0.269803,0.306705}, + {-1.000569,-0.211454}, + {-0.921295,-0.318864}, + {0.015830,-0.276718}, + {0.855560,0.052771}, + {-0.331353,0.532554}, + {-0.998449,-0.148572}, + {1.087764,1.700836}, + {-0.433519,1.028843}, + {0.238422,-0.076953}, + {-0.789252,-0.068322}, + {0.231041,0.257196}, + {-0.119942,0.994053}, + {-1.624463,0.592305}, + {0.489505,0.330256}, + {-0.791727,-0.240149}, + {0.023486,0.405492}, + {-0.712725,1.139520}, + {-0.397841,0.392477}, + {-0.172113,-0.103673}, + {-0.916898,-0.115494}, + {-0.740514,-0.159728}, + {0.030016,0.438515}, + {-0.189621,0.505697}, + {-0.312361,-0.485750}, + {0.395219,-0.191466}, + {-0.681995,0.910094}, + {-0.886425,0.038644}, + {-0.363377,0.254644}, + {1.213012,0.273619}, + {0.387538,-0.267483}, + {0.184534,-0.031493}, + {-0.082584,0.185597}, + {-0.168003,-1.103117}, + {-0.130390,0.133329}, + {-0.641604,-1.152805}, + {0.930567,0.868625}, + {-0.667303,0.040410}, + {0.885582,-0.805815}, + {1.203275,0.842920}, + {-1.398472,-0.587075}, + {-1.319309,-0.535182}, + {0.187520,0.267047}, + {1.366326,0.361960}, + {0.099778,-0.157978}, + {-0.133780,-0.185177}, + {0.536479,-0.703430}, + {-1.744925,0.483704}, + {-0.188968,-0.117653}, + {0.100862,-0.201597}, + {1.112205,0.886361}, + {1.065932,0.187435}, + {-0.515742,-1.160125}, + {-0.302570,0.686457}, + {0.650096,-0.027069}, + {-0.038160,1.315195}, + {0.325478,-0.873972}, + {-1.071418,0.172045}, + {0.086233,-0.410727}, + {0.062731,0.419938}, + {-0.067950,0.160374}, + {-0.871875,-0.789548}, + {-0.533510,0.417835}, + {0.549437,-0.061798}, + {0.230347,0.244062}, + {-0.664741,-0.647699}, + {0.866195,-0.509121}, + {-0.455236,-1.065637}, + {-0.098402,-0.964385}, + {0.972477,0.831164}, + {1.126182,1.212522}, + {-1.214912,-0.489044}, + {-0.145521,-0.082823}, + {0.172649,0.507886}, + {0.816966,0.723179}, + {0.286767,0.813230}, + {-0.292067,0.442358}, + {-0.242028,0.403211}, + {0.810219,-0.296835}, + {-0.965484,0.781090}, + {0.030609,1.430429}, + {-0.113167,-0.735173}, + {0.679344,0.038494}, + {-0.296711,1.173452}, + {0.205363,0.307279}, + {0.236531,-0.902335}, + {1.474420,1.009479}, + {-0.794636,-1.088974}, + {-0.600780,-0.630495}, + {-0.120746,0.153255}, + {-0.074198,-1.159780}, + {0.479216,-0.756744}, + {-0.061359,-0.464196}, + {0.266948,0.499785}, + {0.466252,-0.801677}, + {-0.739398,-1.104281}, + {-0.209888,0.342897}, + {0.317751,0.652312}, + {-0.108828,-0.502183}, + {0.311654,-0.272723}, + {-1.213448,0.887512}, + {-0.156897,0.247416}, + {0.684845,0.663784}, + {-0.834150,-1.557275}, + {-0.111679,-0.539638}, + {-0.629201,-0.244997}, + {0.345529,-0.729459}, + {-0.573635,0.569731}, + {0.202781,1.168916}, + {0.299240,0.698863}, + {-0.303744,0.092127}, + {-0.770121,-0.010426}, + {0.785242,-0.473798}, + {-0.258107,-1.614886}, + {-0.364306,0.445393}, + {-0.030830,-0.396489}, + {-0.861569,-0.618809}, + {-0.467142,-0.065045}, + {1.496496,0.390095}, + {-0.664346,-0.666512}, + {-1.078531,-0.683208}, + {-1.035570,0.332805}, + {0.334032,0.923234}, + {-0.352618,1.163516}, + {0.487088,0.813483}, + {-0.108438,0.111755}, + {-0.242763,-0.716151}, + {0.048218,-0.411570}, + {-0.682291,-0.100047}, + {-0.347302,-0.541596}, + {-0.055860,0.329776}, + {-0.486827,0.763519}, + {0.936834,0.378179}, + {0.560789,-0.581682}, + {0.062925,-1.147451}, + {0.370209,0.604113}, + {0.303006,0.781933}, + {-0.771395,1.640898}, + {0.367795,-0.936096}, + {-0.948469,-0.645591}, + {-1.338969,0.458720}, + {-0.119671,0.943494}, + {-0.504578,1.348833}, + {0.087662,0.180008}, + {-0.400353,-0.940478}, + {-1.020622,0.010305}, + {-0.572008,0.916672}, + {0.777239,-0.920403}, + {-0.246385,-1.900782}, + {0.368677,-0.397907}, + {-0.213803,1.423726}, + {-0.529380,0.287280}, + {0.674833,0.865517}, + {0.214032,0.083444}, + {-1.354788,0.121986}, + {-0.147398,-0.259880}, + {-0.236661,0.083370}, + {1.070576,-0.674437}, + {-1.696654,-0.863431}, + {-0.288571,-0.088433}, + {-1.178608,0.352638}, + {-0.686168,-0.664879}, + {-0.727181,0.139968}, + {0.704379,0.011108}, + {-0.097122,-0.414411}, + {0.833092,-0.416375}, + {1.679856,-0.186026}, + {-0.188038,-0.789648}, + {0.788024,1.319672}, + {-0.111910,-0.429271}, + {0.026979,-0.973063}, + {-0.822299,-0.468297}, + {-0.020743,-0.075185}, + {-0.196015,-0.653514}, + {-0.531606,0.126889}, + {0.683125,0.196602}, + {-0.642640,-1.115938}, + {0.216297,0.501497}, + {-0.798830,-0.596719}, + {0.118774,-0.356140}, + {-1.144614,-0.125928}, + {0.782631,0.924172}, + {-1.170188,-0.199186}, + {-1.219077,1.060124}, + {-0.426246,0.782024}, + {0.022011,1.753737}, + {-1.176024,1.096339}, + {0.892655,0.511964}, + {0.162166,0.613459}, + {0.089108,0.600362}, + {0.727923,0.549506}, + {0.043496,-0.772287}, + {0.545886,-1.494124}, + {-0.208190,-0.121938}, + {0.457878,-0.436767}, + {0.202868,1.137949}, + {0.442543,-0.970062}, + {-0.938356,0.524556}, + {-0.206104,-0.650013}, + {-0.241362,-0.130104}, + {0.825974,0.375147}, + {-1.030467,0.349799}, + {0.165765,0.053764}, + {0.539089,0.219063}, + {-0.920803,-0.360764}, + {-1.501808,0.467059}, + {0.010156,-0.026508}, + {0.296985,1.309064}, + {0.255845,0.369301}, + {0.282236,0.181767}, + {-0.599911,0.417191}, + {-0.124009,-0.052300}, + {1.762523,-0.638097}, + {1.559969,-0.392161}, + {0.788940,-1.012021}, + {-0.889773,0.829916}, + {-0.758505,0.629368}, + {0.149425,0.205740}, + {-1.489133,0.519999}, + {0.274081,-0.473210}, + {-0.400278,-0.605729}, + {-0.034848,-0.711428}, + {0.797203,0.653726}, + {0.684081,0.306657}, + {-0.898558,0.487512}, + {0.531034,-0.804407}, + {-0.189209,0.079728}, + {-0.236203,0.887653}, + {-1.055849,-0.030049}, + {0.157577,0.262297}, + {0.816064,0.614824}, + {-0.517684,-0.651690}, + {0.817597,0.142859}, + {0.632049,0.746048}, + {-0.004080,-0.044616}, + {-0.443800,-0.623657}, + {-1.950154,0.292959}, + {0.849712,0.756986}, + {-0.331359,0.267557}, + {0.110510,0.822703}, + {1.123170,-0.844141}, + {-0.779840,0.699576}, + {0.039398,0.256364}, + {0.701604,-1.071505}, + {0.068249,-0.334658}, + {-0.092711,-0.747982}, + {0.279999,0.476331}, + {-0.250376,-0.152404}, + {-0.633183,-0.303464}, + {-0.871779,-0.289203}, + {0.520590,0.441538}, + {0.411185,0.050415}, + {0.299688,0.061898}, + {0.006655,0.250882}, + {0.663987,-0.250278}, + {-0.435304,0.428809}, + {-0.954020,0.275075}, + {-0.534693,-0.019677}, + {-0.454147,-0.287202}, + {-0.410159,0.876545}, + {0.167473,0.702159}, + {-0.798929,-0.035521}, + {0.321676,0.347692}, + {0.817898,0.460273}, + {-0.129380,0.029044}, + {0.252003,-0.312483}, + {-0.794911,2.260189}, + {1.196671,-0.508444}, + {0.658018,0.454661}, + {-0.110961,1.988064}, + {1.027958,-0.139970}, + {0.371965,0.512944}, + {-0.889717,-0.561569}, + {-0.385539,1.492987}, + {0.182554,-0.293347}, + {-0.678913,-0.180265}, + {-0.619095,0.804020}, + {-0.246786,0.065080}, + {0.732415,0.287005}, + {-0.433814,0.359104}, + {-1.062615,0.398734}, + {-0.068996,-0.161415}, + {0.177600,-0.169124}, + {-1.098818,0.257113}, + {-0.199506,-0.234330}, + {-0.457931,-0.929827}, + {1.267319,-0.665283}, + {0.569162,0.128109}, + {-0.894920,-0.343725}, + {-1.047250,0.194854}, + {0.145325,1.000184}, + {-0.485785,0.176002}, + {0.416958,0.181212}, + {-0.538063,1.408044}, + {0.396945,0.376793}, + {-0.650388,0.600960}, + {-0.336692,0.041523}, + {0.762633,0.056195}, + {-0.101801,1.060078}, + {0.008753,0.341367}, + {1.213057,0.650804}, + {-0.242555,0.605359}, + {-0.096545,0.505888}, + {-0.218160,0.065450}, + {-0.392291,-0.153585}, + {-0.382276,-0.435595}, + {-0.566462,0.503745}, + {0.742303,0.092767}, + {-0.706119,-0.446348}, + {0.846034,-0.169926}, + {-0.800204,0.067673}, + {0.393443,-0.252153}, + {-1.189230,-0.417032}, + {-0.258718,-0.577801}, + {0.148415,-0.218861}, + {-0.242399,-0.722251}, + {-0.554846,0.266552}, + {-0.154566,0.345374}, + {-0.178620,-0.620674}, + {-1.452684,0.547125}, + {0.742394,-0.579851}, + {-0.535252,0.818573}, + {-0.373753,-0.844847}, + {-0.307951,-0.485154}, + {-1.055151,-0.234469}, + {-0.617500,0.155782}, + {-0.632949,-0.514511}, + {0.321217,-0.177787}, + {0.810575,0.867079}, + {-0.739780,0.080659}, + {-0.702951,-0.542686}, + {-0.849406,-0.434737}, + {-0.107667,1.546333}, + {-0.481642,0.249243}, + {-0.434692,0.925578}, + {-0.649042,0.190168}, + {0.543056,0.387398}, + {0.229006,1.749723}, + {-0.659196,1.496811}, + {-1.112472,-1.378348}, + {-0.347713,0.655806}, + {-0.333020,-0.442177}, + {-0.010896,0.243385}, + {0.396435,-0.937387}, + {-1.542977,-0.081353}, + {-0.988957,-1.301314}, + {-0.671717,0.385106}, + {-0.475757,-0.051430}, + {-0.152665,-0.430897}, + {0.226653,-1.286005}, + {-0.121291,-0.593614}, + {-0.416353,0.289417}, + {0.641212,-0.014396}, + {0.625740,0.289628}, + {0.109355,-0.864110}, + {-1.304982,0.864331}, + {0.540706,-0.034820}, + {1.160577,0.426277}, + {0.897177,0.120431}, + {0.166315,0.025191}, + {-1.194892,-0.817293}, + {-0.018821,-0.365376}, + {0.419874,-0.904719}, + {-0.376988,1.270798}, + {0.591134,-0.413071}, + {0.765301,0.183033}, + {0.425363,-2.200343}, + {0.282538,-0.115302}, + {0.471367,-0.189218}, + {0.072332,-1.738241}, + {0.705167,1.306461}, + {0.517418,-0.123308}, + {0.665696,0.768678}, + {0.799159,0.744041}, + {0.388496,0.054943}, + {-0.509369,-0.466480}, + {-0.932773,-0.129384}, + {-1.766512,0.342952}, + {-0.411573,-0.953764}, + {-0.376695,-0.388200}, + {0.253429,0.762383}, + {-0.238802,-0.837494}, + {-0.568870,0.170795}, + {0.970388,1.303336}, + {-0.483732,-0.759695}, + {-0.067874,-0.877486}, + {0.361803,-0.828496}, + {0.148481,-0.631609}, + {0.188760,0.682836}, + {0.233787,1.072984}, + {0.607324,0.052559}, + {-0.462668,-0.875849}, + {0.513511,-0.625931}, + {0.029210,-0.447513}, + {0.480831,0.480287}, + {-0.664907,-0.973077}, + {0.188319,-1.203828}, + {0.022725,-0.215416}, + {-0.426508,0.568704}, + {0.696166,-0.153401}, + {-0.888605,0.283359}, + {-1.887684,-0.631214}, + {-0.027258,-0.755818}, + {0.463172,0.099262}, + {0.176597,0.408871}, + {0.139626,0.475139}, + {-0.512137,-0.095797}, + {0.142498,0.791082}, + {1.714745,0.050486}, + {-0.151700,1.001408}, + {-0.187926,-1.189337}, + {-1.047952,0.351206}, + {-0.605363,0.923878}, + {-0.880344,-0.236752}, + {0.158545,0.536012}, + {-0.702132,-0.383830}, + {-0.232765,-0.434727}, + {-0.332018,0.111265}, + {-0.115645,1.224794}, + {1.130556,1.039947}, + {-0.684674,0.389432}, + {-0.495957,-0.819223}, + {-0.287520,0.044088}, + {-0.120997,-0.373808}, + {0.344498,-0.861474}, + {-0.287849,-0.627099}, + {-1.624836,1.107974}, + {-0.161896,0.734496}, + {0.922077,0.415761}, + {-0.092261,-0.792858}, + {0.740678,0.637053}, + {0.009040,-1.221702}, + {-0.151925,-1.520832}, + {-0.926963,1.228550}, + {1.592761,-0.740545}, + {0.975686,-0.204006}, + {-0.510445,-0.013318}, + {-0.116722,-1.460534}, + {0.050564,-0.696307}, + {0.238704,-0.306242}, + {-0.056267,-0.039088}, + {0.367015,0.155718}, + {0.828479,0.364074}, + {-0.066791,-0.263206}, + {-0.206769,-0.176020}, + {0.607347,-0.204373}, + {-0.328140,0.234530}, + {-0.149728,0.964312}, + {-0.673761,-0.476774}, + {-0.531880,1.004618}, + {-0.115795,-0.702836}, + {0.150798,-1.577178}, + {-0.261606,-0.115086}, + {-0.466822,-0.540959}, + {0.188110,-0.368671}, + {1.054299,0.152076}, + {0.955712,-0.861367}, + {-0.203463,1.366727}, + {0.633374,0.651992}, + {-1.391364,0.818343}, + {0.956846,1.464320}, + {-0.393481,0.977886}, + {0.069476,1.092029}, + {-0.819219,0.095735}, + {-0.358142,-0.433980}, + {0.880563,0.408356}, + {-0.110838,0.733042}, + {0.767039,0.273039}, + {0.484175,1.024151}, + {0.506067,-0.462739}, + {0.138992,0.524270}, + {0.438017,-0.334267}, + {-0.480006,-1.227354}, + {-0.549142,0.321805}, + {0.558154,0.085036}, + {-1.561828,1.403826}, + {0.792447,-1.514236}, + {0.340796,0.383640}, + {-1.368843,-0.478391}, + {0.058797,0.152301}, + {-1.186850,0.309630}, + {0.008511,0.569976}, + {0.499503,0.907362}, + {-0.582328,-1.193703}, + {0.457649,0.390902}, + {0.080038,0.404945}, + {0.509056,-1.101939}, + {-0.172094,0.524935}, + {-0.856769,-1.342524}, + {0.600361,0.564700}, + {0.669194,-0.792939}, + {1.645031,-1.295386}, + {-0.563368,-1.044735}, + {1.573442,0.369752}, + {-0.476873,1.693162}, + {0.009118,-0.394260}, + {-1.892748,0.376392}, + {0.527800,0.693088}, + {0.174069,1.074548}, + {0.421630,-0.272748}, + {-0.328084,0.643263}, + {-1.074268,-0.336496}, + {1.380511,-0.549909}, + {0.446078,-0.836703}, + {0.094413,0.555130}, + {2.359104,0.198856}, + {-0.171100,1.095922}, + {0.554416,-0.723893}, + {-1.692759,-0.111848}, + {-0.968574,-0.811231}, + {-1.243309,-0.641704}, + {0.374876,-0.441376}, + {-0.298878,0.934476}, + {0.959066,0.185512}, + {-0.372387,0.626353}, + {-0.200447,0.974171}, + {-0.656902,-0.411072}, + {0.606477,0.609449}, + {0.596347,-0.335998}, + {-0.680908,-0.373738}, + {-0.714886,-0.319760}, + {-1.232879,-0.543364}, + {0.597159,0.750747}, + {-0.092650,0.649143}, + {1.312315,0.577498}, + {0.949531,0.577766}, + {-0.536287,-0.256933}, + {0.026927,0.209819}, + {-0.506280,0.975751}, + {-0.100592,-0.496428}, + {0.703664,0.977937}, + {0.439077,0.642939}, + {-1.186330,-0.562701}, + {0.834602,-0.346392}, + {-1.140063,1.278697}, + {-0.176394,-0.177266}, + {-1.911734,-0.158996}, + {-0.938247,-1.139427}, + {0.430852,-0.519788}, + {0.552453,0.347402}, + {0.397558,-0.621711}, + {0.395750,-0.030026}, + {-0.318682,0.526152}, + {-0.086843,0.198691}, + {-0.463806,1.322882}, + {0.021087,0.405731}, + {-0.997044,-0.774766}, + {-0.693620,0.425756}, + {-0.093692,0.639838}, + {0.605591,0.305130}, + {-1.280314,0.984296}, + {-0.058598,-1.163590}, + {0.649775,-0.003839}, + {-0.268283,0.754608}, + {-1.297487,0.615832}, + {0.619815,-0.088227}, + {-0.447024,0.734463}, + {0.342713,0.254090}, + {-0.076577,1.067338}, + {-0.580665,-0.362452}, + {0.233286,-0.620338}, + {-0.934433,0.379823}, + {0.933342,0.231465}, + {-0.859952,0.114437}, + {-0.856929,0.585641}, + {-0.943033,-0.113384}, + {1.038475,0.201911}, + {-0.469030,-0.388884}, + {-0.118337,-0.297191}, + {-0.702286,-0.240531}, + {-0.513404,-0.591197}, + {0.324736,0.499129}, + {0.131897,-0.425180}, + {-0.464172,1.168790}, + {-0.606129,0.482431}, + {-0.947150,-0.266069}, + {0.443681,-1.910554}, + {-0.022401,-0.327754}, + {0.551598,0.923532}, + {0.223361,-0.385604}, + {0.185751,0.593156}, + {-0.184030,0.754766}, + {1.395817,0.028574}, + {0.475188,0.054661}, + {-0.277480,0.125616}, + {-0.496862,-1.147994}, + {-0.004339,-1.205962}, + {-0.143203,-0.265497}, + {0.125309,-0.043515}, + {0.366992,0.512033}, + {0.824571,0.106918}, + {-1.068985,0.132551}, + {1.832261,0.084296}, + {0.263801,-1.200894}, + {-1.508048,0.915831}, + {0.482696,-0.426293}, + {0.033090,-1.904729}, + {-2.108846,-0.435991}, + {-0.176570,0.183011}, + {-0.552305,0.353128}, + {-0.238016,0.185723}, + {-1.105006,-0.940637}, + {-0.819965,-0.929777}, + {0.157431,0.682561}, + {-0.217550,0.640647}, + {0.203090,-0.654541}, + {-0.077923,1.061114}, + {0.255508,-1.220831}, + {-0.166887,-0.641701}, + {-0.366592,0.125942}, + {-1.173483,0.813176}, + {0.808734,-0.982589}, + {-0.278042,1.861455}, + {-0.065514,0.269957}, + {0.906470,0.226526}, + {-0.120529,-0.080793}, + {0.417512,0.156899}, + {-0.907569,-0.097119}, + {0.263494,-0.109026}, + {0.189893,-0.050584}, + {-0.790905,0.939795}, + {-0.170601,-0.628612}, + {0.350909,-0.626418}, + {-0.386598,-0.927327}, + {-0.453768,0.023829}, + {0.914262,0.275209}, + {-0.562420,-0.398459}, + {-0.630268,1.978496}, + {0.221322,1.406665}, + {0.469280,0.011328}, + {1.173789,0.177916}, + {-0.299844,0.272473}, + {0.251780,-0.111125}, + {-0.773700,1.126264}, + {-0.141209,0.420552}, + {0.799946,-0.075850}, + {-1.245327,0.658100}, + {0.291694,0.510028}, + {-0.794185,-0.184348}, + {0.558676,-0.725595}, + {0.104020,0.146003}, + {0.687901,0.258342}, + {0.447092,1.306396}, + {0.252250,-0.596987}, + {-0.576601,0.104527}, + {-0.528980,0.897886}, + {0.319621,0.007942}, + {-0.271045,-1.032491}, + {0.106805,-1.171924}, + {-0.117934,-0.002040}, + {0.937400,0.094878}, + {0.767345,0.456467}, + {-0.248117,1.399906}, + {-0.019431,0.029962}, + {-0.553835,-0.199065}, + {0.973482,-0.555913}, + {-1.158272,0.011195}, + {0.289042,-0.022439}, + {-0.242274,0.051491}, + {-0.784552,0.046357}, + {0.089161,-0.070526}, + {-0.347404,-0.479778}, + {-0.387975,-0.227373}, + {0.209500,-1.064529}, + {1.636459,-0.994817}, + {0.962069,-0.828699}, + {0.599537,0.180033}, + {0.403511,-1.375267}, + {-0.030051,0.364420}, + {0.255406,-0.152639}, + {-0.842737,-0.083531}, + {0.265162,-0.110579}, + {0.023556,-1.674108}, + {0.998462,-0.391540}, + {-0.236300,-0.679450}, + {-0.135786,0.684768}, + {-0.166010,0.165157}, + {0.727715,-0.372501}, + {-0.189725,0.488845}, + {-0.295131,-0.024017}, + {0.260305,-0.897897}, + {0.282883,-0.374545}, + {-0.131905,0.759994}, + {0.642608,-0.501903}, + {0.235753,-0.019992}, + {0.234917,-0.917430}, + {-0.187950,-0.955321}, + {-1.679033,-0.077540}, + {0.057969,-0.182145}, + {0.806970,0.187450}, + {-1.255149,-1.161657}, + {0.071722,-1.622885}, + {0.743520,-0.598178}, + {-0.541128,0.760663}, + {-0.690128,-0.163725}, + {-0.713829,1.032708}, + {-0.184282,0.073560}, + {-1.631399,-1.104151}, + {-0.287196,-1.050644}, + {-0.861881,0.837003}, + {0.658268,-0.445585}, + {-0.492519,-0.822022}, + {-0.042083,0.453774}, + {-1.060994,0.621202}, + {0.552598,-0.448519}, + {0.547632,-0.643752}, + {-0.180073,-0.870508}, + {-0.301082,0.100829}, + {-0.185883,0.378342}, + {-1.021355,-0.041632}, + {0.835251,0.146685}, + {0.367444,1.012175}, + {-0.336391,0.016233}, + {-1.065102,0.040814}, + {-0.949472,0.846319}, + {1.291102,0.795366}, + {-0.487972,1.266731}, + {0.385963,-1.232202}, + {-0.274804,-0.575065}, + {0.142511,0.996808}, + {-1.127767,0.320745}, + {-1.464213,-0.001272}, + {-1.263870,-0.925822}, + {0.440001,1.508906}, + {-1.938712,-1.470684}, + {-0.186008,0.087603}, + {0.166957,-0.114873}, + {-0.546288,0.060052}, + {-0.451944,-0.677336}, + {0.110307,-0.073643}, + {-2.575184,-0.348193}, + {0.686896,-0.114358}, + {0.104536,-0.295687}, + {1.742926,0.023467}, + {-0.764176,0.383341}, + {0.143325,0.194010}, + {0.520979,0.503754}, + {1.008110,-0.184279}, + {0.707282,0.233438}, + {-1.342322,-0.476836}, + {-0.162102,-0.516986}, + {-1.555440,0.272954}, + {1.012432,-0.043494}, + {-0.081673,1.117860}, + {0.403470,0.057254}, + {-0.517038,-0.110340}, + {0.475128,0.752501}, + {-0.489141,-0.553330}, + {-0.636345,-0.926923}, + {0.379515,0.423726}, + {0.263556,-0.838201}, + {1.364556,-0.420440}, + {-0.269874,0.091490}, + {-1.434258,0.014961}, + {-0.590992,0.091827}, + {-0.308413,0.016741}, + {0.349648,-1.591085}, + {-0.118712,1.184347}, + {0.187251,1.433784}, + {0.562964,1.318689}, + {-0.861674,-0.392680}, + {0.002905,0.622487}, + {-0.151723,-1.179258}, + {-0.070747,0.053384}, + {0.525404,-0.554260}, + {-0.343545,-0.118922}, + {-0.507229,-0.864504}, + {0.500450,-0.403323}, + {0.377233,0.949879}, + {-0.833561,-0.056483}, + {-0.725906,-0.705636}, + {0.922402,-0.108117}, + {0.242458,-0.509338}, + {1.107595,0.489720}, + {-1.198374,-0.015819}, + {-0.413664,-0.441380}, + {0.218345,-1.315292}, + {0.497907,-0.042786}, + {1.204892,-0.699516}, + {-0.555751,0.313409}, + {0.379257,-0.609355}, + {0.950328,-0.278547}, + {-0.755355,0.813622}, + {0.513696,-0.533451}, + {-0.495311,0.409720}, + {0.112153,-1.160556}, + {0.353378,0.752034}, + {0.459675,-0.527592}, + {0.546631,0.123779}, + {0.828528,0.384762}, + {-0.369489,0.154474}, + {-0.505704,0.615962}, + {-0.473887,0.076201}, + {0.008357,-0.357277}, + {0.129246,-0.337053}, + {-0.257137,-0.189718}, + {-1.475479,0.652016}, + {0.204440,-0.454342}, + {1.032094,-0.103206}, + {-1.053839,0.656926}, + {0.190919,-0.204573}, + {-0.069636,-0.090363}, + {-1.022143,0.421546}, + {0.117690,-0.596925}, + {0.668920,-0.202848}, + {0.414527,0.111164}, + {0.569160,-0.332882}, + {-0.740114,-0.838751}, + {-0.811449,0.332958}, + {0.165041,-0.548386}, + {0.586089,1.162788}, + {-0.441744,0.705830}, + {0.345507,0.417786}, + {-0.150969,-0.217414}, + {0.980970,-0.395728}, + {0.202029,0.053837}, + {-0.567949,-0.756414}, + {0.838055,-0.962655}, + {0.185033,-0.842624}, + {0.505452,-0.230980}, + {0.500792,-1.312236}, + {0.098343,0.520689}, + {-0.927027,-0.045385}, + {0.569641,0.548063}, + {-0.798887,1.354409}, + {-1.055338,0.516666}, + {-1.035704,0.360430}, + {-0.184264,0.067661}, + {0.570477,0.590137}, + {0.551827,0.899930}, + {0.533855,1.304288}, + {0.350958,-0.358284}, + {-1.384382,-0.753483}, + {0.601123,-2.156966}, + {-0.554389,0.059956}, + {-0.871086,-0.106200}, + {0.558179,0.180493}, + {0.531430,-0.025180}, + {-0.795320,0.260424}, + {0.692222,-0.238340}, + {0.169459,0.823660}, + {0.299030,0.761034}, + {-0.698652,-0.351722}, + {0.368231,0.434130}, + {0.185790,-1.403230}, + {-0.799883,-0.119406}, + {0.736042,0.392089}, + {-0.666826,-0.832812}, + {-0.513339,0.050691}, + {-0.587525,0.355240}, + {-0.517997,0.850523}, + {-0.899883,0.695032}, + {-0.206738,0.938988}, + {-0.699376,-0.248451}, + {0.788660,-0.329191}, + {-0.803143,0.755641}, + {-0.347574,-0.096980}, + {0.655063,-0.198669}, + {0.324775,-0.654269}, + {0.921286,-0.437049}, + {0.744575,-0.148011}, + {-1.499490,0.208673}, + {1.813010,1.936063}, + {-0.330382,0.942141}, + {-0.175160,0.095578}, + {-0.688972,0.621992}, + {-0.710787,0.337475}, + {0.082558,-0.051458}, + {0.108929,-1.049616}, + {0.411274,0.385344}, + {0.016239,-0.562674}, + {0.921934,0.406952}, + {0.524669,-0.237757}, + {-0.660776,-0.152646}, + {-0.149333,0.000891}, + {-0.254695,-0.615310}, + {-0.756202,0.840237}, + {-0.309718,-0.633714}, + {-0.218646,-1.024427}, + {-0.085284,0.238786}, + {-0.127700,-0.176234}, + {0.641768,-0.561286}, + {-1.032711,-0.515069}, + {1.363094,-0.095828}, + {1.534582,0.380000}, + {0.805601,0.320919}, + {0.701193,-0.161937}, + {0.262605,-0.457002}, + {0.345692,-0.485455}, + {0.973676,1.050191}, + {0.563517,-0.896698}, + {-1.052935,-0.655316}, + {-0.231460,-0.146481}, + {-0.979474,0.060279}, + {-1.088586,-0.421800}, + {0.161069,1.003289}, + {0.090253,-0.088947}, + {-0.547361,-1.206487}, + {0.246441,1.106913}, + {-0.706636,-0.015038}, + {0.132891,1.002612}, + {-0.295681,0.231105}, + {-1.153732,-0.996986}, + {-0.501629,-0.644197}, + {0.295345,-0.691762}, + {-1.440078,-0.607401}, + {0.101169,0.934845}, + {0.071043,-0.644190}, + {0.614922,-0.503042}, + {1.037925,-0.411965}, + {-0.852186,0.229310}, + {0.299200,-0.324206}, + {-0.088801,-0.474293}, + {-2.187987,-0.562442}, + {0.874113,-0.747951}, + {0.575873,-0.728991}, + {-0.846189,0.157840}, + {-1.429388,0.899668}, + {0.146948,-0.004011}, + {1.408618,-0.212564}, + {-0.215899,-0.253146}, + {1.498321,-0.772136}, + {-0.877108,-0.120817}, + {1.817143,0.201466}, + {-0.209176,0.538539}, + {1.517331,-0.539165}, + {-0.251656,0.628209}, + {-0.629867,1.537735}, + {0.022098,1.206070}, + {-0.360631,-0.347506}, + {0.752599,0.256274}, + {0.417381,-0.329550}, + {-1.519437,-1.728036}, + {-0.414089,-0.630542}, + {-0.364826,0.403330}, + {0.581478,0.594084}, + {0.663563,0.961159}, + {0.825272,1.573900}, + {-0.367023,-0.988905}, + {-0.073497,0.708838}, + {1.148249,-0.415716}, + {-0.101004,0.106337}, + {-0.928442,-1.408122}, + {0.469680,-0.047484}, + {-0.960126,-0.904661}, + {-1.132264,-0.188708}, + {-0.016658,-0.199830}, + {-1.075654,-0.338366}, + {0.061431,1.126846}, + {-1.081800,-0.415970}, + {1.123256,-0.127503}, + {-1.145737,-0.191834}, + {-0.793043,-0.118410}, + {-1.196367,1.014650}, + {1.527032,-1.381034}, + {0.647338,-0.080257}, + {-0.804731,0.453449}, + {-0.516077,0.480638}, + {0.530282,-0.739929}, + {0.269033,-1.963435}, + {1.477697,0.784988}, + {0.311743,0.788590}, + {-0.325671,0.653941}, + {-0.233521,-0.206602}, + {-0.278201,0.128288}, + {1.135366,-1.284597}, + {-0.763170,-0.012900}, + {0.438701,0.811553}, + {-0.249020,-0.316173}, + {0.561871,-0.138876}, + {0.726334,1.041021}, + {0.098118,-0.710592}, + {-0.572228,0.067081}, + {0.734250,0.106212}, + {-0.105387,0.013023}, + {-0.089425,0.237119}, + {-0.955892,0.328177}, + {-0.219179,0.170715}, + {0.931844,-0.349402}, + {-0.006197,-1.310244}, + {1.151184,0.469394}, + {1.308615,1.117283}, + {-0.431605,0.200205}, + {0.191977,-0.367832}, + {0.236475,0.821365}, + {-0.941490,0.282290}, + {-0.006772,0.760460}, + {0.184771,-0.364421}, + {-0.329091,-1.396452}, + {-0.459936,0.172703}, + {-0.153217,1.302087}, + {0.098202,-0.527384}, + {-1.355245,0.009842}, + {-0.924139,0.157557}, + {-0.100397,-0.408893}, + {0.217141,-0.593144}, + {-0.156430,1.211818}, + {0.011004,-0.314417}, + {0.131301,-0.060106}, + {0.399402,-0.219055}, + {0.392387,-0.631019}, + {-0.341266,0.461355}, + {0.426031,-0.852869}, + {-0.101110,0.790776}, + {-0.436091,1.765631}, + {0.568398,0.767510}, + {-0.271711,-0.480995}, + {-0.249560,-0.882825}, + {-0.381369,1.034425}, + {-0.503866,0.598387}, + {0.876082,-1.385329}, + {0.063173,0.213468}, + {0.543796,-0.225159}, + {-0.032141,0.017681}, + {0.493171,0.162913}, + {0.686035,0.268915}, + {0.175293,1.136665}, + {0.157721,0.697172}, + {-1.127321,0.592262}, + {0.166970,-0.343138}, + {0.194866,0.189738}, + {-0.288449,1.476208}, + {-0.421817,1.014786}, + {0.126023,-0.775427}, + {0.394521,-0.989582}, + {-1.089528,-0.055308}, + {0.200147,0.011439}, + {1.903990,0.358153}, + {0.664392,-0.905588}, + {0.539781,0.841634}, + {0.582682,0.671146}, + {-0.024278,-0.572103}, + {0.185635,-0.697631}, + {0.106066,0.699490}, + {0.246818,0.300906}, + {1.189828,-0.227730}, + {-0.013825,-0.769516}, + {-0.684393,0.018085}, + {1.218080,-1.701471}, + {0.424389,-0.592234}, + {1.403248,-0.017446}, + {0.013415,-0.977801}, + {0.369274,0.430111}, + {0.381919,1.117175}, + {0.816133,-0.715540}, + {0.035215,-0.105043}, + {0.556964,-0.135119}, + {-0.673203,1.053060}, + {-0.516621,0.494257}, + {0.450111,-0.035975}, + {-0.421140,1.411773}, + {-0.535489,0.037563}, + {-0.574600,-1.377926}, + {0.032767,-0.640636}, + {-0.459555,-0.203066}, + {-0.434567,0.545250}, + {0.650357,0.652128}, + {-0.892425,1.283559}, + {0.692184,0.557113}, + {0.751736,-0.211262}, + {0.313737,-0.163152}, + {-0.247115,-0.034955}, + {0.491416,-1.537278}, + {0.930530,-1.108210}, + {-0.556112,-1.391934}, + {-0.961302,0.326983}, + {1.662905,-0.278552}, + {-0.313318,-1.433712}, + {-1.000577,0.559144}, + {0.216728,0.878720}, + {0.487019,-0.649528}, + {-0.623891,-0.371940}, + {-0.040803,0.208126}, + {0.315032,0.149693}, + {-0.198370,-1.011750}, + {-0.824018,1.104106}, + {-0.353701,0.822379}, + {-0.123394,-1.055204}, + {-0.737870,-0.757284}, + {-0.634799,-0.464904}, + {-1.763571,-0.369890}, + {0.047103,0.948021}, + {0.847644,0.119019}, + {0.504559,-0.136831}, + {0.049168,0.250676}, + {-0.407130,0.581465}, + {-0.424114,-0.237635}, + {-0.576690,-0.447438}, + {-0.534590,-0.285313}, + {-0.525026,0.509418}, + {0.991170,0.776430}, + {0.082037,-0.154868}, + {-0.738468,1.113500}, + {-1.376870,-0.237227}, + {0.182010,0.599488}, + {-0.012601,0.360641}, + {-0.874033,0.846574}, + {-0.453102,0.527465}, + {-0.140117,0.979272}, + {0.469908,-0.563083}, + {0.494906,0.205413}, + {-0.152124,1.445632}, + {-1.070697,-0.417032}, + {0.620584,1.098607}, + {0.647829,-0.212808}, + {0.329902,0.206018}, + {0.769611,0.068876}, + {0.595618,-1.179969}, + {0.134816,1.155849}, + {0.132816,-0.826840}, + {-0.204456,-0.005218}, + {0.565919,-0.406434}, + {1.076761,0.279015}, + {-0.824357,-0.318681}, + {0.536584,1.190336}, + {-0.837780,-0.783722}, + {-0.365623,-0.592565}, + {0.140732,-0.354577}, + {-0.318893,0.197879}, + {-0.650844,0.142190}, + {0.611141,-0.819490}, + {0.824394,-1.997252}, + {1.188414,-0.772520}, + {0.495803,0.456638}, + {-0.793332,1.358671}, + {-1.208357,0.747812}, + {0.639802,-0.096943}, + {0.128095,-0.588363}, + {0.114812,0.593784}, + {-0.189818,-0.088502}, + {-0.281234,0.074641}, + {-0.318011,0.468384}, + {-0.032031,0.092814}, + {0.280203,0.824080}, + {0.375190,0.631836}, + {0.434939,-0.102007}, + {-0.537006,-1.514559}, + {0.203213,-0.319343}, + {-0.141183,-1.038148}, + {-0.218501,-0.477195}, + {-0.338538,-0.751898}, + {-0.686068,0.283823}, + {0.062352,1.559887}, + {-0.241352,-1.511161}, + {0.720157,-0.832961}, + {0.558763,-0.548703}, + {0.263548,0.902844}, + {0.842079,-0.167704}, + {-0.542509,0.454977}, + {0.903157,0.620579}, + {0.964410,0.047286}, + {-0.955672,0.944376}, + {0.860074,1.300853}, + {0.512725,0.794600}, + {-0.450602,0.516415}, + {-0.447504,0.181518}, + {-0.437303,0.401800}, + {-0.578495,-0.043247}, + {0.617911,-0.345819}, + {-0.552715,-1.044463}, + {-0.867800,-0.875333}, + {0.481378,-0.046626}, + {0.191387,-0.016629}, + {-0.518826,-0.671362}, + {-0.076694,0.392508}, + {0.019799,-0.500523}, + {1.539289,0.191522}, + {0.268896,0.472991}, + {-0.122127,-0.508825}, + {0.314364,-0.019904}, + {-0.144547,0.440958}, + {0.265538,0.198174}, + {0.863341,-0.176679}, + {0.122943,-0.154642}, + {0.043506,0.107960}, + {0.099631,-0.078301}, + {-0.560396,0.316725}, + {1.286545,0.635450}, + {-0.358192,-0.438848}, + {1.039133,-0.132411}, + {1.186643,0.405783}, + {-1.001651,-0.156892}, + {-1.179719,-0.490621}, + {-0.721972,0.717535}, + {-1.029560,-0.455562}, + {-0.077975,0.563804}, + {-0.813295,0.621995}, + {0.618189,0.598485}, + {-1.199978,-0.777894}, + {-0.290504,0.990481}, + {-0.031754,0.345115}, + {-0.368322,1.005785}, + {0.599679,-0.895852}, + {-0.590234,-0.096684}, + {-0.496663,-0.691375}, + {0.088853,0.700215}, + {-0.183732,0.242244}, + {-0.643606,-0.335184}, + {0.121277,-0.906499}, + {0.241237,1.352691}, + {-0.254636,-0.459023}, + {-0.621434,-0.262442}, + {-1.261593,0.823850}, + {0.524973,0.145684}, + {0.664583,-0.298579}, + {0.609610,-0.078780}, + {0.203934,-0.123287}, + {-0.774268,-0.471319}, + {-0.207046,1.271445}, + {-0.236533,-0.485094}, + {-0.597981,1.115511}, + {-0.406298,0.760957}, + {0.694472,-0.379866}, + {-0.372914,0.292032}, + {0.784017,0.922657}, + {0.297901,0.163029}, + {-0.904827,-0.819312}, + {0.561786,0.562537}, + {-0.239547,0.126229}, + {-1.407316,-0.320167}, + {-0.134303,-1.366530}, + {-0.531725,-0.336818}, + {0.623285,0.322439}, + {-0.335097,0.897800}, + {0.695935,-0.312405}, + {0.095367,0.409572}, + {-0.765337,-0.211423}, + {-1.131867,-0.623383}, + {-0.267968,-0.286704}, + {-0.404970,-0.309191}, + {1.379609,0.251604}, + {0.331291,0.143124}, + {-0.913650,0.804486}, + {-1.218644,0.871913}, + {0.039236,0.744136}, + {1.449769,0.975760}, + {-0.210467,0.262295}, + {0.405987,0.424655}, + {0.999384,0.627690}, + {1.164600,0.133861}, + {-0.175488,1.427081}, + {-1.744108,0.555451}, + {0.302610,-0.688230}, + {-0.529522,-1.322584}, + {-0.223304,-0.289473}, + {0.668378,0.179522}, + {0.084177,0.492469}, + {0.266502,-0.068043}, + {0.764533,-0.106614}, + {-0.317832,0.270595}, + {-0.444143,-0.228776}, + {0.108340,-0.373711}, + {-0.027397,-0.010145}, + {-0.613227,0.902768}, + {-0.557055,0.429239}, + {0.373258,-0.228158}, + {-0.631503,-0.356203}, + {0.643938,-0.284783}, + {-0.784050,-0.572626}, + {-0.207974,-0.145033}, + {0.006310,0.173822}, + {-0.106005,0.111244}, + {2.363675,-0.471391}, + {0.972607,0.013920}, + {1.130367,-0.608325}, + {-0.479318,-0.017402}, + {-0.647306,0.746952}, + {1.365227,0.174166}, + {0.586382,-0.751731}, + {-0.467157,1.701264}, + {-0.531539,0.869207}, + {-0.610338,0.132307}, + {0.356638,0.108132}, + {-0.568649,-0.676443}, + {0.089214,-0.008608}, + {-0.984149,0.709467}, + {0.597348,0.413095}, + {0.139796,1.022797}, + {-1.032483,-0.315232}, + {0.021779,-1.284263}, + {0.891663,-0.443996}, + {-0.684480,-0.817773}, + {0.401035,0.351907}, + {0.217196,-0.252169}, + {-1.349881,-0.517501}, + {0.816430,-0.091990}, + {-0.502108,-0.698291}, + {-0.086025,0.915485}, + {-0.682122,-0.322046}, + {0.706000,0.763462}, + {0.796854,0.455243}, + {1.366467,1.196075}, + {0.417067,-0.256263}, + {0.015371,0.451181}, + {-0.400583,0.178607}, + {0.179912,-0.117066}, + {0.597156,-0.688654}, + {-0.661676,-0.820197}, + {0.085683,-0.217177}, + {-0.706450,-1.381830}, + {0.028548,1.200703}, + {-0.920667,0.289784}, + {0.160350,-0.351146}, + {-0.804724,-0.618602}, + {0.024888,0.647150}, + {-0.098113,0.173361}, + {0.697754,0.291105}, + {-1.408036,1.022388}, + {0.469920,0.445517}, + {0.384059,0.532228}, + {-0.151818,0.944132}, + {-0.090433,0.327546}, + {-0.879679,-1.070965}, + {-0.495967,0.063480}, + {-0.358409,-0.789978}, + {-0.699352,-0.883109}, + {-1.947079,0.913473}, + {-0.641222,-0.030654}, + {-1.419634,-0.263358}, + {-0.287427,1.075618}, + {1.041925,0.333373}, + {1.035917,-0.384391}, + {-0.742460,0.756039}, + {0.484778,0.439710}, + {-0.454690,-0.553386}, + {-0.860744,-0.035129}, + {-0.063566,0.489990}, + {0.107992,0.565035}, + {-0.016311,0.236242}, + {0.309996,0.522161}, + {0.839932,1.127528}, + {0.213453,-1.064570}, + {-0.716013,0.561550}, + {-0.277888,-0.545995}, + {-0.080229,-0.275056}, + {-1.231363,-0.438038}, + {-0.221378,1.152323}, + {0.465562,-0.015422}, + {-0.636983,-1.776097}, + {0.994972,1.153935}, + {-0.840363,-1.044283}, + {-0.147775,-0.659287}, + {-1.008426,1.195206}, + {0.221680,0.312210}, + {0.391826,0.267132}, + {-0.300629,0.352818}, + {1.088779,0.848130}, + {-0.087740,-1.562253}, + {-0.636828,0.356063}, + {0.255724,-0.928242}, + {0.197228,-1.313775}, + {-0.363243,-0.477933}, + {0.342319,1.332603}, + {-0.687342,-0.697300}, + {0.588366,-0.220649}, + {0.718963,1.534212}, + {0.378261,-0.815048}, + {0.008267,-0.048339}, + {-0.337132,-0.394747}, + {-0.429718,-1.955695}, + {0.422312,0.648188}, + {-0.225384,-1.038982}, + {-0.074649,-0.432788}, + {1.197830,0.224400}, + {0.179256,0.174055}, + {0.324657,-0.153234}, + {-0.008755,-0.720614}, + {1.171336,1.386902}, + {-0.502534,0.544987}, + {-0.874559,-0.045977}, + {0.641911,0.309244}, + {-0.852252,-0.189481}, + {0.905778,-0.240689}, + {0.805296,0.190095}, + {0.583950,0.500505}, + {0.927808,-0.289025}, + {-0.161069,-1.142641}, + {-0.829648,-1.067679}, + {0.160495,-0.177610}, + {-0.669901,0.538416}, + {-0.417880,-0.610111}, + {-0.641121,0.118270}, + {-0.307481,0.182497}, + {-0.098936,-0.300794}, + {0.079945,-1.126696}, + {0.767377,-0.205567}, + {-0.229164,-0.681283}, + {-0.938784,0.869544}, + {0.729480,-0.893640}, + {0.318684,0.291873}, + {-0.063858,-1.269459}, + {-0.394907,0.032640}, + {0.041145,-0.695384}, + {0.903121,-0.762764}, + {-0.236944,-1.403906}, + {0.010014,-0.107070}, + {-0.144645,0.624289}, + {0.889531,-0.018986}, + {0.956051,1.297021}, + {-0.096103,-0.738099}, + {-0.795984,-1.097452}, + {-0.394740,0.151985}, + {0.109809,-0.515633}, + {1.331729,-1.680084}, + {1.546974,0.279037}, + {-1.785160,-0.221012}, + {0.122575,-0.919889}, + {-0.788030,1.561325}, + {-0.205935,0.088416}, + {-0.265662,0.431570}, + {0.115537,0.899615}, + {0.471598,0.669058}, + {-0.214156,0.254611}, + {0.970194,1.044374}, + {-0.486194,0.026669}, + {0.232387,0.010928}, + {0.162715,0.243238}, + {-0.554603,0.305242}, + {0.050873,0.089235}, + {0.866591,0.431844}, + {-0.137254,0.419949}, + {-0.444023,-0.814751}, + {0.405856,0.278733}, + {-0.006847,-0.084791}, + {0.661887,0.366497}, + {0.036938,-1.474893}, + {0.074623,0.527883}, + {-0.932561,-1.217377}, + {-0.579955,-0.770222}, + {0.496777,-0.398753}, + {0.415390,0.029064}, + {-0.368869,0.318877}, + {-0.083926,0.115238}, + {-0.165148,0.315531}, + {-0.201764,-1.548454}, + {-0.837318,-1.399309}, + {0.078016,-0.732903}, + {-0.094333,-0.160290}, + {0.732228,-1.029345}, + {0.690766,0.425063}, + {-0.896572,-0.514863}, + {0.781318,-0.797095}, + {-0.121511,0.255802}, + {1.919578,-0.769384}, + {-0.060926,0.430455}, + {-0.409906,-0.249459}, + {-0.460218,-0.783980}, + {-0.191177,0.609070}, + {1.020451,-0.427484}, + {0.388170,-0.559406}, + {0.583320,0.030542}, + {-1.179019,0.739794}, + {1.513305,0.344903}, + {-1.082705,-0.638275}, + {-0.426897,0.254435}, + {-0.481466,0.047423}, + {0.330028,-0.364721}, + {0.571710,0.131679}, + {0.796521,-1.303731}, + {-0.192941,-0.043661}, + {-0.182032,1.445423}, + {-0.370906,0.132620}, + {1.865372,-0.256694}, + {0.122110,-0.042592}, + {-0.484049,0.625328}, + {0.498676,-0.447230}, + {-0.698297,-0.450146}, + {0.197802,0.388351}, + {-0.270285,0.053455}, + {0.113784,-0.200340}, + {0.144229,0.267333}, + {0.085266,1.105437}, + {-0.021050,1.100430}, + {1.668020,-1.591069}, + {1.074784,-0.878131}, + {-0.687458,-1.410101}, + {0.945055,0.057837}, + {-0.968993,-0.249526}, + {-0.095768,-0.004312}, + {0.539684,-0.120041}, + {-0.690336,-0.784441}, + {-0.070364,0.818636}, + {0.306879,-0.280708}, + {-0.072888,0.404632}, + {-1.158507,1.076282}, + {-1.311557,0.016792}, + {-1.276006,0.450810}, + {0.052812,-0.238705}, + {1.449476,-0.258773}, + {-0.935995,-0.005463}, + {-0.355631,0.492401}, + {-0.612492,0.524131}, + {0.838550,0.621703}, + {0.198766,-1.213802}, + {0.114797,-0.883231}, + {0.323205,-0.912574}, + {-0.492987,0.031387}, + {0.613420,-1.264507}, + {-0.452913,-0.543444}, + {0.252574,0.848988}, + {0.177081,1.145831}, + {-0.172781,-0.088674}, + {-0.380519,-0.210205}, + {-0.333186,-1.162848}, + {0.424112,-0.009379}, + {-0.876016,0.594356}, + {0.191680,-0.347826}, + {-0.001609,-0.647491}, + {-0.410415,-0.735499}, + {-0.001733,-0.310524}, + {-0.323841,0.482596}, + {-0.242955,0.027559}, + {0.502454,0.491188}, + {0.014760,0.136650}, + {0.969240,-0.064603}, + {-0.230129,-0.410373}, + {0.068982,0.158729}, + {-0.264938,1.121409}, + {-0.330733,-1.289736}, + {-0.310857,-0.416680}, + {-0.995101,0.426949}, + {0.044670,-0.644963}, + {-0.370186,-0.419359}, + {-0.198722,0.626537}, + {0.250446,-0.321014}, + {-0.199294,0.428196}, + {0.287559,0.661812}, + {-0.819334,-0.182923}, + {0.627230,0.073635}, + {-0.254799,0.086437}, + {0.629778,-0.238849}, + {-0.214531,-0.833867}, + {-0.370971,-1.340886}, + {-0.838782,0.085272}, + {0.699287,0.326143}, + {0.969557,0.265905}, + {0.224255,1.026885}, + {-0.705422,0.039940}, + {2.677294,0.824637}, + {-0.872479,0.726054}, + {-0.356049,-0.644072}, + {1.247068,-0.283382}, + {-0.052734,0.460700}, + {-0.219080,-0.773459}, + {-0.404964,1.015079}, + {-0.613011,-0.740705}, + {-0.224677,0.053237}, + {0.894221,0.740370}, + {1.156185,-0.712990}, + {0.292658,-0.216708}, + {-0.066752,1.055119}, + {1.357077,0.220257}, + {0.460298,0.433686}, + {-1.604282,0.281681}, + {0.013828,-0.330717}, + {0.170076,-0.933305}, + {1.041761,-0.252779}, + {-0.246114,-0.576060}, + {1.480525,0.007697}, + {0.441859,0.826016}, + {0.295619,-1.276915}, + {0.915688,0.319889}, + {0.022048,0.222383}, + {1.378602,-1.120309}, + {-0.027128,0.227251}, + {-0.029159,0.234012}, + {-1.232345,-1.709367}, + {0.443828,0.107305}, + {-0.853740,-1.028442}, + {0.423166,-0.208449}, + {0.437276,0.123764}, + {-0.405086,-0.566809}, + {-0.459850,-0.615080}, + {0.015966,-0.560154}, + {-0.524545,0.824488}, + {0.590298,1.680262}, + {-0.074765,1.037196}, + {1.410833,-0.872378}, + {0.595534,-0.084257}, + {0.283239,-0.652858}, + {-0.046879,-0.046124}, + {-0.369435,0.393944}, + {1.852725,0.076027}, + {-1.092554,-0.019375}, + {-1.380574,-1.233999}, + {0.377688,0.527289}, + {-0.179858,0.250972}, + {0.411598,0.469015}, + {0.284770,-0.983034}, + {0.950896,-0.086210}, + {0.315096,0.753994}, + {-0.153846,-0.582036}, + {-0.642368,-0.187750}, + {0.048072,0.639136}, + {-0.556765,-1.105212}, + {0.180486,-0.178092}, + {0.924552,-0.298329}, + {-0.232289,-1.459794}, + {-0.210924,-0.352326}, + {-0.743565,0.331766}, + {0.804067,-0.756999}, + {-1.120228,1.402332}, + {-0.563865,-0.766699}, + {-1.241026,-0.016935}, + {-1.083249,0.663982}, + {-0.696610,0.197940}, + {0.240815,-1.001368}, + {0.338313,-1.016316}, + {-0.333358,-0.619444}, + {0.114418,-0.274406}, + {-0.048887,0.026654}, + {0.319559,-0.940490}, + {-0.772192,-0.627506}, + {0.732077,0.628962}, + {-0.517531,-0.461387}, + {0.366764,-0.719179}, + {0.537746,0.869680}, + {0.349716,-0.212016}, + {-1.339703,0.494797}, + {-0.261270,0.480154}, + {-1.071839,-2.066688}, + {-0.370999,-0.038925}, + {-0.747227,0.085586}, + {-0.942602,-0.057338}, + {-0.072358,1.097723}, + {-0.205848,-1.136328}, + {0.597227,0.197329}, + {0.676518,0.381645}, + {-0.874854,-0.479414}, + {-1.999738,-0.565455}, + {-0.664048,-0.574682}, + {0.186569,0.411274}, + {-0.110267,-0.357864}, + {0.302705,-1.743357}, + {-0.319344,-0.476152}, + {-0.640334,-0.720226}, + {-0.910033,-0.422789}, + {-0.208408,0.548207}, + {-0.964300,0.002179}, + {0.824444,0.424217}, + {-1.032269,-0.762202}, + {0.105175,0.447058}, + {-0.012006,0.049305}, + {-0.937920,0.289750}, + {-1.253273,0.757789}, + {-0.762061,0.328438}, + {-0.241415,1.027135}, + {0.243270,0.013979}, + {-1.109143,-0.208914}, + {0.090512,-0.386316}, + {1.503883,0.622403}, + {0.175205,1.011719}, + {0.386237,-0.727356}, + {1.030490,-0.207293}, + {-0.934681,-0.637268}, + {0.390874,0.381332}, + {0.183902,1.098244}, + {-0.785477,1.103963}, + {0.665390,0.256809}, + {0.263688,-0.503673}, + {-0.166081,-0.926605}, + {-0.557337,0.532023}, + {-0.195427,1.271505}, + {-0.474249,0.447195}, + {0.443875,1.233854}, + {-0.269777,-0.979940}, + {-0.022060,0.544843}, + {0.313713,-0.853284}, + {-0.096390,2.008847}, + {0.439922,-0.335096}, + {0.896690,-0.588963}, + {-0.844743,0.183750}, + {0.781349,-0.755606}, + {-0.765362,0.170504}, + {-1.628206,-0.216829}, + {0.500102,-0.059625}, + {-0.304791,0.107158}, + {0.557697,-0.477804}, + {0.583642,0.627863}, + {-0.121640,-0.409209}, + {-1.120829,-1.076884}, + {-0.536931,0.178972}, + {-0.417448,-0.458302}, + {0.718477,-1.059868}, + {0.610038,-0.423881}, + {0.999029,-0.368049}, + {-0.197010,0.618818}, + {-0.092802,0.280660}, + {-0.884475,0.746423}, + {-0.218251,0.164965}, + {-0.421409,0.312894}, + {-0.658414,0.399046}, + {0.745212,-0.200538}, + {0.941667,-0.785267}, + {0.521849,0.859422}, + {-0.473471,0.762251}, + {0.397426,-0.176657}, + {-0.323150,0.760653}, + {-0.998414,1.716395}, + {0.740360,-0.938944}, + {0.023348,1.116443}, + {1.069598,-0.382364}, + {-1.043662,0.236812}, + {-0.382172,-0.980040}, + {-0.349019,0.364638}, + {-0.298100,-1.107602}, + {0.456000,0.116486}, + {0.877536,0.868085}, + {0.048209,-1.069550}, + {0.661781,-1.278720}, + {0.359336,0.813250}, + {-0.123966,-0.468063}, + {0.430191,0.023114}, + {-0.135566,-0.319366}, + {0.968871,-0.115512}, + {-0.394328,-0.170491}, + {-0.009694,-1.061476}, + {0.046248,-0.139918}, + {0.368727,0.177700}, + {0.414373,-0.767674}, + {0.759806,0.895111}, + {-1.039452,-0.596694}, + {0.098206,0.950569}, + {-1.174535,-0.768597}, + {0.623601,-0.766489}, + {1.209239,-0.052878}, + {-0.452015,-0.009341}, + {0.690382,0.542857}, + {-0.108723,0.123140}, + {-0.529691,0.324165}, + {1.478203,-0.911289}, + {1.068649,-0.374113}, + {0.299869,0.396780}, + {0.430316,0.155351}, + {0.013919,-0.121839}, + {0.039700,0.017585}, + {-0.571082,-0.704321}, + {-0.736133,1.469112}, + {0.703268,-0.091642}, + {0.386893,0.603817}, + {0.172514,-0.849675}, + {0.607745,0.054904}, + {0.271231,-0.590061}, + {0.913552,-0.116009}, + {-1.138750,0.486391}, + {-0.076353,-0.638643}, + {-0.498974,0.588957}, + {-0.246757,-1.191164}, + {-0.997522,0.317823}, + {-0.041872,0.542933}, + {1.096147,0.311412}, + {-0.397941,-0.073418}, + {-0.674415,-0.476303}, + {0.129485,-0.144863}, + {-0.320564,-0.468116}, + {-0.409642,-0.561575}, + {0.221420,-0.215094}, + {-0.958367,0.609774}, + {-0.465613,0.040251}, + {0.382094,-1.384503}, + {0.918899,0.048990}, + {-0.078886,0.735926}, + {-0.090336,-0.471819}, + {-0.263712,-0.599983}, + {0.620502,-0.130819}, + {-0.335282,0.318506}, + {0.052591,0.963759}, + {-0.671888,0.668188}, + {-0.372171,-0.042465}, + {0.471828,-0.469881}, + {-0.393130,-1.355191}, + {0.245535,-0.797273}, + {-0.293227,-0.997773}, + {-0.191794,-0.927120}, + {0.484915,-1.363790}, + {0.318464,0.435871}, + {-0.854547,-0.351262}, + {-0.218097,-0.360717}, + {0.263629,-0.076017}, + {-0.414797,0.096633}, + {0.897394,-0.109831}, + {0.962227,-0.804732}, + {0.151329,1.627499}, + {0.990435,0.235665}, + {0.290903,0.311037}, + {0.160010,-0.053403}, + {-0.069998,0.302710}, + {0.084036,0.853274}, + {0.560929,-0.560850}, + {-0.106112,0.314448}, + {-0.421578,-0.268470}, + {-0.785387,-0.750187}, + {-1.189174,-0.084856}, + {0.466530,0.976102}, + {0.880929,-0.457008}, + {-0.729195,-0.675082}, + {0.104374,-0.633442}, + {0.757444,-0.949991}, + {0.008917,0.692426}, + {-0.338838,0.532756}, + {0.794670,0.717730}, + {-0.709404,1.043684}, + {0.579162,0.487640}, + {-0.404886,0.060629}, + {1.349450,-0.355399}, + {0.770612,-1.464736}, + {0.347219,0.274775}, + {0.354646,-0.020434}, + {0.465359,-0.985538}, + {0.385781,1.068191}, + {-0.106262,1.103081}, + {-0.599815,-0.997276}, + {-0.492767,-0.081408}, + {-0.245567,0.057807}, + {0.120883,0.308476}, + {-1.143013,-0.054048}, + {0.398061,0.717026}, + {-0.600222,0.456605}, + {-0.984594,-0.328664}, + {0.330060,0.028399}, + {0.273902,-1.559059}, + {0.491818,0.871726}, + {-0.827789,-0.540048}, + {0.065844,0.068222}, + {-0.808401,1.160869}, + {-1.274150,-0.355051}, + {0.561683,0.271525}, + {-0.413291,-0.224445}, + {-0.344482,-0.270754}, + {-0.669051,0.246237}, + {-0.049024,-0.250489}, + {0.977734,-0.366526}, + {-0.742840,0.329251}, + {-0.793661,-0.540377}, + {-0.164454,-0.041182}, + {0.796305,-0.095571}, + {-0.168732,0.018351}, + {-0.010513,1.211849}, + {-0.994831,-0.709750}, + {-1.282949,0.285938}, + {0.864976,0.026893}, + {-0.160674,-0.991054}, + {0.235256,0.436919}, + {1.212801,-0.909780}, + {0.529844,0.976362}, + {0.946160,-0.680521}, + {0.094877,0.672648}, + {-0.675454,-0.322118}, + {0.305372,-0.550007}, + {0.912401,1.035879}, + {1.131467,-0.138706}, + {-0.253731,-0.964860}, + {0.051329,-1.529624}, + {-0.113924,0.173806}, + {0.884102,0.159153}, + {-0.227632,0.877234}, + {1.010051,-1.543880}, + {0.809937,-0.173659}, + {0.332144,-0.243052}, + {-0.906095,0.676593}, + {0.073033,-1.548259}, + {0.458666,0.050823}, + {-0.289121,1.068049}, + {-0.383643,0.011142}, + {0.134420,0.076707}, + {0.466514,-0.043312}, + {0.438283,-1.522376}, + {0.163508,-0.193750}, + {0.487026,0.542501}, + {-0.200524,0.459230}, + {0.262819,1.505884}, + {0.653087,-0.201042}, + {0.233565,-0.547870}, + {-1.017089,0.878535}, + {0.228269,-0.679254}, + {1.248531,-0.791408}, + {0.439579,1.697946}, + {0.592039,-0.339903}, + {-0.109908,0.453321}, + {-1.115247,0.010700}, + {-0.164818,1.131623}, + {2.025510,-0.505251}, + {-0.309346,-1.373256}, + {0.537120,-0.360283}, + {-0.104894,0.296882}, + {0.024801,0.978248}, + {-0.937777,-1.070944}, + {-0.198826,-0.783295}, + {-1.127480,-0.610347}, + {0.298001,0.024948}, + {0.145368,0.794536}, + {0.612907,-0.059654}, + {0.782929,-0.048403}, + {-0.435378,-1.436197}, + {0.169811,0.516786}, + {-0.116510,0.319035}, + {0.538300,0.841565}, + {-0.155311,0.492565}, + {0.620200,0.730660}, + {-0.015916,0.419497}, + {0.164181,-1.630272}, + {0.824648,0.320043}, + {-1.560239,0.572704}, + {-0.252823,0.296962}, + {-0.746081,0.958339}, + {0.082239,-1.217646}, + {-0.567736,0.000241}, + {0.427482,0.476159}, + {-0.459043,1.161889}, + {0.254120,-0.488463}, + {-0.023313,-0.723543}, + {-0.293002,-0.169112}, + {0.089490,-0.261529}, + {0.247961,0.791363}, + {-1.110516,-0.166830}, + {0.983670,-1.198302}, + {0.519375,-0.785171}, + {-0.619925,0.150262}, + {0.569926,0.149914}, + {0.719057,-0.514677}, + {0.458531,-0.475477}, + {0.571393,1.036797}, + {-0.827266,-1.069063}, + {-0.208821,0.601468}, + {0.601543,-0.246378}, + {-0.545977,-0.481944}, + {-0.142618,-0.493885}, + {0.104624,-0.885512}, + {-0.806208,-1.172703}, + {-0.327891,-0.764616}, + {-0.111412,0.778570}, + {-0.025417,-0.823612}, + {-0.064253,0.146300}, + {0.897841,0.233453}, + {0.170462,-0.208221}, + {0.469815,0.534622}, + {0.464492,0.082733}, + {0.852167,-0.277563}, + {0.042076,-0.252323}, + {-0.639666,-0.218750}, + {0.344882,-0.710013}, + {-0.897684,0.020080}, + {0.969355,-0.131562}, + {-1.412936,0.152039}, + {0.762647,-1.063394}, + {-0.706248,-0.458628}, + {-0.193334,0.251486}, + {-0.278574,-0.609158}, + {-0.000444,0.167283}, + {-0.191255,-0.598270}, + {0.113407,0.082497}, + {1.361065,0.155568}, + {-0.171486,0.161889}, + {1.639261,-0.316890}, + {-0.129987,-0.110577}, + {-0.802764,1.330457}, + {-0.147106,0.095728}, + {0.820872,1.110744}, + {-0.391447,0.136340}, + {0.927357,0.908692}, + {1.225880,-0.741652}, + {0.166896,-2.018048}, + {-0.072197,-0.734190}, + {-0.188537,0.562295}, + {-0.419001,0.597966}, + {1.012061,-0.032231}, + {-1.265661,-0.098692}, + {-0.363672,0.493087}, + {-1.277901,0.568014}, + {0.094125,0.641038}, + {0.366210,-0.871913}, + {-0.406243,1.248265}, + {-0.265139,0.291993}, + {-0.711300,-0.517739}, + {0.551969,0.211300}, + {0.863097,0.620748}, + {-0.791252,0.292823}, + {-0.859584,-0.514999}, + {-0.222594,0.242104}, + {-0.529240,1.091900}, + {0.056589,-0.206772}, + {-0.206678,0.117667}, + {-0.372107,0.346623}, + {0.197375,0.175770}, + {0.109383,-0.285298}, + {-0.128606,-0.575351}, + {-1.350885,-0.629351}, + {-0.549311,-0.890107}, + {-0.052058,-0.399744}, + {0.117226,-0.822548}, + {-0.522921,-0.747784}, + {0.696853,0.225147}, + {1.404505,0.031853}, + {-0.199716,0.923465}, + {-0.366027,-0.965298}, + {0.254400,0.565191}, + {0.720813,-0.011776}, + {0.048742,0.485636}, + {0.463885,-0.445094}, + {-0.354658,-0.258331}, + {-0.512308,0.875492}, + {0.109512,-0.704183}, + {-0.359123,-0.222049}, + {2.094077,-0.596104}, + {0.099119,0.151596}, + {1.272189,-0.870022}, + {-1.203661,0.080126}, + {-0.402370,-0.038618}, + {-1.465566,0.187786}, + {-0.188615,-0.551253}, + {-0.144342,-0.651031}, + {0.466536,-0.902577}, + {0.442013,-0.756855}, + {0.651331,0.059349}, + {-0.580323,-0.556246}, + {1.443369,0.532876}, + {-0.410520,0.142482}, + {-0.638481,-1.620247}, + {1.107948,0.449859}, + {-0.053538,0.595051}, + {-0.660756,0.271631}, + {-0.110972,0.102598}, + {-0.853215,0.693121}, + {-0.815886,0.697183}, + {0.444707,0.103685}, + {-0.147454,1.248558}, + {-0.304216,0.147728}, + {-0.380406,0.389584}, + {0.869539,-0.442373}, + {0.367415,0.370479}, + {-0.860426,0.294945}, + {-0.310280,-0.101136}, + {-0.724660,-0.542268}, + {0.084686,-0.384017}, + {0.620385,-0.343553}, + {0.193432,-0.835223}, + {0.342748,0.073244}, + {-0.208107,0.866350}, + {-0.433622,-0.098584}, + {-1.050180,0.800354}, + {1.140817,-0.095778}, + {0.074059,0.720540}, + {0.324579,-0.250899}, + {0.908664,-0.424491}, + {-0.349658,0.492219}, + {-0.416368,-0.443491}, + {-0.093378,0.249512}, + {-1.388730,0.610637}, + {0.516564,-1.098854}, + {-0.860684,0.484278}, + {-0.183881,-0.463325}, + {-0.461003,-0.667445}, + {0.768848,0.198854}, + {0.229416,-1.256209}, + {0.480655,-0.403404}, + {0.479239,-0.007571}, + {-1.318306,0.738942}, + {1.469443,-0.959983}, + {0.253482,0.333056}, + {0.017190,1.742204}, + {-0.519932,0.898752}, + {-0.452267,-0.316200}, + {0.022717,1.692417}, + {0.796237,-0.765617}, + {-0.812041,-0.198540}, + {0.884469,-0.078862}, + {0.030191,-0.787176}, + {1.126078,-0.516637}, + {-1.102333,0.446474}, + {0.446080,-0.315343}, + {-0.062631,-0.265291}, + {-0.853606,-0.044797}, + {1.077386,-0.224226}, + {-0.147136,-0.399345}, + {0.166629,-0.401479}, + {0.257271,0.174285}, + {-0.244527,-0.825127}, + {-0.798872,0.420259}, + {0.491059,0.151109}, + {-1.041543,-1.289491}, + {-0.331789,-1.527598}, + {-0.083175,0.394579}, + {-0.323992,0.766890}, + {0.902158,0.010174}, + {1.662799,-0.272640}, + {-0.497409,-0.677542}, + {-0.849235,0.346076}, + {0.747101,0.412698}, + {1.611062,0.866991}, + {0.163223,-0.262013}, + {0.741905,0.535948}, + {-0.239992,0.315095}, + {1.073907,0.578535}, + {-0.344179,0.817836}, + {-0.620181,-0.707425}, + {0.834661,0.312322}, + {-1.019361,-0.609310}, + {1.785614,-0.162301}, + {0.529534,0.672965}, + {0.486672,0.153629}, + {-0.288024,-0.719498}, + {0.413983,0.270909}, + {1.374466,0.087559}, + {0.163283,0.494934}, + {-0.234819,0.954579}, + {0.012206,-0.678054}, + {1.572847,-1.076632}, + {-0.599282,-0.633372}, + {1.095665,-0.655620}, + {-0.684687,-0.201969}, + {-0.549440,0.045874}, + {0.322676,0.581203}, + {0.148109,0.304196}, + {-0.253076,0.734066}, + {-0.251967,0.042417}, + {0.045715,-0.031266}, + {1.116937,1.123835}, + {0.483493,0.290907}, + {0.068072,0.333893}, + {-0.429817,-0.931647}, + {-0.480528,-0.164660}, + {-0.775073,0.535179}, + {-0.275572,-0.740592}, + {0.448695,-0.532992}, + {0.393924,-0.730806}, + {-0.932048,-1.011165}, + {-0.001888,0.395913}, + {-0.030311,0.267041}, + {0.251709,-0.163471}, + {0.758127,1.170676}, + {-0.971904,0.719459}, + {-0.677315,1.283372}, + {0.015133,0.474236}, + {0.250784,0.239230}, + {-0.284132,0.714203}, + {0.344950,0.419915}, + {1.583594,-0.064074}, + {0.576677,0.349100}, + {0.125629,0.022908}, + {0.377394,-0.234506}, + {-0.563284,-0.715614}, + {0.101048,-0.920563}, + {0.608430,0.161613}, + {-0.928742,-0.992338}, + {-0.294843,-0.399957}, + {-0.365761,0.504701}, + {0.306154,0.060709}, + {0.715237,0.113832}, + {-0.231447,-0.747493}, + {-0.137875,0.022192}, + {0.270512,-0.373718}, + {-0.284239,-0.283799}, + {0.279434,0.240517}, + {0.968853,-1.661595}, + {0.795511,0.040827}, + {0.756925,-0.008006}, + {0.410158,0.188364}, + {0.212647,0.160361}, + {-0.274239,0.135422}, + {-0.748007,0.121514}, + {1.889864,-0.426021}, + {-1.118363,0.603299}, + {-1.079087,0.214901}, + {0.881102,0.533797}, + {0.977096,0.271883}, + {-0.593182,-0.608447}, + {-0.831317,-0.259562}, + {-1.046078,-0.378692}, + {-0.521179,1.064548}, + {0.310178,-0.242294}, + {-0.276422,-0.319965}, + {-0.581592,-1.175487}, + {0.078785,0.414402}, + {0.384824,-0.029560}, + {0.350595,-0.015079}, + {-0.505694,0.346891}, + {-0.244162,-0.431912}, + {0.179140,0.408671}, + {-1.683719,-0.175195}, + {-0.439600,-0.848327}, + {0.214818,-0.535441}, + {0.799181,1.313585}, + {-0.476475,1.275140}, + {-0.281987,-0.003127}, + {-0.659120,0.672635}, + {-0.061892,-0.705050}, + {-1.224782,0.446358}, + {0.016139,0.676888}, + {0.102488,0.468285}, + {0.270256,1.292447}, + {-0.872090,0.046884}, + {0.843556,-0.407998}, + {1.131680,-0.756558}, + {0.414796,-1.380356}, + {-0.696230,-1.001295}, + {-0.356978,0.947810}, + {0.203772,-1.057518}, + {-0.328018,0.786771}, + {0.943286,1.338451}, + {-1.157899,-0.594093}, + {0.126929,1.437347}, + {1.125664,-0.410598}, + {1.476748,-0.336433}, + {0.391183,0.754958}, + {-0.538390,1.039711}, + {0.539183,0.253245}, + {-0.738926,-1.328143}, + {0.843172,-0.517204}, + {-1.094296,0.432451}, + {-0.207836,0.579061}, + {-0.780287,-0.213072}, + {0.251006,-0.069137}, + {0.847453,0.521498}, + {-0.110487,-0.550587}, + {1.366744,0.051771}, + {0.111898,-0.116679}, + {0.457595,0.211260}, + {-0.224542,-0.247515}, + {-0.075318,-0.913189}, + {0.413131,0.636904}, + {0.442816,-0.725927}, + {-0.269415,-1.101203}, + {1.238631,-0.048564}, + {-0.867622,-0.029135}, + {-1.272665,-0.426738}, + {-0.358993,1.214374}, + {0.223994,0.430413}, + {-0.069366,-0.065533}, + {-1.151986,-0.046081}, + {-0.034817,-0.587513}, + {0.820362,-0.805810}, + {-0.002677,-0.479108}, + {-0.501825,-0.402321}, + {0.479133,0.520280}, + {-0.023935,0.157521}, + {-0.805270,-0.213889}, + {-0.652714,-1.133157}, + {0.141114,0.750052}, + {-0.870557,0.131878}, + {-0.537313,0.243984}, + {0.270492,1.388730}, + {0.351691,-1.026747}, + {0.265859,-0.073035}, + {0.876907,0.008793}, + {-0.015669,0.222651}, + {-0.458046,-0.172892}, + {0.480864,-0.236468}, + {-0.304051,0.883748}, + {1.386217,0.196728}, + {-0.448091,0.725679}, + {0.279281,1.432388}, + {-1.090792,-0.202419}, + {0.531809,-0.405696}, + {-0.038049,0.323853}, + {-0.027231,-0.016436}, + {-0.716140,-0.504110}, + {0.323352,-0.270107}, + {-0.253368,-1.019154}, + {-0.779463,-0.217103}, + {-0.579380,-0.994819}, + {1.349996,0.012975}, + {0.343522,-0.422818}, + {0.277107,-1.468269}, + {1.635924,-0.133051}, + {-0.184484,0.613490}, + {0.452174,1.169168}, + {-0.116411,0.804015}, + {-0.040472,0.200894}, + {-0.451595,0.380316}, + {-0.018660,-0.980569}, + {1.037949,1.233064}, + {1.095728,0.983920}, + {0.472751,-0.243982}, + {0.234380,0.303549}, + {-0.706062,1.365919}, + {-1.056416,-0.147830}, + {0.003918,0.621718}, + {-0.866214,-0.038261}, + {0.019575,-0.379413}, + {0.205000,0.142153}, + {-0.272811,0.136060}, + {-1.150797,-1.754010}, + {0.777102,0.334033}, + {0.144743,0.082452}, + {0.409845,1.246999}, + {-0.848828,-0.844270}, + {0.336356,1.069431}, + {-0.261880,0.472035}, + {-0.274440,-0.250428}, + {0.096055,1.333042}, + {-1.150019,-0.005824}, + {-0.345565,1.491009}, + {0.434845,0.644814}, + {-0.995453,0.103214}, + {-0.248426,-0.545754}, + {0.087275,1.536388}, + {-1.950359,0.672084}, + {0.687779,0.938171}, + {0.592318,-0.358229}, + {0.719642,-0.071983}, + {-0.080845,0.708763}, + {0.136255,-1.235083}, + {-0.251003,-0.912274}, + {-0.884002,-0.310324}, + {0.031525,0.320763}, + {0.556086,-0.250977}, + {0.090584,0.172983}, + {-0.360676,0.948733}, + {-0.090851,0.465571}, + {-0.059321,0.271202}, + {0.377821,0.928997}, + {-2.122083,-0.662680}, + {0.606876,-0.740523}, + {0.304647,-1.075289}, + {0.104366,0.294334}, + {-0.618571,-1.125453}, + {0.347400,-0.197963}, + {0.740467,-0.980580}, + {0.567211,0.587097}, + {-0.009102,0.368841}, + {0.365819,1.246754}, + {0.408926,-0.573655}, + {0.629943,0.031990}, + {-0.888191,-1.455036}, + {-0.192010,-1.721713}, + {-0.525795,-0.883365}, + {-0.688342,-0.233976}, + {-1.231810,0.919714}, + {-0.171857,0.047815}, + {0.829192,0.498064}, + {-0.164813,0.833731}, + {-0.835674,1.420757}, + {0.117641,0.408307}, + {0.061907,-0.340905}, + {0.328647,0.483077}, + {-0.334550,-0.634442}, + {-1.143177,0.176319}, + {0.945986,-0.429932}, + {0.962872,-0.156957}, + {0.316408,-0.309555}, + {-0.071834,0.467993}, + {0.374919,0.531204}, + {-0.061652,-0.441122}, + {0.296652,-0.735807}, + {0.635521,0.547129}, + {-0.820187,-0.119987}, + {-0.256993,-0.874678}, + {-1.176903,0.375631}, + {-0.389114,1.458620}, + {-1.499695,1.086553}, + {0.662846,-0.346478}, + {1.134804,0.260529}, + {-0.353432,0.041867}, + {0.599759,-0.706760}, + {0.233411,-0.191501}, + {0.069271,-0.371072}, + {-0.299719,-0.158599}, + {0.156862,0.287897}, + {0.044521,-1.565973}, + {0.647652,-0.050318}, + {-0.625813,0.313538}, + {-0.305193,0.707469}, + {-0.889292,-0.615903}, + {0.108968,0.323345}, + {0.891658,0.530089}, + {-0.619121,0.542110}, + {-0.173821,-0.076271}, + {-0.066656,-0.380613}, + {1.201157,-0.868830}, + {-0.269634,-0.547771}, + {-0.166608,0.337899}, + {-0.580004,0.028538}, + {-0.178471,0.256375}, + {0.479790,-0.353481}, + {-0.141978,-0.140536}, + {0.573456,-1.096426}, + {-1.407537,0.376742}, + {-0.000291,-0.159343}, + {0.566129,1.021878}, + {0.592375,0.213044}, + {-1.093385,-0.195052}, + {-1.227213,-0.283957}, + {-1.107600,-0.512341}, + {0.405843,-0.034674}, + {-0.628223,-1.573836}, + {-0.424388,-1.127573}, + {1.352502,0.703620}, + {0.260965,0.940215}, + {0.564688,-0.617820}, + {0.627958,-1.090734}, + {-0.519309,-0.170822}, + {-0.018574,0.160240}, + {0.581393,0.735974}, + {-1.723723,-0.001348}, + {0.426947,0.152603}, + {1.732577,-0.140408}, + {0.733090,-1.014674}, + {0.548625,-0.606929}, + {-0.104524,-0.976971}, + {0.002059,0.365576}, + {-0.437915,-0.973652}, + {0.409557,-0.489978}, + {-0.000720,0.508669}, + {0.256095,-1.595859}, + {0.287175,0.564402}, + {0.876617,-1.300599}, + {-0.980624,0.538104}, + {-0.197058,-0.835753}, + {0.293510,1.023684}, + {-1.124246,-0.346680}, + {1.728107,0.223808}, + {0.608823,0.314713}, + {-0.678436,-0.934938}, + {0.467041,-0.286489}, + {0.304061,0.659360}, + {0.433362,-0.114714}, + {0.470833,0.482791}, + {0.136415,0.001946}, + {-0.192213,1.062735}, + {1.160425,1.197857}, + {0.570082,-0.708591}, + {-0.674925,-0.979498}, + {0.258815,-0.140179}, + {0.765330,0.060888}, + {-1.138194,-0.547729}, + {-0.342221,-0.331377}, + {0.487680,-0.431774}, + {0.195766,-0.563726}, + {-0.515654,-2.231175}, + {-0.514830,1.422505}, + {-0.818513,0.454493}, + {0.380391,0.182849}, + {-0.069606,1.071475}, + {-1.175893,0.278782}, + {-1.024879,-0.018088}, + {0.047685,-0.767415}, + {-0.451445,0.575550}, + {0.806845,-0.635450}, + {0.137154,0.051450}, + {0.484762,0.473028}, + {1.476065,-0.375153}, + {0.038745,0.227390}, + {1.613348,-0.285214}, + {0.027663,-0.441607}, + {0.327132,0.393034}, + {0.097041,1.118078}, + {-1.373910,-0.535039}, + {-0.830631,0.886098}, + {0.712699,0.117282}, + {-0.435669,0.900266}, + {-0.230984,0.260017}, + {-1.134322,0.277879}, + {1.217344,0.070220}, + {-0.322548,0.229832}, + {-0.912984,1.081382}, + {0.945157,-0.653585}, + {0.109940,-0.208093}, + {-0.750971,-0.827736}, + {0.077654,-0.623765}, + {1.218827,-0.344685}, + {-0.313002,0.296601}, + {0.400554,0.568839}, + {0.304519,-0.601576}, + {0.373664,1.261417}, + {0.019345,0.795808}, + {-0.078023,-0.626856}, + {0.116647,0.074558}, + {0.563238,-0.563330}, + {-2.463399,0.442332}, + {-0.109267,0.048086}, + {0.519121,0.180174}, + {0.193848,-0.161425}, + {-0.042920,0.296486}, + {0.073707,-1.348922}, + {0.617742,-0.148470}, + {0.261979,-0.030175}, + {1.197662,-1.031986}, + {-0.180963,0.326171}, + {-0.182722,0.138127}, + {0.333006,-0.298385}, + {0.118052,0.145749}, + {-0.378857,-0.353684}, + {-0.874132,-0.138412}, + {1.049590,-0.258466}, + {-0.227425,0.931924}, + {0.060564,0.378351}, + {0.371015,-0.349550}, + {-0.143444,-0.217476}, + {-0.247485,-0.046193}, + {-0.765423,0.386454}, + {0.075810,0.747783}, + {-0.562521,-0.075906}, + {0.409856,-0.469514}, + {-0.135998,-0.492786}, + {0.986502,-0.462649}, + {-0.068894,0.801619}, + {-0.162736,0.525729}, + {-0.453916,0.283674}, + {-0.123426,-1.358265}, + {1.200608,-0.396901}, + {0.577734,-0.019945}, + {-0.436619,0.346352}, + {0.830315,0.899719}, + {-0.064963,1.026769}, + {-0.019483,-1.140266}, + {-0.248584,0.297740}, + {-0.203858,0.942282}, + {-0.081061,-0.362369}, + {0.963064,0.245140}, + {-0.061346,0.970336}, + {-1.223766,-1.442024}, + {-0.659296,-0.305137}, + {-0.168098,0.526909}, + {0.244864,0.201375}, + {-1.037356,-0.409374}, + {-0.342768,0.074298}, + {-0.126356,0.583275}, + {0.700812,0.148717}, + {1.123453,-0.594402}, + {-0.880209,-0.000771}, + {0.508231,0.583812}, + {0.461500,-1.305179}, + {-0.352762,-0.342643}, + {0.026590,1.641167}, + {0.172356,-0.551779}, + {0.624259,1.319173}, + {-0.343181,0.521502}, + {-0.377493,0.564330}, + {0.463338,0.107471}, + {-1.020304,0.501309}, + {1.214700,-0.385908}, + {0.246930,0.896288}, + {-1.150099,0.525414}, + {0.598091,-0.621490}, + {-0.551424,0.044236}, + {0.503002,0.175473}, + {-0.326038,0.203589}, + {0.000174,-0.755465}, + {-0.076286,0.193240}, + {0.751071,-0.851721}, + {-1.638472,-0.078066}, + {0.277348,0.196780}, + {0.017669,-0.946993}, + {-0.808836,0.460763}, + {0.389572,-0.585954}, + {-0.536593,-0.448112}, + {0.668181,-0.374583}, + {-0.103420,-0.222061}, + {0.033553,0.915602}, + {-0.727955,-0.942821}, + {0.227992,-0.544748}, + {0.215369,0.016803}, + {-0.331175,-0.358666}, + {-0.369147,-1.683768}, + {0.287561,1.754403}, + {0.730502,1.075420}, + {0.098139,0.193287}, + {-0.220536,-0.547638}, + {-0.708086,0.229183}, + {-0.066645,0.221207}, + {-0.544498,0.224689}, + {0.909845,0.066686}, + {-0.417147,-1.561040}, + {-0.588530,-0.271389}, + {0.765381,0.630382}, + {-1.536043,0.954170}, + {-0.007504,-0.251426}, + {0.320371,-0.415162}, + {-1.079865,-0.015651}, + {1.246319,-0.288800}, + {1.664357,0.873397}, + {1.274888,-0.286462}, + {0.089238,0.521546}, + {-0.850328,-0.204610}, + {-1.344064,-0.175840}, + {1.059629,0.597417}, + {1.396640,-0.558153}, + {-1.299523,-0.700533}, + {-0.303029,-0.016323}, + {-0.571055,-0.101430}, + {0.240632,-0.156008}, + {-0.210472,-0.676508}, + {-0.377210,-0.257232}, + {-0.458563,0.394798}, + {-1.298114,0.535994}, + {0.348716,1.486169}, + {-0.551518,0.095552}, + {-0.454461,0.613793}, + {0.589896,0.608956}, + {0.024315,-0.615423}, + {0.108640,0.657051}, + {0.277486,0.095590}, + {0.112263,0.590235}, + {-1.676875,0.295265}, + {-0.641851,0.429911}, + {0.112035,-0.999186}, + {0.407359,1.310697}, + {0.123607,-0.285048}, + {-0.584768,0.856268}, + {0.365845,-1.606895}, + {0.118025,0.980790}, + {0.976487,-0.548793}, + {-0.608533,0.177190}, + {-0.254552,0.490015}, + {-0.764686,-0.476040}, + {0.339780,0.307140}, + {1.071418,-0.394981}, + {0.343840,-0.138409}, + {0.050959,0.206412}, + {-0.132190,1.024308}, + {-0.531174,-0.997495}, + {0.107836,0.197144}, + {0.006508,0.051268}, + {-1.180682,-0.078210}, + {-0.301054,0.221919}, + {-0.198790,-2.154487}, + {1.281974,-0.406055}, + {0.248667,0.220739}, + {-0.151733,0.572224}, + {-0.887702,-0.282886}, + {-0.035221,0.961347}, + {-1.071469,0.514402}, + {-1.341250,0.603023}, + {-0.080709,0.493279}, + {0.437681,-0.565973}, + {0.221259,1.582183}, + {-0.409386,0.729511}, + {0.982076,-0.071098}, + {-1.001791,-0.519130}, + {-0.121082,-0.007075}, + {-0.339436,1.234458}, + {1.513595,0.969100}, + {-0.583819,0.253911}, + {0.177078,-0.732721}, + {1.010067,0.995855}, + {-1.355505,0.888006}, + {-0.332757,0.204762}, + {0.021403,1.025592}, + {-1.217885,0.139156}, + {0.889080,0.092179}, + {-1.102149,0.293526}, + {0.435463,-0.449178}, + {0.080275,0.169176}, + {-0.709930,-1.149043}, + {0.196490,-0.626610}, + {0.000069,-0.943691}, + {0.223655,0.039723}, + {-0.560770,-0.882470}, + {-0.807256,0.094114}, + {-0.058225,-0.349692}, + {-0.500905,-1.096078}, + {-0.962775,0.327158}, + {0.282785,-0.401214}, + {0.361234,-0.934402}, + {0.576734,-0.359076}, + {-1.413799,0.265539}, + {-1.117609,-0.837082}, + {0.180753,-0.472530}, + {-0.120835,-0.959192}, + {-0.157811,0.176422}, + {-0.850684,0.325782}, + {0.828223,0.792925}, + {0.054204,0.579626}, + {-1.121286,-0.414842}, + {-0.113676,0.001080}, + {0.642904,0.453393}, + {-1.026285,0.939691}, + {0.521202,0.352828}, + {0.456312,-0.206836}, + {0.058434,-0.053600}, + {0.115901,0.497408}, + {1.204157,-0.447713}, + {0.345992,-0.395337}, + {0.164925,1.328079}, + {0.069910,0.657455}, + {0.884794,0.478670}, + {0.805589,0.626931}, + {-0.169274,-0.328030}, + {-0.535077,0.102330}, + {-0.946526,0.154656}, + {0.358642,-1.362812}, + {-0.676983,-0.652080}, + {0.992864,-0.004017}, + {-0.410549,0.342659}, + {-1.235267,0.713491}, + {-0.398621,0.103696}, + {-0.820035,0.801927}, + {1.200059,0.099361}, + {0.165502,0.725726}, + {-0.591579,0.903920}, + {-0.843723,0.547834}, + {0.773809,0.403580}, + {-0.110340,-0.128695}, + {-0.642852,0.256573}, + {0.020826,-0.020841}, + {-2.163248,0.136883}, + {-0.964862,0.387295}, + {0.687709,0.453517}, + {-0.112839,-0.567023}, + {-0.409633,0.580404}, + {-0.395668,1.251119}, + {0.347308,-0.652184}, + {1.734678,-0.822788}, + {0.601811,-0.259379}, + {0.378296,-0.866471}, + {0.498403,-0.656762}, + {0.504824,0.489810}, + {0.639843,0.108016}, + {-0.224104,0.234376}, + {0.009714,-1.168003}, + {0.019711,0.237093}, + {0.442850,0.092101}, + {0.202559,0.660920}, + {-0.738652,-1.371965}, + {-1.297719,0.932182}, + {0.739608,1.592722}, + {0.287503,-0.045919}, + {1.222096,-0.184544}, + {-0.022342,-1.348633}, + {-0.384473,0.250028}, + {0.001750,-0.224717}, + {-0.339904,-0.227850}, + {-0.775438,-1.310795}, + {0.571535,0.293371}, + {-0.324597,0.227490}, + {0.169930,1.145261}, + {-1.551123,-0.199599}, + {0.903788,-0.358227}, + {-0.622574,-0.635810}, + {-0.045168,1.216837}, + {0.093370,2.013175}, + {-0.171013,-0.524670}, + {0.035948,0.841222}, + {-0.592962,0.383082}, + {0.304794,-0.702133}, + {0.779021,0.240417}, + {1.021212,0.841250}, + {-0.373074,-0.296006}, + {-0.522088,1.139662}, + {-0.268210,-0.251780}, + {-0.668865,-0.925004}, + {-0.197566,0.255127}, + {1.441911,1.117605}, + {0.359801,0.069378}, + {0.485969,-1.028166}, + {0.009410,1.004055}, + {-0.386974,-1.624570}, + {0.923300,0.143629}, + {0.181342,0.541303}, + {0.292919,0.079149}, + {0.324985,-0.714574}, + {1.032349,-0.142324}, + {-0.163295,0.054984}, + {-1.028432,-0.229401}, + {0.459060,-0.443054}, + {-0.236741,-0.785944}, + {-0.703899,-1.736899}, + {-0.586833,-0.513491}, + {-1.517056,-0.084420}, + {0.292003,-0.016637}, + {0.700051,-0.583601}, + {0.526109,0.250151}, + {-0.227784,-0.209721}, + {1.818833,-0.253432}, + {-0.360458,-0.668042}, + {0.666832,-0.166561}, + {-0.358616,-0.418329}, + {-0.412887,0.836863}, + {0.467107,0.455230}, + {0.592494,1.202728}, + {-0.049518,-0.533706}, + {-1.002130,0.544990}, + {-0.257809,-0.145484}, + {-0.507467,-0.453834}, + {0.291788,0.724311}, + {-0.135188,0.157332}, + {0.631982,0.964860}, + {-1.346895,0.067204}, + {-0.288235,0.488706}, + {-2.477087,1.241502}, + {-0.518612,-0.435361}, + {0.955342,0.489972}, + {1.169275,0.407173}, + {0.213697,0.494150}, + {1.485172,0.045033}, + {0.153003,0.092241}, + {-0.308640,-0.601813}, + {-0.228943,0.489280}, + {-1.169407,-1.772660}, + {0.178640,0.792597}, + {-0.165417,0.292843}, + {1.369952,-1.611009}, + {0.852707,-0.827966}, + {0.821978,-0.004446}, + {0.649031,-0.812858}, + {0.973973,-0.310191}, + {-0.044568,-1.440362}, + {0.765165,-0.538318}, + {0.073737,0.997220}, + {1.234533,0.305244}, + {0.063294,0.158006}, + {0.169849,0.859146}, + {-0.719410,-1.068298}, + {0.116258,-0.709057}, + {-0.930144,-0.632747}, + {-0.181414,-0.975216}, + {0.795997,0.192359}, + {0.066111,-1.055039}, + {-0.298799,-0.559138}, + {-0.603013,-0.082259}, + {0.209757,1.372754}, + {0.347500,0.495824}, + {0.676474,-0.072774}, + {0.550261,-1.227179}, + {-0.263165,0.041038}, + {-0.546702,-0.491019}, + {0.738601,-0.021821}, + {-0.575464,-0.045919}, + {0.123871,-0.075287}, + {-1.083198,-1.254586}, + {-0.183814,-1.052704}, + {-0.881953,0.291254}, + {0.295336,-0.371557}, + {0.023762,-0.165479}, + {0.922082,0.683317}, + {0.324383,-0.491146}, + {1.171481,-0.557506}, + {0.470032,0.663233}, + {-0.433687,0.881275}, + {0.569872,1.163325}, + {-1.147629,1.276498}, + {-1.667829,0.173502}, + {1.509836,-0.393443}, + {0.061339,-0.994588}, + {1.297176,-0.289000}, + {-0.222211,1.274974}, + {0.171856,-0.708127}, + {-0.762371,0.928647}, + {0.489001,-0.717858}, + {0.273726,-0.144006}, + {0.089858,0.479527}, + {-0.415939,-0.754283}, + {-0.820428,-1.308644}, + {0.246597,0.476980}, + {-0.061898,-0.518679}, + {-0.002501,-0.563025}, + {0.160470,-0.497633}, + {0.654653,-0.058246}, + {-0.346737,0.304705}, + {-0.730579,-0.133753}, + {0.332384,0.151924}, + {-0.769060,0.340191}, + {-0.946356,0.802338}, + {-0.185563,-0.701926}, + {-0.018478,0.385360}, + {-0.763889,-0.171119}, + {0.136434,-1.151131}, + {0.944360,0.351269}, + {0.234035,0.460682}, + {-0.126511,-0.343346}, + {-0.129577,0.714668}, + {0.831803,1.425489}, + {-0.311698,0.471973}, + {0.374336,-0.532622}, + {-1.287929,0.086859}, + {-0.960906,-0.551099}, + {-1.322977,0.426687}, + {0.566247,-1.476259}, + {-0.042332,-0.595204}, + {-0.217199,0.570666}, + {-0.336883,0.586814}, + {0.991186,1.090638}, + {-0.112997,0.343201}, + {0.936285,0.699872}, + {1.134616,0.605336}, + {-0.332672,0.412190}, + {-0.131705,-0.706994}, + {0.966135,0.922373}, + {1.133423,-0.652360}, + {-1.177552,-0.186519}, + {0.708659,-0.078514}, + {-0.951753,-0.658081}, + {0.498906,0.236519}, + {0.282086,-1.164112}, + {0.256290,-0.187041}, + {0.292859,-0.420021}, + {0.670422,-0.359978}, + {-0.031479,-0.211732}, + {-0.243913,-0.094388}, + {-0.214352,0.162763}, + {-0.671425,1.172721}, + {-0.345164,-0.766127}, + {-0.628780,-0.950380}, + {-0.275698,0.202610}, + {-0.358559,0.974356}, + {0.409593,0.965904}, + {-0.287768,-0.284934}, + {-0.817917,0.034221}, + {0.282824,-0.083509}, + {0.266940,0.414989}, + {-0.839039,0.602647}, + {-0.030358,-0.143335}, + {-0.461787,-1.323753}, + {-0.947434,0.034506}, + {0.206777,0.393953}, + {0.110051,0.039027}, + {-0.255445,-0.418588}, + {-0.824977,-0.529115}, + {-0.847940,0.003400}, + {-0.227448,-0.605217}, + {-0.658428,-0.129496}, + {-0.070069,-0.874316}, + {-0.452178,-0.509891}, + {0.006794,0.737596}, + {-0.173131,-0.491329}, + {-0.018882,0.037139}, + {1.012352,-1.428883}, + {0.341480,-0.177353}, + {0.088907,1.263644}, + {-0.007106,-0.035769}, + {0.494848,-0.291677}, + {1.029770,1.640336}, + {-0.019924,-0.576639}, + {1.078143,0.161988}, + {-1.158261,-0.009208}, + {-0.920354,0.385655}, + {-0.103172,-0.424669}, + {-0.128917,0.361840}, + {0.451312,-0.151329}, + {0.486818,-0.792695}, + {0.173666,-0.625128}, + {-1.227586,0.233996}, + {-0.567889,0.022017}, + {-0.012878,0.076646}, + {-0.423646,0.335511}, + {-0.989293,1.156415}, + {-0.977194,0.382489}, + {-1.465169,0.221222}, + {-0.821043,-0.880370}, + {0.953556,0.320459}, + {-0.493348,1.015682}, + {-0.041491,-1.401656}, + {0.110917,-1.090802}, + {-0.787109,0.792470}, + {-1.183552,-0.605356}, + {-0.466455,0.123053}, + {1.377708,0.488188}, + {1.036160,-0.429887}, + {-0.195443,0.367498}, + {-0.649320,-0.214917}, + {0.818471,-0.314367}, + {-1.095956,-1.066370}, + {1.010551,1.357206}, + {-0.522272,-1.266004}, + {0.742807,-0.658170}, + {0.137677,-0.996820}, + {-0.269035,-0.313754}, + {0.231487,1.580343}, + {0.050224,-0.237917}, + {0.022147,0.008968}, + {-0.118094,-0.562883}, + {0.746369,-0.220601}, + {0.103125,-1.486236}, + {-0.018752,0.345496}, + {-0.026367,0.124820}, + {-0.095584,0.426964}, + {0.299398,-0.036745}, + {0.876858,0.071707}, + {0.080784,0.101691}, + {-0.365802,-0.832668}, + {-0.066045,-0.042815}, + {-1.336839,-0.309595}, + {-1.855670,0.090094}, + {0.142864,0.213680}, + {0.170087,-0.748118}, + {0.757840,-0.487161}, + {-0.008566,0.015099}, + {-0.574190,0.366625}, + {0.850847,-0.670065}, + {-0.088781,-0.552472}, + {0.065881,-0.562275}, + {2.174229,-0.693270}, + {0.545383,0.173825}, + {0.179404,-1.118853}, + {-0.706263,0.644413}, + {-0.201256,0.026020}, + {0.371367,0.027994}, + {0.695924,-0.856474}, + {-0.068587,-0.377147}, + {-1.335474,-0.381794}, + {-0.705342,-0.264330}, + {1.211854,0.734180}, + {0.689579,-0.829674}, + {0.236230,-0.519350}, + {-0.373274,-0.203030}, + {0.522275,0.190464}, + {-0.984102,0.184132}, + {0.608537,0.528305}, + {0.645580,-0.632723}, + {0.106191,-1.924526}, + {-0.860820,0.172286}, + {-0.017002,-0.413171}, + {-0.870914,-0.915141}, + {-0.032162,-0.022238}, + {1.063524,0.208230}, + {0.208620,0.392565}, + {1.534353,0.353688}, + {0.503624,0.611747}, + {1.441714,0.373080}, + {-1.685419,0.553616}, + {-1.251072,1.088477}, + {0.030551,0.653043}, + {0.348223,-0.875562}, + {-0.158646,-1.827145}, + {-0.599854,-1.150166}, + {-0.622279,1.015380}, + {-0.045192,0.068378}, + {0.289380,0.241892}, + {0.780663,-0.317637}, + {-0.624796,-0.111034}, + {0.156313,0.625074}, + {-0.887464,0.338653}, + {0.276127,-1.089799}, + {0.393729,-0.259418}, + {0.290756,0.344205}, + {-1.690691,0.271341}, + {1.070050,-0.375246}, + {-0.518340,-0.146201}, + {-0.136899,-0.031255}, + {-0.732118,0.763056}, + {0.595604,-0.170473}, + {0.313932,0.752164}, + {1.258402,-0.021841}, + {-1.271193,0.594328}, + {1.074153,0.128659}, + {0.478066,-0.276071}, + {-0.358573,0.984028}, + {0.423156,0.233965}, + {-0.177399,0.151124}, + {0.079737,0.146108}, + {-0.800067,-0.511673}, + {0.506933,-0.549296}, + {0.699370,-0.759465}, + {0.195093,1.236176}, + {0.557245,1.418542}, + {0.287210,1.479131}, + {0.668788,-0.448889}, + {-0.463056,0.926393}, + {1.124722,-0.224757}, + {1.118837,-0.244739}, + {-0.214775,0.121754}, + {-0.086324,-0.784099}, + {1.274702,0.512876}, + {1.060185,1.325123}, + {0.193620,0.390433}, + {-0.286823,0.231843}, + {-0.351578,0.727546}, + {-1.647569,0.062221}, + {0.356859,-0.256082}, + {0.266346,0.400761}, + {-0.225153,-0.791734}, + {0.522282,0.074414}, + {-0.375861,-0.448761}, + {-0.533274,0.056055}, + {-0.400783,-0.040651}, + {0.436361,0.406416}, + {0.165936,0.403954}, + {0.851735,1.253902}, + {-0.996147,0.302040}, + {0.979640,0.288274}, + {-0.020106,-0.155534}, + {-0.392568,-0.327217}, + {-0.200327,0.496539}, + {-0.233763,-0.423968}, + {-0.976208,-0.408918}, + {-0.571268,-0.378235}, + {0.224025,-0.154206}, + {-0.176338,0.225973}, + {0.355614,-0.189466}, + {-0.450087,0.567394}, + {-0.659818,1.574000}, + {-0.724889,0.197115}, + {-1.355431,-0.664189}, + {-0.203199,0.667343}, + {-0.361135,0.152712}, + {-0.007547,-0.222527}, + {-0.546892,-0.387338}, + {1.044558,-0.663379}, + {0.326269,-0.004359}, + {-0.012900,0.714057}, + {-0.032278,-0.204936}, + {-0.152106,0.539984}, + {-0.484380,-0.174141}, + {-0.480804,-0.521659}, + {0.019051,-0.512885}, + {-0.371011,-0.457457}, + {0.637777,-0.575044}, + {1.426366,0.512612}, + {0.266994,0.797655}, + {-0.824664,-0.336600}, + {-0.422137,-0.905715}, + {0.656471,0.209458}, + {-0.864761,-0.058947}, + {1.312581,0.409720}, + {0.093477,1.303098}, + {-0.495575,0.491653}, + {0.616295,0.289625}, + {0.019085,0.370022}, + {-1.785266,0.062761}, + {-0.110044,-0.749797}, + {1.685633,0.914155}, + {0.759099,0.624272}, + {-0.950030,1.223722}, + {0.414424,-0.410528}, + {0.183760,-0.081691}, + {-0.402176,-0.026614}, + {-0.349344,-0.746451}, + {-0.669819,0.784265}, + {0.124418,0.632759}, + {0.541258,-1.198492}, + {-0.866841,0.005112}, + {-0.420861,0.310081}, + {-0.492845,2.040430}, + {0.289183,-0.025633}, + {0.333462,-0.545470}, + {0.620450,-0.664730}, + {-0.966239,0.477068}, + {-0.280518,0.588544}, + {0.855581,0.526154}, + {0.176645,-0.532816}, + {0.243194,-0.347975}, + {0.121295,1.046375}, + {0.468586,-0.344088}, + {-0.350739,-0.403584}, + {-0.631745,-0.782817}, + {-0.949273,-1.150875}, + {0.922169,-1.684543}, + {-0.345543,-0.015945}, + {0.837118,0.348048}, + {-0.849669,0.097854}, + {-0.950003,-0.284938}, + {-0.827245,1.274905}, + {0.582750,0.674266}, + {0.863202,-0.250190}, + {0.661880,0.368907}, + {0.037276,-0.913114}, + {0.165824,1.259230}, + {0.058122,0.701148}, + {-0.309547,-0.432040}, + {-0.596559,-0.618049}, + {0.889281,0.852314}, + {0.257575,-0.140190}, + {0.466566,-1.164941}, + {-0.846649,-0.024130}, + {-0.006130,-0.345342}, + {0.554810,-0.369790}, + {0.132936,-1.245072}, + {-0.708319,-0.243577}, + {-0.938221,0.593895}, + {-0.035179,0.513441}, + {-0.049975,1.127913}, + {-0.672031,0.159578}, + {-0.023330,1.155255}, + {0.143090,1.023505}, + {0.115199,0.309062}, + {-1.199697,0.879078}, + {0.519932,0.063135}, + {0.186381,0.036151}, + {-0.474750,1.313004}, + {-1.041353,0.036701}, + {-0.089927,-0.772333}, + {0.090568,-0.837483}, + {-0.048569,-0.259303}, + {1.571934,-0.955589}, + {-0.022494,-0.250567}, + {-0.308409,0.008499}, + {-0.198203,-0.449276}, + {-0.294832,-0.776042}, + {0.258584,-0.160882}, + {0.168586,-0.668421}, + {-0.607039,-0.175648}, + {-1.595333,0.275002}, + {0.354293,-1.433081}, + {-1.076825,0.444679}, + {0.112063,0.403675}, + {-0.019937,-0.526304}, + {0.878192,1.126714}, + {-0.555291,-0.177409}, + {0.618919,-1.270440}, + {-0.718783,-0.636622}, + {1.023238,-0.542857}, + {0.482907,0.146108}, + {1.333821,1.330160}, + {1.132981,-0.772368}, + {-0.543637,-0.834221}, + {0.775740,0.171336}, + {0.801106,-0.771147}, + {-0.561803,0.079096}, + {0.652019,-0.040842}, + {-0.654772,-0.774603}, + {0.405766,-0.335507}, + {-0.131693,-0.202866}, + {-1.261224,0.358867}, + {0.573502,0.072986}, + {-0.658929,-0.659778}, + {-0.667468,-0.367979}, + {1.363660,0.358243}, + {0.355715,0.497317}, + {0.186055,-0.513256}, + {-0.427157,-0.478966}, + {1.490717,-0.058493}, + {-0.952606,-0.205605}, + {1.437961,0.595822}, + {1.113979,0.821148}, + {-1.993044,0.178065}, + {0.062770,-1.172124}, + {-0.601798,-0.508838}, + {0.404892,0.157432}, + {0.446296,-0.198539}, + {-2.000248,-0.062555}, + {0.418983,-0.605122}, + {1.044428,1.430575}, + {-0.225956,0.016324}, + {0.516675,0.456090}, + {-0.117366,-0.642548}, + {0.821745,0.347570}, + {0.439764,0.695177}, + {-0.216506,-0.082014}, + {1.389264,-0.080676}, + {-0.185223,-0.603367}, + {-0.860185,-0.740634}, + {-0.146111,-0.173600}, + {-0.208919,0.975808}, + {-0.323668,-0.191408}, + {0.325369,0.387206}, + {-1.016963,0.031901}, + {-0.607601,-1.373026}, + {-0.029588,1.154785}, + {-0.134545,-0.252350}, + {0.776553,-0.133224}, + {0.543461,0.280061}, + {-0.890756,-0.743419}, + {-1.170665,1.021231}, + {0.518692,-0.016268}, + {0.959604,0.190010}, + {-0.985259,-0.574513}, + {0.772275,-0.572044}, + {-0.989352,-0.007084}, + {-0.843395,-0.709321}, + {-0.701267,0.196028}, + {-0.479826,0.888804}, + {1.012193,1.019070}, + {0.706742,0.197803}, + {-0.979845,-0.049822}, + {-0.200635,-0.291375}, + {0.049786,-0.795526}, + {1.237530,0.009952}, + {-1.067907,0.940046}, + {-0.112405,-0.397752}, + {-0.046100,-0.102711}, + {0.453746,0.537092}, + {-0.187188,-0.759559}, + {0.717383,-0.561168}, + {-0.164953,-0.323824}, + {-0.166557,0.021823}, + {-0.783368,-0.429656}, + {0.794975,-0.230617}, + {-0.527327,-0.780894}, + {-0.872325,0.014350}, + {0.054789,0.241499}, + {0.738298,-0.228210}, + {0.060773,0.996415}, + {0.241621,-1.596309}, + {0.445850,0.578241}, + {0.315976,1.201028}, + {-1.511131,-0.670994}, + {-0.110134,0.130493}, + {-0.265378,0.556605}, + {-0.552998,0.389953}, + {0.085908,0.759607}, + {-1.029355,0.404668}, + {0.516605,-0.500285}, + {-0.014747,0.186171}, + {-0.662889,0.914909}, + {1.133404,0.043481}, + {0.942736,-1.022847}, + {-1.367925,0.662538}, + {0.202927,-0.261840}, + {-0.080038,0.255562}, + {0.334206,0.344507}, + {0.909260,0.161783}, + {0.279950,-0.442240}, + {-0.132812,1.284395}, + {0.561415,-0.874174}, + {-0.040063,0.004187}, + {0.139506,0.273340}, + {0.678991,-0.833389}, + {-1.242484,-0.045382}, + {0.256214,-0.213426}, + {-0.587563,-0.587595}, + {0.078473,0.384032}, + {-0.277039,1.136410}, + {-0.092972,-1.062368}, + {-0.023888,-0.080233}, + {-0.452956,-0.444322}, + {1.328310,-0.992490}, + {-0.474930,0.347850}, + {0.523240,-0.003848}, + {-0.051859,0.435035}, + {0.353494,-0.243220}, + {-1.096435,1.075703}, + {-0.289883,0.126013}, + {1.309579,0.419419}, + {-0.249474,-1.277937}, + {0.370228,-0.619822}, + {-0.162931,-0.986185}, + {0.529442,0.663374}, + {0.206235,-0.141314}, + {0.327230,0.297918}, + {0.258588,-0.423171}, + {-0.397341,0.502437}, + {0.021206,0.592566}, + {-0.289367,0.413864}, + {0.910642,0.392091}, + {-1.057228,-0.461395}, + {1.001500,0.315649}, + {-0.090014,-0.918110}, + {0.318253,0.558070}, + {0.211192,-0.014893}, + {0.522386,-0.366099}, + {0.090398,-0.703867}, + {1.622834,0.018082}, + {-0.071737,-1.007484}, + {-0.664638,-0.104874}, + {-0.189868,-0.515833}, + {0.358739,0.281609}, + {-0.622523,0.089106}, + {0.361331,0.095296}, + {1.085784,0.080787}, + {0.478981,-0.441729}, + {1.068931,0.439744}, + {-0.628892,0.424033}, + {-0.196324,0.379911}, + {-0.789710,-0.283177}, + {-0.806679,-1.377374}, + {1.599832,1.186046}, + {0.412645,0.144409}, + {0.327430,1.119619}, + {1.057958,1.303142}, + {0.432599,0.474891}, + {0.284130,-0.147951}, + {0.137384,-0.946542}, + {-1.047473,0.054293}, + {-0.143269,-0.396173}, + {0.134200,-1.117673}, + {0.904095,-0.967660}, + {0.784155,-0.589834}, + {-0.329207,-1.584818}, + {1.336969,-0.965850}, + {0.562061,0.584660}, + {-0.860259,-0.550482}, + {0.553302,0.170503}, + {0.384839,0.442235}, + {-0.123665,0.795758}, + {-2.267570,1.579904}, + {-0.985957,0.263810}, + {-0.114123,-0.105293}, + {-0.073897,-0.131005}, + {0.394013,0.420781}, + {1.294967,-0.725636}, + {0.392888,-0.237295}, + {0.708169,-0.947210}, + {0.598124,-0.131921}, + {0.392268,1.238404}, + {0.565937,-1.492817}, + {-0.620915,0.218253}, + {-0.187653,-0.500112}, + {-0.225466,-0.457223}, + {0.298875,0.099610}, + {0.214690,-0.399322}, + {-0.679138,-0.038895}, + {0.118053,0.472370}, + {-0.488826,-0.872846}, + {-1.119422,-0.036171}, + {-0.075847,-0.265969}, + {-1.290590,-1.483111}, + {0.903551,1.081328}, + {-0.903254,-0.425745}, + {-1.654210,-0.592746}, + {-0.834468,0.360416}, + {-0.517414,-0.268347}, + {0.219221,-0.942583}, + {-0.159846,0.647089}, + {0.022067,-0.112729}, + {1.161820,-1.200230}, + {-1.140920,-0.081036}, + {-1.039243,-0.377205}, + {0.314333,0.565306}, + {-1.575490,0.432187}, + {0.468719,0.702260}, + {-0.496647,-0.982869}, + {0.807580,0.126209}, + {-1.232223,-0.694859}, + {0.344013,0.146694}, + {0.352479,-0.248874}, + {0.500112,0.240281}, + {0.150882,0.007734}, + {1.025832,0.271827}, + {0.087793,-0.911808}, + {0.239715,-0.182878}, + {-0.488536,-1.404765}, + {0.245387,-0.004696}, + {-0.830521,0.880491}, + {0.083542,0.285857}, + {0.921577,-0.685627}, + {0.695468,-0.133940}, + {0.939971,1.828094}, + {0.789922,0.759310}, + {0.403211,0.030107}, + {0.016796,0.689851}, + {1.084819,-0.186630}, + {-0.903993,-0.024230}, + {0.712283,-1.107485}, + {-0.931592,0.898492}, + {-0.696849,1.388040}, + {0.542043,-1.230688}, + {-0.217901,1.160492}, + {-0.093252,-0.025223}, + {-0.766154,0.653670}, + {-0.042860,0.814345}, + {-0.196778,-0.716831}, + {0.540037,0.172703}, + {-0.361556,-0.529404}, + {-0.422260,-0.060487}, + {0.516217,-0.838463}, + {0.084237,0.024053}, + {-0.942743,-0.718373}, + {-0.665473,-0.812679}, + {-0.055540,0.324464}, + {-1.050179,0.765823}, + {0.374960,0.619826}, + {0.099384,0.440820}, + {-1.375869,0.145126}, + {-1.168991,-0.089796}, + {-0.464068,0.467425}, + {0.141780,1.426938}, + {0.483327,1.031467}, + {-0.966008,-0.779106}, + {-0.735806,0.516178}, + {-0.139286,0.109933}, + {1.469544,0.847398}, + {0.027674,-0.409753}, + {-0.025074,-1.939206}, + {-0.240214,-0.034248}, + {0.650895,-0.982693}, + {0.425554,-0.059190}, + {-0.496271,0.495123}, + {-1.237870,1.392917}, + {0.256191,-0.155617}, + {0.586083,-0.158262}, + {-0.078923,-0.643073}, + {-0.331194,-1.453308}, + {-0.144171,-0.906848}, + {0.966641,-0.220992}, + {-0.423391,0.041833}, + {-0.824277,0.698242}, + {-0.861274,0.529953}, + {0.179762,-1.130919}, + {-0.996767,-0.193545}, + {0.453175,1.234067}, + {1.485681,0.094392}, + {1.051655,0.052776}, + {-0.134871,0.796853}, + {0.864630,-0.781504}, + {0.780484,-0.400513}, + {0.331109,0.578865}, + {0.776426,-1.263769}, + {0.572772,-0.326729}, + {0.372413,0.005622}, + {0.941942,-1.305397}, + {0.303917,-1.556093}, + {0.189437,1.234819}, + {0.508129,0.382806}, + {-1.116871,-0.360450}, + {0.422168,-0.982315}, + {0.594919,0.466410}, + {1.035624,0.463855}, + {-0.783077,-0.390978}, + {1.236459,1.182626}, + {-0.387814,-0.332232}, + {0.086563,1.162983}, + {-0.346845,-0.245300}, + {0.221111,-0.315026}, + {-0.125533,-0.386266}, + {1.007383,-1.514431}, + {0.408173,-0.652894}, + {-0.444993,0.620328}, + {-0.081295,0.024145}, + {-1.171356,0.146286}, + {-0.654750,-0.194256}, + {1.094476,0.948711}, + {-0.885556,-0.313736}, + {-0.013248,0.284773}, + {-0.687804,-0.472138}, + {-0.155912,-1.113625}, + {-0.819529,0.183507}, + {1.128618,1.019696}, + {-0.355820,-0.271205}, + {-1.577226,0.085216}, + {0.538217,-0.298420}, + {0.076116,-0.620804}, + {0.154589,-1.126306}, + {0.598211,0.261215}, + {-1.007944,1.678870}, + {0.224117,-0.226210}, + {-1.489159,0.965365}, + {-0.297128,-0.374228}, + {0.750106,0.539997}, + {0.386862,0.676595}, + {0.966769,-0.407596}, + {0.384334,-1.359028}, + {-0.664215,-0.143987}, + {0.039815,-0.249599}, + {-1.121556,0.013060}, + {0.991496,1.175812}, + {-0.353957,-0.926145}, + {0.416137,0.633272}, + {-0.347908,-0.060762}, + {-1.001857,-1.669313}, + {0.715754,-0.308980}, + {0.493890,0.621634}, + {0.080629,-0.165597}, + {0.066092,-0.718772}, + {-0.340841,0.667852}, + {0.031320,-1.351725}, + {0.793912,0.365991}, + {0.094964,0.747321}, + {-1.342909,0.528676}, + {-0.173577,-0.344160}, + {-0.196297,-0.688651}, + {0.159112,0.542697}, + {0.329935,0.154517}, + {1.185337,0.700728}, + {-0.704310,-0.402117}, + {-0.316785,-0.310172}, + {-1.232388,-1.015449}, + {-0.043209,0.901854}, + {-0.340189,-2.254502}, + {-0.603832,0.362719}, + {0.962932,-0.001934}, + {1.768897,0.121106}, + {0.679471,0.866237}, + {-0.737197,-1.149965}, + {1.225298,-0.618371}, + {-0.296798,-1.468710}, + {-1.678878,0.063437}, + {0.479002,0.192428}, + {0.346018,-1.538752}, + {-1.206099,-0.295383}, + {1.053135,0.455640}, + {-0.560954,0.547959}, + {0.643517,-0.909463}, + {-0.098024,-0.246867}, + {0.931635,-0.252753}, + {0.148997,-0.323576}, + {0.050144,-0.171018}, + {-0.267956,0.294251}, + {0.333497,0.911259}, + {-0.365215,0.268823}, + {0.144195,-0.701040}, + {-1.526851,-0.129927}, + {1.142833,0.635755}, + {-0.586324,0.067496}, + {1.134076,-0.946287}, + {-0.493528,-0.592981}, + {-0.425575,0.286177}, + {0.092149,0.506148}, + {-0.271803,-1.297036}, + {0.026268,0.441668}, + {1.237103,0.694613}, + {0.582480,-0.500776}, + {-0.919241,0.616013}, + {0.539933,-0.765108}, + {-0.238804,-0.015991}, + {0.251532,1.010740}, + {0.018575,1.538529}, + {1.164247,0.775468}, + {-0.724490,0.704236}, + {0.572185,-0.261278}, + {-0.165192,-0.473733}, + {-0.275442,-0.214077}, + {0.529682,0.079349}, + {-1.043063,0.590297}, + {-0.312898,0.982987}, + {-0.347152,-0.300360}, + {0.198617,-1.545474}, + {-0.137123,0.206520}, + {1.406277,0.504897}, + {-0.230632,-0.020974}, + {1.165849,1.286086}, + {0.567973,0.251033}, + {0.730319,-0.018651}, + {-1.173668,0.011321}, + {-0.036457,-0.751900}, + {-0.615665,0.447886}, + {-0.452895,-0.069779}, + {0.673152,-0.178631}, + {-0.327908,-0.701133}, + {0.721903,-0.259445}, + {0.096390,-0.755208}, + {0.558453,-0.050797}, + {0.264645,0.199839}, + {-0.894315,0.312986}, + {-0.216785,-0.394039}, + {-1.143224,0.400516}, + {-1.356620,0.072608}, + {1.362480,-0.018613}, + {1.142226,-0.983870}, + {0.627630,0.620440}, + {0.660075,-0.739872}, + {0.579792,-1.280997}, + {0.651826,0.602429}, + {1.895455,-0.274354}, + {-0.906672,-0.429069}, + {-0.803452,0.029061}, + {0.481015,1.138218}, + {1.032808,-0.296512}, + {-0.832241,0.455665}, + {0.539383,1.075476}, + {-0.438440,0.887938}, + {0.424835,-0.368019}, + {-0.135554,0.584722}, + {0.599934,1.286793}, + {-1.006594,0.727090}, + {0.911023,0.076265}, + {0.337550,1.120384}, + {-0.895655,0.047860}, + {0.266564,-0.467233}, + {-0.048357,0.118508}, + {-0.702445,-0.560325}, + {0.480256,-1.121399}, + {0.654894,0.949342}, + {-0.417652,-0.110876}, + {0.709040,-0.321438}, + {-0.238239,-0.984386}, + {-0.301674,-0.706961}, + {0.472112,1.348416}, + {-0.288396,-0.181889}, + {-0.450683,-0.267402}, + {-0.308414,-1.071811}, + {-0.417105,0.973953}, + {-1.553241,-0.142268}, + {0.128366,0.111307}, + {-0.927474,-0.051060}, + {1.101826,-0.477989}, + {-0.242754,0.084899}, + {-0.746846,1.115605}, + {-1.127438,-0.172875}, + {-0.155172,-0.399688}, + {-1.837735,0.530750}, + {-1.374064,0.363114}, + {-0.097395,0.053473}, + {0.609195,-0.274619}, + {1.734941,0.890505}, + {0.779686,-0.972688}, + {0.585193,-1.045163}, + {0.248025,-0.300921}, + {-0.152088,0.863592}, + {0.576776,-0.435392}, + {-0.660678,-1.619638}, + {-0.049095,0.111165}, + {-0.054992,0.933530}, + {0.502694,0.260923}, + {-0.330115,-0.374907}, + {0.738413,0.897929}, + {-0.134611,-0.079508}, + {-0.501918,0.744600}, + {1.092964,0.366548}, + {-0.569112,-0.575195}, + {-0.361389,-0.543941}, + {-0.246589,1.583851}, + {0.115483,0.436651}, + {0.709692,-0.027134}, + {-0.201305,-0.325035}, + {-0.081069,-0.613508}, + {-0.204912,0.899014}, + {-0.052638,-0.313595}, + {-0.055242,-0.450843}, + {-1.021730,-0.600249}, + {0.649428,0.166285}, + {-0.566037,-0.062804}, + {0.020980,0.775753}, + {-0.665180,0.091810}, + {0.475532,0.480182}, + {-0.392908,0.497955}, + {-0.911233,-1.270771}, + {0.008075,-0.360294}, + {0.692020,-0.075024}, + {-0.731113,-0.013576}, + {0.768481,0.871268}, + {-0.414806,-0.177137}, + {-0.085437,-0.311006}, + {0.611962,0.398797}, + {-1.456806,0.915209}, + {0.234176,-0.108086}, + {0.392467,-0.300692}, + {-1.290682,-0.075481}, + {0.661390,0.746033}, + {-0.613522,-0.349294}, + {-0.658477,1.050708}, + {-0.966256,-0.650581}, + {-0.356483,-0.515624}, + {0.776759,1.027077}, + {-1.230686,-1.756435}, + {1.443473,0.351437}, + {-1.627666,0.332377}, + {-0.893450,0.724938}, + {-1.214274,0.674931}, + {0.575030,-1.220913}, + {0.436178,-0.146204}, + {0.255927,-0.642819}, + {0.837765,0.357972}, + {0.413942,0.336704}, + {-0.491814,0.029299}, + {0.577770,-0.709864}, + {0.618412,-0.094846}, + {1.113511,0.720462}, + {-1.276252,-1.169819}, + {-0.221518,0.034718}, + {1.175932,0.480262}, + {-1.089821,-0.091391}, + {-0.050210,0.483209}, + {0.570865,-0.312307}, + {0.218860,-0.555332}, + {0.085193,0.903061}, + {-0.177520,-0.161550}, + {-0.920380,-0.285077}, + {1.144318,-0.822307}, + {-0.443889,-0.246271}, + {1.751176,0.442665}, + {-0.171192,0.036515}, + {1.478796,0.623020}, + {0.988539,-0.047767}, + {-0.656993,1.766078}, + {0.175814,-0.815643}, + {0.621924,0.409207}, + {-0.576310,0.039971}, + {-1.353919,-0.486915}, + {-0.387561,-1.061818}, + {-0.119924,1.290992}, + {-0.230595,-0.112278}, + {-0.740619,-0.035881}, + {0.143479,-1.215912}, + {0.210367,1.334086}, + {-0.308564,-0.243013}, + {-0.152059,-0.489945}, + {-0.321632,0.092499}, + {1.924499,-0.416900}, + {-0.096596,-0.427458}, + {0.269636,0.757454}, + {-0.150174,-0.186291}, + {0.865667,-0.424643}, + {0.370408,0.371389}, + {-0.766370,-0.272893}, + {-0.222344,0.995829}, + {-0.468779,1.033146}, + {-0.149001,0.896831}, + {-0.755959,-1.024279}, + {1.217738,-0.762323}, + {0.534823,0.219960}, + {-0.070087,-0.996893}, + {0.319844,-0.482557}, + {0.360326,-1.036808}, + {0.175977,0.088674}, + {-1.461705,0.208011}, + {0.077773,-0.162524}, + {0.054694,-0.539832}, + {-0.096807,0.513069}, + {-0.100006,0.909039}, + {1.406467,-0.680385}, + {-0.474095,0.657180}, + {-0.266534,-0.258199}, + {-0.155174,0.776743}, + {-0.786856,-1.189942}, + {-0.191945,-0.142069}, + {1.405201,0.141338}, + {0.792400,0.879229}, + {0.517136,-0.068225}, + {-0.073672,0.710877}, + {-0.308993,-0.293807}, + {-0.242238,0.739423}, + {0.319612,1.603955}, + {0.275246,-1.560017}, + {0.990727,0.848362}, + {0.559344,-0.346077}, + {-1.078959,-0.356477}, + {-0.070324,0.894042}, + {-0.528587,0.035779}, + {-1.258713,0.379885}, + {-0.290864,0.053989}, + {-0.225357,-0.508803}, + {-0.752478,-0.581330}, + {0.126417,-0.906446}, + {-0.993092,0.097985}, + {0.016474,1.418872}, + {-0.886978,1.124599}, + {-0.864118,0.032904}, + {0.105550,0.529514}, + {-0.447701,-0.032437}, + {-0.815386,0.312394}, + {1.531759,0.864403}, + {0.463851,-0.299624}, + {1.193057,-0.699033}, + {-0.904051,1.118158}, + {-0.019004,-0.938424}, + {0.479988,-0.435766}, + {0.614927,0.556017}, + {-0.620773,0.176160}, + {-0.040731,-0.961046}, + {1.396722,0.475938}, + {-0.651834,-0.578144}, + {-1.231469,0.391926}, + {0.074102,0.218066}, + {-0.780426,0.939099}, + {0.266873,0.597431}, + {0.035461,-0.147601}, + {-0.041518,-1.551616}, + {-0.652796,0.186071}, + {-0.515741,0.854016}, + {0.260025,-0.565384}, + {-0.507427,-1.442764}, + {1.156603,-0.625163}, + {-0.277430,-0.146397}, + {0.786110,-0.385100}, + {0.187860,0.259149}, + {-0.708870,0.857568}, + {0.258114,-0.517658}, + {-1.593806,1.354268}, + {0.769054,1.115951}, + {-0.320025,0.831390}, + {0.362127,-0.478752}, + {0.463627,-0.562727}, + {0.105345,-0.459347}, + {-1.973697,-0.097140}, + {-0.329367,0.850698}, + {-0.703448,-0.335789}, + {0.450011,1.121062}, + {0.654028,-0.721941}, + {0.397198,0.029445}, + {0.299006,0.140008}, + {-1.278916,-0.883708}, + {-0.442195,0.297563}, + {0.159308,-0.023143}, + {0.282331,-0.269534}, + {1.455855,0.834365}, + {0.520331,-0.449560}, + {-0.163163,0.285191}, + {-0.485547,-0.381264}, + {0.182946,-0.895494}, + {-1.239939,0.220402}, + {-0.161033,-0.885029}, + {-1.573787,-0.436694}, + {0.431696,-0.262095}, + {-0.044572,-0.808512}, + {-1.515339,-0.713970}, + {-0.072136,-0.707279}, + {0.083839,0.736988}, + {0.609676,-0.073344}, + {-0.218284,0.410031}, + {-0.145884,-0.759804}, + {1.449489,0.119417}, + {-0.924116,-0.784971}, + {0.396728,-0.420324}, + {0.442812,0.065814}, + {0.300979,0.512297}, + {0.720141,0.898594}, + {-0.335842,-0.181875}, + {-0.558501,-0.374812}, + {-0.124859,0.840644}, + {-0.457252,-0.211346}, + {-0.502385,-0.919004}, + {-0.681491,0.752273}, + {-0.596193,-1.541557}, + {0.244109,-0.338625}, + {0.598338,-0.141999}, + {-0.132257,0.405104}, + {-0.402130,0.664641}, + {-0.985068,0.337142}, + {0.289973,0.153776}, + {-0.086672,0.267755}, + {-1.157864,1.082877}, + {0.138765,1.203857}, + {0.157440,-0.081841}, + {0.183486,1.244150}, + {-1.021782,-0.631884}, + {-0.147782,-0.684714}, + {0.196621,0.546394}, + {-0.631778,-0.068033}, + {-0.138504,-0.409385}, + {-0.600232,0.098769}, + {-0.817953,0.213884}, + {0.961003,0.245662}, + {0.790531,0.562720}, + {-0.703499,1.039309}, + {0.479667,-1.119048}, + {-0.013366,0.839971}, + {-0.034365,0.640450}, + {-1.399523,0.355804}, + {0.260801,0.147967}, + {0.065808,0.546078}, + {-0.347448,0.098553}, + {0.821639,0.246355}, + {-1.628820,-0.597563}, + {-0.248049,0.428404}, + {-0.053644,1.339589}, + {-0.477780,-0.236885}, + {0.582341,-0.895865}, + {0.551673,-0.940215}, + {0.810823,0.355256}, + {-0.718213,-0.553310}, + {0.761180,-1.567887}, + {-1.354477,0.587993}, + {-0.280057,0.265041}, + {-0.485069,-0.830335}, + {-0.898486,-0.123829}, + {-0.065445,-0.810844}, + {-0.075952,0.012324}, + {0.489889,-0.201254}, + {0.502262,-0.204768}, + {0.228861,0.614161}, + {0.686882,0.221387}, + {-0.191478,-0.314977}, + {-0.163156,0.201862}, + {0.981396,-0.176446}, + {0.031663,0.040162}, + {0.765293,0.204843}, + {-1.423840,0.580181}, + {0.661978,-0.453962}, + {-0.198973,-0.676154}, + {0.975239,0.071402}, + {0.514612,1.173023}, + {0.395354,-0.237298}, + {0.218742,-0.040218}, + {1.092119,0.149444}, + {-0.066491,1.171302}, + {0.600378,-0.193844}, + {-0.522677,-0.422476}, + {-0.450177,-0.922771}, + {0.814332,0.819734}, + {0.611399,0.414148}, + {-0.102235,1.090889}, + {0.172764,0.367310}, + {-0.386690,0.711734}, + {-0.308570,0.399715}, + {-0.067773,0.037268}, + {0.897905,-0.893449}, + {0.499070,-0.204820}, + {1.054001,0.253654}, + {-1.022458,-0.025210}, + {0.791977,-0.988702}, + {0.083416,-0.657610}, + {-0.203881,-0.187619}, + {1.728950,0.829113}, + {-0.980056,0.458782}, + {-0.475889,-0.471833}, + {-0.597087,-0.425042}, + {1.065324,0.775118}, + {0.503802,-0.715574}, + {0.017682,-0.631690}, + {-0.846011,-0.086879}, + {-1.073453,-0.572789}, + {0.668645,0.492660}, + {0.202993,0.029645}, + {-0.464086,0.246619}, + {-0.899470,-0.353428}, + {0.399672,-0.546029}, + {-0.121598,1.584198}, + {0.616540,0.126347}, + {1.654014,-0.991907}, + {0.329572,-0.377064}, + {-0.771268,0.203136}, + {0.866739,-0.212090}, + {-0.105599,0.598985}, + {0.124672,0.816280}, + {0.148568,-0.916659}, + {0.156576,-0.534549}, + {0.963588,1.376216}, + {0.514055,-0.130478}, + {-0.228784,0.663864}, + {0.478723,-0.412546}, + {-0.851050,-1.062536}, + {0.424482,0.064766}, + {-0.229494,0.000992}, + {1.328704,-0.161219}, + {-0.001671,1.095202}, + {0.127424,0.140526}, + {0.072691,0.881068}, + {-0.449420,-1.174092}, + {-0.002478,0.730130}, + {-0.264893,1.106372}, + {-0.113501,0.098044}, + {0.445563,-1.652426}, + {-0.648095,-0.615132}, + {-0.791597,0.312268}, + {-0.592599,0.128912}, + {0.193724,-0.027621}, + {-0.246776,1.475506}, + {0.154953,0.056356}, + {-0.256764,-0.209585}, + {1.243059,0.094700}, + {-1.263590,1.488868}, + {-0.715768,1.026954}, + {-0.069072,-0.394451}, + {-0.054306,0.165971}, + {-0.905233,0.403129}, + {-0.220554,-0.122628}, + {0.364791,0.286679}, + {0.785926,-0.769723}, + {-0.735274,2.193241}, + {1.277747,0.699746}, + {0.279424,0.904941}, + {-0.202973,0.086592}, + {-0.778679,-0.431290}, + {0.160730,-0.785100}, + {-0.503414,-0.322093}, + {0.592752,-0.398302}, + {-0.224174,0.376569}, + {-0.504882,0.240802}, + {0.639766,0.479862}, + {-0.548174,0.076778}, + {0.839506,-1.051851}, + {-0.614694,0.201207}, + {0.946087,0.430684}, + {-0.128392,0.666809}, + {0.392418,0.875509}, + {-0.468207,-0.038870}, + {-0.222987,-1.094249}, + {-0.745045,-0.662640}, + {-0.282590,-0.848140}, + {0.273818,-0.451490}, + {-0.107371,0.883462}, + {1.090884,-0.618116}, + {0.320881,-0.288501}, + {-0.802570,-0.344983}, + {0.293442,0.998732}, + {-0.027360,0.016971}, + {-0.520384,1.021780}, + {-1.029293,0.643514}, + {0.544240,-0.294024}, + {0.814885,0.293088}, + {-0.217184,-1.607462}, + {1.042856,-0.193162}, + {-0.482617,0.001200}, + {1.290766,0.396281}, + {0.541096,0.190732}, + {-0.185152,0.422218}, + {-0.395013,-0.856063}, + {0.129098,-0.208842}, + {-1.216610,0.501032}, + {-0.578368,-0.077011}, + {-0.142931,-0.107519}, + {-0.049935,-1.347985}, + {-0.169092,-0.532516}, + {0.473700,-0.739075}, + {-0.372626,-0.612488}, + {0.695860,0.589931}, + {0.090898,0.189706}, + {1.451253,0.155602}, + {0.630673,1.074650}, + {0.523568,1.240808}, + {-0.333037,-1.525041}, + {0.828902,0.384816}, + {0.705692,-0.123515}, + {-0.161236,-1.091553}, + {-0.905419,1.093307}, + {-0.353888,-0.534408}, + {0.604700,-1.082505}, + {0.014201,-0.516866}, + {-2.169492,1.453974}, + {1.951017,0.818724}, + {0.494091,-0.791937}, + {0.118409,-0.206657}, + {1.085713,0.213897}, + {0.301931,-0.566131}, + {-0.259674,0.527941}, + {0.980986,0.596725}, + {-0.596668,-1.134933}, + {0.625839,0.458710}, + {-0.334225,-0.120566}, + {1.771062,-1.026789}, + {0.151459,-1.012159}, + {-0.330544,0.845122}, + {-1.728633,-1.435125}, + {0.140577,-0.610380}, + {0.822159,0.635061}, + {-0.201738,0.393073}, + {0.440206,-0.257053}, + {0.260232,-0.046157}, + {-0.020715,0.469076}, + {-0.449526,-0.525654}, + {1.069078,1.418019}, + {-0.433268,-0.165652}, + {-0.085426,-0.660526}, + {-0.843452,-1.075621}, + {0.160153,-0.609560}, + {0.532025,-0.402982}, + {1.053319,-0.606113}, + {-0.912064,0.532538}, + {0.288336,-0.224900}, + {1.049554,-0.798748}, + {0.062931,0.248464}, + {1.171278,-0.296591}, + {-0.258426,-0.410351}, + {0.945094,0.478489}, + {-1.461804,1.046522}, + {-0.633659,0.358206}, + {0.250690,1.106278}, + {0.430452,-0.309765}, + {-0.308992,0.553894}, + {0.779977,0.398830}, + {-0.294969,0.376904}, + {0.220612,0.065218}, + {-0.920859,-0.345626}, + {0.187574,0.099608}, + {-1.349871,-0.183671}, + {0.130552,0.361476}, + {-0.141677,0.506033}, + {0.618300,1.618166}, + {0.475492,0.079416}, + {0.714330,-0.370986}, + {-0.573479,0.180490}, + {-0.137712,-0.060913}, + {0.515423,-0.368048}, + {0.244133,1.174597}, + {-0.525398,0.663225}, + {0.578443,-0.543669}, + {1.201958,0.923160}, + {-0.111823,-0.487590}, + {-0.073718,0.190523}, + {0.649657,-0.659715}, + {-0.409310,0.134954}, + {-1.326234,-1.272925}, + {1.305404,0.226864}, + {-0.392474,-0.933792}, + {-0.007464,-1.287274}, + {-0.446668,-0.005931}, + {0.098037,-1.037468}, + {1.342139,0.517189}, + {0.428876,0.529115}, + {0.527585,-0.589122}, + {0.132382,0.288948}, + {-0.088091,-0.529385}, + {-0.211020,0.106296}, + {-0.618083,-0.302373}, + {1.818536,0.685940}, + {-0.922613,-0.342791}, + {-1.840156,0.792622}, + {-0.553622,-0.586101}, + {0.623642,-1.195093}, + {-1.132636,0.579581}, + {0.093510,-0.770117}, + {-0.885828,-1.187070}, + {-0.293717,-0.805523}, + {0.400295,-0.348303}, + {0.607811,-0.144559}, + {-0.692936,-0.145218}, + {0.725639,-0.758167}, + {-0.143427,-1.162858}, + {0.782318,-0.861163}, + {-0.606077,-0.183103}, + {0.022532,-0.331872}, + {-0.240756,-1.411801}, + {0.278457,0.187169}, + {0.424589,0.760281}, + {0.483186,-0.084917}, + {-1.213938,-0.432077}, + {-0.429109,0.225001}, + {0.175712,0.073672}, + {1.027955,0.430115}, + {-0.106412,-1.172744}, + {-0.400012,0.691001}, + {0.488778,0.654797}, + {0.674586,0.222262}, + {-0.040199,0.757857}, + {0.335755,-0.779464}, + {-0.011836,0.511340}, + {-0.287985,0.242453}, + {-0.323989,-0.022321}, + {-1.788818,-0.594621}, + {-0.126588,-0.670139}, + {-0.582553,-0.282272}, + {-0.172383,-1.483735}, + {0.097068,0.374952}, + {1.145251,-0.041021}, + {-0.661188,-0.015538}, + {0.478935,-0.798933}, + {0.483136,-0.932957}, + {-0.692102,0.831164}, + {0.387143,-0.210910}, + {-0.369834,-0.499064}, + {-0.552389,0.968678}, + {0.706835,0.672863}, + {0.884666,-1.374115}, + {-0.892116,-0.645080}, + {0.212438,-0.363604}, + {0.120562,0.094899}, + {-0.607090,0.509514}, + {0.391938,-0.197226}, + {1.477689,-0.894952}, + {0.067956,0.305202}, + {-0.377072,-1.118688}, + {0.238509,-0.640692}, + {0.985068,-1.082955}, + {1.406457,0.016522}, + {-0.195835,0.951245}, + {-0.668623,0.196354}, + {0.629538,-0.359206}, + {-2.110332,-0.600784}, + {0.218971,-0.422251}, + {0.327340,-0.702791}, + {-0.506006,-0.186140}, + {0.342203,0.477097}, + {-0.211730,-0.864108}, + {-0.065807,0.211029}, + {-0.227760,0.316405}, + {0.086344,0.613594}, + {0.237860,1.320884}, + {0.473216,-0.549211}, + {0.498238,-0.583895}, + {0.286832,0.326195}, + {-0.476474,0.218899}, + {-0.563894,0.557927}, + {0.272322,0.469703}, + {-0.749019,-0.736560}, + {0.161585,0.085403}, + {0.056852,0.115904}, + {-0.388830,-0.672548}, + {0.884869,-0.590201}, + {0.566593,0.608661}, + {-0.516091,-0.918691}, + {1.642885,1.310890}, + {0.696677,0.124297}, + {0.445759,2.250527}, + {0.322959,0.688997}, + {0.016110,-0.780982}, + {1.171736,0.361072}, + {1.343905,1.272841}, + {0.592350,0.019416}, + {0.152619,-0.147421}, + {-0.704640,0.341073}, + {1.099323,-0.430740}, + {-0.840177,-0.697932}, + {-1.442964,0.718412}, + {0.164263,0.523929}, + {-0.111350,-0.289444}, + {1.050958,0.639940}, + {-0.763601,-0.206712}, + {-0.631193,-0.041356}, + {0.663994,0.322670}, + {-0.258825,1.093934}, + {0.337754,-0.472584}, + {-0.618973,0.215902}, + {0.770590,-1.183008}, + {1.114851,-0.199457}, + {1.027480,1.933290}, + {-0.609203,1.103349}, + {-0.541345,0.547887}, + {0.276828,-0.095631}, + {1.215758,-0.061026}, + {-0.865888,-0.313945}, + {0.134350,-0.986536}, + {0.333627,0.278205}, + {0.229353,-0.313560}, + {0.822267,-0.147288}, + {1.790442,-0.772786}, + {0.614975,-0.867141}, + {0.824009,-0.340756}, + {0.242416,0.525339}, + {-0.913436,1.352899}, + {0.085737,0.921626}, + {0.600046,0.518829}, + {0.840608,-0.399042}, + {0.744769,0.036632}, + {-0.040337,0.836790}, + {0.069399,0.963537}, + {0.190218,-1.028734}, + {0.357859,-0.557734}, + {-0.160823,-0.761802}, + {0.679527,0.810942}, + {-0.334324,0.388009}, + {0.635341,-0.443085}, + {1.119667,1.031693}, + {0.702179,-0.010668}, + {0.687804,0.335793}, + {-1.218997,0.360120}, + {-0.015499,0.167078}, + {0.772188,-0.754889}, + {1.119482,0.633941}, + {0.789910,-0.165533}, + {-0.352196,-0.008508}, + {0.863554,0.258157}, + {0.200500,0.053978}, + {-0.201635,0.202142}, + {-0.195493,0.605893}, + {-0.351966,-0.907111}, + {-0.185199,-1.375999}, + {-0.288755,0.112778}, + {-0.601478,0.546465}, + {-0.254146,0.433599}, + {1.287544,0.188691}, + {0.748493,0.772074}, + {-0.185359,-0.704725}, + {0.297589,-0.523805}, + {-1.228142,0.231061}, + {-0.238207,-1.513225}, + {-1.093305,-0.811754}, + {-1.360744,-0.232347}, + {0.770614,2.942337}, + {-1.054750,-0.772966}, + {0.639057,-0.927998}, + {-0.300836,-0.163147}, + {-0.393160,-0.264180}, + {-0.502845,1.088386}, + {-0.790613,0.905711}, + {-0.312306,-0.234891}, + {0.024799,0.486804}, + {-0.059798,1.341482}, + {-0.463482,0.141503}, + {-0.142495,0.482216}, + {-0.584915,0.774424}, + {0.727377,0.857342}, + {-0.250533,-0.538912}, + {-0.708249,-0.711566}, + {-1.633626,-0.948018}, + {-0.654737,0.568716}, + {-0.452462,0.609938}, + {0.103789,0.356140}, + {-0.028716,0.443183}, + {1.028940,0.846843}, + {-1.932886,-0.497384}, + {-0.029238,-0.196571}, + {0.059763,-0.375114}, + {-0.336361,-0.329419}, + {0.088773,-0.164776}, + {0.765711,0.371364}, + {0.204439,0.390603}, + {-0.110530,1.504023}, + {-0.431800,0.089282}, + {-0.819449,-0.350066}, + {-0.974220,0.564947}, + {0.125759,0.339755}, + {0.317493,-0.006911}, + {-1.013535,-0.202630}, + {0.112258,0.117162}, + {-0.531978,0.042502}, + {-0.940156,0.121649}, + {-0.725521,0.466195}, + {-0.416124,0.485405}, + {0.336967,0.057276}, + {-0.421566,-0.168387}, + {-0.015320,0.831380}, + {-1.056343,-0.068795}, + {0.549310,-1.282829}, + {-0.194868,0.315490}, + {0.003948,-0.561034}, + {0.479671,-0.065741}, + {-0.425547,0.760606}, + {0.488399,-0.579394}, + {-0.424074,-0.366667}, + {0.044047,1.152952}, + {-0.830197,-0.460495}, + {-0.814327,0.057209}, + {1.553867,-0.219049}, + {0.774422,0.590411}, + {0.363240,-0.485420}, + {0.185316,0.168755}, + {-0.564670,-0.244371}, + {0.792661,-0.638865}, + {-0.024050,-0.436980}, + {1.350849,-0.888220}, + {-0.143934,0.300172}, + {0.586975,0.568336}, + {-0.081438,-0.547728}, + {0.492427,0.008414}, + {0.215698,-0.171356}, + {0.462206,0.692607}, + {-0.431732,-0.509402}, + {-1.299840,-1.348103}, + {-0.738818,-0.011450}, + {-0.193146,-1.086403}, + {0.998385,-0.142121}, + {-0.217947,-0.430734}, + {-0.035329,-1.851256}, + {-0.353180,0.927875}, + {0.107119,0.623563}, + {0.012206,-0.271749}, + {-0.307655,0.692549}, + {-0.622138,-0.761409}, + {0.442970,-0.480029}, + {0.796093,0.551437}, + {0.009668,-0.449114}, + {-0.116923,-0.003272}, + {0.747452,0.198782}, + {1.585947,-0.584168}, + {0.062659,-2.154515}, + {-1.470887,-0.702686}, + {-0.377002,-0.215950}, + {-1.380013,0.062652}, + {0.664140,0.181371}, + {1.034914,1.310640}, + {0.810257,-0.623334}, + {0.768412,-0.116447}, + {-0.043917,1.459535}, + {-0.441852,-0.598940}, + {0.028953,-0.184729}, + {-0.076069,0.867122}, + {-0.752365,-0.121888}, + {0.348209,-0.710583}, + {1.006050,-0.709281}, + {0.321016,0.506845}, + {-1.004044,0.592095}, + {1.476868,1.249852}, + {0.404023,-0.215948}, + {-0.786363,0.092388}, + {0.312994,-1.676486}, + {0.877315,0.390367}, + {0.304297,1.872417}, + {0.488998,-0.499786}, + {0.018221,-0.372451}, + {-1.630813,0.961882}, + {-0.677563,0.211437}, + {-0.795802,0.135461}, + {0.520392,0.265735}, + {0.785026,0.446039}, + {-0.362354,-0.016902}, + {-0.318927,-0.455923}, + {-0.333291,0.675215}, + {-1.334583,0.593424}, + {1.430517,-0.375052}, + {-0.502683,-0.736192}, + {-0.710810,-0.141498}, + {-0.252294,0.092360}, + {0.626259,-0.169977}, + {-0.267358,-0.042655}, + {0.193435,0.364396}, + {0.847771,-0.951427}, + {-0.521408,0.066863}, + {1.582067,-0.274576}, + {-0.618104,0.064801}, + {0.613930,-0.093315}, + {0.117743,0.435939}, + {1.262775,0.798231}, + {-0.609864,0.402638}, + {-0.433813,-0.204178}, + {0.343590,-0.619007}, + {-0.178302,0.528886}, + {0.558275,-0.569073}, + {-0.158423,-0.646560}, + {0.527513,0.661901}, + {-0.991489,0.090190}, + {-0.352216,-0.296703}, + {-0.809827,-0.667036}, + {-0.509143,0.613069}, + {-0.175233,0.802702}, + {-0.393206,-0.142194}, + {0.443495,-0.739842}, + {-0.493505,-0.346109}, + {0.291099,0.973915}, + {-0.121100,-0.623550}, + {0.464915,-0.564442}, + {-0.544471,0.680835}, + {-0.476296,0.594486}, + {-0.646494,-0.116102}, + {-0.912840,0.857731}, + {0.608502,0.100114}, + {0.831568,-1.091763}, + {0.233161,0.780343}, + {-0.197179,0.037707}, + {-0.367386,-0.575712}, + {-0.755259,0.477536}, + {0.467144,-0.619239}, + {-0.321884,0.010948}, + {0.452682,0.145276}, + {-0.220426,-0.550002}, + {-0.256978,0.137362}, + {0.680658,-0.565345}, + {-1.750026,-0.017867}, + {-0.323665,-0.262173}, + {-0.097985,0.422237}, + {-1.404647,-0.993924}, + {-0.588194,0.571803}, + {-1.200961,0.921556}, + {0.193916,2.152188}, + {1.013266,-0.106129}, + {0.235823,2.080106}, + {-0.108434,-0.729457}, + {-0.408723,-0.348886}, + {-0.302859,1.484877}, + {-0.312681,-0.505828}, + {0.018735,-0.122920}, + {0.355886,-0.484280}, + {-0.135969,0.761103}, + {0.390779,1.771250}, + {-0.145102,-1.388635}, + {-0.416709,-0.621879}, + {0.126479,-0.899692}, + {-1.448828,0.318005}, + {0.672198,0.308803}, + {-1.764904,0.014698}, + {0.467586,0.731148}, + {-0.866142,-0.129121}, + {1.095405,1.415374}, + {-0.288686,1.532333}, + {-0.694974,-0.572545}, + {-0.296954,-0.918548}, + {0.185017,-0.335333}, + {0.106725,-0.810778}, + {-0.266406,-0.574720}, + {1.024931,0.523381}, + {0.111210,1.033764}, + {1.104428,0.317206}, + {0.138012,-0.485474}, + {-0.075850,-0.936313}, + {-0.691784,0.547524}, + {-0.960452,-0.600781}, + {-0.806045,-0.461982}, + {1.408073,-0.255135}, + {0.150425,-0.658298}, + {0.240710,-0.413124}, + {0.206125,1.431848}, + {-0.706788,-0.747984}, + {0.209810,0.344959}, + {0.940145,1.819041}, + {-0.423045,1.613672}, + {0.691372,0.408910}, + {0.291379,1.694717}, + {-0.022473,-0.483715}, + {1.506409,-0.487754}, + {-0.950211,0.174272}, + {0.437884,0.334518}, + {-0.059121,-0.187999}, + {-0.706148,0.532011}, + {1.247993,-0.173918}, + {0.403025,-0.456743}, + {0.101642,-0.201338}, + {0.220295,0.098694}, + {-0.544353,-1.008343}, + {0.706586,-0.476523}, + {0.291079,-0.150127}, + {-0.041337,-0.659792}, + {-0.493954,-0.757686}, + {-0.198818,-0.425300}, + {0.765368,-0.713655}, + {0.129659,-0.656772}, + {0.752741,0.605671}, + {0.059329,1.098435}, + {-0.095906,-1.236300}, + {-0.192572,-0.654089}, + {0.060002,-0.407818}, + {1.023894,-0.192512}, + {-0.012820,-0.526931}, + {-0.853581,-0.349135}, + {0.422981,-0.199832}, + {-0.884115,-1.022837}, + {0.051870,2.156258}, + {0.511633,0.370017}, + {1.100921,0.287222}, + {-1.091726,-0.326993}, + {1.065161,-0.088250}, + {1.295012,0.347661}, + {-0.186661,0.274683}, + {0.453460,0.453078}, + {-0.019832,-1.655232}, + {0.033441,-0.077400}, + {0.083820,-0.808385}, + {0.161770,1.034907}, + {-0.408970,0.435216}, + {0.710238,0.172596}, + {0.070505,0.071455}, + {-0.157619,1.133331}, + {0.934837,0.290817}, + {-0.142153,-1.033463}, + {-0.805522,-0.609104}, + {-0.713519,0.333743}, + {0.766007,0.180658}, + {-0.210227,-0.404890}, + {-1.432711,0.510194}, + {-1.527153,-0.138670}, + {-1.413773,-1.392381}, + {1.162048,-1.121023}, + {0.375536,0.334633}, + {0.277678,0.377802}, + {0.353273,-0.438537}, + {-0.000468,0.519358}, + {-1.862624,-0.213202}, + {0.231657,-0.206180}, + {0.579498,1.438150}, + {-0.818714,0.244540}, + {-0.414526,-0.963580}, + {1.434481,-0.200950}, + {-0.706870,-0.490200}, + {-0.445819,0.232220}, + {0.014789,0.903088}, + {0.823644,0.019996}, + {-0.257175,1.092355}, + {0.233427,1.236390}, + {-1.569737,0.596411}, + {0.289963,-0.304775}, + {-0.652898,-0.307950}, + {0.677093,0.468114}, + {0.199346,-0.368715}, + {-0.122099,-0.856128}, + {0.527088,-0.699184}, + {0.098459,-0.383729}, + {0.127642,0.100256}, + {-0.743423,-0.133080}, + {-1.904618,-0.208222}, + {-0.311420,0.441420}, + {0.314336,-0.480474}, + {-0.822712,-0.862232}, + {-0.009480,1.146566}, + {-0.001370,-0.736855}, + {-0.643167,-0.430793}, + {-1.377535,0.367134}, + {0.117747,-0.018534}, + {0.118661,-0.605605}, + {-0.428251,0.078424}, + {-0.755322,0.026743}, + {0.108427,-0.429369}, + {-0.546590,-0.242576}, + {-1.123375,0.034104}, + {-0.178010,0.215736}, + {0.555579,-0.157472}, + {0.008256,-1.040877}, + {0.300994,0.502246}, + {-0.596434,-0.574450}, + {0.650520,-0.251038}, + {-1.202669,0.119406}, + {1.207843,-0.367324}, + {-0.839307,-0.511398}, + {-1.142954,0.350094}, + {1.745947,-0.663306}, + {-0.197524,-0.058007}, + {0.604840,0.358341}, + {-0.629763,-1.061339}, + {0.714119,-0.671946}, + {-0.957979,0.108516}, + {-0.204673,-0.841928}, + {-0.224796,1.403409}, + {0.057728,-0.276108}, + {0.022420,0.907590}, + {-0.442873,-0.197745}, + {0.070502,0.367408}, + {1.111314,-0.115300}, + {-1.214722,0.435263}, + {-0.623381,-0.183199}, + {0.842462,0.271952}, + {0.223962,-0.253993}, + {0.784241,-0.623105}, + {-0.460386,0.244667}, + {0.057513,-0.844943}, + {0.252052,1.072527}, + {0.045339,0.090347}, + {-1.550655,-0.849565}, + {0.698342,1.719761}, + {0.625755,-0.059108}, + {0.461099,0.873655}, + {-0.178899,-0.905113}, + {0.378758,0.050943}, + {-0.024118,0.005723}, + {0.139377,-1.441619}, + {0.746170,-0.864942}, + {2.244304,0.225823}, + {0.941294,0.456267}, + {0.681838,0.479907}, + {0.555077,0.448809}, + {0.113034,0.326665}, + {0.290276,-0.323618}, + {-0.310803,-0.740078}, + {0.288215,0.147328}, + {0.122018,-0.901168}, + {1.102202,-1.702754}, + {-0.681899,1.076125}, + {-0.823461,-0.531651}, + {0.608237,-0.372707}, + {-0.681661,-0.191809}, + {0.079867,-1.266244}, + {-0.317741,-0.703671}, + {0.034086,0.942178}, + {0.168887,0.177944}, + {-0.613740,0.025035}, + {1.089925,0.392534}, + {0.075943,0.040485}, + {0.566377,-0.156880}, + {0.660386,0.045064}, + {-0.906557,0.350211}, + {-0.616084,0.671656}, + {-0.353653,-0.928423}, + {1.334011,-0.377983}, + {0.733590,0.190001}, + {-0.583415,-0.285064}, + {1.339272,0.266120}, + {-0.537001,-0.258520}, + {-0.448141,-0.050157}, + {0.740691,0.648732}, + {1.056314,-0.629005}, + {-1.160330,0.410656}, + {0.633715,-0.113482}, + {0.220648,-0.289338}, + {-1.356221,-1.047442}, + {-0.799830,-0.402114}, + {-0.855423,-0.218579}, + {0.533292,-0.955058}, + {-0.590952,-0.359871}, + {-1.003588,-0.950145}, + {0.031010,-0.073887}, + {-0.970717,0.112552}, + {0.905541,0.082191}, + {1.109198,0.621634}, + {0.061115,-0.182655}, + {0.519211,0.584771}, + {0.453454,1.105118}, + {0.307900,-0.290329}, + {-1.310764,-1.192390}, + {-0.990446,-0.449249}, + {-0.636245,-1.136897}, + {0.194571,-0.105070}, + {0.972256,0.693447}, + {-0.291198,1.374025}, + {0.144387,1.382765}, + {-0.101333,-0.022509}, + {-0.474852,0.062917}, + {-0.543704,-0.461692}, + {0.714138,-0.106485}, + {0.040096,0.285104}, + {0.590028,1.369938}, + {0.501543,-0.043429}, + {2.614600,1.102147}, + {0.255439,-1.183224}, + {-1.069301,0.552063}, + {0.505847,0.666774}, + {0.018523,2.289326}, + {-0.261409,-0.381025}, + {-0.633168,-0.802063}, + {-0.221651,-0.314856}, + {0.314198,1.603044}, + {1.173064,1.017943}, + {-0.665682,-0.159433}, + {-1.758748,-0.064417}, + {1.147580,0.950364}, + {0.550126,-0.366558}, + {0.065759,0.113614}, + {0.956481,1.179104}, + {0.433038,-0.684553}, + {-0.367835,-0.136092}, + {-1.108652,-0.501821}, + {0.014093,-0.724897}, + {0.474274,0.071691}, + {-0.878852,-0.454418}, + {-0.111987,0.397469}, + {0.980863,0.508451}, + {0.567833,-0.325126}, + {0.117299,-0.350239}, + {0.496458,-0.149528}, + {-0.712447,0.404552}, + {0.050514,-0.370253}, + {0.209666,-0.591714}, + {-0.392540,-1.209119}, + {-0.075244,0.496292}, + {-0.294131,-1.102998}, + {-0.209255,0.078796}, + {0.109577,-0.306647}, + {-0.214269,0.731213}, + {1.862247,0.688064}, + {-0.992337,0.128817}, + {0.056261,2.006550}, + {-0.259084,0.729512}, + {0.491870,-0.795017}, + {0.176987,0.094347}, + {-0.319391,0.300136}, + {-0.069294,-0.021210}, + {1.038121,-1.099239}, + {1.734655,-0.131408}, + {0.361025,1.818288}, + {-0.758635,-0.906905}, + {1.433721,-0.082347}, + {-0.327756,-1.150218}, + {0.449566,0.413723}, + {0.983053,-0.867287}, + {-0.937329,-0.376043}, + {-0.126866,-0.124008}, + {-0.438458,-0.453466}, + {-0.101627,0.012617}, + {0.582181,-0.133631}, + {0.121428,-0.222195}, + {-0.608804,0.004610}, + {-0.280329,-0.071507}, + {0.776663,-0.049369}, + {0.603737,-0.528278}, + {-1.155587,0.324328}, + {-1.123362,-0.454602}, + {0.767449,-0.921822}, + {-0.352388,-0.357436}, + {0.309848,0.070129}, + {-0.656513,-0.652553}, + {-0.381851,0.355358}, + {0.495213,0.523033}, + {1.153773,1.092873}, + {0.668633,-0.859082}, + {-0.746353,-0.312026}, + {1.048775,0.535930}, + {0.279033,-0.054578}, + {-0.111243,-0.422662}, + {-0.136422,0.053799}, + {-0.056102,0.342915}, + {-1.088014,-0.730922}, + {0.878624,-0.890989}, + {-0.729911,-0.058834}, + {-1.333908,-1.160115}, + {-0.684287,-0.253154}, + {-1.079448,-0.270283}, + {0.151333,-1.649204}, + {0.253875,0.108594}, + {0.235712,0.387503}, + {-0.899825,0.496213}, + {-0.610484,-0.533034}, + {0.496822,-0.243569}, + {-0.524167,0.235972}, + {-1.610220,-0.155522}, + {-0.796686,1.243795}, + {-0.581308,-0.236754}, + {-0.209195,-0.037144}, + {0.184881,-0.083576}, + {0.396540,-0.490520}, + {0.508980,1.096300}, + {-0.094454,0.369221}, + {0.680896,1.252947}, + {-0.440938,-0.853486}, + {-0.157199,-1.304081}, + {-1.447599,0.971928}, + {0.626587,0.396517}, + {0.836229,0.966611}, + {1.381874,-0.246085}, + {-0.414028,-0.280956}, + {0.980019,-0.334138}, + {-1.644429,-0.389069}, + {0.225519,0.368235}, + {1.116159,-0.726131}, + {-0.733320,0.355245}, + {0.988265,-1.747007}, + {0.840822,0.138793}, + {-0.117871,0.688465}, + {0.657025,0.157528}, + {-0.117520,0.629271}, + {-0.645882,-0.938485}, + {0.980639,0.197481}, + {0.320092,-0.621575}, + {1.315216,0.186380}, + {-1.150480,-1.020916}, + {1.148288,-0.445450}, + {-0.049133,0.097262}, + {0.210559,-0.338083}, + {-0.164647,1.698560}, + {-0.134143,-0.581370}, + {-0.100706,0.043457}, + {-0.251067,-0.907292}, + {0.551859,-0.013725}, + {0.299242,-0.340345}, + {-0.247395,1.075102}, + {-0.032695,-1.479628}, + {0.250204,0.334675}, + {0.859668,-0.605057}, + {0.362075,0.166596}, + {0.432570,-0.747261}, + {0.674745,-0.020640}, + {0.361038,0.375811}, + {0.009795,0.744204}, + {-0.437627,-0.150132}, + {-1.149837,0.074239}, + {-0.717292,-1.450907}, + {1.485412,0.238923}, + {-0.577879,-0.010250}, + {0.641200,-0.964459}, + {-0.088981,0.206840}, + {0.593610,-0.502221}, + {-1.008813,0.283182}, + {-0.009605,-0.090918}, + {-1.338922,0.333185}, + {-1.074846,-1.517178}, + {0.539697,-0.906593}, + {0.275416,-0.647435}, + {1.139667,1.074978}, + {0.070698,-0.375933}, + {0.008435,1.196329}, + {-0.222550,0.250323}, + {0.275090,-0.128200}, + {0.279230,0.576149}, + {-0.362237,0.693913}, + {-0.614259,0.504714}, + {0.812049,-1.100580}, + {-0.370461,0.966923}, + {1.198670,-0.644836}, + {-0.031461,0.128519}, + {-0.122097,0.053159}, + {1.315332,-1.008152}, + {-0.754167,-0.305309}, + {-0.485979,0.476556}, + {0.823664,1.071616}, + {-0.183654,-0.551620}, + {0.748615,0.994233}, + {-0.119972,0.065139}, + {-0.849627,-1.159702}, + {-0.444765,0.256956}, + {0.209474,-0.472828}, + {-0.525549,-1.027303}, + {1.757616,0.445698}, + {0.160525,0.088103}, + {0.435382,0.227305}, + {0.218477,0.170341}, + {-0.580507,-0.450303}, + {0.398378,0.017052}, + {-0.031351,-0.247548}, + {-2.316506,-1.483557}, + {-0.443973,-0.691774}, + {-0.510807,0.699816}, + {-1.037649,0.345879}, + {-1.257505,0.629094}, + {-0.000852,-0.321557}, + {-0.373482,-0.402662}, + {-0.022826,-1.218651}, + {0.025138,0.767667}, + {0.356935,-1.465306}, + {-0.020640,-0.323252}, + {0.602591,-0.289913}, + {0.046297,0.283469}, + {-0.283535,-0.047672}, + {-0.166785,-0.277583}, + {-2.385793,1.082178}, + {-0.050855,0.483435}, + {-0.239055,-0.165545}, + {0.505107,0.359352}, + {-0.855951,-1.185629}, + {-0.394709,0.226833}, + {1.257326,-0.916278}, + {-0.745575,-0.046165}, + {-2.243851,-0.696840}, + {0.551393,0.147983}, + {0.291053,-0.204270}, + {0.161488,-0.475875}, + {-0.528262,0.575247}, + {-0.986426,0.773656}, + {-0.744878,-0.909927}, + {0.320911,0.629702}, + {-0.323660,-0.506678}, + {0.028159,-0.259382}, + {0.460460,-0.163144}, + {-0.813206,-0.350558}, + {1.044790,0.293066}, + {-0.132596,1.665505}, + {0.395208,-1.153663}, + {0.924725,-0.269132}, + {-0.982288,-0.672640}, + {0.021874,0.182806}, + {0.249894,0.425458}, + {-0.636470,-0.070118}, + {0.024546,-0.394318}, + {-0.114422,-0.016105}, + {0.604817,0.799636}, + {0.172222,0.798172}, + {-0.091129,0.328291}, + {0.590852,1.199025}, + {-1.487713,0.087366}, + {-1.108675,-0.555536}, + {-0.692600,0.090637}, + {0.911874,0.392273}, + {0.402013,0.091871}, + {-2.169173,0.338864}, + {0.067482,-1.073878}, + {-0.036547,1.460194}, + {0.266305,0.645196}, + {0.003120,0.423355}, + {-0.238731,0.052394}, + {-1.065448,-0.598678}, + {0.055241,0.168619}, + {0.562618,1.551298}, + {-0.301688,-0.337400}, + {0.547448,0.323789}, + {0.788771,0.516224}, + {0.132486,0.681322}, + {-0.323760,-0.904475}, + {-0.871126,-0.916061}, + {-1.544630,0.204207}, + {-0.082182,0.441189}, + {-0.325721,0.084840}, + {-0.000671,-0.910962}, + {-1.548705,-0.305130}, + {1.464460,1.600289}, + {-1.349656,0.526047}, + {-1.552741,0.906982}, + {-0.519449,-0.233318}, + {0.355732,0.331088}, + {-0.489145,0.230703}, + {-0.970139,0.363476}, + {-1.624033,-0.509895}, + {0.174146,0.821782}, + {0.724604,-1.376511}, + {1.393602,-0.607327}, + {-0.510112,1.657338}, + {0.015431,-0.001536}, + {-0.130508,-1.555322}, + {0.000549,-0.198261}, + {0.311467,1.081502}, + {0.243611,-1.360408}, + {-0.894903,-0.713205}, + {0.388720,-0.109925}, + {0.521072,0.398730}, + {0.574843,0.157766}, + {-0.617189,-0.437769}, + {-0.211497,0.748437}, + {0.702855,0.433536}, + {0.432827,-0.382179}, + {0.447150,1.156332}, + {-0.241624,0.581731}, + {1.292169,0.119941}, + {0.294642,-0.871407}, + {0.078200,-0.381604}, + {1.032330,0.908219}, + {0.814741,-0.010627}, + {-0.355983,-0.219502}, + {-0.243898,-0.682654}, + {0.635359,-1.737373}, + {-0.107756,-0.345466}, + {-1.263305,-0.370563}, + {0.175980,0.376202}, + {1.108166,-0.738982}, + {-0.840360,-0.285063}, + {-0.324492,-0.354966}, + {0.478240,0.505811}, + {0.319641,0.856630}, + {-0.332756,0.510426}, + {2.005001,0.405899}, + {0.155406,-1.227927}, + {0.289207,0.937761}, + {0.051751,-0.221727}, + {0.149748,0.268723}, + {-1.025125,0.344019}, + {0.582839,-0.321769}, + {-0.775607,1.441111}, + {0.027304,-0.584074}, + {0.863740,0.627974}, + {-1.060986,0.321724}, + {-0.281804,-0.212668}, + {-0.329657,0.371799}, + {0.531848,-0.158105}, + {0.026672,-0.486360}, + {-0.218047,0.635491}, + {0.666709,0.993036}, + {0.459120,0.452677}, + {0.248002,0.115551}, + {0.206833,-1.105758}, + {-1.569637,-0.151421}, + {0.180787,0.166870}, + {1.226875,1.017497}, + {-1.217281,-0.448781}, + {-1.565721,0.396797}, + {-0.217848,-0.273230}, + {-0.526096,0.662491}, + {-1.229207,0.003437}, + {0.383000,-0.372112}, + {1.650689,0.790800}, + {0.536051,1.136376}, + {-0.392390,-0.182759}, + {-0.163732,-1.005985}, + {-1.140970,0.475364}, + {0.184716,-1.063705}, + {0.945672,-0.647324}, + {0.317886,-0.600098}, + {-0.396886,0.775971}, + {0.101952,-0.090515}, + {0.276508,1.253623}, + {-0.416748,0.718122}, + {-0.099947,-0.530635}, + {-1.499713,0.042544}, + {0.397603,-0.268105}, + {0.204542,-1.122999}, + {-0.983787,-0.646320}, + {0.250761,-0.124317}, + {0.473183,0.341900}, + {-0.705158,0.158472}, + {0.371776,0.467056}, + {0.257410,-1.623932}, + {0.092234,-1.078695}, + {-0.295587,0.833320}, + {-0.531598,-0.934193}, + {0.124603,-0.162051}, + {-0.040780,-0.840548}, + {0.785678,0.974760}, + {-0.282413,0.507355}, + {0.057080,-0.754205}, + {-0.817044,0.275642}, + {0.449437,0.089153}, + {-0.482425,0.004603}, + {1.564964,-1.225545}, + {-0.296003,1.012181}, + {0.691527,0.516007}, + {0.861031,-0.816600}, + {0.276897,-0.215415}, + {-0.478248,1.152079}, + {-0.243767,0.552381}, + {-0.615166,0.120121}, + {-0.258476,-0.311377}, + {-0.105806,-1.233470}, + {0.933500,0.163247}, + {0.430437,1.092868}, + {-1.072369,-0.214236}, + {-0.893004,0.971634}, + {-0.207458,-0.661337}, + {0.591135,0.252093}, + {-0.044583,0.323754}, + {0.455226,0.549888}, + {1.492632,0.101093}, + {-0.299396,-0.684097}, + {0.378218,-0.334619}, + {0.232610,-0.041219}, + {0.051506,0.557403}, + {1.217142,-1.249841}, + {0.292157,1.470057}, + {0.044903,0.071167}, + {-0.290396,0.496778}, + {-0.181920,0.671063}, + {-0.579713,-1.039686}, + {-1.356184,0.198084}, + {0.175306,1.691410}, + {1.030813,-0.581909}, + {-0.959255,-0.444030}, + {-0.357172,-0.625541}, + {0.681264,0.143548}, + {-0.065022,-1.255416}, + {-0.025972,0.751640}, + {0.195418,0.198967}, + {-0.581082,1.283469}, + {0.990660,0.778059}, + {-0.282029,1.107940}, + {-0.273763,0.542701}, + {0.995269,0.786820}, + {-0.232447,0.365286}, + {0.704749,1.074984}, + {0.644010,0.101394}, + {0.378756,-0.170049}, + {0.796258,0.096740}, + {0.728484,0.048925}, + {-0.029005,1.135049}, + {-1.414461,0.100530}, + {0.195218,1.644827}, + {-1.140545,0.941779}, + {-0.380364,-0.295396}, + {-0.489642,0.720380}, + {0.491530,1.084624}, + {0.771087,0.723882}, + {-0.079504,-0.260956}, + {0.512847,0.722547}, + {0.807801,-0.638746}, + {-0.235408,-2.425129}, + {-0.331496,-0.883682}, + {-0.331335,0.149970}, + {0.777123,0.876489}, + {1.812793,-0.280792}, + {-0.603163,0.962356}, + {-0.433949,0.895134}, + {0.611068,-0.002651}, + {-0.050707,-0.939219}, + {0.333190,-0.695877}, + {1.033787,-0.977412}, + {1.029110,0.572951}, + {-0.703830,0.009984}, + {-0.605666,0.240015}, + {-0.892166,-0.256507}, + {0.310084,-0.876146}, + {1.405525,0.188992}, + {-0.818726,0.673212}, + {0.010904,-1.077932}, + {-1.260912,0.553293}, + {-0.193185,0.554862}, + {-0.169833,-0.541666}, + {0.022431,-0.220661}, + {-0.072948,0.560653}, + {-0.643691,-0.722108}, + {-0.414350,-0.104367}, + {0.708357,0.463080}, + {0.714304,-0.151360}, + {-0.658587,-0.887861}, + {0.149199,0.432913}, + {-0.530458,0.445705}, + {1.826116,1.011888}, + {0.656833,0.119869}, + {-0.563687,0.624626}, + {-0.525881,0.838023}, + {0.361541,0.559821}, + {-1.743937,0.165666}, + {-1.349337,1.152104}, + {-0.049679,0.493514}, + {1.987946,-0.325951}, + {0.055513,0.426012}, + {-1.269326,0.122713}, + {-0.773301,-0.328201}, + {0.863300,0.397242}, + {1.404658,0.490418}, + {0.697909,-1.272366}, + {0.346984,0.771560}, + {-0.275198,1.462558}, + {0.614286,-0.583483}, + {0.491689,-0.121321}, + {0.868958,-0.218826}, + {0.802647,0.609581}, + {-0.178894,-0.484794}, + {1.554270,-0.459034}, + {-0.578008,-0.604401}, + {0.141200,-0.810175}, + {0.444930,1.801883}, + {-0.510472,0.370071}, + {0.280709,-1.144972}, + {0.020627,-1.159767}, + {-0.815817,-0.708195}, + {1.525475,-1.186390}, + {0.277199,0.101433}, + {-0.263937,-0.366057}, + {-0.084328,-0.735973}, + {-1.014961,-0.808112}, + {-0.463739,0.359998}, + {-0.195469,-0.339523}, + {-0.016981,0.736436}, + {-0.265756,0.651378}, + {1.181170,0.229175}, + {0.508341,-0.387702}, + {0.232816,0.750349}, + {0.118147,0.881985}, + {0.775509,-1.072872}, + {0.126875,-0.169368}, + {0.733796,-1.038803}, + {-0.002779,1.199573}, + {-0.771687,-0.819622}, + {-0.160414,1.766988}, + {-0.554493,-0.822178}, + {-0.966927,-0.264584}, + {-1.666005,0.562460}, + {-1.142024,-0.696414}, + {0.406841,0.433538}, + {-0.370948,-1.115653}, + {0.136048,0.160321}, + {0.288581,1.454045}, + {0.877842,-0.195856}, + {-0.788680,-1.099470}, + {-0.132225,1.177897}, + {0.090549,0.626800}, + {-0.773979,-0.074852}, + {0.684609,0.690323}, + {0.177050,-1.167072}, + {-0.324256,-0.482870}, + {-0.176754,-0.424217}, + {-1.014998,-0.298680}, + {-0.474555,-0.796117}, + {0.283239,0.175760}, + {0.614617,0.095776}, + {-0.294539,-0.581832}, + {-0.411225,-0.981276}, + {0.042082,0.873893}, + {-0.603924,0.401098}, + {-0.783720,-0.094055}, + {-0.750818,1.155413}, + {-0.229883,-0.177973}, + {-0.439507,0.600696}, + {1.064919,0.193246}, + {-0.304774,0.765127}, + {-0.423589,1.423282}, + {0.226341,0.048299}, + {-0.491662,0.021729}, + {-1.190822,-0.192527}, + {0.236763,-1.021980}, + {0.347245,0.305465}, + {0.437791,-0.174323}, + {0.293884,-1.183318}, + {0.090410,-0.351897}, + {0.127531,0.572262}, + {-1.046283,-0.452403}, + {0.940061,-0.475348}, + {-0.986271,0.443950}, + {0.220640,1.032270}, + {0.286851,-0.234600}, + {0.875448,-0.665507}, + {0.054512,0.468117}, + {-0.130507,1.089372}, + {-0.035702,0.486985}, + {0.069264,-0.306520}, + {-0.066945,-0.482707}, + {0.452421,0.252962}, + {0.597328,-0.457166}, + {-0.475184,-0.265545}, + {0.663543,-0.025896}, + {0.284485,0.141732}, + {0.041567,-0.957668}, + {0.290973,-0.844633}, + {-0.681949,-1.232429}, + {0.017290,0.318637}, + {-0.575524,-0.211416}, + {0.508609,0.616042}, + {0.019156,1.014363}, + {-0.230623,-0.152963}, + {0.390757,0.179639}, + {-0.076114,0.571760}, + {-0.385456,0.807338}, + {1.161341,-1.117539}, + {0.108692,-0.217050}, + {0.124773,-0.057939}, + {0.460042,-0.075353}, + {0.381092,-0.249534}, + {0.421018,0.484359}, + {0.008405,-0.001483}, + {-1.033700,0.064492}, + {0.168744,-0.730623}, + {-0.456130,-0.563921}, + {-0.042797,-0.009800}, + {0.296420,0.994668}, + {-0.431712,-0.260015}, + {-0.851644,0.160001}, + {0.315681,-0.696367}, + {2.018690,1.186418}, + {-0.250355,-0.220666}, + {0.748427,-0.192764}, + {-0.047138,-0.852542}, + {0.211458,1.086426}, + {0.871051,-0.574737}, + {-0.562745,0.929652}, + {0.283267,-0.955651}, + {-1.076759,-0.129783}, + {0.675245,0.669145}, + {-0.702168,-0.896492}, + {-0.291861,0.305292}, + {-0.395244,0.389980}, + {1.207996,0.801305}, + {0.975263,-0.313611}, + {-1.106120,0.102991}, + {0.171218,0.482130}, + {0.049836,0.344150}, + {-0.574798,0.577927}, + {0.172133,0.333449}, + {-1.172473,0.893130}, + {1.350215,-0.102154}, + {0.456540,0.882785}, + {0.794284,-1.919899}, + {0.870210,0.114615}, + {0.286346,0.295210}, + {0.213541,1.053429}, + {0.087514,-0.244276}, + {-0.872078,0.726523}, + {0.614549,0.116808}, + {-0.631306,-1.519765}, + {-0.542784,1.390314}, + {0.087673,0.809103}, + {-1.379197,-0.585950}, + {0.481568,0.087880}, + {-0.119636,-0.372124}, + {0.016361,-0.024546}, + {0.371448,-0.472289}, + {-0.572025,0.092977}, + {0.848296,0.441249}, + {-0.453304,0.205288}, + {-0.271298,0.488850}, + {-0.281843,-0.272080}, + {-0.630517,-0.095495}, + {-0.762736,-0.986147}, + {0.057032,0.993819}, + {-0.237911,-1.264914}, + {0.382413,-0.189031}, + {1.303322,-0.407785}, + {0.538644,0.342608}, + {0.330098,-0.259188}, + {-1.271100,-0.197699}, + {1.826721,0.415414}, + {0.508481,-0.379909}, + {-0.724041,-0.599641}, + {-1.260518,-1.057946}, + {-0.374209,-0.096198}, + {0.392033,1.122224}, + {-0.810644,0.587815}, + {0.365400,1.456110}, + {0.729153,0.098419}, + {-0.225790,-0.539353}, + {-0.858060,0.189621}, + {0.376242,-0.480459}, + {0.232259,-0.269844}, + {0.129211,1.283390}, + {-0.948935,0.157627}, + {0.613247,0.455174}, + {-0.868574,0.557501}, + {0.133104,1.933073}, + {0.493281,-0.734954}, + {-0.317203,0.085507}, + {-0.072179,-0.635623}, + {-0.985795,1.545802}, + {0.274456,-0.767398}, + {0.728872,0.296392}, + {0.593057,0.123323}, + {-0.183197,1.056002}, + {-0.032735,-0.029408}, + {0.677645,0.164514}, + {0.091211,-0.485727}, + {-2.498205,0.808644}, + {0.996395,0.003573}, + {0.266711,-0.454450}, + {-0.263794,-0.040333}, + {0.354992,-0.771940}, + {1.172659,-0.469942}, + {-0.367261,-0.704077}, + {-0.143653,0.755396}, + {1.250809,-0.502261}, + {1.019959,-0.368994}, + {1.590169,-0.138417}, + {0.177393,0.277887}, + {-0.611047,0.094640}, + {-0.549878,-0.036917}, + {0.807628,0.821926}, + {-0.010075,0.421684}, + {-1.108953,-0.164506}, + {-1.299036,-0.726626}, + {0.671054,-0.292631}, + {0.742427,-0.086543}, + {-1.439898,-0.338884}, + {-0.130204,0.124819}, + {0.283823,0.657034}, + {-0.109731,-1.711867}, + {-0.245196,0.209915}, + {0.134997,-0.672792}, + {0.052287,-0.037615}, + {0.660337,-0.488347}, + {-0.874463,-0.641201}, + {-0.570408,0.594626}, + {0.681125,1.678168}, + {0.795936,-1.473398}, + {0.778924,-0.690375}, + {0.431527,-0.973408}, + {-0.440928,-0.786162}, + {0.032495,-0.001239}, + {0.384671,0.422006}, + {-0.232534,0.009146}, + {-0.797171,0.074804}, + {0.273856,-1.269545}, + {-0.171058,-0.791818}, + {1.061619,-0.008526}, + {1.034158,-0.217879}, + {-1.073993,0.364692}, + {0.025259,0.399442}, + {-0.054965,0.068811}, + {-0.267747,-0.643064}, + {1.461066,-0.012076}, + {-0.836750,1.168916}, + {0.751557,0.373319}, + {0.284049,-0.561823}, + {0.913427,0.006951}, + {0.604871,0.613051}, + {0.938690,0.069825}, + {0.501171,-0.252792}, + {0.173783,0.437109}, + {-0.295979,-0.584728}, + {0.268176,-0.073450}, + {-0.039777,0.110535}, + {0.448278,-0.594228}, + {-0.298566,-0.370610}, + {0.359251,1.950238}, + {0.585298,-0.306953}, + {0.002142,-0.517386}, + {0.039309,0.239663}, + {-0.535150,0.901889}, + {0.909644,-0.597911}, + {1.686969,-0.229593}, + {-0.675714,-0.593584}, + {-0.388048,-1.333594}, + {0.141555,-0.868886}, + {0.566275,0.216197}, + {0.132033,0.260242}, + {0.623869,0.696830}, + {0.374297,-0.755016}, + {-0.375173,-0.919679}, + {0.062230,0.203455}, + {-1.171487,1.698409}, + {-0.657380,-0.503744}, + {0.414301,0.170470}, + {-0.611193,-0.370376}, + {0.470375,-0.330994}, + {-0.990314,0.032083}, + {-1.312575,-0.450515}, + {0.164736,-0.128481}, + {-0.912458,-1.485285}, + {-0.073236,-0.747723}, + {0.278586,-0.044914}, + {-0.449681,-1.314391}, + {0.509207,1.963487}, + {0.443624,-1.487975}, + {0.605531,0.966878}, + {0.884828,1.743505}, + {-0.335874,-0.307016}, + {-0.615678,0.670790}, + {0.953036,0.532101}, + {0.825614,0.299899}, + {0.399454,-0.946779}, + {-0.563757,-0.802924}, + {-0.023567,0.554864}, + {0.046483,-0.362895}, + {-0.330303,0.001323}, + {0.433488,0.570663}, + {-0.127014,1.545073}, + {0.235044,-0.692703}, + {0.339960,-0.764085}, + {0.765956,-0.657851}, + {1.077800,-0.036173}, + {0.431734,-0.931291}, + {0.205175,1.147130}, + {-0.058883,-0.741478}, + {0.538996,0.374879}, + {-0.435105,0.405032}, + {0.930107,0.775706}, + {0.158508,-0.559880}, + {-0.043020,-0.139690}, + {0.218128,-0.940794}, + {0.107406,-0.191890}, + {-0.040673,-0.450419}, + {0.710685,-0.272868}, + {0.214608,-0.733148}, + {-0.440708,-0.166709}, + {0.216889,-1.104968}, + {0.114942,0.352891}, + {0.515426,0.834965}, + {-0.186585,-0.424557}, + {1.257561,-0.686647}, + {-0.278166,-1.068819}, + {0.045243,-0.149820}, + {-0.806871,0.387979}, + {0.040414,-0.705648}, + {-0.016666,1.472054}, + {-0.427683,0.185384}, + {0.017081,0.122558}, + {-1.422488,0.695789}, + {0.084603,1.586049}, + {-0.226098,-0.072565}, + {-0.689706,0.246104}, + {0.644654,0.604549}, + {-0.260322,1.463776}, + {-0.430197,0.702709}, + {-0.736554,1.401740}, + {0.204332,-0.375610}, + {-0.939807,1.309502}, + {-0.037928,0.882787}, + {-0.338569,0.066617}, + {0.075071,0.541251}, + {0.172982,1.021832}, + {0.431851,-0.387000}, + {0.307106,-0.919275}, + {0.988648,-0.253024}, + {-0.673928,0.782128}, + {-0.688000,-0.918977}, + {-0.027596,0.365924}, + {-0.017926,1.175705}, + {0.199711,-0.926633}, + {0.739217,-0.155412}, + {-0.592162,0.021539}, + {0.080983,-0.276297}, + {0.537674,-0.246176}, + {0.015238,0.398952}, + {-0.027734,-0.249279}, + {-1.378429,0.127339}, + {-0.809060,1.028061}, + {0.218043,-0.052562}, + {0.856957,1.006954}, + {-1.011526,0.164596}, + {0.476552,0.826400}, + {0.022545,0.496168}, + {-0.593984,0.825097}, + {-0.170301,-0.015034}, + {0.206013,0.981045}, + {0.558955,-2.047671}, + {-0.285619,-0.535242}, + {0.338595,-0.054516}, + {-0.320398,0.326921}, + {-1.165209,-0.830182}, + {-0.247664,-0.461885}, + {0.566396,-0.099876}, + {-0.062142,0.605779}, + {0.862879,0.021585}, + {-0.964586,-0.456012}, + {0.383126,-0.226075}, + {1.125091,0.452775}, + {0.287649,1.076596}, + {0.090020,0.540193}, + {-0.329572,1.895356}, + {0.883979,-0.133990}, + {0.777596,0.934683}, + {0.305673,-0.097759}, + {0.445752,0.546775}, + {0.438676,-0.401466}, + {0.515517,0.663239}, + {-0.861769,-0.334754}, + {-1.155387,1.376435}, + {0.693576,0.380899}, + {-0.233764,-1.427252}, + {-0.512225,0.275704}, + {-1.300603,-0.025943}, + {-0.886231,0.393107}, + {0.203813,-1.151956}, + {1.065475,0.274747}, + {1.298933,-0.171110}, + {-0.034164,-0.546428}, + {1.344656,0.280082}, + {0.303208,-0.150756}, + {-0.278895,0.217139}, + {0.774302,0.280649}, + {-0.397168,-0.748535}, + {-0.154686,-0.416415}, + {0.108531,-0.707248}, + {1.044479,0.517916}, + {-1.079087,-0.181141}, + {-0.618875,-0.601089}, + {-0.903401,1.369553}, + {-0.434703,1.004383}, + {0.084219,-0.594635}, + {0.760134,0.396506}, + {-0.868353,0.425362}, + {0.190516,-0.470775}, + {0.130523,-0.050180}, + {1.613252,-0.894441}, + {-1.230645,0.027123}, + {-0.207136,1.406158}, + {0.097428,0.373589}, + {1.101023,0.803449}, + {1.891159,-1.054308}, + {-0.158666,-0.325728}, + {0.218607,-0.427098}, + {0.581789,-0.007118}, + {0.407515,0.254448}, + {0.153202,-1.566655}, + {1.270156,0.791481}, + {-0.807984,-1.293868}, + {-0.631812,0.190605}, + {1.684536,0.502642}, + {-0.623167,-0.326260}, + {0.460536,1.490078}, + {-0.633215,-0.730038}, + {0.455857,-0.569264}, + {1.113987,0.512264}, + {-0.303183,-0.813196}, + {1.242308,0.346664}, + {0.235454,0.588078}, + {0.884906,-0.682330}, + {-0.870385,0.197874}, + {-0.392108,1.132213}, + {0.139987,0.749446}, + {0.057771,-0.617700}, + {-0.090352,0.118191}, + {0.007506,0.480385}, + {-0.183661,-0.349638}, + {-0.201963,1.476555}, + {-0.705242,-0.479413}, + {0.975864,0.280884}, + {0.972210,0.753330}, + {0.338783,-0.040685}, + {-0.054492,0.060498}, + {-0.159293,0.819645}, + {-1.053555,0.401428}, + {0.115345,-0.107756}, + {-0.194026,0.187454}, + {0.439241,-0.428716}, + {-0.065278,-1.075082}, + {-0.272430,0.840665}, + {-0.259244,0.669703}, + {0.033760,-1.203906}, + {0.088858,-0.092993}, + {-0.855095,-0.299047}, + {-0.255525,0.089061}, + {-0.202798,0.134231}, + {0.574524,0.323405}, + {-0.355686,-0.509011}, + {-0.238557,0.035684}, + {-0.381287,-0.557626}, + {0.657797,0.952902}, + {-0.077875,0.403221}, + {-0.237508,1.411722}, + {0.652551,-0.088574}, + {-0.013073,0.581057}, + {0.570232,-0.572671}, + {1.442937,-1.109803}, + {0.997920,-0.010095}, + {-0.152155,0.277499}, + {-0.584876,-0.218181}, + {0.717679,-0.143585}, + {-0.075248,-0.695632}, + {-1.576641,-0.266963}, + {-0.228247,-1.087442}, + {-0.672358,-0.340599}, + {-0.682509,-0.975534}, + {0.412126,0.155315}, + {0.540229,-0.913902}, + {-0.949688,-0.498559}, + {0.038080,-0.334697}, + {-0.844788,0.671919}, + {-0.340829,-1.268134}, + {0.033822,1.867938}, + {-0.995863,-0.338217}, + {0.179299,-0.122295}, + {-0.037869,-0.933049}, + {-0.750164,-0.719282}, + {-0.833977,1.003917}, + {0.932833,0.760645}, + {0.867564,0.655081}, + {-0.504874,-0.636730}, + {0.714318,-1.290905}, + {-0.672831,0.341525}, + {0.278639,0.168889}, + {-1.057328,-0.938548}, + {-0.028958,0.765673}, + {0.659485,-0.427439}, + {-0.688018,0.905752}, + {0.593115,-1.081085}, + {1.020607,-1.035200}, + {-0.288406,0.254196}, + {0.681091,-0.195788}, + {-0.405965,0.877370}, + {0.247328,-1.348181}, + {0.193907,-0.618541}, + {0.104252,-0.480525}, + {-1.219477,-0.511557}, + {-0.355216,0.903456}, + {-1.510029,-0.513418}, + {-0.622239,1.647319}, + {1.211936,-0.279494}, + {-0.944064,0.760953}, + {0.165329,0.746784}, + {1.123063,0.150372}, + {0.591389,0.426566}, + {-0.763105,0.099885}, + {-0.233567,-0.051927}, + {0.451271,0.672933}, + {-0.319276,-0.725166}, + {0.090943,0.256992}, + {-0.740401,0.083129}, + {-0.493689,0.594996}, + {-1.160349,0.225323}, + {-0.120932,-0.308355}, + {-0.242434,0.784263}, + {-0.564637,-0.499833}, + {-0.094070,-0.250553}, + {-0.953770,-0.371332}, + {1.661581,0.171338}, + {0.341775,0.270245}, + {0.118130,0.083808}, + {-0.079126,-0.216981}, + {0.338884,0.258435}, + {0.264433,-0.841639}, + {0.232893,-1.129943}, + {1.240106,-0.052206}, + {0.209045,0.058734}, + {0.520361,0.888685}, + {-0.349822,-0.636562}, + {0.594371,1.144844}, + {0.075638,0.714484}, + {-0.784900,-0.809998}, + {0.662100,-0.092575}, + {0.056696,0.432525}, + {-1.239459,0.384416}, + {-0.006458,0.746883}, + {-0.290814,-0.506631}, + {0.561491,-0.077239}, + {-1.024084,0.663394}, + {-0.157999,-0.050504}, + {1.085344,-0.554264}, + {-0.708002,0.222259}, + {-0.593735,-0.009698}, + {0.223185,0.251755}, + {-1.023014,0.387383}, + {0.397333,0.864350}, + {1.103984,0.475520}, + {0.352685,-0.245976}, + {0.549224,0.087034}, + {-0.472024,0.633377}, + {-0.620719,-0.384944}, + {-0.442898,-0.177685}, + {-1.124416,1.350868}, + {0.618839,0.158407}, + {0.718180,0.334085}, + {-0.107034,-1.414157}, + {0.390844,-0.348879}, + {0.416452,-0.381163}, + {0.016589,0.693169}, + {0.210261,1.649291}, + {0.151838,0.205813}, + {-0.595573,-0.768804}, + {-0.160431,-0.717857}, + {-0.510800,-0.293505}, + {-0.818709,0.437824}, + {0.545773,0.032159}, + {0.676537,-0.059850}, + {-0.311443,-1.175198}, + {0.157728,-1.121027}, + {0.012740,0.536150}, + {-0.639492,0.488597}, + {-0.070496,-0.204313}, + {0.234541,0.328949}, + {0.236419,-0.139396}, + {-0.288891,0.889796}, + {0.148007,1.176270}, + {0.546853,0.583059}, + {-0.361551,1.330611}, + {1.183964,1.397033}, + {-0.993293,0.519104}, + {-0.712212,-0.401528}, + {0.445422,-1.006540}, + {0.778229,-0.924857}, + {0.140488,-0.120001}, + {-0.930823,0.679986}, + {0.269149,-1.501842}, + {0.630853,-0.526320}, + {0.957876,-0.802863}, + {0.190233,-1.009434}, + {-0.185559,0.932629}, + {0.050613,-0.086777}, + {0.020035,-0.059037}, + {-0.511718,-0.355513}, + {-0.795821,0.050420}, + {-0.656840,1.891314}, + {-0.055379,0.405881}, + {0.539094,0.845218}, + {-1.014806,0.375225}, + {-0.503707,1.354756}, + {0.124660,-1.563966}, + {-0.465392,-0.054315}, + {-0.437257,0.566359}, + {-0.082575,-0.150215}, + {-0.133522,0.536886}, + {0.594595,1.933791}, + {0.914843,-0.872862}, + {-0.247467,-0.433828}, + {-0.064788,0.077212}, + {0.778095,-0.045493}, + {0.366523,1.293263}, + {0.094333,0.230801}, + {-0.614536,0.463331}, + {0.430178,1.113947}, + {-0.150038,0.174521}, + {0.438024,0.254990}, + {0.480884,-1.856722}, + {-0.666409,-0.255484}, + {-0.457158,-0.599194}, + {-0.450171,0.118477}, + {0.497637,-0.101183}, + {-1.705586,0.405099}, + {0.259566,0.922599}, + {0.672946,-0.407264}, + {0.324409,0.900242}, + {-0.243075,-0.163768}, + {0.051280,0.490307}, + {0.571128,0.105678}, + {0.345743,-1.177099}, + {-0.869364,-0.068202}, + {-0.334410,0.647972}, + {0.476318,-0.010292}, + {-0.404522,0.623306}, + {-1.162121,-1.071830}, + {-0.627528,-0.384318}, + {-0.337665,-1.341870}, + {0.041529,0.841819}, + {-0.201762,-0.736758}, + {0.184452,-0.757867}, + {-0.709406,-0.513657}, + {-0.135826,-1.416885}, + {-0.764527,-0.630076}, + {-0.759073,1.284986}, + {-0.016376,-1.529208}, + {1.348773,-0.176343}, + {-0.604174,0.991312}, + {-0.281693,-1.131040}, + {0.070203,0.284520}, + {-1.229019,-0.521961}, + {-0.321063,-0.524171}, + {-0.284333,-0.886437}, + {0.325590,-0.528520}, + {0.254426,-0.232536}, + {0.263271,-0.448853}, + {-0.872268,0.657765}, + {-0.819516,-0.328243}, + {-0.259070,0.625280}, + {-0.590739,-0.670188}, + {0.493374,0.019055}, + {1.344704,-0.174393}, + {-1.182374,-1.425261}, + {-0.666870,0.434800}, + {-0.225687,0.069924}, + {0.375164,1.016698}, + {0.327044,-0.675835}, + {0.497187,0.790896}, + {-0.054661,-0.971456}, + {0.260230,0.159026}, + {-1.246029,-0.535410}, + {-0.124982,0.871965}, + {1.010443,1.001963}, + {0.452742,-0.029144}, + {0.117958,-0.136449}, + {0.148605,-0.229105}, + {0.251393,0.825563}, + {0.730487,0.258166}, + {-0.610108,0.505836}, + {0.797900,0.109366}, + {-0.107968,0.039054}, + {0.252653,-0.138314}, + {0.035959,0.047755}, + {-1.412453,-0.353756}, + {-0.174516,-1.100457}, + {-0.405645,0.021713}, + {-1.214659,-0.958074}, + {-0.598051,-0.067393}, + {0.459193,-0.091313}, + {-0.584458,-0.757231}, + {-0.806303,-0.669604}, + {0.808333,0.602605}, + {-0.258282,-0.747621}, + {0.089092,-0.642856}, + {-0.730287,0.033052}, + {0.087943,-0.788594}, + {0.341008,-0.211460}, + {0.000571,0.004990}, + {0.670368,-0.386947}, + {0.557711,-0.002995}, + {-0.293485,-0.872980}, + {-0.783528,0.580868}, + {-1.146005,1.580005}, + {-0.361812,1.094479}, + {0.124733,0.413218}, + {-0.158285,-0.637446}, + {0.364533,0.669450}, + {-0.382480,0.147327}, + {-1.131368,-0.908078}, + {-0.134073,0.755815}, + {0.085353,0.234990}, + {0.038784,-0.362630}, + {-1.186840,-0.015796}, + {0.464353,0.494665}, + {-0.835406,0.374020}, + {-0.321494,0.250667}, + {0.327866,0.142119}, + {0.104908,0.694259}, + {0.081477,-0.930475}, + {-1.022207,0.157953}, + {1.114196,-0.318852}, + {-0.153446,-0.083414}, + {-0.004149,-1.802615}, + {0.061545,-0.040178}, + {-0.799257,-0.743362}, + {-0.208531,-0.357144}, + {-0.319060,1.569294}, + {0.077045,-0.067189}, + {-0.161677,0.635664}, + {-1.405501,-0.763577}, + {-0.397846,0.381495}, + {-0.609449,0.151477}, + {0.790843,0.583281}, + {-0.125419,-0.673059}, + {0.048552,-0.170964}, + {0.251041,1.361702}, + {0.146372,-0.095489}, + {0.636802,0.172758}, + {0.019193,0.213042}, + {-1.039100,-1.241302}, + {-0.564480,-0.945689}, + {0.486241,-0.284521}, + {0.331050,-1.330519}, + {-0.267252,-0.434646}, + {0.766397,-0.345934}, + {-0.200744,0.569833}, + {-0.041749,1.160658}, + {-0.166904,0.567353}, + {-0.647654,-0.482519}, + {1.259189,0.238637}, + {-0.061864,-1.133994}, + {0.709167,0.066215}, + {0.421481,0.512487}, + {0.539837,0.885868}, + {-0.840289,-1.137802}, + {1.081907,-0.754870}, + {0.139268,-0.120622}, + {1.964821,1.068368}, + {0.623684,0.427752}, + {-0.307559,-0.061760}, + {-0.075474,-0.859298}, + {0.856064,-0.238438}, + {0.100253,0.302974}, + {-0.637176,-0.566873}, + {-0.008290,0.282227}, + {1.214723,0.715509}, + {-0.162779,-1.789175}, + {-0.134063,0.710633}, + {-0.519932,0.522329}, + {0.204941,0.159361}, + {-0.482306,-0.376938}, + {-0.188561,0.397104}, + {0.440798,0.479065}, + {0.765870,0.912747}, + {-0.419145,-1.087277}, + {0.200862,0.291699}, + {1.606653,0.419064}, + {-0.231721,-0.095246}, + {-0.709828,-0.172976}, + {0.156692,-0.203509}, + {-1.074669,0.010797}, + {0.247751,-0.531622}, + {0.596496,-0.743859}, + {-0.167848,0.769772}, + {-0.600885,-0.306912}, + {-1.540693,0.221595}, + {0.449488,-0.651038}, + {-0.250910,-0.287887}, + {-0.367598,0.361719}, + {0.494129,0.106607}, + {-0.074593,-1.892982}, + {0.883074,0.395411}, + {-1.092268,0.178541}, + {-0.087335,-0.713201}, + {-0.276838,-0.297331}, + {0.652034,-0.294585}, + {0.545522,-0.253011}, + {0.923416,0.397211}, + {-1.625554,-0.069215}, + {0.004244,-0.025244}, + {0.961205,1.110819}, + {-0.183857,-0.022013}, + {0.193756,0.316726}, + {-2.046393,-0.164273}, + {-0.368365,-0.635641}, + {-0.977759,0.639374}, + {-0.511194,0.291523}, + {-0.240401,0.676329}, + {0.444406,0.962063}, + {-0.276425,1.306324}, + {-0.632475,-0.521505}, + {-2.202754,-0.707231}, + {0.036750,-1.180940}, + {1.569251,-0.049689}, + {0.398289,0.888255}, + {0.348308,-1.632712}, + {-0.564295,-0.266565}, + {0.269295,-0.357566}, + {0.717308,-0.386385}, + {0.055096,1.001055}, + {-0.316491,0.558610}, + {-0.104349,-0.364259}, + {-0.628408,0.275177}, + {-0.793190,-0.708380}, + {0.273673,-0.761222}, + {-0.324338,0.469933}, + {-0.879443,1.299100}, + {-1.259126,0.852917}, + {-0.076886,-0.512190}, + {0.102022,-0.181585}, + {0.519581,0.053206}, + {0.001434,-0.202726}, + {-1.015981,0.459688}, + {1.125770,0.940926}, + {0.312231,0.424855}, + {-0.499418,-0.502875}, + {0.517807,0.069577}, + {-0.973119,0.268788}, + {0.374483,-0.502729}, + {0.003039,-0.024829}, + {-0.040855,1.072277}, + {-0.951793,-0.475118}, + {-0.710944,-0.003773}, + {-0.114791,1.219599}, + {-0.245796,0.792555}, + {-0.003881,0.164329}, + {0.352843,0.700678}, + {1.098609,-0.455416}, + {0.890404,-0.589496}, + {0.004892,-0.535082}, + {1.442431,-0.702892}, + {-0.366707,-1.095639}, + {1.025595,0.172890}, + {0.938371,0.195878}, + {0.126380,0.673834}, + {-0.578430,0.938407}, + {-0.502260,0.910490}, + {0.254066,0.433385}, + {-0.220341,1.040807}, + {1.453578,0.343099}, + {-0.608675,-0.498692}, + {0.073501,0.011211}, + {-0.829259,0.377760}, + {-0.079486,-1.685480}, + {1.145159,-0.985214}, + {0.098902,-0.864296}, + {0.393820,1.649395}, + {-0.734563,0.744368}, + {-0.147095,-1.257531}, + {-1.627407,-1.136028}, + {0.467873,1.041606}, + {0.757500,-0.414132}, + {0.831162,-1.034454}, + {0.816375,0.500999}, + {0.702928,1.649657}, + {0.080263,-0.721470}, + {-1.187533,-0.047103}, + {-0.150313,1.708622}, + {0.493906,-0.679800}, + {0.594035,-0.186757}, + {-0.240079,1.222442}, + {-0.360900,0.050265}, + {0.144905,0.624081}, + {1.181170,0.285112}, + {0.290493,0.604750}, + {1.092495,0.412827}, + {0.562585,0.524007}, + {0.341804,0.235361}, + {-1.162588,-0.993807}, + {0.413398,0.629788}, + {-0.085675,0.234139}, + {0.096242,-0.149101}, + {-0.237502,-0.226784}, + {1.018918,0.053213}, + {-0.242669,-0.787538}, + {0.756043,-0.235274}, + {0.919413,0.564605}, + {1.108872,0.879978}, + {-0.581288,0.281426}, + {-0.326461,1.233718}, + {-0.079129,-1.162175}, + {0.349478,-0.844907}, + {0.027088,-0.819916}, + {0.170056,0.187616}, + {0.502767,-0.666850}, + {0.961324,-0.584669}, + {0.710063,0.119446}, + {0.239278,0.976768}, + {-0.014996,0.524941}, + {0.008554,0.179727}, + {-0.393247,-0.037826}, + {0.718612,-0.978392}, + {-0.225419,-0.038771}, + {-0.227036,-0.165385}, + {0.121599,-0.197455}, + {1.134869,0.485862}, + {-0.947191,-0.134063}, + {-0.654587,1.189330}, + {0.443246,-0.706134}, + {-0.830123,-0.240530}, + {-0.113430,1.241655}, + {-0.108660,-1.135730}, + {0.036003,-0.841002}, + {-0.157794,0.185786}, + {-0.483079,0.099628}, + {0.280081,0.479144}, + {1.939184,-0.257319}, + {-0.687604,0.274654}, + {0.281510,0.228436}, + {-0.028762,-0.144790}, + {-0.171744,0.621507}, + {-0.370458,-0.435995}, + {-0.369755,0.546579}, + {1.695030,0.039443}, + {1.240829,-0.834031}, + {0.295979,-0.031126}, + {-0.422307,-0.218957}, + {0.139370,0.067480}, + {0.184715,-0.646348}, + {-0.818519,0.518805}, + {-0.103088,0.886249}, + {-0.138199,-0.692871}, + {-0.039802,0.305166}, + {0.227665,0.707830}, + {0.407761,-0.090334}, + {-0.148850,1.035646}, + {0.706539,0.838360}, + {-1.216193,0.118999}, + {-1.145744,-0.154962}, + {-1.072350,0.028873}, + {0.816804,-0.037296}, + {-0.223583,0.078154}, + {0.551985,-0.137222}, + {-0.434480,-0.170241}, + {-0.717792,0.161839}, + {0.404747,-0.083635}, + {0.457787,0.137080}, + {-0.205589,0.734910}, + {-0.788705,1.504406}, + {0.647835,-0.940490}, + {1.096260,-0.020625}, + {-0.515190,0.721472}, + {0.151921,0.029406}, + {-1.071512,-0.382693}, + {-0.666773,0.643925}, + {0.473907,0.434675}, + {0.281689,0.152364}, + {1.231462,0.143107}, + {0.422616,0.642618}, + {-0.860802,1.066102}, + {0.180806,-0.160456}, + {-0.171602,1.259847}, + {-1.080608,-1.537974}, + {0.247965,-0.391762}, + {-0.597206,-0.026325}, + {0.806679,0.506041}, + {-0.448461,-0.551637}, + {0.609211,1.564775}, + {-0.584254,-0.421677}, + {-0.115819,0.092741}, + {0.630211,-0.423075}, + {0.219037,0.467483}, + {0.330857,0.747908}, + {-0.653036,0.009290}, + {-0.785070,-0.874116}, + {1.707815,0.381228}, + {0.023747,-1.518223}, + {-0.937137,-0.965197}, + {0.640566,0.933056}, + {-0.594679,-0.574540}, + {0.296794,-0.291891}, + {-0.714825,0.378028}, + {0.757843,0.220650}, + {1.019762,2.070884}, + {1.052090,-0.108974}, + {0.617214,-1.030121}, + {0.234111,1.070887}, + {0.325029,1.415523}, + {-1.411232,-0.591198}, + {0.955943,0.862474}, + {-1.524439,0.478968}, + {0.161252,-0.000874}, + {-1.682225,-0.113368}, + {-0.714802,0.379857}, + {0.815552,-0.386556}, + {0.565304,0.508925}, + {0.033944,-0.055679}, + {-0.160544,-0.364665}, + {1.167740,-0.747209}, + {-0.114289,-0.426222}, + {0.998961,-0.781649}, + {0.480485,-0.325437}, + {0.818972,1.053668}, + {-0.759151,0.662107}, + {-0.533949,1.213625}, + {-0.348061,-0.399280}, + {-0.612857,0.282472}, + {-0.155041,0.177124}, + {1.564518,0.497387}, + {-0.259280,0.598564}, + {-0.330630,-0.194511}, + {-0.927641,0.683062}, + {-0.492680,0.187990}, + {-0.486909,0.556354}, + {-1.016376,0.123981}, + {0.605410,0.661383}, + {-1.259776,-0.139097}, + {0.687748,-0.124519}, + {1.076749,1.172916}, + {0.826104,0.453227}, + {0.916044,0.484496}, + {-0.220030,0.081309}, + {-0.762988,-0.501734}, + {0.156663,-0.397336}, + {-0.645976,-0.464085}, + {0.013181,-0.690831}, + {1.418278,-0.223876}, + {0.138929,0.135069}, + {0.576396,-0.082604}, + {0.341489,0.166084}, + {0.239311,0.512591}, + {-0.705057,0.281017}, + {-0.216695,0.700219}, + {-0.052454,-1.245938}, + {-0.553732,-1.127581}, + {-0.875834,0.839077}, + {0.590675,-0.603937}, + {1.115400,0.110295}, + {-0.433421,0.192051}, + {0.724311,-0.663050}, + {-0.511338,-0.678864}, + {0.319840,-0.020854}, + {-1.173155,0.013443}, + {0.379830,0.418095}, + {-1.047586,0.754616}, + {-0.458533,-0.744747}, + {0.039738,0.740735}, + {-0.448691,-1.323799}, + {-0.614500,0.274110}, + {-0.954928,1.710574}, + {-1.115993,0.162485}, + {1.193523,-0.172836}, + {-0.813587,-0.815742}, + {0.432139,-0.761635}, + {0.539046,-0.256594}, + {0.293082,0.217539}, + {0.390536,-0.019131}, + {-0.520508,-0.341834}, + {-0.124911,-0.157248}, + {-0.637428,-0.090345}, + {-1.047505,0.197182}, + {1.028592,0.057271}, + {0.228695,-0.421307}, + {0.160562,0.065647}, + {-0.125276,0.570122}, + {0.771720,-0.929429}, + {-0.885627,-0.643624}, + {0.674625,0.505683}, + {-0.361914,-0.577650}, + {0.053097,-0.825371}, + {1.336278,-0.384586}, + {0.004049,0.906965}, + {-1.072504,0.415022}, + {0.802524,-0.826920}, + {-0.955720,0.142124}, + {-0.125373,1.113202}, + {0.334120,0.836902}, + {0.835931,-0.122422}, + {1.106213,-0.047726}, + {2.296859,0.078391}, + {0.366122,-0.430429}, + {0.701139,-0.605645}, + {-0.146080,-1.767753}, + {0.016836,1.135654}, + {-0.176842,-0.909804}, + {0.161320,0.030687}, + {0.095294,-0.085024}, + {-0.777534,-0.732828}, + {-0.415510,0.843213}, + {-0.064383,1.441395}, + {-0.077757,-0.848909}, + {0.344072,-0.405862}, + {-0.685213,-0.152876}, + {2.219878,-0.147536}, + {-0.259629,-0.346784}, + {-0.154063,-0.256064}, + {-0.347575,-0.135536}, + {-0.507167,-0.471854}, + {1.053886,1.000078}, + {0.899577,0.115105}, + {-0.044331,-0.789282}, + {-0.151879,-1.288516}, + {0.121111,-1.153694}, + {1.329053,0.966325}, + {-0.678745,0.814417}, + {-0.257457,-0.282341}, + {-0.962823,-0.351230}, + {0.873445,0.133721}, + {0.627689,-0.454924}, + {-0.255754,-0.414715}, + {0.018030,1.186715}, + {-0.957481,0.875629}, + {-0.117672,-0.173647}, + {0.174636,-0.871127}, + {-0.384196,0.778462}, + {0.082789,0.383797}, + {-0.701027,-1.355462}, + {0.668719,0.695236}, + {-0.042132,2.102093}, + {1.413857,-0.300645}, + {-0.112820,-0.849034}, + {-0.612251,0.816555}, + {0.608860,0.226898}, + {-0.179368,-0.087384}, + {0.040499,0.002180}, + {-0.737672,0.256065}, + {-0.161481,0.832177}, + {1.099151,0.426534}, + {-0.235701,-0.127462}, + {-0.152026,-0.390955}, + {-0.543015,-0.478542}, + {-1.160759,0.623038}, + {-0.202691,0.593749}, + {1.786126,-0.318883}, + {1.316698,0.020550}, + {0.169104,-0.060324}, + {1.045560,-0.056788}, + {1.020056,-0.597922}, + {-1.645949,0.293017}, + {0.923375,-0.090014}, + {-0.844203,-0.218401}, + {-0.239957,0.368485}, + {-0.309986,0.239761}, + {-1.016587,-0.062435}, + {-0.767244,0.118052}, + {0.277478,0.074426}, + {0.683305,-1.041466}, + {-0.808274,-1.614546}, + {0.394355,0.811173}, + {0.796282,-1.296704}, + {-0.714204,0.137774}, + {0.196927,0.370427}, + {-0.376269,-0.542680}, + {0.791492,-0.123199}, + {0.321249,0.521318}, + {1.046344,0.661679}, + {-0.141206,-0.238853}, + {-0.383405,0.290032}, + {0.376350,0.432868}, + {-0.049260,-0.368856}, + {0.408613,-0.014061}, + {-0.326055,0.816902}, + {-0.026001,-0.589331}, + {-0.072918,0.200475}, + {0.331867,-1.316811}, + {0.435541,-0.935694}, + {0.510818,1.141595}, + {-0.190277,-1.450792}, + {0.173657,-0.279898}, + {0.438387,-0.236168}, + {-0.079822,-1.188886}, + {0.332160,-0.026150}, + {-0.156566,-0.711998}, + {1.519541,0.155118}, + {-0.252771,0.027134}, + {-0.051493,0.730522}, + {1.034388,-0.494617}, + {0.585226,-0.142609}, + {-0.056058,0.636934}, + {0.427097,-0.139863}, + {0.142636,-0.376670}, + {0.261685,-0.129577}, + {0.622429,-0.458139}, + {0.558685,-1.457037}, + {-0.302307,-0.237556}, + {0.667578,-0.893159}, + {0.394038,-0.616568}, + {-1.053062,-0.607413}, + {-0.102774,0.550373}, + {-0.151209,-0.605143}, + {0.982131,-0.044701}, + {0.872422,0.300385}, + {-1.738852,-0.042787}, + {-0.927014,0.312879}, + {1.133143,0.059571}, + {-1.447607,-0.203064}, + {0.844638,-0.610940}, + {-0.131441,-0.383945}, + {0.185690,0.504708}, + {0.873802,-0.522457}, + {-0.241741,-0.833009}, + {-0.527447,-0.384432}, + {-0.313053,0.007224}, + {-0.144519,-1.752126}, + {-0.350914,0.331914}, + {0.019446,0.830710}, + {-0.361050,0.087871}, + {0.136350,-0.729097}, + {-0.727329,-1.483267}, + {0.506054,-0.485436}, + {0.062342,0.447545}, + {0.577105,0.248545}, + {-0.160478,0.636342}, + {0.874559,0.051499}, + {0.105072,-0.821176}, + {-0.398886,0.154675}, + {-0.622607,0.598468}, + {-0.199183,-0.205099}, + {-0.450282,-0.153537}, + {0.663143,-0.304326}, + {-0.184256,-1.048931}, + {-0.162581,0.645661}, + {-1.044422,-0.455806}, + {-1.229037,-0.793770}, + {-2.194331,-0.034931}, + {0.302824,0.337893}, + {-0.190657,0.691359}, + {0.829411,0.226586}, + {-0.425507,-0.020147}, + {-0.664468,0.683717}, + {-0.671081,-0.230903}, + {-0.907480,-1.183741}, + {0.554297,-0.117632}, + {0.096878,0.871193}, + {-1.083314,0.379586}, + {-0.234206,-0.116224}, + {1.369810,0.686732}, + {-0.721421,-1.029317}, + {-0.368926,0.569493}, + {1.046382,0.740596}, + {0.360666,0.448457}, + {0.480405,0.359113}, + {-0.086104,-0.363264}, + {0.238387,0.695863}, + {-0.736684,1.072959}, + {0.386997,-0.744110}, + {-0.437168,-0.232638}, + {-1.153335,-0.780908}, + {-0.684055,0.692340}, + {0.289389,0.249867}, + {-1.698004,0.639394}, + {0.394495,0.268874}, + {-0.603894,0.330558}, + {1.253198,0.211305}, + {-0.322306,0.240516}, + {0.102897,0.083584}, + {0.309184,-1.627874}, + {-0.390228,0.139204}, + {-0.089614,0.647020}, + {-0.121180,-1.208862}, + {0.826558,-0.115660}, + {0.495726,-0.898881}, + {-0.312265,0.328451}, + {-0.575407,-0.648683}, + {-0.432874,-0.055634}, + {0.299794,-0.672465}, + {0.755398,-1.216531}, + {-0.785094,0.381940}, + {1.177524,-0.442002}, + {-0.690561,-0.399181}, + {0.280850,1.343907}, + {-0.409116,0.423859}, + {1.752878,0.134327}, + {0.051034,-0.396984}, + {0.519335,0.260097}, + {0.669303,-0.512912}, + {-0.121664,-0.181888}, + {1.193699,-0.767988}, + {1.019133,-0.321132}, + {0.967335,-0.098405}, + {1.413661,-0.166381}, + {-0.125145,0.663141}, + {0.401551,-0.358640}, + {-0.253575,0.814815}, + {-0.102327,-0.276315}, + {-0.122363,-0.012399}, + {0.113221,0.159392}, + {0.425525,-2.019792}, + {-2.296354,0.492443}, + {-0.954148,-0.237086}, + {0.238738,-0.639157}, + {-1.761694,-0.164252}, + {0.737287,0.200460}, + {-0.162938,-0.768438}, + {-0.782868,-0.626567}, + {-2.246589,-0.509916}, + {-0.310067,-0.836668}, + {-1.464033,-0.333291}, + {1.315826,-0.280998}, + {0.002046,1.347203}, + {1.070363,0.251329}, + {0.246476,0.663615}, + {-0.845820,-0.236884}, + {0.093058,0.749687}, + {-1.111095,1.211477}, + {0.009610,0.450174}, + {0.915608,0.234386}, + {0.143672,0.205552}, + {1.527516,0.145242}, + {0.460513,1.555029}, + {-0.555127,-0.285376}, + {0.145695,0.896220}, + {1.217480,-0.305496}, + {0.414556,-0.502992}, + {0.603741,-0.844504}, + {0.129219,0.575608}, + {-0.283013,1.040908}, + {-1.255234,-0.534709}, + {1.088903,0.197861}, + {-0.058756,0.425937}, + {0.123779,-1.040665}, + {0.637367,-0.271180}, + {-0.103176,-1.697012}, + {-0.158588,0.656751}, + {-0.967854,-0.951648}, + {0.086897,-0.516020}, + {-0.373714,-0.748635}, + {0.596132,-0.522697}, + {-0.983889,-0.989551}, + {-0.467885,-0.141256}, + {0.830302,0.458530}, + {-0.760114,0.632394}, + {-0.274484,1.063399}, + {0.388037,0.224930}, + {1.249109,-0.166835}, + {-0.449788,-0.325036}, + {0.042710,-0.844489}, + {0.146003,1.006131}, + {-0.220865,-0.302253}, + {1.058335,1.753412}, + {0.002717,-0.206278}, + {-0.435205,0.096155}, + {0.045458,0.308059}, + {0.985575,-0.174125}, + {0.888946,0.271600}, + {-0.928001,0.303726}, + {0.508220,0.392928}, + {1.126653,0.623124}, + {-0.026042,-0.803140}, + {-0.924908,1.178639}, + {0.420452,1.218289}, + {0.232925,-0.244339}, + {-0.786826,0.421704}, + {-1.480250,-0.437413}, + {-0.876270,-1.154740}, + {-1.039014,0.278444}, + {0.540032,-0.043074}, + {-0.333186,0.620742}, + {0.264837,0.039240}, + {-0.323505,0.012675}, + {-0.409204,-0.767399}, + {0.025022,0.921557}, + {0.331678,0.765442}, + {0.655658,0.673464}, + {0.122603,1.712084}, + {0.671768,1.118615}, + {-0.304646,-0.327486}, + {0.200620,0.635266}, + {1.151679,-0.567691}, + {0.063835,-0.149801}, + {1.857157,0.061181}, + {-0.314228,-0.969461}, + {1.172970,0.214697}, + {-0.123463,0.139130}, + {-1.037067,0.729725}, + {0.375812,-0.068514}, + {0.007778,0.344010}, + {-0.498291,0.686760}, + {-0.021774,0.153344}, + {-0.106309,0.126358}, + {-1.635683,-0.251761}, + {0.280908,0.489367}, + {-0.706807,0.816537}, + {-0.831300,-0.192401}, + {0.178349,-0.073416}, + {0.680202,-0.971835}, + {-1.256339,-0.648133}, + {0.699942,0.382164}, + {-0.150262,-0.545250}, + {-0.612851,-1.036643}, + {0.778548,0.694659}, + {0.419950,-0.302441}, + {0.364074,1.256622}, + {-0.157228,-0.261850}, + {-0.107384,-0.158219}, + {0.493916,-0.735154}, + {-0.157863,0.679501}, + {-0.238097,0.159096}, + {-0.151747,-0.515968}, + {-0.196244,0.393762}, + {0.981312,-0.958934}, + {-0.172524,0.221805}, + {-1.038868,-0.156395}, + {-0.540427,-0.434566}, + {0.143654,-0.576748}, + {1.394838,0.011972}, + {-0.567336,1.449890}, + {0.016188,-0.586559}, + {0.018122,0.164911}, + {0.282832,-0.041033}, + {0.516311,-0.903365}, + {-0.074153,0.774443}, + {0.525149,-0.511892}, + {-0.064105,0.462937}, + {-0.550807,-0.740917}, + {-0.159709,0.095051}, + {0.856954,0.712022}, + {0.184713,-0.093683}, + {0.562640,-0.866336}, + {1.091445,0.202260}, + {0.504672,-0.248524}, + {0.172117,0.391537}, + {-0.067218,-0.440004}, + {0.287740,1.212661}, + {-0.562285,-0.146228}, + {0.218122,0.047461}, + {0.593255,-0.355369}, + {-0.533896,-0.299014}, + {-0.568450,-0.278213}, + {0.203598,0.537438}, + {-0.938066,0.704581}, + {-0.917601,0.791035}, + {-0.839964,-0.649079}, + {1.307890,0.264572}, + {-0.599850,-0.634273}, + {0.460067,-0.969037}, + {-0.646018,0.708979}, + {-0.452636,0.224816}, + {0.494858,0.238132}, + {-0.011522,-1.346647}, + {0.000576,-0.737202}, + {0.100013,-0.266210}, + {1.318841,0.403066}, + {-0.639935,-0.303449}, + {0.675628,-0.063920}, + {-0.097399,0.502298}, + {1.924211,-0.661343}, + {-0.193195,-0.836120}, + {-0.879425,-1.065778}, + {-0.777720,0.991738}, + {0.449743,-0.615344}, + {-0.163401,-0.484593}, + {-0.295979,0.797219}, + {-0.293076,0.655861}, + {-0.012079,-1.170280}, + {0.217685,-0.808306}, + {0.521063,0.052078}, + {-0.051550,-0.734594}, + {-0.035872,-1.275539}, + {-0.111903,0.457933}, + {1.585142,-1.073931}, + {-0.630589,-0.097644}, + {0.196150,-0.329361}, + {0.786858,-0.651981}, + {0.353044,-0.508077}, + {0.633349,0.050938}, + {0.292792,-1.147545}, + {-1.636248,0.076500}, + {0.121149,0.667182}, + {-0.485428,0.822637}, + {0.042791,0.346486}, + {-0.406830,0.061469}, + {0.260006,0.078180}, + {0.480654,-0.228662}, + {0.069106,0.904044}, + {0.689995,-0.355703}, + {1.356396,0.165978}, + {-1.216395,-0.167056}, + {0.806751,-0.082865}, + {1.379444,0.548229}, + {0.082448,-0.566330}, + {-0.153881,-0.613327}, + {-0.400828,-1.175044}, + {0.007904,0.187198}, + {0.017020,0.469228}, + {-0.635306,0.814212}, + {-0.686244,-1.695371}, + {0.635513,-0.061291}, + {-0.425817,0.149979}, + {0.251848,-0.710921}, + {-0.046316,0.161009}, + {0.286905,-0.673584}, + {-0.816487,-0.090565}, + {-0.587562,1.125426}, + {-0.388150,-0.088164}, + {-0.855313,-1.030685}, + {0.137949,0.442570}, + {-0.500305,0.481672}, + {-0.569691,-0.277656}, + {1.232236,2.015065}, + {-0.544907,-1.314194}, + {-1.063375,-0.275894}, + {-0.061552,-0.173145}, + {0.552244,0.176811}, + {-0.276732,-0.699921}, + {-1.723753,-0.289518}, + {-1.246463,1.183601}, + {-0.500170,0.373240}, + {0.651110,0.202271}, + {-1.201287,-0.164245}, + {-0.252490,0.060805}, + {0.267841,0.166147}, + {0.217199,0.233845}, + {0.487467,1.765281}, + {-1.323439,1.017541}, + {-1.689664,0.253096}, + {0.024758,0.480120}, + {0.663608,0.503539}, + {0.951764,-0.395559}, + {0.811294,0.409032}, + {-0.687545,0.241462}, + {-0.320659,0.006277}, + {-0.239229,1.109935}, + {1.192667,0.419789}, + {0.461142,0.131372}, + {0.087449,0.030492}, + {1.724236,-1.133479}, + {-0.233717,0.474440}, + {-0.107867,-0.340221}, + {-0.260094,-0.871921}, + {1.512797,-0.186811}, + {-1.150296,0.161701}, + {1.270353,-1.064373}, + {-0.208916,-0.609819}, + {0.266445,-0.850148}, + {-0.191666,-1.143687}, + {0.624237,0.402745}, + {-0.146100,-0.313531}, + {-0.394306,-0.512183}, + {0.748664,1.567171}, + {1.172201,-0.075086}, + {-0.203625,-0.403359}, + {0.801120,0.219087}, + {0.483011,-0.186969}, + {-0.822249,0.790955}, + {-0.826600,0.057749}, + {-0.340349,-1.708476}, + {-0.612349,0.017105}, + {-0.405678,0.770708}, + {-0.882441,-0.884726}, + {-0.760047,0.956302}, + {-0.134529,-0.806649}, + {-0.616061,-0.717116}, + {-0.786351,0.960517}, + {0.995470,0.823887}, + {0.803940,-0.068840}, + {-0.780356,0.796537}, + {0.754690,0.462261}, + {0.558489,-1.826939}, + {0.565941,-0.533679}, + {-0.349220,-0.565535}, + {-0.117447,-0.033437}, + {0.306679,0.561986}, + {-0.452673,0.002558}, + {0.656129,-0.312644}, + {-0.137241,0.808405}, + {0.023718,-0.818979}, + {0.316627,0.723533}, + {0.245948,-0.220425}, + {0.018669,-0.033499}, + {-0.384480,-0.064193}, + {1.059643,1.011290}, + {0.255465,0.122262}, + {0.892933,0.377851}, + {-1.057426,-1.072620}, + {0.376262,0.020682}, + {-0.318577,-1.103330}, + {0.820800,0.258835}, + {0.084963,-0.566530}, + {-0.270657,0.173413}, + {-0.630122,0.411348}, + {-0.140339,0.070918}, + {-0.580496,1.695575}, + {0.184591,-0.255626}, + {-1.595309,0.220755}, + {-1.086653,-0.518954}, + {-0.092904,-1.828520}, + {-1.560213,-0.345541}, + {-0.107258,0.421123}, + {1.333753,0.427132}, + {0.651096,-0.307819}, + {1.547703,0.021547}, + {-0.938925,0.799421}, + {0.161495,1.637137}, + {-0.566160,0.009561}, + {0.765734,1.847262}, + {-0.099619,1.217570}, + {-1.646296,1.143879}, + {-0.341561,0.208659}, + {-0.829797,-0.078640}, + {0.230420,0.260061}, + {-1.115321,-0.415304}, + {-0.759305,1.137078}, + {0.119318,0.326539}, + {0.634494,-0.172025}, + {0.951927,1.084809}, + {-0.481045,-0.125166}, + {-0.147533,-1.237017}, + {-0.194932,0.304319}, + {-0.055354,-0.773023}, + {-0.610176,0.526057}, + {-1.442512,0.301773}, + {0.806472,0.525891}, + {0.442248,0.868214}, + {-0.735627,-0.085293}, + {-0.527279,-0.419674}, + {-0.485876,-0.318730}, + {0.619257,-0.096117}, + {0.256008,-0.511587}, + {0.402021,0.667654}, + {1.085013,0.181906}, + {-1.075699,-0.590304}, + {0.149918,0.698889}, + {1.232178,-0.974211}, + {0.299137,-0.807070}, + {-0.363717,1.920628}, + {0.520819,-1.006913}, + {0.237037,-0.181282}, + {-0.473254,0.538424}, + {-0.693209,0.205641}, + {0.196816,-1.365328}, + {1.294426,-0.457957}, + {-1.201707,0.159986}, + {-0.434547,1.602358}, + {0.640590,-1.134317}, + {0.145536,-0.201253}, + {-0.295678,-0.144970}, + {0.474340,0.506270}, + {0.626337,0.119856}, + {-0.389066,-1.331761}, + {1.112996,-0.698493}, + {0.218681,0.173533}, + {1.403960,-0.330757}, + {0.473726,0.286873}, + {-0.065860,-0.094907}, + {0.245194,-0.785259}, + {-0.737379,0.731098}, + {0.888062,0.554072}, + {1.481762,-0.047101}, + {0.422688,0.158868}, + {0.569769,-0.263568}, + {-1.225339,-0.094437}, + {-1.449739,0.636898}, + {-0.257917,-0.053649}, + {0.155706,-0.122416}, + {0.953568,0.325125}, + {-0.798452,1.472069}, + {0.052703,-0.295397}, + {0.456338,-0.736016}, + {0.529491,-0.568515}, + {-0.233975,1.120665}, + {-0.680203,-1.295243}, + {-0.466273,-0.062131}, + {-0.131288,1.168066}, + {-0.385004,-1.409355}, + {-0.314060,-0.015362}, + {-0.874063,-0.686612}, + {-0.445655,-1.003053}, + {0.928618,0.248422}, + {0.478245,-0.872451}, + {-0.240218,0.229832}, + {-0.207487,1.315485}, + {0.708097,-0.459610}, + {0.324259,-1.091280}, + {-1.452807,0.091208}, + {1.395570,-1.863330}, + {0.999160,-1.241401}, + {0.280141,-0.706033}, + {-0.925961,0.469675}, + {-0.688460,-0.963031}, + {0.119873,0.226830}, + {-0.106209,-0.158092}, + {0.677296,-0.307387}, + {0.390625,0.002007}, + {-1.651675,0.216743}, + {0.079875,0.792000}, + {0.235602,0.452420}, + {0.777284,-0.266590}, + {-0.895642,-0.021410}, + {0.254087,0.034999}, + {-0.270512,-0.127041}, + {-0.256159,-0.869917}, + {0.373497,1.048321}, + {-0.762650,-0.290650}, + {-0.578370,-0.111365}, + {-1.982232,-0.062361}, + {0.578377,-0.656604}, + {-0.468886,0.154771}, + {0.844443,1.791920}, + {0.097667,-1.339984}, + {0.210075,1.094129}, + {-0.206117,0.067388}, + {0.421055,0.203273}, + {0.584588,0.986430}, + {0.133407,-0.641132}, + {-1.170174,-0.263451}, + {-0.157218,-0.021621}, + {1.475833,-0.127775}, + {0.078896,0.799595}, + {-1.587069,-0.475999}, + {0.695471,0.483917}, + {0.025792,-0.441905}, + {1.007477,0.041037}, + {-0.181478,-0.017029}, + {0.036815,-0.111715}, + {-0.465989,0.179141}, + {0.794247,0.927431}, + {0.285622,-0.418923}, + {-0.068971,-0.305474}, + {-0.463998,-0.444865}, + {0.699853,-1.012322}, + {0.151237,1.087834}, + {-0.146684,0.233955}, + {0.567227,-0.089576}, + {-0.224722,0.477183}, + {1.199889,1.553201}, + {0.760053,0.017195}, + {0.261229,0.445578}, + {-0.705770,-1.755211}, + {0.290944,0.079387}, + {0.133894,-0.691097}, + {-0.059663,2.211638}, + {0.370996,-0.939649}, + {0.112302,1.366692}, + {0.188262,-0.356295}, + {-0.612580,0.733432}, + {0.619933,0.144186}, + {0.278577,0.110054}, + {0.225926,0.612772}, + {-0.729589,0.857299}, + {1.264619,0.408863}, + {-0.628055,-1.407078}, + {-0.514858,-0.744270}, + {0.619405,1.047669}, + {-0.199934,0.731997}, + {0.418989,-0.042346}, + {0.785841,-0.113664}, + {-0.932752,-0.678127}, + {-0.806044,0.573963}, + {0.587483,0.194597}, + {-0.103663,0.283307}, + {-0.433701,1.184546}, + {0.790999,0.223614}, + {1.419865,1.046606}, + {-0.830056,0.788822}, + {-0.242103,-0.605081}, + {-1.753848,-0.814530}, + {0.527669,0.991027}, + {-0.240201,-0.427279}, + {0.856250,0.646151}, + {1.153696,0.714506}, + {0.866539,0.692044}, + {0.203711,0.315015}, + {-0.285981,-0.182996}, + {0.789261,-0.986318}, + {-0.144656,0.102805}, + {-0.151745,-0.054796}, + {-0.093111,0.849218}, + {0.517938,0.271205}, + {0.552012,-0.102406}, + {1.085765,0.387176}, + {0.084600,1.884932}, + {-0.054731,-0.030402}, + {1.382310,-0.885943}, + {0.098738,0.889079}, + {1.144495,-0.059725}, + {-0.899532,0.664015}, + {-0.181939,0.217922}, + {0.321437,0.396019}, + {0.285473,-1.089756}, + {0.586511,0.295108}, + {-0.372205,0.500376}, + {-0.078211,0.182058}, + {0.011147,-0.495137}, + {0.896627,-0.426638}, + {-0.092586,-0.308805}, + {0.601102,1.063945}, + {0.749759,-1.427166}, + {1.055874,0.699219}, + {-0.903965,-0.438794}, + {-0.707729,0.384313}, + {-0.101038,0.921657}, + {-0.485551,0.820867}, + {0.236179,-0.929859}, + {1.125738,-0.530163}, + {0.077800,-1.861208}, + {-0.730572,0.920142}, + {-0.898268,0.339665}, + {-0.317154,0.181412}, + {-0.160429,-1.323295}, + {-0.400514,-0.563102}, + {-0.014542,0.576620}, + {-0.381432,-0.415218}, + {-0.377208,0.718852}, + {-0.705579,1.318340}, + {1.530143,-0.271100}, + {-0.221327,-0.588484}, + {-0.022733,-0.642035}, + {0.030789,-0.791981}, + {-0.766666,-0.492790}, + {-0.749544,-0.073490}, + {0.447054,-0.800807}, + {1.070489,0.825108}, + {-0.727046,0.726992}, + {-0.060446,-1.037320}, + {-0.328770,0.190905}, + {-0.128967,-0.434271}, + {-0.186546,0.312983}, + {0.935917,-0.100236}, + {-0.047536,-0.213380}, + {0.082069,-0.603080}, + {-0.913393,-0.849605}, + {-0.457231,-0.796030}, + {0.682990,0.778589}, + {0.209229,-0.807062}, + {0.272420,1.125802}, + {0.036284,1.629727}, + {0.104411,-0.167382}, + {-0.626081,-0.031098}, + {-0.351775,-1.618939}, + {0.413605,0.257989}, + {-0.370629,0.161392}, + {-0.330446,0.806375}, + {0.390219,-0.746819}, + {-0.509487,-0.047151}, + {-0.273129,-0.108304}, + {-0.319689,-0.338005}, + {0.842067,0.281057}, + {0.055884,0.234417}, + {-0.365933,0.614457}, + {-0.454615,1.448888}, + {-0.699608,-1.033875}, + {-0.372957,0.671612}, + {-0.133444,-0.030193}, + {-0.924223,0.603383}, + {-0.516276,0.204182}, + {-0.382316,-0.235633}, + {-0.187827,-1.054536}, + {-0.442085,0.354249}, + {0.622665,0.610810}, + {0.265960,-0.284553}, + {0.040194,-0.911782}, + {-0.509020,0.860569}, + {0.600634,-1.182167}, + {0.151219,0.454662}, + {-0.418144,0.065874}, + {-1.569977,1.023171}, + {0.266306,0.219226}, + {0.791286,0.244977}, + {-0.241393,0.875145}, + {-0.318656,-1.030454}, + {-0.022462,0.214741}, + {-0.619332,0.153986}, + {-1.020611,-1.628587}, + {0.479077,0.439942}, + {1.740772,1.610355}, + {0.003287,0.194352}, + {0.566085,0.121822}, + {-1.147140,0.412844}, + {1.376034,0.118976}, + {0.420202,-1.038233}, + {0.373144,0.162301}, + {0.794360,0.106407}, + {-0.962990,-0.802783}, + {0.056256,0.007095}, + {-0.708347,-0.662442}, + {-0.959655,1.323960}, + {-0.529900,0.259971}, + {1.193998,0.563030}, + {0.939263,1.103177}, + {-0.385987,0.149407}, + {-0.476455,-1.133539}, + {0.308749,0.266472}, + {-0.497402,0.161375}, + {-0.740784,0.032059}, + {-0.760730,-0.593766}, + {-0.063348,-0.060021}, + {0.633546,-1.329736}, + {0.834383,0.497996}, + {-0.600352,0.731318}, + {-0.447242,0.431888}, + {-1.343652,-0.365840}, + {0.777551,-0.685316}, + {-0.680872,-0.406050}, + {-0.586652,-0.305786}, + {-0.554828,0.022048}, + {-0.699549,-0.247367}, + {1.389279,-0.742174}, + {-0.065282,-1.308684}, + {-0.261274,-0.493450}, + {-0.733425,0.887315}, + {-0.025220,-0.501261}, + {0.241883,-0.683133}, + {-0.140739,0.262319}, + {-2.045143,-1.409459}, + {1.343072,0.855186}, + {-0.035921,-0.283506}, + {0.106737,0.720865}, + {0.406583,0.040440}, + {0.214985,1.947726}, + {0.438985,-0.798479}, + {-0.217059,0.167267}, + {1.243574,0.015551}, + {-0.125817,-0.046205}, + {-1.183831,-1.384855}, + {-0.322551,0.251363}, + {-0.722839,0.595898}, + {0.551627,-0.760119}, + {1.054220,0.065259}, + {0.591739,-0.191866}, + {0.296816,-0.332836}, + {1.165112,-0.248075}, + {0.248393,-0.545047}, + {1.311024,-0.407092}, + {0.591438,-1.621612}, + {-0.052964,-0.001681}, + {-0.298430,-0.248136}, + {0.275239,-0.088719}, + {-0.147969,-0.645551}, + {-0.505692,0.261343}, + {0.309140,0.959088}, + {0.921434,0.629677}, + {0.748760,1.088213}, + {-0.680151,-0.335191}, + {-0.613400,0.493749}, + {0.727131,-0.030512}, + {-0.379323,-1.035416}, + {-0.211766,-0.796419}, + {-0.454060,0.049283}, + {-0.049881,0.070106}, + {-0.279312,0.046965}, + {-0.397766,0.760498}, + {0.520312,-0.439711}, + {0.331968,-1.409079}, + {0.427486,0.218783}, + {1.003588,-0.080820}, + {1.556979,-0.423669}, + {0.619977,0.469522}, + {-0.045054,-0.809393}, + {-0.528064,-0.036637}, + {-0.482697,0.131513}, + {-0.460037,0.505505}, + {-0.324516,-0.389828}, + {0.460368,-0.314426}, + {-0.560330,-0.324922}, + {-0.376507,-0.059857}, + {-0.851451,-0.423302}, + {0.336302,-0.960355}, + {1.612286,-1.262715}, + {0.637618,-0.176273}, + {0.382746,0.450728}, + {0.643770,0.137805}, + {-0.321537,1.065434}, + {-0.913438,-1.344611}, + {0.123579,-0.525252}, + {-0.684321,-0.050399}, + {0.092025,-0.049197}, + {0.230247,-0.846072}, + {-0.567252,1.537805}, + {-0.113614,-0.004427}, + {0.694251,-0.089008}, + {-0.303172,-0.350574}, + {0.609402,-0.434146}, + {0.107243,-0.651101}, + {1.272207,-0.348857}, + {-0.502908,0.151282}, + {-0.145185,-1.741187}, + {0.660613,-0.230215}, + {0.178185,-0.686348}, + {1.272619,-0.158281}, + {-0.280741,0.764747}, + {0.044990,-0.769996}, + {0.417010,0.096608}, + {0.062595,1.686842}, + {2.151472,0.043530}, + {0.715346,1.734442}, + {0.098966,-0.998731}, + {0.599808,0.342824}, + {-0.343734,0.708030}, + {-0.128109,-0.806256}, + {0.761198,0.210038}, + {-0.138642,0.040832}, + {-0.062262,0.648355}, + {1.277507,0.552877}, + {-0.927193,-0.325931}, + {-0.249534,-0.771760}, + {0.521253,-0.650575}, + {0.616145,1.180146}, + {-0.318551,-0.126697}, + {-0.526436,-0.915103}, + {1.171009,1.586755}, + {-1.579776,-0.032072}, + {0.379730,-0.424383}, + {0.219217,-0.851723}, + {0.557224,0.464978}, + {-0.216519,0.253208}, + {0.972628,0.385579}, + {0.412359,0.086125}, + {0.876441,-0.274872}, + {-0.407527,-0.657947}, + {0.541719,0.812008}, + {0.772499,0.092084}, + {0.502839,0.363918}, + {0.146701,0.081139}, + {-0.007951,-0.624450}, + {-0.605555,-1.647412}, + {-0.169302,-0.077049}, + {-0.244837,-0.620332}, + {0.764241,-0.522473}, + {-1.133782,0.258060}, + {0.948375,0.016726}, + {1.587208,-0.235768}, + {0.424286,0.560435}, + {0.366718,-0.229027}, + {0.114061,-0.120273}, + {-0.032553,-0.706649}, + {-1.656256,0.469776}, + {-0.800075,0.163134}, + {0.184989,-0.490187}, + {-0.066939,0.069671}, + {-0.124030,-0.278587}, + {0.098588,-0.516323}, + {0.641825,0.433273}, + {0.039826,-1.896522}, + {0.544579,0.174252}, + {-1.136703,0.508232}, + {0.473606,-0.928168}, + {-0.262024,0.277016}, + {-0.525881,-0.940302}, + {0.774239,0.928604}, + {0.475874,-0.471899}, + {-0.803854,0.030975}, + {-0.993059,-1.988145}, + {0.006261,-0.462312}, + {0.304373,-0.219476}, + {-0.064896,0.411816}, + {-0.565623,0.410175}, + {0.451946,0.896558}, + {0.579193,-0.666237}, + {1.111956,-0.324559}, + {0.958126,0.875141}, + {-2.376995,0.139360}, + {-0.174255,-0.647183}, + {0.014742,0.174545}, + {-0.527097,-1.346987}, + {1.514308,1.010371}, + {0.148586,0.574571}, + {-0.282640,0.894507}, + {-0.099804,0.189072}, + {-0.371499,-0.000976}, + {0.094502,1.606489}, + {-0.417943,0.639646}, + {0.660216,-0.605938}, + {-0.545899,-0.550059}, + {1.076567,-0.745220}, + {0.405227,0.711701}, + {-0.366586,0.196052}, + {0.860394,0.269181}, + {-1.127270,0.202607}, + {0.136211,0.475897}, + {0.459787,0.495293}, + {0.544301,-0.482145}, + {0.365063,0.234250}, + {-0.593792,-0.434170}, + {-0.426111,-1.761006}, + {0.869614,-0.020494}, + {-0.467603,0.072709}, + {-0.324193,-0.665541}, + {0.777996,-0.277466}, + {-0.283302,0.615438}, + {-1.708614,0.792042}, + {0.621137,-0.463159}, + {0.521234,0.742400}, + {-0.133299,-0.939262}, + {-0.160119,-0.770287}, + {-0.512796,0.969515}, + {0.315453,-1.192219}, + {1.288366,0.188477}, + {0.555009,0.515260}, + {0.190975,-0.611313}, + {0.181731,0.979969}, + {1.256390,-0.748626}, + {-0.335278,-0.480621}, + {-0.671001,0.965038}, + {-0.104705,0.209754}, + {-0.085875,-1.716713}, + {-1.640847,-0.669974}, + {0.447848,-0.348934}, + {0.265837,1.298157}, + {0.752559,1.353997}, + {-1.107378,1.884381}, + {-0.974856,0.729668}, + {-0.408192,0.715443}, + {0.256093,-1.141904}, + {-1.426772,0.454018}, + {-0.379814,-0.020252}, + {0.808918,-0.270355}, + {0.032856,-0.539366}, + {-1.792033,-0.556382}, + {-0.749878,0.045814}, + {-1.284019,0.264061}, + {-0.644668,0.334991}, + {0.167439,0.463690}, + {0.781219,0.368265}, + {-0.260223,-0.044352}, + {-0.071616,-0.070425}, + {-1.084332,0.404648}, + {-1.607982,-0.417932}, + {0.755238,-0.174306}, + {0.185585,1.881097}, + {-0.015098,0.559027}, + {-0.177597,-0.752248}, + {-0.550116,-1.060073}, + {-0.358345,-0.425293}, + {0.348800,-0.817303}, + {-0.881309,-0.246413}, + {0.925273,-0.021585}, + {-0.725402,0.242012}, + {0.185628,0.275909}, + {-0.422986,1.393526}, + {0.628901,-0.118229}, + {0.317355,-0.260886}, + {0.700872,-0.179362}, + {-0.261562,-0.299310}, + {0.255547,0.459484}, + {0.874547,-0.523117}, + {1.173201,1.024590}, + {-0.996085,-0.014251}, + {-0.936499,-0.186035}, + {-0.124365,-0.515926}, + {-1.063564,-0.984708}, + {0.564578,-1.758164}, + {-0.798557,-0.294069}, + {-0.100377,0.060186}, + {-0.199967,-0.488498}, + {0.888361,-0.509741}, + {0.983519,1.571630}, + {0.112599,1.056708}, + {0.873252,0.482406}, + {0.452934,-0.285808}, + {-0.043803,-0.750535}, + {0.403150,0.892230}, + {-0.396320,-0.357763}, + {-0.332699,-0.116355}, + {0.593079,0.468945}, + {0.284203,0.714000}, + {0.215099,-0.285505}, + {-1.147423,0.160707}, + {-0.762612,1.411527}, + {0.472681,0.269305}, + {0.255840,-0.160359}, + {-0.055088,1.194371}, + {-0.698704,-0.799073}, + {-1.285369,0.675681}, + {1.004399,-0.126013}, + {-0.548650,0.989301}, + {-0.348031,0.143843}, + {0.019998,-0.340962}, + {1.023248,0.761331}, + {-0.902970,-1.223627}, + {-0.279665,0.623119}, + {-0.366014,0.496679}, + {-0.813344,-0.457467}, + {-0.372345,0.539890}, + {-0.485404,-0.267196}, + {0.536624,0.644437}, + {1.607247,0.297879}, + {0.220415,0.883121}, + {-0.610471,-0.507677}, + {0.457363,0.253781}, + {-0.258994,0.833024}, + {-0.261108,-1.096423}, + {-0.890548,-0.267881}, + {-0.514366,-0.459512}, + {0.812269,-0.123179}, + {-0.034540,0.119925}, + {-0.180841,0.846220}, + {-0.752312,-0.637519}, + {1.026199,1.242000}, + {0.197854,-1.717988}, + {0.475428,0.194479}, + {0.292648,-0.864272}, + {0.947169,-0.161454}, + {-0.464096,-0.510604}, + {1.153502,0.164372}, + {0.487626,-1.698067}, + {-0.435832,-0.248461}, + {0.986247,0.332766}, + {0.573550,0.450706}, + {0.217594,-0.594628}, + {0.411145,0.714235}, + {-0.635136,1.259112}, + {0.505637,0.257079}, + {1.088652,0.088325}, + {-0.412997,1.426823}, + {0.773139,0.811379}, + {1.222511,-1.367456}, + {0.062337,0.036862}, + {-0.941056,-0.307414}, + {-0.219902,0.345179}, + {-0.822663,-0.150728}, + {-0.830573,0.243392}, + {0.184643,-1.254941}, + {0.044543,2.065648}, + {-0.303212,0.177042}, + {-1.024625,-0.575737}, + {-1.766237,-0.128839}, + {1.166984,-1.325277}, + {0.296716,-0.350582}, + {0.108368,-0.173239}, + {0.820007,-0.685029}, + {-1.179457,-1.230915}, + {0.373694,-0.295121}, + {0.792136,0.427746}, + {0.908489,0.134038}, + {0.112420,0.145958}, + {-0.528428,-0.719873}, + {-1.018138,-0.106810}, + {0.487126,0.785684}, + {-0.459239,1.922989}, + {0.315122,-0.019843}, + {0.271436,1.009157}, + {-0.561563,-0.748185}, + {-0.823416,-0.551511}, + {-0.966122,-1.600366}, + {0.213364,-0.578518}, + {0.495633,-0.444785}, + {-0.527658,1.519762}, + {-0.069264,0.878791}, + {-0.269854,0.404970}, + {-0.610037,-0.956304}, + {0.484475,0.633773}, + {-0.168591,-0.969952}, + {0.484383,1.817719}, + {0.141585,0.111118}, + {-1.199097,-0.051283}, + {-0.528354,0.347269}, + {0.475852,0.415654}, + {0.228798,0.835716}, + {-0.253920,0.038539}, + {1.462540,-0.489890}, + {-0.104670,-0.701368}, + {-0.022712,-0.856311}, + {-1.130025,0.873925}, + {-0.019534,-0.883438}, + {-0.193835,0.406293}, + {-0.387684,0.052551}, + {1.298327,-0.709101}, + {-0.310405,0.001679}, + {-0.481614,-0.685795}, + {-1.062058,-0.520206}, + {-1.344745,-0.153656}, + {-0.831422,0.037292}, + {0.400435,1.234084}, + {0.727975,0.204297}, + {0.824147,-0.809614}, + {0.702855,-0.127743}, + {-1.649216,1.142318}, + {0.341254,0.448017}, + {-0.898656,-0.789927}, + {1.058227,-0.602215}, + {-1.095050,-0.894509}, + {-0.599427,-0.153097}, + {-0.102633,0.228645}, + {0.508210,0.665789}, + {-0.535104,0.147440}, + {-1.277860,-1.283381}, + {-0.023286,0.344266}, + {-0.632160,0.903716}, + {0.360618,-0.187216}, + {-0.390545,0.532805}, + {-0.595274,1.078196}, + {0.211172,-0.862871}, + {0.328564,-0.792903}, + {0.829098,0.198476}, + {-0.566607,1.373401}, + {-0.019308,0.285081}, + {-0.888302,0.700636}, + {0.148316,0.138057}, + {1.181460,0.019935}, + {0.392411,0.162331}, + {-0.247861,0.263792}, + {0.505014,-0.182329}, + {0.628016,1.287511}, + {0.212292,1.024624}, + {0.687431,1.089767}, + {0.564834,-0.028119}, + {0.371715,-1.099486}, + {0.357609,0.070059}, + {2.215728,0.181810}, + {0.836665,-0.244650}, + {-0.220496,0.330559}, + {0.676588,0.472829}, + {-0.829341,-0.226416}, + {0.744014,-0.881448}, + {-0.729316,-0.218085}, + {-0.984519,-0.858390}, + {-0.487788,0.244053}, + {-0.671190,-0.312322}, + {0.049124,0.288241}, + {-1.004947,0.620259}, + {-0.321884,-0.417017}, + {-0.493885,0.523531}, + {-0.059619,-0.791344}, + {-0.457605,0.691495}, + {0.170169,-0.246006}, + {1.075328,-0.540974}, + {-0.079762,0.947477}, + {-0.010670,-0.267796}, + {0.943646,0.021645}, + {-0.285628,-0.533131}, + {-0.326849,0.040866}, + {-1.421573,-0.739533}, + {1.107711,-0.003967}, + {1.000615,-0.065396}, + {0.312538,-0.117636}, + {-0.125344,-0.171464}, + {-1.212099,-0.453897}, + {0.288620,-0.519846}, + {-0.248802,-1.402444}, + {-0.310674,0.442311}, + {0.098956,0.041407}, + {-0.145050,1.286205}, + {-0.429898,0.190147}, + {-1.606072,0.685533}, + {0.367341,0.528374}, + {-0.074278,-0.544411}, + {0.109107,0.601468}, + {-0.454410,0.957520}, + {0.453384,0.097285}, + {-1.143893,0.610775}, + {1.249307,-0.776195}, + {0.494955,1.337840}, + {0.242363,0.197588}, + {-0.114836,-0.076961}, + {-0.517306,0.086171}, + {0.536084,0.234221}, + {-0.269984,-0.404274}, + {0.607933,-0.179944}, + {1.480986,0.514357}, + {-1.274472,-0.307237}, + {0.687074,1.058117}, + {-0.400117,0.313936}, + {-0.791993,-0.417857}, + {-0.561613,-0.645294}, + {0.656279,-0.373169}, + {0.740039,-0.034331}, + {-0.240484,-0.434931}, + {-0.485973,0.426967}, + {0.234931,1.122127}, + {0.391140,-0.409224}, + {0.549154,0.884721}, + {-0.915296,-0.762616}, + {0.305934,-0.771631}, + {-0.760185,0.255838}, + {0.140172,0.086197}, + {-0.136659,-1.801038}, + {-0.285519,-1.066988}, + {-0.359939,1.554395}, + {0.289408,0.825934}, + {0.461379,-0.152002}, + {-0.806281,0.378343}, + {-1.253917,-1.287774}, + {-0.911462,-0.640941}, + {0.986825,0.222918}, + {0.108762,0.707578}, + {0.028426,1.052636}, + {0.337372,0.262425}, + {-0.074310,-0.230538}, + {-0.746241,-0.364158}, + {0.184766,0.326757}, + {0.299052,0.408284}, + {0.454029,0.336521}, + {-0.418725,-0.640634}, + {-0.358958,0.325470}, + {-0.113820,1.106193}, + {0.097508,-0.640975}, + {0.004309,0.013634}, + {-0.103721,-0.180842}, + {0.500274,0.105109}, + {1.541197,0.972081}, + {0.441451,-0.455017}, + {0.040723,-0.995386}, + {0.963317,-0.421559}, + {1.402597,0.107761}, + {1.587690,0.790156}, + {-0.360062,0.069757}, + {0.272024,-0.645917}, + {0.182518,-0.169444}, + {-0.720138,0.570094}, + {-0.219343,-0.714791}, + {0.364707,0.085334}, + {1.238324,-0.048266}, + {-0.069206,0.421442}, + {-0.369665,0.405097}, + {-0.125755,1.815291}, + {1.339344,-0.722225}, + {0.212585,0.318092}, + {0.198631,-0.060546}, + {0.526265,0.353971}, + {-0.432338,0.914161}, + {-0.259149,-0.485961}, + {0.186000,-1.204080}, + {0.143559,0.179813}, + {0.174681,-0.217002}, + {-0.535888,0.862929}, + {0.138733,0.315051}, + {-0.281155,-0.621632}, + {0.825205,1.046364}, + {-1.448150,0.028607}, + {1.043647,-0.708319}, + {0.579024,-0.187058}, + {0.462025,-0.051373}, + {0.080543,-0.987185}, + {-0.422065,1.038899}, + {1.245455,0.673572}, + {0.120575,-0.872393}, + {-0.935692,-0.049482}, + {0.833592,0.112002}, + {-0.280053,-0.923684}, + {-0.352881,-0.159811}, + {0.006592,0.880995}, + {-0.334637,0.319727}, + {1.600511,0.559890}, + {-0.063299,0.518006}, + {0.767673,-0.342292}, + {0.894664,-1.056244}, + {0.218239,-1.485107}, + {1.313901,-0.284383}, + {0.416552,0.516669}, + {-0.945374,-0.353124}, + {-1.444466,-0.478877}, + {0.595701,-0.530269}, + {0.321203,-0.859422}, + {-0.202144,0.563280}, + {-0.921581,-0.435354}, + {-0.709879,-0.080659}, + {0.850755,0.425879}, + {0.371517,-0.722259}, + {-0.655815,-0.005035}, + {0.270087,0.539163}, + {-0.233616,0.091892}, + {0.062617,-0.648446}, + {0.581563,-0.013480}, + {-0.959711,2.092442}, + {-1.236567,-0.286320}, + {0.048573,-0.041422}, + {-0.491037,-1.454069}, + {1.001908,0.754578}, + {-0.301879,0.407477}, + {0.642198,0.246582}, + {0.224810,0.092193}, + {-0.272613,0.953599}, + {-0.427767,1.107148}, + {-0.212575,-0.673377}, + {0.074416,-0.040497}, + {0.889662,0.397214}, + {-0.188469,0.498567}, + {0.687591,1.144973}, + {1.150738,-0.377170}, + {-0.700195,0.414603}, + {-1.226960,-0.280948}, + {0.047836,-1.929469}, + {-0.082189,-0.056623}, + {-0.601386,-0.154564}, + {-0.462696,0.956185}, + {0.425110,0.342661}, + {-0.840692,0.701600}, + {-0.504892,0.547409}, + {0.111847,0.714410}, + {0.239928,-0.645067}, + {-0.108924,-0.190042}, + {-0.383790,0.092672}, + {-1.208346,0.551190}, + {0.603143,0.029640}, + {-1.009036,-0.200890}, + {-0.446945,-1.003718}, + {0.765485,-1.039887}, + {-0.480552,-0.196850}, + {-0.203509,-0.820593}, + {0.688553,0.072149}, + {0.703177,-0.301738}, + {0.086873,0.336471}, + {-0.087231,-0.206545}, + {0.269569,-0.857498}, + {0.233124,0.128947}, + {-0.484636,0.170069}, + {-0.537166,0.776772}, + {0.175699,-0.230826}, + {0.085410,-0.018865}, + {0.034945,-0.185273}, + {0.569387,0.834000}, + {0.947868,-0.930988}, + {-0.100640,0.458731}, + {1.002459,0.121581}, + {1.059436,-0.068274}, + {-0.421766,-0.185124}, + {0.812700,-0.879198}, + {1.381454,-0.394813}, + {0.765729,-0.434247}, + {-0.715909,-0.355391}, + {0.073886,1.283928}, + {0.489919,-0.471248}, + {0.194977,1.066605}, + {-0.578221,-0.425253}, + {-0.406449,1.355422}, + {-0.264036,-1.141037}, + {-0.684424,0.475471}, + {-0.556184,1.217787}, + {-0.098804,0.291072}, + {-2.004840,-0.218550}, + {0.675484,0.712235}, + {-0.467058,0.550342}, + {-0.743855,2.418363}, + {-0.778534,0.962859}, + {-0.835465,-0.887622}, + {0.044832,1.405487}, + {0.309662,-1.836249}, + {0.206982,-0.439087}, + {0.960534,-2.043925}, + {-0.543298,1.356592}, + {0.928993,-0.616757}, + {0.549173,0.603967}, + {-0.430636,-0.012406}, + {0.260641,0.304006}, + {0.440114,-0.450592}, + {0.231095,0.277928}, + {0.209124,-0.466697}, + {-0.960677,-1.002757}, + {1.075456,-0.462500}, + {-0.606526,0.152494}, + {-0.182662,-0.659743}, + {1.384662,-0.357479}, + {-1.330588,-1.047178}, + {0.502764,0.377201}, + {-0.247289,0.855959}, + {-0.012699,-0.113936}, + {0.364142,0.075726}, + {-0.269392,1.005615}, + {1.370532,0.307236}, + {1.142868,0.386704}, + {0.440215,-0.324471}, + {-0.033589,-0.638411}, + {-0.327272,1.068003}, + {-0.543571,-0.273416}, + {-0.365062,-0.542959}, + {1.250943,0.688743}, + {0.472615,-0.098602}, + {1.445136,0.536558}, + {0.784735,-0.170791}, + {0.064371,-0.779831}, + {0.308675,-0.603152}, + {1.586819,0.666450}, + {0.639744,-1.202155}, + {-0.627964,1.088006}, + {-0.476573,0.282566}, + {0.027772,0.994415}, + {0.334959,1.192618}, + {0.504855,0.281254}, + {0.413815,0.195150}, + {-0.592291,1.052660}, + {0.079286,-1.324581}, + {0.235540,-0.732265}, + {-0.005819,-0.171668}, + {0.067451,-0.441117}, + {0.607046,-0.160835}, + {-0.162694,0.829134}, + {0.421080,0.189770}, + {-0.116096,-0.441471}, + {-1.205497,-0.460146}, + {0.111566,0.707898}, + {-0.674216,0.010199}, + {-0.516917,-0.340492}, + {-0.253736,-0.133809}, + {0.293164,-0.493820}, + {0.094884,1.329867}, + {0.888509,0.028852}, + {0.507446,0.428109}, + {0.777171,-1.230643}, + {0.888975,-0.258522}, + {0.494596,0.073523}, + {-0.528695,-0.616262}, + {-0.133796,1.596729}, + {0.042732,0.994114}, + {0.187107,-0.683293}, + {1.709562,-0.422073}, + {-0.501284,-0.984705}, + {0.979104,0.114013}, + {0.619612,0.148485}, + {0.265311,0.436067}, + {-1.104922,0.399318}, + {-0.844686,0.364787}, + {0.045931,-1.764657}, + {0.234470,0.330008}, + {-0.745766,0.634961}, + {1.040822,-1.192880}, + {-0.924936,-0.069478}, + {-0.559008,1.068087}, + {-0.001940,-1.409943}, + {-0.963420,-0.425440}, + {-0.355644,-0.262865}, + {-0.325353,0.688031}, + {-0.505974,0.930113}, + {-0.513432,0.014631}, + {-0.641167,-0.464992}, + {0.989676,0.899411}, + {0.475176,1.152172}, + {-0.649576,-0.471232}, + {-0.544376,0.273234}, + {-1.936626,0.360009}, + {-0.788292,-0.146180}, + {0.029239,0.663837}, + {0.089389,-0.405482}, + {-1.006432,0.041522}, + {0.065737,0.170432}, + {-0.536108,0.463754}, + {0.249146,-0.505395}, + {0.371547,-0.812264}, + {-0.037906,-1.072131}, + {0.484523,-1.128252}, + {-0.715915,-0.328589}, + {-0.274512,0.228612}, + {-0.058716,0.021879}, + {0.702693,-0.158524}, + {-0.151997,0.473194}, + {-0.852896,-0.326452}, + {-0.100443,0.365915}, + {-0.955887,0.394822}, + {-0.208727,-0.344079}, + {-0.131318,0.157507}, + {0.210001,0.434525}, + {-1.062122,-0.117708}, + {-0.346687,-0.182016}, + {0.654369,-0.500059}, + {-0.307734,-0.826574}, + {0.155367,1.735056}, + {1.858707,-0.541347}, + {-0.268982,0.440984}, + {0.216965,-1.158686}, + {-0.431159,-1.260753}, + {-1.785308,-0.584553}, + {0.261771,0.584204}, + {1.451317,-0.742810}, + {-0.004668,-0.752829}, + {-0.024921,1.245290}, + {0.595504,0.565095}, + {0.960266,-0.329771}, + {0.326327,0.550239}, + {-0.863137,0.203973}, + {-0.380078,-0.435468}, + {1.090459,-0.823282}, + {-0.356638,0.283852}, + {0.682541,0.012101}, + {-0.308431,0.770005}, + {1.199072,0.069286}, + {-1.046700,1.675759}, + {-0.077715,0.534336}, + {-0.222926,0.910906}, + {0.261806,0.566523}, + {0.420022,-0.553801}, + {-1.412877,0.700632}, + {0.797401,0.323269}, + {-0.694224,0.960901}, + {0.533299,0.850659}, + {-0.991622,1.002736}, + {-0.028049,0.666471}, + {0.715754,-0.271882}, + {0.578916,0.553135}, + {0.231987,0.123384}, + {-0.109185,-1.359211}, + {-0.398565,0.173967}, + {-0.043014,-0.665217}, + {-1.225856,0.628940}, + {-0.929289,-1.132390}, + {1.603272,0.818561}, + {-0.103226,-0.692397}, + {0.141116,1.383120}, + {-0.400579,0.668820}, + {0.143826,-0.222660}, + {0.333041,-0.807693}, + {-0.320005,0.808184}, + {0.629822,-0.286580}, + {-0.772778,1.724556}, + {1.386505,0.462035}, + {-0.229246,-1.474260}, + {-0.503459,1.044767}, + {-0.250001,0.561403}, + {0.012072,-0.058950}, + {0.756583,0.503015}, + {-0.335019,-0.761904}, + {-0.682864,0.003814}, + {0.068344,0.231416}, + {0.256777,-0.369994}, + {-0.282520,-0.095213}, + {-0.187083,-0.559020}, + {-0.026183,-0.522028}, + {-0.650853,-0.769108}, + {0.035804,-0.431890}, + {0.030008,-0.399347}, + {-0.287980,-0.145851}, + {-0.677012,-0.560565}, + {-1.049641,-0.861592}, + {0.312580,0.091289}, + {-0.963485,0.211167}, + {0.287165,-0.371532}, + {0.555650,-0.838435}, + {0.395525,-0.449511}, + {0.252774,-0.490994}, + {-0.688084,-0.314271}, + {-0.402613,0.309283}, + {0.511800,-0.453051}, + {1.035475,-0.441895}, + {-0.655559,0.204947}, + {-0.683300,-0.428916}, + {0.387642,0.043918}, + {-0.179349,-0.651814}, + {-0.493107,1.155292}, + {-0.030356,0.289986}, + {0.652280,1.046866}, + {0.057809,1.266974}, + {0.215742,1.064339}, + {0.447729,-0.632852}, + {0.279966,-0.339154}, + {-0.166371,-1.026682}, + {0.421910,0.351254}, + {-0.254637,-0.154264}, + {-1.334090,-0.110719}, + {-0.566168,-1.155950}, + {-0.558998,0.207397}, + {-0.055417,0.648158}, + {-0.241039,-0.287178}, + {-0.582347,-1.040992}, + {-0.289176,0.447352}, + {0.564223,-0.500253}, + {0.200212,0.121773}, + {0.752287,0.131198}, + {-0.586207,-0.250267}, + {0.752385,-1.118821}, + {-0.454050,0.686154}, + {0.421964,-0.071049}, + {0.385670,0.105139}, + {-0.883155,0.420629}, + {0.582838,0.829220}, + {1.599990,0.302506}, + {-0.711621,-0.048242}, + {-0.769061,-0.939823}, + {-0.570805,1.221850}, + {0.746084,0.370521}, + {-1.095763,0.542099}, + {0.507870,-0.028658}, + {-0.006494,-0.140681}, + {1.123004,0.639325}, + {0.023228,-0.243014}, + {2.006419,-0.925360}, + {0.244315,0.241295}, + {0.714233,0.041423}, + {0.930361,1.159843}, + {-0.439284,-1.104778}, + {-2.044038,1.046255}, + {-0.247643,-0.295368}, + {-0.496474,-0.188701}, + {0.427399,-0.103610}, + {-0.048929,-0.755309}, + {-0.378127,-0.657410}, + {0.647217,0.149609}, + {0.628906,-1.593151}, + {-0.581867,-0.372896}, + {-0.483963,-0.772021}, + {-1.279053,-0.372171}, + {-0.505264,-0.021054}, + {-1.130825,0.247607}, + {0.329896,1.593840}, + {-0.312292,-0.619026}, + {-0.024599,0.020700}, + {-0.647591,-0.690874}, + {1.248162,1.039611}, + {-0.252032,0.173910}, + {0.311838,-0.632350}, + {-1.024234,0.131065}, + {0.035961,-1.216873}, + {0.477173,0.507557}, + {-1.295462,-0.451069}, + {-0.377181,1.110673}, + {0.706351,-0.382557}, + {-0.134564,-0.499312}, + {0.566652,-0.673370}, + {-0.967847,-0.852623}, + {-0.139758,-2.138448}, + {-0.176702,0.054714}, + {0.043205,0.100348}, + {-1.012144,-0.515393}, + {0.620692,-0.001168}, + {-0.231469,0.384359}, + {0.167537,0.294412}, + {-0.061414,-0.366999}, + {0.731633,0.876544}, + {1.154343,0.803758}, + {0.412281,0.559052}, + {-0.371725,-1.273328}, + {0.957476,-1.378973}, + {0.289512,-0.991069}, + {-0.578394,-1.421610}, + {0.015914,0.322132}, + {0.106358,-1.449675}, + {-0.069120,0.739722}, + {0.531874,-0.371638}, + {0.657279,0.323686}, + {0.037083,-0.796566}, + {1.061708,-0.965017}, + {0.413730,0.054267}, + {0.521430,1.075811}, + {0.856354,-0.905745}, + {0.373586,-0.270185}, + {0.791206,-0.986693}, + {0.729893,0.860268}, + {0.043905,-0.429560}, + {-0.656692,-1.039828}, + {0.555913,1.767401}, + {0.303388,-0.323869}, + {-0.125446,-0.255745}, + {1.117126,0.195974}, + {-0.992980,0.304440}, + {-0.382740,0.426044}, + {-0.223638,-0.152487}, + {1.023637,-0.350714}, + {0.245655,-0.157361}, + {-0.111659,-0.614165}, + {0.354600,0.026794}, + {-0.027813,0.532690}, + {0.245690,0.739772}, + {-0.504872,-0.794998}, + {-0.809269,-1.094385}, + {-1.001891,-0.480770}, + {-0.465059,0.023020}, + {0.229876,-0.151501}, + {-1.141435,-0.029146}, + {-0.937562,-0.801157}, + {-0.195200,-2.144830}, + {0.101337,0.587135}, + {0.153064,-0.325187}, + {-0.583504,-1.060043}, + {-0.098906,-0.330180}, + {-0.216563,-0.818141}, + {-0.211935,-0.707920}, + {0.636668,0.028993}, + {-0.758271,-0.108885}, + {-0.706584,0.097759}, + {1.376119,0.384825}, + {0.420516,1.213370}, + {1.030631,-0.077473}, + {-1.252726,1.002692}, + {0.487495,0.456548}, + {0.682253,0.398622}, + {0.147446,-0.079877}, + {0.722369,-0.614144}, + {0.378631,-0.601790}, + {0.075497,0.837757}, + {0.199081,0.445597}, + {0.535089,0.570803}, + {-0.122319,0.373349}, + {-0.321298,0.741177}, + {0.903177,-0.013977}, + {-0.583050,-0.924612}, + {0.066698,1.396794}, + {0.408667,0.958962}, + {-0.738580,-1.497866}, + {0.600777,-0.398895}, + {0.254742,0.347824}, + {-0.265817,0.876722}, + {0.907423,0.129822}, + {-0.114962,-0.826617}, + {-0.240360,-0.143947}, + {0.148077,-0.071668}, + {-0.212910,1.016550}, + {-0.013388,-1.067770}, + {0.046668,-0.442470}, + {0.256538,-0.318212}, + {-0.250360,1.417343}, + {-0.775082,1.038648}, + {1.220756,-0.342349}, + {-0.032158,-0.172829}, + {0.922113,0.382379}, + {1.047628,0.944538}, + {0.885199,-0.041166}, + {-1.458274,0.373000}, + {0.855979,0.373876}, + {0.431145,0.483826}, + {-0.019854,-1.320043}, + {0.213858,-0.134150}, + {-1.273584,-0.203977}, + {-0.916604,0.918129}, + {-0.768406,-1.109353}, + {-0.278667,-0.372253}, + {0.878634,0.434317}, + {-1.182409,0.691791}, + {-0.166143,0.370502}, + {-0.371636,-0.617445}, + {0.836100,-1.092805}, + {0.179593,2.209969}, + {-0.760372,-0.186876}, + {0.580655,0.070447}, + {0.637695,-1.328039}, + {-0.210008,0.169876}, + {0.107828,-1.200689}, + {0.689020,0.461975}, + {0.799638,-0.225619}, + {0.549319,0.257945}, + {-0.169926,-0.062423}, + {-1.000681,-1.230883}, + {-0.280677,-0.889594}, + {-0.365240,0.176973}, + {-0.496268,-1.327882}, + {-0.051553,1.031328}, + {-1.118158,1.437687}, + {0.069181,-0.263582}, + {0.034310,0.657226}, + {-0.665250,-0.249209}, + {-0.265277,-0.231715}, + {0.768583,-0.439151}, + {-0.516311,1.258394}, + {-1.062635,-0.480988}, + {0.768868,1.387988}, + {-0.133561,-0.253474}, + {0.174635,-0.763359}, + {0.207988,0.224757}, + {0.171049,1.245499}, + {-0.923550,1.085739}, + {0.631564,-1.467559}, + {-0.160409,0.068830}, + {-0.008023,-1.455924}, + {0.180831,-0.762764}, + {0.303099,2.221159}, + {0.032024,0.734284}, + {0.086762,-0.565552}, + {-0.273328,1.536368}, + {-0.101105,-0.703900}, + {0.023821,-0.404259}, + {0.138986,-0.943679}, + {-0.511459,0.739696}, + {-1.031153,0.329790}, + {-0.038206,-0.799769}, + {0.440881,-0.555912}, + {0.023990,-0.531059}, + {0.659228,-0.843024}, + {-0.826474,-0.770692}, + {0.946334,-1.545003}, + {0.261025,-0.113739}, + {0.048911,-1.179110}, + {0.060770,-0.859467}, + {-0.785178,-0.587693}, + {-0.381189,0.094381}, + {0.630990,-0.822901}, + {0.013473,-0.408986}, + {-1.789311,0.714900}, + {1.519795,-0.195693}, + {-0.701243,0.864168}, + {-0.915110,0.072452}, + {-1.261997,1.360065}, + {-0.163284,0.527620}, + {0.649672,-0.335824}, + {0.610109,0.962789}, + {1.048801,-0.879891}, + {-1.064425,-1.265436}, + {0.105428,-0.129546}, + {1.539402,-0.029218}, + {-0.431054,-0.384473}, + {0.440965,-1.503971}, + {-0.553600,0.461140}, + {0.432415,-0.588674}, + {0.466966,0.767686}, + {-1.282511,-0.822551}, + {-0.405750,-0.169677}, + {-0.529296,-0.256420}, + {0.333425,-0.212289}, + {0.351865,-1.052035}, + {-0.372759,-0.324327}, + {0.496838,0.426941}, + {0.521469,0.729775}, + {-0.360286,0.330552}, + {-0.939280,-0.731402}, + {-0.589460,0.375702}, + {0.473278,0.562849}, + {0.907852,0.477585}, + {-1.161415,0.674441}, + {-0.978026,0.108291}, + {-0.646718,0.244958}, + {-0.037385,-0.220525}, + {-0.453012,0.255493}, + {0.903459,-0.255742}, + {-0.099331,0.318876}, + {0.002754,-0.225539}, + {0.134105,-0.165745}, + {1.240310,-0.105975}, + {0.009197,0.949681}, + {-0.673977,0.458706}, + {0.679855,-0.534481}, + {-0.073767,0.277108}, + {0.277924,-0.047804}, + {0.415045,-0.608651}, + {0.122556,0.982192}, + {-0.446661,-0.313225}, + {1.173726,1.220580}, + {-1.593188,0.789350}, + {-1.834105,-1.079304}, + {0.107095,-0.091381}, + {1.110756,0.061581}, + {-0.917192,0.734789}, + {0.348696,-1.323831}, + {0.010933,1.090009}, + {-0.106413,-0.322089}, + {-0.860837,-0.506303}, + {0.627199,0.541836}, + {-0.139889,-0.512866}, + {0.637993,0.510208}, + {-1.167249,-0.146076}, + {-0.862119,0.394909}, + {-1.240754,0.494548}, + {-0.376744,0.672959}, + {-0.999381,0.637653}, + {-1.391600,0.390940}, + {0.955660,-0.769621}, + {0.310879,-0.798671}, + {0.408795,-0.452281}, + {-0.974719,-0.029192}, + {0.311104,0.273352}, + {0.026062,-0.858645}, + {0.556329,0.206713}, + {0.094267,-1.481594}, + {-0.356078,0.544259}, + {-0.033796,-0.245353}, + {0.203784,0.331156}, + {0.096733,2.575388}, + {-0.381793,0.290671}, + {-0.116102,-0.156839}, + {0.161793,0.594064}, + {-0.321204,-1.339815}, + {-1.090421,-0.762797}, + {0.787900,0.459478}, + {0.243785,0.940882}, + {-0.153906,0.841058}, + {-0.936971,1.541452}, + {-0.439278,-0.322908}, + {-1.066801,-0.222840}, + {0.629434,-0.352457}, + {-0.202999,0.278222}, + {-0.505916,0.969990}, + {0.396149,-0.315510}, + {-0.829205,-0.140890}, + {-0.660853,-0.447071}, + {-0.699586,0.850048}, + {-0.706088,0.377818}, + {-0.876828,0.869990}, + {0.937227,-0.354026}, + {-1.149567,-0.878271}, + {-0.807950,-0.806797}, + {-0.733349,-1.050036}, + {0.134549,-1.452923}, + {0.623023,0.412688}, + {0.119168,-1.377420}, + {0.682589,0.820573}, + {0.800743,-0.117315}, + {-0.930976,-0.305719}, + {0.007050,0.193402}, + {1.580681,0.605792}, + {0.281324,0.201371}, + {0.005740,1.007009}, + {0.993450,-0.268242}, + {0.289972,-0.080020}, + {0.206252,0.023882}, + {-0.015665,-2.024198}, + {0.371283,-1.340106}, + {-0.213033,-0.457500}, + {0.263077,-0.366399}, + {0.710898,-1.090262}, + {0.677746,-1.151681}, + {1.238201,-0.610042}, + {0.325461,-1.103737}, + {-0.980765,-0.488024}, + {-0.077484,0.774584}, + {0.496364,0.004649}, + {0.643821,1.447878}, + {-0.743024,-1.112741}, + {-0.195607,0.639318}, + {-0.080202,0.412438}, + {0.916875,0.189103}, + {-0.106268,0.390295}, + {0.715604,-0.486286}, + {0.115849,1.370489}, + {-0.576103,1.129486}, + {0.935521,-0.616187}, + {-0.914664,0.196014}, + {0.360647,0.177486}, + {0.442306,-0.048782}, + {-1.345507,0.159373}, + {-1.024007,-1.295577}, + {0.303087,-0.450638}, + {0.225152,-0.356881}, + {-0.503513,-0.770894}, + {-0.333461,-1.843134}, + {-0.432863,-0.889999}, + {-0.784493,-0.566774}, + {0.410618,0.701420}, + {0.136290,-1.037936}, + {0.145021,0.974063}, + {0.529589,0.128197}, + {-0.676674,-0.971814}, + {-0.270406,1.019808}, + {0.096367,-0.838265}, + {0.318717,-0.762441}, + {0.397090,0.756928}, + {0.648969,0.667148}, + {-0.913693,-0.162627}, + {0.119623,0.022965}, + {0.555892,0.378100}, + {0.900717,0.703179}, + {-0.046262,-0.721821}, + {-1.181653,0.505205}, + {0.465203,-0.477470}, + {0.046090,-0.627510}, + {-0.363122,-0.091161}, + {0.953653,1.039114}, + {-0.789380,-0.928026}, + {0.162396,0.803479}, + {-0.835156,-0.260672}, + {0.250119,-0.467056}, + {0.218336,0.454615}, + {0.209926,1.190928}, + {-1.178592,-0.891917}, + {0.550639,-0.793167}, + {-1.985065,-1.044282}, + {-0.196421,-0.054591}, + {0.084188,-0.363259}, + {-0.505210,-0.803844}, + {1.240644,-0.301110}, + {0.512258,-0.469191}, + {-1.549377,0.756018}, + {-0.614481,-0.080973}, + {-0.744195,-0.048617}, + {0.879512,-0.837412}, + {-1.089793,1.223308}, + {1.011531,0.192099}, + {0.335207,-0.361593}, + {0.976295,-0.603421}, + {-0.220526,-0.371096}, + {-1.002946,0.716884}, + {-0.444541,-0.037052}, + {-0.477626,0.295812}, + {-1.046918,-2.279811}, + {0.133746,-0.120300}, + {0.279460,0.397052}, + {-0.663998,0.035170}, + {1.121487,0.680845}, + {1.108689,1.142655}, + {0.380884,1.253683}, + {0.106635,-0.096270}, + {0.651713,-1.297000}, + {0.481130,-0.876693}, + {-2.086800,0.062748}, + {0.502741,0.743331}, + {-0.634120,0.417364}, + {0.332408,-1.807629}, + {0.288393,-0.248269}, + {-0.589845,0.528027}, + {-0.953016,0.010891}, + {1.215645,-1.463684}, + {0.179478,-0.118753}, + {0.304072,0.579308}, + {-0.786558,-1.384700}, + {1.545828,0.671325}, + {-1.103380,0.496542}, + {0.566262,0.207667}, + {0.168035,-0.084493}, + {-0.745029,0.787807}, + {-0.008405,0.486130}, + {-1.256400,-0.811337}, + {-0.421056,-0.997844}, + {-0.129980,-0.010057}, + {0.683615,0.299871}, + {0.171174,-0.371855}, + {0.239929,-0.288358}, + {0.736989,0.844517}, + {0.502939,-0.293006}, + {-0.078536,-0.030891}, + {0.889214,0.617627}, + {0.107697,-0.504655}, + {-0.322943,-0.180390}, + {-0.659880,-0.211751}, + {-0.425630,1.220749}, + {1.564708,1.804423}, + {-0.562868,0.198486}, + {-0.064851,-0.014952}, + {-0.685409,0.304867}, + {1.341588,0.203554}, + {0.391212,-0.841740}, + {0.700891,0.658326}, + {-0.301305,0.902339}, + {-0.046588,0.019530}, + {0.415121,-0.949705}, + {-0.410635,-0.231837}, + {0.615095,1.334066}, + {-0.067261,0.324586}, + {0.167043,-1.136141}, + {0.422422,0.696197}, + {0.584087,0.667480}, + {-0.551074,0.249301}, + {0.421860,-0.454014}, + {-0.585820,-0.664637}, + {-0.071516,0.815123}, + {-0.541864,0.195446}, + {0.866604,-1.519052}, + {-1.811300,0.473683}, + {-0.412564,0.863621}, + {-0.125827,-0.223240}, + {0.963505,0.064195}, + {0.096324,-0.017230}, + {-0.559212,0.385040}, + {-0.071234,0.362721}, + {-0.783611,-1.711285}, + {-0.466996,-0.665663}, + {-0.422348,0.153831}, + {0.031726,0.347303}, + {0.126585,0.194805}, + {1.089699,-0.115948}, + {0.261952,1.193404}, + {-0.062577,0.658827}, + {1.046650,1.250723}, + {0.343986,-0.385875}, + {0.398418,-1.112678}, + {0.397788,0.432553}, + {-0.081351,-0.869887}, + {0.115778,-1.810748}, + {1.089135,0.283668}, + {0.348676,-0.215081}, + {0.990831,0.340013}, + {-0.429526,0.150394}, + {-0.209451,-0.426354}, + {1.251426,0.387939}, + {-0.941099,-0.048392}, + {0.553432,0.490465}, + {0.820341,-0.892655}, + {-0.469979,0.215954}, + {-0.111752,-0.518634}, + {-0.322742,0.282748}, + {-0.131831,-0.096259}, + {0.928465,0.491990}, + {-0.131168,0.713177}, + {1.182858,-0.137778}, + {0.498624,0.596945}, + {-0.340255,1.333451}, + {-0.263143,-0.178530}, + {-0.853000,-0.367513}, + {0.645533,0.217256}, + {-0.222484,-0.050816}, + {-0.889767,0.961630}, + {-0.559303,-0.335849}, + {0.755808,1.224325}, + {-0.295347,-0.382986}, + {0.154238,0.489334}, + {0.806167,0.600666}, + {-1.440967,0.906005}, + {0.400307,-1.289369}, + {-1.322768,0.271201}, + {0.721328,-0.415260}, + {0.328246,0.162043}, + {1.063849,-0.169918}, + {0.661691,0.188712}, + {-0.393050,-0.106635}, + {-0.924026,-0.264599}, + {-0.379871,-0.638547}, + {1.648221,0.026247}, + {1.111263,0.149709}, + {0.176878,-1.278937}, + {0.734091,0.194270}, + {0.643210,-0.024985}, + {-0.703541,-0.377990}, + {0.786560,0.295150}, + {1.646656,-0.147934}, + {-0.361062,0.674906}, + {-0.317120,0.143807}, + {-1.310888,-0.164024}, + {0.035068,0.189815}, + {-0.787682,0.694272}, + {-0.057575,-0.198782}, + {0.037946,-1.261234}, + {0.789551,0.167209}, + {0.163492,1.280868}, + {1.486117,0.344385}, + {-0.259139,-0.046155}, + {-0.720616,-0.687107}, + {0.332266,0.269337}, + {0.677660,-0.080123}, + {0.221776,0.671525}, + {-1.286564,-1.026638}, + {-0.137566,-0.439496}, + {1.253971,-1.647977}, + {-1.082200,-0.445719}, + {-0.166409,-0.650523}, + {-0.453263,0.213402}, + {-0.017712,-0.128208}, + {-0.032769,-0.405644}, + {-0.219371,-0.017666}, + {-0.799480,-1.769117}, + {-0.532850,0.965634}, + {-0.686125,-1.467377}, + {-0.633034,-0.389067}, + {-0.150331,0.782007}, + {-0.691980,0.730198}, + {-0.597063,-0.279026}, + {0.834946,0.396175}, + {-0.078053,-0.123351}, + {-0.571384,-0.618287}, + {0.325004,0.114546}, + {0.411609,1.274331}, + {0.206788,-0.139653}, + {-1.090128,0.800625}, + {-0.412709,0.694443}, + {-0.162932,1.311011}, + {0.397417,-0.737950}, + {-0.100183,0.447697}, + {1.213408,-1.126972}, + {0.034492,0.978029}, + {-0.872335,-0.584584}, + {0.568310,0.904579}, + {-0.453700,0.703082}, + {-1.230769,0.813793}, + {-0.851555,0.357280}, + {0.604006,0.281641}, + {0.411237,0.367925}, + {-0.750405,-1.252638}, + {0.260416,0.091677}, + {0.333514,-1.104021}, + {0.782219,0.587118}, + {-0.200975,-0.528729}, + {-0.332689,-1.636132}, + {-0.415304,-0.010511}, + {-0.121022,0.354709}, + {0.994143,0.280846}, + {0.138590,-0.213242}, + {-0.193256,-0.095752}, + {-0.441602,0.259315}, + {0.948753,0.001788}, + {0.898141,-0.750677}, + {1.346054,0.626588}, + {0.381400,-0.493532}, + {-1.338972,0.327082}, + {0.220140,-0.344755}, + {0.656912,-0.469924}, + {1.263170,0.096743}, + {0.070575,-0.775336}, + {0.716447,1.747781}, + {0.298510,0.135103}, + {0.022491,0.885968}, + {0.142852,0.482053}, + {-0.434061,-0.439810}, + {0.694127,0.094622}, + {0.448201,-0.299757}, + {0.087507,0.008116}, + {0.250792,0.103017}, + {-0.059841,-0.687843}, + {-0.071647,0.860597}, + {0.728315,0.820186}, + {-0.640044,0.101480}, + {0.211384,0.028702}, + {-0.457781,0.490619}, + {-0.178352,-0.304710}, + {-0.563754,-0.733470}, + {-0.770274,0.082873}, + {-0.762355,1.140889}, + {0.797291,0.304485}, + {-0.057014,-0.903306}, + {-0.158813,0.075113}, + {-0.874554,0.299985}, + {-1.282132,-0.277777}, + {0.150378,-1.322159}, + {0.433856,-0.000391}, + {0.119086,-0.850105}, + {0.204912,0.316619}, + {-0.757190,-0.377894}, + {-0.896753,1.076560}, + {1.182092,-0.196822}, + {0.699797,0.526050}, + {0.405838,-0.496715}, + {-0.834600,-0.037964}, + {0.545939,0.047411}, + {-0.771625,0.127979}, + {0.625542,0.978054}, + {0.578050,1.339611}, + {-0.854615,-0.162544}, + {0.803070,-1.575209}, + {-0.722438,0.809655}, + {0.812986,-0.021617}, + {0.617012,0.621875}, + {-0.694562,-0.359274}, + {0.819084,0.571131}, + {0.605917,-0.877233}, + {-0.166467,-0.432090}, + {-0.763237,0.021539}, + {-1.007144,0.682364}, + {-0.012074,-1.138787}, + {-0.793479,0.734741}, + {0.950373,-0.774179}, + {0.714255,-0.444826}, + {-1.824486,-1.178179}, + {0.286283,-1.022538}, + {0.371641,0.412646}, + {1.221297,-0.075273}, + {0.513217,0.452413}, + {0.015385,-0.341663}, + {-0.926360,0.470885}, + {-0.515633,0.282595}, + {-0.876782,0.148065}, + {-0.204097,-0.416771}, + {0.581214,0.730282}, + {0.150986,-0.721883}, + {-0.919574,-0.518872}, + {-1.025393,1.032902}, + {-0.571691,-0.523905}, + {0.336729,0.277443}, + {0.077651,0.017905}, + {-0.049717,0.473017}, + {-0.410902,-0.770257}, + {-0.847206,0.198044}, + {0.356753,0.100081}, + {0.580691,0.400755}, + {0.718459,0.870265}, + {0.779366,0.466430}, + {-1.046243,-1.317550}, + {-0.248241,-0.184969}, + {0.626921,0.660065}, + {0.772665,-1.467408}, + {0.189100,0.479679}, + {-1.027175,1.032229}, + {-0.110106,-0.214123}, + {-0.434741,0.523121}, + {-0.947316,0.197282}, + {0.241363,0.711876}, + {-0.790393,-0.270092}, + {-0.264741,0.345775}, + {0.814247,-0.835493}, + {0.947799,0.460240}, + {0.505144,0.380228}, + {-0.473087,-0.638790}, + {0.543595,-0.001347}, + {-0.682112,0.627895}, + {-0.405487,0.778655}, + {0.090159,-1.164412}, + {-1.021743,-1.421425}, + {-0.149220,-0.891920}, + {0.763872,-0.387818}, + {0.447078,0.686021}, + {0.054443,0.941294}, + {0.946171,-0.217788}, + {-0.490974,1.129098}, + {0.729449,0.252452}, + {0.815682,-0.189074}, + {0.788805,-1.240450}, + {0.942122,-1.379303}, + {-0.702094,0.893805}, + {-1.031257,0.993462}, + {-0.515607,-1.598744}, + {-1.242896,0.696992}, + {0.462112,-1.234721}, + {-1.005724,0.703223}, + {0.475509,1.468536}, + {0.087152,0.401476}, + {-1.961801,0.527485}, + {-0.277783,0.792785}, + {0.499758,-0.094692}, + {0.592984,-0.740657}, + {-0.369076,-0.004060}, + {0.610104,-0.671913}, + {-0.127590,0.291879}, + {-0.769939,-0.549296}, + {-0.110371,-0.651391}, + {-0.324962,-0.638560}, + {-0.366826,1.409327}, + {0.365052,-0.587005}, + {-0.316704,-0.411182}, + {-0.769326,-0.018427}, + {0.918326,-0.205236}, + {1.455609,1.087051}, + {0.844860,-0.653147}, + {1.020463,0.280075}, + {0.559389,-0.768862}, + {-1.792332,-0.215746}, + {0.196068,-0.074482}, + {-0.613620,-0.906514}, + {-0.602302,1.210484}, + {1.537292,0.306783}, + {-0.008903,-0.974294}, + {-0.532771,-0.265199}, + {-0.018499,-0.535834}, + {-0.014195,0.748767}, + {0.353076,-0.075319}, + {0.434187,0.928206}, + {-0.355526,0.282319}, + {0.211333,0.311046}, + {-0.589182,-0.031620}, + {1.002223,0.023921}, + {-0.601628,-0.329293}, + {0.424415,0.068179}, + {-1.155585,0.516343}, + {0.515025,0.512588}, + {-0.779358,0.737289}, + {-0.532136,-0.528990}, + {0.246092,0.038006}, + {-1.225133,0.620487}, + {-0.200500,-0.297832}, + {-0.419124,-0.629269}, + {0.857102,-0.394516}, + {-0.627349,0.023525}, + {-0.480722,0.194265}, + {-0.967646,-0.289770}, + {-0.811645,0.778058}, + {-0.330038,0.486357}, + {-0.188439,0.216193}, + {0.089880,-0.920053}, + {0.123710,-0.395635}, + {0.590314,0.051432}, + {-0.400984,0.472685}, + {-0.482473,-0.081664}, + {1.021624,1.195570}, + {-0.641330,-0.310074}, + {-0.191657,-0.668057}, + {0.057035,0.868019}, + {0.161342,0.290908}, + {-0.914313,1.611466}, + {0.752373,1.180590}, + {-0.023547,1.358874}, + {-0.891893,0.622478}, + {-0.627566,-0.215932}, + {0.569484,-0.032047}, + {0.151811,0.537318}, + {0.643493,-0.211765}, + {-0.277706,0.641965}, + {-0.055308,0.040286}, + {0.133963,-0.238700}, + {-0.927043,0.438230}, + {0.737539,-1.090991}, + {-0.258609,0.790912}, + {-0.248323,-0.881598}, + {0.220905,1.051752}, + {0.439683,-0.240808}, + {-0.081260,-0.429267}, + {-0.893930,-0.301145}, + {0.216628,0.563682}, + {0.495748,-0.625961}, + {-0.484015,-1.195660}, + {-0.717614,-0.328233}, + {-0.601530,-0.572201}, + {-0.055818,0.060060}, + {0.301962,0.128367}, + {-0.314449,-0.022201}, + {-1.088724,0.633684}, + {-0.576006,0.352197}, + {-0.476385,-0.096264}, + {-1.326078,-0.103745}, + {-0.458658,-0.228827}, + {0.123811,0.703156}, + {-1.208584,0.467840}, + {0.733960,0.272324}, + {-0.531940,0.601927}, + {-0.203491,0.765397}, + {0.282851,0.489174}, + {-1.410437,0.224490}, + {-0.438276,-0.013360}, + {-0.061401,-0.259781}, + {-0.014421,-0.307778}, + {-0.475161,1.111264}, + {0.769111,0.441227}, + {0.172795,-0.268608}, + {0.979869,0.135185}, + {-0.528977,-0.205653}, + {-0.045259,0.027604}, + {0.722821,0.789841}, + {-0.039846,-0.938385}, + {0.589344,0.223276}, + {-1.022671,-0.084817}, + {0.041763,-1.074842}, + {-0.588962,0.459411}, + {0.305630,-0.951329}, + {-0.688286,-0.717012}, + {-0.239280,-0.054100}, + {0.466996,-0.578716}, + {0.515927,-0.146469}, + {0.728230,1.345576}, + {0.418004,1.320527}, + {-0.518194,0.757005}, + {0.012964,-1.615714}, + {-0.952324,-0.315730}, + {-0.857139,0.027421}, + {0.114293,0.309591}, + {-0.844651,-0.223144}, + {-0.928183,1.192097}, + {-1.023982,-0.343621}, + {-1.048939,-0.345626}, + {0.164567,0.377517}, + {0.836105,-0.111800}, + {0.071700,0.607273}, + {0.144912,0.349067}, + {0.722128,-0.075779}, + {-0.279779,-0.260383}, + {-0.049156,1.120738}, + {-0.640154,-0.228391}, + {-0.039753,0.150724}, + {-0.415397,-0.463677}, + {-0.723847,-0.209406}, + {-0.524332,-1.037805}, + {0.171327,-1.435469}, + {-0.089687,-0.415936}, + {-1.225215,0.133157}, + {-0.018497,-0.644647}, + {0.396236,-0.355851}, + {0.225700,0.899203}, + {0.287114,-0.691831}, + {0.674085,-0.073870}, + {2.000654,-0.623437}, + {-0.252822,-0.415741}, + {0.052088,0.016210}, + {-0.332988,-0.849652}, + {0.026695,-0.376094}, + {0.742096,0.969579}, + {-1.635731,0.339533}, + {-0.208349,0.686132}, + {0.828001,-0.603493}, + {-0.078836,-0.444070}, + {1.364974,0.631664}, + {-0.160620,0.335231}, + {-1.378768,-0.907673}, + {-0.293646,0.072013}, + {1.524592,-1.461770}, + {0.083610,-1.746190}, + {0.102486,0.149103}, + {0.691698,0.227990}, + {0.028614,-0.864596}, + {-0.152066,0.125449}, + {-1.205134,1.186200}, + {0.848843,-0.061847}, + {1.081665,0.049303}, + {-0.108837,-0.099148}, + {0.262042,-0.490003}, + {-0.254991,0.361463}, + {-0.477565,0.096211}, + {-0.137706,-1.119345}, + {0.538644,0.486454}, + {0.035114,0.001732}, + {-0.695087,0.063591}, + {-1.648017,0.977367}, + {-0.224997,0.395787}, + {-0.727539,-0.234162}, + {0.078225,-0.026224}, + {0.772412,-0.439717}, + {-0.403974,0.204029}, + {-1.104881,-0.012786}, + {-0.672931,-0.415948}, + {-0.863229,-2.233172}, + {1.063307,-0.258525}, + {-0.529432,-0.708843}, + {-0.176069,-1.026002}, + {-0.384993,-0.904576}, + {0.042330,-1.765663}, + {0.851313,1.091533}, + {0.180840,0.453570}, + {0.337128,0.182821}, + {1.363286,-1.181451}, + {1.137031,-0.433505}, + {-1.325181,-0.200399}, + {0.394546,0.006217}, + {0.723817,-0.068463}, + {1.050909,0.065058}, + {0.084242,-0.420440}, + {-0.238302,0.258881}, + {0.174215,-0.677729}, + {-0.711756,0.276335}, + {-0.129577,-0.515158}, + {0.866331,0.116316}, + {1.575856,0.566488}, + {0.235497,-0.285233}, + {-0.831974,-0.236821}, + {-0.817600,1.539514}, + {-0.485036,0.295694}, + {-1.575127,0.044856}, + {0.181119,0.710358}, + {-0.056993,-0.238132}, + {0.091941,0.490274}, + {0.339556,1.201109}, + {-1.241956,1.033717}, + {-0.653462,-1.105622}, + {-0.351127,0.017888}, + {-0.240821,-0.475748}, + {-0.456277,0.573568}, + {-0.419904,-1.058360}, + {0.052939,-0.291801}, + {-0.975645,0.317124}, + {-0.277843,1.312881}, + {-0.980414,-0.689515}, + {-0.328660,0.125761}, + {0.002261,0.540834}, + {0.289127,-0.906076}, + {-0.583909,0.091516}, + {-0.105622,0.534255}, + {0.498881,-1.752227}, + {-0.372611,-0.300411}, + {0.805897,1.430785}, + {1.128088,-0.203904}, + {-0.080504,-0.025175}, + {0.109551,0.071366}, + {-1.018953,0.755951}, + {0.666092,0.991101}, + {0.947680,-0.016049}, + {2.030778,-1.308712}, + {-0.536376,-0.093177}, + {-0.979295,-0.287391}, + {-0.720582,-0.666863}, + {-1.329793,-0.141597}, + {1.120330,0.296339}, + {-0.683593,-1.193189}, + {-0.890008,-0.339326}, + {0.108370,0.364104}, + {0.761248,0.181091}, + {0.852765,1.409425}, + {-0.232370,1.404779}, + {-0.951683,-0.337612}, + {-2.093378,-0.985796}, + {-0.708897,0.096981}, + {-0.369032,-0.081507}, + {0.668578,0.410819}, + {-1.449941,1.474340}, + {-0.077746,-0.719201}, + {-0.522293,-0.151163}, + {-0.458998,-0.377810}, + {-0.371088,-0.656185}, + {-0.692675,0.536793}, + {-0.856001,0.770941}, + {0.787694,-0.616170}, + {0.666946,-1.360541}, + {0.649554,-0.692776}, + {-1.149561,-0.060654}, + {-1.017696,-1.553694}, + {0.594676,-0.308209}, + {-0.414485,0.300271}, + {0.914811,-1.373936}, + {0.593489,-0.368620}, + {-0.414122,0.825231}, + {-0.946035,-0.712426}, + {-0.027283,-0.856090}, + {0.824075,-0.537887}, + {-0.670569,-1.076879}, + {1.250980,-0.782317}, + {0.225270,-0.377829}, + {0.977247,1.198198}, + {-0.255252,0.458703}, + {0.859036,2.174261}, + {-0.392631,0.739821}, + {-0.219855,0.169863}, + {0.412017,0.686208}, + {0.191456,0.548503}, + {0.762538,-0.306864}, + {-0.618637,-0.991173}, + {-0.286232,-1.189813}, + {0.409556,0.705714}, + {0.604650,-0.285883}, + {-0.037553,-0.284563}, + {-1.752832,0.885716}, + {0.662262,0.178240}, + {-0.668130,-0.398971}, + {2.333495,-0.030369}, + {0.431917,-0.014914}, + {-0.339628,-0.075137}, + {0.979382,0.620025}, + {0.024547,-0.548793}, + {-1.198934,0.571377}, + {0.089618,0.417351}, + {-0.696845,0.721676}, + {0.227661,-0.375026}, + {-0.168858,-0.092691}, + {0.407953,-0.657836}, + {0.508885,-0.088453}, + {0.062845,-0.270386}, + {-0.087209,-0.221708}, + {-1.042531,0.650343}, + {-0.637231,0.804756}, + {-0.316632,0.521297}, + {-0.284839,0.380972}, + {0.756041,0.089078}, + {0.367135,-0.050171}, + {0.673788,-0.328597}, + {-0.475960,1.277835}, + {0.050328,-0.406764}, + {-1.253687,0.528663}, + {1.121088,-0.753455}, + {0.576634,0.414912}, + {1.154879,-0.107302}, + {0.079544,0.382389}, + {0.259826,-0.087435}, + {1.064498,0.528704}, + {-0.698877,-1.021912}, + {1.273747,0.566923}, + {-0.151776,1.226809}, + {-0.116914,0.456137}, + {-0.758612,0.838042}, + {0.174788,0.207897}, + {-1.054368,-0.062673}, + {0.303920,0.414262}, + {0.444540,-1.599911}, + {-0.263430,0.748950}, + {0.673118,0.295838}, + {0.558813,-1.015097}, + {-0.182189,0.099479}, + {-0.290746,-0.204886}, + {-0.429349,-0.670610}, + {-1.054783,-0.017990}, + {0.438704,1.112183}, + {1.172061,0.466392}, + {0.572237,0.341187}, + {0.617213,-0.632464}, + {0.122765,0.496952}, + {-0.366828,0.476781}, + {0.023184,0.226708}, + {-0.410027,-1.070367}, + {-1.411039,0.798430}, + {0.635652,-1.202681}, + {1.131089,-0.782675}, + {0.310544,0.006326}, + {0.525788,-1.242739}, + {0.347988,0.586708}, + {-1.343655,1.265193}, + {0.573006,0.820707}, + {-0.145902,-0.883328}, + {0.129940,0.855404}, + {0.877836,-0.239222}, + {-0.451520,-0.558787}, + {0.326841,-1.498916}, + {-0.472055,-0.088465}, + {0.420626,0.747670}, + {0.365096,-0.779117}, + {0.779887,-1.025049}, + {0.268789,0.955912}, + {0.427846,0.416261}, + {0.351268,1.579771}, + {0.085293,-1.166684}, + {0.108972,-1.064624}, + {-0.566448,-0.214947}, + {-0.132223,-0.361406}, + {-0.136036,0.118975}, + {0.427266,0.217945}, + {0.189904,-0.598306}, + {0.020599,0.225899}, + {-1.566003,0.465088}, + {-0.151238,-0.690998}, + {0.644967,-1.305515}, + {-1.005521,0.212625}, + {-0.201626,0.124733}, + {0.712140,0.508869}, + {0.934268,0.418607}, + {1.930008,-0.584650}, + {-0.667467,1.471271}, + {0.925854,0.010608}, + {-0.540775,-0.332686}, + {-1.356718,0.347897}, + {1.008829,0.621137}, + {1.266918,-0.344629}, + {-1.128488,-0.418674}, + {0.157524,0.139078}, + {-0.080731,-1.515912}, + {0.138870,1.536295}, + {0.096079,-0.738967}, + {0.055822,0.790336}, + {0.775557,-0.154829}, + {-0.762535,-0.407425}, + {-1.166020,0.176498}, + {-0.001453,0.874596}, + {0.086572,0.749436}, + {-0.497314,1.108861}, + {1.253067,0.882093}, + {0.043620,0.847310}, + {1.124285,0.394422}, + {-0.028010,-0.424847}, + {0.502442,-0.944102}, + {-0.624064,-0.633988}, + {-1.314388,-0.197072}, + {-0.878207,1.312132}, + {0.164886,-0.109184}, + {-1.477262,-0.055125}, + {-0.030013,-0.699816}, + {-1.298661,1.409137} +}; \ No newline at end of file diff --git a/src/octave.c b/src/octave.c new file mode 100644 index 0000000..9fbb9ba --- /dev/null +++ b/src/octave.c @@ -0,0 +1,142 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: octave.c + AUTHOR......: David Rowe + DATE CREATED: April 28 2012 + + Functions to save C arrays in GNU Octave matrix format. The output text + file can be directly read into Octave using "load filename". + +\*---------------------------------------------------------------------------*/ + + +/* + Copyright (C) 2012 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + */ + +#include +#include + +#include "octave.h" + +#ifdef ARM_MATH_CM4 +#include "Trace.h" +#endif + +#define OCTAVE_BUFSIZE 2048 + + +void flush_buffer(FILE* f, char* buffer,size_t* buf_idx_ptr) +{ +#ifdef ARM_MATH_CM4 + trace_write(buffer,*buf_idx_ptr); +#else + fwrite(buffer,*buf_idx_ptr,1,f); +#endif + *buf_idx_ptr = 0; +} + +void handle_buffer(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, size_t l) +{ + *buf_idx_ptr += l; + if (*buf_idx_ptr > max_buf - 64) + { + flush_buffer(f, buffer,buf_idx_ptr); + } +} + +signed int printf_buffer(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, const char *pFormat, ...) +{ + va_list ap; + signed int rc; + + va_start(ap, pFormat); + rc = vsnprintf(&buffer[*buf_idx_ptr], max_buf - *buf_idx_ptr, pFormat, ap); + va_end(ap); + if (rc>0) + { + handle_buffer(f, buffer,max_buf,buf_idx_ptr,rc); + } + return rc; +} + + +void printf_header(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, const char *name, const char *dtype, int rows, int cols, int isFloat) +{ +#ifdef ARM_MATH_CM4 + printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# hex: %s\n", isFloat?"true":"false"); +#endif + printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# name: %s\n", name); + printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# type: %s\n",dtype); + printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# rows: %d\n", rows); + printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# columns: %d\n", cols); +} +void octave_save_int(FILE *f, char name[], int data[], int rows, int cols) +{ + int r,c; + char buffer[OCTAVE_BUFSIZE]; + size_t buf_idx = 0; + + printf_header(f, buffer, OCTAVE_BUFSIZE, &buf_idx, name, "matrix", rows, cols, 0); + + for(r=0; r. +*/ + +#ifndef __OCTAVE__ +#define __OCTAVE__ + +#include "comp.h" + +void octave_save_int(FILE *f, char name[], int data[], int rows, int cols); +void octave_save_float(FILE *f, char name[], float data[], int rows, int cols, int col_len); +void octave_save_complex(FILE *f, char name[], COMP data[], int rows, int cols, int col_len); + +#endif diff --git a/src/ofdm.c b/src/ofdm.c new file mode 100644 index 0000000..552196c --- /dev/null +++ b/src/ofdm.c @@ -0,0 +1,2628 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: ofdm.c + AUTHORS.....: David Rowe & Steve Sampson + DATE CREATED: June 2017 + + A Library of functions that implement a PSK OFDM modem, C port of + the Octave functions in ofdm_lib.m + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2017-2020 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "comp.h" +#include "ofdm_internal.h" +#include "codec2_ofdm.h" +#include "filter.h" +#include "wval.h" +#include "debug_alloc.h" +#include "machdep.h" + +#ifdef __EMBEDDED__ +#include "codec2_math.h" +#endif /* __EMBEDDED__ */ + +/* Static Prototypes */ + +static float cnormf(complex float); +static void allocate_tx_bpf(struct OFDM *); +static void deallocate_tx_bpf(struct OFDM *); +static float find_carrier_centre(struct OFDM *ofdm); +static void allocate_rx_bpf(struct OFDM *); +static void deallocate_rx_bpf(struct OFDM *); +static void dft(struct OFDM *, complex float *, complex float *); +static void idft(struct OFDM *, complex float *, complex float *); +static complex float vector_sum(complex float *, int); +static int est_timing(struct OFDM *, complex float *, int, int, float *, int *, int); +static float est_freq_offset_pilot_corr(struct OFDM *, complex float *, int, int); +static int ofdm_sync_search_core(struct OFDM *); +static void ofdm_demod_core(struct OFDM *, int *); + +/* Defines */ + +#define max( a, b ) ( ((a) > (b)) ? (a) : (b) ) +#define min( a, b ) ( ((a) < (b)) ? (a) : (b) ) + +/* + * QPSK Quadrant bit-pair values - Gray Coded + */ +static const complex float qpsk[] = { + 1.0f + 0.0f * I, + 0.0f + 1.0f * I, + 0.0f - 1.0f * I, + -1.0f + 0.0f * I +}; + +static const complex float qam16[] = { + 1.0f + 1.0f * I, + 1.0f + 3.0f * I, + 3.0f + 1.0f * I, + 3.0f + 3.0f * I, + 1.0f - 1.0f * I, + 1.0f - 3.0f * I, + 3.0f - 1.0f * I, + 3.0f - 3.0f * I, + -1.0f + 1.0f * I, + -1.0f + 3.0f * I, + -3.0f + 1.0f * I, + -3.0f + 3.0f * I, + -1.0f - 1.0f * I, + -1.0f - 3.0f * I, + -3.0f - 1.0f * I, + -3.0f - 3.0f * I +}; + +/* + * These pilots are compatible with Octave version + */ +static const int8_t pilotvalues[] = { + -1,-1, 1, 1,-1,-1,-1, 1, + -1, 1,-1, 1, 1, 1, 1, 1, + 1, 1, 1,-1,-1, 1,-1, 1, + -1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1,-1, 1, 1, 1, 1, + 1,-1,-1,-1,-1,-1,-1, 1, + -1, 1,-1, 1,-1,-1, 1,-1, + 1, 1, 1, 1,-1, 1,-1, 1 +}; + +/* Local Functions ----------------------------------------------------------*/ + +static float cnormf(complex float val) { + float realf = crealf(val); + float imagf = cimagf(val); + + return realf * realf + imagf * imagf; +} + +/* + * Gray coded QPSK modulation function + */ +complex float qpsk_mod(int *bits) { + return qpsk[(bits[1] << 1) | bits[0]]; +} + +/* + * Gray coded QPSK demodulation function + * + * 01 | 00 + * ---+--- + * 11 | 10 + */ +void qpsk_demod(complex float symbol, int *bits) { + complex float rotate = symbol * cmplx(ROT45); + + bits[0] = crealf(rotate) <= 0.0f; + bits[1] = cimagf(rotate) <= 0.0f; +} + +complex float qam16_mod(int *bits) { + return qam16[ + (bits[3] << 3) | (bits[2] << 2) | + (bits[1] << 1) | bits[0] + ]; +} + +void qam16_demod(complex float symbol, int *bits) { + float dist[16]; + int i; + + for (i = 0; i < 16; i++) { + dist[i] = cnormf(symbol - qam16[i]); + } + + int row = 0; + float mdist = 10000.0f; + + for (i = 0; i < 16; i++) { + if (dist[i] < mdist) { + mdist = dist[i]; + row = i; + } + } + + bits[0] = row & 1; + bits[1] = (row >> 1) & 1; + bits[2] = (row >> 2) & 1; + bits[3] = (row >> 3) & 1; +} + +/* + * ------------ + * ofdm_create + * ------------ + * + * Returns OFDM data structure on success + * Return NULL on fail + * + * If you want the defaults, call this with config structure + * and the NC setting to 0. This will fill the structure with + * default values of the original OFDM modem. + */ +struct OFDM *ofdm_create(const struct OFDM_CONFIG *config) { + struct OFDM *ofdm; + float tval; + int i, j; + + ofdm = (struct OFDM *) CALLOC(1, sizeof (struct OFDM)); + assert(ofdm != NULL); + + if (config == NULL) { + /* Fill in default values */ + + strcpy(ofdm->mode, "700D"); + ofdm->nc = 17; /* Number of carriers */ + ofdm->np = 1; + ofdm->ns = 8; /* Number of Symbols per modem frame */ + ofdm->ts = 0.018f; + ofdm->rs = (1.0f / ofdm->ts); /* Modulation Symbol Rate */ + ofdm->tcp = .002f; /* Cyclic Prefix duration */ + ofdm->tx_centre = 1500.0f; /* TX Carrier Frequency */ + ofdm->rx_centre = 1500.0f; /* RX Carrier Frequency */ + ofdm->fs = 8000.0f; /* Sample rate */ + ofdm->ntxtbits = 4; + ofdm->bps = 2; /* Bits per Symbol */ + ofdm->nuwbits = 5 * ofdm->bps; /* default is 5 symbols of Unique Word bits */ + ofdm->bad_uw_errors = 3; + ofdm->ftwindowwidth = 32; + ofdm->timing_mx_thresh = 0.30f; + ofdm->state_machine = "voice1"; + ofdm->edge_pilots = 1; + ofdm->codename = "HRA_112_112"; + ofdm->amp_est_mode = 0; + ofdm->tx_bpf_en = true; + ofdm->rx_bpf_en = false; + ofdm->amp_scale = 245E3; + ofdm->clip_gain1 = 2.0; + ofdm->clip_gain2 = 0.9; + ofdm->clip_en = false; + ofdm->foff_limiter = false; + ofdm->data_mode = ""; + ofdm->fmin = -50.0; /* frequency minimum for ofdm acquisition range */ + ofdm->fmax = 50.0; /* frequency maximum for ofdm acquisition range */ + memset(ofdm->tx_uw, 0, ofdm->nuwbits); + } else { + /* Use the users values */ + + + strcpy(ofdm->mode, config->mode); + ofdm->nc = config->nc; /* Number of carriers */ + ofdm->np = config->np; /* Number of modem Frames per Packet */ + ofdm->ns = config->ns; /* Number of Symbol frames */ + ofdm->bps = config->bps; /* Bits per Symbol */ + ofdm->ts = config->ts; + ofdm->tcp = config->tcp; /* Cyclic Prefix duration */ + ofdm->tx_centre = config->tx_centre; /* TX Centre Audio Frequency */ + ofdm->rx_centre = config->rx_centre; /* RX Centre Audio Frequency */ + ofdm->fs = config->fs; /* Sample Frequency */ + ofdm->rs = config->rs; /* Symbol Rate */ + ofdm->ntxtbits = config->txtbits; + ofdm->nuwbits = config->nuwbits; + ofdm->bad_uw_errors = config->bad_uw_errors; + ofdm->ftwindowwidth = config->ftwindowwidth; + ofdm->timing_mx_thresh = config->timing_mx_thresh; + ofdm->state_machine = config->state_machine; + ofdm->edge_pilots = config->edge_pilots; + ofdm->codename = config->codename; + ofdm->amp_est_mode = config->amp_est_mode; + ofdm->tx_bpf_en = config->tx_bpf_en; + ofdm->rx_bpf_en = config->rx_bpf_en; + ofdm->foff_limiter = config->foff_limiter; + ofdm->amp_scale = config->amp_scale; + ofdm->clip_gain1 = config->clip_gain1; + ofdm->clip_gain2 = config->clip_gain2; + ofdm->clip_en = config->clip_en; + memcpy(ofdm->tx_uw, config->tx_uw, ofdm->nuwbits); + ofdm->data_mode = config->data_mode; + ofdm->fmin = config->fmin; /* frequency minimum for ofdm acquisition range */ + ofdm->fmax = config->fmax; /* frequency maximum for ofdm acquisition range */ + + } + + ofdm->rs = (1.0f / ofdm->ts); /* Modulation Symbol Rate */ + ofdm->m = (int) (ofdm->fs / ofdm->rs); /* 700D: 144 */ + ofdm->ncp = (int) (ofdm->tcp * ofdm->fs); /* 700D: 16 */ + ofdm->inv_m = (1.0f / (float) ofdm->m); + + /* basic sanity checks */ + assert((int)floorf(ofdm->fs / ofdm->rs) == ofdm->m); + assert(!strcmp(ofdm->state_machine, "voice1") || + !strcmp(ofdm->state_machine, "data") || + !strcmp(ofdm->state_machine, "voice2")); + assert(ofdm->nuwbits <= MAX_UW_BITS); + + /* Copy constants into states */ + + strcpy(ofdm->config.mode, ofdm->mode); + ofdm->config.tx_centre = ofdm->tx_centre; + ofdm->config.rx_centre = ofdm->rx_centre; + ofdm->config.fs = ofdm->fs; + ofdm->config.rs = ofdm->rs; + ofdm->config.ts = ofdm->ts; + ofdm->config.tcp = ofdm->tcp; + ofdm->config.timing_mx_thresh = ofdm->timing_mx_thresh; + ofdm->config.nc = ofdm->nc; + ofdm->config.ns = ofdm->ns; + ofdm->config.np = ofdm->np; + ofdm->config.bps = ofdm->bps; + ofdm->config.nuwbits = ofdm->nuwbits; + ofdm->config.txtbits = ofdm->ntxtbits; + ofdm->config.bad_uw_errors = ofdm->bad_uw_errors; + ofdm->config.ftwindowwidth = ofdm->ftwindowwidth; + ofdm->config.state_machine = ofdm->state_machine; + ofdm->config.edge_pilots = ofdm->edge_pilots; + ofdm->config.codename = ofdm->codename; + ofdm->config.amp_est_mode = ofdm->amp_est_mode; + ofdm->config.tx_bpf_en = ofdm->tx_bpf_en; + ofdm->config.rx_bpf_en = ofdm->rx_bpf_en; + ofdm->config.foff_limiter = ofdm->foff_limiter; + ofdm->config.amp_scale = ofdm->amp_scale; + ofdm->config.clip_gain1 = ofdm->clip_gain1; + ofdm->config.clip_gain2 = ofdm->clip_gain2; + ofdm->config.clip_en = ofdm->clip_en; + memcpy(ofdm->config.tx_uw, ofdm->tx_uw, ofdm->nuwbits); + ofdm->config.data_mode = ofdm->data_mode; + ofdm->config.fmin = ofdm->fmin; + ofdm->config.fmax = ofdm->fmax; + + + /* Calculate sizes from config param */ + + ofdm->bitsperframe = (ofdm->ns - 1) * (ofdm->nc * ofdm->bps); // 238 for nc = 17 + ofdm->bitsperpacket = ofdm->np * ofdm->bitsperframe; + ofdm->tpacket = (float)(ofdm->np * ofdm->ns) * (ofdm->tcp + ofdm->ts); /* time for one packet */ + ofdm->rowsperframe = ofdm->bitsperframe / (ofdm->nc * ofdm->bps); + ofdm->samplespersymbol = (ofdm->m + ofdm->ncp); + ofdm->samplesperframe = ofdm->ns * ofdm->samplespersymbol; + if (*ofdm->data_mode != 0) + // in burst data modes we skip ahead one frame to jump over preamble + ofdm->max_samplesperframe = 2*ofdm->samplesperframe; + else + ofdm->max_samplesperframe = ofdm->samplesperframe + (ofdm->samplespersymbol / 4); + /* extra storage at start of rxbuf to allow us to step back in time */ + if (strlen(ofdm->data_mode)) + ofdm->nrxbufhistory = (ofdm->np+2)*ofdm->samplesperframe; + else + ofdm->nrxbufhistory = 0; + ofdm->rxbufst = ofdm->nrxbufhistory; + ofdm->nrxbufmin = 3*ofdm->samplesperframe + 3*ofdm->samplespersymbol; + ofdm->nrxbuf = ofdm->nrxbufhistory + ofdm->nrxbufmin; + + ofdm->pilot_samples = (complex float *) MALLOC(sizeof (complex float) * ofdm->samplespersymbol); + assert(ofdm->pilot_samples != NULL); + + ofdm->rxbuf = (complex float *) MALLOC(sizeof (complex float) * ofdm->nrxbuf); + assert(ofdm->rxbuf != NULL); + for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; + + ofdm->pilots = (complex float *) MALLOC(sizeof (complex float) * (ofdm->nc + 2)); + assert(ofdm->pilots != NULL); + + /* + * rx_sym is a 2D array of variable size + * + * allocate rx_sym row storage. It is a pointer to a pointer + */ + ofdm->rx_sym = MALLOC(sizeof (complex float) * (ofdm->ns + 3)); + assert(ofdm->rx_sym != NULL); + + /* allocate rx_sym column storage */ + + for (i = 0; i < (ofdm->ns + 3); i++) { + ofdm->rx_sym[i] = (complex float *) MALLOC(sizeof(complex float) * (ofdm->nc + 2)); + assert(ofdm->rx_sym[i] != NULL); + } + + /* The rest of these are 1D arrays of variable size */ + + ofdm->rx_np = MALLOC(sizeof (complex float) * (ofdm->rowsperframe * ofdm->nc)); + assert(ofdm->rx_np != NULL); + + ofdm->rx_amp = MALLOC(sizeof (float) * (ofdm->rowsperframe * ofdm->nc)); + assert(ofdm->rx_amp != NULL); + + ofdm->aphase_est_pilot_log = MALLOC(sizeof (float) * (ofdm->rowsperframe * ofdm->nc)); + assert(ofdm->aphase_est_pilot_log != NULL); + + /* store complex BPSK pilot symbols */ + + assert(sizeof (pilotvalues) >= (ofdm->nc + 2) * sizeof (int8_t)); + + /* There are only 64 pilot values available */ + + for (i = 0; i < (ofdm->nc + 2); i++) { + ofdm->pilots[i] = ((float) pilotvalues[i]) + 0.0f * I; + } + if (ofdm->edge_pilots == 0) { + ofdm->pilots[0] = ofdm->pilots[ofdm->nc + 1] = 0.0f; + } + /* carrier tables for up and down conversion */ + + ofdm->doc = (TAU / (ofdm->fs / ofdm->rs)); + tval = ((float) ofdm->nc / 2.0f); + ofdm->tx_nlower = roundf((ofdm->tx_centre / ofdm->rs) - tval) - 1.0f; + ofdm->rx_nlower = roundf((ofdm->rx_centre / ofdm->rs) - tval) - 1.0f; + + /* Tx and Rx band pass filters */ + ofdm->tx_bpf = NULL; + if (ofdm->tx_bpf_en) + allocate_tx_bpf(ofdm); + ofdm->rx_bpf = NULL; + if (ofdm->rx_bpf_en) + allocate_rx_bpf(ofdm); + + for (i = 0; i < ofdm->nrxbuf; i++) { + ofdm->rxbuf[i] = 0.0f; + } + + for (i = 0; i < (ofdm->ns + 3); i++) { + for (j = 0; j < (ofdm->nc + 2); j++) { + ofdm->rx_sym[i][j] = 0.0f; + } + } + + for (i = 0; i < ofdm->rowsperframe * ofdm->nc; i++) { + ofdm->rx_np[i] = 0.0f; + } + + for (i = 0; i < ofdm->rowsperframe; i++) { + for (j = 0; j < ofdm->nc; j++) { + ofdm->aphase_est_pilot_log[ofdm->nc * i + j] = 0.0f; + ofdm->rx_amp[ofdm->nc * i + j] = 0.0f; + } + } + + /* default settings of options and states */ + + ofdm->verbose = 0; + ofdm->timing_en = true; + ofdm->foff_est_en = true; + ofdm->phase_est_en = true; + ofdm->phase_est_bandwidth = high_bw; + ofdm->phase_est_bandwidth_mode = AUTO_PHASE_EST; + ofdm->packetsperburst = 0; // default: never lose syn in raw data mode + + ofdm->coarse_foff_est_hz = 0.0f; + ofdm->foff_est_gain = 0.1f; + ofdm->foff_est_hz = 0.0f; + ofdm->sample_point = 0; + ofdm->timing_est = 0; + ofdm->timing_valid = 0; + ofdm->timing_mx = 0.0f; + ofdm->nin = ofdm->samplesperframe; + ofdm->mean_amp = 0.0f; + ofdm->foff_metric = 0.0f; + + ofdm->fmin = -50.0f; + ofdm->fmax = 50.0f; + + /* + * Unique Word symbol placement. Note we need to group the UW + * bits so they fit into symbols. The LDPC decoder works on + * symbols so we can't break up any symbols into UW/payload bits. + */ + ofdm->uw_ind = MALLOC(sizeof (int) * ofdm->nuwbits); + assert(ofdm->uw_ind != NULL); + + ofdm->uw_ind_sym = MALLOC(sizeof (int) * (ofdm->nuwbits / ofdm->bps)); + assert(ofdm->uw_ind_sym != NULL); + + /* + * The Unique Word is placed in different indexes based on + * the number of carriers requested. + */ + int nuwsyms = ofdm->nuwbits / ofdm->bps; + int Ndatasymsperframe = (ofdm->ns-1)*ofdm->nc; + int uw_step = ofdm->nc + 1; // default step size + int last_sym = floorf(nuwsyms*uw_step/ofdm->bps); + if (last_sym >= ofdm->np*Ndatasymsperframe) + uw_step = ofdm->nc - 1; // try a different step + last_sym = floorf(nuwsyms*uw_step/ofdm->bps); + assert(last_sym < ofdm->np*Ndatasymsperframe);// bail if we still can't fit them all + + for (i = 0, j = 0; i < nuwsyms; i++, j += ofdm->bps) { + int val = floorf((i + 1) * uw_step / ofdm->bps); + + ofdm->uw_ind_sym[i] = val; // symbol index + + for (int b = 0; b < ofdm->bps ; b++) { + ofdm->uw_ind[j + b] = (val * ofdm->bps) + b; + } + } + + // work out how many frames UW is spread over + int symsperframe = ofdm->bitsperframe / ofdm->bps; + ofdm->nuwframes = (int) ceilf((float)(ofdm->uw_ind_sym[nuwsyms-1]+1)/symsperframe); + + ofdm->tx_uw_syms = MALLOC(sizeof (complex float) * (ofdm->nuwbits / ofdm->bps)); + assert(ofdm->tx_uw_syms != NULL); + + assert(ofdm->bps == 2); // TODO generalise + for (int s = 0; s < (ofdm->nuwbits / ofdm->bps); s++) { + int dibit[2]; + dibit[1] = ofdm->tx_uw[2*s]; + dibit[0] = ofdm->tx_uw[2*s+1]; + ofdm->tx_uw_syms[s] = qpsk_mod(dibit); + } + + /* sync state machine */ + + ofdm->sync_state = search; + ofdm->last_sync_state = search; + + ofdm->uw_errors = 0; + ofdm->sync_counter = 0; + ofdm->frame_count = 0; + ofdm->sync_start = false; + ofdm->sync_end = false; + ofdm->sync_mode = autosync; + ofdm->modem_frame = 0; + + /* create the OFDM pilot time-domain waveform */ + + complex float *temp = MALLOC(sizeof (complex float) * ofdm->m); + assert(temp != NULL); + + idft(ofdm, temp, ofdm->pilots); + + /* + * pilot_samples is 160 samples, but timing and freq offset est + * were found by experiment to work better without a cyclic + * prefix, so we uses zeroes instead. + */ + + /* zero out Cyclic Prefix (CP) time-domain values */ + + for (i = 0; i < ofdm->ncp; i++) { + ofdm->pilot_samples[i] = 0.0f; + } + + /* Now copy the whole thing after the above */ + + for (i = ofdm->ncp, j = 0; j < ofdm->m; i++, j++) { + ofdm->pilot_samples[i] = temp[j]; + } + + FREE(temp); + + /* calculate constant used to normalise timing correlation maximum */ + float acc = 0.0f; + for (i = 0; i < ofdm->samplespersymbol; i++) { + acc += cnormf(ofdm->pilot_samples[i]); + } + + ofdm->timing_norm = ofdm->samplespersymbol * acc; + ofdm->clock_offset_counter = 0; + ofdm->dpsk_en = false; + + if (strlen(ofdm->data_mode)) { + ofdm->tx_preamble = (COMP*)malloc(sizeof(COMP)*ofdm->samplesperframe); + assert(ofdm->tx_preamble != NULL); + ofdm_generate_preamble(ofdm, ofdm->tx_preamble, 2); + ofdm->tx_postamble = (COMP*)malloc(sizeof(COMP)*ofdm->samplesperframe); + assert(ofdm->tx_postamble != NULL); + ofdm_generate_preamble(ofdm, ofdm->tx_postamble, 3); + } + ofdm->postambledetectoren = !strcmp(ofdm->data_mode,"burst"); + + return ofdm; /* Success */ +} + +static void allocate_tx_bpf(struct OFDM *ofdm) { + ofdm->tx_bpf = MALLOC(sizeof(struct quisk_cfFilter)); + assert(ofdm->tx_bpf != NULL); + + /* Transmit bandpass filter; complex coefficients, center frequency */ + + if (!strcmp(ofdm->mode, "700D")) { + quisk_filt_cfInit(ofdm->tx_bpf, filtP650S900, sizeof (filtP650S900) / sizeof (float)); + quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); + } + else if (!strcmp(ofdm->mode, "700E") || !strcmp(ofdm->mode, "2020") || !strcmp(ofdm->mode, "datac1")) { + quisk_filt_cfInit(ofdm->tx_bpf, filtP900S1100, sizeof (filtP900S1100) / sizeof (float)); + quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); + } + else if (!strcmp(ofdm->mode, "2020B") || !strcmp(ofdm->mode, "2020C")) { + quisk_filt_cfInit(ofdm->tx_bpf, filtP1100S1300, sizeof (filtP1100S1300) / sizeof (float)); + quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); + } + else if (!strcmp(ofdm->mode, "datac0") || !strcmp(ofdm->mode, "datac3")) { + quisk_filt_cfInit(ofdm->tx_bpf, filtP400S600, sizeof (filtP400S600) / sizeof (float)); + quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); + } + else if (!strcmp(ofdm->mode, "datac4") || !strcmp(ofdm->mode, "datac13")) { + quisk_filt_cfInit(ofdm->tx_bpf, filtP200S400, sizeof (filtP200S400) / sizeof (float)); + // centre the filter on the mean carrier freq, allows a narrower filter to be used + float tx_centre = find_carrier_centre(ofdm); + quisk_cfTune(ofdm->tx_bpf, tx_centre / ofdm->fs); + } + else assert(0); +} + +static void deallocate_tx_bpf(struct OFDM *ofdm) { + assert(ofdm->tx_bpf != NULL); + quisk_filt_destroy(ofdm->tx_bpf); + FREE(ofdm->tx_bpf); + ofdm->tx_bpf = NULL; +} + +static float find_carrier_centre(struct OFDM *ofdm) { + float rx_centre = 0.0; + for(int c=0; cnc+2; c++) + rx_centre += (ofdm->rx_nlower + c) * ofdm->doc; + return (ofdm->fs/TAU)*rx_centre/(ofdm->nc+2); +} + +static void allocate_rx_bpf(struct OFDM *ofdm) { + ofdm->rx_bpf = MALLOC(sizeof(struct quisk_cfFilter)); + assert(ofdm->rx_bpf != NULL); + + /* Receive bandpass filter; complex coefficients, center frequency */ + + if (!strcmp(ofdm->mode, "datac4") || !strcmp(ofdm->mode, "datac13")) { + quisk_filt_cfInit(ofdm->rx_bpf, filtP200S400, sizeof (filtP200S400) / sizeof (float)); + // centre the filter on the mean carrier freq, allows a narrower filter to be used + float rx_centre = find_carrier_centre(ofdm); + //fprintf(stderr, " rx_centre: %f\n", rx_centre); + quisk_cfTune(ofdm->rx_bpf, rx_centre / ofdm->fs); + } + else assert(0); +} + +static void deallocate_rx_bpf(struct OFDM *ofdm) { + assert(ofdm->rx_bpf != NULL); + quisk_filt_destroy(ofdm->rx_bpf); + FREE(ofdm->rx_bpf); + ofdm->rx_bpf = NULL; +} + +void ofdm_destroy(struct OFDM *ofdm) { + int i; + + if (strlen(ofdm->data_mode)) { + free(ofdm->tx_preamble); + free(ofdm->tx_postamble); + } + if (ofdm->tx_bpf) { + deallocate_tx_bpf(ofdm); + } + if (ofdm->rx_bpf) { + deallocate_rx_bpf(ofdm); + } + + FREE(ofdm->pilot_samples); + FREE(ofdm->rxbuf); + FREE(ofdm->pilots); + + for (i = 0; i < (ofdm->ns + 3); i++) { /* 2D array */ + FREE(ofdm->rx_sym[i]); + } + + FREE(ofdm->rx_sym); + FREE(ofdm->rx_np); + FREE(ofdm->rx_amp); + FREE(ofdm->aphase_est_pilot_log); + FREE(ofdm->tx_uw_syms); + FREE(ofdm->uw_ind); + FREE(ofdm->uw_ind_sym); + FREE(ofdm); +} + +/* + * Convert frequency domain into time domain + * + * This algorithm was optimized for speed + */ +static void idft(struct OFDM *ofdm, complex float *result, complex float *vector) { + int row, col; + + result[0] = 0.0f; + + for (col = 0; col < (ofdm->nc + 2); col++) { + result[0] += vector[col]; // cexp(j0) == 1 + } + + result[0] *= ofdm->inv_m; + + for (row = 1; row < ofdm->m; row++) { + complex float c = cmplx(ofdm->tx_nlower * ofdm->doc *row); + complex float delta = cmplx(ofdm->doc * row); + + result[row] = 0.0f; + + for (col = 0; col < (ofdm->nc + 2); col++) { + result[row] += (vector[col] * c); + c *= delta; + } + + result[row] *= ofdm->inv_m; + } +} + +/* + * Convert time domain into frequency domain + * + * This algorithm was optimized for speed + */ +static void dft(struct OFDM *ofdm, complex float *result, complex float *vector) { + int row, col; + + for (col = 0; col < (ofdm->nc + 2); col++) { + result[col] = vector[0]; // conj(cexp(j0)) == 1 + } + + for (col = 0; col < (ofdm->nc + 2); col++) { + float tval = (ofdm->rx_nlower + col) * ofdm->doc; + complex float c = cmplxconj(tval); + complex float delta = c; + + for (row = 1; row < ofdm->m; row++) { + result[col] += (vector[row] * c); + c *= delta; + } + } +} + +static complex float vector_sum(complex float *a, int num_elements) { + complex float sum = 0.0f; + int i; + + for (i = 0; i < num_elements; i++) { + sum += a[i]; + } + + return sum; +} + +/* Determine if we can use vector ops below. Only for non-embedded platforms + as double can be significantly slower on those. */ +#ifndef __EMBEDDED__ +#if __GNUC__ > 4 || \ + (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || \ + (__GNUC_MINOR__ == 6 && \ + __GNUC_PATCHLEVEL__ > 0))) +#define USE_VECTOR_OPS 1 +#elif __clang_major__ > 3 || \ + (__clang_minor__ == 3 && (__clang_minor__ > 7 || \ + (__clang_minor__ == 7 && \ + __clang_patchlevel__ > 0))) +#define USE_VECTOR_OPS 1 +#endif +#else +#include "codec2_math.h" +#endif /* __EMBEDDED__ */ + +#if USE_VECTOR_OPS +typedef float float4 __attribute__ ((vector_size (16))); +#endif /* USE_VECTOR_OPS */ + +static complex float ofdm_complex_dot_product(complex float *left, complex float *right, int numSamples) +{ + complex float result = 0; + +#if USE_VECTOR_OPS + float *leftPtr = (float*)left; + float *rightPtr = (float*)right; + float4 accumPos = { 0, 0, 0, 0 }; + float4 accumNeg = { 0, 0, 0, 0 }; + float4 accumImag = { 0, 0, 0, 0 }; + float resultReal = 0; + float resultImag = 0; + int numBlocks = numSamples >> 1; + for (int i = 0; i < numBlocks; i++) + { + /* Lay out vectors as follows: + vec1 = rx[0].a, rx[0].b, rx[1].a, rx[1].b, ... + vec2 = mvec[0].c, mvec[0].d, mvec[1].c, mvec1[1].d, ... */ + float4 vec1 = { leftPtr[0], leftPtr[1], leftPtr[2], leftPtr[3] }; + float4 vec2 = { rightPtr[0], rightPtr[1], rightPtr[2], rightPtr[3] }; + + accumPos += vec1 * vec2; + accumNeg -= vec1 * vec2; + + /* Lay out vec3 as { rx[0].b, rx[0].a, rx[1].b, rx[0].b, ... }. + Multiply vec3 by vec2 to get us bc, ad, bc, ad + and add to second accumulator. */ + float4 vec3 = { leftPtr[1], leftPtr[0], leftPtr[3], leftPtr[2] }; + accumImag += vec3 * vec2; + + /* Shift pointers forward by 4 (2 complex floats). */ + leftPtr += 4; rightPtr += 4; + } + + /* dot product: (a + bi)(c + di) = (ac - bd) + i(bc + ad) */ + resultReal = accumPos[0] + accumNeg[1] + accumPos[2] + accumNeg[3]; + resultImag = accumImag[0] + accumImag[1] + accumImag[2] + accumImag[3]; + result = resultReal + I * resultImag; + + /* Add remaining values to corr that couldn't be vectorized above. */ + for (int i = numBlocks << 1; i < numSamples; i++) + { + result += left[i] * right[i]; + } +#elif __EMBEDDED__ + float resultReal = 0, resultImag = 0; + codec2_complex_dot_product_f32((COMP*)left, (COMP*)right, numSamples, &resultReal, &resultImag); + result = resultReal + I * resultImag; +#else + for (int i = 0; i < numSamples; i++) + { + result += left[i] * right[i]; + } +#endif /* USE_VECTOR_OPS */ + + return result; +} + + +/* + * Correlates the OFDM pilot symbol samples with a window of received + * samples to determine the most likely timing offset. Combines two + * frames pilots so we need at least Nsamperframe+M+Ncp samples in rx. + * + * Can be used for acquisition (coarse timing), and fine timing. + * + * Breaks when freq offset approaches +/- symbol rate (e.g + * +/- 25 Hz for 700D). + */ +static int est_timing(struct OFDM *ofdm, complex float *rx, int length, + int fcoarse, float *timing_mx, int *timing_valid, int step) { + complex float corr_st, corr_en; + int Ncorr = length - (ofdm->samplesperframe + ofdm->samplespersymbol); + float corr[Ncorr]; + int i, j; + float acc = 0.0f; + + for (i = 0; i < length; i++) { + acc += cnormf(rx[i]); + } + + float av_level = 1.0f/(2.0f * sqrtf(ofdm->timing_norm * acc / length) + 1E-12f); + + /* precompute the freq shift multiplied by pilot samples outside of main loop */ + + PROFILE_VAR(wvecpilot); + PROFILE_SAMPLE(wvecpilot); + + complex float wvec_pilot[ofdm->samplespersymbol]; + + switch(fcoarse) { + case -40: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = conjf(ofdm_wval[j]*ofdm->pilot_samples[j]); + break; + case 0: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = conjf(ofdm->pilot_samples[j]); + break; + case 40: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = ofdm_wval[j]*conjf(ofdm->pilot_samples[j]); + break; + default: + assert(0); + } + + /* use of __REAL__ provides a speed in increase of 10ms/frame during acquisition, however complex + is fast enough for real time operation */ + +#if defined(__EMBEDDED__) && defined(__REAL__) + float rx_real[length]; + float wvec_pilot_real[ofdm->samplespersymbol]; + float wvec_pilot_imag[ofdm->samplespersymbol]; + + for (i = 0; i < length; i++) { + rx_real[i] = crealf(rx[i]); + } + + for (i = 0; i < ofdm->samplespersymbol; i++) { + wvec_pilot_real[i] = crealf(wvec_pilot[i]); + wvec_pilot_imag[i] = cimagf(wvec_pilot[i]); + } + +#endif + PROFILE_SAMPLE_AND_LOG2(wvecpilot, " wvecpilot"); + PROFILE_VAR(corr_start); + PROFILE_SAMPLE(corr_start); + + for (i = 0; i < Ncorr; i += step) { + corr_st = 0.0f; + corr_en = 0.0f; + +#ifdef __EMBEDDED__ +#ifdef __REAL__ + float re,im; + + codec2_dot_product_f32(&rx_real[i], wvec_pilot_real, ofdm->samplespersymbol, &re); + codec2_dot_product_f32(&rx_real[i], wvec_pilot_imag, ofdm->samplespersymbol, &im); + corr_st = re + im * I; + + codec2_dot_product_f32(&rx_real[i+ ofdm->samplesperframe], wvec_pilot_real, ofdm->samplespersymbol, &re); + codec2_dot_product_f32(&rx_real[i+ ofdm->samplesperframe], wvec_pilot_imag, ofdm->samplespersymbol, &im); + corr_en = re + im * I; + +#else + float re,im; + + codec2_complex_dot_product_f32((COMP*)&rx[i], (COMP*)wvec_pilot, ofdm->samplespersymbol, &re, &im); + corr_st = re + im * I; + + codec2_complex_dot_product_f32((COMP*)&rx[i+ ofdm->samplesperframe], (COMP*)wvec_pilot, ofdm->samplespersymbol, &re, &im); + corr_en = re + im * I; +#endif +#else + corr_st = ofdm_complex_dot_product(&rx[i], wvec_pilot, ofdm->samplespersymbol); + corr_en = ofdm_complex_dot_product(&rx[i + ofdm->samplesperframe], wvec_pilot, ofdm->samplespersymbol); +#endif // __EMBEDDED__ + corr[i] = (cabsf(corr_st) + cabsf(corr_en)) * av_level; + } + + PROFILE_SAMPLE_AND_LOG2(corr_start, " corr"); + + /* find the max magnitude and its index */ + + int timing_est = 0; + *timing_mx = 0.0f; + + for (i = 0; i < Ncorr; i+=step) { + if (corr[i] > *timing_mx) { + *timing_mx = corr[i]; + timing_est = i; + } + } + + // only declare timing valid if there are enough samples in rxbuf to demodulate a frame + *timing_valid = (cabsf(rx[timing_est]) > 0.0) && (*timing_mx > ofdm->timing_mx_thresh); + + if (ofdm->verbose > 2) { + fprintf(stderr, " av_level: %f max: %f timing_est: %d timing_valid: %d\n", (double) av_level, + (double) *timing_mx, timing_est, *timing_valid); + } + + return timing_est; +} + +/* + * Determines frequency offset at current timing estimate, used for + * coarse freq offset estimation during acquisition. Works up to +/- + * the symbol rate, e.g. +/- 25Hz for the FreeDV 700D configuration. + */ +static float est_freq_offset_pilot_corr(struct OFDM *ofdm, complex float *rx, int timing_est, int fcoarse) { + int st = -20; int en = 20; float foff_est = 0.0f; float Cabs_max = 0.0f; + + /* precompute the freq shift multiplied by pilot samples outside of main loop */ + + complex float wvec_pilot[ofdm->samplespersymbol]; + int j; + + switch(fcoarse) { + case -40: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = conjf(ofdm_wval[j]*ofdm->pilot_samples[j]); + break; + case 0: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = conjf(ofdm->pilot_samples[j]); + break; + case 40: + for (j = 0; j < ofdm->samplespersymbol; j++) + wvec_pilot[j] = ofdm_wval[j]*conjf(ofdm->pilot_samples[j]); + break; + default: + assert(0); + } + + // sample sum of DFT magnitude of correlated signals at each freq offset and look for peak + for (int f = st; f < en; f++) { + complex float corr_st = 0.0f; + complex float corr_en = 0.0f; + float tmp = TAU * f / ofdm->fs; + complex float delta = cmplxconj(tmp); + complex float w = cmplxconj(0.0f); + int i; + + for (i = 0; i < ofdm->samplespersymbol; i++) { + // "mix" down (correlate) the pilot sequences from frame with 0 Hz offset pilot samples + complex float csam = wvec_pilot[i] * w; + int est = timing_est + i; + + corr_st += rx[est ] * csam; + corr_en += rx[est + ofdm->samplesperframe] * csam; + w = w * delta; + } + + float Cabs = cabsf(corr_st) + cabsf(corr_en); + + if (Cabs > Cabs_max) { + Cabs_max = Cabs; + foff_est = f; + } + } + + ofdm->foff_metric = 0.0f; // not used in this version of freq est algorithm + + if (ofdm->verbose > 2) { + fprintf(stderr, "cabs_max: %f foff_est: %f\n", (double) Cabs_max, (double) foff_est); + } + + return foff_est; +} + + +/* + * ---------------------------------------------- + * ofdm_txframe - modulates one frame of symbols + * ---------------------------------------------- + */ +void ofdm_txframe(struct OFDM *ofdm, complex float *tx, complex float *tx_sym_lin) { + complex float aframe[ofdm->np * ofdm->ns][ofdm->nc + 2]; + complex float asymbol[ofdm->m]; + complex float asymbol_cp[ofdm->samplespersymbol]; + int i, j, k, m; + + /* initialize aframe to complex zero */ + + for (i = 0; i < (ofdm->np * ofdm->ns); i++) { + for (j = 0; j < (ofdm->nc + 2); j++) { + aframe[i][j] = 0.0f; + } + } + + /* + * Place symbols in multi-carrier frame with pilots + * This will place boundary values of complex zero around data + */ + int s = 0; + for (int r = 0; r < ofdm->np*ofdm->ns; r++) { + + if ((r % ofdm->ns) == 0) { + /* copy in a row of complex pilots to first row of each frame */ + for (i = 0; i < (ofdm->nc + 2); i++) { + aframe[r][i] = ofdm->pilots[i]; + } + } + else { + /* copy in the Nc complex data symbols with [0 Nc 0] or (Nc + 2) total */ + for (j = 1; j < (ofdm->nc + 1); j++) { + aframe[r][j] = tx_sym_lin[s++]; + if (ofdm->dpsk_en == true) { + aframe[r][j] *= aframe[r-1][j]; + } + } + } + } + + /* OFDM up-convert symbol by symbol so we can add CP */ + + for (i = 0, m = 0; i < (ofdm->np * ofdm->ns); i++, m += ofdm->samplespersymbol) { + idft(ofdm, asymbol, aframe[i]); + + /* Copy the last Ncp samples to the front */ + + for (j = (ofdm->m - ofdm->ncp), k = 0; j < ofdm->m; j++, k++) { + asymbol_cp[k] = asymbol[j]; + } + + /* Now copy the all samples for this row after it */ + + for (j = ofdm->ncp, k = 0; k < ofdm->m; j++, k++) { + asymbol_cp[j] = asymbol[k]; + } + + /* Now move row to the tx output */ + + for (j = 0; j < ofdm->samplespersymbol; j++) { + tx[m + j] = asymbol_cp[j]; + } + } + + size_t samplesperpacket = ofdm->np*ofdm->samplesperframe; + ofdm_hilbert_clipper(ofdm, tx, samplesperpacket); +} + + +/* Scale Tx signal and optionally apply two stage Hilbert clipper to improve PAPR */ +void ofdm_hilbert_clipper(struct OFDM *ofdm, complex float *tx, size_t n) { + + /* vanilla Tx output waveform should be about OFDM_PEAK */ + for(int i=0; iamp_scale; + + if (ofdm->clip_en) { + // this gain sets the drive into the Hilbert Clipper and sets PAPR + for(int i=0; iclip_gain1; + ofdm_clip(tx, OFDM_PEAK, n); + } + + /* BPF to remove out of band energy clipper introduces */ + if (ofdm->tx_bpf_en) { + assert(ofdm->tx_bpf != NULL); + complex float tx_filt[n]; + + quisk_ccfFilter(tx, tx_filt, n, ofdm->tx_bpf); + memmove(tx, tx_filt, n * sizeof (complex float)); + } + + /* BPF messes up peak levels, this gain gets back to approx OFDM_PEAK */ + if (ofdm->tx_bpf_en && ofdm->clip_en) + for(int i=0; iclip_gain2; + + /* a very small percentage of samples may still exceed OFDM_PEAK, in + clipped or unclipped mode. Lets remove them so we present consistent + levels to the transmitter */ + + ofdm_clip(tx, OFDM_PEAK, n); +} + + +struct OFDM_CONFIG *ofdm_get_config_param(struct OFDM *ofdm) { return &ofdm->config; } +int ofdm_get_nin(struct OFDM *ofdm) {return ofdm->nin;} +int ofdm_get_samples_per_frame(struct OFDM *ofdm) { return ofdm->samplesperframe;} +int ofdm_get_samples_per_packet(struct OFDM *ofdm) { return ofdm->samplesperframe*ofdm->np;} +int ofdm_get_max_samples_per_frame(struct OFDM *ofdm) {return ofdm->max_samplesperframe; } +int ofdm_get_bits_per_frame(struct OFDM *ofdm) {return ofdm->bitsperframe; } +int ofdm_get_bits_per_packet(struct OFDM *ofdm) {return ofdm->bitsperpacket; } +void ofdm_set_verbose(struct OFDM *ofdm, int level) { ofdm->verbose = level; } + +void ofdm_set_timing_enable(struct OFDM *ofdm, bool val) { + ofdm->timing_en = val; + + if (ofdm->timing_en == false) { + /* manually set ideal timing instant */ + + ofdm->sample_point = (ofdm->ncp - 1); + } +} + +int ofdm_get_phase_est_bandwidth_mode(struct OFDM *ofdm) { + return ofdm->phase_est_bandwidth_mode; /* int version of enum */ +} + +void ofdm_set_phase_est_bandwidth_mode(struct OFDM *ofdm, int val) { + assert((val == AUTO_PHASE_EST) || (val == LOCKED_PHASE_EST)); + ofdm->phase_est_bandwidth_mode = val; +} + +void ofdm_set_foff_est_enable(struct OFDM *ofdm, bool val) { + ofdm->foff_est_en = val; +} + +void ofdm_set_phase_est_enable(struct OFDM *ofdm, bool val) { + ofdm->phase_est_en = val; +} + +void ofdm_set_off_est_hz(struct OFDM *ofdm, float val) { + ofdm->foff_est_hz = val; +} + +void ofdm_set_tx_bpf(struct OFDM *ofdm, bool val) { + if (val == true) { + if (ofdm->tx_bpf == NULL) + allocate_tx_bpf(ofdm); + + ofdm->tx_bpf_en = true; + } + else { + if (ofdm->tx_bpf != NULL) + deallocate_tx_bpf(ofdm); + + ofdm->tx_bpf_en = false; + } +} + +void ofdm_set_dpsk(struct OFDM *ofdm, bool val) { + ofdm->dpsk_en = val; +} + +// select burst mode, and set packets per burst +void ofdm_set_packets_per_burst(struct OFDM *ofdm, int packetsperburst) { + ofdm->data_mode = "burst"; + ofdm->packetsperburst = packetsperburst; + ofdm->postambledetectoren = true; +} + +/* + * -------------------------------------- + * ofdm_mod - modulates one frame of bits + * -------------------------------------- + */ +void ofdm_mod(struct OFDM *ofdm, COMP *result, const int *tx_bits) { + int length = ofdm->bitsperpacket / ofdm->bps; + complex float *tx = (complex float *) result; // complex has same memory layout + complex float tx_sym_lin[length]; + int dibit[2]; + int s, i; + + if (ofdm->bps == 1) { + /* Here we will have Nbitsperpacket / 1 */ + + for (s = 0; s < length; s++) { + tx_sym_lin[s] = (float) (2 * tx_bits[s] - 1); + } + } else if (ofdm->bps == 2) { + /* Here we will have Nbitsperpacket / 2 */ + + for (s = 0, i = 0; i < length; s += 2, i++) { + dibit[0] = tx_bits[s + 1] & 0x1; + dibit[1] = tx_bits[s ] & 0x1; + + tx_sym_lin[i] = qpsk_mod(dibit); + } + } /* else if (ofdm->bps == 3) { } TODO */ + + ofdm_txframe(ofdm, tx, tx_sym_lin); +} + +/* + * ---------------------------------------------------------------------------------- + * ofdm_sync_search - attempts to find coarse sync parameters for modem initial sync + * ---------------------------------------------------------------------------------- + */ + +/* + * This is a wrapper to maintain the older functionality + * with an array of COMPs as input + */ +int ofdm_sync_search(struct OFDM *ofdm, COMP *rxbuf_in) { + /* + * insert latest input samples into rxbuf + * so it is primed for when we have to call ofdm_demod() + */ + + /* note can't use memcpy when src and dest overlap */ + memmove(&ofdm->rxbuf[0], &ofdm->rxbuf[ofdm->nin], + (ofdm->nrxbuf - ofdm->nin) * sizeof (complex float)); + memmove(&ofdm->rxbuf[(ofdm->nrxbuf - ofdm->nin)], + rxbuf_in, ofdm->nin * sizeof (complex float)); + + return(ofdm_sync_search_core(ofdm)); +} + +/* + * This is a wrapper to reduce memory allocated. + * This works with ofdm_demod and freedv_api. Gain is not used here. + */ +int ofdm_sync_search_shorts(struct OFDM *ofdm, short *rxbuf_in, float gain) { + int i, j; + + /* shift the buffer left based on nin */ + + memmove(&ofdm->rxbuf[0], &ofdm->rxbuf[ofdm->nin], + (ofdm->nrxbuf - ofdm->nin) * sizeof (complex float)); + + /* insert latest input samples onto tail of rxbuf */ + + for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { + ofdm->rxbuf[i] = ((float)rxbuf_in[j] / 32767.0f); + } + + return ofdm_sync_search_core(ofdm); +} + +/* Joint estimation of timing and freq used for burst data acquisition */ + +static float est_timing_and_freq(struct OFDM *ofdm, + int *t_est, float *foff_est, + complex float *rx, int Nrx, + complex float *known_samples, int Npsam, + int tstep, float fmin, float fmax, float fstep) { + int Ncorr = Nrx - Npsam + 1; + float max_corr = 0; + *t_est = 0; *foff_est = 0.0; + for (float afcoarse=fmin; afcoarse<=fmax; afcoarse += fstep) { + float w = TAU * afcoarse / ofdm->fs; + complex float mvec[Npsam]; + for(int i=0; i max_corr) { + max_corr = cabsf(corr); + *t_est = t; + *foff_est = afcoarse; + } + } + } + + /* obtain normalised real number for timing_mx */ + float mag1=0, mag2=0; + for(int i=0; iverbose > 2) { + fprintf(stderr, " t_est: %4d timing:mx: %f foff_est: %f\n", *t_est, (double)timing_mx, (double)*foff_est); + } + + return timing_mx; +} + +/* Two stage burst mode acquisition */ + +static void burst_acquisition_detector(struct OFDM *ofdm, + complex float *rx, int n, + complex float *known_sequence, + int *ct_est, float *foff_est, float *timing_mx) +{ + + float fmin, fmax, fstep; + int tstep; + + // initial search over coarse grid + tstep = 4; fstep = 5; fmin = ofdm->fmin; fmax = ofdm->fmax; + *timing_mx = est_timing_and_freq(ofdm, ct_est, foff_est, + &rx[n], 2*ofdm->samplesperframe, + known_sequence, ofdm->samplesperframe, + tstep, fmin, fmax, fstep); + + // refine estimate over finer grid + fmin = *foff_est - ceilf(fstep/2.0); fmax = *foff_est + ceilf(fstep/2.0); + int fine_st = n + *ct_est - tstep/2.0; + *timing_mx = est_timing_and_freq(ofdm, ct_est, foff_est, + &rx[fine_st], ofdm->samplesperframe + tstep, + known_sequence, ofdm->samplesperframe, + 1, fmin, fmax, 1.0); + + // refer ct_est to nominal start of frame rx[n] + *ct_est += fine_st - n; +} + +static int ofdm_sync_search_burst(struct OFDM *ofdm) { + + int st = ofdm->rxbufst + ofdm->m + ofdm->ncp + ofdm->samplesperframe; + char *pre_post = ""; + + int pre_ct_est; float pre_foff_est, pre_timing_mx; + burst_acquisition_detector(ofdm, ofdm->rxbuf, st, (complex float*)ofdm->tx_preamble, + &pre_ct_est, &pre_foff_est, &pre_timing_mx); + + int post_ct_est; float post_foff_est, post_timing_mx; + if (ofdm->postambledetectoren) + burst_acquisition_detector(ofdm, ofdm->rxbuf, st, (complex float*)ofdm->tx_postamble, + &post_ct_est, &post_foff_est, &post_timing_mx); + + int ct_est; float foff_est, timing_mx; + if (!ofdm->postambledetectoren || (pre_timing_mx > post_timing_mx)) { + timing_mx = pre_timing_mx; ct_est = pre_ct_est; foff_est = pre_foff_est; + pre_post = "pre"; + } else { + timing_mx = post_timing_mx; ct_est = post_ct_est; foff_est = post_foff_est; + pre_post = "post"; + } + + int timing_valid = timing_mx > ofdm->timing_mx_thresh; + if (timing_valid) { + if (!strcmp(pre_post, "post")) { + ofdm->post++; + // we won't be need any new samples for a while .... + ofdm->nin = 0; + // backup to first modem frame in packet + ofdm->rxbufst -= ofdm->np*ofdm->samplesperframe; + ofdm->rxbufst += ct_est; + } else { + ofdm->pre++; + // ct_est is start of preamble, so advance past that to start of first modem frame + ofdm->nin = ofdm->samplesperframe + ct_est - 1; + } + } else + ofdm->nin = ofdm->samplesperframe; + + ofdm->ct_est = ct_est; + ofdm->foff_est_hz = foff_est; + ofdm->timing_mx = timing_mx; + ofdm->timing_valid = timing_valid; + + if (ofdm->verbose > 1) { + fprintf(stderr, " ct_est: %4d nin: %4d mx: %3.2f foff_est: % 5.1f timing_valid: %d %4s\n", + ct_est, ofdm->nin, (double)timing_mx, (double)foff_est, timing_valid, pre_post); + } + + return ofdm->timing_valid; +} + +/* + * Attempts to find coarse sync parameters for modem initial sync (streaming mode) + */ +static int ofdm_sync_search_stream(struct OFDM *ofdm) { + int act_est, afcoarse; + + /* Attempt coarse timing estimate (i.e. detect start of frame) at a range of frequency offsets */ + + int st = ofdm->rxbufst + ofdm->samplesperframe + ofdm->samplespersymbol; + int en = st + 2 * ofdm->samplesperframe + ofdm->samplespersymbol; + + int fcoarse = 0; + float atiming_mx, timing_mx = 0.0f; + int ct_est = 0; + int atiming_valid, timing_valid = 0; + + PROFILE_VAR(timing_start); + PROFILE_SAMPLE(timing_start); + + for (afcoarse = -40; afcoarse <= 40; afcoarse += 40) { + act_est = est_timing(ofdm, &ofdm->rxbuf[st], (en - st), afcoarse, &atiming_mx, &atiming_valid, 2); + + if (atiming_mx > timing_mx) { + ct_est = act_est; + timing_mx = atiming_mx; + fcoarse = afcoarse; + timing_valid = atiming_valid; + } + } + + PROFILE_SAMPLE_AND_LOG2(timing_start, " timing"); + + /* refine freq est within -/+ 20 Hz window */ + + PROFILE_VAR(freq_start); + PROFILE_SAMPLE(freq_start); + + ofdm->coarse_foff_est_hz = est_freq_offset_pilot_corr(ofdm, &ofdm->rxbuf[st], ct_est, fcoarse); + ofdm->coarse_foff_est_hz += fcoarse; + + PROFILE_SAMPLE_AND_LOG2(freq_start, " freq"); + + if (ofdm->verbose > 1) { + fprintf(stderr, " ct_est: %4d foff_est: %4.1f timing_valid: %d timing_mx: %5.4f\n", + ct_est, (double) ofdm->coarse_foff_est_hz, timing_valid, + (double)timing_mx); + } + + ofdm->timing_valid = timing_valid; + if (ofdm->timing_valid != 0) { + /* potential candidate found .... */ + + /* calculate number of samples we need on next buffer to get into sync */ + + ofdm->nin = ct_est; + + /* reset modem states */ + + ofdm->sample_point = ofdm->timing_est = 0; + ofdm->foff_est_hz = ofdm->coarse_foff_est_hz; + ofdm->timing_mx = timing_mx; + } else { + ofdm->nin = ofdm->samplesperframe; + } + + ofdm->timing_mx = timing_mx; + + return ofdm->timing_valid; +} + +static int ofdm_sync_search_core(struct OFDM *ofdm) { + if (ofdm->rx_bpf_en) { + assert(ofdm->rx_bpf != NULL); + complex float *rxbuf_in = &ofdm->rxbuf[(ofdm->nrxbuf - ofdm->nin)]; + quisk_ccfFilter(rxbuf_in, rxbuf_in, ofdm->nin, ofdm->rx_bpf); + } + if (!strcmp(ofdm->data_mode, "burst")) + return ofdm_sync_search_burst(ofdm); + else + return ofdm_sync_search_stream(ofdm); +} + +/* + * ------------------------------------------ + * ofdm_demod - Demodulates one frame of bits + * ------------------------------------------ + */ + +/* + * This wrapper accepts an array of COMPs as input + */ +void ofdm_demod(struct OFDM *ofdm, int *rx_bits, COMP *rxbuf_in) { + complex float *rx = (complex float *) &rxbuf_in[0]; // complex has same memory layout + int i, j; + + /* shift the buffer left based on nin */ + for (i = 0, j = ofdm->nin; i < (ofdm->nrxbuf - ofdm->nin); i++, j++) { + ofdm->rxbuf[i] = ofdm->rxbuf[j]; + } + + /* insert latest input samples onto tail of rxbuf */ + for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { + ofdm->rxbuf[i] = rx[j]; + } + + ofdm_demod_core(ofdm, rx_bits); +} + +/* + * This is a wrapper with a real short interface to minimise allocated memory. + * This works with ofdm_demod and freedv_api. Gain is not used here. + */ +void ofdm_demod_shorts(struct OFDM *ofdm, int *rx_bits, short *rxbuf_in, float gain) { + int i, j; + + /* shift the buffer left based on nin */ + + for (i = 0, j = ofdm->nin; i < (ofdm->nrxbuf - ofdm->nin); i++, j++) { + ofdm->rxbuf[i] = ofdm->rxbuf[j]; + } + + /* insert latest input samples onto tail of rxbuf */ + for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { + ofdm->rxbuf[i] = ((float)rxbuf_in[j] / 32767.0f); + } + + ofdm_demod_core(ofdm, rx_bits); +} + +/* + * This is the rest of the function which expects that the data is + * already in ofdm->rxbuf + */ +static void ofdm_demod_core(struct OFDM *ofdm, int *rx_bits) { + int prev_timing_est = ofdm->timing_est; + int i, j, k, rr, st, en; + + if (ofdm->rx_bpf_en) { + assert(ofdm->rx_bpf != NULL); + complex float *rxbuf_in = &ofdm->rxbuf[(ofdm->nrxbuf - ofdm->nin)]; + quisk_ccfFilter(rxbuf_in, rxbuf_in, ofdm->nin, ofdm->rx_bpf); + } + + /* + * get user and calculated freq offset + */ + float woff_est = TAU * ofdm->foff_est_hz / ofdm->fs; + + /* update timing estimate ---------------------------------------------- */ + + if (ofdm->timing_en == true) { + /* update timing at start of every frame */ + + st = ofdm->rxbufst + ofdm->samplespersymbol + ofdm->samplesperframe - (int) floorf((float)ofdm->ftwindowwidth / 2) + ofdm->timing_est; + en = st + ofdm->samplesperframe - 1 + ofdm->samplespersymbol + ofdm->ftwindowwidth; + + complex float work[(en - st)]; + + /* + * Adjust for the frequency error by shifting the phase + * using a conjugate multiply + */ + for (j = 0, i = st; i < en; j++, i++) { + work[j] = ofdm->rxbuf[i] * cmplxconj(woff_est * i); + } + + int ft_est = est_timing(ofdm, work, (en - st), 0.0f, &ofdm->timing_mx, &ofdm->timing_valid, 1); + + ofdm->timing_est += ft_est - (int) ceilf((float)ofdm->ftwindowwidth / 2) + 1; + + if (ofdm->verbose > 2) { + fprintf(stderr, " ft_est: %2d timing_est: %2d sample_point: %2d\n", ft_est, ofdm->timing_est, + ofdm->sample_point); + } + + /* Black magic to keep sample_point inside cyclic prefix. Or something like that. */ + + ofdm->sample_point = max(ofdm->timing_est + 4, ofdm->sample_point); + ofdm->sample_point = min(ofdm->timing_est + ofdm->ncp-4, ofdm->sample_point); + } + + /* + * Convert the time-domain samples to the frequency-domain using the rx_sym + * data matrix. This will be Nc+2 carriers of 11 symbols. + * + * You will notice there are Nc+2 BPSK symbols for each pilot symbol, and + * that there are Nc QPSK symbols for each data symbol. + * + * XXXXXXXXXXXXXXXXX <-- Timing Slip + * PPPPPPPPPPPPPPPPPPP <-- Previous Frames Pilot + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD Ignore these past data symbols + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * PPPPPPPPPPPPPPPPPPP <-- This Frames Pilot + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD These are the current data symbols to be decoded + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * PPPPPPPPPPPPPPPPPPP <-- Next Frames Pilot + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD Ignore these next data symbols + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * DDDDDDDDDDDDDDDDD + * PPPPPPPPPPPPPPPPPPP <-- Future Frames Pilot + * XXXXXXXXXXXXXXXXX <-- Timing Slip + * + * So this algorithm will have seven data symbols and four pilot symbols to process. + * The average of the four pilot symbols is our phase estimation. + */ + for (i = 0; i < (ofdm->ns + 3); i++) { + for (j = 0; j < (ofdm->nc + 2); j++) { + ofdm->rx_sym[i][j] = 0.0f; + } + } + + /* + * "Previous" pilot symbol is one modem frame above. + */ + st = ofdm->rxbufst + ofdm->samplespersymbol + 1 + ofdm->sample_point; + en = st + ofdm->m; + + complex float work[ofdm->m]; + + /* down-convert at current timing instant------------------------------- */ + + for (k = 0, j = st; j < en; k++, j++) { + work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); + } + + /* + * Each symbol is of course ofdm->samplespersymbol samples long and + * becomes Nc+2 carriers after DFT. + * + * We put this carrier pilot symbol at the top of our matrix: + * + * 1 .................. Nc+2 + * + * +----------------------+ + * | Previous Pilot | rx_sym[0] + * +----------------------+ + * | | + * + */ + dft(ofdm, ofdm->rx_sym[0], work); + + /* + * "This" pilot comes after the extra symbol allotted at the top, and after + * the "previous" pilot and previous data symbols (let's call it, the previous + * modem frame). + * + * So we will now be starting at "this" pilot symbol, and continuing to the + * "next" pilot symbol. + * + * In this routine we also process the current data symbols. + */ + for (rr = 0; rr < (ofdm->ns + 1); rr++) { + st = ofdm->rxbufst + ofdm->samplespersymbol + ofdm->samplesperframe + (rr * ofdm->samplespersymbol) + 1 + ofdm->sample_point; + en = st + ofdm->m; + + /* down-convert at current timing instant---------------------------------- */ + + for (k = 0, j = st; j < en; k++, j++) { + work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); + } + + /* + * We put these Nc+2 carrier symbols into our matrix after the previous pilot: + * + * 1 .................. Nc+2 + * | Previous Pilot | rx_sym[0] + * +----------------------+ + * | This Pilot | rx_sym[1] + * +----------------------+ + * | Data | rx_sym[2] + * +----------------------+ + * | Data | rx_sym[3] + * +----------------------+ + * | Data | rx_sym[4] + * +----------------------+ + * | Data | rx_sym[5] + * +----------------------+ + * | Data | rx_sym[6] + * +----------------------+ + * | Data | rx_sym[7] + * +----------------------+ + * | Data | rx_sym[8] + * +----------------------+ + * | Next Pilot | rx_sym[9] + * +----------------------+ + * | | rx_sym[10] + */ + dft(ofdm, ofdm->rx_sym[rr + 1], work); + } + + /* + * OK, now we want to process to the "future" pilot symbol. This is after + * the "next" modem frame. + * + * We are ignoring the data symbols between the "next" pilot and "future" pilot. + * We only want the "future" pilot symbol, to perform the averaging of all pilots. + */ + st = ofdm->rxbufst + ofdm->samplespersymbol + (3 * ofdm->samplesperframe) + 1 + ofdm->sample_point; + en = st + ofdm->m; + + /* down-convert at current timing instant------------------------------- */ + + for (k = 0, j = st; j < en; k++, j++) { + work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); + } + + /* + * We put the future pilot after all the previous symbols in the matrix: + * + * 1 .................. Nc+2 + * + * | | rx_sym[9] + * +----------------------+ + * | Future Pilot | rx_sym[10] + * +----------------------+ + */ + dft(ofdm, ofdm->rx_sym[ofdm->ns + 2], work); + + /* + * We are finished now with the DFT and down conversion + * From here on down we are in the frequency domain + */ + + /* est freq err based on all carriers ---------------------------------- */ + + if (ofdm->foff_est_en == true) { + /* + * sym[1] is 'this' pilot symbol, sym[9] is 'next' pilot symbol. + * + * By subtracting the two averages of these pilots, we find the frequency + * by the change in phase over time. + */ + complex float freq_err_rect = + conjf(vector_sum(ofdm->rx_sym[1], ofdm->nc + 2)) * + vector_sum(ofdm->rx_sym[ofdm->ns + 1], ofdm->nc + 2); + + /* prevent instability in atan(im/re) when real part near 0 */ + + freq_err_rect += 1E-6f; + + float freq_err_hz = cargf(freq_err_rect) * ofdm->rs / (TAU * ofdm->ns); + if (ofdm->foff_limiter) { + /* optionally tame updates in low SNR channels */ + if (freq_err_hz > 1.0) freq_err_hz = 1.0; + if (freq_err_hz < -1.0) freq_err_hz = -1.0; + } + ofdm->foff_est_hz += (ofdm->foff_est_gain * freq_err_hz); + } + + /* OK - now estimate and correct pilot phase -------------------------- */ + + complex float aphase_est_pilot_rect; + float aphase_est_pilot[ofdm->nc + 2]; + float aamp_est_pilot[ofdm->nc + 2]; + + for (i = 0; i < (ofdm->nc + 2); i++) { + aphase_est_pilot[i] = 10.0f; + aamp_est_pilot[i] = 0.0f; + } + + for (i = 1; i < (ofdm->nc + 1); i++) { /* ignore first and last carrier for count */ + if (ofdm->phase_est_bandwidth == low_bw) { + complex float symbol[3]; + + /* + * Use all pilots normally, results in low SNR performance, + * but will fall over in high Doppler propagation + * + * Basically we divide the Nc+2 pilots into groups of 3 + * Then average the phase surrounding each of the data symbols. + */ + for (k = 0, j = (i - 1); k < 3; k++, j++) { + symbol[k] = ofdm->rx_sym[1][j] * conjf(ofdm->pilots[j]); /* this pilot conjugate */ + } + + aphase_est_pilot_rect = vector_sum(symbol, 3); + + for (k = 0, j = (i - 1); k < 3; k++, j++) { + symbol[k] = ofdm->rx_sym[ofdm->ns + 1][j] * conjf(ofdm->pilots[j]); /* next pilot conjugate */ + } + + aphase_est_pilot_rect += vector_sum(symbol, 3); + + /* use pilots in past and future */ + + for (k = 0, j = (i - 1); k < 3; k++, j++) { + symbol[k] = ofdm->rx_sym[0][j] * conjf(ofdm->pilots[j]); /* previous pilot */ + } + + aphase_est_pilot_rect += vector_sum(symbol, 3); + + for (k = 0, j = (i - 1); k < 3; k++, j++) { + symbol[k] = ofdm->rx_sym[ofdm->ns + 2][j] * conjf(ofdm->pilots[j]); /* future pilot */ + } + + aphase_est_pilot_rect += vector_sum(symbol, 3); + + /* amplitude is estimated over 12 pilots */ + aphase_est_pilot_rect /= 12.0f; + + aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); + aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); + } else { + assert(ofdm->phase_est_bandwidth == high_bw); + + /* + * Use only symbols at 'this' and 'next' to quickly track changes + * in phase due to high Doppler spread in propagation (no neighbor averaging). + * + * As less pilots are averaged, low SNR performance will be poorer + */ + aphase_est_pilot_rect = ofdm->rx_sym[1][i] * conjf(ofdm->pilots[i]); /* "this" pilot conjugate */ + aphase_est_pilot_rect += ofdm->rx_sym[ofdm->ns + 1][i] * conjf(ofdm->pilots[i]); /* "next" pilot conjugate */ + + /* we estimate over 2 pilots */ + aphase_est_pilot_rect /= 2.0f; + aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); + + if (ofdm->amp_est_mode == 0) { + // legacy 700D ampl est method + aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); + } else { + aamp_est_pilot[i] = cabsf(ofdm->rx_sym[1][i]) + cabsf(ofdm->rx_sym[ofdm->ns + 1][i])/2.0; + } + } + + aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); + aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); + } + + /* + * correct the phase offset using phase estimate, and demodulate + * bits, separate loop as it runs across cols (carriers) to get + * frame bit ordering correct + */ + complex float rx_corr; + int abit[2]; + int bit_index = 0; + float sum_amp = 0.0f; + + for (rr = 0; rr < ofdm->rowsperframe; rr++) { + /* + * Note the i starts with the second carrier, ends with Nc+1. + * so we ignore the first and last carriers. + * + * Also note we are using sym[2..8] or the seven data symbols. + */ + for (i = 1; i < (ofdm->nc + 1); i++) { + if (ofdm->phase_est_en == true) { + if (ofdm->dpsk_en == true) { + /* differential detection, using pilot as reference at start of frame */ + rx_corr = ofdm->rx_sym[rr + 2][i] * cmplxconj(cargf(ofdm->rx_sym[rr + 1][i])); + } else { + /* regular coherent detection */ + rx_corr = ofdm->rx_sym[rr + 2][i] * cmplxconj(aphase_est_pilot[i]); + } + } else { + rx_corr = ofdm->rx_sym[rr + 2][i]; + } + + /* + * Output complex data symbols after phase correction; + * (_np = no pilots) the pilot symbols have been removed + */ + ofdm->rx_np[(rr * ofdm->nc) + (i - 1)] = rx_corr; + + /* + * Note even though amp ests are the same for each col, + * the FEC decoder likes to have one amplitude per symbol + * so convenient to log them all + */ + ofdm->rx_amp[(rr * ofdm->nc) + (i - 1)] = aamp_est_pilot[i]; + sum_amp += aamp_est_pilot[i]; + + /* + * Note like amps in this implementation phase ests are the + * same for each col, but we log them for each symbol anyway + */ + ofdm->aphase_est_pilot_log[(rr * ofdm->nc) + (i - 1)] = aphase_est_pilot[i]; + + if (ofdm->bps == 1) { + rx_bits[bit_index++] = crealf(rx_corr) > 0.0f; + } else if (ofdm->bps == 2) { + /* + * Only one final task, decode what quadrant the phase + * is in, and return the dibits + */ + qpsk_demod(rx_corr, abit); + rx_bits[bit_index++] = abit[1]; + rx_bits[bit_index++] = abit[0]; + } + } + } + + /* update mean amplitude estimate for LDPC decoder scaling */ + + ofdm->mean_amp = 0.9f * ofdm->mean_amp + 0.1f * sum_amp / (ofdm->rowsperframe * ofdm->nc); + + /* Adjust nin to take care of sample clock offset */ + + ofdm->nin = ofdm->samplesperframe; + + if (ofdm->timing_en == true) { + ofdm->clock_offset_counter += (prev_timing_est - ofdm->timing_est); + + int thresh = ofdm->samplespersymbol / 8; + int tshift = ofdm->samplespersymbol / 4; + + if (ofdm->timing_est > thresh) { + ofdm->nin = ofdm->samplesperframe + tshift; + ofdm->timing_est -= tshift; + ofdm->sample_point -= tshift; + } else if (ofdm->timing_est < -thresh) { + ofdm->nin = ofdm->samplesperframe - tshift; + ofdm->timing_est += tshift; + ofdm->sample_point += tshift; + } + } + + // use internal rxbuf samples if they are available + int rxbufst_next = ofdm->rxbufst + ofdm->nin; + if (rxbufst_next + ofdm->nrxbufmin <= ofdm->nrxbuf) { + ofdm->rxbufst = rxbufst_next; + ofdm->nin = 0; + } +} + + +/* + * Returns an estimate of Es/No in dB - see esno_est.m for more info + */ +float ofdm_esno_est_calc(complex float *rx_sym, int nsym) { + + float sig_var = 0; + float step = 1.0f/nsym; + for (int i = 0; i < nsym; i++) + sig_var += (cnormf(rx_sym[i]) * step); + float sig_rms = sqrtf(sig_var); + + float sum_x = 0.0f; float sum_xx = 0.0f; int n = 0; + for (int i = 0; i < nsym; i++) { + complex float s = rx_sym[i]; + + if (cabsf(s) > sig_rms) { + if (fabs(crealf(s)) > fabs(cimagf(s))) { + sum_x += cimagf(s); + sum_xx += cimagf(s) * cimagf(s); + } else { + sum_x += crealf(s); + sum_xx += crealf(s) * crealf(s); + } + n++; + } + } + + float noise_var; + if (n > 1) + noise_var = (n * sum_xx - sum_x * sum_x) / (n * (n - 1)); + else + noise_var = sig_var; + noise_var *= 2.0f; + + float EsNodB = 10.0f * log10f((1E-12f + sig_var) / (1E-12f + noise_var)); + assert(isnan(EsNodB) == 0); + return EsNodB; +} + + +float ofdm_snr_from_esno(struct OFDM *ofdm, float EsNodB) { + float cyclic_power = 10.0f * log10f((float)(ofdm->ncp + ofdm->m) / ofdm->m); + return EsNodB + 10.0f * log10f((float)(ofdm->nc * ofdm->rs) / 3000.0f) + cyclic_power; +} + +/* + * state machine for 700D/2020 + */ +void ofdm_sync_state_machine_voice1(struct OFDM *ofdm, uint8_t *rx_uw) { + int i; + + State next_state = ofdm->sync_state; + + ofdm->sync_start = false; + ofdm->sync_end = false; + + if (ofdm->sync_state == search) { + if (ofdm->timing_valid) { + ofdm->frame_count = 0; + ofdm->sync_counter = 0; + ofdm->sync_start = true; + ofdm->clock_offset_counter = 0; + next_state = trial; + } + } + + if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { + ofdm->frame_count++; + + /* + * freq offset est may be too far out, and has aliases every 1/Ts, so + * we use a Unique Word to get a really solid indication of sync. + */ + ofdm->uw_errors = 0; + + for (i = 0; i < ofdm->nuwbits; i++) { + ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; + } + + /* + * during trial sync we don't tolerate errors so much, we look + * for 3 consecutive frames with low error rate to confirm sync + */ + if (ofdm->sync_state == trial) { + if (ofdm->uw_errors > 2) { + /* if we exceed thresh stay in trial sync */ + + ofdm->sync_counter++; + ofdm->frame_count = 0; + } + + if (ofdm->sync_counter == 2) { + /* if we get two bad frames drop sync and start again */ + + next_state = search; + ofdm->phase_est_bandwidth = high_bw; + } + + if (ofdm->frame_count == 4) { + /* three good frames, sync is OK! */ + + next_state = synced; + /* change to low bandwidth, but more accurate phase estimation */ + /* but only if not locked to high */ + + if (ofdm->phase_est_bandwidth_mode != LOCKED_PHASE_EST) { + ofdm->phase_est_bandwidth = low_bw; + } + } + } + + /* once we have synced up we tolerate a higher error rate to wait out fades */ + + if (ofdm->sync_state == synced) { + if (ofdm->uw_errors > 2) { + ofdm->sync_counter++; + } else { + ofdm->sync_counter = 0; + } + + if ((ofdm->sync_mode == autosync) && (ofdm->sync_counter > 6)) { + /* run of consecutive bad frames ... drop sync */ + + next_state = search; + ofdm->phase_est_bandwidth = high_bw; + } + } + } + + ofdm->last_sync_state = ofdm->sync_state; + ofdm->sync_state = next_state; +} + +/* + * data (streaming mode) state machine + */ +void ofdm_sync_state_machine_data_streaming(struct OFDM *ofdm, uint8_t *rx_uw) { + State next_state = ofdm->sync_state; + int i; + + ofdm->sync_start = ofdm->sync_end = 0; + + if (ofdm->sync_state == search) { + if (ofdm->timing_valid != 0) { + ofdm->sync_start = true; + ofdm->sync_counter = 0; + next_state = trial; + } + } + + ofdm->uw_errors = 0; + for (i = 0; i < ofdm->nuwbits; i++) { + ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; + } + + if (ofdm->sync_state == trial) { + if (ofdm->uw_errors < ofdm->bad_uw_errors) { + next_state = synced; + ofdm->packet_count = 0; + ofdm->modem_frame = ofdm->nuwframes; + } else { + ofdm->sync_counter++; + + if (ofdm->sync_counter > ofdm->np) { + next_state = search; + } + } + } + + // Note if frameperburst==0 we don't ever lose sync, which is useful for + // stream based testing or external control of state machine + + if (ofdm->sync_state == synced) { + ofdm->modem_frame++; + + if (ofdm->modem_frame >= ofdm->np) { + ofdm->modem_frame = 0; + ofdm->packet_count++; + if (ofdm->packetsperburst) { + if (ofdm->packet_count >= ofdm->packetsperburst) + next_state = search; + } + } + + } + + ofdm->last_sync_state = ofdm->sync_state; + ofdm->sync_state = next_state; +} + +/* + * data (burst mode) state machine + */ +void ofdm_sync_state_machine_data_burst(struct OFDM *ofdm, uint8_t *rx_uw) { + State next_state = ofdm->sync_state; + int i; + + ofdm->sync_start = ofdm->sync_end = 0; + + if (ofdm->sync_state == search) { + if (ofdm->timing_valid != 0) { + ofdm->sync_start = true; + ofdm->sync_counter = 0; + next_state = trial; + } + } + + ofdm->uw_errors = 0; + for (i = 0; i < ofdm->nuwbits; i++) { + ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; + } + + /* pre or post-amble has told us this is the start of the packet. Confirm we + have a valid frame by checking the UW after the modem frames containing + the UW have been received */ + if (ofdm->sync_state == trial) { + ofdm->sync_counter++; + if (ofdm->sync_counter == ofdm->nuwframes) { + if (ofdm->uw_errors < ofdm->bad_uw_errors) { + next_state = synced; + ofdm->packet_count = 0; + ofdm->modem_frame = ofdm->nuwframes; + } else { + next_state = search; + // reset rxbuf to make sure we only ever do a postamble loop once through same samples + ofdm->rxbufst = ofdm->nrxbufhistory; + for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; + ofdm->uw_fails++; + } + } + } + + if (ofdm->sync_state == synced) { + ofdm->modem_frame++; + if (ofdm->modem_frame >= ofdm->np) { + ofdm->modem_frame = 0; + ofdm->packet_count++; + if (ofdm->packetsperburst) { + if (ofdm->packet_count >= ofdm->packetsperburst) { + next_state = search; + // reset rxbuf to make sure we only ever do a postamble loop once through same samples + ofdm->rxbufst = ofdm->nrxbufhistory; + for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; + } + } + } + } + + ofdm->last_sync_state = ofdm->sync_state; + ofdm->sync_state = next_state; +} + + +void ofdm_sync_state_machine_voice2(struct OFDM *ofdm, uint8_t *rx_uw) { + int i; + + State next_state = ofdm->sync_state; + + ofdm->sync_start = false; + ofdm->sync_end = false; + + if (ofdm->sync_state == search) { + if (ofdm->timing_valid) { + ofdm->frame_count = 0; + ofdm->sync_counter = 0; + ofdm->sync_start = true; + ofdm->clock_offset_counter = 0; + next_state = trial; + } + } + + if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { + ofdm->frame_count++; + + ofdm->uw_errors = 0; + for (i = 0; i < ofdm->nuwbits; i++) { + ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; + } + + if (ofdm->sync_state == trial) { + if (ofdm->uw_errors <= ofdm->bad_uw_errors) + next_state = synced; + else + next_state = search; + } + + if (ofdm->sync_state == synced) { + if (ofdm->uw_errors > ofdm->bad_uw_errors) { + ofdm->sync_counter++; + } else { + ofdm->sync_counter = 0; + } + + if (ofdm->sync_counter == 6) { + /* run of consecutive bad frames ... drop sync */ + next_state = search; + } + } + } + + ofdm->last_sync_state = ofdm->sync_state; + ofdm->sync_state = next_state; +} + + +/* mode based dispatcher for sync state machines */ +void ofdm_sync_state_machine(struct OFDM *ofdm, uint8_t *rx_uw) { + if (!strcmp(ofdm->state_machine, "voice1")) + ofdm_sync_state_machine_voice1(ofdm, rx_uw); + if (!strcmp(ofdm->state_machine, "data")) { + if (strcmp(ofdm->data_mode,"streaming") == 0) + ofdm_sync_state_machine_data_streaming(ofdm, rx_uw); + else + ofdm_sync_state_machine_data_burst(ofdm, rx_uw); + } + if (!strcmp(ofdm->state_machine, "voice2")) + ofdm_sync_state_machine_voice2(ofdm, rx_uw); +} + + +/*---------------------------------------------------------------------------* \ + + FUNCTIONS...: ofdm_set_sync + AUTHOR......: David Rowe + DATE CREATED: May 2018 + + External control of sync state machine. + Ensure this is called in the same thread as ofdm_sync_state_machine(). + +\*---------------------------------------------------------------------------*/ + +void ofdm_set_sync(struct OFDM *ofdm, int sync_cmd) { + assert(ofdm != NULL); + + switch (sync_cmd) { + case UN_SYNC: + /* force manual unsync, which will cause sync state machine to + have re-attempt sync */ + ofdm->sync_state = search; + /* clear rxbuf so we don't try to sync on any existing OFDM signals + in buffer */ + for (int i = 0; i < ofdm->nrxbuf; i++) ofdm->rxbuf[i] = 0.0f; + break; + case AUTO_SYNC: + /* normal operating mode - sync state machine decides when to unsync */ + ofdm->sync_mode = autosync; + break; + case MANUAL_SYNC: + /* + * allow sync state machine to sync, but not to unsync, the + * operator will decide that manually + */ + ofdm->sync_mode = manualsync; + break; + default: + assert(0); + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: ofdm_get_demod_stats() + AUTHOR......: David Rowe + DATE CREATED: May 2018 + + Fills stats structure with a bunch of demod information. Call once per + packet. + +\*---------------------------------------------------------------------------*/ + +void ofdm_get_demod_stats(struct OFDM *ofdm, struct MODEM_STATS *stats, complex float *rx_syms, int Nsymsperpacket) { + stats->Nc = ofdm->nc; + assert(stats->Nc <= MODEM_STATS_NC_MAX); + + float EsNodB = ofdm_esno_est_calc(rx_syms, Nsymsperpacket); + float SNR3kdB = ofdm_snr_from_esno(ofdm, EsNodB); + + if (strlen(ofdm->data_mode)) + /* no smoothing as we have a large number of symbols per packet */ + stats->snr_est = SNR3kdB; + else { + /* in voice modes we further smooth SNR est, fast attack, slow decay */ + if (SNR3kdB > stats->snr_est) + stats->snr_est = SNR3kdB; + else + stats->snr_est = 0.9f * stats->snr_est + 0.1f * SNR3kdB; + } + stats->sync = ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)); + stats->foff = ofdm->foff_est_hz; + stats->rx_timing = ofdm->timing_est; + + float total = ofdm->frame_count * ofdm->samplesperframe; + stats->clock_offset = 0; + if (total != 0.0f) { + stats->clock_offset = ofdm->clock_offset_counter / total; + } + + stats->sync_metric = ofdm->timing_mx; + stats->pre = ofdm->pre; + stats->post = ofdm->post; + stats->uw_fails = ofdm->uw_fails; + +#ifndef __EMBEDDED__ + assert(Nsymsperpacket % ofdm->nc == 0); + int Nrowsperpacket = Nsymsperpacket/ofdm->nc; + assert(Nrowsperpacket <= MODEM_STATS_NR_MAX); + stats->nr = Nrowsperpacket; + for (int c = 0; c < ofdm->nc; c++) { + for (int r = 0; r < Nrowsperpacket; r++) { + complex float rot = rx_syms[r * ofdm->nc + c] * cmplx(ROT45); + stats->rx_symbols[r][c].real = crealf(rot); + stats->rx_symbols[r][c].imag = cimagf(rot); + } + } +#endif +} + +/* + * Assemble packet of bits from UW, payload bits, and txt bits + */ +void ofdm_assemble_qpsk_modem_packet(struct OFDM *ofdm, uint8_t modem_frame[], + uint8_t payload_bits[], uint8_t txt_bits[]) { + int s, t; + + int p = 0; + int u = 0; + + for (s = 0; s < (ofdm->bitsperpacket - ofdm->ntxtbits); s++) { + if ((u < ofdm->nuwbits) && (s == ofdm->uw_ind[u])) { + modem_frame[s] = ofdm->tx_uw[u++]; + } else { + modem_frame[s] = payload_bits[p++]; + } + } + + assert(u == ofdm->nuwbits); + assert(p == (ofdm->bitsperpacket - ofdm->nuwbits - ofdm->ntxtbits)); + + for (t = 0; s < ofdm->bitsperframe; s++, t++) { + modem_frame[s] = txt_bits[t]; + } + + assert(t == ofdm->ntxtbits); +} + +/* + * Assemble packet of symbols from UW, payload symbols, and txt bits + */ +void ofdm_assemble_qpsk_modem_packet_symbols(struct OFDM *ofdm, complex float modem_packet[], + COMP payload_syms[], uint8_t txt_bits[]) { + complex float *payload = (complex float *) &payload_syms[0]; // complex has same memory layout + int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; + int Nuwsyms = ofdm->nuwbits / ofdm->bps; + int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; + int dibit[2]; + int s, t; + + int p = 0; + int u = 0; + + assert(ofdm->bps == 2); /* this only works for QPSK at this stage (e.g. modem packet mod) */ + + for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { + if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { + modem_packet[s] = ofdm->tx_uw_syms[u++]; + } else { + modem_packet[s] = payload[p++]; + } + } + + assert(u == Nuwsyms); + assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); + + for (t = 0; s < Nsymsperpacket; s++, t += 2) { + dibit[1] = txt_bits[t ] & 0x1; + dibit[0] = txt_bits[t + 1] & 0x1; + modem_packet[s] = qpsk_mod(dibit); + } + + assert(t == ofdm->ntxtbits); +} + +/* + * Disassemble a received packet of symbols into UW bits and payload data symbols + */ +void ofdm_disassemble_qpsk_modem_packet(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], + COMP codeword_syms[], float codeword_amps[], short txt_bits[]) +{ + complex float *codeword = (complex float *) &codeword_syms[0]; // complex has same memory layout + int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; + int Nuwsyms = ofdm->nuwbits / ofdm->bps; + int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; + int dibit[2]; + int s, t; + + int p = 0; + int u = 0; + + assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ + + for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { + if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { + u++; + } else { + codeword[p] = rx_syms[s]; + codeword_amps[p] = rx_amps[s]; + p++; + } + } + + assert(u == Nuwsyms); + assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); + + for (t = 0; s < Nsymsperpacket; s++, t += 2) { + qpsk_demod(rx_syms[s], dibit); + + txt_bits[t ] = dibit[1]; + txt_bits[t + 1] = dibit[0]; + } + + assert(t == ofdm->ntxtbits); +} + +/* + * Disassemble a received packet of symbols into UW bits and payload data symbols + */ +void ofdm_disassemble_qpsk_modem_packet_with_text_amps( + struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], + COMP codeword_syms[], float codeword_amps[], short txt_bits[], + int* textIndex) +{ + complex float *codeword = (complex float *) &codeword_syms[0]; // complex has same memory layout + int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; + int Nuwsyms = ofdm->nuwbits / ofdm->bps; + int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; + int dibit[2]; + int s, t; + + int p = 0; + int u = 0; + + assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ + assert(textIndex != NULL); + + for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { + if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { + u++; + } else { + codeword[p] = rx_syms[s]; + codeword_amps[p] = rx_amps[s]; + p++; + } + } + + assert(u == Nuwsyms); + assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); + + *textIndex = s; + for (t = 0; s < Nsymsperpacket; s++, t += 2) { + qpsk_demod(rx_syms[s], dibit); + + txt_bits[t ] = dibit[1]; + txt_bits[t + 1] = dibit[0]; + } + + assert(t == ofdm->ntxtbits); +} + +/* + * Extract just the UW from the packet + */ +void ofdm_extract_uw(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], uint8_t rx_uw[]) { + int Nsymsperframe = ofdm->bitsperframe / ofdm->bps; + int Nuwsyms = ofdm->nuwbits / ofdm->bps; + int dibit[2]; + int s,u; + + assert(ofdm->bps == 2); /* this only works for QPSK at this stage (e.g. UW demod) */ + + for (s = 0, u = 0; s < Nsymsperframe*ofdm->nuwframes; s++) { + if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { + qpsk_demod(rx_syms[s], dibit); + rx_uw[2 * u ] = dibit[1]; + rx_uw[2 * u + 1] = dibit[0]; + u++; + } + } + + assert(u == Nuwsyms); +} + +/* + * Pseudo-random number generator that we can implement in C with + * identical results to Octave. Returns an unsigned int between 0 + * and 32767. Used for generating test frames of various lengths. + */ +void ofdm_rand(uint16_t r[], int n) { + ofdm_rand_seed(r, n, 1); +} + +void ofdm_rand_seed(uint16_t r[], int n, uint64_t seed) { + for (int i = 0; i < n; i++) { + seed = (1103515245l * seed + 12345) % 32768; + r[i] = seed; + } +} + +void ofdm_generate_payload_data_bits(uint8_t payload_data_bits[], int n) { + uint16_t r[n]; + int i; + + ofdm_rand(r, n); + + for (i = 0; i < n; i++) { + payload_data_bits[i] = r[i] > 16384; + } +} + +void ofdm_generate_preamble(struct OFDM *ofdm, COMP *tx_preamble, int seed) { + // need to modify bits per packet to set up pre-amble of a few modem frames in length + struct OFDM ofdm_preamble; + memcpy(&ofdm_preamble, ofdm, sizeof(struct OFDM)); + ofdm_preamble.np = 1; + ofdm_preamble.bitsperpacket = ofdm_preamble.bitsperframe; + uint16_t r[ofdm_preamble.bitsperpacket]; + ofdm_rand_seed(r, ofdm_preamble.bitsperpacket, seed); + int preamble_bits[ofdm_preamble.bitsperpacket]; + for(int i=0; i 16384; + // ensures the signal passes through hilbert clipper unchanged + ofdm_preamble.amp_scale = 1.0; + ofdm_preamble.tx_bpf_en = false; + ofdm_preamble.clip_en = false; + ofdm_mod(&ofdm_preamble, tx_preamble, preamble_bits); +} + +void ofdm_print_info(struct OFDM *ofdm) { + char *syncmode[] = { + "unsync", + "autosync", + "manualsync" + }; + char *phase_est_bandwidth_mode[] = { + "auto", + "locked_high" + }; + + fprintf(stderr, "ofdm->tx_centre = %g\n", (double)ofdm->tx_centre); + fprintf(stderr, "ofdm->rx_centre = %g\n", (double)ofdm->rx_centre); + fprintf(stderr, "ofdm->fs = %g\n", (double)ofdm->fs); + fprintf(stderr, "ofdm->ts = %g\n", (double)ofdm->ts); + fprintf(stderr, "ofdm->rs = %g\n", (double)ofdm->rs); + fprintf(stderr, "ofdm->tcp = %g\n", (double)ofdm->tcp); + fprintf(stderr, "ofdm->inv_m = %g\n", (double)ofdm->inv_m); + fprintf(stderr, "ofdm->tx_nlower = %g\n", (double)ofdm->tx_nlower); + fprintf(stderr, "ofdm->rx_nlower = %g\n", (double)ofdm->rx_nlower); + fprintf(stderr, "ofdm->doc = %g\n", (double)ofdm->doc); + fprintf(stderr, "ofdm->timing_mx_thresh = %g\n", (double)ofdm->timing_mx_thresh); + fprintf(stderr, "ofdm->nc = %d\n", ofdm->nc); + fprintf(stderr, "ofdm->np = %d\n", ofdm->np); + fprintf(stderr, "ofdm->ns = %d\n", ofdm->ns); + fprintf(stderr, "ofdm->bps = %d\n", ofdm->bps); + fprintf(stderr, "ofdm->m = %d\n", ofdm->m); + fprintf(stderr, "ofdm->ncp = %d\n", ofdm->ncp); + fprintf(stderr, "ofdm->ftwindowwidth = %d\n", ofdm->ftwindowwidth); + fprintf(stderr, "ofdm->bitsperframe = %d\n", ofdm->bitsperframe); + fprintf(stderr, "ofdm->bitsperpacket = %d\n", ofdm->bitsperpacket); + fprintf(stderr, "ofdm->rowsperframe = %d\n", ofdm->rowsperframe); + fprintf(stderr, "ofdm->samplespersymbol = %d\n", ofdm->samplespersymbol); + fprintf(stderr, "ofdm->samplesperframe = %d\n", ofdm->samplesperframe); + fprintf(stderr, "ofdm->max_samplesperframe = %d\n", ofdm->max_samplesperframe); + fprintf(stderr, "ofdm->nrxbuf = %d\n", ofdm->nrxbuf); + fprintf(stderr, "ofdm->ntxtbits = %d\n", ofdm->ntxtbits); + fprintf(stderr, "ofdm->nuwbits = %d\n", ofdm->nuwbits); + fprintf(stderr, "ofdm->foff_est_gain = %g\n", (double)ofdm->foff_est_gain); + fprintf(stderr, "ofdm->foff_est_hz = %g\n", (double)ofdm->foff_est_hz); + fprintf(stderr, "ofdm->timing_mx = %g\n", (double)ofdm->timing_mx); + fprintf(stderr, "ofdm->coarse_foff_est_hz = %g\n", (double)ofdm->coarse_foff_est_hz); + fprintf(stderr, "ofdm->timing_norm = %g\n", (double)ofdm->timing_norm); + fprintf(stderr, "ofdm->mean_amp = %g\n", (double)ofdm->mean_amp); + fprintf(stderr, "ofdm->clock_offset_counter = %d\n", ofdm->clock_offset_counter); + fprintf(stderr, "ofdm->verbose = %d\n", ofdm->verbose); + fprintf(stderr, "ofdm->sample_point = %d\n", ofdm->sample_point); + fprintf(stderr, "ofdm->timing_est = %d\n", ofdm->timing_est); + fprintf(stderr, "ofdm->timing_valid = %d\n", ofdm->timing_valid); + fprintf(stderr, "ofdm->nin = %d\n", ofdm->nin); + fprintf(stderr, "ofdm->uw_errors = %d\n", ofdm->uw_errors); + fprintf(stderr, "ofdm->sync_counter = %d\n", ofdm->sync_counter); + fprintf(stderr, "ofdm->frame_count = %d\n", ofdm->frame_count); + fprintf(stderr, "ofdm->sync_start = %s\n", ofdm->sync_start ? "true" : "false"); + fprintf(stderr, "ofdm->sync_end = %s\n", ofdm->sync_end ? "true" : "false"); + fprintf(stderr, "ofdm->sync_mode = %s\n", syncmode[ofdm->sync_mode]); + fprintf(stderr, "ofdm->timing_en = %s\n", ofdm->timing_en ? "true" : "false"); + fprintf(stderr, "ofdm->foff_est_en = %s\n", ofdm->foff_est_en ? "true" : "false"); + fprintf(stderr, "ofdm->phase_est_en = %s\n", ofdm->phase_est_en ? "true" : "false"); + fprintf(stderr, "ofdm->tx_bpf_en = %s\n", ofdm->tx_bpf_en ? "true" : "false"); + fprintf(stderr, "ofdm->rx_bpf_en = %s\n", ofdm->rx_bpf_en ? "true" : "false"); + fprintf(stderr, "ofdm->dpsk_en = %s\n", ofdm->dpsk_en ? "true" : "false"); + fprintf(stderr, "ofdm->phase_est_bandwidth_mode = %s\n", phase_est_bandwidth_mode[ofdm->phase_est_bandwidth_mode]); +} + +// hilbert clipper +void ofdm_clip(complex float tx[], float clip_thresh, int n) { + complex float sam; + float mag; + int i; + + for(i=0; i clip_thresh) { + sam *= clip_thresh/mag; + } + tx[i] = sam; + } + } diff --git a/src/ofdm_demod.c b/src/ofdm_demod.c new file mode 100644 index 0000000..babe91e --- /dev/null +++ b/src/ofdm_demod.c @@ -0,0 +1,692 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: ofdm_demod.c + AUTHOR......: David Rowe + DATE CREATED: Mar 2018 + + Demodulates an input file of raw file (8kHz, 16 bit shorts) OFDM modem + samples. Runs in uncoded or LDPC coded modes. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + */ + +#define OPTPARSE_IMPLEMENTATION +#define OPTPARSE_API static +#include "optparse.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "octave.h" +#include "mpdecode_core.h" +#include "ldpc_codes.h" +#include "gp_interleaver.h" +#include "interldpc.h" + +#define IS_DIR_SEPARATOR(c) ((c) == '/') + +#define NFRAMES 100 /* just log the first 100 frames */ +#define NDISCARD 20 /* BER2 measure discards first 20 frames */ +#define FS 8000.0f + +static const char *progname; + +static const char *statemode[] = { + "search", + "trial", + "synced" +}; + +void opt_help() { + fprintf(stderr, "\nusage: %s [options]\n\n", progname); + fprintf(stderr, " Default output file format is one byte per bit hard decision\n\n"); + fprintf(stderr, " --in filename Name of InputModemRawFile\n"); + fprintf(stderr, " --out filename Name of OutputOneCharPerBitFile\n"); + fprintf(stderr, " --log filename Octave log file for testing\n"); + fprintf(stderr, " --mode modeName Predefined mode e.g. 700D|2020|datac1 etc\n"); + fprintf(stderr, " --nc [17..62] Number of Carriers (17 default, 62 max)\n"); + fprintf(stderr, " --np Number of packets\n"); + fprintf(stderr, " --ns Nframes One pilot every ns symbols (8 default)\n"); + fprintf(stderr, " --tcp Nsecs Cyclic Prefix Duration (.002 default)\n"); + fprintf(stderr, " --ts Nsecs Symbol Duration (.018 default)\n"); + fprintf(stderr, " --bandwidth [0|1] Select phase est bw mode AUTO low or high (0) or LOCKED high (1) (default 0)\n"); + fprintf(stderr, " Must also specify --ldpc option\n"); + fprintf(stderr, " --tx_freq freq Set modulation TX centre Frequency (1500.0 default)\n"); + fprintf(stderr, " --rx_freq freq Set modulation RX centre Frequency (1500.0 default)\n"); + fprintf(stderr, " --verbose [1|2|3] Verbose output level to stderr (default off)\n"); + fprintf(stderr, " --testframes Receive test frames and count errors\n"); + fprintf(stderr, " --ldpc Run LDPC decoder\n"); + fprintf(stderr, "\n"); + fprintf(stderr, " --start_secs secs Number of seconds delay before we start to demod\n"); + fprintf(stderr, " --len_secs secs Number of seconds to run demod\n"); + fprintf(stderr, " --skip_secs timeSecs At timeSecs introduce a large timing error by skipping half a frame of samples\n"); + fprintf(stderr, " --packetsperburst p use burst mode; number of packets we expect per burst\n"); + fprintf(stderr, "\n"); + + exit(-1); +} + +int main(int argc, char *argv[]) { + int i, j, opt, val; + + char *pn = argv[0] + strlen(argv[0]); + + while (pn != argv[0] && !IS_DIR_SEPARATOR(pn[-1])) + --pn; + + progname = pn; + + /* Turn off stream buffering */ + + setvbuf(stdin, NULL, _IONBF, BUFSIZ); + setvbuf(stdout, NULL, _IONBF, BUFSIZ); + + FILE *fin = stdin; + FILE *fout = stdout; + FILE *foct = NULL; + + char *fin_name = NULL; + char *fout_name = NULL; + char *log_name = NULL; + + int logframes = NFRAMES; + int verbose = 0; + int phase_est_bandwidth_mode = AUTO_PHASE_EST; + int ldpc_en = 0; + int Ndatabitsperpacket = 0; + int packetsperburst = 0; + + bool testframes = false; + bool input_specified = false; + bool output_specified = false; + bool log_specified = false; + bool log_active = false; + + float time_to_sync = -1; + float start_secs = 0.0; + float len_secs = 0.0; + float skip_secs = 0.0; + + /* set up the default modem config */ + struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); + assert(ofdm_config != NULL); + char mode[32] = "700D"; + ofdm_init_mode(mode, ofdm_config); + + struct optparse options; + struct optparse_long longopts[] = { + {"in", 'a', OPTPARSE_REQUIRED}, + {"out", 'b', OPTPARSE_REQUIRED}, + {"log", 'c', OPTPARSE_REQUIRED}, + {"testframes", 'd', OPTPARSE_NONE}, + {"bandwidth", 'o', OPTPARSE_REQUIRED}, + {"tx_freq", 'f', OPTPARSE_REQUIRED}, + {"rx_freq", 'g', OPTPARSE_REQUIRED}, + {"verbose", 'v', OPTPARSE_REQUIRED}, + {"ldpc", 'i', OPTPARSE_NONE}, + {"nc", 'j', OPTPARSE_REQUIRED}, + {"tcp", 'k', OPTPARSE_REQUIRED}, + {"ts", 'l', OPTPARSE_REQUIRED}, + {"ns", 'm', OPTPARSE_REQUIRED}, + {"np", 'n', OPTPARSE_REQUIRED}, + {"start_secs", 'x', OPTPARSE_REQUIRED}, + {"len_secs", 'y', OPTPARSE_REQUIRED}, + {"skip_secs", 'z', OPTPARSE_REQUIRED}, + {"mode", 'r', OPTPARSE_REQUIRED}, + {"packetsperburst", 'e', OPTPARSE_REQUIRED}, + {0, 0, 0} + }; + + optparse_init(&options, argv); + + while ((opt = optparse_long(&options, longopts, NULL)) != -1) { + switch (opt) { + case '?': + opt_help(); + case 'a': + fin_name = options.optarg; + input_specified = true; + break; + case 'b': + fout_name = options.optarg; + output_specified = true; + break; + case 'c': + log_name = options.optarg; + log_specified = true; + log_active = true; + break; + case 'd': + testframes = true; + break; + case 'e': + packetsperburst = atoi(options.optarg); + fprintf(stderr, "burst data mode!\n"); + break; + case 'i': + ldpc_en = 1; + break; + case 'f': + ofdm_config->tx_centre = atof(options.optarg); + break; + case 'g': + ofdm_config->rx_centre = atof(options.optarg); + break; + case 'j': + val = atoi(options.optarg); + + if (val > 62 || val < 17) { + opt_help(); + } else { + ofdm_config->nc = val; + } + break; + case 'k': + ofdm_config->tcp = atof(options.optarg); + break; + case 'l': + ofdm_config->ts = atof(options.optarg); + ofdm_config->rs = 1.0f/ofdm_config->ts; + break; + case 'm': + ofdm_config->ns = atoi(options.optarg); + break; + case 'n': + ofdm_config->np = atoi(options.optarg); + break; + case 'o': + phase_est_bandwidth_mode = atoi(options.optarg); + break; + case 'r': + strcpy(mode, options.optarg); + ofdm_init_mode(mode, ofdm_config); + break; + case 'v': + verbose = atoi(options.optarg); + if (verbose < 0 || verbose > 3) + verbose = 0; + break; + case 'x': + start_secs = atoi(options.optarg); + break; + case 'y': + len_secs = atoi(options.optarg); + break; + case 'z': + skip_secs = atoi(options.optarg); + break; + + } + } + + /* Print remaining arguments to give user a hint */ + char *arg; + + while ((arg = optparse_arg(&options))) + fprintf(stderr, "%s\n", arg); + + if (input_specified == true) { + if ((fin = fopen(fin_name, "rb")) == NULL) { + fprintf(stderr, "Error opening input modem sample file: %s\n", fin_name); + exit(-1); + } + } + + if (output_specified == true) { + if ((fout = fopen(fout_name, "wb")) == NULL) { + fprintf(stderr, "Error opening output file: %s\n", fout_name); + exit(-1); + } + } + + if (log_specified == true) { + if ((foct = fopen(log_name, "wt")) == NULL) { + fprintf(stderr, "Error opening Octave output file: %s\n", log_name); + exit(-1); + } + } + + /* Create OFDM modem ----------------------------------------------------*/ + + struct OFDM *ofdm = ofdm_create(ofdm_config); + assert(ofdm != NULL); + free(ofdm_config); + + ofdm_set_phase_est_bandwidth_mode(ofdm, phase_est_bandwidth_mode); + // default to one packet per burst for burst mode + if (packetsperburst) { + ofdm_set_packets_per_burst(ofdm, packetsperburst); + } + + /* Get a copy of the actual modem config (ofdm_create() fills in more parameters) */ + ofdm_config = ofdm_get_config_param(ofdm); + + int ofdm_bitsperframe = ofdm_get_bits_per_frame(ofdm); + int ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); + int ofdm_nuwbits = ofdm_config->nuwbits; + int ofdm_ntxtbits = ofdm_config->txtbits; + + float phase_est_pilot_log[ofdm_rowsperframe * NFRAMES][ofdm_config->nc]; + COMP rx_np_log[ofdm_rowsperframe * ofdm_config->nc * NFRAMES]; + float rx_amp_log[ofdm_rowsperframe * ofdm_config->nc * NFRAMES]; + float foff_hz_log[NFRAMES]; + int timing_est_log[NFRAMES]; + + /* zero out the log arrays in case we don't run for NFRAMES and fill them with data */ + + for (i = 0; i < (ofdm_rowsperframe * NFRAMES); i++) { + for (j = 0; j < ofdm_config->nc; j++) { + phase_est_pilot_log[i][j] = 0.0f; + } + } + + for (i = 0; i < (ofdm_rowsperframe * ofdm_config->nc * NFRAMES); i++) { + rx_np_log[i].real = 0.0f; + rx_np_log[i].imag = 0.0f; + rx_amp_log[i] = 0.0f; + } + + for (i = 0; i < NFRAMES; i++) { + foff_hz_log[i] = 0.0f; + timing_est_log[i] = 0.0f; + } + + /* some useful constants */ + + int Nbitsperframe = ofdm_bitsperframe; + int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); + int Nsymsperframe = Nbitsperframe / ofdm_config->bps; + int Nsymsperpacket = Nbitsperpacket / ofdm_config->bps; + int Nmaxsamperframe = ofdm_get_max_samples_per_frame(ofdm); + int Npayloadbitsperframe = ofdm_bitsperframe; + int Npayloadbitsperpacket = Nbitsperpacket - ofdm_nuwbits - ofdm_ntxtbits; + int Npayloadsymsperframe = Npayloadbitsperframe/ofdm_config->bps; + int Npayloadsymsperpacket = Npayloadbitsperpacket/ofdm_config->bps; + + /* Set up LPDC codes */ + + struct LDPC ldpc; + COMP payload_syms[Npayloadsymsperpacket]; + float payload_amps[Npayloadsymsperpacket]; + + if (ldpc_en) { + ldpc_codes_setup(&ldpc, ofdm->codename); + ldpc_mode_specific_setup(ofdm, &ldpc); + Ndatabitsperpacket = ldpc.data_bits_per_frame; + + if (verbose > 1) { + fprintf(stderr, "using: %s\n", ofdm->codename); + fprintf(stderr, "LDPC codeword data bits = %d\n", ldpc.ldpc_data_bits_per_frame); + fprintf(stderr, "LDPC codeword total bits = %d\n", ldpc.ldpc_coded_bits_per_frame); + fprintf(stderr, "LDPC codeword data bits used = %d\n", Ndatabitsperpacket); + fprintf(stderr, "LDPC codeword total length in modem packet = %d\n", Npayloadbitsperpacket); + } + } + + if (verbose != 0) { + ofdm_set_verbose(ofdm, verbose); + } + + complex float rx_syms[Nsymsperpacket]; float rx_amps[Nsymsperpacket]; + for(int i=0; idata_mode) == 0) + Ndiscard = NDISCARD; /* backwards compatibility with 700D/2020 */ + else + Ndiscard = 1; /* much longer packets, so discard thresh smaller */ + + float EsNo = 3.0f; + + if (verbose == 2) + fprintf(stderr, "Warning EsNo: %f hard coded\n", EsNo); + + /* More logging */ + COMP payload_syms_log[NFRAMES][Npayloadsymsperpacket]; + float payload_amps_log[NFRAMES][Npayloadsymsperpacket]; + + for (i = 0; i < NFRAMES; i++) { + for (j = 0; j < Npayloadsymsperframe; j++) { + payload_syms_log[i][j].real = 0.0f; + payload_syms_log[i][j].imag = 0.0f; + payload_amps_log[i][j] = 0.0f; + } + } + + int nin_frame = ofdm_get_nin(ofdm); + + int f = 0; + int finish = 0; + + if (start_secs != 0.0) { + int offset = start_secs*FS*sizeof(short); + fseek(fin, offset, SEEK_SET); + } + + while ((fread(rx_scaled, sizeof (short), nin_frame, fin) == nin_frame) && !finish) { + + if (verbose >= 2) + fprintf(stderr, "%3d nin: %4d st: %-6s ", f, nin_frame,statemode[ofdm->sync_state]); + bool log_payload_syms = false; + Nerrs_raw = Nerrs_coded = 0; + + /* demod */ + + if (ofdm->sync_state == search) { + ofdm_sync_search_shorts(ofdm, rx_scaled, (ofdm->amp_scale / 2.0f)); + } + + if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { + log_payload_syms = true; + + /* demod the latest modem frame */ + ofdm_demod_shorts(ofdm, rx_bits, rx_scaled, (ofdm->amp_scale / 2.0f)); + + /* accumulate a buffer of data symbols for this packet */ + for(i=0; irx_np, sizeof(complex float)*Nsymsperframe); + memcpy(&rx_amps[Nsymsperpacket-Nsymsperframe], ofdm->rx_amp, sizeof(float)*Nsymsperframe); + + /* look for UW as frames enter packet buffer, note UW may span several modem frames */ + int st_uw = Nsymsperpacket - ofdm->nuwframes*Nsymsperframe; + ofdm_extract_uw(ofdm, &rx_syms[st_uw], &rx_amps[st_uw], rx_uw); + + if (ofdm->modem_frame == (ofdm->np-1)) { + + /* we have received enough frames to make a complete packet .... */ + + /* extract payload symbols from packet */ + ofdm_disassemble_qpsk_modem_packet(ofdm, rx_syms, rx_amps, payload_syms, payload_amps, txt_bits); + + if (ldpc_en) { + assert((ofdm_nuwbits + ofdm_ntxtbits + Npayloadbitsperpacket) <= Nbitsperpacket); + + /* run de-interleaver */ + COMP payload_syms_de[Npayloadsymsperpacket]; + float payload_amps_de[Npayloadsymsperpacket]; + gp_deinterleave_comp(payload_syms_de, payload_syms, Npayloadsymsperpacket); + gp_deinterleave_float(payload_amps_de, payload_amps, Npayloadsymsperpacket); + + float llr[Npayloadbitsperpacket]; + uint8_t out_char[Npayloadbitsperpacket]; + + if (testframes == true) { + Nerrs_raw = count_uncoded_errors(&ldpc, ofdm_config, payload_syms_de,0); Terrs += Nerrs_raw; + Tbits += Npayloadbitsperpacket; /* not counting errors in txt bits */ + } + + symbols_to_llrs(llr, payload_syms_de, payload_amps_de, + EsNo, ofdm->mean_amp, Npayloadsymsperpacket); + + assert(Ndatabitsperpacket == ldpc.data_bits_per_frame); + ldpc_decode_frame(&ldpc, &parityCheckCount, &iter, out_char, llr); + + if (testframes == true) { + /* construct payload data bits */ + uint8_t payload_data_bits[Ndatabitsperpacket]; + ofdm_generate_payload_data_bits(payload_data_bits, Ndatabitsperpacket); + count_errors_protection_mode(ldpc.protection_mode, &Nerrs_coded, &Ncoded, + payload_data_bits, out_char, Ndatabitsperpacket); + Terrs_coded += Nerrs_coded; + Tbits_coded += Ncoded; + if (Nerrs_coded) Tper++; + } + + fwrite(out_char, sizeof (char), Ndatabitsperpacket, fout); + } else { + /* simple hard decision output of payload data bits */ + assert(Npayloadsymsperpacket*ofdm_config->bps == Npayloadbitsperpacket); + for (i = 0; i < Npayloadsymsperpacket; i++) { + int bits[2]; + complex float s = payload_syms[i].real + I * payload_syms[i].imag; + qpsk_demod(s, bits); + rx_bits_char[ofdm_config->bps * i] = bits[1]; + rx_bits_char[ofdm_config->bps * i + 1] = bits[0]; + } + + fwrite(rx_bits_char, sizeof (uint8_t), Npayloadbitsperpacket, fout); + } + + /* optional error counting on uncoded data in non-LDPC testframe mode */ + + if ((testframes == true) && (ldpc_en == 0)) { + /* build up a test frame consisting of unique word, txt bits, and psuedo-random + uncoded payload bits. The psuedo-random generator is the same as Octave so + it can interoperate with ofdm_tx.m/ofdm_rx.m */ + + uint8_t payload_bits[Npayloadbitsperpacket]; + uint8_t txt_bits[ofdm_ntxtbits]; memset(txt_bits, 0, ofdm_ntxtbits); + uint8_t tx_bits[Nbitsperpacket]; + ofdm_generate_payload_data_bits(payload_bits, Npayloadbitsperpacket); + ofdm_assemble_qpsk_modem_packet(ofdm, tx_bits, payload_bits, txt_bits); + + /* count errors across UW, payload, txt bits */ + int rx_bits[Nbitsperpacket]; + int dibit[2]; + assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ + for(int s=0; s= Ndiscard) { + Terrs2 += Nerrs_raw; + Tbits2 += Nbitsperpacket; + } + } + packet_count++; + + float EsNodB = ofdm_esno_est_calc(rx_syms, Npayloadsymsperpacket); + SNR3kdB = ofdm_snr_from_esno(ofdm, EsNodB); sum_SNR3kdB += SNR3kdB; + } /* complete packet */ + + frame_count++; + } + + /* per-frame modem processing */ + + nin_frame = ofdm_get_nin(ofdm); + ofdm_sync_state_machine(ofdm, rx_uw); + + /* act on any events returned by state machine */ + + if (!strcmp(ofdm->data_mode, "streaming") && ofdm->sync_start ) { + Terrs = Tbits = Terrs2 = Tbits2 = Terrs_coded = Tbits_coded = frame_count = packet_count = 0; + Nerrs_raw = 0; + Nerrs_coded = 0; + } + + if (verbose >= 2) { + if (ofdm->last_sync_state != search) { + if ((ofdm->modem_frame == 0) && (ofdm->last_sync_state != trial)) { + /* weve just received a complete packet, so print all stats */ + fprintf(stderr, "euw: %2d %1d mf: %2d f: %5.1f pbw: %d eraw: %3d ecdd: %3d iter: %3d pcc: %3d snr: %5.2f\n", + ofdm->uw_errors, + ofdm->sync_counter, + ofdm->modem_frame, + ofdm->foff_est_hz, + ofdm->phase_est_bandwidth, + Nerrs_raw, Nerrs_coded, iter, parityCheckCount, SNR3kdB); + } else { + /* weve just received a modem frame, abbreviated stats */ + fprintf(stderr, "euw: %2d %1d mf: %2d f: %5.1f pbw: %d\n", + ofdm->uw_errors, + ofdm->sync_counter, + ofdm->modem_frame, + ofdm->foff_est_hz, + ofdm->phase_est_bandwidth); + } + } + + /* detect a successful sync for time to sync tests */ + if ((time_to_sync < 0) && ((ofdm->sync_state == synced) || (ofdm->sync_state == trial))) + if ((parityCheckCount > 80) && (iter != 100)) + time_to_sync = (float)(f+1)*ofdm_get_samples_per_frame(ofdm)/FS; + + } + + /* optional logging of states */ + + if (log_active == true) { + /* note corrected phase (rx no phase) is one big linear array for frame */ + + for (i = 0; i < ofdm_rowsperframe * ofdm_config->nc; i++) { + rx_np_log[ofdm_rowsperframe * ofdm_config->nc * f + i].real = crealf(ofdm->rx_np[i]); + rx_np_log[ofdm_rowsperframe * ofdm_config->nc * f + i].imag = cimagf(ofdm->rx_np[i]); + } + + /* note phase/amp ests the same for each col, but check them all anyway */ + + for (i = 0; i < ofdm_rowsperframe; i++) { + for (j = 0; j < ofdm_config->nc; j++) { + phase_est_pilot_log[ofdm_rowsperframe * f + i][j] = ofdm->aphase_est_pilot_log[ofdm_config->nc * i + j]; + rx_amp_log[ofdm_rowsperframe * ofdm_config->nc * f + ofdm_config->nc * i + j] = ofdm->rx_amp[ofdm_config->nc * i + j]; + } + } + + foff_hz_log[f] = ofdm->foff_est_hz; + timing_est_log[f] = ofdm->timing_est + 1; /* offset by 1 to match Octave */ + if (log_payload_syms == true) { + for (i = 0; i < Npayloadsymsperpacket; i++) { + payload_syms_log[f][i].real = payload_syms[i].real; + payload_syms_log[f][i].imag = payload_syms[i].imag; + payload_amps_log[f][i] = payload_amps[i]; + } + } + + if (f == (logframes - 1)) + log_active = false; + } + + if (len_secs != 0.0) { + float secs = (float)f*ofdm_get_samples_per_frame(ofdm)/FS; + if (secs >= len_secs) finish = 1; + } + + if (skip_secs != 0.0) { + /* big nasty timing error */ + float secs = (float)f*ofdm_get_samples_per_frame(ofdm)/FS; + if (secs >= skip_secs) { + assert(fread(rx_scaled, sizeof (short), nin_frame/2, fin) == nin_frame/2); + fprintf(stderr," Skip! Just introduced a nasty big timing slip\n"); + skip_secs = 0.0; /* make sure we just introduce one error */ + } + } + + f++; + } + + if (input_specified == true) + fclose(fin); + + if (output_specified == true) + fclose(fout); + + /* optionally dump Octave files */ + + if (log_specified == true) { + octave_save_float(foct, "phase_est_pilot_log_c", (float*) phase_est_pilot_log, ofdm_rowsperframe*NFRAMES, ofdm_config->nc, ofdm_config->nc); + octave_save_complex(foct, "rx_np_log_c", (COMP*) rx_np_log, 1, ofdm_rowsperframe * ofdm_config->nc*NFRAMES, ofdm_rowsperframe * ofdm_config->nc * NFRAMES); + octave_save_float(foct, "rx_amp_log_c", (float*) rx_amp_log, 1, ofdm_rowsperframe * ofdm_config->nc*NFRAMES, ofdm_rowsperframe * ofdm_config->nc * NFRAMES); + octave_save_float(foct, "foff_hz_log_c", foff_hz_log, NFRAMES, 1, 1); + octave_save_int(foct, "timing_est_log_c", timing_est_log, NFRAMES, 1); + octave_save_complex(foct, "payload_syms_log_c", (COMP*) payload_syms_log, NFRAMES, Npayloadsymsperpacket, Npayloadsymsperpacket); + octave_save_float(foct, "payload_amps_log_c", (float*) payload_amps_log, NFRAMES, Npayloadsymsperpacket, Npayloadsymsperpacket); + + fclose(foct); + } + + if ((strlen(ofdm->data_mode) == 0) && (verbose == 2)) + fprintf(stderr, "time_to_sync: %f\n", time_to_sync); + + int ret = 0; + if (testframes == true) { + float uncoded_ber = (float) Terrs / Tbits; + float coded_ber = 0.0; + + if (verbose != 0) { + fprintf(stderr, "BER......: %5.4f Tbits: %5d Terrs: %5d Tpackets: %5d SNR3kdB: %5.2f\n", + uncoded_ber, Tbits, Terrs, packet_count, sum_SNR3kdB/packet_count); + + if ((ldpc_en == 0) && (packet_count > Ndiscard)) { + fprintf(stderr, "BER2.....: %5.4f Tbits: %5d Terrs: %5d\n", (float) Terrs2 / Tbits2, Tbits2, Terrs2); + } + } + + /* set return code for Ctest, 1 for fail */ + + if (ldpc_en) { + coded_ber = (float) Terrs_coded / Tbits_coded; + + if (verbose != 0) { + fprintf(stderr, "Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", coded_ber, Tbits_coded, Terrs_coded); + fprintf(stderr, "Coded PER: %5.4f Tpkts: %5d Tpers: %5d Thruput: %5d\n", + (float)Tper/packet_count, packet_count, Tper, packet_count - Tper); + } + if ((Tbits_coded == 0) || (coded_ber >= 0.01f)) + ret = 1; + } + + if ((Tbits == 0) || (uncoded_ber >= 0.1f)) + ret = 1; + } + + if (strlen(ofdm->data_mode)) { + fprintf(stderr, "Npre.....: %6d Npost: %5d uw_fails: %2d\n", ofdm->pre, ofdm->post, ofdm->uw_fails); + } + + ofdm_destroy(ofdm); + + return ret; +} diff --git a/src/ofdm_get_test_bits.c b/src/ofdm_get_test_bits.c new file mode 100644 index 0000000..c13c410 --- /dev/null +++ b/src/ofdm_get_test_bits.c @@ -0,0 +1,161 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: ofdm_get_test_bits.c + AUTHOR......: David Rowe + DATE CREATED: Mar 2018 + + Generate input for the OFDM modem in either coded or uncoded mode. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#define OPTPARSE_IMPLEMENTATION +#define OPTPARSE_API static +#include "optparse.h" + +#include +#include +#include +#include +#include +#include + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "ldpc_codes.h" +#include "interldpc.h" +#include "varicode.h" + +#define IS_DIR_SEPARATOR(c) ((c) == '/') + +static const char *progname; + +void opt_help() { + fprintf(stderr, "\nUsage: %s [options]\n\n", progname); + fprintf(stderr, " --out filename Name of OutputOneCharPerBitFile\n"); + fprintf(stderr, " --frames n Number of frames to output (default 10)\n"); + fprintf(stderr, " --length n Frame length in bits (default 238)\n"); + fprintf(stderr, " --bcb Insert burst control byte at the start of each frame (FSK_LDPC testing)\n"); + fprintf(stderr, " --verbose Output variable assigned values to stderr\n\n"); + + exit(-1); +} + +int main(int argc, char *argv[]) +{ + FILE *fout; + char *fout_name = NULL; + int opt, verbose, n; + int Nframes, output_specified, bcb_en; + int Ndatabitsperpacket; + uint8_t burst_control; + + char *pn = argv[0] + strlen (argv[0]); + + while (pn != argv[0] && !IS_DIR_SEPARATOR (pn[-1])) + --pn; + + progname = pn; + + /* Turn off stream buffering */ + + setvbuf(stdout, NULL, _IONBF, BUFSIZ); + + fout = stdout; + output_specified = 0; + Nframes = 10; + Ndatabitsperpacket = 224; + verbose = 0; + bcb_en = 0; + + struct optparse options; + + struct optparse_long longopts[] = { + {"bcb", 'b', OPTPARSE_NONE}, + {"out", 'o', OPTPARSE_REQUIRED}, + {"frames", 'n', OPTPARSE_REQUIRED}, + {"length", 'l', OPTPARSE_REQUIRED}, + {"verbose", 'v', OPTPARSE_NONE}, + {0, 0, 0} + }; + + optparse_init(&options, argv); + + while ((opt = optparse_long(&options, longopts, NULL)) != -1) { + switch (opt) { + case '?': + opt_help(); + case 'b': + bcb_en = 1; + break; + case 'o': + fout_name = options.optarg; + output_specified = 1; + break; + case 'n': + Nframes = atoi(options.optarg); + break; + case 'l': + Ndatabitsperpacket = atoi(options.optarg); + break; + case 'v': + verbose = 1; + } + } + + /* Print remaining arguments to give user a hint */ + + char *arg; + + while ((arg = optparse_arg(&options))) + fprintf(stderr, "%s\n", arg); + + if (output_specified) { + if ((fout = fopen(fout_name, "wb")) == NULL) { + fprintf(stderr, "Error opening output bit file: %s\n", fout_name); + exit(-1); + } + } + + if (verbose) + fprintf(stderr, "Nframes: %d Ndatabitsperframe: %d bcb: %d\n", Nframes, Ndatabitsperpacket, bcb_en); + + uint8_t data_bits[Ndatabitsperpacket]; + ofdm_generate_payload_data_bits(data_bits, Ndatabitsperpacket); + + burst_control = 1; + for (n = 0; n. + */ + +#ifndef OFDM_INTERNAL_H +#define OFDM_INTERNAL_H + +#include +#include +#include + +#include "codec2_ofdm.h" +#include "filter.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846f +#endif + +#define TAU (2.0f * M_PI) +#define ROT45 (M_PI / 4.0f) +#define MAX_UW_BITS 64 + +#define cmplx(value) (cosf(value) + sinf(value) * I) +#define cmplxconj(value) (cosf(value) + sinf(value) * -I) + +/* modem state machine states */ +typedef enum { + search, + trial, + synced +} State; + +typedef enum { + unsync, /* force sync state machine to lose sync, and search for new sync */ + autosync, /* falls out of sync automatically */ + manualsync /* fall out of sync only under operator control */ +} Sync; + +/* phase estimator bandwidth options */ + +typedef enum { + low_bw, /* can only track a narrow freq offset, but accurate */ + high_bw /* can track wider freq offset, but less accurate at low SNR */ +} PhaseEstBandwidth; + +/* + * User-defined configuration for OFDM modem. Used to set up + * constants at init time, e.g. for different bit rate modems. + */ + +struct OFDM_CONFIG { + float tx_centre; /* TX Centre Audio Frequency */ + float rx_centre; /* RX Centre Audio Frequency */ + float fs; /* Sample Frequency */ + float rs; /* Symbol Rate */ + float ts; /* symbol duration */ + float tcp; /* Cyclic Prefix duration */ + float timing_mx_thresh; + + int nc; /* Number of carriers */ + int ns; /* Number of Symbol frames */ + int np; /* number of modem frames per packet */ + int bps; /* Bits per Symbol */ + int txtbits; /* number of auxiliary data bits */ + int nuwbits; /* number of unique word bits */ + int bad_uw_errors; + int ftwindowwidth; + int edge_pilots; + char *state_machine; /* name of sync state machine used for this mode */ + char *codename; /* name of LDPC code used with this mode */ + uint8_t tx_uw[MAX_UW_BITS]; /* user defined unique word */ + int amp_est_mode; + bool tx_bpf_en; /* default tx (mod) hilbert clipper BPF enable */ + bool rx_bpf_en; /* default rx (demod) input BPF enable */ + bool foff_limiter; /* tames freq offset updates in low SNR */ + float amp_scale; /* used to scale Tx waveform to approx FREEDV_PEAK with clipper off */ + float clip_gain1; /* gain we apply to Tx signal before clipping to control PAPR*/ + float clip_gain2; /* gain we apply to Tx signal after clipping and BBF to control peak level */ + bool clip_en; + char mode[16]; /* OFDM mode in string form */ + char *data_mode; + float fmin; + float fmax; +}; + +struct OFDM { + struct OFDM_CONFIG config; + + char mode[16]; /* mode in string form */ + /* + * See 700D Part 4 Acquisition blog post and ofdm_dev.m routines + * for how this was set + */ + float timing_mx_thresh; + + int nc; + int ns; /* NS-1 = data symbols between pilots */ + int bps; /* Bits per symbol */ + int m; /* duration of each symbol in samples */ + int ncp; /* duration of CP in samples */ + int np; /* number of modem frames per packet. In some modes we want */ + /* the total packet of data to span multiple modem frames, e.g. HF data */ + /* and/or when the FEC codeword is larger than the one */ + /* modem frame. In other modes (e.g. 700D/2020) Np=1, ie the modem frame */ + /* is the same length as the packet/FEC frame. */ + int ftwindowwidth; + int bitsperframe; /* total bits in all data symbols in modem frame */ + int bitsperpacket; /* total bits in all data symbols in a packet */ + int rowsperframe; + int samplespersymbol; + int samplesperframe; + int nrxbufhistory; /* extra storage at start of rxbuf to allow us to step back in time */ + int nrxbufmin; /* min number of samples we need in rxbuf to process a modem frame */ + int rxbufst; /* start of rxbuf window used for demod of current rx frame */ + int pre, post; /* pre-amble and post-amble detections */ + int max_samplesperframe; + int nuwframes; + int nrxbuf; + int ntxtbits; /* reserve bits/frame for aux text information */ + int nuwbits; /* number of unique word bits used to achieve packet frame sync */ + int bad_uw_errors; /* threshold for UW detection check */ + int uw_fails; /* number of times we exceeded bad_uw_errors and dropped sync */ + int edge_pilots; /* insert pilots at 1 and Nc+2, to support low bandwidth phase est */ + char *data_mode; /* "", "streaming", "burst" */ + int packetsperburst; /* for OFDM data modes, how many packets before we reset state machine */ + int amp_est_mode; /* amplitude estimtor algorithm */ + float amp_scale; + float clip_gain1; + float clip_gain2; + bool clip_en; + + float tx_centre; /* TX Center frequency */ + float rx_centre; /* RX Center frequency */ + float fs; /* Sample rate */ + float ts; /* Symbol cycle time */ + float rs; /* Symbol rate */ + float tcp; /* Cyclic prefix duration */ + float tpacket; /* time for one packet in ms */ + float inv_m; /* 1/m */ + float tx_nlower; /* TX lowest carrier freq */ + float rx_nlower; /* RX lowest carrier freq */ + float doc; /* division of radian circle */ + + float fmin; + float fmax; + + // Pointers + + struct quisk_cfFilter *tx_bpf; + struct quisk_cfFilter *rx_bpf; + + complex float *pilot_samples; + complex float *rxbuf; + complex float *pilots; + complex float **rx_sym; + complex float *rx_np; + complex float *tx_uw_syms; + COMP *tx_preamble; + COMP *tx_postamble; + + float *rx_amp; + float *aphase_est_pilot_log; + + uint8_t tx_uw[MAX_UW_BITS]; + int *uw_ind; + int *uw_ind_sym; + + // State enums + State sync_state; + State last_sync_state; + + // Sync enums + Sync sync_mode; + + // Phase enums + PhaseEstBandwidth phase_est_bandwidth; + + int phase_est_bandwidth_mode; + + // Complex + complex float foff_metric; + + // Float + float foff_est_gain; + bool foff_limiter; + float foff_est_hz; + float timing_mx; + float coarse_foff_est_hz; + float timing_norm; + float mean_amp; + + // Integer + int clock_offset_counter; + int verbose; + int sample_point; + int timing_est; + int timing_valid; + int ct_est; + int nin; + int uw_errors; + int sync_counter; + int frame_count; /* general purpose counter of modem frames */ + int packet_count; /* data mode: number of packets received so far */ + int modem_frame; /* increments for every modem frame in packet */ + + // Boolean + bool sync_start; + bool sync_end; + bool timing_en; + bool foff_est_en; + bool phase_est_en; + bool tx_bpf_en; + bool rx_bpf_en; + bool dpsk_en; + bool postambledetectoren; /* allows us to optionally disable the postamble detector */ + + char *codename; + char *state_machine; +}; + +/* Prototypes */ + +complex float qpsk_mod(int *); +complex float qam16_mod(int *); +void qpsk_demod(complex float, int *); +void qam16_demod(complex float, int *); +void ofdm_txframe(struct OFDM *, complex float *, complex float []); +void ofdm_assemble_qpsk_modem_packet(struct OFDM *, uint8_t [], uint8_t [], uint8_t []); +void ofdm_assemble_qpsk_modem_packet_symbols(struct OFDM *, complex float [], COMP [], uint8_t []); +void ofdm_disassemble_qpsk_modem_packet(struct OFDM *, complex float rx_syms[], float rx_amps[], COMP [], float [], short []); +void ofdm_disassemble_qpsk_modem_packet_with_text_amps(struct OFDM *, complex float rx_syms[], float rx_amps[], COMP [], float [], short [], int*); +void ofdm_extract_uw(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], uint8_t rx_uw[]); +void ofdm_rand(uint16_t [], int); +void ofdm_rand_seed(uint16_t r[], int n, uint64_t seed) ; +void ofdm_generate_payload_data_bits(uint8_t data_bits[], int n); +void ofdm_generate_preamble(struct OFDM *ofdm, COMP *tx_preamble, int seed); +int ofdm_get_phase_est_bandwidth_mode(struct OFDM *); +void ofdm_set_phase_est_bandwidth_mode(struct OFDM *, int); +void ofdm_clip(complex float tx[], float clip_thresh, int n); +void ofdm_hilbert_clipper(struct OFDM *ofdm, complex float *tx, size_t n); +float ofdm_esno_est_calc(complex float *rx_sym, int nsym); +float ofdm_snr_from_esno(struct OFDM *ofdm, float EsNodB); +void ofdm_get_demod_stats(struct OFDM *ofdm, struct MODEM_STATS *stats, complex float *rx_syms, int Nsymsperpacket); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/ofdm_mod.c b/src/ofdm_mod.c new file mode 100644 index 0000000..800b410 --- /dev/null +++ b/src/ofdm_mod.c @@ -0,0 +1,410 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: ofdm_mod.c + AUTHOR......: David Rowe + DATE CREATED: March 2018 + + Given an input file of bits (note one bit per char format), outputs + a raw file (8kHz, 16 bit shorts) of OFDM modem samples ready to send + over a HF radio channel. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + */ + +#define OPTPARSE_IMPLEMENTATION +#define OPTPARSE_API static +#include "optparse.h" + +#include +#include +#include +#include +#include + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "gp_interleaver.h" +#include "ldpc_codes.h" +#include "interldpc.h" +#include "varicode.h" + +#define IS_DIR_SEPARATOR(c) ((c) == '/') + +static const char *progname; + +void opt_help() { + fprintf(stderr, "\nusage: %s [options]\n\n", progname); + fprintf(stderr, " --in filename Name of InputOneCharPerBitFile\n"); + fprintf(stderr, " --out filename Name of OutputModemRawFile\n"); + fprintf(stderr, " --mode modeName Predefined mode 700D|700E|2020|2020B|datac0 ... etc\n"); + fprintf(stderr, " --nc [17..62] Number of Carriers (17 default, 62 max)\n"); + fprintf(stderr, " --ns symbols One pilot every ns symbols (8 default)\n"); + fprintf(stderr, " --tcp Nsecs Cyclic Prefix Duration (.002 default)\n"); + fprintf(stderr, " --ts Nsecs Symbol Duration (.018 default)\n"); + fprintf(stderr, " --testframes Nsecs Transmit test frames for Nsec (--testframes NpacketsPerBurst in burst mode)\n"); + fprintf(stderr, " --tx_freq freq Set an optional modulation TX centre frequency (1500.0 default)\n"); + fprintf(stderr, " --rx_freq freq Set an optional modulation RX centre frequency (1500.0 default)\n\n"); + fprintf(stderr, " --verbose [1|2|3] Verbose output level to stderr (default off)\n"); + fprintf(stderr, " --txbpf Transmit band pass filter on (default off)\n"); + fprintf(stderr, " --clip Transmit clipper (default off)\n"); + fprintf(stderr, " --text Include a standard text message boolean (default off)\n"); + fprintf(stderr, " -i --ldpc [1|2] Run LDPC decoder (1 -> (224,112) 700D code, 2 -> (504,396) 2020 code).\n" + " In testframe mode raw and coded errors will be counted.\n"); + fprintf(stderr, " --bursts nBursts Burst mode: Send nBursts of testframes each\n"); + fprintf(stderr, "\n"); + exit(-1); +} + +int main(int argc, char *argv[]) { + char *fin_name, *fout_name; + int i, opt, val; + + char *pn = argv[0] + strlen(argv[0]); + + while (pn != argv[0] && !IS_DIR_SEPARATOR(pn[-1])) + --pn; + + progname = pn; + + /* Turn off stream buffering */ + + setvbuf(stdin, NULL, _IONBF, BUFSIZ); + setvbuf(stdout, NULL, _IONBF, BUFSIZ); + + FILE *fin = stdin; + FILE *fout = stdout; + + /* set for LDPC coded or uncoded frames */ + + int ldpc_en = 0; + + int input_specified = 0; + int output_specified = 0; + int verbose = 0; + bool clip_en = false; + int txbpf_en = 0; + int testframes = 0; + int use_text = 0; + + int Npackets = 0; + int Nsec = 0; + int burst_mode = 0; + int Nbursts = 1; + + /* set up the default modem config */ + struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); + assert(ofdm_config != NULL); + char mode[32] = "700D"; + ofdm_init_mode(mode, ofdm_config); + + int Ndatabitsperpacket = 0; + struct optparse options; + + struct optparse_long longopts[] = { + {"in", 'a', OPTPARSE_REQUIRED}, + {"out", 'b', OPTPARSE_REQUIRED}, + {"nc", 'c', OPTPARSE_REQUIRED}, + {"ns", 'm', OPTPARSE_REQUIRED}, + {"tcp", 'd', OPTPARSE_REQUIRED}, + {"ts", 'e', OPTPARSE_REQUIRED}, + {"testframes", 'f', OPTPARSE_REQUIRED}, + {"tx_freq", 'n', OPTPARSE_REQUIRED}, + {"rx_freq", 'i', OPTPARSE_REQUIRED}, + {"ldpc", 'j', OPTPARSE_NONE}, + {"txbpf", 'k', OPTPARSE_NONE}, + {"clip", 'r', OPTPARSE_NONE}, + {"text", 'l', OPTPARSE_NONE}, + {"verbose", 'v', OPTPARSE_REQUIRED}, + {"mode", 'g', OPTPARSE_REQUIRED}, + {"help", 'h', OPTPARSE_NONE}, + {"bursts", 'o', OPTPARSE_REQUIRED}, + {0, 0, 0} + }; + + optparse_init(&options, argv); + + while ((opt = optparse_long(&options, longopts, NULL)) != -1) { + switch (opt) { + case '?': + case 'h': + opt_help(); + case 'a': + fin_name = options.optarg; + input_specified = 1; + break; + case 'b': + fout_name = options.optarg; + output_specified = 1; + break; + case 'c': + val = atoi(options.optarg); + + if (val > 62 || val < 17) { + opt_help(); + } else { + ofdm_config->nc = val; + } + break; + case 'd': + ofdm_config->tcp = atof(options.optarg); + break; + case 'e': + ofdm_config->ts = atof(options.optarg); + ofdm_config->rs = 1.0f / ofdm_config->ts; + break; + case 'm': + ofdm_config->ns = atoi(options.optarg); + break; + case 'f': + testframes = 1; + Nsec = atoi(options.optarg); + break; + case 'g': + strcpy(mode, options.optarg); + ofdm_init_mode(mode, ofdm_config); + break; + case 'n': + ofdm_config->tx_centre = atof(options.optarg); + break; + case 'o': + burst_mode = 1; + Nbursts = atoi(options.optarg); + fprintf(stderr, "bursts: %d\n", Nbursts); + break; + case 'i': + ofdm_config->rx_centre = atof(options.optarg); + break; + case 'j': + ldpc_en = 1; + break; + case 'k': + txbpf_en = 1; + break; + case 'l': + use_text = 1; + break; + case 'r': + clip_en = true; + break; + case 'v': + verbose = atoi(options.optarg); + if (verbose < 0 || verbose > 3) + verbose = 0; + } + } + + /* Print remaining arguments to give user a hint */ + + char *arg; + + while ((arg = optparse_arg(&options))) + fprintf(stderr, "%s\n", arg); + + if (input_specified) { + if ((fin = fopen(fin_name, "rb")) == NULL) { + fprintf(stderr, "Error opening input bits file: %s\n", fin_name); + exit(-1); + } + } + + if (output_specified) { + if ((fout = fopen(fout_name, "wb")) == NULL) { + fprintf(stderr, "Error opening output modem sample file: %s\n", fout_name); + exit(-1); + } + } + + /* init the modem with our (optionally) custom config */ + struct OFDM *ofdm = ofdm_create(ofdm_config); + assert(ofdm != NULL); + + free(ofdm_config); + + /* Get a copy of the completed modem config (ofdm_create() fills in more parameters) */ + ofdm_config = ofdm_get_config_param(ofdm); + + /* set up some useful constants */ + + int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); + int Npayloadbitsperpacket = Nbitsperpacket - ofdm->nuwbits - ofdm->ntxtbits; + int Nsamperpacket = ofdm_get_samples_per_packet(ofdm); + + /* Set up LPDC code */ + + struct LDPC ldpc; + if (ldpc_en) { + ldpc_codes_setup(&ldpc, ofdm->codename); + ldpc_mode_specific_setup(ofdm, &ldpc); + Ndatabitsperpacket = ldpc.data_bits_per_frame; + + if (verbose > 1) { + fprintf(stderr, "using: %s\n", ofdm->codename); + fprintf(stderr, "LDPC codeword data bits = %d\n", ldpc.ldpc_data_bits_per_frame); + fprintf(stderr, "LDPC codeword total bits = %d\n", ldpc.ldpc_coded_bits_per_frame); + fprintf(stderr, "LDPC codeword data bits used = %d\n", Ndatabitsperpacket); + fprintf(stderr, "LDPC codeword total length in modem packet = %d\n", Npayloadbitsperpacket); + } + } + else { + Ndatabitsperpacket = Npayloadbitsperpacket; + } + + if (verbose) { + ofdm_set_verbose(ofdm, verbose); + fprintf(stderr, "Ndatabitsperpacket: %d Npayloadbitsperpacket: %d Nsamperpacket: %d\n", + Ndatabitsperpacket, Npayloadbitsperpacket, Nsamperpacket); + } + + if (testframes) { + if (burst_mode) + Npackets = Nsec; // burst mode: treat Nsecs as Npackets/burst + else + Npackets = round(Nsec/ofdm->tpacket); // streaming mode + if (verbose) + fprintf(stderr, "Npackets: %d\n", Npackets); + } + + if (clip_en) { ofdm->clip_en = true; } + if (txbpf_en) { ofdm_set_tx_bpf(ofdm, 1); } + + uint8_t txt_bits[ofdm->ntxtbits]; + memset(txt_bits, 0, ofdm->ntxtbits); + char text_str[] = "cq cq cq hello world\r"; // Add text bits to match other tests + char *ptr_text = text_str; + + short tx_varicode_bits[VARICODE_MAX_BITS]; + int nvaricode_bits = 0; + int varicode_bit_index = 0; + + complex float tx_sams[Nsamperpacket]; + short tx_real[Nsamperpacket]; + + if (verbose > 1) ofdm_print_info(ofdm); + + for (int b=0; bsamplesperframe]; + memcpy(tx_preamble, ofdm->tx_preamble, sizeof(COMP)*ofdm->samplesperframe); + ofdm_hilbert_clipper(ofdm, tx_preamble, ofdm->samplesperframe); + for (i = 0; i < ofdm->samplesperframe; i++) tx_real[i] = crealf(tx_preamble[i]); + fwrite(tx_real, sizeof (short), ofdm->samplesperframe, fout); + } + + /* main loop ----------------------------------------------------------------*/ + + int packet = 0; + uint8_t data_bits[Ndatabitsperpacket]; + while (fread(data_bits, sizeof (uint8_t), Ndatabitsperpacket, fin) == Ndatabitsperpacket) { + + if (ldpc_en) { + /* fancy LDPC encoded frames ----------------------------*/ + + /* optionally overwrite input data with test frame of + payload data bits known to demodulator */ + + if (testframes) { + + if (use_text) { + // Get text bits + int nspare = ofdm->ntxtbits; + int k; + + for (k = 0; k < nspare; k++) { + if (nvaricode_bits) { + txt_bits[k] = tx_varicode_bits[varicode_bit_index++]; + nvaricode_bits--; + } + + if (nvaricode_bits == 0) { + /* get new char and encode */ + char s[2]; + s[0] = *ptr_text++; + + if (*ptr_text == 0) + ptr_text = &text_str[0]; + + nvaricode_bits = varicode_encode(tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); + varicode_bit_index = 0; + } + } + } + + ofdm_generate_payload_data_bits(data_bits, Ndatabitsperpacket); + } + + ofdm_ldpc_interleave_tx(ofdm, &ldpc, tx_sams, data_bits, txt_bits); + for (i = 0; i < Nsamperpacket; i++) tx_real[i] = crealf(tx_sams[i]); + } else { + /* just modulate uncoded raw bits ------------------------------------*/ + + /* in uncoded mode entire payload is input data bits */ + assert(Ndatabitsperpacket == Npayloadbitsperpacket); + + if (testframes) { + /* build up a test frame consisting of unique word, txt bits, and psuedo-random + uncoded payload bits. The psuedo-random generator is the same as Octave so + it can interoperate with ofdm_tx.m/ofdm_rx.m */ + + ofdm_generate_payload_data_bits(data_bits, Npayloadbitsperpacket); + } + + /* assemble packet of bits then modulate */ + uint8_t tx_bits_char[Nbitsperpacket]; + ofdm_assemble_qpsk_modem_packet(ofdm, tx_bits_char, data_bits, txt_bits); + int tx_bits[Nbitsperpacket]; + for (i = 0; i < Nbitsperpacket; i++) tx_bits[i] = tx_bits_char[i]; + COMP tx_sams[Nsamperpacket]; + ofdm_mod(ofdm, tx_sams, tx_bits); + for (i = 0; i < Nsamperpacket; i++) tx_real[i] = tx_sams[i].real; + } + + fwrite(tx_real, sizeof (short), Nsamperpacket, fout); + packet++; + + if (testframes && (packet >= Npackets)) + break; + } + + if (burst_mode) { + // Post-amble + fprintf(stderr, "Tx postamble\n"); + complex float tx_postamble[ofdm->samplesperframe]; + memcpy(tx_postamble, ofdm->tx_postamble, sizeof(COMP)*ofdm->samplesperframe); + ofdm_hilbert_clipper(ofdm, tx_postamble, ofdm->samplesperframe); + for (i = 0; i < ofdm->samplesperframe; i++) tx_real[i] = crealf(tx_postamble[i]); + fwrite(tx_real, sizeof (short), ofdm->samplesperframe, fout); + // Interburst silence + int samples_delay = ofdm->fs; + short sil_short[samples_delay]; + for(int i=0; i +#include +#include "codec2_ofdm.h" +#include "ofdm_internal.h" + +void ofdm_init_mode(char mode[], struct OFDM_CONFIG *config) { + assert(mode != NULL); + assert(config != NULL); + + assert(strlen(mode) < 16); + strcpy(config->mode, mode); + + /* Fill in default values - 700D */ + + config->nc = 17; /* Number of carriers */ + config->np = 1; + config->ns = 8; /* Number of Symbols per modem frame */ + config->ts = 0.018f; + config->tcp = .002f; /* Cyclic Prefix duration */ + config->tx_centre = 1500.0f; /* TX Carrier Frequency */ + config->rx_centre = 1500.0f; /* RX Carrier Frequency */ + config->fs = 8000.0f; /* Sample rate */ + config->txtbits = 4; + config->bps = 2; /* Bits per Symbol */ + config->nuwbits = 5 * config->bps; /* default is 5 symbols of Unique Word bits */ + config->bad_uw_errors = 3; + config->ftwindowwidth = 32; + config->timing_mx_thresh = 0.30f; + config->edge_pilots = 1; + config->state_machine = "voice1"; + config->data_mode = ""; + config->codename = "HRA_112_112"; + config->clip_gain1 = 2.5; + config->clip_gain2 = 0.8; + config->clip_en = true; + config->tx_bpf_en = true; + config->rx_bpf_en = false; + config->amp_scale = 245E3; + config->foff_limiter = false; + memset(config->tx_uw, 0, MAX_UW_BITS); + + if (strcmp(mode,"700D") == 0) { + } else if (strcmp(mode,"700E") == 0) { + config->ts = 0.014; config->tcp = 0.006; config->nc = 21; config->ns=4; + config->edge_pilots = 0; + config->nuwbits = 12; config->bad_uw_errors = 3; config->txtbits = 2; + config->state_machine = "voice2"; config->amp_est_mode = 1; + config->ftwindowwidth = 80; + config->codename = "HRA_56_56"; + config->foff_limiter = true; + config->amp_scale = 155E3; config->clip_gain1 = 3; config->clip_gain2 = 0.8; + } else if ((strcmp(mode,"2020") == 0)) { + config->ts = 0.0205; config->nc = 31; config->codename = "HRAb_396_504"; + config->amp_scale = 167E3; config->clip_gain1 = 2.5; config->clip_gain2 = 0.8; + } else if (strcmp(mode,"2020B") == 0) { + config->ts = 0.014; config->tcp = 0.004; config->nc = 29; config->ns=5; config->codename = "HRA_56_56"; + config->txtbits = 4; config->nuwbits = 8*2; config->bad_uw_errors = 5; + config->amp_scale = 130E3; config->clip_gain1 = 2.5; config->clip_gain2 = 0.8; + config->edge_pilots = 0; config->state_machine = "voice2"; + config->ftwindowwidth = 64; config->foff_limiter = true; + } else if (strcmp(mode,"2020C") == 0) { + config->ts = 0.014; config->tcp = 0.004; config->nc = 29; config->ns=5; config->codename = "H_212_158"; + config->txtbits = 4; config->nuwbits = 8*2; config->bad_uw_errors = 5; + config->amp_scale = 130E3; config->clip_gain1 = 2.5; config->clip_gain2 = 0.8; + config->edge_pilots = 0; config->state_machine = "voice2"; + config->ftwindowwidth = 64; config->foff_limiter = true; + } else if (strcmp(mode,"qam16") == 0) { + /* not in use yet */ + config->ns=5; config->np=5; config->tcp = 0.004; config->ts = 0.016; config->nc = 33; + config->bps=4; config->txtbits = 0; config->nuwbits = 15*4; config->bad_uw_errors = 5; + config->ftwindowwidth = 32; config->state_machine = "data"; config->amp_est_mode = 1; + config->tx_bpf_en = false; config->clip_en = false; + config->data_mode = "streaming"; + } else if (strcmp(mode,"datac0") == 0) { + config->ns=5; config->np=4; config->tcp = 0.006; config->ts = 0.016; config->nc = 9; + config->edge_pilots = 0; + config->txtbits = 0; config->nuwbits = 32; config->bad_uw_errors = 9; + config->state_machine = "data"; config->amp_est_mode = 1; + config->ftwindowwidth = 80; config->codename = "H_128_256_5"; + uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0}; + memcpy(config->tx_uw, uw, sizeof(uw)); + config->timing_mx_thresh = 0.08f; + config->data_mode = "streaming"; + config->amp_scale = 300E3; config->clip_gain1 = 2.2; config->clip_gain2 = 0.85; + } else if (strcmp(mode,"datac1") == 0) { + config->ns=5; config->np=38; config->tcp = 0.006; config->ts = 0.016; config->nc = 27; + config->edge_pilots = 0; + config->txtbits = 0; config->nuwbits = 16; config->bad_uw_errors = 6; + config->state_machine = "data"; config->amp_est_mode = 1; + config->ftwindowwidth = 80; config->codename = "H_4096_8192_3d"; + uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0}; + assert(sizeof(uw) == config->nuwbits); + memcpy(config->tx_uw, uw, config->nuwbits); + config->timing_mx_thresh = 0.10f; + config->data_mode = "streaming"; + config->amp_scale = 145E3; config->clip_gain1 = 2.7; config->clip_gain2 = 0.8; + } else if (strcmp(mode,"datac3") == 0) { + config->ns=5; config->np=29; config->tcp = 0.006; config->ts = 0.016; config->nc = 9; + config->edge_pilots = 0; + config->txtbits = 0; config->state_machine = "data"; + config->ftwindowwidth = 80; config->timing_mx_thresh = 0.10; + config->codename = "H_1024_2048_4f"; config->amp_est_mode = 1; + config->nuwbits = 40; config->bad_uw_errors = 10; + uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; + assert(sizeof(uw) <= MAX_UW_BITS); + memcpy(config->tx_uw, uw, sizeof(uw)); + memcpy(&config->tx_uw[config->nuwbits-sizeof(uw)], uw, sizeof(uw)); + config->data_mode = "streaming"; + config->amp_scale = 300E3; config->clip_gain1 = 2.2; config->clip_gain2 = 0.8; + } else if (strcmp(mode,"datac4") == 0) { + config->ns=5; config->np=47; config->tcp = 0.006; config->ts = 0.016; config->nc = 4; + config->edge_pilots = 0; + config->txtbits = 0; config->state_machine = "data"; + config->ftwindowwidth = 80; config->timing_mx_thresh = 0.5; + config->codename = "H_1024_2048_4f"; config->amp_est_mode = 1; + config->nuwbits = 32; config->bad_uw_errors = 12; + uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; + assert(sizeof(uw) <= MAX_UW_BITS); + memcpy(config->tx_uw, uw, sizeof(uw)); + memcpy(&config->tx_uw[config->nuwbits-sizeof(uw)], uw, sizeof(uw)); + config->data_mode = "streaming"; + config->amp_scale = 2*300E3; config->clip_gain1 = 1.2; config->clip_gain2 = 1.0; + config->rx_bpf_en = true; + } else if (strcmp(mode,"datac13") == 0) { + config->ns=5; config->np=18; config->tcp = 0.006; config->ts = 0.016; config->nc = 3; + config->edge_pilots = 0; + config->txtbits = 0; config->state_machine = "data"; + config->ftwindowwidth = 80; config->timing_mx_thresh = 0.45; + config->codename = "H_256_512_4"; config->amp_est_mode = 1; + config->nuwbits = 48; config->bad_uw_errors = 18; + uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; + assert(sizeof(uw) <= MAX_UW_BITS); + memcpy(config->tx_uw, uw, sizeof(uw)); + memcpy(&config->tx_uw[config->nuwbits-sizeof(uw)], uw, sizeof(uw)); + config->data_mode = "streaming"; + config->amp_scale = 2.5*300E3; config->clip_gain1 = 1.2; config->clip_gain2 = 1.0; + config->rx_bpf_en = true; + } + else { + assert(0); + } + config->rs=1.0f/config->ts; +} diff --git a/src/ofdm_put_test_bits.c b/src/ofdm_put_test_bits.c new file mode 100644 index 0000000..88f61d7 --- /dev/null +++ b/src/ofdm_put_test_bits.c @@ -0,0 +1,124 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: ofdm_put_test_bits.c + AUTHOR......: David Rowe + DATE CREATED: Mar 2018 + + Slurps up a stream of test bits generated by ofdm_get_test_bits, useful for + testing ofdm_mod and ofdm_demod. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2018 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include +#include + +#include "codec2_ofdm.h" +#include "ofdm_internal.h" +#include "test_bits_ofdm.h" + +#define LOG_FRAMES 100 +#define NDISCARD 20 + +static struct OFDM *ofdm; + +int opt_exists(char *argv[], int argc, char opt[]) { + int i; + for (i=0; i= NDISCARD) { + Terrs2 += Nerrs; + Tbits2 += Nbitsperframe; + } + + if (verbose) { + printf("f: %d Nerrs: %d aber: %3.2f\n", f, Nerrs, aber); + } + } + + fclose(fin); + + fprintf(stderr, "BER..: %5.4f Tbits: %5d Terrs: %5d\n", (float)Terrs/Tbits, Tbits, Terrs); + + if (Tbits2 != 0) { + fprintf(stderr, "BER2.: %5.4f Tbits: %5d Terrs: %5d\n", (float)Terrs2/Tbits2, Tbits2, Terrs2); + } + + ofdm_destroy(ofdm); + + return 0; +} + diff --git a/src/optparse.h b/src/optparse.h new file mode 100644 index 0000000..bc1cc06 --- /dev/null +++ b/src/optparse.h @@ -0,0 +1,404 @@ +/* Optparse --- portable, reentrant, embeddable, getopt-like option parser + * + * This is free and unencumbered software released into the public domain. + * + * To get the implementation, define OPTPARSE_IMPLEMENTATION. + * Optionally define OPTPARSE_API to control the API's visibility + * and/or linkage (static, __attribute__, __declspec). + * + * The POSIX getopt() option parser has three fatal flaws. These flaws + * are solved by Optparse. + * + * 1) Parser state is stored entirely in global variables, some of + * which are static and inaccessible. This means only one thread can + * use getopt(). It also means it's not possible to recursively parse + * nested sub-arguments while in the middle of argument parsing. + * Optparse fixes this by storing all state on a local struct. + * + * 2) The POSIX standard provides no way to properly reset the parser. + * This means for portable code that getopt() is only good for one + * run, over one argv with one option string. It also means subcommand + * options cannot be processed with getopt(). Most implementations + * provide a method to reset the parser, but it's not portable. + * Optparse provides an optparse_arg() function for stepping over + * subcommands and continuing parsing of options with another option + * string. The Optparse struct itself can be passed around to + * subcommand handlers for additional subcommand option parsing. A + * full reset can be achieved by with an additional optparse_init(). + * + * 3) Error messages are printed to stderr. This can be disabled with + * opterr, but the messages themselves are still inaccessible. + * Optparse solves this by writing an error message in its errmsg + * field. The downside to Optparse is that this error message will + * always be in English rather than the current locale. + * + * Optparse should be familiar with anyone accustomed to getopt(), and + * it could be a nearly drop-in replacement. The option string is the + * same and the fields have the same names as the getopt() global + * variables (optarg, optind, optopt). + * + * Optparse also supports GNU-style long options with optparse_long(). + * The interface is slightly different and simpler than getopt_long(). + * + * By default, argv is permuted as it is parsed, moving non-option + * arguments to the end. This can be disabled by setting the `permute` + * field to 0 after initialization. + */ +#ifndef OPTPARSE_H +#define OPTPARSE_H + +#ifndef OPTPARSE_API +# define OPTPARSE_API +#endif + +struct optparse { + char **argv; + int permute; + int optind; + int optopt; + char *optarg; + char errmsg[64]; + int subopt; +}; + +enum optparse_argtype { + OPTPARSE_NONE, + OPTPARSE_REQUIRED, + OPTPARSE_OPTIONAL +}; + +struct optparse_long { + const char *longname; + int shortname; + enum optparse_argtype argtype; +}; + +/** + * Initializes the parser state. + */ +OPTPARSE_API +void optparse_init(struct optparse *options, char **argv); + +/** + * Read the next option in the argv array. + * @param optstring a getopt()-formatted option string. + * @return the next option character, -1 for done, or '?' for error + * + * Just like getopt(), a character followed by no colons means no + * argument. One colon means the option has a required argument. Two + * colons means the option takes an optional argument. + */ +OPTPARSE_API +int optparse(struct optparse *options, const char *optstring); + +/** + * Handles GNU-style long options in addition to getopt() options. + * This works a lot like GNU's getopt_long(). The last option in + * longopts must be all zeros, marking the end of the array. The + * longindex argument may be NULL. + */ +OPTPARSE_API +int optparse_long(struct optparse *options, + const struct optparse_long *longopts, + int *longindex); + +/** + * Used for stepping over non-option arguments. + * @return the next non-option argument, or NULL for no more arguments + * + * Argument parsing can continue with optparse() after using this + * function. That would be used to parse the options for the + * subcommand returned by optparse_arg(). This function allows you to + * ignore the value of optind. + */ +OPTPARSE_API +char *optparse_arg(struct optparse *options); + +/* Implementation */ +#ifdef OPTPARSE_IMPLEMENTATION + +#define OPTPARSE_MSG_INVALID "invalid option" +#define OPTPARSE_MSG_MISSING "option requires an argument" +#define OPTPARSE_MSG_TOOMANY "option takes no arguments" + +static int +optparse_error(struct optparse *options, const char *msg, const char *data) +{ + unsigned p = 0; + const char *sep = " -- '"; + while (*msg) + options->errmsg[p++] = *msg++; + while (*sep) + options->errmsg[p++] = *sep++; + while (p < sizeof(options->errmsg) - 2 && *data) + options->errmsg[p++] = *data++; + options->errmsg[p++] = '\''; + options->errmsg[p++] = '\0'; + return '?'; +} + +OPTPARSE_API +void +optparse_init(struct optparse *options, char **argv) +{ + options->argv = argv; + options->permute = 1; + options->optind = 1; + options->subopt = 0; + options->optarg = 0; + options->errmsg[0] = '\0'; +} + +static int +optparse_is_dashdash(const char *arg) +{ + return arg != 0 && arg[0] == '-' && arg[1] == '-' && arg[2] == '\0'; +} + +static int +optparse_is_shortopt(const char *arg) +{ + return arg != 0 && arg[0] == '-' && arg[1] != '-' && arg[1] != '\0'; +} + +static int +optparse_is_longopt(const char *arg) +{ + return arg != 0 && arg[0] == '-' && arg[1] == '-' && arg[2] != '\0'; +} + +static void +optparse_permute(struct optparse *options, int index) +{ + char *nonoption = options->argv[index]; + int i; + for (i = index; i < options->optind - 1; i++) + options->argv[i] = options->argv[i + 1]; + options->argv[options->optind - 1] = nonoption; +} + +static int +optparse_argtype(const char *optstring, char c) +{ + int count = OPTPARSE_NONE; + if (c == ':') + return -1; + for (; *optstring && c != *optstring; optstring++); + if (!*optstring) + return -1; + if (optstring[1] == ':') + count += optstring[2] == ':' ? 2 : 1; + return count; +} + +OPTPARSE_API +int +optparse(struct optparse *options, const char *optstring) +{ + int type; + char *next; + char *option = options->argv[options->optind]; + options->errmsg[0] = '\0'; + options->optopt = 0; + options->optarg = 0; + if (option == 0) { + return -1; + } else if (optparse_is_dashdash(option)) { + options->optind++; /* consume "--" */ + return -1; + } else if (!optparse_is_shortopt(option)) { + if (options->permute) { + int index = options->optind++; + int r = optparse(options, optstring); + optparse_permute(options, index); + options->optind--; + return r; + } else { + return -1; + } + } + option += options->subopt + 1; + options->optopt = option[0]; + type = optparse_argtype(optstring, option[0]); + next = options->argv[options->optind + 1]; + switch (type) { + case -1: { + char str[2] = {0, 0}; + str[0] = option[0]; + options->optind++; + return optparse_error(options, OPTPARSE_MSG_INVALID, str); + } + case OPTPARSE_NONE: + if (option[1]) { + options->subopt++; + } else { + options->subopt = 0; + options->optind++; + } + return option[0]; + case OPTPARSE_REQUIRED: + options->subopt = 0; + options->optind++; + if (option[1]) { + options->optarg = option + 1; + } else if (next != 0) { + options->optarg = next; + options->optind++; + } else { + char str[2] = {0, 0}; + str[0] = option[0]; + options->optarg = 0; + return optparse_error(options, OPTPARSE_MSG_MISSING, str); + } + return option[0]; + case OPTPARSE_OPTIONAL: + options->subopt = 0; + options->optind++; + if (option[1]) + options->optarg = option + 1; + else + options->optarg = 0; + return option[0]; + } + return 0; +} + +OPTPARSE_API +char * +optparse_arg(struct optparse *options) +{ + char *option = options->argv[options->optind]; + options->subopt = 0; + if (option != 0) + options->optind++; + return option; +} + +static int +optparse_longopts_end(const struct optparse_long *longopts, int i) +{ + return !longopts[i].longname && !longopts[i].shortname; +} + +static void +optparse_from_long(const struct optparse_long *longopts, char *optstring) +{ + char *p = optstring; + int i; + for (i = 0; !optparse_longopts_end(longopts, i); i++) { + if (longopts[i].shortname) { + int a; + *p++ = longopts[i].shortname; + for (a = 0; a < (int)longopts[i].argtype; a++) + *p++ = ':'; + } + } + *p = '\0'; +} + +/* Unlike strcmp(), handles options containing "=". */ +static int +optparse_longopts_match(const char *longname, const char *option) +{ + const char *a = option, *n = longname; + if (longname == 0) + return 0; + for (; *a && *n && *a != '='; a++, n++) + if (*a != *n) + return 0; + return *n == '\0' && (*a == '\0' || *a == '='); +} + +/* Return the part after "=", or NULL. */ +static char * +optparse_longopts_arg(char *option) +{ + for (; *option && *option != '='; option++); + if (*option == '=') + return option + 1; + else + return 0; +} + +static int +optparse_long_fallback(struct optparse *options, + const struct optparse_long *longopts, + int *longindex) +{ + int result; + char optstring[96 * 3 + 1]; /* 96 ASCII printable characters */ + optparse_from_long(longopts, optstring); + result = optparse(options, optstring); + if (longindex != 0) { + *longindex = -1; + if (result != -1) { + int i; + for (i = 0; !optparse_longopts_end(longopts, i); i++) + if (longopts[i].shortname == options->optopt) + *longindex = i; + } + } + return result; +} + +OPTPARSE_API +int +optparse_long(struct optparse *options, + const struct optparse_long *longopts, + int *longindex) +{ + int i; + char *option = options->argv[options->optind]; + if (option == 0) { + return -1; + } else if (optparse_is_dashdash(option)) { + options->optind++; /* consume "--" */ + return -1; + } else if (optparse_is_shortopt(option)) { + return optparse_long_fallback(options, longopts, longindex); + } else if (!optparse_is_longopt(option)) { + if (options->permute) { + int index = options->optind++; + int r = optparse_long(options, longopts, longindex); + optparse_permute(options, index); + options->optind--; + return r; + } else { + return -1; + } + } + + /* Parse as long option. */ + options->errmsg[0] = '\0'; + options->optopt = 0; + options->optarg = 0; + option += 2; /* skip "--" */ + options->optind++; + for (i = 0; !optparse_longopts_end(longopts, i); i++) { + const char *name = longopts[i].longname; + if (optparse_longopts_match(name, option)) { + char *arg; + if (longindex) + *longindex = i; + options->optopt = longopts[i].shortname; + arg = optparse_longopts_arg(option); + if (longopts[i].argtype == OPTPARSE_NONE && arg != 0) { + return optparse_error(options, OPTPARSE_MSG_TOOMANY, name); + } if (arg != 0) { + options->optarg = arg; + } else if (longopts[i].argtype == OPTPARSE_REQUIRED) { + options->optarg = options->argv[options->optind]; + if (options->optarg == 0) + return optparse_error(options, OPTPARSE_MSG_MISSING, name); + else + options->optind++; + } + return options->optopt; + } + } + return optparse_error(options, OPTPARSE_MSG_INVALID, option); +} + +#endif /* OPTPARSE_IMPLEMENTATION */ +#endif /* OPTPARSE_H */ + diff --git a/src/os.h b/src/os.h new file mode 100644 index 0000000..c005324 --- /dev/null +++ b/src/os.h @@ -0,0 +1,106 @@ +/* Generate using fir1(47,1/2) in Octave */ + +static const float fdmdv_os_filter[]= { + -0.0008215855034550382, + -0.0007833023901802921, + 0.001075563790768233, + 0.001199092367787555, + -0.001765309502928316, + -0.002055372115328064, + 0.002986877604154257, + 0.003462567920638414, + -0.004856570111126334, + -0.005563143845031497, + 0.007533613299748122, + 0.008563932468880897, + -0.01126857129039911, + -0.01280782411693687, + 0.01651443896361847, + 0.01894875110322284, + -0.02421604439474981, + -0.02845107338464062, + 0.03672973563400258, + 0.04542046150312214, + -0.06189165826716491, + -0.08721876380763803, + 0.1496157094199961, + 0.4497962274137046, + 0.4497962274137046, + 0.1496157094199961, + -0.08721876380763803, + -0.0618916582671649, + 0.04542046150312216, + 0.03672973563400257, + -0.02845107338464062, + -0.02421604439474984, + 0.01894875110322284, + 0.01651443896361848, + -0.01280782411693687, + -0.0112685712903991, + 0.008563932468880899, + 0.007533613299748123, + -0.005563143845031501, + -0.004856570111126346, + 0.003462567920638419, + 0.002986877604154259, + -0.002055372115328063, + -0.001765309502928318, + 0.001199092367787557, + 0.001075563790768233, + -0.0007833023901802925, + -0.0008215855034550383 +}; + +/* Generate using fir1(47,1/6) in Octave */ + +static const float fdmdv_os_filter48[]= { + -3.55606818e-04, + -8.98615286e-04, + -1.40119781e-03, + -1.71713852e-03, + -1.56471179e-03, + -6.28128960e-04, + 1.24522223e-03, + 3.83138676e-03, + 6.41309478e-03, + 7.85893186e-03, + 6.93514929e-03, + 2.79361991e-03, + -4.51051400e-03, + -1.36671853e-02, + -2.21034939e-02, + -2.64084653e-02, + -2.31425052e-02, + -9.84218694e-03, + 1.40648474e-02, + 4.67316298e-02, + 8.39615986e-02, + 1.19925275e-01, + 1.48381174e-01, + 1.64097819e-01, + 1.64097819e-01, + 1.48381174e-01, + 1.19925275e-01, + 8.39615986e-02, + 4.67316298e-02, + 1.40648474e-02, + -9.84218694e-03, + -2.31425052e-02, + -2.64084653e-02, + -2.21034939e-02, + -1.36671853e-02, + -4.51051400e-03, + 2.79361991e-03, + 6.93514929e-03, + 7.85893186e-03, + 6.41309478e-03, + 3.83138676e-03, + 1.24522223e-03, + -6.28128960e-04, + -1.56471179e-03, + -1.71713852e-03, + -1.40119781e-03, + -8.98615286e-04, + -3.55606818e-04 +}; + diff --git a/src/pack.c b/src/pack.c new file mode 100644 index 0000000..1c07230 --- /dev/null +++ b/src/pack.c @@ -0,0 +1,140 @@ +/* + Copyright (C) 2010 Perens LLC + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include "defines.h" +#include "quantise.h" +#include + +/* Compile-time constants */ +/* Size of unsigned char in bits. Assumes 8 bits-per-char. */ +static const unsigned int WordSize = 8; + +/* Mask to pick the bit component out of bitIndex. */ +static const unsigned int IndexMask = 0x7; + +/* Used to pick the word component out of bitIndex. */ +static const unsigned int ShiftRight = 3; + +/** Pack a bit field into a bit string, encoding the field in Gray code. + * + * The output is an array of unsigned char data. The fields are efficiently + * packed into the bit string. The Gray coding is a naive attempt to reduce + * the effect of single-bit errors, we expect to do a better job as the + * codec develops. + * + * This code would be simpler if it just set one bit at a time in the string, + * but would hit the same cache line more often. I'm not sure the complexity + * gains us anything here. + * + * Although field is currently of int type rather than unsigned for + * compatibility with the rest of the code, indices are always expected to + * be >= 0. + */ +void +pack( + unsigned char * bitArray, /* The output bit string. */ + unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ + int field, /* The bit field to be packed. */ + unsigned int fieldWidth/* Width of the field in BITS, not bytes. */ + ) +{ + pack_natural_or_gray(bitArray, bitIndex, field, fieldWidth, 1); +} + +void +pack_natural_or_gray( + unsigned char * bitArray, /* The output bit string. */ + unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ + int field, /* The bit field to be packed. */ + unsigned int fieldWidth,/* Width of the field in BITS, not bytes. */ + unsigned int gray /* non-zero for gray coding */ + ) +{ + if (gray) { + /* Convert the field to Gray code */ + field = (field >> 1) ^ field; + } + + do { + unsigned int bI = *bitIndex; + unsigned int bitsLeft = WordSize - (bI & IndexMask); + unsigned int sliceWidth = + bitsLeft < fieldWidth ? bitsLeft : fieldWidth; + unsigned int wordIndex = bI >> ShiftRight; + + bitArray[wordIndex] |= + ((unsigned char)((field >> (fieldWidth - sliceWidth)) + << (bitsLeft - sliceWidth))); + + *bitIndex = bI + sliceWidth; + fieldWidth -= sliceWidth; + } while ( fieldWidth != 0 ); +} + +/** Unpack a field from a bit string, converting from Gray code to binary. + * + */ +int +unpack( + const unsigned char * bitArray, /* The input bit string. */ + unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ + unsigned int fieldWidth/* Width of the field in BITS, not bytes. */ + ) +{ + return unpack_natural_or_gray(bitArray, bitIndex, fieldWidth, 1); +} + +/** Unpack a field from a bit string, to binary, optionally using + * natural or Gray code. + * + */ +int +unpack_natural_or_gray( + const unsigned char * bitArray, /* The input bit string. */ + unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ + unsigned int fieldWidth,/* Width of the field in BITS, not bytes. */ + unsigned int gray /* non-zero for Gray coding */ + ) +{ + unsigned int field = 0; + unsigned int t; + + do { + unsigned int bI = *bitIndex; + unsigned int bitsLeft = WordSize - (bI & IndexMask); + unsigned int sliceWidth = + bitsLeft < fieldWidth ? bitsLeft : fieldWidth; + + field |= (((bitArray[bI >> ShiftRight] >> (bitsLeft - sliceWidth)) & ((1 << sliceWidth) - 1)) << (fieldWidth - sliceWidth)); + + *bitIndex = bI + sliceWidth; + fieldWidth -= sliceWidth; + } while ( fieldWidth != 0 ); + + if (gray) { + /* Convert from Gray code to binary. Works for maximum 8-bit fields. */ + t = field ^ (field >> 8); + t ^= (t >> 4); + t ^= (t >> 2); + t ^= (t >> 1); + } + else { + t = field; + } + + return t; +} diff --git a/src/phase.c b/src/phase.c new file mode 100644 index 0000000..01aa386 --- /dev/null +++ b/src/phase.c @@ -0,0 +1,289 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: phase.c + AUTHOR......: David Rowe + DATE CREATED: 1/2/09 + + Functions for modelling and synthesising phase. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not,see . +*/ + +#include "defines.h" +#include "phase.h" +#include "kiss_fft.h" +#include "comp.h" +#include "comp_prim.h" +#include "sine.h" + +#include +#include +#include +#include +#include + +/*---------------------------------------------------------------------------*\ + + sample_phase() + + Samples phase at centre of each harmonic from and array of FFT_ENC + DFT samples. + +\*---------------------------------------------------------------------------*/ + +void sample_phase(MODEL *model, + COMP H[], + COMP A[] /* LPC analysis filter in freq domain */ + ) +{ + int m, b; + float r; + + r = TWO_PI/(FFT_ENC); + + /* Sample phase at harmonics */ + + for(m=1; m<=model->L; m++) { + b = (int)(m*model->Wo/r + 0.5); + H[m] = cconj(A[b]); /* synth filter 1/A is opposite phase to analysis filter */ + } +} + + +/*---------------------------------------------------------------------------*\ + + phase_synth_zero_order() + + Synthesises phases based on SNR and a rule based approach. No phase + parameters are required apart from the SNR (which can be reduced to a + 1 bit V/UV decision per frame). + + The phase of each harmonic is modelled as the phase of a synthesis + filter excited by an impulse. In many Codec 2 modes the synthesis + filter is a LPC filter. Unlike the first order model the position + of the impulse is not transmitted, so we create an excitation pulse + train using a rule based approach. + + Consider a pulse train with a pulse starting time n=0, with pulses + repeated at a rate of Wo, the fundamental frequency. A pulse train + in the time domain is equivalent to harmonics in the frequency + domain. We can make an excitation pulse train using a sum of + sinsusoids: + + for(m=1; m<=L; m++) + ex[n] = cos(m*Wo*n) + + Note: the Octave script ../octave/phase.m is an example of this if + you would like to try making a pulse train. + + The phase of each excitation harmonic is: + + arg(E[m]) = mWo + + where E[m] are the complex excitation (freq domain) samples, + arg(x), just returns the phase of a complex sample x. + + As we don't transmit the pulse position for this model, we need to + synthesise it. Now the excitation pulses occur at a rate of Wo. + This means the phase of the first harmonic advances by N_SAMP samples + over a synthesis frame of N_SAMP samples. For example if Wo is pi/20 + (200 Hz), then over a 10ms frame (N_SAMP=80 samples), the phase of the + first harmonic would advance (pi/20)*80 = 4*pi or two complete + cycles. + + We generate the excitation phase of the fundamental (first + harmonic): + + arg[E[1]] = Wo*N_SAMP; + + We then relate the phase of the m-th excitation harmonic to the + phase of the fundamental as: + + arg(E[m]) = m*arg(E[1]) + + This E[m] then gets passed through the LPC synthesis filter to + determine the final harmonic phase. + + Comparing to speech synthesised using original phases: + + - Through headphones speech synthesised with this model is not as + good. Through a loudspeaker it is very close to original phases. + + - If there are voicing errors, the speech can sound clicky or + staticy. If V speech is mistakenly declared UV, this model tends to + synthesise impulses or clicks, as there is usually very little shift or + dispersion through the LPC synthesis filter. + + - When combined with LPC amplitude modelling there is an additional + drop in quality. I am not sure why, theory is interformant energy + is raised making any phase errors more obvious. + + NOTES: + + 1/ This synthesis model is effectively the same as a simple LPC-10 + vocoders, and yet sounds much better. Why? Conventional wisdom + (AMBE, MELP) says mixed voicing is required for high quality + speech. + + 2/ I am pretty sure the Lincoln Lab sinusoidal coding guys (like xMBE + also from MIT) first described this zero phase model, I need to look + up the paper. + + 3/ Note that this approach could cause some discontinuities in + the phase at the edge of synthesis frames, as no attempt is made + to make sure that the phase tracks are continuous (the excitation + phases are continuous, but not the final phases after filtering + by the LPC spectra). Technically this is a bad thing. However + this may actually be a good thing, disturbing the phase tracks a + bit. More research needed, e.g. test a synthesis model that adds + a small delta-W to make phase tracks line up for voiced + harmonics. + +\*---------------------------------------------------------------------------*/ + +void phase_synth_zero_order( + int n_samp, + MODEL *model, + float *ex_phase, /* excitation phase of fundamental */ + COMP H[] /* L synthesis filter freq domain samples */ + +) +{ + int m; + float new_phi; + COMP Ex[MAX_AMP+1]; /* excitation samples */ + COMP A_[MAX_AMP+1]; /* synthesised harmonic samples */ + + /* + Update excitation fundamental phase track, this sets the position + of each pitch pulse during voiced speech. After much experiment + I found that using just this frame's Wo improved quality for UV + sounds compared to interpolating two frames Wo like this: + + ex_phase[0] += (*prev_Wo+model->Wo)*N_SAMP/2; + */ + + ex_phase[0] += (model->Wo)*n_samp; + ex_phase[0] -= TWO_PI*floorf(ex_phase[0]/TWO_PI + 0.5); + + for(m=1; m<=model->L; m++) { + + /* generate excitation */ + + if (model->voiced) { + + Ex[m].real = cosf(ex_phase[0]*m); + Ex[m].imag = sinf(ex_phase[0]*m); + } + else { + + /* When a few samples were tested I found that LPC filter + phase is not needed in the unvoiced case, but no harm in + keeping it. + */ + float phi = TWO_PI*(float)codec2_rand()/CODEC2_RAND_MAX; + Ex[m].real = cosf(phi); + Ex[m].imag = sinf(phi); + } + + /* filter using LPC filter */ + + A_[m].real = H[m].real*Ex[m].real - H[m].imag*Ex[m].imag; + A_[m].imag = H[m].imag*Ex[m].real + H[m].real*Ex[m].imag; + + /* modify sinusoidal phase */ + + new_phi = atan2f(A_[m].imag, A_[m].real+1E-12); + model->phi[m] = new_phi; + } + +} + + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: mag_to_phase + AUTHOR......: David Rowe + DATE CREATED: Jan 2017 + + Algorithm for http://www.dsprelated.com/showcode/20.php ported to C. See + also Octave function mag_to_phase.m + + Given a magnitude spectrum in dB, returns a minimum-phase phase + spectra. + +\*---------------------------------------------------------------------------*/ + +void mag_to_phase(float phase[], /* Nfft/2+1 output phase samples in radians */ + float Gdbfk[], /* Nfft/2+1 positive freq amplitudes samples in dB */ + int Nfft, + codec2_fft_cfg fft_fwd_cfg, + codec2_fft_cfg fft_inv_cfg + ) +{ + COMP Sdb[Nfft], c[Nfft], cf[Nfft], Cf[Nfft]; + int Ns = Nfft/2+1; + int i; + + /* install negative frequency components, 1/Nfft takes into + account kiss fft lack of scaling on ifft */ + + Sdb[0].real = Gdbfk[0]; + Sdb[0].imag = 0.0; + for(i=1; i. +*/ + +#ifndef __PHASE__ +#define __PHASE__ + +#include "codec2_fft.h" +#include "comp.h" + +void sample_phase(MODEL *model, COMP filter_phase[], COMP A[]); +void phase_synth_zero_order(int n_samp, MODEL *model, float *ex_phase, COMP filter_phase[]); + +void mag_to_phase(float phase[], float Gdbfk[], int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); + +#endif diff --git a/src/phi0.c b/src/phi0.c new file mode 100644 index 0000000..bacc400 --- /dev/null +++ b/src/phi0.c @@ -0,0 +1,218 @@ + +// phi0.c +// +// An approximation of the function +// +// This file is generated by the gen_phi0 scripts +// Any changes should be made to that file, not this one + +#include + +#define SI16(f) ((int32_t)(f * (1<<16))) + +float phi0( float xf ) { + + int32_t x = SI16(xf); + + if (x >= SI16(10.0f)) return(0.0f); + else { + if (x >= SI16(5.0f)) { + int i = 19 - (x >> 15); + switch (i) { + case 0: return(0.000116589f); // (9.5) + case 1: return(0.000192223f); // (9.0) + case 2: return(0.000316923f); // (8.5) + case 3: return(0.000522517f); // (8.0) + case 4: return(0.000861485f); // (7.5) + case 5: return(0.001420349f); // (7.0) + case 6: return(0.002341760f); // (6.5) + case 7: return(0.003860913f); // (6.0) + case 8: return(0.006365583f); // (5.5) + case 9: return(0.010495133f); // (5.0) + } + } + else { + if (x >= SI16(1.0f)) { + int i = 79 - (x >> 12); + switch (i) { + case 0: return(0.013903889f); // (4.9375) + case 1: return(0.014800644f); // (4.8750) + case 2: return(0.015755242f); // (4.8125) + case 3: return(0.016771414f); // (4.7500) + case 4: return(0.017853133f); // (4.6875) + case 5: return(0.019004629f); // (4.6250) + case 6: return(0.020230403f); // (4.5625) + case 7: return(0.021535250f); // (4.5000) + case 8: return(0.022924272f); // (4.4375) + case 9: return(0.024402903f); // (4.3750) + case 10: return(0.025976926f); // (4.3125) + case 11: return(0.027652501f); // (4.2500) + case 12: return(0.029436184f); // (4.1875) + case 13: return(0.031334956f); // (4.1250) + case 14: return(0.033356250f); // (4.0625) + case 15: return(0.035507982f); // (4.0000) + case 16: return(0.037798579f); // (3.9375) + case 17: return(0.040237016f); // (3.8750) + case 18: return(0.042832850f); // (3.8125) + case 19: return(0.045596260f); // (3.7500) + case 20: return(0.048538086f); // (3.6875) + case 21: return(0.051669874f); // (3.6250) + case 22: return(0.055003924f); // (3.5625) + case 23: return(0.058553339f); // (3.5000) + case 24: return(0.062332076f); // (3.4375) + case 25: return(0.066355011f); // (3.3750) + case 26: return(0.070637993f); // (3.3125) + case 27: return(0.075197917f); // (3.2500) + case 28: return(0.080052790f); // (3.1875) + case 29: return(0.085221814f); // (3.1250) + case 30: return(0.090725463f); // (3.0625) + case 31: return(0.096585578f); // (3.0000) + case 32: return(0.102825462f); // (2.9375) + case 33: return(0.109469985f); // (2.8750) + case 34: return(0.116545700f); // (2.8125) + case 35: return(0.124080967f); // (2.7500) + case 36: return(0.132106091f); // (2.6875) + case 37: return(0.140653466f); // (2.6250) + case 38: return(0.149757747f); // (2.5625) + case 39: return(0.159456024f); // (2.5000) + case 40: return(0.169788027f); // (2.4375) + case 41: return(0.180796343f); // (2.3750) + case 42: return(0.192526667f); // (2.3125) + case 43: return(0.205028078f); // (2.2500) + case 44: return(0.218353351f); // (2.1875) + case 45: return(0.232559308f); // (2.1250) + case 46: return(0.247707218f); // (2.0625) + case 47: return(0.263863255f); // (2.0000) + case 48: return(0.281099022f); // (1.9375) + case 49: return(0.299492155f); // (1.8750) + case 50: return(0.319127030f); // (1.8125) + case 51: return(0.340095582f); // (1.7500) + case 52: return(0.362498271f); // (1.6875) + case 53: return(0.386445235f); // (1.6250) + case 54: return(0.412057648f); // (1.5625) + case 55: return(0.439469363f); // (1.5000) + case 56: return(0.468828902f); // (1.4375) + case 57: return(0.500301872f); // (1.3750) + case 58: return(0.534073947f); // (1.3125) + case 59: return(0.570354566f); // (1.2500) + case 60: return(0.609381573f); // (1.1875) + case 61: return(0.651427083f); // (1.1250) + case 62: return(0.696805010f); // (1.0625) + case 63: return(0.745880827f); // (1.0000) + } + } + else { + if (x > SI16(0.007812f)) { + if (x > SI16(0.088388f)) { + if (x > SI16(0.250000f)) { + if (x > SI16(0.500000f)) { + if (x > SI16(0.707107f)) { + return(0.922449644f); + } else { + return(1.241248638f); + } + } else { + if (x > SI16(0.353553f)) { + return(1.573515241f); + } else { + return(1.912825912f); + } + } + } else { + if (x > SI16(0.125000f)) { + if (x > SI16(0.176777f)) { + return(2.255740095f); + } else { + return(2.600476919f); + } + } else { + return(2.946130351f); + } + } + } else { + if (x > SI16(0.022097f)) { + if (x > SI16(0.044194f)) { + if (x > SI16(0.062500f)) { + return(3.292243417f); + } else { + return(3.638586634f); + } + } else { + if (x > SI16(0.031250f)) { + return(3.985045009f); + } else { + return(4.331560985f); + } + } + } else { + if (x > SI16(0.011049f)) { + if (x > SI16(0.015625f)) { + return(4.678105767f); + } else { + return(5.024664952f); + } + } else { + return(5.371231340f); + } + } + } + } else { + if (x > SI16(0.000691f)) { + if (x > SI16(0.001953f)) { + if (x > SI16(0.003906f)) { + if (x > SI16(0.005524f)) { + return(5.717801329f); + } else { + return(6.064373119f); + } + } else { + if (x > SI16(0.002762f)) { + return(6.410945809f); + } else { + return(6.757518949f); + } + } + } else { + if (x > SI16(0.000977f)) { + if (x > SI16(0.001381f)) { + return(7.104092314f); + } else { + return(7.450665792f); + } + } else { + return(7.797239326f); + } + } + } else { + if (x > SI16(0.000173f)) { + if (x > SI16(0.000345f)) { + if (x > SI16(0.000488f)) { + return(8.143812888f); + } else { + return(8.490386464f); + } + } else { + if (x > SI16(0.000244f)) { + return(8.836960047f); + } else { + return(9.183533634f); + } + } + } else { + if (x > SI16(0.000086f)) { + if (x > SI16(0.000122f)) { + return(9.530107222f); + } else { + return(9.876680812f); + } + } else { + return(10.000000000f); + } + } + } + } + } + } + } + return(10.0f); +} diff --git a/src/phi0.h b/src/phi0.h new file mode 100644 index 0000000..0fa71df --- /dev/null +++ b/src/phi0.h @@ -0,0 +1,7 @@ +// phi0.h +#ifndef PHI0_H +#define PHI0_H + +extern float phi0( float xf ); + +#endif diff --git a/src/pilot_coeff.h b/src/pilot_coeff.h new file mode 100644 index 0000000..85af696 --- /dev/null +++ b/src/pilot_coeff.h @@ -0,0 +1,41 @@ +/* Generated by pilot_coeff_file() Octave function */ + +// const removed since this provides gain +// on the STM32F4 platform + +#ifdef CORTEX_M4 +/* const */ float pilot_coeff[]={ +#else +const float pilot_coeff[]={ +#endif + 0.00223001, + 0.00301037, + 0.00471258, + 0.0075934, + 0.0118145, + 0.0174153, + 0.0242969, + 0.0322204, + 0.0408199, + 0.0496286, + 0.0581172, + 0.0657392, + 0.0719806, + 0.0764066, + 0.0787022, + 0.0787022, + 0.0764066, + 0.0719806, + 0.0657392, + 0.0581172, + 0.0496286, + 0.0408199, + 0.0322204, + 0.0242969, + 0.0174153, + 0.0118145, + 0.0075934, + 0.00471258, + 0.00301037, + 0.00223001 +}; diff --git a/src/pilots_coh.h b/src/pilots_coh.h new file mode 100644 index 0000000..9271195 --- /dev/null +++ b/src/pilots_coh.h @@ -0,0 +1,6 @@ +/* Generated by write_pilot_file() Octave function */ + +float pilots_coh[][PILOTS_NC]={ + { 1.000000, -1.000000, 1.000000, -1.000000, 1.000000, -1.000000, -1.000000}, + { -1.000000, 1.000000, 1.000000, -1.000000, 1.000000, 1.000000, 1.000000} +}; \ No newline at end of file diff --git a/src/postfilter.c b/src/postfilter.c new file mode 100644 index 0000000..96f4f02 --- /dev/null +++ b/src/postfilter.c @@ -0,0 +1,142 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: postfilter.c + AUTHOR......: David Rowe + DATE CREATED: 13/09/09 + + Postfilter to improve sound quality for speech with high levels of + background noise. Unlike mixed-excitation models requires no bits + to be transmitted to handle background noise. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +#include "defines.h" +#include "comp.h" +#include "dump.h" +#include "sine.h" +#include "postfilter.h" + +/*---------------------------------------------------------------------------*\ + + DEFINES + +\*---------------------------------------------------------------------------*/ + +#define BG_THRESH 40.0 /* only consider low levels signals for bg_est */ +#define BG_BETA 0.1 /* averaging filter constant */ +#define BG_MARGIN 6.0 /* harmonics this far above BG noise are + randomised. Helped make bg noise less + spikey (impulsive) for mmt1, but speech was + perhaps a little rougher. + */ + +/*---------------------------------------------------------------------------*\ + + postfilter() + + The post filter is designed to help with speech corrupted by + background noise. The zero phase model tends to make speech with + background noise sound "clicky". With high levels of background + noise the low level inter-formant parts of the spectrum will contain + noise rather than speech harmonics, so modelling them as voiced + (i.e. a continuous, non-random phase track) is inaccurate. + + Some codecs (like MBE) have a mixed voicing model that breaks the + spectrum into voiced and unvoiced regions. Several bits/frame + (5-12) are required to transmit the frequency selective voicing + information. Mixed excitation also requires accurate voicing + estimation (parameter estimators always break occasionally under + exceptional conditions). + + In our case we use a post filter approach which requires no + additional bits to be transmitted. The decoder measures the average + level of the background noise during unvoiced frames. If a harmonic + is less than this level it is made unvoiced by randomising it's + phases. + + This idea is rather experimental. Some potential problems that may + happen: + + 1/ If someone says "aaaaaaaahhhhhhhhh" will background estimator track + up to speech level? This would be a bad thing. + + 2/ If background noise suddenly disappears from the source speech does + estimate drop quickly? What is noise suddenly re-appears? + + 3/ Background noise with a non-flat sepctrum. Current algorithm just + comsiders scpetrum as a whole, but this could be broken up into + bands, each with their own estimator. + + 4/ Males and females with the same level of background noise. Check + performance the same. Changing Wo affects width of each band, may + affect bg energy estimates. + + 5/ Not sure what happens during long periods of voiced speech + e.g. "sshhhhhhh" + +\*---------------------------------------------------------------------------*/ + +void postfilter( + MODEL *model, + float *bg_est +) +{ + int m, uv; + float e, thresh; + + /* determine average energy across spectrum */ + + e = 1E-12; + for(m=1; m<=model->L; m++) + e += model->A[m]*model->A[m]; + + assert(e > 0.0); + e = 10.0*log10f(e/model->L); + + /* If beneath threshold, update bg estimate. The idea + of the threshold is to prevent updating during high level + speech. */ + + if ((e < BG_THRESH) && !model->voiced) + *bg_est = *bg_est*(1.0 - BG_BETA) + e*BG_BETA; + + /* now mess with phases during voiced frames to make any harmonics + less then our background estimate unvoiced. + */ + + uv = 0; + thresh = POW10F((*bg_est + BG_MARGIN)/20.0); + if (model->voiced) + for(m=1; m<=model->L; m++) + if (model->A[m] < thresh) { + model->phi[m] = (TWO_PI/CODEC2_RAND_MAX)*(float)codec2_rand(); + uv++; + } + +#ifdef DUMP + dump_bg(e, *bg_est, 100.0*uv/model->L); +#endif + +} diff --git a/src/postfilter.h b/src/postfilter.h new file mode 100644 index 0000000..156714e --- /dev/null +++ b/src/postfilter.h @@ -0,0 +1,33 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: postfilter.h + AUTHOR......: David Rowe + DATE CREATED: 13/09/09 + + Postfilter header file. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __POSTFILTER__ +#define __POSTFILTER__ + +void postfilter(MODEL *model, float *bg_est); + +#endif diff --git a/src/quantise.c b/src/quantise.c new file mode 100644 index 0000000..36af5f4 --- /dev/null +++ b/src/quantise.c @@ -0,0 +1,1238 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: quantise.c + AUTHOR......: David Rowe + DATE CREATED: 31/5/92 + + Quantisation functions for the sinusoidal coder. + +\*---------------------------------------------------------------------------*/ + +/* + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . + +*/ + +#include +#include +#include +#include +#include +#include + +#include "defines.h" +#include "dump.h" +#include "quantise.h" +#include "lpc.h" +#include "lsp.h" +#include "codec2_fft.h" +#include "phase.h" +#include "mbest.h" + +#undef PROFILE +#include "machdep.h" + +#define LSP_DELTA1 0.01 /* grid spacing for LSP root searches */ + +/*---------------------------------------------------------------------------*\ + + FUNCTION HEADERS + +\*---------------------------------------------------------------------------*/ + +float speech_to_uq_lsps(float lsp[], float ak[], float Sn[], float w[], + int m_pitch, int order); + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +int lsp_bits(int i) { + return lsp_cb[i].log2m; +} + +int lspd_bits(int i) { + return lsp_cbd[i].log2m; +} + +int lsp_pred_vq_bits(int i) { + return lsp_cbjmv[i].log2m; +} + +/*---------------------------------------------------------------------------*\ + + quantise + + Quantises vec by choosing the nearest vector in codebook cb, and + returns the vector index. The squared error of the quantised vector + is added to se. + +\*---------------------------------------------------------------------------*/ + +long quantise(const float * cb, float vec[], float w[], int k, int m, float *se) +/* float cb[][K]; current VQ codebook */ +/* float vec[]; vector to quantise */ +/* float w[]; weighting vector */ +/* int k; dimension of vectors */ +/* int m; size of codebook */ +/* float *se; accumulated squared error */ +{ + float e; /* current error */ + long besti; /* best index so far */ + float beste; /* best error so far */ + long j; + int i; + float diff; + + besti = 0; + beste = 1E32; + for(j=0; j max_Rw) + max_Rw = Rw[i]; + if (Rw[i] < min_Rw) + min_Rw = Rw[i]; + + } + + PROFILE_SAMPLE_AND_LOG(tr, tww, " R"); + + #ifdef DUMP + if (dump) + dump_Rw(Rw); + #endif + + /* create post filter mag spectrum and apply ------------------*/ + + /* measure energy before post filtering */ + + e_before = 1E-4; + for(i=0; i 242 ms + // so please leave it as is or improve further + // since this code is called 4 times it results in almost 4ms gain (21ms -> 17ms per audio frame decode @ 1300 ) + + for(i=0; iL; m++) { + am = (int)((m - 0.5)*model->Wo/r + 0.5); + bm = (int)((m + 0.5)*model->Wo/r + 0.5); + + // FIXME: With arm_rfft_fast_f32 we have to use this + // otherwise sometimes a to high bm is calculated + // which causes trouble later in the calculation + // chain + // it seems for some reason model->Wo is calculated somewhat too high + if (bm>FFT_ENC/2) + { + bm = FFT_ENC/2; + } + Em = 0.0; + + for(i=am; iA[m]*model->A[m]; + noise += (model->A[m] - Am)*(model->A[m] - Am); + + /* This code significantly improves perf of LPC model, in + particular when combined with phase0. The LPC spectrum tends + to track just under the peaks of the spectral envelope, and + just above nulls. This algorithm does the reverse to + compensate - raising the amplitudes of spectral peaks, while + attenuating the null. This enhances the formants, and + suppresses the energy between formants. */ + + if (sim_pf) { + if (Am > model->A[m]) + Am *= 0.7; + if (Am < model->A[m]) + Am *= 1.4; + } + model->A[m] = Am; + } + *snr = 10.0*log10f(signal/noise); + + PROFILE_SAMPLE_AND_LOG2(tpf, " rec"); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: encode_Wo() + AUTHOR......: David Rowe + DATE CREATED: 22/8/2010 + + Encodes Wo using a WO_LEVELS quantiser. + +\*---------------------------------------------------------------------------*/ + +int encode_Wo(C2CONST *c2const, float Wo, int bits) +{ + int index, Wo_levels = 1<Wo_min; + float Wo_max = c2const->Wo_max; + float norm; + + norm = (Wo - Wo_min)/(Wo_max - Wo_min); + index = floorf(Wo_levels * norm + 0.5); + if (index < 0 ) index = 0; + if (index > (Wo_levels-1)) index = Wo_levels-1; + + return index; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: decode_Wo() + AUTHOR......: David Rowe + DATE CREATED: 22/8/2010 + + Decodes Wo using a WO_LEVELS quantiser. + +\*---------------------------------------------------------------------------*/ + +float decode_Wo(C2CONST *c2const, int index, int bits) +{ + float Wo_min = c2const->Wo_min; + float Wo_max = c2const->Wo_max; + float step; + float Wo; + int Wo_levels = 1<Wo_min; + float Wo_max = c2const->Wo_max; + float norm; + + norm = (log10f(Wo) - log10f(Wo_min))/(log10f(Wo_max) - log10f(Wo_min)); + index = floorf(Wo_levels * norm + 0.5); + if (index < 0 ) index = 0; + if (index > (Wo_levels-1)) index = Wo_levels-1; + + return index; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: decode_log_Wo() + AUTHOR......: David Rowe + DATE CREATED: 22/8/2010 + + Decodes Wo using a WO_LEVELS quantiser in the log domain. + +\*---------------------------------------------------------------------------*/ + +float decode_log_Wo(C2CONST *c2const, int index, int bits) +{ + float Wo_min = c2const->Wo_min; + float Wo_max = c2const->Wo_max; + float step; + float Wo; + int Wo_levels = 1<Wo < (PI*150.0/4000)) { + model->A[1] *= 0.032; + } +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: encode_energy() + AUTHOR......: David Rowe + DATE CREATED: 22/8/2010 + + Encodes LPC energy using an E_LEVELS quantiser. + +\*---------------------------------------------------------------------------*/ + +int encode_energy(float e, int bits) +{ + int index, e_levels = 1< (e_levels-1)) index = e_levels-1; + + return index; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: decode_energy() + AUTHOR......: David Rowe + DATE CREATED: 22/8/2010 + + Decodes energy using a E_LEVELS quantiser. + +\*---------------------------------------------------------------------------*/ + +float decode_energy(int index, int bits) +{ + float e_min = E_MIN_DB; + float e_max = E_MAX_DB; + float step; + float e; + int e_levels = 1<.5) /* Lower if not stable */ + { + w[0] *= .5; + } + + /* Lower weight for low energy */ + if (x[1] < xp[1]-10) + { + w[1] *= .5; + } + if (x[1] < xp[1]-20) + { + w[1] *= .5; + } + + //w[0] = 30; + //w[1] = 1; + + /* Square the weights because it's applied on the squared error */ + w[0] *= w[0]; + w[1] *= w[1]; + +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: quantise_WoE() + AUTHOR......: Jean-Marc Valin & David Rowe + DATE CREATED: 29 Feb 2012 + + Experimental joint Wo and LPC energy vector quantiser developed by + Jean-Marc Valin. Exploits correlations between the difference in + the log pitch and log energy from frame to frame. For example + both the pitch and energy tend to only change by small amounts + during voiced speech, however it is important that these changes be + coded carefully. During unvoiced speech they both change a lot but + the ear is less sensitive to errors so coarser quantisation is OK. + + The ear is sensitive to log energy and loq pitch so we quantise in + these domains. That way the error measure used to quantise the + values is close to way the ear senses errors. + + See http://jmspeex.livejournal.com/10446.html + +\*---------------------------------------------------------------------------*/ + +void quantise_WoE(C2CONST *c2const, MODEL *model, float *e, float xq[]) +{ + int i, n1; + float x[2]; + float err[2]; + float w[2]; + const float *codebook1 = ge_cb[0].cb; + int nb_entries = ge_cb[0].m; + int ndim = ge_cb[0].k; + float Wo_min = c2const->Wo_min; + float Wo_max = c2const->Wo_max; + float Fs = c2const->Fs; + + /* VQ is only trained for Fs = 8000 Hz */ + + assert(Fs == 8000); + + x[0] = log10f((model->Wo/PI)*4000.0/50.0)/log10f(2); + x[1] = 10.0*log10f(1e-4 + *e); + + compute_weights2(x, xq, w); + for (i=0;iWo = powf(2.0, xq[0])*(PI*50.0)/4000.0; + + /* bit errors can make us go out of range leading to all sorts of + probs like seg faults */ + + if (model->Wo > Wo_max) model->Wo = Wo_max; + if (model->Wo < Wo_min) model->Wo = Wo_min; + + model->L = PI/model->Wo; /* if we quantise Wo re-compute L */ + + *e = POW10F(xq[1]/10.0); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: encode_WoE() + AUTHOR......: Jean-Marc Valin & David Rowe + DATE CREATED: 11 May 2012 + + Joint Wo and LPC energy vector quantiser developed my Jean-Marc + Valin. Returns index, and updated states xq[]. + +\*---------------------------------------------------------------------------*/ + +int encode_WoE(MODEL *model, float e, float xq[]) +{ + int i, n1; + float x[2]; + float err[2]; + float w[2]; + const float *codebook1 = ge_cb[0].cb; + int nb_entries = ge_cb[0].m; + int ndim = ge_cb[0].k; + + assert((1<Wo/PI)*4000.0/50.0)/log10f(2); + x[1] = 10.0*log10f(1e-4 + e); + + compute_weights2(x, xq, w); + for (i=0;iWo_min; + float Wo_max = c2const->Wo_max; + + for (i=0;iWo = powf(2.0, xq[0])*(PI*50.0)/4000.0; + + /* bit errors can make us go out of range leading to all sorts of + probs like seg faults */ + + if (model->Wo > Wo_max) model->Wo = Wo_max; + if (model->Wo < Wo_min) model->Wo = Wo_min; + + model->L = PI/model->Wo; /* if we quantise Wo re-compute L */ + + *e = POW10F(xq[1]/10.0); +} + diff --git a/src/quantise.h b/src/quantise.h new file mode 100644 index 0000000..acba3d9 --- /dev/null +++ b/src/quantise.h @@ -0,0 +1,107 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: quantise.h + AUTHOR......: David Rowe + DATE CREATED: 31/5/92 + + Quantisation functions for the sinusoidal coder. + +\*---------------------------------------------------------------------------*/ + +/* + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#ifndef __QUANTISE__ +#define __QUANTISE__ + +#include "codec2_fft.h" +#include "comp.h" + +#define WO_BITS 7 +#define WO_LEVELS (1<. +// +//========================================================================== + +#include +#include +#include +#include +#include +#include "freedv_api.h" +#include "freedv_api_internal.h" +#include "reliable_text.h" +#include "ldpc_codes.h" +#include "ofdm_internal.h" +#include "gp_interleaver.h" + +#define LDPC_TOTAL_SIZE_BITS (112) + +#define RELIABLE_TEXT_UW_LENGTH_BITS (16) +#define RELIABLE_TEXT_MAX_ZEROES_IN_UW (4) + +#define RELIABLE_TEXT_MAX_LENGTH (8) +#define RELIABLE_TEXT_CRC_LENGTH (1) +#define RELIABLE_TEXT_MAX_RAW_LENGTH (RELIABLE_TEXT_MAX_LENGTH + RELIABLE_TEXT_CRC_LENGTH) + +/* Two bytes of text/CRC equal four bytes of LDPC(112,56). */ +#define RELIABLE_TEXT_BYTES_PER_ENCODED_SEGMENT (8) + +/* Internal definition of reliable_text_t. */ +typedef struct +{ + on_text_rx_t text_rx_callback; + void* callback_state; + + char tx_text[LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS]; + int tx_text_index; + int tx_text_length; + + char inbound_pending_bits[RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS]; + _Complex float inbound_pending_syms[(RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) / 2]; + float inbound_pending_amps[(RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) / 2]; + int bit_index; + int sym_index; + + int has_successfully_decoded; + + struct LDPC ldpc; + struct freedv* fdv; +} reliable_text_impl_t; + +// 6 bit character set for text field use: +// 0: ASCII null +// 1-9: ASCII 38-47 +// 10-19: ASCII '0'-'9' +// 20-46: ASCII 'A'-'Z' +// 47: ASCII ' ' +static void convert_callsign_to_ota_string_(const char* input, char* output, int maxLength) +{ + assert(input != NULL); + assert(output != NULL); + assert(maxLength >= 0); + + int outidx = 0; + for (size_t index = 0; index < maxLength; index++) + { + if (input[index] == 0) break; + + if (input[index] >= 38 && input[index] <= 47) + { + output[outidx++] = input[index] - 37; + } + else if (input[index] >= '0' && input[index] <= '9') + { + output[outidx++] = input[index] - '0' + 10; + } + else if (input[index] >= 'A' && input[index] <= 'Z') + { + output[outidx++] = input[index] - 'A' + 20; + } + else if (input[index] >= 'a' && input[index] <= 'z') + { + output[outidx++] = toupper(input[index]) - 'A' + 20; + } + } + output[outidx] = 0; +} + +static void convert_ota_string_to_callsign_(const char* input, char* output, int maxLength) +{ + assert(input != NULL); + assert(output != NULL); + assert(maxLength >= 0); + + int outidx = 0; + for (size_t index = 0; index < maxLength; index++) + { + if (input[index] == 0) break; + + if (input[index] >= 1 && input[index] <= 9) + { + output[outidx++] = input[index] + 37; + } + else if (input[index] >= 10 && input[index] <= 19) + { + output[outidx++] = input[index] - 10 + '0'; + } + else if (input[index] >= 20 && input[index] <= 46) + { + output[outidx++] = input[index] - 20 + 'A'; + } + } + output[outidx] = 0; +} + +static char calculateCRC8_(char* input, int length) +{ + assert(input != NULL); + assert(length >= 0); + + unsigned char generator = 0x1D; + unsigned char crc = 0x00; /* start with 0 so first byte can be 'xored' in */ + + while (length > 0) + { + unsigned char ch = *input++; + length--; + + // Break out if we see a null. + if (ch == 0) break; + + crc ^= ch; /* XOR-in the next input byte */ + + for (int i = 0; i < 8; i++) + { + if ((crc & 0x80) != 0) + { + crc = (unsigned char)((crc << 1) ^ generator); + } + else + { + crc <<= 1; + } + } + } + + return crc; +} + +static int reliable_text_ldpc_decode(reliable_text_impl_t* obj, char* dest) +{ + assert(obj != NULL); + assert(dest != NULL); + + char* src = &obj->inbound_pending_bits[RELIABLE_TEXT_UW_LENGTH_BITS]; + char deinterleavedBits[LDPC_TOTAL_SIZE_BITS]; + _Complex float deinterleavedSyms[LDPC_TOTAL_SIZE_BITS / 2]; + float deinterleavedAmps[LDPC_TOTAL_SIZE_BITS / 2]; + float incomingData[LDPC_TOTAL_SIZE_BITS]; + float llr[LDPC_TOTAL_SIZE_BITS]; + unsigned char output[LDPC_TOTAL_SIZE_BITS]; + int parityCheckCount = 0; + + if (obj->bit_index == obj->sym_index * 2) + { + // Use soft decision for the LDPC decoder. + + int Npayloadsymsperpacket = LDPC_TOTAL_SIZE_BITS / 2; + + // Deinterleave symbols + gp_deinterleave_comp ((COMP*)deinterleavedSyms, (COMP*)&obj->inbound_pending_syms[RELIABLE_TEXT_UW_LENGTH_BITS/2], Npayloadsymsperpacket); + gp_deinterleave_float(deinterleavedAmps, &obj->inbound_pending_amps[RELIABLE_TEXT_UW_LENGTH_BITS/2], Npayloadsymsperpacket); + + float EsNo = 3.0; // note: constant from freedv_700.c + + symbols_to_llrs(llr, (COMP*)deinterleavedSyms, deinterleavedAmps, + EsNo, obj->fdv->ofdm->mean_amp, Npayloadsymsperpacket); + } + else + { + // Deinterlace the received bits. + gp_deinterleave_bits(deinterleavedBits, src, LDPC_TOTAL_SIZE_BITS / 2); + + // We don't have symbol data (likely due to incorrect mode), so we fall back + // to hard decision. + for (int bitIndex = 0; bitIndex < LDPC_TOTAL_SIZE_BITS; bitIndex++) + { + //fprintf(stderr, "rx bit %d: %d\n", bitIndex, deinterleavedBits[bitIndex]); + + // Map to value expected by sd_to_llr() + incomingData[bitIndex] = 1.0 - 2.0 * deinterleavedBits[bitIndex]; + } + + sd_to_llr(llr, incomingData, LDPC_TOTAL_SIZE_BITS); + } + run_ldpc_decoder(&obj->ldpc, output, llr, &parityCheckCount); + + // Data is valid if BER < 0.2 + float ber_est = (float)(obj->ldpc.NumberParityBits - parityCheckCount)/obj->ldpc.NumberParityBits; + int result = (ber_est < 0.2); + + //fprintf(stderr, "BER est: %f\n", ber_est); + if (result) + { + memset(dest, 0, RELIABLE_TEXT_BYTES_PER_ENCODED_SEGMENT); + + for (int bitIndex = 0; bitIndex < 8; bitIndex++) + { + if (output[bitIndex]) + dest[0] |= 1 << bitIndex; + } + for (int bitIndex = 8; bitIndex < (LDPC_TOTAL_SIZE_BITS / 2); bitIndex++) + { + int bitsSinceCrc = bitIndex - 8; + if (output[bitIndex]) + dest[1 + (bitsSinceCrc / 6)] |= (1 << (bitsSinceCrc % 6)); + } + } + + return result; +} + +static void reliable_text_freedv_callback_rx_sym(void *state, _Complex float sym, float amp) +{ + reliable_text_impl_t* obj = (reliable_text_impl_t*)state; + assert(obj != NULL); + + // Save the symbol. We'll use it during the bit handling below. + obj->inbound_pending_syms[obj->sym_index] = (complex float)sym; + obj->inbound_pending_amps[obj->sym_index++] = amp; + + //fprintf(stderr, "Got sym: %f, amp: %f\n", sym, amp); +} + +static int check_uw(reliable_text_impl_t* obj) +{ + assert(obj != NULL); + + // Count number of errors in UW. + int num_zeroes = 0; + for (int bit = 0; bit < RELIABLE_TEXT_UW_LENGTH_BITS; bit++) + { + if (obj->inbound_pending_bits[bit] ^ 1) + { + num_zeroes++; + } + } + return num_zeroes <= RELIABLE_TEXT_MAX_ZEROES_IN_UW; +} + +static void reliable_text_freedv_callback_rx(void *state, char chr) +{ + //fprintf(stderr, "char: %d\n", (chr & 0x3F)); + + reliable_text_impl_t* obj = (reliable_text_impl_t*)state; + assert(obj != NULL); + + // No need to further process if we got a valid string already. + if (obj->has_successfully_decoded) + { + return; + } + + // Append character to the end of the symbol list. + obj->inbound_pending_bits[obj->bit_index++] = chr; + + // Verify UW and data. + if (obj->bit_index >= RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) + { + int uw_bits_valid = check_uw(obj); + + // Only verify data if UW is valid. + int resync = !uw_bits_valid; + if (uw_bits_valid) + { + // We have all the bits we need, so we're ready to decode. + char decodedStr[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; + char rawStr[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; + memset(rawStr, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); + memset(decodedStr, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); + + if (reliable_text_ldpc_decode(obj, rawStr) != 0) + { + // BER is under limits. + convert_ota_string_to_callsign_(&rawStr[RELIABLE_TEXT_CRC_LENGTH], &decodedStr[RELIABLE_TEXT_CRC_LENGTH], RELIABLE_TEXT_MAX_LENGTH); + decodedStr[0] = rawStr[0]; // CRC + + // Get expected and actual CRC. + unsigned char receivedCRC = decodedStr[0]; + unsigned char calcCRC = calculateCRC8_(&rawStr[RELIABLE_TEXT_CRC_LENGTH], RELIABLE_TEXT_MAX_LENGTH); + + //fprintf(stderr, "rxCRC: %d, calcCRC: %d, decodedStr: %s\n", receivedCRC, calcCRC, &decodedStr[RELIABLE_TEXT_CRC_LENGTH]); + if (receivedCRC == calcCRC) + { + // We got a valid string. Call assigned callback. + obj->has_successfully_decoded = 1; + obj->text_rx_callback(obj, &decodedStr[RELIABLE_TEXT_CRC_LENGTH], strlen(&decodedStr[RELIABLE_TEXT_CRC_LENGTH]), obj->callback_state); + } + + // Reset UW decoding for next callsign. + obj->bit_index = 0; + obj->sym_index = 0; + memset(&obj->inbound_pending_syms, 0, sizeof(complex float)*LDPC_TOTAL_SIZE_BITS/2); + memset(&obj->inbound_pending_amps, 0, sizeof(float)*LDPC_TOTAL_SIZE_BITS/2); + memset(&obj->inbound_pending_bits, 0, LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS); + } + else + { + // It's possible that we didn't actually sync on UW after all. + // Shift existing UW back 1 bit (or 2 if OFDM), add the bit(s) + // from the data portion to UW, and try again next bit(s) we receive. + resync = 1; + } + } + + if (resync) + { + obj->bit_index--; + memmove(&obj->inbound_pending_bits[0], &obj->inbound_pending_bits[1], RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS - 1); + if (obj->sym_index > 0) + { + memmove(&obj->inbound_pending_bits[0], &obj->inbound_pending_bits[1], RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS - 1); + memmove(&obj->inbound_pending_syms[0], &obj->inbound_pending_syms[1], sizeof(_Complex float)*((RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS)/2 - 1)); + memmove(&obj->inbound_pending_amps[0], &obj->inbound_pending_amps[1], sizeof(float)*((RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS)/2 - 1)); + obj->bit_index--; + obj->sym_index--; + } + } + } +} + +static char reliable_text_freedv_callback_tx(void *state) +{ + reliable_text_impl_t* obj = (reliable_text_impl_t*)state; + assert(obj != NULL); + + char ret = obj->tx_text[obj->tx_text_index]; + obj->tx_text_index = (obj->tx_text_index + 1) % (obj->tx_text_length); + + //fprintf(stderr, "char: %d\n", ret); + return ret; +} + +reliable_text_t reliable_text_create() +{ + reliable_text_impl_t* ret = calloc(1, sizeof(reliable_text_impl_t)); + assert(ret != NULL); + + // Load LDPC code into memory. + int code_index = ldpc_codes_find("HRA_56_56"); + memcpy(&ret->ldpc, &ldpc_codes[code_index], sizeof(struct LDPC)); + + return (reliable_text_t)ret; +} + +void reliable_text_destroy(reliable_text_t ptr) +{ + assert(ptr != NULL); + + reliable_text_unlink_from_freedv(ptr); + free(ptr); +} + +void reliable_text_reset(reliable_text_t ptr) +{ + reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; + assert(impl != NULL); + + impl->bit_index = 0; + impl->sym_index = 0; + impl->has_successfully_decoded = 0; + memset(&impl->inbound_pending_syms, 0, sizeof(complex float)*LDPC_TOTAL_SIZE_BITS/2); + memset(&impl->inbound_pending_amps, 0, sizeof(float)*LDPC_TOTAL_SIZE_BITS/2); + memset(&impl->inbound_pending_bits, 0, LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS); +} + +void reliable_text_set_string(reliable_text_t ptr, const char* str, int strlength) +{ + reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; + assert(impl != NULL); + + char tmp[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; + memset(tmp, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); + + convert_callsign_to_ota_string_(str, &tmp[RELIABLE_TEXT_CRC_LENGTH], strlength < RELIABLE_TEXT_MAX_LENGTH ? strlength : RELIABLE_TEXT_MAX_LENGTH); + + int txt_length = strlen(&tmp[RELIABLE_TEXT_CRC_LENGTH]); + if (txt_length >= RELIABLE_TEXT_MAX_LENGTH) + { + txt_length = RELIABLE_TEXT_MAX_LENGTH; + } + impl->tx_text_length = RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS; + impl->tx_text_index = 0; + unsigned char crc = calculateCRC8_(&tmp[RELIABLE_TEXT_CRC_LENGTH], txt_length); + tmp[0] = crc; + + // Encode block of text using LDPC(112,56). + unsigned char ibits[LDPC_TOTAL_SIZE_BITS / 2]; + unsigned char pbits[LDPC_TOTAL_SIZE_BITS / 2]; + memset(ibits, 0, LDPC_TOTAL_SIZE_BITS / 2); + memset(pbits, 0, LDPC_TOTAL_SIZE_BITS / 2); + for (int index = 0; index < 8; index++) + { + if (tmp[0] & (1 << index)) ibits[index] = 1; + } + + // Pack 6 bit characters into single LDPC block. + for (int ibitsBitIndex = 8; ibitsBitIndex < (LDPC_TOTAL_SIZE_BITS / 2); ibitsBitIndex++) + { + int bitsFromCrc = ibitsBitIndex - 8; + unsigned int byte = tmp[RELIABLE_TEXT_CRC_LENGTH + bitsFromCrc / 6]; + unsigned int bitToCheck = bitsFromCrc % 6; + //fprintf(stderr, "bit index: %d, byte: %x, bit to check: %d, result: %d\n", ibitsBitIndex, byte, bitToCheck, (byte & (1 << bitToCheck)) != 0); + + if (byte & (1 << bitToCheck)) + { + ibits[ibitsBitIndex] = 1; + } + } + + encode(&impl->ldpc, ibits, pbits); + + // Split LDPC encoded bits into individual bits, with the first RELIABLE_TEXT_UW_LENGTH_BITS being UW. + char tmpbits[LDPC_TOTAL_SIZE_BITS]; + + memset(impl->tx_text, 1, RELIABLE_TEXT_UW_LENGTH_BITS); + memset(impl->tx_text + RELIABLE_TEXT_UW_LENGTH_BITS, 0, LDPC_TOTAL_SIZE_BITS); + memcpy(&tmpbits[0], &ibits[0], LDPC_TOTAL_SIZE_BITS / 2); + memcpy(&tmpbits[LDPC_TOTAL_SIZE_BITS / 2], &pbits[0], LDPC_TOTAL_SIZE_BITS / 2); + + // Interleave the bits together to enhance fading performance. + gp_interleave_bits(&impl->tx_text[RELIABLE_TEXT_UW_LENGTH_BITS], tmpbits, LDPC_TOTAL_SIZE_BITS / 2); +} + +void reliable_text_use_with_freedv(reliable_text_t ptr, struct freedv* fdv, on_text_rx_t text_rx_fn, void* state) +{ + reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; + assert(impl != NULL); + + impl->callback_state = state; + impl->text_rx_callback = text_rx_fn; + impl->fdv = fdv; + freedv_set_callback_txt(fdv, reliable_text_freedv_callback_rx, reliable_text_freedv_callback_tx, impl); + freedv_set_callback_txt_sym(fdv, reliable_text_freedv_callback_rx_sym, impl); + + // Use code 3 for varicode en/decode and handle all framing at this level. + varicode_set_code_num(&fdv->varicode_dec_states, 3); +} + +struct freedv* reliable_text_get_freedv_obj(reliable_text_t ptr) +{ + reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; + assert(impl != NULL); + + return impl->fdv; +} + +void reliable_text_unlink_from_freedv(reliable_text_t ptr) +{ + reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; + assert(impl != NULL); + + if (impl->fdv) + { + freedv_set_callback_txt(impl->fdv, NULL, NULL, NULL); + freedv_set_callback_txt_sym(impl->fdv, NULL, NULL); + varicode_set_code_num(&impl->fdv->varicode_dec_states, 1); + impl->fdv = NULL; + } +} diff --git a/src/reliable_text.h b/src/reliable_text.h new file mode 100644 index 0000000..ae747c6 --- /dev/null +++ b/src/reliable_text.h @@ -0,0 +1,64 @@ +//========================================================================== +// Name: reliable_text.h +// +// Purpose: Handles reliable text (e.g. text with FEC). +// Created: August 15, 2021 +// Authors: Mooneer Salem +// +// License: +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License version 2.1, +// as published by the Free Software Foundation. This program is +// distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program; if not, see . +// +//========================================================================== + +#ifndef RELIABLE_TEXT_H +#define RELIABLE_TEXT_H + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/* Forward define struct freedv for use by the function prototypes below. */ +struct freedv; + +/* Hide internals of reliable_text_t. */ +typedef void* reliable_text_t; + +/* Function type for callback (when full reliable text has been received). */ +typedef void(*on_text_rx_t)(reliable_text_t rt, const char* txt_ptr, int length, void* state); + +/* Allocate reliable_text object. */ +reliable_text_t reliable_text_create(); + +/* Destroy reliable_text object. */ +void reliable_text_destroy(reliable_text_t ptr); + +/* Reset reliable_text object for next sync. */ +void reliable_text_reset(reliable_text_t ptr); + +/* Sets string that is sent on TX. */ +void reliable_text_set_string(reliable_text_t ptr, const char* str, int strlength); + +/* Link FreeDV object to reliable_text object. */ +void reliable_text_use_with_freedv(reliable_text_t ptr, struct freedv* fdv, on_text_rx_t text_rx_fn, void* state); + +/* Returns associated struct freedv object. */ +struct freedv* reliable_text_get_freedv_obj(reliable_text_t ptr); + +/* Unlink FreeDV object from reliable_text object. */ +void reliable_text_unlink_from_freedv(reliable_text_t ptr); + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif // RELIABLE_TEXT_H diff --git a/src/rn.h b/src/rn.h new file mode 100644 index 0000000..934f458 --- /dev/null +++ b/src/rn.h @@ -0,0 +1,964 @@ +/* Generated by rn_file() Octave function */ + +const float gt_alpha5_root[]={ + 2.86997e-05, + 2.2286e-05, + 1.82863e-05, + 1.42303e-05, + 1.04905e-05, + 6.70859e-06, + 3.05918e-06, + -6.22187e-07, + -4.22748e-06, + -7.85603e-06, + -1.14317e-05, + -1.50227e-05, + -1.85712e-05, + -2.21275e-05, + -2.56455e-05, + -2.91642e-05, + -3.26453e-05, + -3.61199e-05, + -3.95556e-05, + -4.29778e-05, + -4.63581e-05, + -4.97179e-05, + -5.3032e-05, + -5.63184e-05, + -5.95548e-05, + -6.27565e-05, + -6.59032e-05, + -6.90085e-05, + -7.20538e-05, + -7.50509e-05, + -7.7983e-05, + -8.08605e-05, + -8.36678e-05, + -8.64141e-05, + -8.9085e-05, + -9.16888e-05, + -9.42119e-05, + -9.66619e-05, + -9.9026e-05, + -0.000101311, + -0.000103505, + -0.000105614, + -0.000107627, + -0.00010955, + -0.000111372, + -0.000113099, + -0.00011472, + -0.000116241, + -0.000117652, + -0.000118959, + -0.000120152, + -0.000121235, + -0.000122201, + -0.000123053, + -0.000123784, + -0.000124397, + -0.000124884, + -0.00012525, + -0.000125487, + -0.000125598, + -0.000125578, + -0.000125428, + -0.000125145, + -0.000124729, + -0.000124185, + -0.000123518, + -0.000122709, + -0.000121766, + -0.000120685, + -0.000119471, + -0.000118119, + -0.000116633, + -0.000115009, + -0.000113251, + -0.000111356, + -0.000109326, + -0.00010716, + -0.00010486, + -0.000102424, + -9.98553e-05, + -9.71528e-05, + -9.43199e-05, + -9.13551e-05, + -8.82623e-05, + -8.50404e-05, + -8.16936e-05, + -7.82211e-05, + -7.46271e-05, + -7.09109e-05, + -6.70773e-05, + -6.31256e-05, + -5.90607e-05, + -5.48823e-05, + -5.05954e-05, + -4.62001e-05, + -4.17016e-05, + -3.71002e-05, + -3.24015e-05, + -2.7606e-05, + -2.27195e-05, + -1.77428e-05, + -1.2682e-05, + -7.53795e-06, + -2.31702e-06, + 2.97965e-06, + 8.34567e-06, + 1.37796e-05, + 1.9275e-05, + 2.483e-05, + 3.04382e-05, + 3.60975e-05, + 4.18011e-05, + 4.75467e-05, + 5.33273e-05, + 5.91403e-05, + 6.49787e-05, + 7.08393e-05, + 7.67152e-05, + 8.26029e-05, + 8.84957e-05, + 9.43895e-05, + 0.000100278, + 0.000106157, + 0.00011202, + 0.000117864, + 0.000123681, + 0.000129468, + 0.000135218, + 0.000140929, + 0.000146583, + 0.000152183, + 0.000157725, + 0.000163202, + 0.000168608, + 0.000173938, + 0.000179183, + 0.00018434, + 0.0001894, + 0.00019436, + 0.000199211, + 0.000203949, + 0.000208568, + 0.000213063, + 0.000217426, + 0.000221654, + 0.00022574, + 0.000229678, + 0.000233463, + 0.000237089, + 0.000240551, + 0.000243843, + 0.000246959, + 0.000249895, + 0.000252644, + 0.000255202, + 0.000257562, + 0.000259721, + 0.000261672, + 0.000263411, + 0.000264933, + 0.000266234, + 0.000267308, + 0.000268152, + 0.00026876, + 0.000269128, + 0.000269253, + 0.000269129, + 0.000268754, + 0.000268123, + 0.000267232, + 0.000266079, + 0.000264658, + 0.000262968, + 0.000261006, + 0.000258767, + 0.000256251, + 0.000253453, + 0.000250373, + 0.000247007, + 0.000243354, + 0.000239412, + 0.00023518, + 0.000230655, + 0.000225837, + 0.000220723, + 0.000215314, + 0.000209608, + 0.000203605, + 0.000197304, + 0.000190706, + 0.000183812, + 0.000176621, + 0.000169145, + 0.000161363, + 0.000153275, + 0.000144895, + 0.000136224, + 0.000127266, + 0.00011802, + 0.000108491, + 9.8679e-05, + 8.85877e-05, + 7.82196e-05, + 6.7577e-05, + 5.66636e-05, + 4.54822e-05, + 3.40369e-05, + 2.23311e-05, + 1.03695e-05, + -1.844e-06, + -1.43041e-05, + -2.70061e-05, + -3.99444e-05, + -5.31139e-05, + -6.65082e-05, + -8.01218e-05, + -9.39481e-05, + -0.000107981, + -0.000122213, + -0.000136638, + -0.000151248, + -0.000166036, + -0.000180995, + -0.000196115, + -0.00021139, + -0.000226811, + -0.000242369, + -0.000258056, + -0.000273861, + -0.000289776, + -0.000305792, + -0.000321898, + -0.000338084, + -0.000354342, + -0.00037066, + -0.000387027, + -0.000403434, + -0.00041987, + -0.000436324, + -0.000452784, + -0.00046924, + -0.00048568, + -0.000502091, + -0.000518464, + -0.000534785, + -0.000551043, + -0.000567225, + -0.000583319, + -0.000599314, + -0.000615196, + -0.000630955, + -0.000646575, + -0.000662049, + -0.000677361, + -0.000692506, + -0.000707464, + -0.00072229, + -0.000736922, + -0.000751266, + -0.000765372, + -0.000779217, + -0.000792798, + -0.000806094, + -0.000819098, + -0.000831793, + -0.000844168, + -0.000856207, + -0.000867898, + -0.000879227, + -0.00089018, + -0.000900744, + -0.000910906, + -0.000920652, + -0.00092997, + -0.000938844, + -0.000947263, + -0.000955214, + -0.000962682, + -0.000969654, + -0.000976119, + -0.000982062, + -0.00098747, + -0.000992332, + -0.000996634, + -0.00100036, + -0.00100351, + -0.00100606, + -0.001008, + -0.00100932, + -0.00101, + -0.00101005, + -0.00100943, + -0.00100816, + -0.0010062, + -0.00100356, + -0.00100021, + -0.000996162, + -0.000991392, + -0.000985892, + -0.000979654, + -0.000972668, + -0.000964925, + -0.000956415, + -0.000947131, + -0.000937065, + -0.000926208, + -0.000914552, + -0.00090209, + -0.000888816, + -0.000874721, + -0.0008598, + -0.000844046, + -0.000827453, + -0.000810015, + -0.000791726, + -0.000772581, + -0.000752576, + -0.000731704, + -0.000709965, + -0.00068735, + -0.000663865, + -0.000639509, + -0.000614269, + -0.000588146, + -0.000561139, + -0.000533246, + -0.000504468, + -0.000474802, + -0.000444251, + -0.000412813, + -0.00038049, + -0.000347281, + -0.000313189, + -0.000278215, + -0.000242361, + -0.000205629, + -0.000168024, + -0.000129546, + -9.02024e-05, + -4.99954e-05, + -8.93026e-06, + 3.2988e-05, + 7.57537e-05, + 0.000119361, + 0.000163804, + 0.000209075, + 0.000255167, + 0.000302074, + 0.000349786, + 0.000398297, + 0.000447596, + 0.000497676, + 0.000548526, + 0.000600136, + 0.000652497, + 0.000705598, + 0.000759427, + 0.000813972, + 0.000869223, + 0.000925166, + 0.000981789, + 0.00103908, + 0.00109702, + 0.00115561, + 0.00121482, + 0.00127464, + 0.00133505, + 0.00139605, + 0.00145762, + 0.00151973, + 0.00158238, + 0.00164555, + 0.00170922, + 0.00177337, + 0.00183799, + 0.00190305, + 0.00196854, + 0.00203445, + 0.00210075, + 0.00216742, + 0.00223445, + 0.00230181, + 0.00236949, + 0.00243747, + 0.00250572, + 0.00257423, + 0.00264296, + 0.00271192, + 0.00278107, + 0.00285039, + 0.00291986, + 0.00298947, + 0.00305918, + 0.00312898, + 0.00319884, + 0.00326874, + 0.00333866, + 0.00340857, + 0.00347846, + 0.00354831, + 0.00361808, + 0.00368775, + 0.00375731, + 0.00382673, + 0.00389599, + 0.00396506, + 0.00403393, + 0.00410256, + 0.00417094, + 0.00423904, + 0.00430684, + 0.00437431, + 0.00444144, + 0.0045082, + 0.00457457, + 0.00464052, + 0.00470603, + 0.00477108, + 0.00483565, + 0.00489972, + 0.00496325, + 0.00502623, + 0.00508865, + 0.00515046, + 0.00521166, + 0.00527223, + 0.00533213, + 0.00539135, + 0.00544987, + 0.00550766, + 0.00556472, + 0.005621, + 0.00567651, + 0.00573121, + 0.00578508, + 0.00583811, + 0.00589028, + 0.00594157, + 0.00599196, + 0.00604143, + 0.00608996, + 0.00613754, + 0.00618415, + 0.00622977, + 0.00627439, + 0.00631798, + 0.00636054, + 0.00640204, + 0.0064425, + 0.00648186, + 0.00652009, + 0.00655722, + 0.00659322, + 0.00662808, + 0.00666179, + 0.00669433, + 0.00672571, + 0.00675589, + 0.00678488, + 0.00681266, + 0.00683921, + 0.00686454, + 0.00688863, + 0.00691147, + 0.00693305, + 0.00695336, + 0.0069724, + 0.00699016, + 0.00700663, + 0.00702181, + 0.00703569, + 0.00704826, + 0.00705952, + 0.00706947, + 0.00707809, + 0.0070854, + 0.00709138, + 0.00709604, + 0.00709937, + 0.00710136, + 0.00710203, + 0.00710136, + 0.00709937, + 0.00709604, + 0.00709138, + 0.0070854, + 0.00707809, + 0.00706947, + 0.00705952, + 0.00704826, + 0.00703569, + 0.00702181, + 0.00700663, + 0.00699016, + 0.0069724, + 0.00695336, + 0.00693305, + 0.00691147, + 0.00688863, + 0.00686454, + 0.00683921, + 0.00681266, + 0.00678488, + 0.00675589, + 0.00672571, + 0.00669433, + 0.00666179, + 0.00662808, + 0.00659322, + 0.00655722, + 0.00652009, + 0.00648186, + 0.0064425, + 0.00640204, + 0.00636054, + 0.00631798, + 0.00627439, + 0.00622977, + 0.00618415, + 0.00613754, + 0.00608996, + 0.00604143, + 0.00599196, + 0.00594157, + 0.00589028, + 0.00583811, + 0.00578508, + 0.00573121, + 0.00567651, + 0.005621, + 0.00556472, + 0.00550766, + 0.00544987, + 0.00539135, + 0.00533213, + 0.00527223, + 0.00521166, + 0.00515046, + 0.00508865, + 0.00502623, + 0.00496325, + 0.00489972, + 0.00483565, + 0.00477108, + 0.00470603, + 0.00464052, + 0.00457457, + 0.0045082, + 0.00444144, + 0.00437431, + 0.00430684, + 0.00423904, + 0.00417094, + 0.00410256, + 0.00403393, + 0.00396506, + 0.00389599, + 0.00382673, + 0.00375731, + 0.00368775, + 0.00361808, + 0.00354831, + 0.00347846, + 0.00340857, + 0.00333866, + 0.00326874, + 0.00319884, + 0.00312898, + 0.00305918, + 0.00298947, + 0.00291986, + 0.00285039, + 0.00278107, + 0.00271192, + 0.00264296, + 0.00257423, + 0.00250572, + 0.00243747, + 0.00236949, + 0.00230181, + 0.00223445, + 0.00216742, + 0.00210075, + 0.00203445, + 0.00196854, + 0.00190305, + 0.00183799, + 0.00177337, + 0.00170922, + 0.00164555, + 0.00158238, + 0.00151973, + 0.00145762, + 0.00139605, + 0.00133505, + 0.00127464, + 0.00121482, + 0.00115561, + 0.00109702, + 0.00103908, + 0.000981789, + 0.000925166, + 0.000869223, + 0.000813972, + 0.000759427, + 0.000705598, + 0.000652497, + 0.000600136, + 0.000548526, + 0.000497676, + 0.000447596, + 0.000398297, + 0.000349786, + 0.000302074, + 0.000255167, + 0.000209075, + 0.000163804, + 0.000119361, + 7.57537e-05, + 3.2988e-05, + -8.93026e-06, + -4.99954e-05, + -9.02024e-05, + -0.000129546, + -0.000168024, + -0.000205629, + -0.000242361, + -0.000278215, + -0.000313189, + -0.000347281, + -0.00038049, + -0.000412813, + -0.000444251, + -0.000474802, + -0.000504468, + -0.000533246, + -0.000561139, + -0.000588146, + -0.000614269, + -0.000639509, + -0.000663865, + -0.00068735, + -0.000709965, + -0.000731704, + -0.000752576, + -0.000772581, + -0.000791726, + -0.000810015, + -0.000827453, + -0.000844046, + -0.0008598, + -0.000874721, + -0.000888816, + -0.00090209, + -0.000914552, + -0.000926208, + -0.000937065, + -0.000947131, + -0.000956415, + -0.000964925, + -0.000972668, + -0.000979654, + -0.000985892, + -0.000991392, + -0.000996162, + -0.00100021, + -0.00100356, + -0.0010062, + -0.00100816, + -0.00100943, + -0.00101005, + -0.00101, + -0.00100932, + -0.001008, + -0.00100606, + -0.00100351, + -0.00100036, + -0.000996634, + -0.000992332, + -0.00098747, + -0.000982062, + -0.000976119, + -0.000969654, + -0.000962682, + -0.000955214, + -0.000947263, + -0.000938844, + -0.00092997, + -0.000920652, + -0.000910906, + -0.000900744, + -0.00089018, + -0.000879227, + -0.000867898, + -0.000856207, + -0.000844168, + -0.000831793, + -0.000819098, + -0.000806094, + -0.000792798, + -0.000779217, + -0.000765372, + -0.000751266, + -0.000736922, + -0.00072229, + -0.000707464, + -0.000692506, + -0.000677361, + -0.000662049, + -0.000646575, + -0.000630955, + -0.000615196, + -0.000599314, + -0.000583319, + -0.000567225, + -0.000551043, + -0.000534785, + -0.000518464, + -0.000502091, + -0.00048568, + -0.00046924, + -0.000452784, + -0.000436324, + -0.00041987, + -0.000403434, + -0.000387027, + -0.00037066, + -0.000354342, + -0.000338084, + -0.000321898, + -0.000305792, + -0.000289776, + -0.000273861, + -0.000258056, + -0.000242369, + -0.000226811, + -0.00021139, + -0.000196115, + -0.000180995, + -0.000166036, + -0.000151248, + -0.000136638, + -0.000122213, + -0.000107981, + -9.39481e-05, + -8.01218e-05, + -6.65082e-05, + -5.31139e-05, + -3.99444e-05, + -2.70061e-05, + -1.43041e-05, + -1.844e-06, + 1.03695e-05, + 2.23311e-05, + 3.40369e-05, + 4.54822e-05, + 5.66636e-05, + 6.7577e-05, + 7.82196e-05, + 8.85877e-05, + 9.8679e-05, + 0.000108491, + 0.00011802, + 0.000127266, + 0.000136224, + 0.000144895, + 0.000153275, + 0.000161363, + 0.000169145, + 0.000176621, + 0.000183812, + 0.000190706, + 0.000197304, + 0.000203605, + 0.000209608, + 0.000215314, + 0.000220723, + 0.000225837, + 0.000230655, + 0.00023518, + 0.000239412, + 0.000243354, + 0.000247007, + 0.000250373, + 0.000253453, + 0.000256251, + 0.000258767, + 0.000261006, + 0.000262968, + 0.000264658, + 0.000266079, + 0.000267232, + 0.000268123, + 0.000268754, + 0.000269129, + 0.000269253, + 0.000269128, + 0.00026876, + 0.000268152, + 0.000267308, + 0.000266234, + 0.000264933, + 0.000263411, + 0.000261672, + 0.000259721, + 0.000257562, + 0.000255202, + 0.000252644, + 0.000249895, + 0.000246959, + 0.000243843, + 0.000240551, + 0.000237089, + 0.000233463, + 0.000229678, + 0.00022574, + 0.000221654, + 0.000217426, + 0.000213063, + 0.000208568, + 0.000203949, + 0.000199211, + 0.00019436, + 0.0001894, + 0.00018434, + 0.000179183, + 0.000173938, + 0.000168608, + 0.000163202, + 0.000157725, + 0.000152183, + 0.000146583, + 0.000140929, + 0.000135218, + 0.000129468, + 0.000123681, + 0.000117864, + 0.00011202, + 0.000106157, + 0.000100278, + 9.43895e-05, + 8.84957e-05, + 8.26029e-05, + 7.67152e-05, + 7.08393e-05, + 6.49787e-05, + 5.91403e-05, + 5.33273e-05, + 4.75467e-05, + 4.18011e-05, + 3.60975e-05, + 3.04382e-05, + 2.483e-05, + 1.9275e-05, + 1.37796e-05, + 8.34567e-06, + 2.97965e-06, + -2.31702e-06, + -7.53795e-06, + -1.2682e-05, + -1.77428e-05, + -2.27195e-05, + -2.7606e-05, + -3.24015e-05, + -3.71002e-05, + -4.17016e-05, + -4.62001e-05, + -5.05954e-05, + -5.48823e-05, + -5.90607e-05, + -6.31256e-05, + -6.70773e-05, + -7.09109e-05, + -7.46271e-05, + -7.82211e-05, + -8.16936e-05, + -8.50404e-05, + -8.82623e-05, + -9.13551e-05, + -9.43199e-05, + -9.71528e-05, + -9.98553e-05, + -0.000102424, + -0.00010486, + -0.00010716, + -0.000109326, + -0.000111356, + -0.000113251, + -0.000115009, + -0.000116633, + -0.000118119, + -0.000119471, + -0.000120685, + -0.000121766, + -0.000122709, + -0.000123518, + -0.000124185, + -0.000124729, + -0.000125145, + -0.000125428, + -0.000125578, + -0.000125598, + -0.000125487, + -0.00012525, + -0.000124884, + -0.000124397, + -0.000123784, + -0.000123053, + -0.000122201, + -0.000121235, + -0.000120152, + -0.000118959, + -0.000117652, + -0.000116241, + -0.00011472, + -0.000113099, + -0.000111372, + -0.00010955, + -0.000107627, + -0.000105614, + -0.000103505, + -0.000101311, + -9.9026e-05, + -9.66619e-05, + -9.42119e-05, + -9.16888e-05, + -8.9085e-05, + -8.64141e-05, + -8.36678e-05, + -8.08605e-05, + -7.7983e-05, + -7.50509e-05, + -7.20538e-05, + -6.90085e-05, + -6.59032e-05, + -6.27565e-05, + -5.95548e-05, + -5.63184e-05, + -5.3032e-05, + -4.97179e-05, + -4.63581e-05, + -4.29778e-05, + -3.95556e-05, + -3.61199e-05, + -3.26453e-05, + -2.91642e-05, + -2.56455e-05, + -2.21275e-05, + -1.85712e-05, + -1.50227e-05, + -1.14317e-05, + -7.85603e-06, + -4.22748e-06, + -6.22187e-07, + 3.05918e-06, + 6.70859e-06, + 1.04905e-05, + 1.42303e-05, + 1.82863e-05, + 2.2286e-05 +}; diff --git a/src/rn_coh.h b/src/rn_coh.h new file mode 100644 index 0000000..524d9d7 --- /dev/null +++ b/src/rn_coh.h @@ -0,0 +1,1807 @@ +/* Generated by rn_file() Octave function */ + +const float gt_alpha5_root_coh[]={ + 4.05576e-05, + 2.58255e-05, + 1.58964e-05, + 5.78773e-06, + -3.71244e-06, + -1.33229e-05, + -2.2664e-05, + -3.20611e-05, + -4.12734e-05, + -5.04935e-05, + -5.9545e-05, + -6.85565e-05, + -7.73902e-05, + -8.6137e-05, + -9.46835e-05, + -0.000103097, + -0.000111281, + -0.000119289, + -0.000127034, + -0.000134559, + -0.000141789, + -0.000148756, + -0.000155393, + -0.000161723, + -0.000167689, + -0.000173315, + -0.00017854, + -0.000183382, + -0.000187794, + -0.000191793, + -0.000195333, + -0.000198429, + -0.000201038, + -0.000203173, + -0.000204797, + -0.000205922, + -0.000206515, + -0.00020659, + -0.000206117, + -0.000205109, + -0.000203541, + -0.000201427, + -0.000198743, + -0.000195505, + -0.000191693, + -0.000187324, + -0.000182382, + -0.000176885, + -0.000170822, + -0.00016421, + -0.000157041, + -0.000149335, + -0.000141089, + -0.000132323, + -0.000123038, + -0.000113258, + -0.000102985, + -9.22439e-05, + -8.10442e-05, + -6.94109e-05, + -5.73536e-05, + -4.49012e-05, + -3.20661e-05, + -1.88794e-05, + -5.35615e-06, + 8.47105e-06, + 2.25833e-05, + 3.69472e-05, + 5.15418e-05, + 6.63317e-05, + 8.12934e-05, + 9.63895e-05, + 0.000111594, + 0.000126869, + 0.000142183, + 0.000157497, + 0.000172781, + 0.000187996, + 0.000203111, + 0.000218088, + 0.000232892, + 0.000247474, + 0.000261806, + 0.000275847, + 0.000289559, + 0.000302903, + 0.000315839, + 0.00032833, + 0.000340339, + 0.000351824, + 0.000362751, + 0.00037308, + 0.000382774, + 0.000391795, + 0.000400108, + 0.000407675, + 0.000414464, + 0.000420437, + 0.000425565, + 0.000429812, + 0.000433151, + 0.000435544, + 0.000436975, + 0.000437401, + 0.000436865, + 0.000435237, + 0.00043246, + 0.000428592, + 0.000423608, + 0.000417497, + 0.00041024, + 0.000401823, + 0.000392231, + 0.000381449, + 0.000369471, + 0.000356284, + 0.000341885, + 0.000326267, + 0.00030943, + 0.000291373, + 0.000272099, + 0.000251612, + 0.000229921, + 0.000207034, + 0.000182964, + 0.000157726, + 0.000131338, + 0.000103821, + 7.51956e-05, + 4.54842e-05, + 1.4721e-05, + -1.7067e-05, + -4.98479e-05, + -8.35883e-05, + -0.000118248, + -0.00015379, + -0.000190167, + -0.000227336, + -0.000265248, + -0.000303856, + -0.000343104, + -0.000382942, + -0.00042331, + -0.000464152, + -0.000505403, + -0.000547003, + -0.000588883, + -0.000630979, + -0.000673218, + -0.000715533, + -0.000757849, + -0.000800092, + -0.000842187, + -0.000884054, + -0.000925613, + -0.000966788, + -0.00100749, + -0.00104765, + -0.00108717, + -0.00112597, + -0.00116397, + -0.00120108, + -0.0012372, + -0.00127227, + -0.00130617, + -0.00133884, + -0.00137017, + -0.00140008, + -0.00142848, + -0.00145528, + -0.0014804, + -0.00150374, + -0.00152522, + -0.00154475, + -0.00156225, + -0.00157763, + -0.00159081, + -0.00160171, + -0.00161024, + -0.00161633, + -0.0016199, + -0.00162088, + -0.00161917, + -0.00161472, + -0.00160744, + -0.00159729, + -0.00158419, + -0.00156807, + -0.00154888, + -0.00152655, + -0.00150103, + -0.00147227, + -0.00144021, + -0.00140482, + -0.00136604, + -0.00132384, + -0.00127818, + -0.00122903, + -0.00117635, + -0.00112013, + -0.00106033, + -0.000996946, + -0.000929956, + -0.000859348, + -0.000785117, + -0.000707261, + -0.000625779, + -0.00054068, + -0.000451952, + -0.000359651, + -0.000263788, + -0.00016436, + -6.13947e-05, + 4.5076e-05, + 0.000155016, + 0.000268384, + 0.000385134, + 0.000505217, + 0.000628582, + 0.000755171, + 0.000884923, + 0.00101777, + 0.00115366, + 0.00129249, + 0.00143421, + 0.00157873, + 0.00172596, + 0.00187583, + 0.00202822, + 0.00218306, + 0.00234023, + 0.00249965, + 0.00266119, + 0.00282475, + 0.00299023, + 0.00315749, + 0.00332643, + 0.00349691, + 0.00366882, + 0.00384202, + 0.00401639, + 0.0041918, + 0.0043681, + 0.00454516, + 0.00472285, + 0.00490101, + 0.00507951, + 0.00525821, + 0.00543695, + 0.0056156, + 0.005794, + 0.00597201, + 0.00614947, + 0.00632623, + 0.00650216, + 0.00667708, + 0.00685086, + 0.00702335, + 0.00719439, + 0.00736383, + 0.00753153, + 0.00769734, + 0.00786111, + 0.00802269, + 0.00818194, + 0.00833872, + 0.00849289, + 0.0086443, + 0.00879283, + 0.00893832, + 0.00908066, + 0.00921971, + 0.00935534, + 0.00948743, + 0.00961585, + 0.00974049, + 0.00986123, + 0.00997795, + 0.0100905, + 0.0101989, + 0.0103029, + 0.0104025, + 0.0104976, + 0.0105881, + 0.0106738, + 0.0107548, + 0.010831, + 0.0109022, + 0.0109684, + 0.0110295, + 0.0110855, + 0.0111364, + 0.011182, + 0.0112224, + 0.0112575, + 0.0112872, + 0.0113115, + 0.0113305, + 0.0113441, + 0.0113522, + 0.0113549, + 0.0113522, + 0.0113441, + 0.0113305, + 0.0113115, + 0.0112872, + 0.0112575, + 0.0112224, + 0.011182, + 0.0111364, + 0.0110855, + 0.0110295, + 0.0109684, + 0.0109022, + 0.010831, + 0.0107548, + 0.0106738, + 0.0105881, + 0.0104976, + 0.0104025, + 0.0103029, + 0.0101989, + 0.0100905, + 0.00997795, + 0.00986123, + 0.00974049, + 0.00961585, + 0.00948743, + 0.00935534, + 0.00921971, + 0.00908066, + 0.00893832, + 0.00879283, + 0.0086443, + 0.00849289, + 0.00833872, + 0.00818194, + 0.00802269, + 0.00786111, + 0.00769734, + 0.00753153, + 0.00736383, + 0.00719439, + 0.00702335, + 0.00685086, + 0.00667708, + 0.00650216, + 0.00632623, + 0.00614947, + 0.00597201, + 0.005794, + 0.0056156, + 0.00543695, + 0.00525821, + 0.00507951, + 0.00490101, + 0.00472285, + 0.00454516, + 0.0043681, + 0.0041918, + 0.00401639, + 0.00384202, + 0.00366882, + 0.00349691, + 0.00332643, + 0.00315749, + 0.00299023, + 0.00282475, + 0.00266119, + 0.00249965, + 0.00234023, + 0.00218306, + 0.00202822, + 0.00187583, + 0.00172596, + 0.00157873, + 0.00143421, + 0.00129249, + 0.00115366, + 0.00101777, + 0.000884923, + 0.000755171, + 0.000628582, + 0.000505217, + 0.000385134, + 0.000268384, + 0.000155016, + 4.5076e-05, + -6.13947e-05, + -0.00016436, + -0.000263788, + -0.000359651, + -0.000451952, + -0.00054068, + -0.000625779, + -0.000707261, + -0.000785117, + -0.000859348, + -0.000929956, + -0.000996946, + -0.00106033, + -0.00112013, + -0.00117635, + -0.00122903, + -0.00127818, + -0.00132384, + -0.00136604, + -0.00140482, + -0.00144021, + -0.00147227, + -0.00150103, + -0.00152655, + -0.00154888, + -0.00156807, + -0.00158419, + -0.00159729, + -0.00160744, + -0.00161472, + -0.00161917, + -0.00162088, + -0.0016199, + -0.00161633, + -0.00161024, + -0.00160171, + -0.00159081, + -0.00157763, + -0.00156225, + -0.00154475, + -0.00152522, + -0.00150374, + -0.0014804, + -0.00145528, + -0.00142848, + -0.00140008, + -0.00137017, + -0.00133884, + -0.00130617, + -0.00127227, + -0.0012372, + -0.00120108, + -0.00116397, + -0.00112597, + -0.00108717, + -0.00104765, + -0.00100749, + -0.000966788, + -0.000925613, + -0.000884054, + -0.000842187, + -0.000800092, + -0.000757849, + -0.000715533, + -0.000673218, + -0.000630979, + -0.000588883, + -0.000547003, + -0.000505403, + -0.000464152, + -0.00042331, + -0.000382942, + -0.000343104, + -0.000303856, + -0.000265248, + -0.000227336, + -0.000190167, + -0.00015379, + -0.000118248, + -8.35883e-05, + -4.98479e-05, + -1.7067e-05, + 1.4721e-05, + 4.54842e-05, + 7.51956e-05, + 0.000103821, + 0.000131338, + 0.000157726, + 0.000182964, + 0.000207034, + 0.000229921, + 0.000251612, + 0.000272099, + 0.000291373, + 0.00030943, + 0.000326267, + 0.000341885, + 0.000356284, + 0.000369471, + 0.000381449, + 0.000392231, + 0.000401823, + 0.00041024, + 0.000417497, + 0.000423608, + 0.000428592, + 0.00043246, + 0.000435237, + 0.000436865, + 0.000437401, + 0.000436975, + 0.000435544, + 0.000433151, + 0.000429812, + 0.000425565, + 0.000420437, + 0.000414464, + 0.000407675, + 0.000400108, + 0.000391795, + 0.000382774, + 0.00037308, + 0.000362751, + 0.000351824, + 0.000340339, + 0.00032833, + 0.000315839, + 0.000302903, + 0.000289559, + 0.000275847, + 0.000261806, + 0.000247474, + 0.000232892, + 0.000218088, + 0.000203111, + 0.000187996, + 0.000172781, + 0.000157497, + 0.000142183, + 0.000126869, + 0.000111594, + 9.63895e-05, + 8.12934e-05, + 6.63317e-05, + 5.15418e-05, + 3.69472e-05, + 2.25833e-05, + 8.47105e-06, + -5.35615e-06, + -1.88794e-05, + -3.20661e-05, + -4.49012e-05, + -5.73536e-05, + -6.94109e-05, + -8.10442e-05, + -9.22439e-05, + -0.000102985, + -0.000113258, + -0.000123038, + -0.000132323, + -0.000141089, + -0.000149335, + -0.000157041, + -0.00016421, + -0.000170822, + -0.000176885, + -0.000182382, + -0.000187324, + -0.000191693, + -0.000195505, + -0.000198743, + -0.000201427, + -0.000203541, + -0.000205109, + -0.000206117, + -0.00020659, + -0.000206515, + -0.000205922, + -0.000204797, + -0.000203173, + -0.000201038, + -0.000198429, + -0.000195333, + -0.000191793, + -0.000187794, + -0.000183382, + -0.00017854, + -0.000173315, + -0.000167689, + -0.000161723, + -0.000155393, + -0.000148756, + -0.000141789, + -0.000134559, + -0.000127034, + -0.000119289, + -0.000111281, + -0.000103097, + -9.46835e-05, + -8.6137e-05, + -7.73902e-05, + -6.85565e-05, + -5.9545e-05, + -5.04935e-05, + -4.12734e-05, + -3.20611e-05, + -2.2664e-05, + -1.33229e-05, + -3.71244e-06, + 5.78773e-06, + 1.58964e-05, + 2.58255e-05 +}; + +const float gt_alpha5_root_coh_neon[]={ + 4.05576e-05, + 4.05576e-05, + 2.58255e-05, + 2.58255e-05, + 1.58964e-05, + 1.58964e-05, + 5.78773e-06, + 5.78773e-06, + -3.71244e-06, + -3.71244e-06, + -1.33229e-05, + -1.33229e-05, + -2.2664e-05, + -2.2664e-05, + -3.20611e-05, + -3.20611e-05, + -4.12734e-05, + -4.12734e-05, + -5.04935e-05, + -5.04935e-05, + -5.9545e-05, + -5.9545e-05, + -6.85565e-05, + -6.85565e-05, + -7.73902e-05, + -7.73902e-05, + -8.6137e-05, + -8.6137e-05, + -9.46835e-05, + -9.46835e-05, + -0.000103097, + -0.000103097, + -0.000111281, + -0.000111281, + -0.000119289, + -0.000119289, + -0.000127034, + -0.000127034, + -0.000134559, + -0.000134559, + -0.000141789, + -0.000141789, + -0.000148756, + -0.000148756, + -0.000155393, + -0.000155393, + -0.000161723, + -0.000161723, + -0.000167689, + -0.000167689, + -0.000173315, + -0.000173315, + -0.00017854, + -0.00017854, + -0.000183382, + -0.000183382, + -0.000187794, + -0.000187794, + -0.000191793, + -0.000191793, + -0.000195333, + -0.000195333, + -0.000198429, + -0.000198429, + -0.000201038, + -0.000201038, + -0.000203173, + -0.000203173, + -0.000204797, + -0.000204797, + -0.000205922, + -0.000205922, + -0.000206515, + -0.000206515, + -0.00020659, + -0.00020659, + -0.000206117, + -0.000206117, + -0.000205109, + -0.000205109, + -0.000203541, + -0.000203541, + -0.000201427, + -0.000201427, + -0.000198743, + -0.000198743, + -0.000195505, + -0.000195505, + -0.000191693, + -0.000191693, + -0.000187324, + -0.000187324, + -0.000182382, + -0.000182382, + -0.000176885, + -0.000176885, + -0.000170822, + -0.000170822, + -0.00016421, + -0.00016421, + -0.000157041, + -0.000157041, + -0.000149335, + -0.000149335, + -0.000141089, + -0.000141089, + -0.000132323, + -0.000132323, + -0.000123038, + -0.000123038, + -0.000113258, + -0.000113258, + -0.000102985, + -0.000102985, + -9.22439e-05, + -9.22439e-05, + -8.10442e-05, + -8.10442e-05, + -6.94109e-05, + -6.94109e-05, + -5.73536e-05, + -5.73536e-05, + -4.49012e-05, + -4.49012e-05, + -3.20661e-05, + -3.20661e-05, + -1.88794e-05, + -1.88794e-05, + -5.35615e-06, + -5.35615e-06, + 8.47105e-06, + 8.47105e-06, + 2.25833e-05, + 2.25833e-05, + 3.69472e-05, + 3.69472e-05, + 5.15418e-05, + 5.15418e-05, + 6.63317e-05, + 6.63317e-05, + 8.12934e-05, + 8.12934e-05, + 9.63895e-05, + 9.63895e-05, + 0.000111594, + 0.000111594, + 0.000126869, + 0.000126869, + 0.000142183, + 0.000142183, + 0.000157497, + 0.000157497, + 0.000172781, + 0.000172781, + 0.000187996, + 0.000187996, + 0.000203111, + 0.000203111, + 0.000218088, + 0.000218088, + 0.000232892, + 0.000232892, + 0.000247474, + 0.000247474, + 0.000261806, + 0.000261806, + 0.000275847, + 0.000275847, + 0.000289559, + 0.000289559, + 0.000302903, + 0.000302903, + 0.000315839, + 0.000315839, + 0.00032833, + 0.00032833, + 0.000340339, + 0.000340339, + 0.000351824, + 0.000351824, + 0.000362751, + 0.000362751, + 0.00037308, + 0.00037308, + 0.000382774, + 0.000382774, + 0.000391795, + 0.000391795, + 0.000400108, + 0.000400108, + 0.000407675, + 0.000407675, + 0.000414464, + 0.000414464, + 0.000420437, + 0.000420437, + 0.000425565, + 0.000425565, + 0.000429812, + 0.000429812, + 0.000433151, + 0.000433151, + 0.000435544, + 0.000435544, + 0.000436975, + 0.000436975, + 0.000437401, + 0.000437401, + 0.000436865, + 0.000436865, + 0.000435237, + 0.000435237, + 0.00043246, + 0.00043246, + 0.000428592, + 0.000428592, + 0.000423608, + 0.000423608, + 0.000417497, + 0.000417497, + 0.00041024, + 0.00041024, + 0.000401823, + 0.000401823, + 0.000392231, + 0.000392231, + 0.000381449, + 0.000381449, + 0.000369471, + 0.000369471, + 0.000356284, + 0.000356284, + 0.000341885, + 0.000341885, + 0.000326267, + 0.000326267, + 0.00030943, + 0.00030943, + 0.000291373, + 0.000291373, + 0.000272099, + 0.000272099, + 0.000251612, + 0.000251612, + 0.000229921, + 0.000229921, + 0.000207034, + 0.000207034, + 0.000182964, + 0.000182964, + 0.000157726, + 0.000157726, + 0.000131338, + 0.000131338, + 0.000103821, + 0.000103821, + 7.51956e-05, + 7.51956e-05, + 4.54842e-05, + 4.54842e-05, + 1.4721e-05, + 1.4721e-05, + -1.7067e-05, + -1.7067e-05, + -4.98479e-05, + -4.98479e-05, + -8.35883e-05, + -8.35883e-05, + -0.000118248, + -0.000118248, + -0.00015379, + -0.00015379, + -0.000190167, + -0.000190167, + -0.000227336, + -0.000227336, + -0.000265248, + -0.000265248, + -0.000303856, + -0.000303856, + -0.000343104, + -0.000343104, + -0.000382942, + -0.000382942, + -0.00042331, + -0.00042331, + -0.000464152, + -0.000464152, + -0.000505403, + -0.000505403, + -0.000547003, + -0.000547003, + -0.000588883, + -0.000588883, + -0.000630979, + -0.000630979, + -0.000673218, + -0.000673218, + -0.000715533, + -0.000715533, + -0.000757849, + -0.000757849, + -0.000800092, + -0.000800092, + -0.000842187, + -0.000842187, + -0.000884054, + -0.000884054, + -0.000925613, + -0.000925613, + -0.000966788, + -0.000966788, + -0.00100749, + -0.00100749, + -0.00104765, + -0.00104765, + -0.00108717, + -0.00108717, + -0.00112597, + -0.00112597, + -0.00116397, + -0.00116397, + -0.00120108, + -0.00120108, + -0.0012372, + -0.0012372, + -0.00127227, + -0.00127227, + -0.00130617, + -0.00130617, + -0.00133884, + -0.00133884, + -0.00137017, + -0.00137017, + -0.00140008, + -0.00140008, + -0.00142848, + -0.00142848, + -0.00145528, + -0.00145528, + -0.0014804, + -0.0014804, + -0.00150374, + -0.00150374, + -0.00152522, + -0.00152522, + -0.00154475, + -0.00154475, + -0.00156225, + -0.00156225, + -0.00157763, + -0.00157763, + -0.00159081, + -0.00159081, + -0.00160171, + -0.00160171, + -0.00161024, + -0.00161024, + -0.00161633, + -0.00161633, + -0.0016199, + -0.0016199, + -0.00162088, + -0.00162088, + -0.00161917, + -0.00161917, + -0.00161472, + -0.00161472, + -0.00160744, + -0.00160744, + -0.00159729, + -0.00159729, + -0.00158419, + -0.00158419, + -0.00156807, + -0.00156807, + -0.00154888, + -0.00154888, + -0.00152655, + -0.00152655, + -0.00150103, + -0.00150103, + -0.00147227, + -0.00147227, + -0.00144021, + -0.00144021, + -0.00140482, + -0.00140482, + -0.00136604, + -0.00136604, + -0.00132384, + -0.00132384, + -0.00127818, + -0.00127818, + -0.00122903, + -0.00122903, + -0.00117635, + -0.00117635, + -0.00112013, + -0.00112013, + -0.00106033, + -0.00106033, + -0.000996946, + -0.000996946, + -0.000929956, + -0.000929956, + -0.000859348, + -0.000859348, + -0.000785117, + -0.000785117, + -0.000707261, + -0.000707261, + -0.000625779, + -0.000625779, + -0.00054068, + -0.00054068, + -0.000451952, + -0.000451952, + -0.000359651, + -0.000359651, + -0.000263788, + -0.000263788, + -0.00016436, + -0.00016436, + -6.13947e-05, + -6.13947e-05, + 4.5076e-05, + 4.5076e-05, + 0.000155016, + 0.000155016, + 0.000268384, + 0.000268384, + 0.000385134, + 0.000385134, + 0.000505217, + 0.000505217, + 0.000628582, + 0.000628582, + 0.000755171, + 0.000755171, + 0.000884923, + 0.000884923, + 0.00101777, + 0.00101777, + 0.00115366, + 0.00115366, + 0.00129249, + 0.00129249, + 0.00143421, + 0.00143421, + 0.00157873, + 0.00157873, + 0.00172596, + 0.00172596, + 0.00187583, + 0.00187583, + 0.00202822, + 0.00202822, + 0.00218306, + 0.00218306, + 0.00234023, + 0.00234023, + 0.00249965, + 0.00249965, + 0.00266119, + 0.00266119, + 0.00282475, + 0.00282475, + 0.00299023, + 0.00299023, + 0.00315749, + 0.00315749, + 0.00332643, + 0.00332643, + 0.00349691, + 0.00349691, + 0.00366882, + 0.00366882, + 0.00384202, + 0.00384202, + 0.00401639, + 0.00401639, + 0.0041918, + 0.0041918, + 0.0043681, + 0.0043681, + 0.00454516, + 0.00454516, + 0.00472285, + 0.00472285, + 0.00490101, + 0.00490101, + 0.00507951, + 0.00507951, + 0.00525821, + 0.00525821, + 0.00543695, + 0.00543695, + 0.0056156, + 0.0056156, + 0.005794, + 0.005794, + 0.00597201, + 0.00597201, + 0.00614947, + 0.00614947, + 0.00632623, + 0.00632623, + 0.00650216, + 0.00650216, + 0.00667708, + 0.00667708, + 0.00685086, + 0.00685086, + 0.00702335, + 0.00702335, + 0.00719439, + 0.00719439, + 0.00736383, + 0.00736383, + 0.00753153, + 0.00753153, + 0.00769734, + 0.00769734, + 0.00786111, + 0.00786111, + 0.00802269, + 0.00802269, + 0.00818194, + 0.00818194, + 0.00833872, + 0.00833872, + 0.00849289, + 0.00849289, + 0.0086443, + 0.0086443, + 0.00879283, + 0.00879283, + 0.00893832, + 0.00893832, + 0.00908066, + 0.00908066, + 0.00921971, + 0.00921971, + 0.00935534, + 0.00935534, + 0.00948743, + 0.00948743, + 0.00961585, + 0.00961585, + 0.00974049, + 0.00974049, + 0.00986123, + 0.00986123, + 0.00997795, + 0.00997795, + 0.0100905, + 0.0100905, + 0.0101989, + 0.0101989, + 0.0103029, + 0.0103029, + 0.0104025, + 0.0104025, + 0.0104976, + 0.0104976, + 0.0105881, + 0.0105881, + 0.0106738, + 0.0106738, + 0.0107548, + 0.0107548, + 0.010831, + 0.010831, + 0.0109022, + 0.0109022, + 0.0109684, + 0.0109684, + 0.0110295, + 0.0110295, + 0.0110855, + 0.0110855, + 0.0111364, + 0.0111364, + 0.011182, + 0.011182, + 0.0112224, + 0.0112224, + 0.0112575, + 0.0112575, + 0.0112872, + 0.0112872, + 0.0113115, + 0.0113115, + 0.0113305, + 0.0113305, + 0.0113441, + 0.0113441, + 0.0113522, + 0.0113522, + 0.0113549, + 0.0113549, + 0.0113522, + 0.0113522, + 0.0113441, + 0.0113441, + 0.0113305, + 0.0113305, + 0.0113115, + 0.0113115, + 0.0112872, + 0.0112872, + 0.0112575, + 0.0112575, + 0.0112224, + 0.0112224, + 0.011182, + 0.011182, + 0.0111364, + 0.0111364, + 0.0110855, + 0.0110855, + 0.0110295, + 0.0110295, + 0.0109684, + 0.0109684, + 0.0109022, + 0.0109022, + 0.010831, + 0.010831, + 0.0107548, + 0.0107548, + 0.0106738, + 0.0106738, + 0.0105881, + 0.0105881, + 0.0104976, + 0.0104976, + 0.0104025, + 0.0104025, + 0.0103029, + 0.0103029, + 0.0101989, + 0.0101989, + 0.0100905, + 0.0100905, + 0.00997795, + 0.00997795, + 0.00986123, + 0.00986123, + 0.00974049, + 0.00974049, + 0.00961585, + 0.00961585, + 0.00948743, + 0.00948743, + 0.00935534, + 0.00935534, + 0.00921971, + 0.00921971, + 0.00908066, + 0.00908066, + 0.00893832, + 0.00893832, + 0.00879283, + 0.00879283, + 0.0086443, + 0.0086443, + 0.00849289, + 0.00849289, + 0.00833872, + 0.00833872, + 0.00818194, + 0.00818194, + 0.00802269, + 0.00802269, + 0.00786111, + 0.00786111, + 0.00769734, + 0.00769734, + 0.00753153, + 0.00753153, + 0.00736383, + 0.00736383, + 0.00719439, + 0.00719439, + 0.00702335, + 0.00702335, + 0.00685086, + 0.00685086, + 0.00667708, + 0.00667708, + 0.00650216, + 0.00650216, + 0.00632623, + 0.00632623, + 0.00614947, + 0.00614947, + 0.00597201, + 0.00597201, + 0.005794, + 0.005794, + 0.0056156, + 0.0056156, + 0.00543695, + 0.00543695, + 0.00525821, + 0.00525821, + 0.00507951, + 0.00507951, + 0.00490101, + 0.00490101, + 0.00472285, + 0.00472285, + 0.00454516, + 0.00454516, + 0.0043681, + 0.0043681, + 0.0041918, + 0.0041918, + 0.00401639, + 0.00401639, + 0.00384202, + 0.00384202, + 0.00366882, + 0.00366882, + 0.00349691, + 0.00349691, + 0.00332643, + 0.00332643, + 0.00315749, + 0.00315749, + 0.00299023, + 0.00299023, + 0.00282475, + 0.00282475, + 0.00266119, + 0.00266119, + 0.00249965, + 0.00249965, + 0.00234023, + 0.00234023, + 0.00218306, + 0.00218306, + 0.00202822, + 0.00202822, + 0.00187583, + 0.00187583, + 0.00172596, + 0.00172596, + 0.00157873, + 0.00157873, + 0.00143421, + 0.00143421, + 0.00129249, + 0.00129249, + 0.00115366, + 0.00115366, + 0.00101777, + 0.00101777, + 0.000884923, + 0.000884923, + 0.000755171, + 0.000755171, + 0.000628582, + 0.000628582, + 0.000505217, + 0.000505217, + 0.000385134, + 0.000385134, + 0.000268384, + 0.000268384, + 0.000155016, + 0.000155016, + 4.5076e-05, + 4.5076e-05, + -6.13947e-05, + -6.13947e-05, + -0.00016436, + -0.00016436, + -0.000263788, + -0.000263788, + -0.000359651, + -0.000359651, + -0.000451952, + -0.000451952, + -0.00054068, + -0.00054068, + -0.000625779, + -0.000625779, + -0.000707261, + -0.000707261, + -0.000785117, + -0.000785117, + -0.000859348, + -0.000859348, + -0.000929956, + -0.000929956, + -0.000996946, + -0.000996946, + -0.00106033, + -0.00106033, + -0.00112013, + -0.00112013, + -0.00117635, + -0.00117635, + -0.00122903, + -0.00122903, + -0.00127818, + -0.00127818, + -0.00132384, + -0.00132384, + -0.00136604, + -0.00136604, + -0.00140482, + -0.00140482, + -0.00144021, + -0.00144021, + -0.00147227, + -0.00147227, + -0.00150103, + -0.00150103, + -0.00152655, + -0.00152655, + -0.00154888, + -0.00154888, + -0.00156807, + -0.00156807, + -0.00158419, + -0.00158419, + -0.00159729, + -0.00159729, + -0.00160744, + -0.00160744, + -0.00161472, + -0.00161472, + -0.00161917, + -0.00161917, + -0.00162088, + -0.00162088, + -0.0016199, + -0.0016199, + -0.00161633, + -0.00161633, + -0.00161024, + -0.00161024, + -0.00160171, + -0.00160171, + -0.00159081, + -0.00159081, + -0.00157763, + -0.00157763, + -0.00156225, + -0.00156225, + -0.00154475, + -0.00154475, + -0.00152522, + -0.00152522, + -0.00150374, + -0.00150374, + -0.0014804, + -0.0014804, + -0.00145528, + -0.00145528, + -0.00142848, + -0.00142848, + -0.00140008, + -0.00140008, + -0.00137017, + -0.00137017, + -0.00133884, + -0.00133884, + -0.00130617, + -0.00130617, + -0.00127227, + -0.00127227, + -0.0012372, + -0.0012372, + -0.00120108, + -0.00120108, + -0.00116397, + -0.00116397, + -0.00112597, + -0.00112597, + -0.00108717, + -0.00108717, + -0.00104765, + -0.00104765, + -0.00100749, + -0.00100749, + -0.000966788, + -0.000966788, + -0.000925613, + -0.000925613, + -0.000884054, + -0.000884054, + -0.000842187, + -0.000842187, + -0.000800092, + -0.000800092, + -0.000757849, + -0.000757849, + -0.000715533, + -0.000715533, + -0.000673218, + -0.000673218, + -0.000630979, + -0.000630979, + -0.000588883, + -0.000588883, + -0.000547003, + -0.000547003, + -0.000505403, + -0.000505403, + -0.000464152, + -0.000464152, + -0.00042331, + -0.00042331, + -0.000382942, + -0.000382942, + -0.000343104, + -0.000343104, + -0.000303856, + -0.000303856, + -0.000265248, + -0.000265248, + -0.000227336, + -0.000227336, + -0.000190167, + -0.000190167, + -0.00015379, + -0.00015379, + -0.000118248, + -0.000118248, + -8.35883e-05, + -8.35883e-05, + -4.98479e-05, + -4.98479e-05, + -1.7067e-05, + -1.7067e-05, + 1.4721e-05, + 1.4721e-05, + 4.54842e-05, + 4.54842e-05, + 7.51956e-05, + 7.51956e-05, + 0.000103821, + 0.000103821, + 0.000131338, + 0.000131338, + 0.000157726, + 0.000157726, + 0.000182964, + 0.000182964, + 0.000207034, + 0.000207034, + 0.000229921, + 0.000229921, + 0.000251612, + 0.000251612, + 0.000272099, + 0.000272099, + 0.000291373, + 0.000291373, + 0.00030943, + 0.00030943, + 0.000326267, + 0.000326267, + 0.000341885, + 0.000341885, + 0.000356284, + 0.000356284, + 0.000369471, + 0.000369471, + 0.000381449, + 0.000381449, + 0.000392231, + 0.000392231, + 0.000401823, + 0.000401823, + 0.00041024, + 0.00041024, + 0.000417497, + 0.000417497, + 0.000423608, + 0.000423608, + 0.000428592, + 0.000428592, + 0.00043246, + 0.00043246, + 0.000435237, + 0.000435237, + 0.000436865, + 0.000436865, + 0.000437401, + 0.000437401, + 0.000436975, + 0.000436975, + 0.000435544, + 0.000435544, + 0.000433151, + 0.000433151, + 0.000429812, + 0.000429812, + 0.000425565, + 0.000425565, + 0.000420437, + 0.000420437, + 0.000414464, + 0.000414464, + 0.000407675, + 0.000407675, + 0.000400108, + 0.000400108, + 0.000391795, + 0.000391795, + 0.000382774, + 0.000382774, + 0.00037308, + 0.00037308, + 0.000362751, + 0.000362751, + 0.000351824, + 0.000351824, + 0.000340339, + 0.000340339, + 0.00032833, + 0.00032833, + 0.000315839, + 0.000315839, + 0.000302903, + 0.000302903, + 0.000289559, + 0.000289559, + 0.000275847, + 0.000275847, + 0.000261806, + 0.000261806, + 0.000247474, + 0.000247474, + 0.000232892, + 0.000232892, + 0.000218088, + 0.000218088, + 0.000203111, + 0.000203111, + 0.000187996, + 0.000187996, + 0.000172781, + 0.000172781, + 0.000157497, + 0.000157497, + 0.000142183, + 0.000142183, + 0.000126869, + 0.000126869, + 0.000111594, + 0.000111594, + 9.63895e-05, + 9.63895e-05, + 8.12934e-05, + 8.12934e-05, + 6.63317e-05, + 6.63317e-05, + 5.15418e-05, + 5.15418e-05, + 3.69472e-05, + 3.69472e-05, + 2.25833e-05, + 2.25833e-05, + 8.47105e-06, + 8.47105e-06, + -5.35615e-06, + -5.35615e-06, + -1.88794e-05, + -1.88794e-05, + -3.20661e-05, + -3.20661e-05, + -4.49012e-05, + -4.49012e-05, + -5.73536e-05, + -5.73536e-05, + -6.94109e-05, + -6.94109e-05, + -8.10442e-05, + -8.10442e-05, + -9.22439e-05, + -9.22439e-05, + -0.000102985, + -0.000102985, + -0.000113258, + -0.000113258, + -0.000123038, + -0.000123038, + -0.000132323, + -0.000132323, + -0.000141089, + -0.000141089, + -0.000149335, + -0.000149335, + -0.000157041, + -0.000157041, + -0.00016421, + -0.00016421, + -0.000170822, + -0.000170822, + -0.000176885, + -0.000176885, + -0.000182382, + -0.000182382, + -0.000187324, + -0.000187324, + -0.000191693, + -0.000191693, + -0.000195505, + -0.000195505, + -0.000198743, + -0.000198743, + -0.000201427, + -0.000201427, + -0.000203541, + -0.000203541, + -0.000205109, + -0.000205109, + -0.000206117, + -0.000206117, + -0.00020659, + -0.00020659, + -0.000206515, + -0.000206515, + -0.000205922, + -0.000205922, + -0.000204797, + -0.000204797, + -0.000203173, + -0.000203173, + -0.000201038, + -0.000201038, + -0.000198429, + -0.000198429, + -0.000195333, + -0.000195333, + -0.000191793, + -0.000191793, + -0.000187794, + -0.000187794, + -0.000183382, + -0.000183382, + -0.00017854, + -0.00017854, + -0.000173315, + -0.000173315, + -0.000167689, + -0.000167689, + -0.000161723, + -0.000161723, + -0.000155393, + -0.000155393, + -0.000148756, + -0.000148756, + -0.000141789, + -0.000141789, + -0.000134559, + -0.000134559, + -0.000127034, + -0.000127034, + -0.000119289, + -0.000119289, + -0.000111281, + -0.000111281, + -0.000103097, + -0.000103097, + -9.46835e-05, + -9.46835e-05, + -8.6137e-05, + -8.6137e-05, + -7.73902e-05, + -7.73902e-05, + -6.85565e-05, + -6.85565e-05, + -5.9545e-05, + -5.9545e-05, + -5.04935e-05, + -5.04935e-05, + -4.12734e-05, + -4.12734e-05, + -3.20611e-05, + -3.20611e-05, + -2.2664e-05, + -2.2664e-05, + -1.33229e-05, + -1.33229e-05, + -3.71244e-06, + -3.71244e-06, + 5.78773e-06, + 5.78773e-06, + 1.58964e-05, + 1.58964e-05, + 2.58255e-05, + 2.58255e-05, +}; diff --git a/src/rxdec_coeff.h b/src/rxdec_coeff.h new file mode 100644 index 0000000..a08cf9f --- /dev/null +++ b/src/rxdec_coeff.h @@ -0,0 +1,35 @@ +/* Generated by rxdec_file() Octave function */ + +const float rxdec_coeff[]={ + -0.00125472, + -0.00204605, + -0.0019897, + 0.000163906, + 0.00490937, + 0.00986375, + 0.0096718, + -0.000480351, + -0.019311, + -0.0361822, + -0.0341251, + 0.000827866, + 0.0690577, + 0.152812, + 0.222115, + 0.249004, + 0.222115, + 0.152812, + 0.0690577, + 0.000827866, + -0.0341251, + -0.0361822, + -0.019311, + -0.000480351, + 0.0096718, + 0.00986375, + 0.00490937, + 0.000163906, + -0.0019897, + -0.00204605, + -0.00125472 +}; diff --git a/src/sd.c b/src/sd.c new file mode 100644 index 0000000..5a1f461 --- /dev/null +++ b/src/sd.c @@ -0,0 +1,80 @@ +/*--------------------------------------------------------------------------*\ + + FILE........: sd.c + AUTHOR......: David Rowe + DATE CREATED: 20/7/93 + + Function to determine spectral distortion between two sets of LPCs. + +\*--------------------------------------------------------------------------*/ + +/* + Copyright (C) 2009 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include "sd.h" + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: spectral_dist() + + AUTHOR......: David Rowe + DATE CREATED: 20/7/93 + + This function returns the spectral distoertion between two + sets of LPCs. + +\*---------------------------------------------------------------------------*/ + +float spectral_dist(float ak1[], float ak2[], int p, codec2_fft_cfg fft_fwd_cfg, int n) +/* float ak1[]; unquantised set of p+1 LPCs */ +/* float ak2[]; quantised set of p+1 LPCs */ +/* int p; LP order */ +/* fft_fwd_cfg FFT constants */ +/* int n; DFT size to use for SD calculations (power of 2) */ +{ + COMP A1[n]; /* DFT of ak1[] */ + COMP A2[n]; /* DFT of ak2[] */ + float P1,P2; /* power of current bin */ + float sd; + int i; + + for(i=0; i. +*/ + +#ifndef __SD__ +#define __SD__ + +#include "codec2_fft.h" + +float spectral_dist(float ak1[], float ak2[], int p, codec2_fft_cfg fft_fwd_cfg, int n); + +#endif /* __SD__ */ diff --git a/src/sine.c b/src/sine.c new file mode 100644 index 0000000..a5295a7 --- /dev/null +++ b/src/sine.c @@ -0,0 +1,680 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: sine.c + AUTHOR......: David Rowe + DATE CREATED: 19/8/2010 + + Sinusoidal analysis and synthesis functions. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 1990-2010 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +/*---------------------------------------------------------------------------*\ + + INCLUDES + +\*---------------------------------------------------------------------------*/ + +#include +#include +#include + +#include "defines.h" +#include "sine.h" +#include "kiss_fft.h" + +#define HPF_BETA 0.125 + +/*---------------------------------------------------------------------------*\ + + HEADERS + +\*---------------------------------------------------------------------------*/ + +void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, + float pstep); + +/*---------------------------------------------------------------------------*\ + + FUNCTIONS + +\*---------------------------------------------------------------------------*/ + +C2CONST c2const_create(int Fs, float framelength_s) { + C2CONST c2const; + + assert((Fs == 8000) || (Fs == 16000)); + c2const.Fs = Fs; + c2const.n_samp = round(Fs*framelength_s); + c2const.max_amp = floor(Fs*P_MAX_S/2); + c2const.p_min = floor(Fs*P_MIN_S); + c2const.p_max = floor(Fs*P_MAX_S); + c2const.m_pitch = floor(Fs*M_PITCH_S); + c2const.Wo_min = TWO_PI/c2const.p_max; + c2const.Wo_max = TWO_PI/c2const.p_min; + + if (Fs == 8000) { + c2const.nw = 279; + } else { + c2const.nw = 511; /* actually a bit shorter in time but lets us maintain constant FFT size */ + } + + c2const.tw = Fs*TW_S; + + /* + fprintf(stderr, "max_amp: %d m_pitch: %d\n", c2const.n_samp, c2const.m_pitch); + fprintf(stderr, "p_min: %d p_max: %d\n", c2const.p_min, c2const.p_max); + fprintf(stderr, "Wo_min: %f Wo_max: %f\n", c2const.Wo_min, c2const.Wo_max); + fprintf(stderr, "nw: %d tw: %d\n", c2const.nw, c2const.tw); + */ + + return c2const; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: make_analysis_window + AUTHOR......: David Rowe + DATE CREATED: 11/5/94 + + Init function that generates the time domain analysis window and it's DFT. + +\*---------------------------------------------------------------------------*/ + +void make_analysis_window(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, float w[], float W[]) +{ + float m; + COMP wshift[FFT_ENC]; + int i,j; + int m_pitch = c2const->m_pitch; + int nw = c2const->nw; + + /* + Generate Hamming window centered on M-sample pitch analysis window + + 0 M/2 M-1 + |-------------|-------------| + |-------|-------| + nw samples + + All our analysis/synthsis is centred on the M/2 sample. + */ + + m = 0.0; + for(i=0; im_pitch; + int nw = c2const->nw; + + for(i=0; iWo + 5; + pmin = TWO_PI/model->Wo - 5; + pstep = 1.0; + hs_pitch_refinement(model,Sw,pmin,pmax,pstep); + + /* Fine refinement */ + + pmax = TWO_PI/model->Wo + 1; + pmin = TWO_PI/model->Wo - 1; + pstep = 0.25; + hs_pitch_refinement(model,Sw,pmin,pmax,pstep); + + /* Limit range */ + + if (model->Wo < TWO_PI/c2const->p_max) + model->Wo = TWO_PI/c2const->p_max; + if (model->Wo > TWO_PI/c2const->p_min) + model->Wo = TWO_PI/c2const->p_min; + + model->L = floorf(PI/model->Wo); + + /* trap occasional round off issues with floorf() */ + if (model->Wo*model->L >= 0.95*PI) { + model->L--; + } + assert(model->Wo*model->L < PI); +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: hs_pitch_refinement + AUTHOR......: David Rowe + DATE CREATED: 27/5/94 + + Harmonic sum pitch refinement function. + + pmin pitch search range minimum + pmax pitch search range maximum + step pitch search step size + model current pitch estimate in model.Wo + + model refined pitch estimate in model.Wo + +\*---------------------------------------------------------------------------*/ + +void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, float pstep) +{ + int m; /* loop variable */ + int b; /* bin for current harmonic centre */ + float E; /* energy for current pitch*/ + float Wo; /* current "test" fundamental freq. */ + float Wom; /* Wo that maximises E */ + float Em; /* mamimum energy */ + float r, one_on_r; /* number of rads/bin */ + float p; /* current pitch */ + + /* Initialisation */ + + model->L = PI/model->Wo; /* use initial pitch est. for L */ + Wom = model->Wo; + Em = 0.0; + r = TWO_PI/FFT_ENC; + one_on_r = 1.0/r; + + /* Determine harmonic sum for a range of Wo values */ + + for(p=pmin; p<=pmax; p+=pstep) { + E = 0.0; + Wo = TWO_PI/p; + + float bFloat = Wo * one_on_r; + float currentBFloat = bFloat; + + /* Sum harmonic magnitudes */ + for(m=1; m<=model->L; m++) { + b = (int)(currentBFloat + 0.5); + E += Sw[b].real*Sw[b].real + Sw[b].imag*Sw[b].imag; + currentBFloat += bFloat; + } + /* Compare to see if this is a maximum */ + + if (E > Em) { + Em = E; + Wom = Wo; + } + } + + model->Wo = Wom; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: estimate_amplitudes + AUTHOR......: David Rowe + DATE CREATED: 27/5/94 + + Estimates the complex amplitudes of the harmonics. + +\*---------------------------------------------------------------------------*/ + +void estimate_amplitudes(MODEL *model, COMP Sw[], float W[], int est_phase) +{ + int i,m; /* loop variables */ + int am,bm; /* bounds of current harmonic */ + float den; /* denominator of amplitude expression */ + + float r = TWO_PI/FFT_ENC; + float one_on_r = 1.0/r; + + for(m=1; m<=model->L; m++) { + /* Estimate ampltude of harmonic */ + + den = 0.0; + am = (int)((m - 0.5)*model->Wo*one_on_r + 0.5); + bm = (int)((m + 0.5)*model->Wo*one_on_r + 0.5); + + for(i=am; iA[m] = sqrtf(den); + + if (est_phase) { + int b = (int)(m*model->Wo/r + 0.5); /* DFT bin of centre of current harmonic */ + + /* Estimate phase of harmonic, this is expensive in CPU for + embedded devicesso we make it an option */ + + model->phi[m] = atan2f(Sw[b].imag,Sw[b].real); + } + } +} + +/*---------------------------------------------------------------------------*\ + + est_voicing_mbe() + + Returns the error of the MBE cost function for a fiven F0. + + Note: I think a lot of the operations below can be simplified as + W[].imag = 0 and has been normalised such that den always equals 1. + +\*---------------------------------------------------------------------------*/ + +float est_voicing_mbe( + C2CONST *c2const, + MODEL *model, + COMP Sw[], + float W[] + ) +{ + int l,al,bl,m; /* loop variables */ + COMP Am; /* amplitude sample for this band */ + int offset; /* centers Hw[] about current harmonic */ + float den; /* denominator of Am expression */ + float error; /* accumulated error between original and synthesised */ + float Wo; + float sig, snr; + float elow, ehigh, eratio; + float sixty; + COMP Ew; + Ew.real = 0; + Ew.imag = 0; + + int l_1000hz = model->L*1000.0/(c2const->Fs/2); + sig = 1E-4; + for(l=1; l<=l_1000hz; l++) { + sig += model->A[l]*model->A[l]; + } + + Wo = model->Wo; + error = 1E-4; + + /* Just test across the harmonics in the first 1000 Hz */ + + for(l=1; l<=l_1000hz; l++) { + Am.real = 0.0; + Am.imag = 0.0; + den = 0.0; + al = ceilf((l - 0.5)*Wo*FFT_ENC/TWO_PI); + bl = ceilf((l + 0.5)*Wo*FFT_ENC/TWO_PI); + + /* Estimate amplitude of harmonic assuming harmonic is totally voiced */ + + offset = FFT_ENC/2 - l*Wo*FFT_ENC/TWO_PI + 0.5; + for(m=al; m V_THRESH) + model->voiced = 1; + else + model->voiced = 0; + + /* post processing, helps clean up some voicing errors ------------------*/ + + /* + Determine the ratio of low frequency to high frequency energy, + voiced speech tends to be dominated by low frequency energy, + unvoiced by high frequency. This measure can be used to + determine if we have made any gross errors. + */ + + int l_2000hz = model->L*2000.0/(c2const->Fs/2); + int l_4000hz = model->L*4000.0/(c2const->Fs/2); + elow = ehigh = 1E-4; + for(l=1; l<=l_2000hz; l++) { + elow += model->A[l]*model->A[l]; + } + for(l=l_2000hz; l<=l_4000hz; l++) { + ehigh += model->A[l]*model->A[l]; + } + eratio = 10.0*log10f(elow/ehigh); + + /* Look for Type 1 errors, strongly V speech that has been + accidentally declared UV */ + + if (model->voiced == 0) + if (eratio > 10.0) + model->voiced = 1; + + /* Look for Type 2 errors, strongly UV speech that has been + accidentally declared V */ + + if (model->voiced == 1) { + if (eratio < -10.0) + model->voiced = 0; + + /* A common source of Type 2 errors is the pitch estimator + gives a low (50Hz) estimate for UV speech, which gives a + good match with noise due to the close harmoonic spacing. + These errors are much more common than people with 50Hz3 + pitch, so we have just a small eratio threshold. */ + + sixty = 60.0*TWO_PI/c2const->Fs; + if ((eratio < -4.0) && (model->Wo <= sixty)) + model->voiced = 0; + } + //printf(" v: %d snr: %f eratio: %3.2f %f\n",model->voiced,snr,eratio,dF0); + + return snr; +} + +/*---------------------------------------------------------------------------*\ + + FUNCTION....: make_synthesis_window + AUTHOR......: David Rowe + DATE CREATED: 11/5/94 + + Init function that generates the trapezoidal (Parzen) synthesis window. + +\*---------------------------------------------------------------------------*/ + +void make_synthesis_window(C2CONST *c2const, float Pn[]) +{ + int i; + float win; + int n_samp = c2const->n_samp; + int tw = c2const->tw; + + /* Generate Parzen window in time domain */ + + win = 0.0; + for(i=0; iL; l++) { + b = (int)(l*model->Wo*FFT_DEC/TWO_PI + 0.5); + if (b > ((FFT_DEC/2)-1)) { + b = (FFT_DEC/2)-1; + } + Sw_[b].real = model->A[l]*cosf(model->phi[l]); + Sw_[b].imag = model->A[l]*sinf(model->phi[l]); + } + + /* Perform inverse DFT */ + + codec2_fftri(fftr_inv_cfg, Sw_,sw_); + + /* Overlap add to previous samples */ + + #ifdef USE_KISS_FFT + #define FFTI_FACTOR ((float)1.0) + #else + #define FFTI_FACTOR ((float32_t)FFT_DEC) + #endif + + for(i=0; i. +*/ + +#ifndef __SINE__ +#define __SINE__ + +#include "defines.h" +#include "comp.h" +#include "codec2_fft.h" + +C2CONST c2const_create(int Fs, float framelength_ms); + +void make_analysis_window(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, float w[], float W[]); +float hpf(float x, float states[]); +void dft_speech(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, COMP Sw[], float Sn[], float w[]); +void two_stage_pitch_refinement(C2CONST *c2const, MODEL *model, COMP Sw[]); +void estimate_amplitudes(MODEL *model, COMP Sw[], float W[], int est_phase); +float est_voicing_mbe(C2CONST *c2const, MODEL *model, COMP Sw[], float W[]); +void make_synthesis_window(C2CONST *c2const, float Pn[]); +void synthesise(int n_samp, codec2_fftr_cfg fftr_inv_cfg, float Sn_[], MODEL *model, float Pn[], int shift); + +#define CODEC2_RAND_MAX 32767 +int codec2_rand(void); + +#endif diff --git a/src/ssbfilt_coeff.h b/src/ssbfilt_coeff.h new file mode 100644 index 0000000..8d19f3b --- /dev/null +++ b/src/ssbfilt_coeff.h @@ -0,0 +1,110 @@ +/* 2400 Hz LPF FIR filter coeffs */ +/* Generated by make_ssbfilt Octave script */ + +#define SSBFILT_N 100 + + +#define SSBFILT_CENTRE 1500 + +float ssbfilt_coeff[]={ + 0.000077, + 0.000463, + 0.000493, + 0.000100, + -0.000451, + -0.000713, + -0.000382, + 0.000393, + 0.001013, + 0.000853, + -0.000162, + -0.001315, + -0.001550, + -0.000384, + 0.001462, + 0.002427, + 0.001369, + -0.001234, + -0.003330, + -0.002842, + 0.000386, + 0.003994, + 0.004736, + 0.001300, + -0.004057, + -0.006836, + -0.003963, + 0.003096, + 0.008764, + 0.007615, + -0.000664, + -0.009984, + -0.012111, + -0.003687, + 0.009789, + 0.017150, + 0.010450, + -0.007246, + -0.022299, + -0.020386, + 0.000889, + 0.027053, + 0.035350, + 0.012531, + -0.030900, + -0.062153, + -0.045268, + 0.033405, + 0.150957, + 0.256445, + 0.298716, + 0.256445, + 0.150957, + 0.033405, + -0.045268, + -0.062153, + -0.030900, + 0.012531, + 0.035350, + 0.027053, + 0.000889, + -0.020386, + -0.022299, + -0.007246, + 0.010450, + 0.017150, + 0.009789, + -0.003687, + -0.012111, + -0.009984, + -0.000664, + 0.007615, + 0.008764, + 0.003096, + -0.003963, + -0.006836, + -0.004057, + 0.001300, + 0.004736, + 0.003994, + 0.000386, + -0.002842, + -0.003330, + -0.001234, + 0.001369, + 0.002427, + 0.001462, + -0.000384, + -0.001550, + -0.001315, + -0.000162, + 0.000853, + 0.001013, + 0.000393, + -0.000382, + -0.000713, + -0.000451, + 0.000100, + 0.000493, + 0.000463 +}; \ No newline at end of file diff --git a/src/test_bits.h b/src/test_bits.h new file mode 100644 index 0000000..d1c01a0 --- /dev/null +++ b/src/test_bits.h @@ -0,0 +1,164 @@ +/* Generated by test_bits_file() Octave function */ + +const int test_bits[]={ + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1 +}; diff --git a/src/test_bits_coh.h b/src/test_bits_coh.h new file mode 100644 index 0000000..b01299c --- /dev/null +++ b/src/test_bits_coh.h @@ -0,0 +1,564 @@ +/* Generated by test_bits_coh_file() Octave function */ + +const int test_bits_coh[]={ + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0 +}; diff --git a/src/test_bits_ofdm.h b/src/test_bits_ofdm.h new file mode 100644 index 0000000..f0a2c6c --- /dev/null +++ b/src/test_bits_ofdm.h @@ -0,0 +1,584 @@ +/* Generated by test_bits_ofdm_file() Octave function */ + +const int test_bits_ofdm[]={ + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 +}; + +const uint8_t payload_data_bits[]={ + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0 +}; + +const int test_codeword[]={ + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0 +}; diff --git a/src/tollr.c b/src/tollr.c new file mode 100644 index 0000000..3edce9b --- /dev/null +++ b/src/tollr.c @@ -0,0 +1,19 @@ +/* + FILE...: tollr.c + AUTHOR.: David Rowe + CREATED: July 2020 + + Converts oneBitPerByte hard decisions to LLRs for LDPC testing. +*/ + +#include +#include + +int main(void) { + uint8_t bit; + while(fread(&bit,sizeof(uint8_t), 1, stdin)) { + float llr = 10.0*(1-2*bit); + fwrite(&llr,sizeof(float),1,stdout); + } + return 0; +} diff --git a/src/varicode.c b/src/varicode.c new file mode 100644 index 0000000..bf7e60c --- /dev/null +++ b/src/varicode.c @@ -0,0 +1,515 @@ +//========================================================================== +// Name: varicode.h +// Purpose: Varicode encoded and decode functions +// Created: Nov 24, 2012 +// Authors: David Rowe +// +// To test: +// $ gcc varicode.c -o varicode -DVARICODE_UNITTEST -Wall +// $ ./varicode +// +// License: +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2.1, +// as published by the Free Software Foundation. This program is +// distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see . +// +//========================================================================== + +#include +#include +#include +#include +#include +#include "varicode.h" +#include "varicode_table.h" + +#include "debug_alloc.h" + + +/* + output is an unpacked array of bits of maximum size max_out. Note + unpacked arrays are a more suitable form for modulator input. + + Code 1 covers the entire ASCII char set. +*/ + +int varicode_encode1(short varicode_out[], char ascii_in[], int max_out, int n_in) { + int n_out, index, n_zeros, v_len; + unsigned short byte1, byte2, packed; + char c; + + n_out = 0; + + while(n_in && (n_out < max_out)) { + + c = *ascii_in; + if ((unsigned int)c >= 128) { + c = ' '; + } + + index = 2*(unsigned int)(c); + assert(index <= 254); + byte1 = varicode_table1[index]; + byte2 = varicode_table1[index+1]; + packed = (byte1 << 8) + byte2; + + //printf("n_in: %d ascii_in: %c index: %d packed 0x%x\n", n_in, *ascii_in, index, packed); + ascii_in++; + + n_zeros = 0; + v_len = 0; + while ((n_zeros < 2) && (n_out < max_out) && (v_len <= VARICODE_MAX_BITS)) { + if (packed & 0x8000) { + *varicode_out = 1; + n_zeros = 0; + } + else { + *varicode_out = 0; + n_zeros++; + } + //printf("packed: 0x%x *varicode_out: %d n_zeros: %d v_len: %d\n", packed, *varicode_out, n_zeros,v_len ); + packed <<= 1; + varicode_out++; + n_out++; + v_len++; + } + assert(v_len <= VARICODE_MAX_BITS); + + n_in--; + } + + return n_out; +} + + +/* + Code 2 covers a subset, but is more efficient that Code 1 (282 + compared to 1315 bits on unittest) Unsupported characters are + replaced by spaces. We encode/decode two bits at a time. +*/ + +int varicode_encode2(short varicode_out[], char ascii_in[], int max_out, int n_in) { + int n_out, n_zeros, v_len, i; + unsigned short packed; + + n_out = 0; + + while(n_in && (n_out < max_out)) { + + packed = varicode_table2[0]; // default to space if char not found + + // see if our character exists + for(i=0; i= 1 && n_in == 1); + + varicode_out[0] = ascii_in[0] != 0; + return 1; +} + +int varicode_encode(short varicode_out[], char ascii_in[], int max_out, int n_in, int code_num) { + + assert((code_num == 1) || (code_num == 2) || (code_num == 3)); + + if (code_num == 1) + return varicode_encode1(varicode_out, ascii_in, max_out, n_in); + else if (code_num == 2) + return varicode_encode2(varicode_out, ascii_in, max_out, n_in); + else + return varicode_encode3(varicode_out, ascii_in, max_out, n_in); +} + + +void varicode_decode_init(struct VARICODE_DEC *dec_states, int code_num) +{ + assert((code_num == 1) || (code_num == 2) || (code_num == 3)); + + dec_states->state = 0; + dec_states->n_zeros = 0; + dec_states->v_len = 0; + dec_states->packed = 0; + dec_states->code_num = code_num; + dec_states->n_in = 0; + dec_states->in[0] = dec_states->in[1] = 0; +} + + +void varicode_set_code_num(struct VARICODE_DEC *dec_states, int code_num) +{ + assert((code_num == 1) || (code_num == 2) || (code_num == 3)); + dec_states->code_num = code_num; +} + + +/* Code 1 decode function, accepts one bit at a time */ + +static int decode_one_bit(struct VARICODE_DEC *s, char *single_ascii, short varicode_in, int long_code) +{ + int found=0, i; + unsigned short byte1, byte2; + + //printf("decode_one_bit : state: %d varicode_in: %d packed: 0x%x n_zeros: %d\n", + // s->state, varicode_in, s->packed, s->n_zeros); + + if (s->state == 0) { + if (!varicode_in) + return 0; + else + s->state = 1; + } + + if (s->state == 1) { + if (varicode_in) { + s->packed |= (0x8000 >> s->v_len); + s->n_zeros = 0; + } + else { + s->n_zeros++; + } + s->v_len++; + found = 0; + + /* end of character code */ + + if (s->n_zeros == 2) { + if (s->v_len) { + /* run thru table but note with bit errors we might not actually find a match */ + + byte1 = s->packed >> 8; + //printf("looking for byte1 : 0x%x ... ", byte1); + byte2 = s->packed & 0xff; + + for(i=0; i<128; i++) { + if ((byte1 == varicode_table1[2*i]) && (byte2 == varicode_table1[2*i+1])) { + found = 1; + *single_ascii = i; + } + } + } + varicode_decode_init(s, s->code_num); + } + + /* code can run too long if we have a bit error */ + + if (s->v_len > VARICODE_MAX_BITS) + varicode_decode_init(s, s->code_num); + } + + return found; +} + + +/* Code 2 decode function, accepts two bits at a time */ + +static int decode_two_bits(struct VARICODE_DEC *s, char *single_ascii, short varicode_in1, short varicode_in2) +{ + int found=0, i; + unsigned short byte1; + + if (s->state == 0) { + if (!(varicode_in1 || varicode_in2)) + return 0; + else + s->state = 1; + } + + if (s->state == 1) { + if (varicode_in1) + s->packed |= (0x8000 >> s->v_len); + if (varicode_in2) + s->packed |= (0x4000 >> s->v_len); + if (varicode_in1 || varicode_in2) + s->n_zeros = 0; + else + s->n_zeros+=2; + + s->v_len+=2; + + found = 0; + + /* end of character code */ + + if (s->n_zeros == 2) { + if (s->v_len) { + /* run thru table but note with bit errors we might not actually find a match */ + + byte1 = s->packed >> 8; + //printf("looking for byte1 : 0x%x ... ", byte1); + for(i=0; icode_num); + } + + /* code can run too long if we have a bit error */ + + if (s->v_len > VARICODE_MAX_BITS) + varicode_decode_init(s, s->code_num); + } + + return found; +} + + +int varicode_decode1(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { + int output, n_out; + char single_ascii = 0; + + n_out = 0; + + //printf("varicode_decode: n_in: %d\n", n_in); + + while(n_in && (n_out < max_out)) { + output = decode_one_bit(dec_states, &single_ascii, varicode_in[0], 0); + varicode_in++; + n_in--; + + if (output) { + *ascii_out++ = single_ascii; + n_out++; + } + } + + return n_out; +} + + +int varicode_decode2(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { + int output, n_out; + char single_ascii = 0; + + n_out = 0; + + //printf("varicode_decode2: n_in: %d varicode_in[0] %d dec_states->n_in: %d\n", n_in, varicode_in[0], dec_states->n_in); + //printf("%d ", varicode_in[0]); + while(n_in && (n_out < max_out)) { + + // keep two bit buffer so we can process two at a time + + dec_states->in[0] = dec_states->in[1]; + dec_states->in[1] = varicode_in[0]; + dec_states->n_in++; + varicode_in++; + n_in--; + + if (dec_states->n_in == 2) { + output = decode_two_bits(dec_states, &single_ascii, dec_states->in[0], dec_states->in[1]); + + dec_states->n_in = 0; + + if (output) { + //printf(" output: %d single_ascii: 0x%x %c\n", output, (int)single_ascii, single_ascii); + *ascii_out++ = single_ascii; + n_out++; + } + } + } + + return n_out; +} + +int varicode_decode3(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) +{ + // We only handle one bit at a time. + assert(max_out == 1 && n_in == 1); + + ascii_out[0] = varicode_in[0] != 0; + return 1; +} + +int varicode_decode(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { + if (dec_states->code_num == 1) + return varicode_decode1(dec_states, ascii_out, varicode_in, max_out, n_in); + else if (dec_states->code_num == 2) + return varicode_decode2(dec_states, ascii_out, varicode_in, max_out, n_in); + else + return varicode_decode3(dec_states, ascii_out, varicode_in, max_out, n_in); +} + + +#ifdef VARICODE_UNITTEST +void test_varicode(int code_num) { + char *ascii_in; + short *varicode; + int i, n_varicode_bits_out, n_ascii_chars_out, length, half, n_out, j, len; + char *ascii_out; + struct VARICODE_DEC dec_states; + + if (code_num == 1) { + printf("long code:\n"); + length = sizeof(varicode_table1)/2; + } + else { + printf("short code:\n"); + length = sizeof(varicode_table2)/2; + } + //length = 10; + ascii_in = (char*)MALLOC(length); + varicode = (short*)MALLOC(VARICODE_MAX_BITS*sizeof(short)*length); + ascii_out = (char*)MALLOC(length); + + // 1. test all Varicode codes ------------------------------------------------------------- + + if (code_num == 1) { + for(i=0; i. +// +//========================================================================== + +#ifndef __VARICODE__ +#define __VARICODE__ + +#ifdef __cplusplus +extern "C" { + +#endif + +#define VARICODE_MAX_BITS (10+2) /* max varicode bits for each ascii character */ + /* 10 bits for code plus 2 0 bits for inter-character space */ + +struct VARICODE_DEC { + int state; + int n_zeros; + int v_len; + unsigned short packed; + int code_num; + int n_in; + int in[2]; +}; + +int varicode_encode(short varicode_out[], char ascii_in[], int max_out, int n_in, int code_num); +void varicode_decode_init(struct VARICODE_DEC *dec_states, int code_num); +int varicode_decode(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in); +void varicode_set_code_num(struct VARICODE_DEC *dec_states, int code_num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/varicode_table.h b/src/varicode_table.h new file mode 100644 index 0000000..c56fd20 --- /dev/null +++ b/src/varicode_table.h @@ -0,0 +1,338 @@ +//========================================================================== +// Name: varicode_table.h +// Purpose: Varicode look up table +// Created: Nov 24, 2012 +// Authors: Clint Turner, KA7OEI, Peter Martinez, G3PLX +// +// License: +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2.1, +// as published by the Free Software Foundation. This program is +// distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see . +// +//========================================================================== + +/* The following table defines the PKS31 varicode. There are 128 entries, +corresponding to ASCII characters 0-127 with two bytes for each entry. The bits +for the varicode are to be shifted out MSB-first for both bytes, with the first byte +in the table being the first one to be sent. + +More than one zero in sequence signifies the end of the character (i.e. +two zeroes are the intercharacter sequence, so at least two zeroes should always be +sent before the next character is sent. + +This file is constructed with information from the article "PSK31 Fundamentals" +by Peter Martinez, G3PLX by Clint Turner, KA7OEI +*/ +unsigned char const varicode_table1[256] = { + 0b10101010, + 0b11000000, // 0 NUL + 0b10110110, + 0b11000000, // 1 SOH + 0b10111011, + 0b01000000, // 2 STX + 0b11011101, + 0b11000000, // 3 ETX + 0b10111010, + 0b11000000, // 4 EOT + 0b11010111, + 0b11000000, // 5 ENQ + 0b10111011, + 0b11000000, // 6 ACK + 0b10111111, + 0b01000000, // 7 BEL + 0b10111111, + 0b11000000, // 8 BS + 0b11101111, + 0b00000000, // 9 HT + 0b11101000, + 0b00000000, // 10 LF + 0b11011011, + 0b11000000, // 11 VT + 0b10110111, + 0b01000000, // 12 FF + 0b11111000, + 0b00000000, // 13 CR + 0b11011101, + 0b01000000, // 14 SO + 0b11101010, + 0b11000000, // 15 SI + 0b10111101, + 0b11000000, // 16 DLE + 0b10111101, + 0b01000000, // 17 DC1 + 0b11101011, + 0b01000000, // 18 DC2 + 0b11101011, + 0b11000000, // 19 DC3 + 0b11010110, + 0b11000000, // 20 DC4 + 0b11011010, + 0b11000000, // 21 NAK + 0b11011011, + 0b01000000, // 22 SYN + 0b11010101, + 0b11000000, // 23 ETB + 0b11011110, + 0b11000000, // 24 CAN + 0b11011111, + 0b01000000, // 25 EM + 0b11101101, + 0b11000000, // 26 SUB + 0b11010101, + 0b01000000, // 27 ESC + 0b11010111, + 0b01000000, // 28 FS + 0b11101110, + 0b11000000, // 29 GS + 0b10111110, + 0b11000000, // 30 RS + 0b11011111, + 0b11000000, // 31 US + 0b10000000, + 0b00000000, // 32 SP + 0b11111111, + 0b10000000, // 33 ! + 0b10101111, + 0b10000000, // 34 " + 0b11111010, + 0b10000000, // 35 # + 0b11101101, + 0b10000000, // 36 $ + 0b10110101, + 0b01000000, // 37 % + 0b10101110, + 0b11000000, // 38 & + 0b10111111, + 0b10000000, // 39 ' + 0b11111011, + 0b00000000, // 40 ( + 0b11110111, + 0b00000000, // 41 ) + 0b10110111, + 0b10000000, // 42 * + 0b11101111, + 0b10000000, // 43 + + 0b11101010, + 0b00000000, // 44 , + 0b11010100, + 0b00000000, // 45 - + 0b10101110, + 0b00000000, // 46 . + 0b11010111, + 0b10000000, // 47 / + 0b10110111, + 0b00000000, // 48 0 + 0b10111101, + 0b00000000, // 49 1 + 0b11101101, + 0b00000000, // 50 2 + 0b11111111, + 0b00000000, // 51 3 + 0b10111011, + 0b10000000, // 52 4 + 0b10101101, + 0b10000000, // 53 5 + 0b10110101, + 0b10000000, // 54 6 + 0b11010110, + 0b10000000, // 55 7 + 0b11010101, + 0b10000000, // 56 8 + 0b11011011, + 0b10000000, // 57 9 + 0b11110101, + 0b00000000, // 58 : + 0b11011110, + 0b10000000, // 59 ; + 0b11110110, + 0b10000000, // 60 < + 0b10101010, + 0b00000000, // 61 = + 0b11101011, + 0b10000000, // 62 > + 0b10101011, + 0b11000000, // 63 ? + 0b10101111, + 0b01000000, // 64 @ + 0b11111010, + 0b00000000, // 65 A + 0b11101011, + 0b00000000, // 66 B + 0b10101101, + 0b00000000, // 67 C + 0b10110101, + 0b00000000, // 68 D + 0b11101110, + 0b00000000, // 69 E + 0b11011011, + 0b00000000, // 70 F + 0b11111101, + 0b00000000, // 71 G + 0b10101010, + 0b10000000, // 72 H + 0b11111110, + 0b00000000, // 73 I + 0b11111110, + 0b10000000, // 74 J + 0b10111110, + 0b10000000, // 75 K + 0b11010111, + 0b00000000, // 76 L + 0b10111011, + 0b00000000, // 77 M + 0b11011101, + 0b00000000, // 78 N + 0b10101011, + 0b00000000, // 79 O + 0b11010101, + 0b00000000, // 80 P + 0b11101110, + 0b10000000, // 81 Q + 0b10101111, + 0b00000000, // 82 R + 0b11011110, + 0b00000000, // 83 S + 0b11011010, + 0b00000000, // 84 T + 0b10101011, + 0b10000000, // 85 U + 0b11011010, + 0b10000000, // 86 V + 0b10101110, + 0b10000000, // 87 W + 0b10111010, + 0b10000000, // 88 X + 0b10111101, + 0b10000000, // 89 Y + 0b10101011, + 0b01000000, // 90 Z + 0b11111011, + 0b10000000, // 91 [ + 0b11110111, + 0b10000000, // 92 "\" + 0b11111101, + 0b10000000, // 93 ] + 0b10101111, + 0b11000000, // 94 ^ + 0b10110110, + 0b10000000, // 95 _ (underline) + 0b10110111, + 0b11000000, // 96 ` + 0b10110000, + 0b00000000, // 97 a + 0b10111110, + 0b00000000, // 98 b + 0b10111100, + 0b00000000, // 99 c + 0b10110100, + 0b00000000, // 100 d + 0b11000000, + 0b00000000, // 101 e + 0b11110100, + 0b00000000, // 102 f + 0b10110110, + 0b00000000, // 103 g + 0b10101100, + 0b00000000, // 104 h + 0b11010000, + 0b00000000, // 105 i + 0b11110101, + 0b10000000, // 106 j + 0b10111111, + 0b00000000, // 107 k + 0b11011000, + 0b00000000, // 108 l + 0b11101100, + 0b00000000, // 109 m + 0b11110000, + 0b00000000, // 110 n + 0b11100000, + 0b00000000, // 111 o + 0b11111100, + 0b00000000, // 112 p + 0b11011111, + 0b10000000, // 113 q + 0b10101000, + 0b00000000, // 114 r + 0b10111000, + 0b00000000, // 115 s + 0b10100000, + 0b00000000, // 116 t + 0b11011100, + 0b00000000, // 117 u + 0b11110110, + 0b00000000, // 118 v + 0b11010110, + 0b00000000, // 119 w + 0b11011111, + 0b00000000, // 120 x + 0b10111010, + 0b00000000, // 121 y + 0b11101010, + 0b10000000, // 122 z + 0b10101101, + 0b11000000, // 123 { + 0b11011101, + 0b10000000, // 124 | + 0b10101101, + 0b01000000, // 125 } + 0b10110101, + 0b11000000, // 126 ~ + 0b11101101, + 0b01000000, // 127 (del) +}; + +// This code was used on FDMDV version 1, and is more compact that Code 1, but only covers a subset +// of the ASCII character set + +char const varicode_table2[] = { + + ' ' ,0b11000000, + 13 ,0b01000000, // CR, end of message + '=' ,0b10000000, + '1' ,0b11110000, + '2' ,0b01110000, + '3' ,0b10110000, + '4' ,0b11010000, + '5' ,0b01010000, + '6' ,0b10010000, + '7' ,0b11100000, + '8' ,0b01100000, + '9' ,0b10100000, + 'a' ,0b11111100, + 'b' ,0b01111100, + 'c' ,0b10111100, + 'd' ,0b11011100, + 'e' ,0b01011100, + 'f' ,0b10011100, + 'g' ,0b11101100, + 'h' ,0b01101100, + 'i' ,0b10101100, + 'j' ,0b11110100, + 'k' ,0b01110100, + 'l' ,0b10110100, + 'm' ,0b11010100, + 'n' ,0b01010100, + 'o' ,0b10010100, + 'p' ,0b11100100, + 'q' ,0b01100100, + 'r' ,0b10100100, + 's' ,0b11111000, + 't' ,0b01111000, + 'u' ,0b10111000, + 'v' ,0b11011000, + 'w' ,0b01011000, + 'x' ,0b10011000, + 'y' ,0b11101000, + 'z' ,0b01101000, + '0' ,0b10101000 +}; + diff --git a/src/vhf_deframe_c2.c b/src/vhf_deframe_c2.c new file mode 100644 index 0000000..0d01871 --- /dev/null +++ b/src/vhf_deframe_c2.c @@ -0,0 +1,110 @@ + +/*---------------------------------------------------------------------------*\ + + FILE........: vhf_deframe_c2.c + AUTHOR......: Brady O'Brien + DATE CREATED: 8 March 2016 + + C tool to extract codec2 data from freedv VHF 2400A/B/whatever frames + + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include "freedv_vhf_framing.h" + +int main(int argc,char *argv[]){ + struct freedv_vhf_deframer * deframer; + FILE *fin,*fout; + uint8_t *bitbuf; + uint8_t *c2buf; + uint8_t zbuf[] = {0,0,0,0,0,0,0,0}; + int frame_fmt = 0; + int fsize,c2size; + + if(argc<3){ + fprintf(stderr,"usage: %s (A|B) InputOneBitPerCharFile OutputC2File\n",argv[0]); + exit(1); + } + + if(strcmp(argv[1],"A")==0){ + frame_fmt = FREEDV_VHF_FRAME_A; + } else if (strcmp(argv[1],"B")==0) { + frame_fmt = FREEDV_HF_FRAME_B; + } else { + fprintf(stderr,"usage: %s (A|B) InputOneBitPerCharFile OutputC2File\n",argv[0]); + exit(1); + } + + /* Open files */ + if(strcmp(argv[2],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[2],"r"); + } + + if(strcmp(argv[3],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[3],"w"); + } + + /* Set up deframer */ + deframer = fvhff_create_deframer(frame_fmt,0); + + if(fin==NULL || fout==NULL || deframer==NULL){ + fprintf(stderr,"Couldn't open test vector files\n"); + goto cleanup; + } + + c2size = fvhff_get_codec2_size(deframer); + fsize = fvhff_get_frame_size(deframer); + + /* allocate buffers for processing */ + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsize); + c2buf = (uint8_t*)malloc(sizeof(uint8_t)*c2size); + + /* Deframe! */ + while( fread(bitbuf,sizeof(uint8_t),fsize,fin) == fsize ){ + if(fvhff_deframe_bits(deframer,c2buf,NULL,NULL,bitbuf)) + fwrite(c2buf,sizeof(uint8_t),c2size,fout); + else + fwrite(zbuf,sizeof(uint8_t),c2size,fout); + + if(fout == stdin){ + fflush(fout); + } + } + fprintf(stderr,"BER Estimate: %f total_uw_err: %d \n", + ((float)deframer->total_uw_err)/((float)deframer->total_uw_bits),deframer->total_uw_err); + + free(bitbuf); + free(c2buf); + + cleanup: + fclose(fin); + fclose(fout); + fvhff_destroy_deframer(deframer); + exit(0); +} + diff --git a/src/vhf_frame_c2.c b/src/vhf_frame_c2.c new file mode 100644 index 0000000..10fdf31 --- /dev/null +++ b/src/vhf_frame_c2.c @@ -0,0 +1,105 @@ + +/*---------------------------------------------------------------------------*\ + + FILE........: vhf_deframe_c2.c + AUTHOR......: Brady O'Brien + DATE CREATED: 8 March 2016 + + C tool to extract codec2 data from freedv VHF 2400A/B/whatever frames + + +\*---------------------------------------------------------------------------*/ + +/* + Copyright (C) 2016 David Rowe + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include +#include "freedv_vhf_framing.h" + +int main(int argc,char *argv[]){ + struct freedv_vhf_deframer * deframer; + FILE *fin,*fout; + uint8_t *bitbuf; + uint8_t *c2buf; + int frame_fmt = 0; + int fsize,c2size; + + if(argc<3){ + fprintf(stderr,"usage: %s (A|B) InpuC2File OutputOneBitPerCharFile\n",argv[0]); + exit(1); + } + + if(strcmp(argv[1],"A")==0){ + frame_fmt = FREEDV_VHF_FRAME_A; + } else if (strcmp(argv[1],"B")==0) { + frame_fmt = FREEDV_HF_FRAME_B; + } else { + fprintf(stderr,"usage: %s (A|B) InpuC2File OutputOneBitPerCharFile\n",argv[0]); + exit(1); + } + + /* Open files */ + if(strcmp(argv[2],"-")==0){ + fin = stdin; + }else{ + fin = fopen(argv[2],"r"); + } + + if(strcmp(argv[3],"-")==0){ + fout = stdout; + }else{ + fout = fopen(argv[3],"w"); + } + + /* Set up deframer */ + deframer = fvhff_create_deframer(frame_fmt,0); + + if(fin==NULL || fout==NULL || deframer==NULL){ + fprintf(stderr,"Couldn't open test vector files\n"); + goto cleanup; + } + + c2size = fvhff_get_codec2_size(deframer); + fsize = fvhff_get_frame_size(deframer); + + /* allocate buffers for processing */ + bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsize); + c2buf = (uint8_t*)malloc(sizeof(uint8_t)*c2size); + + /* Deframe! */ + while( fread(c2buf,sizeof(uint8_t),c2size,fin) == c2size ){ + fvhff_frame_bits(frame_fmt,bitbuf,c2buf,NULL,NULL); + fwrite(bitbuf,sizeof(uint8_t),fsize,fout); + + if(fout == stdin){ + fflush(fout); + } + } + + free(bitbuf); + free(c2buf); + + cleanup: + fclose(fin); + fclose(fout); + fvhff_destroy_deframer(deframer); + exit(0); +} + diff --git a/src/wval.h b/src/wval.h new file mode 100644 index 0000000..ef6f056 --- /dev/null +++ b/src/wval.h @@ -0,0 +1,219 @@ +/* + * Generated file: + * + * ofdm_wfreq = 40.0; + * ofdm_nval = (int)(ofdm_fs / ofdm_wfreq); + * ofdm_w = TAU * ofdm_wfreq / ofdm_fs; + * + * ofdm_wval = MALLOC(sizeof (complex float) * ofdm_nval); + * + * for (i = 0; i < ofdm_nval; i++) { + * ofdm_wval[i] = cmplxconj(ofdm_w * i); + * } + * + */ +#include + +static const complex float ofdm_wval[] = { +1.000000-0.000000 * I, +0.999507-0.031411 * I, +0.998027-0.062791 * I, +0.995562-0.094108 * I, +0.992115-0.125333 * I, +0.987688-0.156434 * I, +0.982287-0.187381 * I, +0.975917-0.218143 * I, +0.968583-0.248690 * I, +0.960294-0.278991 * I, +0.951057-0.309017 * I, +0.940881-0.338738 * I, +0.929776-0.368125 * I, +0.917755-0.397148 * I, +0.904827-0.425779 * I, +0.891007-0.453991 * I, +0.876307-0.481754 * I, +0.860742-0.509041 * I, +0.844328-0.535827 * I, +0.827081-0.562083 * I, +0.809017-0.587785 * I, +0.790155-0.612907 * I, +0.770513-0.637424 * I, +0.750111-0.661312 * I, +0.728969-0.684547 * I, +0.707107-0.707107 * I, +0.684547-0.728969 * I, +0.661312-0.750111 * I, +0.637424-0.770513 * I, +0.612907-0.790155 * I, +0.587785-0.809017 * I, +0.562083-0.827081 * I, +0.535827-0.844328 * I, +0.509041-0.860742 * I, +0.481754-0.876307 * I, +0.453990-0.891007 * I, +0.425779-0.904827 * I, +0.397148-0.917755 * I, +0.368125-0.929776 * I, +0.338738-0.940881 * I, +0.309017-0.951057 * I, +0.278991-0.960294 * I, +0.248690-0.968583 * I, +0.218143-0.975917 * I, +0.187381-0.982287 * I, +0.156434-0.987688 * I, +0.125333-0.992115 * I, +0.094108-0.995562 * I, +0.062790-0.998027 * I, +0.031411-0.999507 * I, +-0.000000-1.000000 * I, +-0.031411-0.999507 * I, +-0.062791-0.998027 * I, +-0.094108-0.995562 * I, +-0.125333-0.992115 * I, +-0.156435-0.987688 * I, +-0.187381-0.982287 * I, +-0.218143-0.975917 * I, +-0.248690-0.968583 * I, +-0.278991-0.960294 * I, +-0.309017-0.951056 * I, +-0.338738-0.940881 * I, +-0.368125-0.929776 * I, +-0.397148-0.917755 * I, +-0.425779-0.904827 * I, +-0.453991-0.891006 * I, +-0.481754-0.876307 * I, +-0.509042-0.860742 * I, +-0.535827-0.844328 * I, +-0.562084-0.827080 * I, +-0.587785-0.809017 * I, +-0.612907-0.790155 * I, +-0.637424-0.770513 * I, +-0.661312-0.750111 * I, +-0.684547-0.728968 * I, +-0.707107-0.707107 * I, +-0.728969-0.684547 * I, +-0.750111-0.661312 * I, +-0.770513-0.637424 * I, +-0.790155-0.612907 * I, +-0.809017-0.587785 * I, +-0.827081-0.562083 * I, +-0.844328-0.535827 * I, +-0.860742-0.509041 * I, +-0.876307-0.481754 * I, +-0.891007-0.453990 * I, +-0.904827-0.425779 * I, +-0.917755-0.397148 * I, +-0.929777-0.368124 * I, +-0.940881-0.338738 * I, +-0.951057-0.309017 * I, +-0.960294-0.278991 * I, +-0.968583-0.248690 * I, +-0.975917-0.218143 * I, +-0.982287-0.187381 * I, +-0.987688-0.156434 * I, +-0.992115-0.125333 * I, +-0.995562-0.094108 * I, +-0.998027-0.062790 * I, +-0.999507-0.031411 * I, +-1.000000+0.000000 * I, +-0.999507+0.031411 * I, +-0.998027+0.062791 * I, +-0.995562+0.094108 * I, +-0.992115+0.125333 * I, +-0.987688+0.156435 * I, +-0.982287+0.187381 * I, +-0.975917+0.218143 * I, +-0.968583+0.248690 * I, +-0.960294+0.278991 * I, +-0.951056+0.309017 * I, +-0.940881+0.338738 * I, +-0.929776+0.368125 * I, +-0.917755+0.397148 * I, +-0.904827+0.425780 * I, +-0.891006+0.453991 * I, +-0.876307+0.481754 * I, +-0.860742+0.509042 * I, +-0.844328+0.535827 * I, +-0.827081+0.562083 * I, +-0.809017+0.587785 * I, +-0.790155+0.612907 * I, +-0.770513+0.637424 * I, +-0.750111+0.661312 * I, +-0.728969+0.684547 * I, +-0.707107+0.707107 * I, +-0.684547+0.728969 * I, +-0.661312+0.750111 * I, +-0.637424+0.770513 * I, +-0.612907+0.790155 * I, +-0.587785+0.809017 * I, +-0.562083+0.827081 * I, +-0.535827+0.844328 * I, +-0.509041+0.860742 * I, +-0.481753+0.876307 * I, +-0.453990+0.891007 * I, +-0.425779+0.904827 * I, +-0.397148+0.917755 * I, +-0.368124+0.929777 * I, +-0.338738+0.940881 * I, +-0.309017+0.951057 * I, +-0.278991+0.960294 * I, +-0.248690+0.968583 * I, +-0.218143+0.975917 * I, +-0.187381+0.982287 * I, +-0.156434+0.987688 * I, +-0.125333+0.992115 * I, +-0.094108+0.995562 * I, +-0.062790+0.998027 * I, +-0.031410+0.999507 * I, +0.000000+1.000000 * I, +0.031411+0.999507 * I, +0.062791+0.998027 * I, +0.094108+0.995562 * I, +0.125333+0.992115 * I, +0.156435+0.987688 * I, +0.187381+0.982287 * I, +0.218143+0.975917 * I, +0.248690+0.968583 * I, +0.278991+0.960294 * I, +0.309017+0.951056 * I, +0.338738+0.940881 * I, +0.368125+0.929776 * I, +0.397148+0.917755 * I, +0.425779+0.904827 * I, +0.453991+0.891006 * I, +0.481754+0.876307 * I, +0.509042+0.860742 * I, +0.535827+0.844328 * I, +0.562084+0.827080 * I, +0.587785+0.809017 * I, +0.612907+0.790155 * I, +0.637424+0.770513 * I, +0.661312+0.750111 * I, +0.684547+0.728968 * I, +0.707107+0.707107 * I, +0.728969+0.684547 * I, +0.750111+0.661312 * I, +0.770513+0.637424 * I, +0.790155+0.612907 * I, +0.809017+0.587785 * I, +0.827081+0.562083 * I, +0.844328+0.535826 * I, +0.860742+0.509041 * I, +0.876307+0.481753 * I, +0.891007+0.453990 * I, +0.904827+0.425779 * I, +0.917755+0.397147 * I, +0.929777+0.368124 * I, +0.940881+0.338737 * I, +0.951057+0.309016 * I, +0.960294+0.278991 * I, +0.968583+0.248689 * I, +0.975917+0.218143 * I, +0.982287+0.187381 * I, +0.987688+0.156434 * I, +0.992115+0.125333 * I, +0.995562+0.094108 * I, +0.998027+0.062790 * I, +0.999507+0.031411 * I +}; + -- cgit v1.2.3